[pyferret] 44/110: upstream release 1.2.0

Alastair McKinstry mckinstry at moszumanska.debian.org
Fri Jul 28 08:41:55 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 e683b6ed87ea26c04f80bf1cadfa197dc3ccb36f
Author: Alastair McKinstry <mckinstry at debian.org>
Date:   Tue Mar 1 14:29:49 2016 +0000

    upstream release 1.2.0
---
 Makefile                                           |    29 +-
 bench/39839D6273F1749BABAD6C1441B2BBDD_netcdf.nc   |   Bin 0 -> 13504 bytes
 bench/RUN_TESTS.sh                                 |    13 +-
 bench/TEST_SCRIPTS                                 |    21 +
 bench/TRASH_FILES                                  |     4 +
 bench/ansley_official.linux_err                    |  1607 +-
 bench/ansley_official.linux_log                    | 12684 ++-
 bench/ansley_official.rhel6-32_err                 |  3676 -
 bench/ansley_official.rhel6-32_log                 | 78481 -------------------
 bench/ansley_official.rhel6-64_err                 |  1592 +-
 bench/ansley_official.rhel6-64_log                 | 12731 ++-
 bench/ansley_official.x86_64-linux_err             |  1565 +-
 bench/ansley_official.x86_64-linux_log             |  7638 +-
 bench/bn691_bug_fixes.jnl                          |     3 +
 bench/bn694_bug_fixes.jnl                          |   108 +
 bench/bn695_bug_fixes.jnl                          |    11 +
 bench/bn696_bug_fixes.jnl                          |     8 +
 bench/bn_DQ.jnl                                    |   240 +
 bench/bn_DQ.sub                                    |     5 +
 bench/bn_aggregate_e.jnl                           |     2 +-
 bench/bn_all.jnl                                   |    66 +-
 bench/bn_annotate.jnl                              |   217 +
 bench/bn_auxiliary.jnl                             |   403 +
 bench/bn_auxiliary.sub                             |   152 +
 bench/bn_axis_viewports.jnl                        |    16 +-
 bench/bn_bin_regrid.jnl                            |     8 +
 bench/bn_bin_regrid.sub                            |    22 +
 bench/bn_can_var_noerr.jnl                         |    32 +
 bench/bn_dots.jnl                                  |     1 -
 bench/bn_f_tax_fcns.jnl                            |    52 +
 bench/bn_floatstr_extended.jnl                     |    60 +
 bench/bn_flowlines.jnl                             |     2 -
 bench/bn_fmrc.jnl                                  |    18 +
 bench/bn_gif.jnl                                   |    20 +-
 bench/bn_graticules.jnl                            |     1 -
 bench/bn_grave.jnl                                 |     2 +-
 bench/bn_if.sub                                    |    57 +
 bench/bn_labwid.jnl                                |    19 +-
 bench/bn_legend_labels.jnl                         |    20 +
 bench/bn_lon_lat_time_string.jnl                   |    19 +
 bench/bn_mode_logo_lab.jnl                         |     2 +-
 bench/bn_multi_decade.jnl                          |     2 +-
 bench/bn_odd_variable_name.jnl                     |     5 +-
 bench/bn_outline_poly.jnl                          |     4 +
 bench/bn_permute_ascii.jnl                         |    79 +
 bench/bn_plot.jnl                                  |    20 +-
 bench/bn_plot_ribbon_gaploc.jnl                    |    38 +
 bench/bn_ps.jnl                                    |    16 +-
 bench/bn_return_defined.jnl                        |    15 +
 bench/bn_save_justdim.jnl                          |    24 +
 bench/bn_strings.jnl                               |     5 +
 bench/bn_time2d.jnl                                |    19 +
 bench/bn_time_short_axes.jnl                       |    27 +
 bench/bn_vec_curv.jnl                              |     2 +-
 bench/bn_vtree.jnl                                 |     5 +
 bench/bn_vtree_regrid.jnl                          |   178 +
 bench/check_pdf_ImageMagick                        |    52 +
 bench/edge.nc                                      |   Bin 0 -> 2492 bytes
 bench/err570_shakeylab.jnl                         |     4 +-
 bench/err580_def_view_axes.jnl                     |     2 +-
 bench/err600_reset_redefine_axis.jnl               |    14 +-
 bench/err684_axticlab.jnl                          |     6 +-
 bench/err691_pt_in_poly.jnl                        |    29 +
 bench/err691_substring_arg.jnl                     |     9 +
 bench/err693_attr_in_gcfcn.jnl                     |    21 +
 bench/err693_check_edges.jnl                       |    23 +
 bench/err693_edit_useratt.jnl                      |    26 +
 bench/err693_ef_axis_precision.jnl                 |    13 +
 bench/err693_fcn_of_attvar.jnl                     |    11 +
 bench/err693_frame_types.jnl                       |    20 +
 bench/err693_if_then_flow_1368.jnl                 |    30 +
 bench/err693_if_then_flow_1446.jnl                 |    14 +
 bench/err693_if_then_flow_1681.jnl                 |    29 +
 bench/err693_if_then_flow_1706.jnl                 |    11 +
 bench/err693_if_then_flow_1860.jnl                 |    41 +
 bench/err693_if_then_flow_2211.jnl                 |    17 +
 bench/err693_if_then_flow_2214.jnl                 |    23 +
 bench/err693_inconsistent_quote.jnl                |    10 +
 bench/err693_isize_and_gcfcn.jnl                   |    26 +
 bench/err693_isready_dyn_grid_crash.jnl            |     5 +
 bench/err693_isready_hang.jnl                      |    12 +
 bench/err693_lev_nv_over.jnl                       |    15 +
 bench/err693_line_over_axis.jnl                    |    12 +
 bench/err693_list_missing.jnl                      |    10 +
 bench/err693_parse_curly.jnl                       |    14 +
 bench/err693_parse_curly.sub                       |    39 +
 bench/err693_redef_rec_axis.jnl                    |    20 +
 bench/err693_repeat_err.jnl                        |    11 +
 bench/err693_ribbon_scale.jnl                      |    10 +
 bench/err693_ribbon_start_missing.jnl              |    40 +
 bench/err693_save_packed.jnl                       |     7 +
 bench/err693_save_packed.nc                        |   Bin 0 -> 1716 bytes
 bench/err693_scalar_grids.jnl                      |    35 +
 bench/err693_shape.jnl                             |    16 +
 bench/err693_shf_subscr.jnl                        |    22 +
 bench/err693_shift_w_region.jnl                    |    12 +
 bench/err693_std4d.jnl                             |    28 +
 bench/err693_string_results.jnl                    |    13 +
 bench/err693_subspan_trans.jnl                     |    34 +
 bench/err693_undetected_regrid_dset.jnl            |    15 +
 bench/err693_upcase_quoted_name.jnl                |    16 +
 bench/err694_longname_showdat.jnl                  |    20 +
 bench/err694_shf_missing.jnl                       |    11 +
 bench/err695_bounds_match_axis.jnl                 |    12 +
 bench/err695_show_dat_nodata.jnl                   |    18 +
 bench/err69_isready_bugs.jnl                       |     6 +
 bench/ferret_startup                               |     5 +-
 bench/fxdata.dat                                   |     8 +
 bench/levitus_3d_subset.nc                         |   Bin 0 -> 1936 bytes
 bench/run1.nc                                      |   Bin 0 -> 5384 bytes
 bench/run2.nc                                      |   Bin 0 -> 5384 bytes
 bench/run3.nc                                      |   Bin 0 -> 5384 bytes
 bench/run4.nc                                      |   Bin 0 -> 5384 bytes
 bench/run_all                                      |     9 +-
 bench/shorttemp.nc                                 |   Bin 0 -> 1624 bytes
 bench/test_results/axticlabel.pdf                  |   Bin 7166 -> 7176 bytes
 bench/test_results/bnplot.pdf                      |   Bin 183735 -> 171732 bytes
 bench/test_results/closed_lev.pdf                  |   Bin 38600 -> 36893 bytes
 bench/test_results/dashbug.pdf                     |   Bin 10364 -> 10056 bytes
 bench/test_results/degC_axlab.pdf                  |   Bin 6880 -> 6866 bytes
 bench/test_results/dots.pdf                        |   Bin 5269 -> 5215 bytes
 bench/test_results/ferret_run_tests_err            |  1087 +-
 bench/test_results/ferret_run_tests_log            | 10619 ++-
 bench/test_results/ferret_run_tests_ncdump         |   227 +-
 bench/test_results/flowlines.pdf                   |   Bin 55588 -> 54060 bytes
 bench/test_results/graticules.pdf                  |   143 +-
 bench/test_results/linecolors.pdf                  |   Bin 16442 -> 16412 bytes
 bench/test_results/multi_line_labels.pdf           |   Bin 30894 -> 31257 bytes
 bench/test_results/outline_poly.pdf                |   Bin 0 -> 8601 bytes
 bench/test_results/polygon_plot.pdf                |   Bin 16172 -> 12323 bytes
 bench/test_results/pyferret_run_tests_err          |  1237 +-
 bench/test_results/pyferret_run_tests_log          | 11487 ++-
 bench/test_results/pyferret_run_tests_ncdump       |   228 +-
 bench/test_results/startup_tests2.pdf              |   Bin 11570 -> 8921 bytes
 bench/test_results/timetics.pdf                    |   Bin 15977 -> 14977 bytes
 bench/test_results/timetics2.pdf                   |   Bin 27383 -> 27634 bytes
 bench/test_results/vec_curv.pdf                    |   Bin 14410 -> 14648 bytes
 bench/test_results/vec_curv2.pdf                   |   Bin 29018 -> 28938 bytes
 bench/test_results/viewaxes.pdf                    |   Bin 8091 -> 8105 bytes
 bench/timesec.nc                                   |   Bin 0 -> 2276 bytes
 bench/twodtime.nc                                  |   Bin 0 -> 1076 bytes
 bin/ferret_paths_template.csh                      |     2 +
 bin/ferret_paths_template.sh                       |     2 +
 bin/make_environment_tar                           |     3 +-
 bin/make_executable_tar                            |    18 +-
 bin/make_source_tar                                |     2 +-
 external_functions/ef_utility/site_specific.mk     |     7 +-
 external_functions/fft/Makefile                    |     2 +-
 external_functions/gridding/Makefile               |     4 +-
 .../gridding/fco2_xyt_stats_year.jnl               |    84 -
 external_functions/gridding/nobsxytv.F             |    79 +-
 .../gridding/scat2grid_mask_bin_xyt.F              |     7 +-
 external_functions/gridding/socat_decadal.jnl      |    99 -
 .../gridding/socat_monthly_climatology.jnl         |    96 -
 external_functions/gridding/socat_yearly.jnl       |    93 -
 .../gridding/test_tracks2grid_var_xyt.jnl          |    64 -
 .../gridding/tracks2grid_ave_fco2_xyt_stats.jnl    |    57 -
 .../gridding/tracks2grid_mask_ave_xyt.F            |   168 +-
 external_functions/gridding/tracks2grid_std_xyt.F  |   186 +-
 external_functions/las/Makefile                    |     2 +-
 external_functions/las/lon_lat_time_string.F       |   238 +
 external_functions/zaxr/Makefile                   |     2 +-
 fer/ccr/EF_InternalUtil.c                          |   356 +-
 fer/ccr/SOURCE_FILES                               |     5 +
 .../tm_switch_nan.c => fer/ccr/cache_full_array.c  |    56 +-
 fer/ccr/create_utf8_string.c                       |    80 +
 .../free_cached_full_array.c}                      |    50 +-
 .../recover_cached_full_array.c}                   |    47 +-
 fer/ccr/text_to_utf8.c                             |    67 +
 fer/ccr/utf8str.h                                  |     5 +
 fer/cferbind/cairoCFerBind.h                       |    40 +-
 fer/cferbind/cairoCFerBind_clipView.c              |     8 +-
 fer/cferbind/cairoCFerBind_createBrush.c           |     2 +-
 fer/cferbind/cairoCFerBind_createColor.c           |     2 +-
 fer/cferbind/cairoCFerBind_createFont.c            |   104 +-
 fer/cferbind/cairoCFerBind_createPen.c             |     2 +-
 fer/cferbind/cairoCFerBind_createSurface.c         |    62 +-
 fer/cferbind/cairoCFerBind_createWindow.c          |    17 +-
 fer/cferbind/cairoCFerBind_deleteFont.c            |    35 +-
 fer/cferbind/cairoCFerBind_drawMultiline.c         |    12 +-
 fer/cferbind/cairoCFerBind_drawPoints.c            |    12 +-
 fer/cferbind/cairoCFerBind_drawPolygon.c           |    51 +-
 fer/cferbind/cairoCFerBind_drawRectangle.c         |    51 +-
 fer/cferbind/cairoCFerBind_drawText.c              |    92 +-
 fer/cferbind/cairoCFerBind_saveWindow.c            |   159 +-
 fer/cferbind/cairoCFerBind_setWidthFactor.c        |     2 +-
 ...tWidthFactor.c => cairoCFerBind_setWindowDpi.c} |    22 +-
 fer/cferbind/cairoCFerBind_textSize.c              |   110 +
 fer/cferbind/cairoCFerBind_windowScreenInfo.c      |    14 +-
 fer/cferbind/cferbind.h                            |    10 +-
 fer/cferbind/cferbind_createWindow.c               |     7 +-
 fer/cferbind/pyqtcairoCFerBind_createWindow.c      |    18 +-
 fer/cferbind/pyqtcairoCFerBind_updateWindow.c      |     8 +-
 fer/common/ferret.parm                             |    70 +-
 fer/common/fgrdel.cmn                              |     5 +-
 fer/common/interp_stack.parm                       |     9 +-
 fer/common/rpn.parm                                |     5 +-
 fer/common/slash.parm                              |    83 +-
 fer/common/xcommand.cmn                            |    34 +-
 fer/common/xcontext.cmn                            |    17 +-
 fer/common/xcontrol.cmn                            |    10 +-
 fer/common/xdependency_tree.cmn                    |     4 +
 fer/common/xprog_state.cmn                         |    78 +-
 fer/common/xrisc.cmn                               |     9 +-
 fer/common/xvariables.cmn                          |    15 +-
 fer/ctx/apply_auto_curv.F                          |    90 +-
 fer/ctx/apply_context_mods.F                       |     5 +-
 fer/ctx/complete_missing_limits.F                  |     7 +-
 fer/ctx/cs_set_context.F                           |    11 +-
 fer/ctx/del_cx_dim.F                               |     5 +-
 fer/ctx/flesh_out_axis.F                           |    30 +-
 fer/ctx/get_auto_aux_vars.F                        |    21 +-
 fer/ctx/get_aux_var_context.F                      |    25 +-
 fer/ctx/get_context_bad_flag.F                     |     7 +-
 fer/ctx/get_context_grid.F                         |    59 +-
 fer/ctx/get_var_context.F                          |    31 +-
 fer/ctx/init_context_mods.F                        |     3 +-
 fer/ctx/init_empty_context.F                       |     5 +-
 fer/ctx/known_data_type.F                          |     8 +-
 fer/ctx/merge_axis_with_offsets.F                  |     5 +-
 fer/ctx/merge_grid.F                               |    37 +-
 fer/ctx/parse_var_name.F                           |    33 +-
 fer/ctx/pseudo_var_context.F                       |     6 +-
 fer/dat/SOURCE_FILES                               |     1 -
 fer/dat/xalgebra_data.F                            |    64 +-
 fer/dat/xcommand_data.F                            |   146 +-
 fer/dat/xfgrdel_data.F                             |     3 +
 fer/dat/xprog_state_data.F                         |    45 +-
 fer/dat/xrevision_data.F                           |    12 +-
 fer/dat/xvariables_data.F                          |     2 +
 fer/doo/SOURCE_FILES                               |    11 +-
 fer/doo/ave_regrid_1_axis.F                        |    15 +-
 fer/doo/bin_regrid_1_axis.F                        |   495 +
 fer/doo/convolve_p.F                               |   390 +
 fer/doo/dd1step.F                                  |     2 +-
 fer/doo/diag_op.F                                  |    16 +-
 fer/doo/{do_stddev.F => do_4d_std.F}               |    35 +-
 fer/doo/do_4d_trans.F                              |    18 +-
 ..._regrid_line_ave.F => do_aux_regrid_line_ave.F} |    60 +-
 ..._regrid_line_lin.F => do_aux_regrid_line_lin.F} |     2 +-
 fer/doo/do_aux_var_regrid.F                        |    73 +-
 fer/doo/do_aux_var_regrid_1d.F                     |   225 +-
 fer/doo/do_aux_var_regrid_1d_t.F                   |   233 +
 fer/doo/do_aux_var_regrid_2d_tf.F                  |   286 +
 .../decrement_plot_grid.F => doo/do_bin_regrid.F}  |    32 +-
 fer/doo/{do_stddev.F => do_smth_box_p.F}           |    52 +-
 fer/doo/do_stddev.F                                |     0
 fer/doo/regrid_comments.F                          |    86 +-
 fer/ef_utility/SOURCE_FILES                        |     3 +-
 fer/ef_utility/ef_get_axis_dates.F                 |   110 +-
 .../{ef_get_axis_dates.F => ef_get_date_tstep.F}   |    65 +-
 fer/efi/SOURCE_FILES                               |    12 +
 fer/efi/bin_index_wt.F                             |    14 +-
 fer/efi/curv_to_rect.F                             |    95 +-
 fer/efi/{curv_to_rect.F => curv_to_rect_fsu.F}     |   228 +-
 fer/efi/curv_to_rect_subs.F                        |    94 +
 fer/efi/expndi_by_m_counts.F                       |     3 +-
 fer/efi/expndi_by_z_counts.F                       |     3 +-
 fer/efi/floatstr.F                                 |    73 +-
 fer/efi/ft_to_orthogonal.F                         |   259 +
 fer/efi/labwid.F                                   |    49 +-
 fer/efi/lon_lat_time_string.F                      |   298 +
 fer/efi/piecewise3.F                               |   479 +
 fer/efi/piecewise_subs.F                           |   511 +
 fer/efi/pt_in_poly.F                               |    88 +-
 fer/efi/sample_fast_i.F                            |   167 +
 fer/efi/sample_fast_i_str.F                        |   178 +
 fer/efi/{samplet_date.F => samplef_date.F}         |   188 +-
 fer/efi/samplet_date.F                             |     5 +-
 fer/efi/samplexyt_nrst.F                           |    19 +-
 fer/efi/scat2grid_bin_xyt.F                        |     6 +-
 fer/efi/scat2grid_nbin_xyt.F                       |     6 +-
 fer/efi/separate_str.F                             |   256 +
 fer/efi/tax_datestring.F                           |   287 +-
 fer/efi/tax_day.F                                  |   180 +-
 fer/efi/tax_dayfrac.F                              |   181 +-
 fer/efi/tax_jday.F                                 |   184 +-
 fer/efi/tax_jday1900.F                             |   175 +-
 fer/efi/tax_month.F                                |   141 +-
 fer/efi/tax_subs.F                                 |    51 +
 fer/efi/tax_times.F                                |    32 +
 fer/efi/tax_tstep.F                                |   161 +-
 fer/efi/tax_units.F                                |    49 +-
 fer/efi/tax_year.F                                 |   170 +-
 fer/efi/tax_yearfrac.F                             |   189 +-
 fer/efi/{tax_units.F => time_reformat.F}           |   152 +-
 fer/efi/write_webrow_gwt.F                         |   272 +
 fer/fmt/SOURCE_FILES                               |     1 +
 fer/fmt/ascii_limits.F                             |    20 +-
 .../get_context_bad_flag.F => fmt/aux_var_units.F} |    60 +-
 fer/fmt/ax_title.F                                 |    19 +-
 fer/fmt/var_title.F                                |     3 +-
 fer/fmt/var_title_mod.F                            |    13 +-
 fer/fmt/var_units.F                                |     3 +-
 fer/gnl/SOURCE_FILES                               |     1 +
 fer/gnl/all_1_arg.F                                |    15 +
 fer/gnl/atom_pos.F                                 |    21 +-
 fer/gnl/cancel_data_set.F                          |    23 +-
 fer/gnl/cdf_list.F                                 |    57 +-
 fer/gnl/cdf_list_global_atts.F                     |     6 +-
 fer/gnl/check_member_sets.F                        |    16 +-
 fer/gnl/create_agg_axis.F                          |    26 +-
 fer/gnl/create_agg_dset.F                          |     4 +-
 fer/gnl/define_aggregate_grid.F                    |   314 +-
 fer/gnl/dollar_arg.F                               |    60 +-
 fer/gnl/edit_attribute.F                           |     2 +
 fer/gnl/equal_permute.F                            |    18 +-
 fer/gnl/equal_str_lc.F                             |    16 +-
 fer/gnl/equal_string.F                             |    16 +-
 fer/gnl/float2string_for_xml.F                     |    14 +-
 fer/gnl/get_context_mods.F                         |   231 +-
 fer/gnl/get_fer_command.F                          |   189 +-
 fer/gnl/get_fvars_list_by_attname_and_val.F        |     5 +-
 fer/gnl/get_uvars_list_by_attname_and_val.F        |     5 +-
 fer/gnl/init_aggregate_dset.F                      |   128 +-
 fer/gnl/list_cmnd_data.F                           |    47 +-
 fer/gnl/list_multi_sub.F                           |     4 +-
 fer/gnl/parse_comma_list.F                         |    25 +
 fer/gnl/parse_command.F                            |   332 +-
 fer/gnl/pop_cs.F                                   |    25 +-
 fer/gnl/process_if.F                               |   125 +-
 fer/gnl/redefine_ax_att.F                          |    10 +-
 fer/gnl/repl_exprns.F                              |   372 +-
 fer/gnl/reset_ax_att.F                             |     7 +-
 fer/gnl/set_var.F                                  |    60 +-
 fer/gnl/show_data.F                                |    13 +-
 fer/gnl/show_data_files.F                          |     2 +
 fer/gnl/show_data_set_attrs.F                      |     9 +-
 fer/gnl/show_data_set_vars.F                       |     7 +-
 fer/gnl/show_data_set_vars_xml.F                   |    14 +
 fer/gnl/show_line.F                                |     4 +-
 fer/gnl/show_line_coords.F                         |     5 +-
 fer/gnl/{create_agg_dset.F => show_pytext_group.F} |   102 +-
 fer/gnl/translate_limit.F                          |    13 +
 fer/gnl/var_stat.F                                 |    75 +-
 fer/grdel/draw.c                                   |   180 +-
 fer/grdel/ferdrawtext.F                            |   107 +
 fer/grdel/fertextsize.F                            |    80 +
 fer/grdel/fgd_engine_match.F                       |     9 +-
 fer/grdel/fgd_gfa.F                                |    55 +-
 fer/grdel/fgd_gopwk.F                              |     6 +-
 fer/grdel/fgd_set_engine.F                         |    14 +-
 fer/grdel/fgd_set_outline_width.F                  |    30 +
 fer/grdel/fgd_set_window_dpi.F                     |    36 +
 fer/grdel/font.c                                   |    19 +-
 fer/grdel/getTransformValues.c                     |    46 +
 fer/grdel/grdel.h                                  |     8 +-
 fer/grdel/window.c                                 |    90 +-
 fer/ino/cdf_prep_cache.F                           |    12 +-
 fer/ino/find_dset_number.F                         |     4 +-
 fer/ino/var_ss_lims.F                              |     7 +-
 fer/mem/SOURCE_FILES                               |     2 +
 .../create_full_range_context.F}                   |    46 +-
 fer/mem/delete_user_var_sub.F                      |    16 +-
 fer/mem/erase_dset.F                               |    13 +-
 fer/mem/find_mem_var.F                             |    14 +-
 .../find_mem_var_incl_c_cache.F}                   |    79 +-
 fer/mem/find_var_name.F                            |    40 +-
 fer/mem/purge_mr_axis.F                            |    11 +-
 fer/mem/purge_mr_grid.F                            |     5 +-
 fer/mem/var_code.F                                 |     8 +-
 fer/plt/SOURCE_FILES                               |     7 +
 fer/plt/axis_end_syms.F                            |     5 +-
 fer/plt/axis_ends.F                                |    26 +-
 fer/plt/axis_format.F                              |    45 +-
 fer/plt/box_label.F                                |    44 +-
 fer/plt/cancel_pytext_group.F                      |   176 +
 fer/plt/choose_cx_ww.F                             |     3 +-
 fer/plt/disp_init.F                                |    21 +-
 fer/plt/disp_labels.F                              |     4 +-
 fer/plt/disp_prep.F                                |    39 +-
 fer/plt/disp_reset.F                               |     3 +
 fer/plt/disp_set_up.F                              |    71 +-
 fer/plt/equal_color.F                              |    22 +-
 fer/plt/equal_range.F                              |    33 +-
 fmt/src/tm_ww_axlims.F => fer/plt/get_color_name.F |    45 +-
 fmt/src/tm_ww_ax_1_n.F => fer/plt/get_color_rgb.F  |    62 +-
 fer/plt/itsa_modulo_curvi_axis.F                   |     3 +-
 fer/plt/key_loc.F                                  |     3 +-
 fer/plt/merged_whoi_date.F                         |    18 +-
 fer/plt/parse_pyfont_color.F                       |   118 +
 fer/plt/plot_set_up.F                              |   164 +-
 fer/plt/polygon_set_up.F                           |    27 +-
 .../create_agg_dset.F => plt/put_annotation.F}     |    95 +-
 fer/plt/put_label.F                                |     5 +-
 fer/plt/set_annotation.F                           |   333 +
 fer/plt/set_pytext_group.F                         |   212 +
 fer/plt/set_window.F                               |    70 +-
 fer/plt/taxis_style.F                              |    45 +-
 fer/plt/trim_axis_ends.F                           |     4 +-
 fer/plt/window_size_from_opts.F                    |    21 +-
 fer/pyf/get_data_array_time_coords.F               |     2 +-
 fer/rpn/alg_break_up.F                             |   136 +-
 fer/rpn/alg_class.F                                |    11 +-
 fer/rpn/alg_id.F                                   |    31 +-
 fer/rpn/break_varattname.F                         |     6 +-
 fer/rpn/break_varname.F                            |     2 +
 fer/rpn/init_uvar.F                                |    10 +
 fer/rpn/init_uvar_sub.F                            |    43 +-
 fer/special/ferret_dispatch.F                      |     7 +-
 fer/stk/SOURCE_FILES                               |     2 +
 fer/stk/aux_regrid_lims.F                          |    46 +-
 fer/stk/aux_regrid_lims_1d.F                       |   231 +-
 fer/stk/aux_regrid_lims_1d_t.F                     |   333 +
 fer/stk/aux_regrid_lims_2d_tf.F                    |   318 +
 fer/stk/const_var_context.F                        |     7 +-
 fer/stk/get_axis_speed.F                           |     4 +-
 fer/stk/get_prot_cmnd_data.F                       |     4 +-
 fer/stk/interp_stack.F                             |    43 +-
 fer/stk/is_aggregate_gather.F                      |    81 +-
 fer/stk/is_aggregate_grid.F                        |     9 +-
 fer/stk/is_algebra.F                               |    38 +-
 fer/stk/is_attrib_val.F                            |    66 +-
 fer/stk/is_auxvar_regrid.F                         |    80 +-
 fer/stk/is_const_var.F                             |     7 +-
 fer/stk/is_counter_var.F                           |     5 +-
 fer/stk/is_dependencies.F                          |    48 +-
 fer/stk/is_do_gc_fcn.F                             |    10 +-
 fer/stk/is_do_op.F                                 |    23 +-
 fer/stk/is_grid_mode.F                             |     3 +-
 fer/stk/is_pseudo.F                                |     2 +-
 fer/stk/is_regrid.F                                |     8 +
 fer/stk/is_string.F                                |    17 +-
 fer/stk/is_strip.F                                 |   118 +-
 fer/stk/is_trans.F                                 |    31 +-
 fer/stk/is_uvar_grid.F                             |    19 +-
 fer/stk/known_grid.F                               |     2 +-
 fer/stk/offset_ss.F                                |     7 +-
 fer/stk/pass_ambig_lims.F                          |     5 +-
 fer/stk/push_interp_stack.F                        |     5 +-
 fer/stk/rcvd_regrid.F                              |     6 +-
 fer/stk/rqst_regrid.F                              |     8 +-
 fer/utl/SOURCE_FILES                               |    10 +-
 fer/{gnl/all_1_arg.F => utl/all_1_arg_expr.F}      |    47 +-
 fer/utl/calendar_axis.F                            |     2 +-
 fer/utl/confine_axis.F                             |    28 +-
 fer/utl/copy_agg_into.F                            |    15 +-
 fer/utl/copy_agg_into_sub.F                        |    52 +-
 fer/utl/copy_agg_ptr_into_sub.F                    |    42 +-
 fer/utl/count_number_list.F                        |    51 +-
 fer/utl/decrement_plot_grid.F                      |     0
 fer/utl/display_dependency_sub.F                   |    66 +-
 fer/utl/{extract_dp_line.F => extract_arg1_line.F} |    64 +-
 fer/utl/{extract_dp_line.F => extract_arg4_line.F} |    64 +-
 fer/utl/extract_dp_line.F                          |     3 +
 fer/utl/extract_dp_line2.F                         |     4 +
 fer/utl/full_scan_indices.F                        |   142 +
 fer/utl/gcf_impose_arg_lim_dflts.F                 |     4 +-
 .../{decrement_plot_grid.F => get_abstract_line.F} |    22 +-
 fer/utl/hunt_indices.F                             |   217 -
 fer/utl/inherit_attrs.F                            |     4 +-
 fer/utl/isubscr_cx.F                               |     3 +-
 fmt/src/tm_ww_ax_1_n.F => fer/utl/its_fmrc.F       |    47 +-
 fer/{ctx/del_cx_dim.F => utl/itsa_1lineif.F}       |    60 +-
 .../{decrement_plot_grid.F => itsa_const_var.F}    |    28 +-
 fer/utl/match4.F                                   |     5 +-
 fer/utl/match_quoted_name.F                        |    22 +-
 fer/utl/parse_string_list.F                        |    54 +-
 fer/utl/{extract_dp_line.F => put_arg5_line.F}     |    66 +-
 fer/utl/report_dependency.F                        |     3 +-
 fer/utl/set_auto_curvi_modes.F                     |    11 +-
 fer/utl/store_dependency.F                         |    81 +-
 fmt/src/tm_note.F => fer/utl/sys_ls.F              |    63 +-
 fer/utl/tdest_world_init.F                         |    27 +-
 fer/utl/transfer_axis.F                            |     7 +-
 fer/utl/update_attributes.F                        |     4 +-
 fer/xeq/SOURCE_FILES                               |     1 +
 fer/xeq/{xeq_else.F => xeq_annotate.F}             |    93 +-
 fer/xeq/xeq_cancel.F                               |    80 +-
 fer/xeq/xeq_contour.F                              |     4 +
 fer/xeq/xeq_define.F                               |   153 +-
 fer/xeq/xeq_elif.F                                 |     2 +
 fer/xeq/xeq_else.F                                 |     2 +
 fer/xeq/xeq_exit.F                                 |    11 +
 fer/xeq/xeq_frame.F                                |     2 +
 fer/xeq/xeq_if.F                                   |    80 +-
 fer/xeq/xeq_list.F                                 |     5 +-
 fer/xeq/xeq_plot.F                                 |   139 +-
 fer/xeq/xeq_polygon.F                              |     5 +
 fer/xeq/xeq_repeat.F                               |     7 +-
 fer/xeq/xeq_set.F                                  |    79 +-
 fer/xeq/xeq_shade.F                                |     5 +
 fer/xeq/xeq_show.F                                 |   150 +-
 fer/xeq/xeq_vector.F                               |     8 +-
 fmt/cmn/xdset_info.cmn_text                        |    10 +-
 fmt/cmn/xrisc_buff.cmn                             |     6 +-
 fmt/cmn/xtm_grid.cmn_text                          |     8 +-
 fmt/src/NCF_Util.c                                 |   140 +-
 fmt/src/SOURCE_FILES                               |     6 +
 .../{tm_make_basic_axis.F => cd_1d_line_from_2d.F} |   113 +-
 fmt/src/cd_add_var.F                               |     5 +-
 fmt/src/cd_clean_grids.F                           |    26 +-
 fmt/src/cd_dim_only.F                              |     0
 fmt/src/cd_get_1_axis.F                            |   121 +-
 fmt/src/cd_get_1_dep_var.F                         |     8 +-
 ...tm_deallo_dyn_grid.F => cd_get_calendar_name.F} |    76 +-
 fmt/src/cd_get_generic_bounds.F                    |    10 +
 fmt/src/cd_get_line_direction.F                    |    10 +-
 fmt/src/cd_get_var_att_id.F                        |     3 +-
 fmt/src/cd_get_var_id.F                            |    11 +-
 fmt/src/cd_get_var_info.F                          |     3 -
 fmt/src/cd_init_dset.F                             |    14 +-
 fmt/src/cd_make_fmrc_axes.F                        |   369 +
 fmt/src/cd_make_fmrc_fcal_axis.F                   |   152 +
 .../{cd_transfer_attribute.F => cd_rename_dim.F}   |    53 +-
 fmt/src/cd_scan_aux_coords.F                       |   173 +
 fmt/src/cd_scan_vars.F                             |    46 +-
 fmt/src/cd_transfer_attribute.F                    |     2 -
 fmt/src/cd_write_attrib.F                          |    16 +-
 fmt/src/cd_write_axis.F                            |    13 +-
 fmt/src/cd_write_var.F                             |    36 +-
 fmt/src/ez_init_dset.F                             |     8 +-
 fmt/src/ez_permuted_index.F                        |    43 +-
 fmt/src/ez_read.F                                  |     3 +-
 fmt/src/nc_get_attrib.F                            |    24 +-
 fmt/src/nc_get_attrib_string.F                     |    16 +-
 fmt/src/string_array_find_quoted.c                 |    37 +-
 fmt/src/tm_allo_tmp_line.F                         |     3 +
 fmt/src/tm_check_bnds.F                            |    89 +-
 fmt/src/tm_check_bnds_centered.F                   |    27 +-
 fmt/src/tm_deallo_dyn_grid.F                       |     7 +-
 fmt/src/tm_fmt.F                                   |    36 +-
 fmt/src/tm_init_dset.F                             |     3 +-
 fmt/src/tm_loc_string.F                            |    10 +-
 fmt/src/tm_make_basic_axis.F                       |     4 +
 fmt/src/tm_note.F                                  |    10 +-
 fmt/src/tm_switch_nan.c                            |     9 +-
 fmt/src/tm_ww_ax_1_n.F                             |     8 +-
 fmt/src/tm_ww_axlims.F                             |     8 +-
 fmt/src/xdset_info_data.F                          |     2 +
 jnls/go/focean.jnl                                 |    12 +-
 jnls/go/mp_grid.jnl                                |     1 +
 jnls/go/mp_land.jnl                                |     5 +-
 palettes/QQC_V3_by_level.spk                       |    16 +
 palettes/blue_gold.spk                             |     9 +
 palettes/blue_green_gold.spk                       |    10 +
 palettes/blue_purple_orange.spk                    |    12 +
 palettes/bluegrayscale.spk                         |     3 +
 palettes/coralreefwatch_dhw_value_white.spk        |    20 +
 palettes/green_soft.spk                            |    12 +
 palettes/inverse_medium_rainbow.spk                |    10 +
 palettes/koppen.spk                                |    18 +
 palettes/lightgray_bottom0.spk                     |    16 +
 palettes/medium_rainbow.spk                        |    10 +
 palettes/woce2.spk                                 |     7 +
 platform_specific.mk.i386-linux                    |    10 +
 platform_specific.mk.i386-linux-gnu                |    10 +
 platform_specific.mk.intel-mac                     |     3 +-
 platform_specific.mk.x86_64-linux                  |    11 +
 platform_specific.mk.x86_64-linux-gnu              |    11 +
 ppl/complot/SOURCE_FILES                           |     3 +
 ppl/complot/gksmv.F                                |    48 +-
 ppl/complot/special_sym_code.F                     |   278 +
 ppl/complot/symbel.F                               |   874 +-
 ppl/complot/{symbel.F => symbel_hershey.F}         |    44 +-
 .../decrement_plot_grid.F => ppl/complot/symwid.F  |    26 +-
 ppl/include/AXISL.INC                              |     9 +-
 ppl/include/CONT.INC                               |     8 +-
 ppl/include/LINES.INC                              |    10 +-
 ppl/include/TAXIS.INC                              |     7 +-
 ppl/plot/daxis.F                                   |   107 +-
 ppl/plot/daxis2.F                                  |    17 +-
 ppl/plot/labdrw.F                                  |    32 +-
 ppl/plot/lev.F                                     |     5 -
 ppl/plot/linfit.F                                  |    18 +-
 ppl/plot/opnppl.F                                  |    23 +-
 ppl/plot/plotxy.F                                  |    18 +
 ppl/plot/plotxy_ribbon.F                           |    47 +-
 ppl/plot/plotz.F                                   |    22 +
 ppl/plot/pltit.F                                   |   130 +-
 ppl/plot/pplcmd_f.F                                |   292 +-
 ppl/plot/ppldata.F                                 |     7 +
 ppl/plot/pplldx.F                                  |   152 +-
 ppl/plot/ppllist.F                                 |     3 +-
 ppl/plot/prmtiv.F                                  |    22 +-
 ppl/plot/rdseq.F                                   |     2 +
 ppl/plot/redsf.F                                   |     2 +
 ppl/plot/setax.F                                   |   117 +-
 ppl/plot/setlab.F                                  |    16 +-
 ppl/plot/stmnmx.F                                  |    37 +-
 ppl/plotlib/SOURCE_FILES                           |     2 +
 ppl/plotlib/contur.F                               |    26 +-
 ppl/plotlib/diff.F                                 |     6 +-
 ppl/plotlib/scinot.F                               |    79 +-
 ppl/plotlib/{scinot.F => scinot_d.F}               |     6 +-
 ppl/plotlib/taxis.F                                |    10 +-
 ppl/plotlib/taxis0.F                               |   223 +-
 ppl/plotlib/taxis1.F                               |    10 +-
 ppl/plotlib/taxis3.F                               |    32 +-
 ppl/plotlib/tayis.F                                |    13 +-
 ppl/plotlib/tayis0.F                               |   216 +-
 ppl/plotlib/tayis1.F                               |    11 +-
 ppl/plotlib/tayis3.F                               |    12 +-
 ppl/plotlib/xaxis1.F                               |    26 +-
 ppl/plotlib/xaxis2.F                               |    17 +-
 ppl/plotlib/yaxis1.F                               |    26 +-
 ppl/plotlib/yaxis2.F                               |    12 +-
 ppl/pplepic/fixtim.F                               |    14 +
 ppl/symlib/parse.F                                 |    17 +-
 ppl/symlib/parsex.F                                |    18 +-
 ppl/symlib/setsym.F                                |     3 +-
 ppl/tmap_inc/century.cmn                           |     8 +-
 ppl/tmap_inc/cont_inc.decl                         |     6 +-
 ppl/tmap_inc/gkplot.cmn                            |     6 +
 ppl/tmap_inc/lines_inc.decl                        |     7 +
 ppl/{tmapadds => tmap_inc}/pplmem.h                |     5 +-
 ppl/tmap_inc/pyfonts.cmn                           |    41 +
 ppl/tmap_inc/taxis_inc.decl                        |    28 +-
 ppl/tmapadds/SOURCE_FILES                          |     6 +-
 ppl/tmapadds/aline_sub.F                           |     1 -
 ppl/tmapadds/compute_mnstd.F                       |   136 +-
 .../tmapadds/get_pyfont_settings.F                 |    36 +-
 ppl/tmapadds/key.F                                 |    98 +-
 ppl/tmapadds/line_key.F                            |     1 -
 ppl/tmapadds/pplld_pts_envelope.c                  |     2 +-
 ppl/tmapadds/pplldc_envelope.c                     |     2 +-
 ppl/tmapadds/pplldx_envelope.c                     |     2 +-
 ppl/tmapadds/pyfont_block_data.F                   |   110 +
 ppl/tmapadds/reallo_envelope.c                     |     2 +-
 ppl/tmapadds/reallo_ppl_memory.c                   |    81 -
 ppl/tmapadds/set_levels_shade_fill.F               |    48 +-
 .../tmapadds/user_to_inch.F                        |    28 +-
 ppl/tmapadds/ws_line_spectrum.F                    |    46 +-
 pviewmod/__init__.py                               |    32 +-
 pviewmod/cmndhelperpq.py                           |    41 +-
 pviewmod/pipedimagerpq.py                          |   230 +-
 pviewmod/pipedviewerpq.py                          |   162 +-
 pviewmod/pyferretbindings.py                       |    59 +-
 pyfermod/.project                                  |    17 +
 pyfermod/.pydevproject                             |     9 +
 pyfermod/__init__.py                               |    19 +-
 pyfermod/ferrdataset.py                            |    24 +
 pyfermod/ferrdatavar.py                            |    22 +
 pyfermod/ferrvar.py                                |    22 +
 pyfermod/graphbind/__init__.py                     |    10 +-
 pyfermod/graphbind/abstractpyferretbindings.py     |    22 +-
 pyfermod/libpyferret.c                             |    17 +
 setup.py                                           |    37 +-
 site_specific.mk                                   |    46 +-
 639 files changed, 69757 insertions(+), 105191 deletions(-)

diff --git a/Makefile b/Makefile
index 1c1772d..6fde475 100644
--- a/Makefile
+++ b/Makefile
@@ -45,32 +45,36 @@ pymod_optimized :
 	rm -fr $(DIR_PREFIX)/build $(DIR_PREFIX)/pyferret_install
 	( cd $(DIR_PREFIX) ; \
 	  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 build )
+	  $(PYTHON_EXE) setup.py --quiet build )
 	( cd $(DIR_PREFIX) ; \
 	  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 install -O2 --prefix=$(DIR_PREFIX)/pyferret_install )
+	  $(PYTHON_EXE) setup.py --quiet install -O2 --prefix=$(DIR_PREFIX)/pyferret_install )
 
 .PHONY : pymod_debug
 pymod_debug :
 	rm -fr $(DIR_PREFIX)/build $(DIR_PREFIX)/pyferret_install
 	( cd $(DIR_PREFIX) ; \
 	  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 build -g )
+	  $(PYTHON_EXE) setup.py --quiet build -g )
 	( cd $(DIR_PREFIX) ; \
 	  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 install -O0 --prefix=$(DIR_PREFIX)/pyferret_install )
+	  $(PYTHON_EXE) setup.py --quiet install -O0 --prefix=$(DIR_PREFIX)/pyferret_install )
 
 ## Remove everything that was built
 .PHONY : clean
@@ -96,7 +100,7 @@ install_env :
 	bin/make_environment_tar . . -y
 	mkdir -p $(INSTALL_FER_DIR)
 	mv -f fer_environment.tar.gz $(INSTALL_FER_DIR)
-	( cd $(INSTALL_FER_DIR) ; tar xvzf fer_environment.tar.gz )
+	( 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
@@ -105,23 +109,26 @@ install_exes :
 	bin/make_executable_tar . . -y
 	mkdir -p $(INSTALL_FER_DIR)
 	mv -f fer_executables.tar.gz $(INSTALL_FER_DIR)
-	( cd $(INSTALL_FER_DIR) ; tar xvzf fer_executables.tar.gz )
+	( cd $(INSTALL_FER_DIR) ; tar xzf fer_executables.tar.gz )
 	cp -f threddsBrowser/toolsUI/toolsUI-4.1.jar $(INSTALL_FER_DIR)/lib/
 
-## The following is for installing the updated threddsBrowser.jar, libpyferret.so,
-## and python scripts into $(INSTALL_FER_DIR)/lib without having to go
-## through the make_executables_tar script.
+## 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.
 .PHONY : update
 update :
 	mkdir -p $(INSTALL_FER_DIR)/lib
-	cp -f $(DIR_PREFIX)/efmem/ferret_ef_mem_subsc.so $(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 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 install -O2 --prefix=$(INSTALL_FER_DIR) )
+	  $(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
 
 ##
diff --git a/bench/39839D6273F1749BABAD6C1441B2BBDD_netcdf.nc b/bench/39839D6273F1749BABAD6C1441B2BBDD_netcdf.nc
new file mode 100644
index 0000000..8760a41
Binary files /dev/null and b/bench/39839D6273F1749BABAD6C1441B2BBDD_netcdf.nc differ
diff --git a/bench/RUN_TESTS.sh b/bench/RUN_TESTS.sh
index 699596c..7e3772e 100755
--- a/bench/RUN_TESTS.sh
+++ b/bench/RUN_TESTS.sh
@@ -20,6 +20,9 @@ shift
 bmarker="$USER"
 bcomment="$*"
 
+PS1='$ '
+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
@@ -86,10 +89,6 @@ for jnl in $test_scripts; do
    echo "   $jnl" >> $log_file
 done
 
-#set up external functions search path
-FER_EXTERNAL_FUNCTIONS="$efdir"
-export FER_EXTERNAL_FUNCTIONS
-
 #set up a generic data environment
 echo "****** Restricting Ferret paths to bench directory ******" >> $log_file
 FER_DATA="."
@@ -127,9 +126,15 @@ 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
 fi
 
 # run each of the scripts in the list
diff --git a/bench/TEST_SCRIPTS b/bench/TEST_SCRIPTS
index 97891b5..2ea99c1 100644
--- a/bench/TEST_SCRIPTS
+++ b/bench/TEST_SCRIPTS
@@ -221,5 +221,26 @@ bn_show_outfile.jnl
 bn_date1900_array.jnl
 bn_spawn_size.jnl
 bn_polygon_log.jnl
+bn694_bug_fixes.jnl
+bn_permute_ascii.jnl
+bn_lon_lat_time_string.jnl
+bn_save_justdim.jnl
+bn_time2d.jnl
+bn_legend_labels.jnl
+bn_DQ.jnl
+bn695_bug_fixes.jnl
+bn_f_tax_fcns.jnl
+bn_fmrc.jnl
+bn_return_defined.jnl
+bn_can_var_noerr.jnl
+bn_annotate.jnl
+bn_auxiliary.jnl
+bn_plot_ribbon_gaploc.jnl
+bn_time_short_axes.jnl
+bn_floatstr_extended.jnl
+bn696_bug_fixes
+bn_bin_regrid
 bn_all_ef.jnl
 bn_startupfile.jnl
+! PyFerret-only tests
+bn_outline_poly.jnl
diff --git a/bench/TRASH_FILES b/bench/TRASH_FILES
index 4ee8823..6c3ba74 100644
--- a/bench/TRASH_FILES
+++ b/bench/TRASH_FILES
@@ -10,8 +10,10 @@ a1.nc
 a2.nc
 aa.nc
 abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy.gif
+a.gif
 a.jnl
 a.nc
+a.png
 a.txt
 anew_global.nc
 another_file_vars.nc
@@ -110,6 +112,7 @@ irrxzt.nc
 junk.dat
 justg.nc
 justh.nc
+layerz_test_data.txt
 linecolors.plt
 list_of_numbers.dat
 longax.dat
@@ -117,6 +120,7 @@ longtitle.nc
 longvname.nc
 lonlat.dat
 lonlat.nc
+metafile.plt
 multi_line_labels.plt
 my_file_vars.nc
 mypack.nc
diff --git a/bench/ansley_official.linux_err b/bench/ansley_official.linux_err
index b282a2f..8d51c0c 100644
--- a/bench/ansley_official.linux_err
+++ b/bench/ansley_official.linux_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 53500930 Oct 29 15:34 /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
 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:  ticket 2115 and a new test script for 2201
+Note: testing declaration of model str in match4.F as *(*)
 ncdump output will be in all_ncdump.out, and appended to this log file 
 ***** Restricting Ferret paths to bench directory *****
 FER_DAT=.
@@ -17,10 +17,10 @@ FER_EXTERNAL_FUNCTIONS=/home/users/ansley/build/linux/FERRET/external_functions/
 FER_GO=. /home/users/tmap/ferret/linux/go /home/users/tmap/ferret/linux/examples /home/users/tmap/ferret/linux/contrib /home/users/tmap/ferret/tmap_go
 FER_GRIDS=.
 FER_LIBS=/home/users/tmap/ferret/linux/lib
-FER_LINK_DIR=/home/users/tmap/ferret_link/linux
 FER_PALETTE=. /home/users/tmap/ferret/linux/ppl
 PWD=/home/users/ansley/build/linux/FERRET/bench
-Beginning at Wed Oct 29 15:55:55 PDT 2014
+PYFER_EXTERNAL_FUNCTIONS=/home/users/tmap/ferret/linux/ext_func/pylibs
+Beginning at Tue Nov 17 09:25:34 PST 2015
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
         SET EXPRESSION has not been given or implied
@@ -41,12 +41,12 @@ 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: Valid argument $1 choices are: xxxxx|goodbye
+           *** 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: Valid argument $3 choices are: hello|goodbye
+           *** NOTE: Valid argument $3 choices are: hello|goodbye
  **ERROR: my error message
 message/cont $3">greetings|hello|goodbye<my error message"
  **ERROR: my error message
@@ -57,17 +57,17 @@ message/cont $3""
 message/cont $3"<"
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3"||"
- *** NOTE: Valid argument $3 choices are: |
+           *** NOTE: Valid argument $3 choices are: |
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3"|>|"
- *** NOTE: Valid argument $3 choices are: >|
+           *** NOTE: Valid argument $3 choices are: >|
  **ERROR: command syntax: empty text string provided with ">": >|
 message/cont $3">|"
  **ERROR: command syntax: empty text string provided with ">": |<
 message/cont $3"|<"
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3"|>"
- *** NOTE: Valid argument $3 choices are: >
+           *** NOTE: Valid argument $3 choices are: >
  **ERROR: command syntax: arg number not in 1-99 range: $100
 say $100
  **ERROR: command syntax: arg number not in 1-99 range: $100)
@@ -105,16 +105,16 @@ MESSAGE/CONTINUE `1*/3`
  **ERROR: command syntax: sst*/3
           * before / is illegal
 MESSAGE/CONTINUE `sst*/3,return=lunits`
- **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,units,dset,
+ **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,f0,units,dset,
             dsetnum,dsetpath,dsettitle,*size,*start,*end,
             *units,*axis,nc_scale,nc_offset,user_scale,user_offset,
-            calendar,dtype,xmod,tmod,status,isDepth,isReady
+            calendar,dtype,xmod,tmod,status,isDepth,isReady,defined
           sst,return=Xsize
 MESSAGE/CONTINUE `sst,return=Xsize`
- **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,units,dset,
+ **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,f0,units,dset,
             dsetnum,dsetpath,dsettitle,*size,*start,*end,
             *units,*axis,nc_scale,nc_offset,user_scale,user_offset,
-            calendar,dtype,xmod,tmod,status,isDepth,isReady
+            calendar,dtype,xmod,tmod,status,isDepth,isReady,defined
           sst,return=trash
 MESSAGE/CONTINUE `sst,return=trash`
  PERMANENT data cleared from memory
@@ -129,12 +129,22 @@ can var
  LISTing to file v1file.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ **ERROR: invalid command: ENDIF can only be used in an IF clause
+ENDIF
+ **ERROR: command syntax: ELIF cannot be used in single line IF
+          IF 0 THEN say ERROR ELIF 1 THEN say "CORRECT if you see this"
+IF 0 THEN say ERROR ELIF 1 THEN say "CORRECT if you see this"
+ **ERROR: command syntax: Trash after ENDIF
+          IF 0 THEN say ERROR ELSE say "CORRECT if you see this" ENDIF say trash
+IF 0 THEN say ERROR ELSE say "CORRECT if you see this" ENDIF say trash
+           *** NOTE: Unclosed IF statement ... assuming ENDIF
  **ERROR: invalid command: ELSE can only be used between IF and ENDIF
 else
  **ERROR: invalid command: ENDIF can only be used in an IF clause
 endif
  **ERROR: invalid command: ELIF can only be used between IF and ENDIF
 elif
+           *** NOTE: Unclosed IF statement ... assuming ENDIF
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: command syntax: IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
@@ -152,7 +162,7 @@ load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Ambiguous coordinates on X axis: X[I=1:5] - X[I=6:9]
+           *** NOTE: Ambiguous coordinates on X axis: X[I=1:5] - X[I=6:9]
  **ERROR: inconsistent sizes of data regions: X axis
           X[I=6:9] has 4 points (I=6:9)
           expression has 5 points (I=1:5)
@@ -227,8 +237,8 @@ Re-defining viewport LM6
 Re-defining viewport UM6
  Using every   2th vector in the X direction
  Using every   2th vector in the Y direction
- *** NOTE: /XLIMITS and /YLIMITS are deprecated.
- *** NOTE: Use /HLIMITS and /VLIMITS instead.
+           *** NOTE: /XLIMITS and /YLIMITS are deprecated.
+           *** NOTE: Use /HLIMITS and /VLIMITS instead.
  **ERROR: invalid command: color=noexist
           Colors are Black,Red,Green,Blue,LightBlue,Purple, and White
 plot/over/i=1:10/color=noexist i
@@ -275,12 +285,12 @@ 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: Valid symbol test2 choices are: hello|bye|
+           *** 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: Valid symbol t2 choices are: solong>really hello|bye|
+           *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -330,12 +340,12 @@ list tu
  Cached data cleared from memory
  **ERROR: request exceeds memory setting: 25 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.
+           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
  Cached data cleared from memory
- *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] +  X[X=1.1:11:1.5]
- *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] +  X[X=1.1:11:1.5]
- *** NOTE: Ambiguous coordinates on X axis: TEMP[I=101:120:4]+X[I=101:120:4]
+           *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] +  X[X=1.1:11:1.5]
+           *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] +  X[X=1.1:11:1.5]
+           *** NOTE: Ambiguous coordinates on X axis: TEMP[I=101:120:4]+X[I=101:120:4]
  **ERROR: invalid command: non-positive delta value: X[I=1:5:-1]
 list x[i=1:5:-1]
  **ERROR: invalid command: non-positive delta value: X[I=1:5:0]
@@ -399,9 +409,9 @@ list a
  LISTing to file test_abs.cdf
  LISTing to file test_abs.cdf
  LISTing to file test_abs.cdf
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
- *** NOTE: Write the data initially with the /BOUNDS qualifier
+           *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
+           *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
+           *** NOTE: Write the data initially with the /BOUNDS qualifier
  LISTing to file test2.cdf
  LISTing to file FL.cdf
  LISTing to file FTLON.cdf
@@ -465,7 +475,7 @@ list/format=cdf/l=13/append/file=test_abs.cdf l1
  LISTing to file test_fil.cdf
  LISTing to file test_fil.cdf
  LISTing to file test_fil.cdf
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: regridding: G=W - more than 1 target grid
@@ -559,14 +569,12 @@ Replacing definition of axis TAX
 list v2-and-minus
  **ERROR: dimensions improperly specified: 99999999 words were requested.
 list x
- *** NOTE: Check for unspecified limits on an ABSTRACT axis
- *** NOTE: Use the SHOW GRID command to see the axes
+           *** NOTE: Check for unspecified limits on an ABSTRACT axis
+           *** NOTE: Use the SHOW GRID command to see the axes
  **ERROR: dimensions improperly specified: 99999999 words were requested.
 list i
- *** NOTE: Check for unspecified limits on an ABSTRACT axis
- *** NOTE: Use the SHOW GRID command to see the axes
- **ERROR: variable unknown or not in data set: 'i'
-list 'i'
+           *** NOTE: Check for unspecified limits on an ABSTRACT axis
+           *** NOTE: Use the SHOW GRID command to see the axes
  **ERROR: command syntax: v2-and-minus[i=5:15 at ddc]
           - before and is illegal
 list v2-and-minus[i=5:15 at ddc]
@@ -581,15 +589,15 @@ Replacing definition of axis ZAX
 Replacing definition of axis TAX
  **ERROR: request exceeds memory setting: 24000 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.
+           *** 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.
 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.
+           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
 Replacing definition of axis XAX
 Replacing definition of axis YAX
 Replacing definition of axis ZAX
@@ -599,7 +607,7 @@ Replacing definition of axis TAX
 SET DATA/EZ/format=stream/var=num/grid=mygrid NoSuchFile.dat
  **ERROR: Size of file ./junk.dat doesn't match size specified by variables/grid
 load num
- *** NOTE: Binary file reading: Insufficient memory reading variable    2
+           *** NOTE: Binary file reading: Insufficient memory reading variable    2
  **ERROR: invalid command: variable permutations only allowed for STREAM format
 SET DATA/EZ/var=num/order=vxyzt/grid=mygrid junk.dat
  **ERROR: invalid command: invalid argument for /TYPE
@@ -632,37 +640,37 @@ Replacing definition of axis TAX
 Replacing definition of axis TAX
 Replacing definition of axis TAX
 Replacing definition of axis TAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
  **ERROR: improper grid or axis definition: unrepairable repeated axis coords
 define axis/from/x/name=xax {6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
  **ERROR: improper grid or axis definition: unrepairable repeated axis coords
 define axis/from/x/name=xax/edges {6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
  **ERROR: improper grid or axis definition: unrepairable repeated axis coords
 define axis/from/x/name=xax/edges {6,6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
 Replacing definition of axis XAX2
- *** NOTE: (fyi) units are not subject to auto-conversion: BLAHS
+           *** NOTE: (fyi) units are not subject to auto-conversion: BLAHS
 Replacing definition of axis XAX2
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -695,7 +703,7 @@ Replacing definition of axis TCAL
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -751,8 +759,8 @@ stat i, noname(i)
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** 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
  **ERROR: invalid command: delta values may only modify variable names
 LIST/i=2:4:2 VAR
  PERMANENT data cleared from memory
@@ -761,15 +769,15 @@ LIST/i=2:4:2 VAR
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** 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
  PERMANENT data cleared from memory
  TEMPORARY 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
+           *** 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of grid GX
@@ -794,14 +802,11 @@ 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
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 360.00 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 360.00 days
 Replacing definition of grid TGRID
 Replacing definition of axis TDAYS
 Replacing definition of grid TGRID
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: command syntax: dash=(1., 2.)
@@ -817,6 +822,18 @@ 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 X 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
  Using every   2th vector in the Y direction
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -842,19 +859,10 @@ Replacing definition of axis X10
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Not deleted: X10
- *** NOTE: Axis is in use by grid G10X5
+           *** NOTE: Not deleted: X10
+           *** NOTE: Axis is in use by grid G10X5
  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
-
-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
  PERMANENT data cleared from memory
@@ -922,10 +930,10 @@ list strcat ("All work and no play")
  LISTing to file test_modulo.cdf
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** 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
+           *** NOTE: Not using NetCDF strides for multi-cycle modulo
+           *** 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Re-defining viewport MID
@@ -965,6 +973,18 @@ list a[gx=xnrst at sum]
  **ERROR: invalid command: cant use this regrid transform on strings: @MOD
 list a[gx=xnrst at mod]
  LISTing to file foo.cdf
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" - {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" * {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" / {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" ^ {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead SIN({"a","b","c"})
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead MAX("a",{"a","b","c"})
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -980,12 +1000,12 @@ Replacing definition of grid G1
  **TMAP ERR: syntax error in string
              Unrecognized field type: D
              Data set: ./bn_delimited_read_date_time.dat
- *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
+           *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
 SET DATA/FORM=delimited/type="d, da2,date2"  bn_delimited_read_date_time.dat
  **TMAP ERR: syntax error in string
              Unrecognized field type: DATE2
              Data set: ./bn_delimited_read_date_time.dat
- *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
+           *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
 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
@@ -1049,279 +1069,279 @@ Replacing definition of grid MYGRID
  LISTing to file longax.dat
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: regarding ./test_axes.nc ...
- *** NOTE: Climatological axes test_irreg, test_seas defined
+           *** NOTE: regarding ./test_axes.nc ...
+           *** NOTE: Climatological axes test_irreg, test_seas defined
  PERMANENT data cleared from memory
  TEMPORARY 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: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
 Replacing definition of axis TAX2
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file string4d.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: regarding ./test_axes.nc ...
- *** NOTE: Climatological axes test_irreg, test_seas defined
- *** NOTE: Not deleted: TEST_IRREG
- *** NOTE: Axis is in use by grid (G023)
- *** NOTE: Not deleted: XEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: XODD
- *** NOTE: Axis is in use by grid G13
- *** NOTE: Not deleted: YEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: YODD
- *** NOTE: Axis is in use by grid G2
- *** NOTE: Not deleted: ZEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: ZODD
- *** NOTE: Axis is in use by grid G3
- *** NOTE: Not deleted: TEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: TODD
- *** NOTE: Axis is in use by grid G4
- *** NOTE: Not deleted: XCOARSE
- *** NOTE: Axis is in use by grid GCOARSE
- *** NOTE: Not deleted: YFINE
- *** NOTE: Axis is in use by grid GFINE
- *** NOTE: Not deleted: YCOARSE
- *** NOTE: Axis is in use by grid GCOARSE
- *** NOTE: Not deleted: XFINE
- *** NOTE: Axis is in use by grid GFINE
- *** NOTE: Not deleted: TAX48
- *** NOTE: Axis is in use by grid G48
- *** NOTE: Not deleted: XEZ1
- *** NOTE: Axis is in use by grid GEZ1
- *** NOTE: Not deleted: XEZ2
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: YEZ
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: ZEZ
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: XEZ3
- *** NOTE: Axis is in use by grid GEZ3
- *** NOTE: Not deleted: LON_FIELD_J_AXIS
- *** NOTE: Axis is in use by grid LON_FIELD_GRID
- *** NOTE: Not deleted: LAT_FIELD_I_AXIS
- *** NOTE: Axis is in use by grid LAT_FIELD_GRID
- *** NOTE: Not deleted: LAT_FIELD_J_AXIS
- *** NOTE: Axis is in use by grid LAT_FIELD_GRID
- *** NOTE: Not deleted: LON_FIELD_I_AXIS
- *** NOTE: Axis is in use by grid LON_FIELD_GRID
- *** NOTE: Not deleted: XIRREG
- *** NOTE: Axis is in use by grid GIRREG
- *** NOTE: Not deleted: TCENTURY
- *** NOTE: Axis is in use by grid GCENTURY
- *** NOTE: Not deleted: TAX5DAY
- *** NOTE: Axis is in use by grid G5DAY
- *** NOTE: Not deleted: XAX10
- *** NOTE: Axis is in use by grid G5_10
- *** NOTE: Not deleted: X5
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: Y5
- *** NOTE: Axis is in use by grid G10X5
- *** NOTE: Not deleted: TIME1
- *** NOTE: Axis is in use by grid GHB1
- *** NOTE: Not deleted: TIME2
- *** NOTE: Axis is in use by grid GCQ1
- *** NOTE: Not deleted: TAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: X4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: Y4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: Z4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: T4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: XCHANNEL
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: YRISE
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: ZLAYER
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: TIME
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: Z1
- *** NOTE: Axis is in use by grid G1
- *** NOTE: Not deleted: TCAL
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: XTROP
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: YTROP
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: ZAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: Y1
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: Y2
- *** NOTE: Axis is in use by grid G10X2
- *** NOTE: Not deleted: JMONTHS
- *** 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: 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: 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: 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
- *** NOTE: Axis is in use by grid G13
- *** NOTE: Not deleted: YEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: YODD
- *** NOTE: Axis is in use by grid G2
- *** NOTE: Not deleted: ZEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: ZODD
- *** NOTE: Axis is in use by grid G3
- *** NOTE: Not deleted: TEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: TODD
- *** NOTE: Axis is in use by grid G4
- *** NOTE: Not deleted: XCOARSE
- *** NOTE: Axis is in use by grid GCOARSE
- *** NOTE: Not deleted: YFINE
- *** NOTE: Axis is in use by grid GFINE
- *** NOTE: Not deleted: YCOARSE
- *** NOTE: Axis is in use by grid GCOARSE
- *** NOTE: Not deleted: XFINE
- *** NOTE: Axis is in use by grid GFINE
- *** NOTE: Not deleted: TAX48
- *** NOTE: Axis is in use by grid G48
- *** NOTE: Not deleted: XEZ1
- *** NOTE: Axis is in use by grid GEZ1
- *** NOTE: Not deleted: XEZ2
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: YEZ
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: ZEZ
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: XEZ3
- *** NOTE: Axis is in use by grid GEZ3
- *** NOTE: Not deleted: LON_FIELD_J_AXIS
- *** NOTE: Axis is in use by grid LON_FIELD_GRID
- *** NOTE: Not deleted: LAT_FIELD_I_AXIS
- *** NOTE: Axis is in use by grid LAT_FIELD_GRID
- *** NOTE: Not deleted: LAT_FIELD_J_AXIS
- *** NOTE: Axis is in use by grid LAT_FIELD_GRID
- *** NOTE: Not deleted: LON_FIELD_I_AXIS
- *** NOTE: Axis is in use by grid LON_FIELD_GRID
- *** NOTE: Not deleted: XIRREG
- *** NOTE: Axis is in use by grid GIRREG
- *** NOTE: Not deleted: TCENTURY
- *** NOTE: Axis is in use by grid GCENTURY
- *** NOTE: Not deleted: TAX5DAY
- *** NOTE: Axis is in use by grid G5DAY
- *** NOTE: Not deleted: XAX10
- *** NOTE: Axis is in use by grid G5_10
- *** NOTE: Not deleted: X5
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: Y5
- *** NOTE: Axis is in use by grid G10X5
- *** NOTE: Not deleted: TIME1
- *** NOTE: Axis is in use by grid GHB1
- *** NOTE: Not deleted: TIME2
- *** NOTE: Axis is in use by grid GCQ1
- *** NOTE: Not deleted: TAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: X4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: Y4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: Z4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: T4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: XCHANNEL
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: YRISE
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: ZLAYER
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: TIME
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: Z1
- *** NOTE: Axis is in use by grid G1
- *** NOTE: Not deleted: TCAL
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: XTROP
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: YTROP
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: ZAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: Y1
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: Y2
- *** NOTE: Axis is in use by grid G10X2
- *** NOTE: Not deleted: JMONTHS
- *** 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: 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: ZAXLEVITR1_1
- *** NOTE: Axis is in use by grid GG2
- *** NOTE: Not deleted: (AX020)
- *** NOTE: Axis is in use by grid GG3
+           *** NOTE: regarding ./test_axes.nc ...
+           *** NOTE: Climatological axes test_irreg, test_seas defined
+           *** NOTE: Not deleted: TEST_IRREG
+           *** NOTE: Axis is in use by grid (G023)
+           *** NOTE: Not deleted: XEVEN
+           *** NOTE: Axis is in use by grid EVEN
+           *** NOTE: Not deleted: XODD
+           *** NOTE: Axis is in use by grid G13
+           *** NOTE: Not deleted: YEVEN
+           *** NOTE: Axis is in use by grid EVEN
+           *** NOTE: Not deleted: YODD
+           *** NOTE: Axis is in use by grid G2
+           *** NOTE: Not deleted: ZEVEN
+           *** NOTE: Axis is in use by grid EVEN
+           *** NOTE: Not deleted: ZODD
+           *** NOTE: Axis is in use by grid G3
+           *** NOTE: Not deleted: TEVEN
+           *** NOTE: Axis is in use by grid EVEN
+           *** NOTE: Not deleted: TODD
+           *** NOTE: Axis is in use by grid G4
+           *** NOTE: Not deleted: XCOARSE
+           *** NOTE: Axis is in use by grid GCOARSE
+           *** NOTE: Not deleted: YFINE
+           *** NOTE: Axis is in use by grid GFINE
+           *** NOTE: Not deleted: YCOARSE
+           *** NOTE: Axis is in use by grid GCOARSE
+           *** NOTE: Not deleted: XFINE
+           *** NOTE: Axis is in use by grid GFINE
+           *** NOTE: Not deleted: TAX48
+           *** NOTE: Axis is in use by grid G48
+           *** NOTE: Not deleted: XEZ1
+           *** NOTE: Axis is in use by grid GEZ1
+           *** NOTE: Not deleted: XEZ2
+           *** NOTE: Axis is in use by grid GEZ2
+           *** NOTE: Not deleted: YEZ
+           *** NOTE: Axis is in use by grid GEZ2
+           *** NOTE: Not deleted: ZEZ
+           *** NOTE: Axis is in use by grid GEZ2
+           *** NOTE: Not deleted: XEZ3
+           *** NOTE: Axis is in use by grid GEZ3
+           *** NOTE: Not deleted: LON_FIELD_J_AXIS
+           *** NOTE: Axis is in use by grid LON_FIELD_GRID
+           *** NOTE: Not deleted: LAT_FIELD_I_AXIS
+           *** NOTE: Axis is in use by grid LAT_FIELD_GRID
+           *** NOTE: Not deleted: LAT_FIELD_J_AXIS
+           *** NOTE: Axis is in use by grid LAT_FIELD_GRID
+           *** NOTE: Not deleted: LON_FIELD_I_AXIS
+           *** NOTE: Axis is in use by grid LON_FIELD_GRID
+           *** NOTE: Not deleted: XIRREG
+           *** NOTE: Axis is in use by grid GIRREG
+           *** NOTE: Not deleted: TCENTURY
+           *** NOTE: Axis is in use by grid GCENTURY
+           *** NOTE: Not deleted: TAX5DAY
+           *** NOTE: Axis is in use by grid G5DAY
+           *** NOTE: Not deleted: XAX10
+           *** NOTE: Axis is in use by grid G5_10
+           *** NOTE: Not deleted: X5
+           *** NOTE: Axis is in use by grid GSRC
+           *** NOTE: Not deleted: Y5
+           *** NOTE: Axis is in use by grid G10X5
+           *** NOTE: Not deleted: TIME1
+           *** NOTE: Axis is in use by grid GHB1
+           *** NOTE: Not deleted: TIME2
+           *** NOTE: Axis is in use by grid GCQ1
+           *** NOTE: Not deleted: TAX
+           *** NOTE: Axis is in use by grid GFORMAT
+           *** NOTE: Not deleted: X4
+           *** NOTE: Axis is in use by grid G4D
+           *** NOTE: Not deleted: Y4
+           *** NOTE: Axis is in use by grid G4D
+           *** NOTE: Not deleted: Z4
+           *** NOTE: Axis is in use by grid G4D
+           *** NOTE: Not deleted: T4
+           *** NOTE: Axis is in use by grid G4D
+           *** NOTE: Not deleted: XCHANNEL
+           *** NOTE: Axis is in use by grid GSIGMA
+           *** NOTE: Not deleted: YRISE
+           *** NOTE: Axis is in use by grid GSIGMA
+           *** NOTE: Not deleted: ZLAYER
+           *** NOTE: Axis is in use by grid GSIGMA
+           *** NOTE: Not deleted: TIME
+           *** NOTE: Axis is in use by grid GSIGMA
+           *** NOTE: Not deleted: Z1
+           *** NOTE: Axis is in use by grid G1
+           *** NOTE: Not deleted: TCAL
+           *** NOTE: Axis is in use by grid GSRC
+           *** NOTE: Not deleted: XTROP
+           *** NOTE: Axis is in use by grid GXYT
+           *** NOTE: Not deleted: YTROP
+           *** NOTE: Axis is in use by grid GXYT
+           *** NOTE: Not deleted: ZAX
+           *** NOTE: Axis is in use by grid GFORMAT
+           *** NOTE: Not deleted: Y1
+           *** NOTE: Axis is in use by grid GSRC
+           *** NOTE: Not deleted: Y2
+           *** NOTE: Axis is in use by grid G10X2
+           *** NOTE: Not deleted: JMONTHS
+           *** 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: 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: 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: 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
+           *** NOTE: Axis is in use by grid G13
+           *** NOTE: Not deleted: YEVEN
+           *** NOTE: Axis is in use by grid EVEN
+           *** NOTE: Not deleted: YODD
+           *** NOTE: Axis is in use by grid G2
+           *** NOTE: Not deleted: ZEVEN
+           *** NOTE: Axis is in use by grid EVEN
+           *** NOTE: Not deleted: ZODD
+           *** NOTE: Axis is in use by grid G3
+           *** NOTE: Not deleted: TEVEN
+           *** NOTE: Axis is in use by grid EVEN
+           *** NOTE: Not deleted: TODD
+           *** NOTE: Axis is in use by grid G4
+           *** NOTE: Not deleted: XCOARSE
+           *** NOTE: Axis is in use by grid GCOARSE
+           *** NOTE: Not deleted: YFINE
+           *** NOTE: Axis is in use by grid GFINE
+           *** NOTE: Not deleted: YCOARSE
+           *** NOTE: Axis is in use by grid GCOARSE
+           *** NOTE: Not deleted: XFINE
+           *** NOTE: Axis is in use by grid GFINE
+           *** NOTE: Not deleted: TAX48
+           *** NOTE: Axis is in use by grid G48
+           *** NOTE: Not deleted: XEZ1
+           *** NOTE: Axis is in use by grid GEZ1
+           *** NOTE: Not deleted: XEZ2
+           *** NOTE: Axis is in use by grid GEZ2
+           *** NOTE: Not deleted: YEZ
+           *** NOTE: Axis is in use by grid GEZ2
+           *** NOTE: Not deleted: ZEZ
+           *** NOTE: Axis is in use by grid GEZ2
+           *** NOTE: Not deleted: XEZ3
+           *** NOTE: Axis is in use by grid GEZ3
+           *** NOTE: Not deleted: LON_FIELD_J_AXIS
+           *** NOTE: Axis is in use by grid LON_FIELD_GRID
+           *** NOTE: Not deleted: LAT_FIELD_I_AXIS
+           *** NOTE: Axis is in use by grid LAT_FIELD_GRID
+           *** NOTE: Not deleted: LAT_FIELD_J_AXIS
+           *** NOTE: Axis is in use by grid LAT_FIELD_GRID
+           *** NOTE: Not deleted: LON_FIELD_I_AXIS
+           *** NOTE: Axis is in use by grid LON_FIELD_GRID
+           *** NOTE: Not deleted: XIRREG
+           *** NOTE: Axis is in use by grid GIRREG
+           *** NOTE: Not deleted: TCENTURY
+           *** NOTE: Axis is in use by grid GCENTURY
+           *** NOTE: Not deleted: TAX5DAY
+           *** NOTE: Axis is in use by grid G5DAY
+           *** NOTE: Not deleted: XAX10
+           *** NOTE: Axis is in use by grid G5_10
+           *** NOTE: Not deleted: X5
+           *** NOTE: Axis is in use by grid GSRC
+           *** NOTE: Not deleted: Y5
+           *** NOTE: Axis is in use by grid G10X5
+           *** NOTE: Not deleted: TIME1
+           *** NOTE: Axis is in use by grid GHB1
+           *** NOTE: Not deleted: TIME2
+           *** NOTE: Axis is in use by grid GCQ1
+           *** NOTE: Not deleted: TAX
+           *** NOTE: Axis is in use by grid GFORMAT
+           *** NOTE: Not deleted: X4
+           *** NOTE: Axis is in use by grid G4D
+           *** NOTE: Not deleted: Y4
+           *** NOTE: Axis is in use by grid G4D
+           *** NOTE: Not deleted: Z4
+           *** NOTE: Axis is in use by grid G4D
+           *** NOTE: Not deleted: T4
+           *** NOTE: Axis is in use by grid G4D
+           *** NOTE: Not deleted: XCHANNEL
+           *** NOTE: Axis is in use by grid GSIGMA
+           *** NOTE: Not deleted: YRISE
+           *** NOTE: Axis is in use by grid GSIGMA
+           *** NOTE: Not deleted: ZLAYER
+           *** NOTE: Axis is in use by grid GSIGMA
+           *** NOTE: Not deleted: TIME
+           *** NOTE: Axis is in use by grid GSIGMA
+           *** NOTE: Not deleted: Z1
+           *** NOTE: Axis is in use by grid G1
+           *** NOTE: Not deleted: TCAL
+           *** NOTE: Axis is in use by grid GSRC
+           *** NOTE: Not deleted: XTROP
+           *** NOTE: Axis is in use by grid GXYT
+           *** NOTE: Not deleted: YTROP
+           *** NOTE: Axis is in use by grid GXYT
+           *** NOTE: Not deleted: ZAX
+           *** NOTE: Axis is in use by grid GFORMAT
+           *** NOTE: Not deleted: Y1
+           *** NOTE: Axis is in use by grid GSRC
+           *** NOTE: Not deleted: Y2
+           *** NOTE: Axis is in use by grid G10X2
+           *** NOTE: Not deleted: JMONTHS
+           *** 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: 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: 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
@@ -1345,14 +1365,14 @@ define axis/x=130e:500:10/modulo=360 xsub
  LISTing to file test_subspan_modulo.nc
  LISTing to file test_subspan_modulo.nc
  LISTing to file test_subspan_modulo.nc
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** 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
+           *** NOTE: Not using NetCDF strides for multi-cycle modulo
+           *** 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /THICKNESS ignored  on /SYMBOL=DOT
- *** NOTE: /SIZE= ignored  on /SYMBOL=DOT
+           *** NOTE: /THICKNESS ignored  on /SYMBOL=DOT
+           *** NOTE: /SIZE= ignored  on /SYMBOL=DOT
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1361,10 +1381,10 @@ define axis/x=130e:500:10/modulo=360 xsub
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY 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"
+           *** NOTE: Undecipherable value of netCDF attribute modulo on variable lon_moderr
+           *** NOTE: modulo = "j"
+           *** NOTE: Undecipherable value of netCDF attribute modulo on variable time_moderr
+           *** NOTE: modulo = "j"
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1407,9 +1427,9 @@ SHADE/L=1/LEV=0.01d sst
 POLYGON/KEY/LEV=0.01d/coord_ax=Z  PLMxpoly+PLMxpolymark, PLMypoly+PLMypolymark, PLMpolydata
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
- *** NOTE: Valid calendars are GREGORIAN NOLEAP    JULIAN    360_DAY   ALL_LEAP
- *** NOTE: A dummy axis of subscripts will be used
+           *** NOTE: Valid calendars are GREGORIAN NOLEAP    JULIAN    360_DAY   ALL_LEAP
+           *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
+           *** NOTE: A dummy axis of subscripts will be used
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ls: input.txt: No such file or directory
@@ -1419,10 +1439,10 @@ Replacing definition of axis XAX
 Replacing definition of axis YAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,units,dset,
+ **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,f0,units,dset,
             dsetnum,dsetpath,dsettitle,*size,*start,*end,
             *units,*axis,nc_scale,nc_offset,user_scale,user_offset,
-            calendar,dtype,xmod,tmod,status,isDepth,isReady
+            calendar,dtype,xmod,tmod,status,isDepth,isReady,defined
           axy, return=xx
 MESSAGE/CONTINUE `axy, return=xx`
  PERMANENT data cleared from memory
@@ -1433,7 +1453,7 @@ Replacing definition of axis XAX
  TEMPORARY data cleared from memory
 Replacing definition of axis YAX
 Replacing definition of axis Z1
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1443,8 +1463,8 @@ Replacing definition of axis Z1
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
- *** NOTE: Axis has repeated values -- micro-adjusting TIME
+           *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
+           *** NOTE: Axis has repeated values -- micro-adjusting TIME
  **ERROR: illegal limits: "DUMMY" does not exist at T=JAN-1990
           Axis extremes are T=DEC-1997:JAN-1998
 list/t=1-jan-1990 dummy
@@ -1515,7 +1535,7 @@ SHOW VAR/XML
  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: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** 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
@@ -1590,8 +1610,8 @@ Replacing definition of grid AGRID
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1627,9 +1647,9 @@ Replacing definition of axis YAX
  LISTing to file a.nc
 Replacing definition of axis TAX
 Replacing definition of axis TAX
- *** NOTE: Axis definition error on axis: TAX
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
+           *** NOTE: Axis definition error on axis: TAX
+           *** NOTE: Bounds given describe non-contiguous axis cells
+           *** NOTE: Using the LOWER bound specified for each axis cell
 Replacing definition of axis TAX
  **ERROR: improper grid or axis definition: BOUNDS specified do not correctly enclose coordinate points
 def axis/t/bounds tax={1.2,2,3.2,5,7,8.8,9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5}
@@ -1641,16 +1661,16 @@ def axis/t/bounds tax={0,2,3.2,5,7,8,9.9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,
 def axis/t/bounds tax={0,2,3.2,5,7,8,9.9}, {0.5,1.5,2.5,3.5,6.5,7.5,8.5,9.5}
  **ERROR: improper grid or axis definition: dimension of bounds (15) must be 2*N or N+1, N=number of axis coordinates (7)
 def axis/t/bounds tax={1.2,2,3.2,5,7,8.4,9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5,10.5}
- *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
+           *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
  **ERROR: improper grid or axis definition: BOUNDS specified do not correctly enclose coordinate points
 def axis/t/bounds tax= {12, 12.2, 36, 36.2, 60, 60.2, 84, 84.2, 108} , {0,24, 0,24, 24,48, 24,48, 48,72, 48,72, 72,96, 72,96, 96,120}
- *** NOTE: Not deleted: TAX
- *** NOTE: Axis is in use by grid GFORMAT
+           *** NOTE: Not deleted: TAX
+           *** NOTE: Axis is in use by grid GFORMAT
  LISTing to file a.nc
  LISTing to file a.nc
- *** NOTE: Cannot have both /BOUNDS and /RIGID Ignoring /RIGID
+           *** NOTE: Cannot have both /BOUNDS and /RIGID Ignoring /RIGID
  LISTing to file a.nc
- *** NOTE: Cannot have both /BOUNDS and /EDGES Ignoring /EDGES
+           *** NOTE: Cannot have both /BOUNDS and /EDGES Ignoring /EDGES
  LISTing to file a.nc
 Replacing definition of axis XAX
 Replacing definition of axis ZAX
@@ -1659,19 +1679,19 @@ Replacing definition of axis TAX
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: MONTH_REG
- *** NOTE: Write the data initially with the /BOUNDS qualifier
+           *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
+           *** NOTE: This will result in incorrect box sizes on record axis: MONTH_REG
+           *** NOTE: Write the data initially with the /BOUNDS qualifier
  LISTing to file a.nc
  LISTing to file a.nc
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
- *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
- *** NOTE: Substituting coordinate midpoints
- *** 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
+           *** NOTE: Axis definition error on axis: TGAP
+           *** NOTE: Bounds given describe non-contiguous axis cells
+           *** NOTE: Using the LOWER bound specified for each axis cell
+           *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
+           *** NOTE: Substituting coordinate midpoints
+           *** 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of grid TGRID
@@ -1679,16 +1699,16 @@ Replacing definition of grid TGRID
 def axis/t/cal=nogood/t=1-jan-2000:1-jan-2010:1/units=months tax
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Units  not recognized: something
- *** NOTE: They will not be convertible:
- *** NOTE: Units  not recognized: something
- *** NOTE: They will not be convertible:
- *** NOTE: Units  not recognized: zorro
- *** NOTE: They will not be convertible:
- *** NOTE: Units  not recognized for T axis: meters
- *** NOTE: They will not be convertible
- *** NOTE: Units  not recognized for Y axis: seconds
- *** NOTE: They will not be convertible
+           *** NOTE: Units  not recognized: something
+           *** NOTE: They will not be convertible:
+           *** NOTE: Units  not recognized: something
+           *** NOTE: They will not be convertible:
+           *** NOTE: Units  not recognized: zorro
+           *** NOTE: They will not be convertible:
+           *** NOTE: Units  not recognized for T axis: meters
+           *** NOTE: They will not be convertible
+           *** NOTE: Units  not recognized for Y axis: seconds
+           *** NOTE: They will not be convertible
 Replacing definition of axis TAX
 Replacing definition of axis XAX
  PERMANENT data cleared from memory
@@ -1701,7 +1721,7 @@ Replacing definition of axis XAX
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
 Replacing definition of axis TAX
 Replacing definition of axis ZAX
  PERMANENT data cleared from memory
@@ -1768,7 +1788,7 @@ plot/sym/siz=0.3 0*t[gt=vwnd]
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
 Replacing definition of axis TAX
  LISTing to file aa.nc
  LISTing to file cc.nc
@@ -1780,27 +1800,27 @@ 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: Valid argument $2 choices are: a|b|c|d|
+           *** 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: Valid argument $1 choices are: xxxxx|goodbye
+           *** 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: Valid argument $3 choices are: hello|goodbye
+           *** 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: Valid symbol test2 choices are: hello|bye|
+           *** 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: Valid symbol t2 choices are: solong>really hello|bye|
+           *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1824,29 +1844,28 @@ Replacing definition of axis XQ
 Replacing definition of axis YQ
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Evenly spaced axis has edges definition: TCOADS - ignored
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis TIME1
- *** NOTE: grid  used by data set coads_clim
- *** NOTE: Redefinition may alter apparent contents of data set
+           *** NOTE: grid GHB2 used by data set coads_clim
+           *** NOTE: Redefinition may alter apparent contents of data set
 Replacing definition of axis TIME1
- *** NOTE: grid  used by data set coads_clim
- *** NOTE: Redefinition may alter apparent contents of data set
+           *** NOTE: grid GHB2 used by data set coads_clim
+           *** NOTE: Redefinition may alter apparent contents of data set
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis COADSX.ILLEGAL
- *** NOTE: grid  used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
- *** NOTE: grid  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
+           *** 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  used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
- *** NOTE: grid  used by data set illeg_axname
- *** 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
+           *** 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
@@ -1881,10 +1900,10 @@ Replacing definition of axis TIME
 Replacing definition of axis TAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
  **ERROR: improper grid or axis definition: error in start,end,delta
 DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/t myt
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
  **ERROR: improper grid or axis definition: error in start,end,delta
 DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/T/CALENDAR=noleap myt
  PERMANENT data cleared from memory
@@ -1970,7 +1989,7 @@ sho att/all .
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1979,26 +1998,26 @@ sho att/all .
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  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 temp.pp
- *** NOTE: Changing the length  of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.some_text
+           *** NOTE: Changing the value of attribute temp.pp
+           *** NOTE: Changing the length  of attribute temp.pp
+           *** NOTE: Changing the value of attribute temp.some_text
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute temp.long_name
- *** NOTE: Changing the value of attribute temp.units
- *** NOTE: Changing the value of attribute temp.missing_value
- *** NOTE: Changing the value of attribute temp.missing_value
+           *** NOTE: Changing the value of attribute temp.long_name
+           *** NOTE: Changing the value of attribute temp.units
+           *** NOTE: Changing the value of attribute temp.missing_value
+           *** NOTE: Changing the value of attribute temp.missing_value
  LISTing to file a.nc
  LISTing to file a.nc
- *** NOTE: Changing the value of attribute (PSZT1).positive
- *** NOTE: Changing the type of attribute (coadsx).modulo
- *** NOTE: Changing the value of attribute (coadsx).modulo
- *** NOTE: Changing the value of attribute (TIME4).time_origin
+           *** NOTE: Changing the value of attribute (PSZT1).positive
+           *** NOTE: Changing the type of attribute (coadsx).modulo
+           *** NOTE: Changing the value of attribute (coadsx).modulo
+           *** NOTE: Changing the value of attribute (TIME4).time_origin
  **ERROR: command syntax: enclose coordinate variable name in parentheses
 list coadsx.units
  **ERROR: variable unknown or not in data set: COADSX.UNITS
@@ -2009,17 +2028,17 @@ set att (COADSX81_81).axis = "Z"
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute temp.pp
- *** NOTE: Changing the length  of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.some_text
- *** NOTE: Changing the type of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.pp
- *** NOTE: Changing the type of attribute temp.some_text
- *** NOTE: Changing the value of attribute temp.some_text
- *** NOTE: Changing the value of attribute temp.long_name
- *** NOTE: Changing the value of attribute temp.units
- *** NOTE: Changing the type of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.pp
+           *** NOTE: Changing the value of attribute temp.pp
+           *** NOTE: Changing the length  of attribute temp.pp
+           *** NOTE: Changing the value of attribute temp.some_text
+           *** NOTE: Changing the type of attribute temp.pp
+           *** NOTE: Changing the value of attribute temp.pp
+           *** NOTE: Changing the type of attribute temp.some_text
+           *** NOTE: Changing the value of attribute temp.some_text
+           *** NOTE: Changing the value of attribute temp.long_name
+           *** NOTE: Changing the value of attribute temp.units
+           *** NOTE: Changing the type of attribute temp.pp
+           *** NOTE: Changing the value of attribute temp.pp
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file a.nc
@@ -2055,10 +2074,10 @@ Replacing definition of grid MYGRID
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
  LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
@@ -2067,27 +2086,27 @@ Replacing definition of grid MYGRID
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file a.nc
- *** NOTE: Changing the value of attribute (COADSX).point_spacing
- *** NOTE: Changing the value of attribute (COADSY).point_spacing
+           *** NOTE: Changing the value of attribute (COADSX).point_spacing
+           *** NOTE: Changing the value of attribute (COADSY).point_spacing
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
 NetCDF: Numeric conversion not representable (OPeNDAP/netCDF Error code -60)
  data in attribute missing_value not representable in output type NC_INT
 LIST/FORMAT=CDF/file=a.nc/clobber/x=132w/k=1 temp
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  **ERROR: unknown or invalid argument: Can SET VARIABLE/OUTTYPE=INPUT, DOUBLE, FLOAT, INT, SHORT, BYTE
 set var/outtype=char broiled
  **ERROR: unknown or invalid argument: Can SET VARIABLE/OUTTYPE=INPUT, DOUBLE, FLOAT, INT, SHORT, BYTE
 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 (PSXT1).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 (PSYT1).units
+           *** NOTE: Changing the value of attribute (PSXT1).units
+           *** NOTE: Changing the value of attribute (PSYT1).units
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2098,17 +2117,17 @@ set var/outtype=garbage broiled
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis X2AX
- *** NOTE: Changing the value of attribute (z4ax).positive
+           *** NOTE: Changing the value of attribute (z4ax).positive
  LISTing to file string4d.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute (TIME7).units
- *** NOTE: Changing the value of attribute (TIME7).units
- *** NOTE: Changing the value of attribute (TIME7).time_origin
- *** NOTE: Changing the value of attribute (TIME7).time_origin
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: Changing the value of attribute (TIME7).units
+           *** NOTE: Changing the value of attribute (TIME7).units
+           *** NOTE: Changing the value of attribute (TIME7).time_origin
+           *** NOTE: Changing the value of attribute (TIME7).time_origin
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
 Replacing definition of axis TIME
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
@@ -2121,10 +2140,10 @@ curl error details:
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY 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 # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
  Using every   3th vector in the X direction
  Using every   4th vector in the Y direction
- *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
+           *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **TMAP ERR: non-existent or not on line
@@ -2176,7 +2195,7 @@ shade sst[t=@AVE,Z=@ave]
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 360.00 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 360.00 days
  LISTing to file t3file.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2187,18 +2206,18 @@ shade sst[t=@AVE,Z=@ave]
  LISTing to file subdir/0000_a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
 Replacing definition of axis TAX
  LISTing to file a.nc
- *** NOTE: Not deleted: TAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: cannot parse "units since date", date= "event"; leaving units string
+           *** NOTE: Not deleted: TAX
+           *** NOTE: Axis is in use by grid GFORMAT
+           *** NOTE: cannot parse "units since date", date= "event"; leaving units string
  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
- *** NOTE: Invalid I axis limits ignored: TEMP
+           *** NOTE: Invalid I axis limits ignored: TEMP
  **ERROR: dimensions improperly specified: specified data is not a line
            - its a 2D region: "plot/i=100/k=1 temp[x=122.5W]"
 plot/i=100/k=1 temp[x=122.5W]
@@ -2245,10 +2264,10 @@ Replacing definition of axis XAX
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
 Replacing definition of axis TIME9
- *** NOTE: grid  used by data set coads_climatology
- *** NOTE: Redefinition may alter apparent contents of data set
+           *** NOTE: grid GSQ1 used by data set coads_climatology
+           *** NOTE: Redefinition may alter apparent contents of data set
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis TIME
@@ -2274,9 +2293,9 @@ cancel axis/stride COADSX
 set axis/stride=2/offset=4 COADSX
  **ERROR: invalid command: not a strided axis: COADSX
 cancel axis/stride COADSX
- *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
+           *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
  LISTing to file d2.nc
- *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
+           *** 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
  PERMANENT data cleared from memory
@@ -2292,46 +2311,46 @@ set axis/stride=2 NORMAL
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
- *** NOTE: They will not be convertible:
+           *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
+           *** NOTE: They will not be convertible:
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  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
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
- *** NOTE: Axis has repeated values -- micro-adjusting TIME
- *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
- *** NOTE: Valid calendars are GREGORIAN NOLEAP    JULIAN    360_DAY   ALL_LEAP
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
- *** 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"
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
- *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
- *** NOTE: They will not be convertible:
- *** NOTE: regarding ./climatological_axes.cdf ...
- *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
- *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
- *** NOTE: A dummy axis of subscripts will be used
- *** 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
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
+           *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
+           *** NOTE: Axis has repeated values -- micro-adjusting TIME
+           *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
+           *** NOTE: Substituting coordinate midpoints
+           *** NOTE: Valid calendars are GREGORIAN NOLEAP    JULIAN    360_DAY   ALL_LEAP
+           *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
+           *** NOTE: A dummy axis of subscripts will be used
+           *** NOTE: Axis definition error on axis: TGAP
+           *** NOTE: Bounds given describe non-contiguous axis cells
+           *** NOTE: Using the LOWER bound specified for each axis cell
+           *** 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"
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
+           *** NOTE: They will not be convertible:
+           *** NOTE: regarding ./climatological_axes.cdf ...
+           *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
+           *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
+           *** NOTE: A dummy axis of subscripts will be used
+           *** 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
+           *** 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
@@ -2454,8 +2473,8 @@ Replacing definition of axis TIME
  LISTing to file b.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Units on axis "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
+           *** NOTE: Units on axis "ENS" are not recognized: count
+           *** NOTE: They will not be convertible:
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file 1a.dat
@@ -2511,31 +2530,31 @@ Replacing definition of grid GG
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
+           *** NOTE: @NGD of string variable, counting null strings as missing
+           *** NOTE: @NBD of string variable, counting null strings as missing
 Replacing definition of axis XAX
 Replacing definition of axis YAX
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
+           *** NOTE: @NGD of string variable, counting null strings as missing
+           *** NOTE: @NGD of string variable, counting null strings as missing
+           *** NOTE: @NGD of string variable, counting null strings as missing
 Replacing definition of axis ZAX
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
+           *** NOTE: @NBD of string variable, counting null strings as missing
+           *** NOTE: @NBD of string variable, counting null strings as missing
+           *** NOTE: @NBD of string variable, counting null strings as missing
 Replacing definition of axis TAX
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
+           *** NOTE: @NGD of string variable, counting null strings as missing
+           *** NOTE: @NGD of string variable, counting null strings as missing
+           *** NOTE: @NGD of string variable, counting null strings as missing
 Replacing definition of axis XAX
 Replacing definition of axis YAX
 Replacing definition of axis ZAX
 Replacing definition of axis TAX
- *** NOTE: @NBD 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
- *** 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
+           *** NOTE: @NBD 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
+           *** 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -2597,9 +2616,9 @@ Replacing definition of grid G1
  LISTing to file test_abs.cdf
  LISTing to file test_abs.cdf
  LISTing to file test_abs.cdf
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
- *** NOTE: Write the data initially with the /BOUNDS qualifier
+           *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
+           *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
+           *** NOTE: Write the data initially with the /BOUNDS qualifier
  LISTing to file test2.cdf
  LISTing to file FL.cdf
  LISTing to file FTLON.cdf
@@ -2621,47 +2640,47 @@ list/format=cdf/keep_axnames/append/file=test_abs.cdf ijkl[k=@ave]
              disordered output coordinate value:         363  Axis: TCENTURY
 list/format=cdf/keep_axnames/l=13/append/file=test_abs.cdf l1
  LISTing to file FI.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
  LISTing to file test_fil.cdf
  LISTing to file test_fil.cdf
@@ -2673,80 +2692,80 @@ list/format=cdf/keep_axnames/l=13/append/file=test_abs.cdf l1
  LISTing to file test_fil.cdf
  LISTing to file test_fil.cdf
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf ijk
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf ikl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf ijl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSYT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf jkl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXU doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf ijkl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=1:50/l=2:3 ijl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=51:100/l=2:3 ijl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXU doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=30:40/k=5/l=1:3 ijkl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSZT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf iavejkl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXU doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf ijavekl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXU doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf ijkavel
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXU doesnt match CDF file
 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
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file a.nc
@@ -2770,8 +2789,8 @@ Replacing definition of axis TSEC
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis CAXIS
- *** NOTE: grid  used by data set grads_bug_file
- *** NOTE: Redefinition may alter apparent contents of data set
+           *** NOTE: grid GMY1 used by data set grads_bug_file
+           *** NOTE: Redefinition may alter apparent contents of data set
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -2782,15 +2801,15 @@ Replacing definition of axis CAXIS
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
 Replacing definition of axis TAX
- *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
- *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
+           *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
+           *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis ZAXLEVITR
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis ZAXLEVITR
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file xz.nc
@@ -2855,22 +2874,22 @@ 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
+           *** NOTE: Changing the value of attribute sst.history
  PERMANENT data cleared from memory
  TEMPORARY 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 "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
+           *** NOTE: Units on axis "ENS" are not recognized: count
+           *** NOTE: They will not be convertible:
  LISTing to file mypack.nc
- *** NOTE: LON1_15: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: LAT1800_1800: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: ENS: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: TIME13: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: Units on axis "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
+           *** NOTE: LON1_15: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+           *** NOTE: LAT1800_1800: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+           *** NOTE: ENS: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+           *** NOTE: TIME13: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+           *** NOTE: Units on axis "ENS" are not recognized: count
+           *** NOTE: They will not be convertible:
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -2915,8 +2934,11 @@ Re-defining viewport V8
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file nc4_deflate4.nc
- *** NOTE: NetCDF Classic style cannot set compression, ignoring /DEFLATE
- *** NOTE: NetCDF Classic style cannot set chunking, ignoring /*CHUNK
+
+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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2927,13 +2949,13 @@ Re-defining viewport V8
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file nc4_inttemp_classic.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
  LISTing to file nc4_inttemp_set_list_deflate_chunk.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
  LISTing to file nc4_inttemp_shuffle_set_list_deflate_chunk.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
  LISTing to file nc4_inttemp_set_classic.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
  LISTing to file nc4_deflate4_t1.nc
  **TMAP ERR: syntax error in string
              If ChunkSize is set for any dimension of var, must set for all its dimensions
@@ -2948,8 +2970,8 @@ LIST/FORMAT=CDF/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Not deleted: X10
- *** NOTE: Axis is in use by grid G10X5
+           *** NOTE: Not deleted: X10
+           *** NOTE: Axis is in use by grid G10X5
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -2961,11 +2983,11 @@ LIST/FORMAT=CDF/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of grid MYGRID
- *** NOTE: Axis reset to be regular (evenly-spaced): MYX
- *** NOTE: Axis is already regular: MYX
+           *** 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
+           *** NOTE: Axis reset to be regular (evenly-spaced): MYX1
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  Use the GO command to name a file of FERRET commands to be executed.
@@ -2992,7 +3014,7 @@ Replacing definition of grid MYGRID
      e.g.   yes? GO filename
  
  Use "GO/HELP filename" to read documentation in  the file to be executed.
- *** NOTE: No active redirects to cancel
+           *** NOTE: No active redirects to cancel
  Use the GO command to name a file of FERRET commands to be executed.
      e.g.   yes? GO filename
  
@@ -3001,14 +3023,14 @@ Replacing definition of grid MYGRID
      e.g.   yes? GO filename
  
  Use "GO/HELP filename" to read documentation in  the file to be executed.
- *** NOTE: Axis is already regular: MYAXIS
+           *** NOTE: Axis is already regular: MYAXIS
  **ERROR: variable unknown or not in data set: GARBAGE
 show grid garbage
  Use the GO command to name a file of FERRET commands to be executed.
      e.g.   yes? GO filename
  
  Use "GO/HELP filename" to read documentation in  the file to be executed.
- *** NOTE: stderr is not redirected
+           *** NOTE: stderr is not redirected
  Use the GO command to name a file of FERRET commands to be executed.
      e.g.   yes? GO filename
  
@@ -3061,11 +3083,6 @@ Replacing definition of axis YAX
  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
- *** NOTE: 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.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb [...]
- *** NOTE: exceeds expected length. Maximum characters: 2048
  LISTing to file aa.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3093,11 +3110,11 @@ Replacing definition of axis YAX_DUP_AXNAMES
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** 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
+           *** NOTE: No missing_value or _FillValue attribute. Using NaN for variable: broiled
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -3117,7 +3134,7 @@ list/L=15:20 tax_year(t[gt=tvar],tvar)
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis lev
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis lev
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis XAX
@@ -3133,20 +3150,20 @@ Replacing definition of axis TAXIS
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis XAX
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.030, to avoid running off page.
+           *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
+           *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
+           *** NOTE: Adjusting Y-axis label size from 0.100 to 0.030, to avoid running off page.
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
+           *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -3208,10 +3225,10 @@ Replacing definition of axis TAXIS
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY 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 ...
+           *** 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 ...
 Replacing definition of axis TNEW
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3288,34 +3305,32 @@ 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
+           *** 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
- **ERROR: error defining aggregate dataset: Aggregate dataset not defined
-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: 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
- *** 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
+           *** 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -3326,8 +3341,8 @@ define data/agg windy = 1,2
  TEMPORARY 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: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
+           *** NOTE: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
+           *** NOTE: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -3352,7 +3367,7 @@ SET DAT/FORM=CDF ./z1.nc
  TEMPORARY data cleared from memory
  LISTing to file mytype.nc
  LISTing to file mytype.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
  LISTing to file mytype.nc
  LISTing to file mytype.nc
  LISTing to file mytype.nc
@@ -3372,7 +3387,7 @@ SET DAT/FORM=CDF ./z1.nc
  TEMPORARY data cleared from memory
  LISTing to file mytype.nc
  LISTing to file mytype.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
  LISTing to file mytype.nc
  LISTing to file mytype.nc
  LISTing to file mytype.nc
@@ -3388,7 +3403,7 @@ LIST/FORMAT=CDF/clobber/file=mytype.nc my_data
  LISTing to file mytype.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- **ERROR: improper grid or axis definition: data for DEFINE AXIS/FROM_VARIABLE is not monotonic at index 12
+ **ERROR: improper grid or axis definition: data for DEFINE AXIS/FROM_VARIABLE is not monotonically increasing at index 12
 define axis/t/units=days tax = tvar
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3468,8 +3483,8 @@ Replacing definition of axis AXI
 Replacing definition of axis AXI_COARSE
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: unrepairable repeated axis coords on axis trdim at subscript 2
- *** NOTE: A dummy axis of subscripts will be used
+           *** NOTE: unrepairable repeated axis coords on axis trdim at subscript 2
+           *** NOTE: A dummy axis of subscripts will be used
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file sst_new.nc
@@ -3488,9 +3503,9 @@ Replacing definition of axis ZAX
 Replacing definition of axis XIRREG
  LISTing to file a.nc
  LISTing to file a.nc
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
+           *** NOTE: Axis definition error on axis: TGAP
+           *** NOTE: Bounds given describe non-contiguous axis cells
+           *** NOTE: Using the LOWER bound specified for each axis cell
  LISTing to file a.nc
  LISTing to file a.nc
  PERMANENT data cleared from memory
@@ -3500,8 +3515,8 @@ Replacing definition of axis XIRREG
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY 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
+           *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
+           *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
  **ERROR: command syntax: COLOR
           /COLOR must have an argument for PLOT/OVERLAY
 plot/i=1:100/over/COLOR 0.6*sin(i/7)
@@ -3511,9 +3526,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: 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
  **ERROR: unknown defining grid: G=NOEXIST
 list b
  **ERROR: command syntax: 45S
@@ -3525,6 +3540,9 @@ 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
+Replacing definition of axis X1
+Replacing definition of axis Y1
+Replacing definition of axis ZAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -3537,7 +3555,7 @@ list f
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute a.ival
+           *** NOTE: Changing the value of attribute a.ival
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **TMAP ERR: non-existent or not on line
@@ -3557,8 +3575,8 @@ SET DAT/FORM=CDF snoopy.dat
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: regarding ./climatological_axes.cdf ...
- *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
+           *** NOTE: regarding ./climatological_axes.cdf ...
+           *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3597,8 +3615,8 @@ LIST/FORMAT=CDF/clobber/keep/file=nc b,a[d=1]
 shade b
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute v1.long_name
- *** NOTE: Changing the value of attribute v1.units
+           *** NOTE: Changing the value of attribute v1.long_name
+           *** NOTE: Changing the value of attribute v1.units
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: attribute undefined or invalid attribute name: temp.noexist[d=levitus_climatology]
@@ -3618,9 +3636,9 @@ set var/name=psi myvar
 set var/name=diff w
  PERMANENT data cleared from memory
  TEMPORARY 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
+           *** NOTE: Axis definition error on axis: MONTH_IRREG. Bounds describe cells that overlap one another
+           *** NOTE: Error in bounds "MONTH_IRREG_bnds" or bounds do not enclose point on axis MONTH_IRREG
+           *** NOTE: Substituting coordinate midpoints
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis TAX
@@ -3650,12 +3668,12 @@ list tax_datestring (tt[L=3], tt, 5)
 list tax_datestring (tt[L=3], "my_tax", "minutes")
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Error in bounds "TAX_BB_PTSPAC_bnds" or bounds do not enclose point on axis TAX_BB_PTSPAC
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: Error in bounds "TAX_BB_EVEN_NOENC_bnds" or bounds do not enclose point on axis TAX_BB_EVEN_NOENC
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: Error in bounds "TAX_BB_IRR_bnds" or bounds do not enclose point on axis TAX_BB_IRR
- *** NOTE: Substituting coordinate midpoints
+           *** NOTE: Error in bounds "TAX_BB_PTSPAC_bnds" or bounds do not enclose point on axis TAX_BB_PTSPAC
+           *** NOTE: Substituting coordinate midpoints
+           *** NOTE: Error in bounds "TAX_BB_EVEN_NOENC_bnds" or bounds do not enclose point on axis TAX_BB_EVEN_NOENC
+           *** NOTE: Substituting coordinate midpoints
+           *** NOTE: Error in bounds "TAX_BB_IRR_bnds" or bounds do not enclose point on axis TAX_BB_IRR
+           *** NOTE: Substituting coordinate midpoints
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: command syntax: must be a constant COS(1)
@@ -3696,17 +3714,17 @@ Replacing definition of axis TAX
 Replacing definition of axis XAXIS
  **ERROR: request exceeds memory setting: 2369 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.
+           *** 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.
 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.
+           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Ambiguous coordinates on X axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
- *** NOTE: Ambiguous coordinates on Y axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
+           *** NOTE: Ambiguous coordinates on X axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
+           *** NOTE: Ambiguous coordinates on Y axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
  LISTing to file aa.nc
  LISTing to file bb.nc
  LISTing to file a.nc
@@ -3747,6 +3765,12 @@ shade a
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ **ERROR: value out of legal range: Negative argument to function. Argument 3 : SUBSTRING
+list substring("hello",1,-2)
+ **ERROR: value out of legal range: Negative argument to function. Argument 3 : SUBSTRING
+list substring("hello",1,-3)
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file anew_global.nc
@@ -3761,9 +3785,10 @@ Replacing definition of axis X2
 Replacing definition of axis Y2
  PERMANENT data cleared from memory
  TEMPORARY 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
+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
  **ERROR: unknown defining grid: G=NOEXIST
 list b
  **ERROR: command syntax: 45S
@@ -3789,6 +3814,238 @@ poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ LISTing to file aa.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis TIME
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY 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: unknown data set: BAD_D
+stat/l=1/x=180/y=0 a
+ 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
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: invalid command: REPEAT what ?
+repeat/range=1:2/name=row
+ **ERROR: invalid command: REPEAT what ?
+repeat/range=1:2/name=row
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAX
+Replacing definition of axis YAX
+ LISTing to file a.nc
+           *** NOTE: Not deleted: XAX
+           *** NOTE: Axis is in use by grid GFORMAT
+           *** NOTE: Not deleted: YAX
+           *** NOTE: Axis is in use by grid GFORMAT
+Replacing definition of axis TREDEF
+           *** NOTE: grid GSI1 used by data set a
+           *** NOTE: Redefinition may alter apparent contents of data set
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: invalid command: illegal format type - must be "GIF"
+          frame/format=hdf/file=a.hdf
+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
+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
+ 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
@@ -3875,5 +4132,5 @@ vector/i=1:10/j=1:20/nolabel i/j
 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 Oct 29 15:57:41 PDT 2014
+           *** NOTE: Cannot create new windows when batch mode set
+Ended at Tue Nov 17 09:28:13 PST 2015
diff --git a/bench/ansley_official.linux_log b/bench/ansley_official.linux_log
index eb01ab8..d0b862f 100644
--- a/bench/ansley_official.linux_log
+++ b/bench/ansley_official.linux_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 53500930 Oct 29 15:34 /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
 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:  ticket 2115 and a new test script for 2201
+Note: testing declaration of model str in match4.F as *(*)
 ncdump output will be in all_ncdump.out, and appended to this log file 
 ***** Restricting Ferret paths to bench directory *****
 FER_DAT=.
@@ -17,10 +17,10 @@ FER_EXTERNAL_FUNCTIONS=/home/users/ansley/build/linux/FERRET/external_functions/
 FER_GO=. /home/users/tmap/ferret/linux/go /home/users/tmap/ferret/linux/examples /home/users/tmap/ferret/linux/contrib /home/users/tmap/ferret/tmap_go
 FER_GRIDS=.
 FER_LIBS=/home/users/tmap/ferret/linux/lib
-FER_LINK_DIR=/home/users/tmap/ferret_link/linux
 FER_PALETTE=. /home/users/tmap/ferret/linux/ppl
 PWD=/home/users/ansley/build/linux/FERRET/bench
-Beginning at Wed Oct 29 15:55:55 PDT 2014
+PYFER_EXTERNAL_FUNCTIONS=/home/users/tmap/ferret/linux/ext_func/pylibs
+Beginning at Tue Nov 17 09:25:34 PST 2015
 ! BN500_ALL.JNL
 ! - run all the benchmark tests
 ! - ordered (more or less) from least to most complex
@@ -125,6 +125,7 @@ Beginning at Wed Oct 29 15:55:55 PDT 2014
 ! 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
  
 ! Include this statement to compare the outupt of 6D Ferret with
 ! previous 4D benchmark logs.
@@ -301,10 +302,10 @@ SHOW DATA/FULL
  name     title                             I         J         K         L         M         N
  P        my P variable                   1:99999999  1:99999999  1:99999999  1:99999999  1:99999999  1:99999999
                on grid ABSTRACT with -1.E+34 for missing data
-             X=0.5:1.E+08  Y=0.5:1.E+08  Z=0.5:1.E+08  E=0.5:1.E+08  F=0.5:1
+             X=0.5:1.E+08  Y=0.5:1.E+08  Z=0.5:1.E+08  E=0.5:1.E+08  F=0.5:1.E+08  
  Q        Q                               1:99999999  1:99999999  1:99999999  1:99999999  1:99999999  1:99999999
                on grid ABSTRACT with -1.E+34 for missing data
-             X=0.5:1.E+08  Y=0.5:1.E+08  Z=0.5:1.E+08  E=0.5:1.E+08  F=0.5:1
+             X=0.5:1.E+08  Y=0.5:1.E+08  Z=0.5:1.E+08  E=0.5:1.E+08  F=0.5:1.E+08  
  
  /FORMAT = UNF
  /SKIP = 2
@@ -422,7 +423,8 @@ SHOW MODES
       LATIT_LABEL      SET               1
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
-      6D_LAB           SET
+      E_LABEL          SET               1
+      F_LABEL          SET               1
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -441,7 +443,8 @@ SHOW MODES
       NODATA_LAB       SET
       SHRINK_YLAB   CANCELLED
       CURVILINEAR   CANCELLED
-      SIGMA         CANCELLED
+      LAYERZ        CANCELLED
+      6D_LAB           SET
 SET MODE IGNORE_ERROR
 SHOW MODES
       MODE            STATE        ARGUMENT
@@ -455,7 +458,8 @@ SHOW MODES
       LATIT_LABEL      SET               1
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
-      6D_LAB           SET
+      E_LABEL          SET               1
+      F_LABEL          SET               1
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -474,7 +478,8 @@ SHOW MODES
       NODATA_LAB       SET
       SHRINK_YLAB   CANCELLED
       CURVILINEAR   CANCELLED
-      SIGMA         CANCELLED
+      LAYERZ        CANCELLED
+      6D_LAB           SET
 CANCEL MODE IGNORE_ERROR
 SHOW MODES
       MODE            STATE        ARGUMENT
@@ -488,7 +493,8 @@ SHOW MODES
       LATIT_LABEL      SET               1
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
-      6D_LAB           SET
+      E_LABEL          SET               1
+      F_LABEL          SET               1
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -507,7 +513,8 @@ SHOW MODES
       NODATA_LAB       SET
       SHRINK_YLAB   CANCELLED
       CURVILINEAR   CANCELLED
-      SIGMA         CANCELLED
+      LAYERZ        CANCELLED
+      6D_LAB           SET
 SHOW MODE STUPID
       MODE            STATE        ARGUMENT
       STUPID        CANCELLED
@@ -1075,8 +1082,8 @@ say "demonstrate that these leading blanks:\
 demonstrate that these leading blanks:       really are preserved
  
 ! continuation prompts are ignored, too
-yes? say "demonstrate that these leading blanks:\
-...?        really are preserved"
+say "demonstrate that these leading blanks:\
+       really are preserved"
 demonstrate that these leading blanks:       really are preserved
  
 ! weird little blank line inputs
@@ -1143,7 +1150,7 @@ message/continue here is: $1"some text" and some more stuff
 here is: hello and some more stuff
  
 message/cont here is a big $1 and $3&some text&      ! default provided
- !-> message/cont here is a big hello and some text      ! default provided
+ !-> message/cont here is a big hello and some text
 here is a big hello and some text
  
 message/cont $3			! error - no default
@@ -1251,7 +1258,7 @@ go bn_dollar.sub ((x+y),(x-5))	! ignore comma, get single arg
 ! V510 3/00
 set mode ignore
   message/continue "$1"                ! final quote used to get mis-applied
- !-> message/continue "hello"                ! final quote used to get mis-applied
+ !-> message/continue "hello"
 hello
 set mode/last ignore
 go bn_dollar.sub \"hello\"                 ! quotations as part of argument
@@ -1320,7 +1327,7 @@ message/continue "2 squared + 2 squared =`2^2` + `2+2`"
 2 squared + 2 squared =4 + 4
  
 message/continue "50/0 =`50/0`"	! invalid result
- !-> message/continue "50/0 =bad"	! invalid result
+ !-> message/continue "50/0 =bad"
 50/0 =bad
  
 repeat/i=1:3 message/continue "I=`I`"
@@ -1348,7 +1355,7 @@ I=7
 !cancel region/X ! removed - temporary experiment 3/00 *sh*
  
 message/continue "2+2=``2+2``"	! double grave accents get condensed
- !-> message/continue "2+2=`2+2`"	! double grave accents get condensed
+ !-> message/continue "2+2=`2+2`"
 2+2=`2+2`
  
 message/continue A default substitution: $9"default string|2+2=`2+2`"
@@ -1368,7 +1375,7 @@ message/continue "1/300=`1/300,p=5`"
  !-> message/continue "1/300=0.0033333"
 1/300=0.0033333
 message/continue "1/300=`1/300,p=-5`"	! decimal places
- !-> message/continue "1/300=0.00333"	! decimal places
+ !-> message/continue "1/300=0.00333"
 1/300=0.00333
 message/continue "1/300=`1/300 , precision=10`"
  !-> message/continue "1/300=0.003333333333"
@@ -1592,13 +1599,24 @@ say `a,return=isize`          ! full evaluation occurs
 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
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ found   A        M: 10 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  !-> MESSAGE/CONTINUE 2
 2
-say `a[i=100:200],return=isize`    ! WRONG! because full evaluation is bypassed
+say `a[i=100:200],return=isize`    ! correct starting with Ferret v694 (tkt 2213)
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- !-> MESSAGE/CONTINUE 101
-101
+ eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    A        C:  6 dset:   0 I:  100  200  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    (C01,V08 C:  8 dset:   0 I:  100  200  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ found   (C11,V08 M:  5 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ !-> MESSAGE/CONTINUE 5
+5
 set mode/last diagnostic
  
 ! deliberate errors
@@ -1963,6 +1981,19 @@ CORRECT:sym sub
 ---->CORRECT
 ---->CORRECT again
 ---->nested: all is well after multi-line IF
+CORRECT
+CORRECT
+LOOP=1
+more
+LOOP=2
+more
+LOOP=1
+LOOP=2
+semicolon group
+more
+semicolon group
+CORRECT
+WE SEE THIS CUZ OF IMPLIED CLOSE TO THE PREVIOUS
 >>> --> DELIBERATE WARNING: UNCLOSED IF in NESTED GO FILE<<<
 ---->... now inside of nested IF clause
 ---->CORRECT
@@ -1974,10 +2005,6 @@ IF yes THEN
   say ---->... now inside of IF clause
 ---->... now inside of IF clause
  
- 
- 
- 
- 
 GO bn_reset
 cancel mode verify
 GO bn_expressions
@@ -10448,18 +10475,18 @@ show symbols/all
 PPL$XPIXEL = "406"
 PPL$YPIXEL = "406"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.93"
-FERRET_PLATFORM = "Linux 2.6.18-398.el5PAE 32-bit"
+FERRET_VERSION = "6.951"
+FERRET_PLATFORM = "Linux 2.6.18-407.el5PAE 32-bit"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.3-rc2 of Oct  6 2014 16:16:52 $"
+NETCDF_VERSION = "4.3.2 of Dec 16 2014 12:21:13 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "29-Oct-14"
-SESSION_TIME = "15:55"
-SESSION_PID = "1266"
-DELTA_CPU = "5.03323"
-CLOCK_SECS = "7.649"
-CURRENT_DATE = "29-Oct-14"
-CURRENT_TIME = "15:56:03"
+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"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
  
@@ -10477,18 +10504,18 @@ show symbol/all
 PPL$XPIXEL = "406"
 PPL$YPIXEL = "406"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.93"
-FERRET_PLATFORM = "Linux 2.6.18-398.el5PAE 32-bit"
+FERRET_VERSION = "6.951"
+FERRET_PLATFORM = "Linux 2.6.18-407.el5PAE 32-bit"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.3-rc2 of Oct  6 2014 16:16:52 $"
+NETCDF_VERSION = "4.3.2 of Dec 16 2014 12:21:13 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "29-Oct-14"
-SESSION_TIME = "15:55"
-SESSION_PID = "1266"
+SESSION_DATE = "17-Nov-15"
+SESSION_TIME = "09:25"
+SESSION_PID = "6311"
 DELTA_CPU = "0.001"
-CLOCK_SECS = "7.65"
-CURRENT_DATE = "29-Oct-14"
-CURRENT_TIME = "15:56:03"
+CLOCK_SECS = "11.891"
+CURRENT_DATE = "17-Nov-15"
+CURRENT_TIME = "09:25:46"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
 S1 = "hello"
@@ -10498,9 +10525,9 @@ NUM = "3"
 T$DOLLAR = "hi"
 T_HELLO = "hi"
 show symbol s*
-SESSION_DATE = "29-Oct-14"
-SESSION_TIME = "15:55"
-SESSION_PID = "1266"
+SESSION_DATE = "17-Nov-15"
+SESSION_TIME = "09:25"
+SESSION_PID = "6311"
 S1 = "hello"
 S2 = ""hello""
 S3 = "hello and goodbye"
@@ -10510,15 +10537,15 @@ S2 = ""hello""
 ! exercise CANCEL SYMBOL
 cancel symbol s2
 show symbol s*
-SESSION_DATE = "29-Oct-14"
-SESSION_TIME = "15:55"
-SESSION_PID = "1266"
+SESSION_DATE = "17-Nov-15"
+SESSION_TIME = "09:25"
+SESSION_PID = "6311"
 S1 = "hello"
 S3 = "hello and goodbye"
 show symbol S*
-SESSION_DATE = "29-Oct-14"
-SESSION_TIME = "15:55"
-SESSION_PID = "1266"
+SESSION_DATE = "17-Nov-15"
+SESSION_TIME = "09:25"
+SESSION_PID = "6311"
 S1 = "hello"
 S3 = "hello and goodbye"
 cancel symbol s2	! already deleted
@@ -10552,9 +10579,9 @@ Q23456789012345678901234567XXXAAAAA = "6"
 ! show the upper left coordinate limits labels as symbols
 plot/i=1:100/y=10/z=5/set_up SIN(I/6)+Y+Z
 show symbol lab*
-LAB1 = "FERRET Ver. 6.93"
+LAB1 = "FERRET (beta) Ver.6.951"
 LAB2 = "NOAA/PMEL TMAP"
-LAB3 = "29-OCT-2014 15:56:03"
+LAB3 = "17-NOV-2015 09:25:46"
 LABX = "X"
 LAB4 = "Y : 10"
 LABNUM_Y = "4"
@@ -10649,18 +10676,18 @@ show symbols/all
 PPL$XPIXEL = "406"
 PPL$YPIXEL = "406"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.93"
-FERRET_PLATFORM = "Linux 2.6.18-398.el5PAE 32-bit"
+FERRET_VERSION = "6.951"
+FERRET_PLATFORM = "Linux 2.6.18-407.el5PAE 32-bit"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.3-rc2 of Oct  6 2014 16:16:52 $"
+NETCDF_VERSION = "4.3.2 of Dec 16 2014 12:21:13 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "29-Oct-14"
-SESSION_TIME = "15:55"
-SESSION_PID = "1266"
-DELTA_CPU = "0.010998"
-CLOCK_SECS = "7.661"
-CURRENT_DATE = "29-Oct-14"
-CURRENT_TIME = "15:56:03"
+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"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
  
@@ -14116,7 +14143,7 @@ Dynamic axes:
  
 ! calendar axes
 list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave]   ! 6-day ave
- !-> list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:144 at ave]   ! 6-day ave
+ !-> list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:144 at ave]
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: 144 hour on T at AVE
              FILENAME : gtsa056_1.cdf
@@ -14142,7 +14169,7 @@ list/k=1/y=0/x=180/l=1 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave]
              TIME     : 15-JAN-1982 00:00
           27.7767
 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]			! pseudo-var
+ !-> list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:48]
              VARIABLE : T
                         axis (AX003)
              SUBSET   : 3 points (TIME)
@@ -19620,7 +19647,7 @@ CAN MODE VERIFY
        3>  1826.97               730.485    1461.727
        4>  2557.455              730.485    2192.213
        5>  3287.94               730.485    2922.698
-       6>  4018.425              730.485    3653.182
+       6>  4018.425              730.485    3653.183
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
              DATA SET : COAD
              FILENAME : coads_clim.des
@@ -20066,27 +20093,27 @@ GO bn_negative_t.sub tvar ave  ! like var and din
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ave]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at ave]
              VARIABLE : T[GT=TAX]
              T        : -5 to 5 (averaged)
           0.000000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ave]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at ave]
              VARIABLE : T[GT=TAX]
              T        : -8 to -5 (averaged)
          -6.66667
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ave]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at ave]
              VARIABLE : T[GT=TAX]
              T        : -9 to 3 (averaged)
          -3.00000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ave]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at ave]
              VARIABLE : T[GT=TAX]
              T        : -9 to -3 (averaged)
          -6.00000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ave]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@ave]
              VARIABLE : T[GT=TAX]
              T        : -11 to 11 (averaged)
           0.000000
@@ -20102,7 +20129,7 @@ GO bn_negative_t.sub tvar iin
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at iin]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at iin]
              VARIABLE : T[GT=TAX]
                         indef. integ. on T
              SUBSET   : 5 points (T)
@@ -20112,14 +20139,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  -8.0000
  4    / 8:   0.0000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at iin]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at iin]
              VARIABLE : T[GT=TAX]
                         indef. integ. on T
              SUBSET   : 2 points (T)
  -8   / 2:  -8.0000
  -6   / 3: -20.0000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at iin]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at iin]
              VARIABLE : T[GT=TAX]
                         indef. integ. on T
              SUBSET   : 6 points (T)
@@ -20130,7 +20157,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6: -40.0000
  2    / 7: -36.0000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at iin]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at iin]
              VARIABLE : T[GT=TAX]
                         indef. integ. on T
              SUBSET   : 3 points (T)
@@ -20138,7 +20165,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3: -28.0000
  -4   / 4: -36.0000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@iin]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@iin]
              VARIABLE : T[GT=TAX]
                         indef. integ. on T
              SUBSET   : 11 points (T)
@@ -20165,27 +20192,27 @@ GO bn_negative_t.sub tvar sum
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at sum]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at sum]
              VARIABLE : T[GT=TAX]
              T        : -5 to 5 (summed)
           0.000000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at sum]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at sum]
              VARIABLE : T[GT=TAX]
              T        : -8 to -5 (summed)
          -14.0000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at sum]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at sum]
              VARIABLE : T[GT=TAX]
              T        : -9 to 3 (summed)
          -18.0000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at sum]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at sum]
              VARIABLE : T[GT=TAX]
              T        : -9 to -3 (summed)
          -18.0000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@sum]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@sum]
              VARIABLE : T[GT=TAX]
              T        : -11 to 11 (summed)
           0.000000
@@ -20201,7 +20228,7 @@ GO bn_negative_t.sub tvar rsu
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at rsu]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at rsu]
              VARIABLE : T[GT=TAX]
                         running sum on T
              SUBSET   : 5 points (T)
@@ -20211,14 +20238,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7: -4.00000
  4    / 8:  0.00000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at rsu]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at rsu]
              VARIABLE : T[GT=TAX]
                         running sum on T
              SUBSET   : 2 points (T)
  -8   / 2:  -8.0000
  -6   / 3: -14.0000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at rsu]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at rsu]
              VARIABLE : T[GT=TAX]
                         running sum on T
              SUBSET   : 6 points (T)
@@ -20229,7 +20256,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6: -20.0000
  2    / 7: -18.0000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at rsu]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at rsu]
              VARIABLE : T[GT=TAX]
                         running sum on T
              SUBSET   : 3 points (T)
@@ -20237,7 +20264,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3: -14.0000
  -4   / 4: -18.0000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@rsu]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@rsu]
              VARIABLE : T[GT=TAX]
                         running sum on T
              SUBSET   : 11 points (T)
@@ -20264,7 +20291,7 @@ GO bn_negative_t.sub tvar shf
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at shf]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at shf]
              VARIABLE : T[GT=TAX]
                         shifted by 1 pts on T
              SUBSET   : 5 points (T)
@@ -20274,14 +20301,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  4.00000
  4    / 8:  6.00000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at shf]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at shf]
              VARIABLE : T[GT=TAX]
                         shifted by 1 pts on T
              SUBSET   : 2 points (T)
  -8   / 2: -6.00000
  -6   / 3: -4.00000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at shf]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at shf]
              VARIABLE : T[GT=TAX]
                         shifted by 1 pts on T
              SUBSET   : 6 points (T)
@@ -20292,7 +20319,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  2.00000
  2    / 7:  4.00000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at shf]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at shf]
              VARIABLE : T[GT=TAX]
                         shifted by 1 pts on T
              SUBSET   : 3 points (T)
@@ -20300,7 +20327,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3: -4.00000
  -4   / 4: -2.00000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@shf]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@shf]
              VARIABLE : T[GT=TAX]
                         shifted by 1 pts on T
              SUBSET   : 11 points (T)
@@ -20327,27 +20354,27 @@ GO bn_negative_t.sub tvar min   ! like @max
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at min]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at min]
              VARIABLE : T[GT=TAX]
              T        : -5 to 5 (minimum)
          -4.00000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at min]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at min]
              VARIABLE : T[GT=TAX]
              T        : -8 to -5 (minimum)
          -8.00000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at min]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at min]
              VARIABLE : T[GT=TAX]
              T        : -9 to 3 (minimum)
          -8.00000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at min]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at min]
              VARIABLE : T[GT=TAX]
              T        : -9 to -3 (minimum)
          -8.00000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@min]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@min]
              VARIABLE : T[GT=TAX]
              T        : -11 to 11 (minimum)
          -10.0000
@@ -20363,7 +20390,7 @@ GO bn_negative_t.sub tvar ddf
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ddf]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at ddf]
              VARIABLE : T[GT=TAX]
                         forward derivative on T
              SUBSET   : 5 points (T)
@@ -20373,14 +20400,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  1.00000
  4    / 8:  1.00000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ddf]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at ddf]
              VARIABLE : T[GT=TAX]
                         forward derivative on T
              SUBSET   : 2 points (T)
  -8   / 2:  1.00000
  -6   / 3:  1.00000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ddf]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at ddf]
              VARIABLE : T[GT=TAX]
                         forward derivative on T
              SUBSET   : 6 points (T)
@@ -20391,7 +20418,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  1.00000
  2    / 7:  1.00000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ddf]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at ddf]
              VARIABLE : T[GT=TAX]
                         forward derivative on T
              SUBSET   : 3 points (T)
@@ -20399,7 +20426,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3:  1.00000
  -4   / 4:  1.00000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ddf]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@ddf]
              VARIABLE : T[GT=TAX]
                         forward derivative on T
              SUBSET   : 11 points (T)
@@ -20426,7 +20453,7 @@ GO bn_negative_t.sub tvar ddb   ! @ddc like ddf and ddb
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ddb]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at ddb]
              VARIABLE : T[GT=TAX]
                         backwards derivative on T
              SUBSET   : 5 points (T)
@@ -20436,14 +20463,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  1.00000
  4    / 8:  1.00000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ddb]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at ddb]
              VARIABLE : T[GT=TAX]
                         backwards derivative on T
              SUBSET   : 2 points (T)
  -8   / 2:  1.00000
  -6   / 3:  1.00000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ddb]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at ddb]
              VARIABLE : T[GT=TAX]
                         backwards derivative on T
              SUBSET   : 6 points (T)
@@ -20454,7 +20481,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  1.00000
  2    / 7:  1.00000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ddb]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at ddb]
              VARIABLE : T[GT=TAX]
                         backwards derivative on T
              SUBSET   : 3 points (T)
@@ -20462,7 +20489,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3:  1.00000
  -4   / 4:  1.00000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ddb]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@ddb]
              VARIABLE : T[GT=TAX]
                         backwards derivative on T
              SUBSET   : 11 points (T)
@@ -20489,7 +20516,7 @@ GO bn_negative_t.sub tvar sbx  ! like sbn, swl, shn, spz
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at sbx]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at sbx]
              VARIABLE : T[GT=TAX]
                         box smoothed by 3 pts on T
              SUBSET   : 5 points (T)
@@ -20499,14 +20526,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  2.00000
  4    / 8:  4.00000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at sbx]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at sbx]
              VARIABLE : T[GT=TAX]
                         box smoothed by 3 pts on T
              SUBSET   : 2 points (T)
  -8   / 2: -8.00000
  -6   / 3: -6.00000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at sbx]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at sbx]
              VARIABLE : T[GT=TAX]
                         box smoothed by 3 pts on T
              SUBSET   : 6 points (T)
@@ -20517,7 +20544,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  0.00000
  2    / 7:  2.00000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at sbx]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at sbx]
              VARIABLE : T[GT=TAX]
                         box smoothed by 3 pts on T
              SUBSET   : 3 points (T)
@@ -20525,7 +20552,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3: -6.00000
  -4   / 4: -4.00000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@sbx]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@sbx]
              VARIABLE : T[GT=TAX]
                         box smoothed by 3 pts on T
              SUBSET   : 11 points (T)
@@ -20552,27 +20579,27 @@ GO bn_negative_t.sub tvar loc:-2.2
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at loc:-2.2]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at loc:-2.2]
              VARIABLE : T of -2.2 in T[GT=TAX]
              T        : -5 to 5 (location of -2.2)
          -2.20000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at loc:-2.2]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at loc:-2.2]
              VARIABLE : T of -2.2 in T[GT=TAX]
              T        : -8 to -5 (location of -2.2)
         ....
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at loc:-2.2]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at loc:-2.2]
              VARIABLE : T of -2.2 in T[GT=TAX]
              T        : -9 to 3 (location of -2.2)
          -2.20000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at loc:-2.2]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at loc:-2.2]
              VARIABLE : T of -2.2 in T[GT=TAX]
              T        : -9 to -3 (location of -2.2)
         ....
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@loc:-2.2]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@loc:-2.2]
              VARIABLE : T of -2.2 in T[GT=TAX]
              T        : -11 to 11 (location of -2.2)
          -2.20000
@@ -20588,7 +20615,7 @@ GO bn_negative_t.sub tvar weq:-2.2
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at weq:-2.2]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at weq:-2.2]
              VARIABLE : T[GT=TAX]
                         weighted equal of -2.2 on T
              SUBSET   : 5 points (T)
@@ -20598,14 +20625,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:      ....
  4    / 8:      ....
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at weq:-2.2]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at weq:-2.2]
              VARIABLE : T[GT=TAX]
                         weighted equal of -2.2 on T
              SUBSET   : 2 points (T)
  -8   / 2:....
  -6   / 3:....
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at weq:-2.2]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at weq:-2.2]
              VARIABLE : T[GT=TAX]
                         weighted equal of -2.2 on T
              SUBSET   : 6 points (T)
@@ -20616,7 +20643,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:      ....
  2    / 7:      ....
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at weq:-2.2]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at weq:-2.2]
              VARIABLE : T[GT=TAX]
                         weighted equal of -2.2 on T
              SUBSET   : 3 points (T)
@@ -20624,7 +20651,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3:....
  -4   / 4:....
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@weq:-2.2]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@weq:-2.2]
              VARIABLE : T[GT=TAX]
                         weighted equal of -2.2 on T
              SUBSET   : 11 points (T)
@@ -20667,27 +20694,27 @@ GO bn_negative_t.sub tgap ngd   ! like @nbd
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tgap[t=-5:5 at ngd]	! neg/pos t endpoints
+ !-> LIST tgap[t=-5:5 at ngd]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR (# of points)
              T        : -5 to 5 (number of valid)
           3.00000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tgap[t=-5:-8 at ngd]	! neg/neq t endpoints
+ !-> LIST tgap[t=-5:-8 at ngd]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR (# of points)
              T        : -8 to -5 (number of valid)
           1.00000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tgap[l=2:7 at ngd]	! neg/pos l endpoints
+ !-> LIST tgap[l=2:7 at ngd]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR (# of points)
              T        : -9 to 3 (number of valid)
           3.00000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tgap[l=2:4 at ngd]	! neg/neg l endpoints
+ !-> LIST tgap[l=2:4 at ngd]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR (# of points)
              T        : -9 to -3 (number of valid)
           2.00000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tgap[l=@ngd]	! unspecified limits (neg/pos)
+ !-> LIST tgap[l=@ngd]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR (# of points)
              T        : -11 to 11 (number of valid)
           5.00000
@@ -20703,7 +20730,7 @@ GO bn_negative_t.sub tgap fav  ! like fln (fnr not implemented)
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tgap[t=-5:5 at fav]	! neg/pos t endpoints
+ !-> LIST tgap[t=-5:5 at fav]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR
                         ave-filled by 3 pts on T
              SUBSET   : 5 points (T)
@@ -20713,14 +20740,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  2.00000
  4    / 8:  4.00000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tgap[t=-5:-8 at fav]	! neg/neq t endpoints
+ !-> LIST tgap[t=-5:-8 at fav]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR
                         ave-filled by 3 pts on T
              SUBSET   : 2 points (T)
  -8   / 2: -8.00000
  -6   / 3: -6.00000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tgap[l=2:7 at fav]	! neg/pos l endpoints
+ !-> LIST tgap[l=2:7 at fav]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR
                         ave-filled by 3 pts on T
              SUBSET   : 6 points (T)
@@ -20731,7 +20758,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  0.00000
  2    / 7:  2.00000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tgap[l=2:4 at fav]	! neg/neg l endpoints
+ !-> LIST tgap[l=2:4 at fav]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR
                         ave-filled by 3 pts on T
              SUBSET   : 3 points (T)
@@ -20739,7 +20766,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3: -6.00000
  -4   / 4: -4.00000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tgap[l=@fav]	! unspecified limits (neg/pos)
+ !-> LIST tgap[l=@fav]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR
                         ave-filled by 3 pts on T
              SUBSET   : 11 points (T)
@@ -20788,7 +20815,7 @@ GO bn_negative_t.sub blin nul
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST blin[t=-5:5 at nul]	! neg/pos t endpoints
+ !-> LIST blin[t=-5:5 at nul]
              VARIABLE : A[GT=TDST at LIN]
              SUBSET   : 5 points (T)
  -4   / 4: -4.00000
@@ -20797,13 +20824,13 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  2.00000
  4    / 8:  4.00000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST blin[t=-5:-8 at nul]	! neg/neq t endpoints
+ !-> LIST blin[t=-5:-8 at nul]
              VARIABLE : A[GT=TDST at LIN]
              SUBSET   : 2 points (T)
  -8   / 2: -8.00000
  -6   / 3: -6.00000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST blin[l=2:7 at nul]	! neg/pos l endpoints
+ !-> LIST blin[l=2:7 at nul]
              VARIABLE : A[GT=TDST at LIN]
              SUBSET   : 6 points (T)
  -8   / 2: -8.00000
@@ -20813,14 +20840,14 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  0.00000
  2    / 7:  2.00000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST blin[l=2:4 at nul]	! neg/neg l endpoints
+ !-> LIST blin[l=2:4 at nul]
              VARIABLE : A[GT=TDST at LIN]
              SUBSET   : 3 points (T)
  -8   / 2: -8.00000
  -6   / 3: -6.00000
  -4   / 4: -4.00000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST blin[l=@nul]	! unspecified limits (neg/pos)
+ !-> LIST blin[l=@nul]
              VARIABLE : A[GT=TDST at LIN]
              SUBSET   : 11 points (T)
  -10   /  1:     ....
@@ -20846,7 +20873,7 @@ GO bn_negative_t.sub bave nul
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST bave[t=-5:5 at nul]	! neg/pos t endpoints
+ !-> LIST bave[t=-5:5 at nul]
              VARIABLE : A[GT=TDST at AVE]
              SUBSET   : 5 points (T)
  -4   / 4: -4.00000
@@ -20855,13 +20882,13 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  2.00000
  4    / 8:  4.00000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST bave[t=-5:-8 at nul]	! neg/neq t endpoints
+ !-> LIST bave[t=-5:-8 at nul]
              VARIABLE : A[GT=TDST at AVE]
              SUBSET   : 2 points (T)
  -8   / 2: -8.00000
  -6   / 3: -6.00000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST bave[l=2:7 at nul]	! neg/pos l endpoints
+ !-> LIST bave[l=2:7 at nul]
              VARIABLE : A[GT=TDST at AVE]
              SUBSET   : 6 points (T)
  -8   / 2: -8.00000
@@ -20871,14 +20898,14 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  0.00000
  2    / 7:  2.00000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST bave[l=2:4 at nul]	! neg/neg l endpoints
+ !-> LIST bave[l=2:4 at nul]
              VARIABLE : A[GT=TDST at AVE]
              SUBSET   : 3 points (T)
  -8   / 2: -8.00000
  -6   / 3: -6.00000
  -4   / 4: -4.00000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST bave[l=@nul]	! unspecified limits (neg/pos)
+ !-> LIST bave[l=@nul]
              VARIABLE : A[GT=TDST at AVE]
              SUBSET   : 11 points (T)
  -10   /  1: -9.00000
@@ -20904,7 +20931,7 @@ GO bn_negative_t.sub basn nul
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST basn[t=-5:5 at nul]	! neg/pos t endpoints
+ !-> LIST basn[t=-5:5 at nul]
              VARIABLE : A[GT=TDST at ASN]
              SUBSET   : 5 points (T)
  -4   / 4: -6.00000
@@ -20913,13 +20940,13 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7: -3.00000
  4    / 8: -2.00000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST basn[t=-5:-8 at nul]	! neg/neq t endpoints
+ !-> LIST basn[t=-5:-8 at nul]
              VARIABLE : A[GT=TDST at ASN]
              SUBSET   : 2 points (T)
  -8   / 2: -8.00000
  -6   / 3: -7.00000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST basn[l=2:7 at nul]	! neg/pos l endpoints
+ !-> LIST basn[l=2:7 at nul]
              VARIABLE : A[GT=TDST at ASN]
              SUBSET   : 6 points (T)
  -8   / 2: -8.00000
@@ -20929,14 +20956,14 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6: -4.00000
  2    / 7: -3.00000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST basn[l=2:4 at nul]	! neg/neg l endpoints
+ !-> LIST basn[l=2:4 at nul]
              VARIABLE : A[GT=TDST at ASN]
              SUBSET   : 3 points (T)
  -8   / 2: -8.00000
  -6   / 3: -7.00000
  -4   / 4: -6.00000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST basn[l=@nul]	! unspecified limits (neg/pos)
+ !-> LIST basn[l=@nul]
              VARIABLE : A[GT=TDST at ASN]
              SUBSET   : 11 points (T)
  -10   /  1: -9.00000
@@ -21077,7 +21104,7 @@ CANCEL REGION
 GO bn_xact_regrid.sub X
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21087,7 +21114,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21101,7 +21128,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21111,7 +21138,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETBIG]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21125,7 +21152,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETSMALL]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21139,7 +21166,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINEOFFSET]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21152,7 +21179,7 @@ SET REGION/X=2:4
 GO bn_xact_regrid.sub X
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 3 points (X)
@@ -21160,7 +21187,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21170,7 +21197,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  3.5  / 6:     ....
  4    / 7:  4.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 3 points (X)
@@ -21178,7 +21205,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETBIG]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21188,7 +21215,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  3.5  / 6:  3.50000
  4    / 7:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETSMALL]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21198,7 +21225,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  3.5  / 6:  3.50000
  4    / 7:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINEOFFSET]
                         regrid: 1 delta on X at XACT
              SUBSET   : 3 points (X)
@@ -21209,7 +21236,7 @@ SET REGION/X=1:5
 GO bn_xact_regrid.sub X
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21219,7 +21246,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21233,7 +21260,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21243,7 +21270,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETBIG]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21257,7 +21284,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETSMALL]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21271,7 +21298,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINEOFFSET]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21284,7 +21311,7 @@ SET REGION/X=1.5:4.5
 GO bn_xact_regrid.sub X
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 3 points (X)
@@ -21292,7 +21319,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 7 points (X)
@@ -21304,7 +21331,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4    / 7:  4.00000
  4.5  / 8:     ....
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 3 points (X)
@@ -21312,7 +21339,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETBIG]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 7 points (X)
@@ -21324,7 +21351,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4    / 7:     ....
  4.5  / 8:  4.50000
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETSMALL]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 7 points (X)
@@ -21336,7 +21363,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4    / 7:     ....
  4.5  / 8:  4.50000
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINEOFFSET]
                         regrid: 1 delta on X at XACT
              SUBSET   : 3 points (X)
@@ -21347,7 +21374,7 @@ SET REGION/X=0:6
 GO bn_xact_regrid.sub X
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21357,7 +21384,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21371,7 +21398,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21381,7 +21408,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETBIG]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21395,7 +21422,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETSMALL]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21409,7 +21436,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINEOFFSET]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21424,7 +21451,7 @@ CANCEL REGION
 GO bn_xact_regrid.sub Y
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21434,7 +21461,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21448,7 +21475,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21458,7 +21485,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETBIG]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21472,7 +21499,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETSMALL]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21486,7 +21513,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINEOFFSET]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21499,7 +21526,7 @@ SET REGION/Y=2:4
 GO bn_xact_regrid.sub Y
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 3 points (Y)
@@ -21507,7 +21534,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21517,7 +21544,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  3.5  / 6:     ....
  4    / 7:  4.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 3 points (Y)
@@ -21525,7 +21552,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETBIG]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21535,7 +21562,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  3.5  / 6:  3.50000
  4    / 7:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETSMALL]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21545,7 +21572,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  3.5  / 6:  3.50000
  4    / 7:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINEOFFSET]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 3 points (Y)
@@ -21556,7 +21583,7 @@ SET REGION/Y=1:5
 GO bn_xact_regrid.sub Y
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21566,7 +21593,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21580,7 +21607,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21590,7 +21617,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETBIG]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21604,7 +21631,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETSMALL]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21618,7 +21645,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINEOFFSET]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21631,7 +21658,7 @@ SET REGION/Y=1.5:4.5
 GO bn_xact_regrid.sub Y
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 3 points (Y)
@@ -21639,7 +21666,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 7 points (Y)
@@ -21651,7 +21678,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4    / 7:  4.00000
  4.5  / 8:     ....
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 3 points (Y)
@@ -21659,7 +21686,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETBIG]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 7 points (Y)
@@ -21671,7 +21698,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4    / 7:     ....
  4.5  / 8:  4.50000
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETSMALL]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 7 points (Y)
@@ -21683,7 +21710,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4    / 7:     ....
  4.5  / 8:  4.50000
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINEOFFSET]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 3 points (Y)
@@ -21694,7 +21721,7 @@ SET REGION/Y=0:6
 GO bn_xact_regrid.sub Y
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21704,7 +21731,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21718,7 +21745,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21728,7 +21755,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETBIG]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21742,7 +21769,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETSMALL]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21756,7 +21783,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINEOFFSET]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21771,7 +21798,7 @@ CANCEL REGION
 GO bn_xact_regrid.sub Z
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21781,7 +21808,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21795,7 +21822,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21805,7 +21832,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETBIG]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21819,7 +21846,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETSMALL]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21833,7 +21860,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINEOFFSET]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21846,7 +21873,7 @@ SET REGION/Z=2:4
 GO bn_xact_regrid.sub Z
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 3 points (Z)
@@ -21854,7 +21881,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21864,7 +21891,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  3.5  / 6:     ....
  4    / 7:  4.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 3 points (Z)
@@ -21872,7 +21899,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETBIG]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21882,7 +21909,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  3.5  / 6:  3.50000
  4    / 7:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETSMALL]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21892,7 +21919,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  3.5  / 6:  3.50000
  4    / 7:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINEOFFSET]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 3 points (Z)
@@ -21903,7 +21930,7 @@ SET REGION/Z=1:5
 GO bn_xact_regrid.sub Z
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21913,7 +21940,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21927,7 +21954,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21937,7 +21964,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETBIG]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21951,7 +21978,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETSMALL]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21965,7 +21992,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINEOFFSET]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21978,7 +22005,7 @@ SET REGION/Z=1.5:4.5
 GO bn_xact_regrid.sub Z
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 3 points (Z)
@@ -21986,7 +22013,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 7 points (Z)
@@ -21998,7 +22025,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4    / 7:  4.00000
  4.5  / 8:     ....
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 3 points (Z)
@@ -22006,7 +22033,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETBIG]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 7 points (Z)
@@ -22018,7 +22045,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4    / 7:     ....
  4.5  / 8:  4.50000
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETSMALL]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 7 points (Z)
@@ -22030,7 +22057,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4    / 7:     ....
  4.5  / 8:  4.50000
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINEOFFSET]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 3 points (Z)
@@ -22041,7 +22068,7 @@ SET REGION/Z=0:6
 GO bn_xact_regrid.sub Z
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -22051,7 +22078,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -22065,7 +22092,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -22075,7 +22102,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETBIG]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -22089,7 +22116,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETSMALL]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -22103,7 +22130,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINEOFFSET]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -22118,7 +22145,7 @@ CANCEL REGION
 GO bn_xact_regrid.sub T
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22128,7 +22155,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22142,7 +22169,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22152,7 +22179,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETBIG]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22166,7 +22193,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETSMALL]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22180,7 +22207,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINEOFFSET]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22193,7 +22220,7 @@ SET REGION/T=2:4
 GO bn_xact_regrid.sub T
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 3 points (T)
@@ -22201,7 +22228,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22211,7 +22238,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  3.5  / 6:     ....
  4    / 7:  4.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 3 points (T)
@@ -22219,7 +22246,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETBIG]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22229,7 +22256,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  3.5  / 6:  3.50000
  4    / 7:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETSMALL]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22239,7 +22266,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  3.5  / 6:  3.50000
  4    / 7:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINEOFFSET]
                         regrid: 1 delta on T at XACT
              SUBSET   : 3 points (T)
@@ -22250,7 +22277,7 @@ SET REGION/T=1:5
 GO bn_xact_regrid.sub T
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22260,7 +22287,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22274,7 +22301,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22284,7 +22311,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETBIG]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22298,7 +22325,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETSMALL]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22312,7 +22339,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINEOFFSET]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22325,7 +22352,7 @@ SET REGION/T=1.5:4.5
 GO bn_xact_regrid.sub T
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 3 points (T)
@@ -22333,7 +22360,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 7 points (T)
@@ -22345,7 +22372,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4    / 7:  4.00000
  4.5  / 8:     ....
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 3 points (T)
@@ -22353,7 +22380,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETBIG]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 7 points (T)
@@ -22365,7 +22392,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4    / 7:     ....
  4.5  / 8:  4.50000
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETSMALL]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 7 points (T)
@@ -22377,7 +22404,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4    / 7:     ....
  4.5  / 8:  4.50000
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINEOFFSET]
                         regrid: 1 delta on T at XACT
              SUBSET   : 3 points (T)
@@ -22388,7 +22415,7 @@ SET REGION/T=0:6
 GO bn_xact_regrid.sub T
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22398,7 +22425,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22412,7 +22439,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22422,7 +22449,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETBIG]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22436,7 +22463,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETSMALL]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22450,7 +22477,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINEOFFSET]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -23980,7 +24007,33 @@ list 'X'			! Now the proper syntax
  19   / 19:  0.578440
  20   / 20:  0.656987
 list i  			! Deliberate error
-list 'i'  			! Deliberate error
+ 
+! v694 No longer an error: See ticket 2050
+list 'i'  			!
+             VARIABLE : SIN(4+I/10)
+             FILENAME : weird_name1.cdf
+             SUBSET   : 20 points (X)
+ 1    /  1: -0.818277
+ 2    /  2: -0.871576
+ 3    /  3: -0.916166
+ 4    /  4: -0.951602
+ 5    /  5: -0.977530
+ 6    /  6: -0.993691
+ 7    /  7: -0.999923
+ 8    /  8: -0.996165
+ 9    /  9: -0.982453
+ 10   / 10: -0.958924
+ 11   / 11: -0.925815
+ 12   / 12: -0.883455
+ 13   / 13: -0.832267
+ 14   / 14: -0.772764
+ 15   / 15: -0.705540
+ 16   / 16: -0.631267
+ 17   / 17: -0.550686
+ 18   / 18: -0.464602
+ 19   / 19: -0.373877
+ 20   / 20: -0.279415
+ 
 list 'I'			! Now the proper syntax
              VARIABLE : SIN(4+I/10)
              FILENAME : weird_name1.cdf
@@ -25630,7 +25683,7 @@ GO err491_spawn_quotes.jnl
  
 ! this should be a valid command
 SPAWN "date"
-Wed Oct 29 15:56:10 PDT 2014
+Tue Nov 17 09:25:57 PST 2015
  
 GO bn_reset
 cancel mode verify
@@ -30850,9 +30903,15 @@ say `a,return=isize`     ! no evaluation of a required -- just context
  getgrid A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
  pass #2 A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ pseudo  I        M: 97 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  !-> MESSAGE/CONTINUE 10
 10
 list/nohead a            ! evaluate it now
+ -DELETE I        M: 97 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
@@ -30872,6 +30931,7 @@ list/nohead a            ! evaluate it now
 let a = XSEQUENCE(j[j=1:5])
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  -DELETE A        M: 98 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE A        M: 99 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  -DELETE I        M: 97 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  -DELETE SST5SBX  M: 91 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
@@ -32499,7 +32559,7 @@ list xy_laplace_gridded
  19.47N / 19:     ....     ....     ....     ....  117.831  207.449  172.925     ....     ....     ....
  18.95N / 18:     ....     ....     ....  137.758  107.307   98.003     ....     ....     ....     ....
  18.42N / 17:     ....     ....     ....  161.079  156.071    7.072   16.239     ....     ....     ....
- 17.89N / 16:     ....     ....     ....  179.862  189.128   81.665     ....     ....     ....     ....
+ 17.9N  / 16:     ....     ....     ....  179.862  189.128   81.665     ....     ....     ....     ....
  17.37N / 15:     ....     ....     ....  165.097  200.741  145.418     ....     ....     ....     ....
  16.84N / 14:     ....     ....     ....  128.322  183.027  168.029  182.582     ....     ....     ....
  16.32N / 13:     ....     ....   76.347   92.413  158.520  190.506  197.367     ....     ....     ....
@@ -34116,8 +34176,17 @@ SAMPLEL_MULTI(L_INDICES,DAT_TO_SAMPLE)
     Returns data sampled according to L indices which may vary in IJK
     L_INDICES: ordered indices
     DAT_TO_SAMPLE: data to sample using L indices
+SAMPLEF_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
+    Returns data sampled by interpolating to a set of times in F direction
+    DAT_TO_SAMPLE: data to sample at set of times in F
+    YR: Year(s) yyyy
+    MO: Month(s), integer mm
+    DAY: Day(s) of month dd
+    HR: Hour(s) hh
+    MIN: Minute(s) mm
+    SEC: Second(s) ss
 SAMPLET_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
-    Returns data sampled by interpolating to a set of times
+    Returns data sampled by interpolating to a set of times in T direction
     DAT_TO_SAMPLE: data to sample at set of times
     YR: Year(s) yyyy
     MO: Month(s), integer mm
@@ -34182,6 +34251,14 @@ SAMPLE_FAST_I(V,Indices)
     Fast 1D sample variable using set of indices
     V: Variable to sample
     Indices: List of indices at which to sample
+SAMPLE_FAST_I_STR(S,Indices)
+    Fast 1D sample string variable using set of indices
+    S: String Variable to sample (STRING)
+    Indices: List of indices at which to sample
+SAMPLE_FAST_I(V,Indices)
+    Fast 1D sample variable using set of indices
+    V: Variable to sample
+    Indices: List of indices at which to sample
  
 go bench_sorti.jnl
  
@@ -34781,9 +34858,9 @@ list/l=1:2 eofxyfcn
  1N   / 46: -0.308620 -0.280936 -0.291017
  1S   / 45: -0.271470 -0.497559 -0.595639
  ---- L:2 T:   2
- 3N   / 47: -0.052492 -0.002775 -0.124133
- 1N   / 46:  0.064590  0.057180 -0.069549
- 1S   / 45:  0.121296  0.039745 -0.034207
+ 3N   / 47:  0.052492  0.002775  0.124133
+ 1N   / 46: -0.064590 -0.057180  0.069549
+ 1S   / 45: -0.121296 -0.039745  0.034207
  
 LET eofstat = eofsvd_stat(sst[X=27w:23w,Y=1S:3N])
 list/i=1:3/j=1:3 eofstat
@@ -34803,9 +34880,9 @@ list/i=1:2 eoftime
              SUBSET   : 2 by 3 points (X-TIME)
                       1        2     
                       1        2
- 16-JAN      / 1:  1.17837 -0.78194
- 15-FEB      / 2:  0.08800  1.41147
- 17-MAR      / 3: -1.26637 -0.62953
+ 16-JAN      / 1:  1.17837  0.78194
+ 15-FEB      / 2:  0.08800 -1.41147
+ 17-MAR      / 3: -1.26637  0.62953
  
  
 exit/script
@@ -35297,6 +35374,10 @@ CURV_TO_RECT_MAP(lon_in,lat_in,grid_out,radius)
     lat_in: Source grid latitudes (2-D) (degrees)
     grid_out: Any variable on destination Longitude-Latitude grid, Lon and Lat (degrees)
     radius: Source points falling within radius are included in mapping to destination point (degrees)
+CURV_TO_RECT_FSU(V,mapping)
+    Alt func to Apply mapping to regrid from curvilinear to rectangular grid
+    V: Variable to regrid, on curvilinear grid V(x,y,z,t)
+    mapping: mapping computed by curv_to_rect_MAP
  
 use tripolar_subset.nc
 shade ht, geolon_vert_t, geolat_vert_t
@@ -35385,12 +35466,12 @@ list/L=15:20 tax_month(t[gt=temp],temp), tax_yearfrac(t[gt=temp],temp)
  Column  1: TAX_MONTH(T[GT=TEMP],TEMP)
  Column  2: TAX_YEARFRAC(T[GT=TEMP],TEMP)
                  (C001,V001)  (C001,V009)
-10-NOV-1982 16 / 15:  11.0000  0.860274
-16-NOV-1982 18 / 16:  11.0000  0.876712
-22-NOV-1982 20 / 17:  11.0000  0.893151
-28-NOV-1982 22 / 18:  11.0000  0.909589
+10-NOV-1982 16 / 15:  11.0000  0.862100
+16-NOV-1982 18 / 16:  11.0000  0.878767
+22-NOV-1982 20 / 17:  11.0000  0.895434
+28-NOV-1982 22 / 18:  11.0000  0.912100
 05-DEC-1982 00 / 19:  12.0000  0.928767
-11-DEC-1982 02 / 20:  12.0000  0.945205
+11-DEC-1982 02 / 20:  12.0000  0.945434
 list/L=15:20 tax_year(t[gt=temp],temp)
              VARIABLE : TAX_YEAR(T[GT=TEMP],TEMP)
              FILENAME : gt4d011.cdf
@@ -36640,6 +36721,8 @@ list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", ") + "fri
 list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
  1   / 1:"now, goodbye, my friend" "now, hello, friend"      
  2   / 2:"then, goodbye, my friend""then, hello, friend"     
+ 
+SET MODE IGNORE
 list/nohead ysequence({98, 99})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
  1   / 1:........
  2   / 2:........
@@ -36654,18 +36737,11 @@ list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "g
  2   / 2:........
  
 ! numerical operators applied to strings
+ 
 list/nohead "b" - {"a","b"}
- 1   / 1:....
- 2   / 2:....
 list/nohead "b" * {"a","b"}
- 1   / 1:....
- 2   / 2:....
 list/nohead "b" / {"a","b"}
- 1   / 1:....
- 2   / 2:....
 list/nohead "b" ^ {"a","b"}
- 1   / 1:....
- 2   / 2:....
 list/nohead {"a","b"} + 1
  1   / 1:....
  2   / 2:....
@@ -36676,18 +36752,14 @@ list/nohead 1 - {"a","b"}
  1   / 1:....
  2   / 2:....
 list/nohead SIN({"a","b","c"})
- 1   / 1:....
- 2   / 2:....
- 3   / 3:....
 list/nohead MAX("a",{"a","b","c"})
- 1   / 1:....
- 2   / 2:....
- 3   / 3:....
 list/nohead MAX(1,{"a","b","c"})
  1   / 1:....
  2   / 2:....
  3   / 3:....
  
+CANCEL MODE IGNORE
+ 
 ! transformations applied to strings
 let a = {"a","b","c","d"}
 list a[i=@shf]
@@ -36982,13 +37054,13 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
  Column  8: V8
  Column  9: V9
  Column 10: V10
-                  V1  V2    V3       V4       V5     V6     V7       V8     V9     V10
-1   / 1: "one"       ...  1.10000 -24.0000  130.000 " "    10.000 "word 1" " "      ....
-2   / 2: "two"       ...  2.20000  24.0000 -130.000 "2S"     .... "word 2" " "      ....
-3   / 3: "three"     ...  3.30000  24.0000  130.000 "3N"    0.030 " wd 3 " " "      ....
-4   / 4: " "         ...     ....     ....     .... " "      .... " "      " "      ....
-5   / 5: "five"      ...  4.40000 -24.0000 -130.000 "91" -400.000 "word 4" "aa"  77.0000
-6   / 6: "extra line"...     ....     ....     .... " "      .... " "      " "      ....
+                  V1   V2     V3       V4       V5     V6     V7       V8     V9     V10
+1   / 1: "one"        ....  1.10000 -24.0000  130.000 " "    10.000 "word 1" " "      ....
+2   / 2: "two"        ....  2.20000  24.0000 -130.000 "2S"     .... "word 2" " "      ....
+3   / 3: "three"      ....  3.30000  24.0000  130.000 "3N"    0.030 " wd 3 " " "      ....
+4   / 4: " "          ....     ....     ....     .... " "      .... " "      " "      ....
+5   / 5: "five"       ....  4.40000 -24.0000 -130.000 "91" -400.000 "word 4" "aa"  77.0000
+6   / 6: "extra line" ....     ....     ....     .... " "      .... " "      " "      ....
  
 ! insist that all columns be treated as string
 file/format=delim/skip=1/type=text bn_delimited_read_1.dat
@@ -37056,13 +37128,13 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
  Column  8: V8
  Column  9: V9
  Column 10: V10
-        V1  V2    V3       V4       V5       V6       V7    V8 V9    V10
-1   / 1:......  1.10000     ....     ....     ....   10.000......     ....
-2   / 2:......  2.20000     ....     ....     ....     ..........     ....
-3   / 3:......  3.30000  24.0000  130.000     ....    0.030......     ....
-4   / 4:......     ....     ....     ....     ....     ..........     ....
-5   / 5:......  4.40000 -24.0000 -130.000  91.0000 -400.000......  77.0000
-6   / 6:......     ....     ....     ....     ....     ..........     ....
+          V1   V2     V3       V4       V5       V6       V7     V8   V9     V10
+1   / 1: .... ....  1.10000     ....     ....     ....   10.000 .... ....     ....
+2   / 2: .... ....  2.20000     ....     ....     ....     .... .... ....     ....
+3   / 3: .... ....  3.30000  24.0000  130.000     ....    0.030 .... ....     ....
+4   / 4: .... ....     ....     ....     ....     ....     .... .... ....     ....
+5   / 5: .... ....  4.40000 -24.0000 -130.000  91.0000 -400.000 .... ....  77.0000
+6   / 6: .... ....     ....     ....     ....     ....     .... .... ....     ....
  
 ! insist that all columns be treated as latitude
 file/format=delim/skip=1/type=latitude bn_delimited_read_1.dat
@@ -37079,13 +37151,13 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
  Column  8: V8 is V8 (degrees_north)(Latitude)
  Column  9: V9 is V9 (degrees_north)(Latitude)
  Column 10: V10 is V10 (degrees_north)(Latitude)
-        V1  V2    V3       V4       V5       V6       V7    V8 V9    V10
-1   / 1:......  1.10000 -24.0000     ....     ....   10.000......     ....
-2   / 2:......  2.20000  24.0000     ....  -2.0000     ..........     ....
-3   / 3:......  3.30000  24.0000  130.000   3.0000    0.030......     ....
-4   / 4:......     ....     ....     ....     ....     ..........     ....
-5   / 5:......  4.40000 -24.0000 -130.000  91.0000 -400.000......  77.0000
-6   / 6:......     ....     ....     ....     ....     ..........     ....
+          V1   V2     V3       V4       V5       V6       V7     V8   V9     V10
+1   / 1: .... ....  1.10000 -24.0000     ....     ....   10.000 .... ....     ....
+2   / 2: .... ....  2.20000  24.0000     ....  -2.0000     .... .... ....     ....
+3   / 3: .... ....  3.30000  24.0000  130.000   3.0000    0.030 .... ....     ....
+4   / 4: .... ....     ....     ....     ....     ....     .... .... ....     ....
+5   / 5: .... ....  4.40000 -24.0000 -130.000  91.0000 -400.000 .... ....  77.0000
+6   / 6: .... ....     ....     ....     ....     ....     .... .... ....     ....
  
 ! read only the first line of the file
 spawn head -1 bn_delimited_read_1.dat
@@ -37107,8 +37179,8 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
  Column  8: V8
  Column  9: V9
  Column 10: V10
-             V1    V2     V3     V4     V5    V6 V7  V8  V9 V10
-I / *:    "col1" "col2" "col3" "col4" "col5" " "... " " " "....
+             V1    V2     V3     V4     V5    V6  V7   V8  V9  V10
+I / *:    "col1" "col2" "col3" "col4" "col5" " " .... " " " " ....
 columns/grid=g1/var=c1,c2,c3,c4,c5 bn_delimited_read_1.dat
 list c1,c2,c3,c4,c5
              DATA SET: ./bn_delimited_read_1.dat
@@ -37226,11 +37298,11 @@ list v1,v2,v3,v4,v5,v6,v7,v8
  Column  6: V6 is V6 (days)(Julian days since 1-Jan-1900)
  Column  7: V7 is V7 (days)(Julian days since 1-Jan-1900)
  Column  8: V8 is V8 (days)(Julian days since 1-Jan-1900)
-              V1     V2    V3 V4    V5       V6    V7 V8
-1   / 1:  36493.0  36218.0......  36493.0  36218.0......
-2   / 2:  36494.0  36219.0......  36494.0  36219.0......
-3   / 3:     ....     ..........  36495.0  36220.0......
-4   / 4:  36496.0  36221.0......  36496.0  36221.0......
+              V1     V2     V3   V4     V5       V6     V7   V8
+1   / 1:  36493.0  36218.0 .... ....  36493.0  36218.0 .... ....
+2   / 2:  36494.0  36219.0 .... ....  36494.0  36219.0 .... ....
+3   / 3:     ....     .... .... ....  36495.0  36220.0 .... ....
+4   / 4:  36496.0  36221.0 .... ....  36496.0  36221.0 .... ....
 show data 2
      currently SET data sets:
     2> ./bn_delimited_read_date_time.dat  (default)
@@ -37265,11 +37337,11 @@ list v1,v2,v3,v4,v5,v6,v7,v8
  Column  6: V6 is V6 (hours)(Time of day)
  Column  7: V7 is V7 (hours)(Time of day)
  Column  8: V8 is V8 (hours)(Time of day)
-        V1  V2    V3       V4    V5 V6    V7       V8
-1   / 1:......  12.0000  13.7601......  12.0000  13.7601
-2   / 2:......   1.0037  14.7601......   1.0037  14.7601
-3   / 3:......     ....     ..........   2.0000  15.7500
-4   / 4:......   3.0000  16.7601......   3.0000  16.7601
+          V1   V2     V3       V4     V5   V6     V7       V8
+1   / 1: .... ....  12.0000  13.7601 .... ....  12.0000  13.7601
+2   / 2: .... ....   1.0037  14.7601 .... ....   1.0037  14.7601
+3   / 3: .... ....     ....     .... .... ....   2.0000  15.7500
+4   / 4: .... ....   3.0000  16.7601 .... ....   3.0000  16.7601
 show data 2
      currently SET data sets:
     2> ./bn_delimited_read_date_time.dat  (default)
@@ -40042,7 +40114,7 @@ list/nohead/l=1001:1009 time_series[gt=($TAXNAME)@mod]
  
 ! test modulo string arrays
 list $1_strings[i=5:7]  	! via IS_SUBSPAN_FILL
- !-> list vreg_strings[i=5:7]  	! via IS_SUBSPAN_FILL
+ !-> list vreg_strings[i=5:7]
              VARIABLE : MY_STRINGS[GX=XAX_SUBSPAN at ASN]
              FILENAME : test_subspan_modulo.nc
              SUBSET   : 3 points (X)
@@ -40050,7 +40122,7 @@ list $1_strings[i=5:7]  	! via IS_SUBSPAN_FILL
  46   / 6:"a6"
  93.5 / 7:""  
 list $1_strings[i=1013:1024] 	! via IS_MODULO
- !-> list vreg_strings[i=1013:1024] 	! via IS_MODULO
+ !-> list vreg_strings[i=1013:1024]
              VARIABLE : MY_STRINGS[GX=XAX_SUBSPAN at ASN]
              FILENAME : test_subspan_modulo.nc
              SUBSET   : 12 points (X)
@@ -40571,7 +40643,7 @@ list/nohead/l=1001:1009 time_series[gt=($TAXNAME)@mod]
  
 ! test modulo string arrays
 list $1_strings[i=5:7]  	! via IS_SUBSPAN_FILL
- !-> list virr_strings[i=5:7]  	! via IS_SUBSPAN_FILL
+ !-> list virr_strings[i=5:7]
              VARIABLE : MY_STRINGS[GX=XIRREG_SUBSPAN at ASN]
              FILENAME : test_subspan_modulo.nc
              SUBSET   : 3 points (X)
@@ -40579,7 +40651,7 @@ list $1_strings[i=5:7]  	! via IS_SUBSPAN_FILL
  46   / 6:"a6"
  93.5 / 7:""  
 list $1_strings[i=1013:1024] 	! via IS_MODULO
- !-> list virr_strings[i=1013:1024] 	! via IS_MODULO
+ !-> list virr_strings[i=1013:1024]
              VARIABLE : MY_STRINGS[GX=XIRREG_SUBSPAN at ASN]
              FILENAME : test_subspan_modulo.nc
              SUBSET   : 12 points (X)
@@ -40737,7 +40809,8 @@ show modes
       LATIT_LABEL      SET              -4
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         months
-      6D_LAB           SET
+      E_LABEL          SET               1
+      F_LABEL          SET               1
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -40756,7 +40829,8 @@ show modes
       NODATA_LAB       SET
       SHRINK_YLAB   CANCELLED
       CURVILINEAR   CANCELLED
-      SIGMA         CANCELLED
+      LAYERZ        CANCELLED
+      6D_LAB           SET
 contour/i=1:10/j=1:10 i/j
  
 ! restore the labels, logo still gone
@@ -45120,7 +45194,7 @@ list/k=1/l=1 a[i=3:5,j=1:8:2]
  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:136 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : BIGVAR[I=1:40:5]
                         regrid: 2 delta on Y
@@ -45139,7 +45213,7 @@ list/k=1/l=1 a[i=3:5,j=1:8:2]
  
 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:136 dset:   1 I:    3    5  J:    1    4  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
@@ -47540,7 +47614,7 @@ list/form=tab aa
              VARIABLE : (X[GX=XAX] + Y[GY=YAX])/100
              BAD FLAG : -1.E+34       
              SUBSET   : 6 by 9 points (LONGITUDE-LATITUDE)
-  	100E     	100E     	100.1E   	100.2E   	100.2E   	100.3E   
+  	100E     	100.E    	100.1E   	100.2E   	100.2E   	100.3E   
 0.11N	1.0011	1.0016	1.0021	1.0026	1.0031	1.0036
 0.128N	1.00128	1.00178	1.00228	1.00278	1.00328	1.00378
 0.146N	1.00146	1.00196	1.00246	1.00296	1.00346	1.00396
@@ -48033,7 +48107,7 @@ show data/full
      NCEP Ocean Analysis
  name     title                             I         J         K         L         M         N
  TEMP     temperature                      1:1       1:1       1:19      1:1       ...       ...
-             degree_Celsius on grid GGH1 with 1.E-34 & NaN for missing data
+             degree_Celsius on grid GGH1 with -1.E+34 & NaN for missing data
              X=139.8E:140.8E  Y=0.5S:0.5N  Z=0:375  
  
   time range: FEB-1980
@@ -48308,11 +48382,11 @@ ppl list labels
  @ASDeg C                                                                       
 
           XPOS       YPOS     HGT   ROT   UNITS
- LAB 1  8.000E+00  7.200E+00 0.060    0  SYSTEM  @ASFERRET Ver. 6.93
+ LAB 1  8.000E+00  7.200E+00 0.060    0  SYSTEM  @ASFERRET (beta) Ver.6.951
  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  @AS29-OCT-2014 15:56:43
+ LAB 3  8.000E+00  7.000E+00 0.060    0  SYSTEM  @AS17-NOV-2015 09:26:42
  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
@@ -48941,9 +49015,9 @@ GO err580_irreg_bounds.jnl
 ! the bounds seem to be ignored; axis is seen as regular.
 ! Bug 1160 reported by Andrew.
  
-yes? def ax/t/edge time = {0,1,3}
-yes? let a = t[gt=time]
-yes? show grid/t a
+def ax/t/edge time = {0,1,3}
+let a = t[gt=time]
+show grid/t a
     GRID (G011)
  name       axis              # pts   start                end
  normal    X
@@ -48957,17 +49031,17 @@ yes? show grid/t a
        1>  0.5                   1          0
        2>  2                     2          1
  
-yes? save/clob/file=a.nc a
+save/clob/file=a.nc a
 sp echo "err580_irreg_bounds.jnl --- " >> all_ncdump.out
-yes? sp ncdump a.nc >> all_ncdump.out
+sp ncdump a.nc >> all_ncdump.out
  
 can data/all
 can var/all
 can mem
  
 !  T axis was marked as regular
-yes? use a.nc
-yes? show grid/t a
+use a.nc
+show grid/t a
     GRID GSI1
  name       axis              # pts   start                end
  normal    X
@@ -49589,7 +49663,7 @@ GO bn_long_revision_num.jnl
  
 ! ferret version
 sh sym FERRET_VERSION
-FERRET_VERSION = "6.93"
+FERRET_VERSION = "6.951"
  
 ! history attribute
 let a = 12
@@ -49607,7 +49681,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.93:
+ Commands in Program FERRET (beta) version6.951:
  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
@@ -49619,7 +49693,7 @@ 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/SIGMA
+ SET VARIABLE/TITLE/UNIT/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
@@ -49638,7 +49712,7 @@ sho command
        /HIDDEN
  SHOW MODE/ALL
  SHOW MOVIE/ALL
- SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/SIGMA
+ SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ
        /CURVILIN
  SHOW COMMANDS/ALL
  SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
@@ -49662,7 +49736,7 @@ sho command
  CANCEL MODE
  CANCEL MOVIE/ALL
  CANCEL VIEWPORT
- CANCEL VARIABLE/ALL/DATASET/SIGMA/CURVILIN
+ CANCEL VARIABLE/ALL/DATASET/LAYERZ/CURVILIN/NOERROR
  CANCEL AXIS/MODULO/ALL/DEPTH/STRIDE
  CANCEL GRID
  CANCEL ATTRIBUT/OUTPUT/DATA
@@ -49679,11 +49753,11 @@ sho command
        /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/SIGMA
+       /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
+       /NOYADJUS/KEY/RIBBON/LEVELS/PALETTE/FAST/MISSING/GAPLOC
  GO/HELP
  HELP
  LOAD/TEMPORY/PERMANT/I/J/K/L/M/N/X/Y/Z/T/E/F/D/NAME
@@ -49699,7 +49773,8 @@ sho command
  DEFINE SYMBOL
  DEFINE ATTRIBUT/D/TYPE/OUTPUT/QUIET
  DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/E/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/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
@@ -49726,6 +49801,7 @@ sho command
           /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
  
@@ -49743,7 +49819,7 @@ go ptest
 PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
  
 sh sym win_title
-WIN_TITLE = "29-Oct-14:15:55"
+WIN_TITLE = "17-Nov-15:09:25"
  
 set win/title="set the title"
 sho sym win_title
@@ -49761,7 +49837,7 @@ sho sym win_title
 WIN_TITLE = "_"
  
 set win/title="($session_date):($session_time)"
- !-> set win/title="29-Oct-14:15:55"
+ !-> set win/title="17-Nov-15:09:25"
  
 ! If the date or time starts with a blank then we get an extra
 ! underscore in the window title. Evaluating the symbols into
@@ -49770,16 +49846,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 = 29-Oct-14
+ !-> DEFINE SYMBOL the_date = 17-Nov-15
 DEFINE SYMBOL the_time = ($session_time"SESSION_TIME")
- !-> DEFINE SYMBOL the_time = 15:55
+ !-> DEFINE SYMBOL the_time = 09:25
 SET WIN/TITLE="($the_date):($the_time)"
- !-> SET WIN/TITLE="29-Oct-14:15:55"
+ !-> SET WIN/TITLE="17-Nov-15:09:25"
  
 can win/all
 set win/new
 sh sym win_title
-WIN_TITLE = "29-Oct-14:15:55"
+WIN_TITLE = "17-Nov-15:09:25"
  
 GO bn_reset
 cancel mode verify
@@ -50568,6 +50644,7 @@ let a = temp.missing_value
 list a
              VARIABLE : TEMP.MISSING_VALUE
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
          -1.000E+34
  
 use ocean_atlas_temp
@@ -50575,6 +50652,7 @@ let s = temp.units
 list s
              VARIABLE : TEMP.UNITS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "Deg C"
  
 can data/all
@@ -50586,6 +50664,7 @@ list s
              VARIABLE : ..REMARK
              DATA SET : K-Bay OAR3d model (200m)
              FILENAME : err491_attval.cdf
+             X        : 1
         "Generated by oar3d                                                                                                                                              "
  
 go bn_reset
@@ -50604,6 +50683,7 @@ let anames = sst.attnames
 list nat
              VARIABLE : SST.NATTRS
              FILENAME : coads_climatology.cdf
+             X        : 1
           5.000
 list anames
              VARIABLE : SST.ATTNAMES
@@ -50621,6 +50701,7 @@ let cnames = sst.dimnames
 list nd
              VARIABLE : SST.NDIMS
              FILENAME : coads_climatology.cdf
+             X        : 1
           3.000
 list cnames
              VARIABLE : SST.DIMNAMES
@@ -50640,6 +50721,7 @@ let nd = ..ndims
 let vnames = ..varnames
 list/d=1 nv, nd
              DATA SET: ./gt4d011.cdf
+             X: 1
  Column  1: NV is ..NVARS
  Column  2: ND is ..NDIMS
              NV    ND
@@ -50665,6 +50747,7 @@ let vnames = ..varnames
 list/d=coads_climatology vnames
              VARIABLE : ..VARNAMES
              FILENAME : coads_climatology.cdf
+             X        : 1
         "SST"
 list/d=gt4d011 vnames
              VARIABLE : ..VARNAMES
@@ -50701,27 +50784,28 @@ list vnames
  3   / 3:"TIME4" 
 list lnames
              VARIABLE : ..DIMNAMES[D=gt4d011]
-             SUBSET   : 20 points (X)
- 1    /  1:"PSXT1"     
- 2    /  2:"PSYT1"     
- 3    /  3:"PSYTedges" 
- 4    /  4:"PSZT1"     
- 5    /  5:"PSZTedges" 
- 6    /  6:"TIME11"    
- 7    /  7:"PSXT91_108"
- 8    /  8:"PSYT35_56" 
- 9    /  9:"PSZT1_10"  
- 10   / 10:"PSYT35_55" 
- 11   / 11:"PSXU"      
- 12   / 12:"PSYU"      
- 13   / 13:"PSYUedges" 
- 14   / 14:"PSXU91_108"
- 15   / 15:"PSYU35_55" 
- 16   / 16:"PSZW"      
- 17   / 17:"PSZWedges" 
- 18   / 18:"PSYT36_55" 
- 19   / 19:"PSZW1_10"  
- 20   / 20:"PSYU35_56" 
+             SUBSET   : 21 points (X)
+ 1    /  1:"grid_definition"
+ 2    /  2:"PSXT1"          
+ 3    /  3:"PSYT1"          
+ 4    /  4:"PSYTedges"      
+ 5    /  5:"PSZT1"          
+ 6    /  6:"PSZTedges"      
+ 7    /  7:"TIME11"         
+ 8    /  8:"PSXT91_108"     
+ 9    /  9:"PSYT35_56"      
+ 10   / 10:"PSZT1_10"       
+ 11   / 11:"PSYT35_55"      
+ 12   / 12:"PSXU"           
+ 13   / 13:"PSYU"           
+ 14   / 14:"PSYUedges"      
+ 15   / 15:"PSXU91_108"     
+ 16   / 16:"PSYU35_55"      
+ 17   / 17:"PSZW"           
+ 18   / 18:"PSZWedges"      
+ 19   / 19:"PSYT36_55"      
+ 20   / 20:"PSZW1_10"       
+ 21   / 21:"PSYU35_56"      
  
 can var/all
 can data/all
@@ -50734,6 +50818,7 @@ list v
              VARIABLE : ..NDIMS
              DATA SET : K-Bay OAR3d model (200m)
              FILENAME : err491_attval.cdf
+             X        : 1
           3.000
  
 let na = ..nattrs
@@ -50741,6 +50826,7 @@ list na
              VARIABLE : ..NATTRS
              DATA SET : K-Bay OAR3d model (200m)
              FILENAME : err491_attval.cdf
+             X        : 1
           31.00
  
 let gnames = ..attnames
@@ -50804,12 +50890,14 @@ let nat = temp.nattrs
 list nat
              VARIABLE : TEMP.NATTRS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
           5.000
  
 list (`temp,return=xaxis`).nattrs
  !-> list (XAX_LEV9421_380).nattrs
              VARIABLE : (XAX_LEV9421_380).NATTRS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
           4.000
  
 use gt4d011
@@ -50843,15 +50931,18 @@ let a = temp.units
 list/d=3 a
              VARIABLE : TEMP.UNITS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "Deg C"
  
 list temp.units[d=3]
              VARIABLE : TEMP.UNITS[D=ocean_atlas_temp]
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "Deg C"
 list/d=3 temp.history
              VARIABLE : TEMP.HISTORY
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "From ocean_atlas_monthly"
  
 can data/all
@@ -50911,6 +51002,7 @@ let a= broiled.acl
 list a
              VARIABLE : BROILED.ACL
              FILENAME : test0.nc
+             X        : 1
           17000.
  
 let a= broiled.acf
@@ -50972,6 +51064,7 @@ use gt4d011
 list ..nvars
              VARIABLE : ..NVARS
              FILENAME : gt4d011.cdf
+             X        : 1
           12.00
  
 use coads_climatology
@@ -50979,10 +51072,12 @@ use coads_climatology
 list/d=1 ..nvars
              VARIABLE : ..NVARS
              FILENAME : gt4d011.cdf
+             X        : 1
           12.00
 list/d=2 ..nvars
              VARIABLE : ..NVARS
              FILENAME : coads_climatology.cdf
+             X        : 1
           1.000
  
 sh data
@@ -51005,6 +51100,7 @@ sh data
 list/d=2 ..varnames
              VARIABLE : ..VARNAMES
              FILENAME : coads_climatology.cdf
+             X        : 1
         "SST"
  
 list/d=2 ..dimnames
@@ -51017,49 +51113,55 @@ list/d=2 ..dimnames
 list/d=1 ..dimnames
              VARIABLE : ..DIMNAMES
              FILENAME : gt4d011.cdf
-             SUBSET   : 20 points (X)
- 1    /  1:"PSXT1"     
- 2    /  2:"PSYT1"     
- 3    /  3:"PSYTedges" 
- 4    /  4:"PSZT1"     
- 5    /  5:"PSZTedges" 
- 6    /  6:"TIME11"    
- 7    /  7:"PSXT91_108"
- 8    /  8:"PSYT35_56" 
- 9    /  9:"PSZT1_10"  
- 10   / 10:"PSYT35_55" 
- 11   / 11:"PSXU"      
- 12   / 12:"PSYU"      
- 13   / 13:"PSYUedges" 
- 14   / 14:"PSXU91_108"
- 15   / 15:"PSYU35_55" 
- 16   / 16:"PSZW"      
- 17   / 17:"PSZWedges" 
- 18   / 18:"PSYT36_55" 
- 19   / 19:"PSZW1_10"  
- 20   / 20:"PSYU35_56" 
+             SUBSET   : 21 points (X)
+ 1    /  1:"grid_definition"
+ 2    /  2:"PSXT1"          
+ 3    /  3:"PSYT1"          
+ 4    /  4:"PSYTedges"      
+ 5    /  5:"PSZT1"          
+ 6    /  6:"PSZTedges"      
+ 7    /  7:"TIME11"         
+ 8    /  8:"PSXT91_108"     
+ 9    /  9:"PSYT35_56"      
+ 10   / 10:"PSZT1_10"       
+ 11   / 11:"PSYT35_55"      
+ 12   / 12:"PSXU"           
+ 13   / 13:"PSYU"           
+ 14   / 14:"PSYUedges"      
+ 15   / 15:"PSXU91_108"     
+ 16   / 16:"PSYU35_55"      
+ 17   / 17:"PSZW"           
+ 18   / 18:"PSZWedges"      
+ 19   / 19:"PSYT36_55"      
+ 20   / 20:"PSZW1_10"       
+ 21   / 21:"PSYU35_56"      
  
 list/d=1 ..nattrs
              VARIABLE : ..NATTRS
              FILENAME : gt4d011.cdf
+             X        : 1
           1.000
 list/d=1 ..attnames
              VARIABLE : ..ATTNAMES
              FILENAME : gt4d011.cdf
+             X        : 1
         "history"
  
 list/d=1 ..ndims
              VARIABLE : ..NDIMS
              FILENAME : gt4d011.cdf
+             X        : 1
           21.00
 list/d=2 ..ndims
              VARIABLE : ..NDIMS
              FILENAME : coads_climatology.cdf
+             X        : 1
           3.000
  
 list ..nvars[d=1]
              VARIABLE : ..NVARS[D=gt4d011]
              FILENAME : gt4d011.cdf
+             X        : 1
           12.00
 sh var
  Created by DEFINE VARIABLE:
@@ -51086,6 +51188,7 @@ set data 1
 list/d=2 pp
              VARIABLE : ..VARNAMES
              FILENAME : coads_climatology.cdf
+             X        : 1
         "SST"
  
 go bn_reset
@@ -51175,10 +51278,12 @@ use coads_climatology
 list (coadsx).units
              VARIABLE : (COADSX).UNITS
              FILENAME : coads_climatology.cdf
+             X        : 1
         "degrees_east"
 list (coadsx).modulo
              VARIABLE : (COADSX).MODULO
              FILENAME : coads_climatology.cdf
+             X        : 1
         " "
 sho att/all (coadsx)
      attributes for dataset: ./coads_climatology.cdf
@@ -51267,6 +51372,7 @@ list (`sst,return=xaxis`).nattrs[d=2]
  !-> list (COADSX).nattrs[d=2]
              VARIABLE : (COADSX).NATTRS[D=coads_climatology]
              FILENAME : coads_climatology.cdf
+             X        : 1
           5.000
  
 ! using dimension names from the linked list structure
@@ -51286,6 +51392,7 @@ list (`cnames[i=1]`).nattrs
  !-> list (COADSX).nattrs
              VARIABLE : (COADSX).NATTRS
              FILENAME : coads_climatology.cdf
+             X        : 1
           5.000
  
 ! Intentional errors.
@@ -51428,6 +51535,7 @@ let pq = temp.pp
 list pq
              VARIABLE : TEMP.PP
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "PP now has some text."
  
 ! set an attribute when the variable is not in the default dataset.
@@ -51742,7 +51850,7 @@ sp echo "bn_attributes.jnl --- 19 scale and offset attr." >> all_ncdump.out
 use a.nc
 list/j=1 elev[d=1], elev[d=2]
              LONGITUDE: 135.5W(-135.5) to 135W(-135)
-             LATITUDE: 58.59N
+             LATITUDE: 58.6N
              T (day): 1.8
  Column  1: ELEV[D=err491_attval] is Surface elevation (meter)
  Column  2: ELEV[D=a] is Surface elevation (meter)
@@ -52865,11 +52973,11 @@ 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
-PPL$XMIN = "131.0"
-PPL$XMAX = "281.0"
+PPL$XMIN = "131.0000"
+PPL$XMAX = "281.0000"
 sh sym ppl$xlow, ppl$xhigh   ! should be 165, 259
-PPL$XHIGH = "165.0"
-PPL$XLOW = "259.0"
+PPL$XHIGH = "165.0000"
+PPL$XLOW = "259.0000"
  
 sp rm -f err581_subspanx_fill_bug.nc
  
@@ -52951,8 +53059,6 @@ GO err581_if_conditional.jnl
 ! This should skip to the end, not trying to execute anything inside the IF 0 THEN
  
 if 0 then
-     endif
-  endif
 endif
  
 say "finished the if block"
@@ -52987,7 +53093,6 @@ let key_flag = 0
  
 IF `($xend) GT 360` THEN
  !-> IF 0 THEN
-  ENDIF
 ENDIF
 let dxymin = 0.20
 if `dxymin lt 0.12` then
@@ -53002,7 +53107,6 @@ endif
  
 IF `($xend) GT 360` THEN
  !-> IF 0 THEN
-   ENDIF
 ELSE
   say "this is the ELSE that should execute"
 this is the ELSE that should execute
@@ -53099,10 +53203,8 @@ ELIF ($refmap_type%|xline>1|*>0%) THEN    ! ELSE IF "xline"
  !-> ELIF 1 THEN
   define region/default/dy=$6"-30:30|1>-30:30|*>-20:20"/dx=$6"0:0|1>0:0|2>0:0|*>`max(-($ref_dx),-50)`:`min(($ref_dx),50)`" band
  !-> define region/default/dy=-20:20/dx=-50:50 band
- 
 ELIF ($refmap_type%|yline>1|*>0%) THEN    ! ELSE IF "yline"
  !-> ELIF 0 THEN
-   ENDIF
 ENDIF
 ! init the land mask data set
 set data coads_climatology
@@ -53141,17 +53243,12 @@ IF ($refmap_type%|box>1|*>0) THEN    ! IF "box"
  !-> IF 0 THEN
 ELIF ($refmap_type%|xline>1|*>0) THEN    ! ELSE IF "xline"
  !-> ELIF 1 THEN
- 
   IF ($refmap_ycompress) THEN
  !-> IF 0 THEN
   ENDIF
- 
   plot/over/vs/nolab/line=8/i=1:2 refmap_xrng, refmap_ymid+(i-i)
- 
 ELIF ($refmap_type%|yline>1|*>0) THEN    ! ELSE IF "yline"
  !-> ELIF 0 THEN
-  ENDIF
-  ENDIF
 ENDIF
  
  
@@ -53432,8 +53529,8 @@ GO err581_define_1pt_bounds.jnl
 ! again, and even that result is now very wrong!! Same results in both v5.81
 ! for Linux and v5.70 for Irix.
  
-yes? def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
+def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
+list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
              X: -2 to 6
  Column  1: XBOXLO is XBOXLO (axis XAX)
  Column  2: XBOXHI is XBOXHI (axis XAX)
@@ -53443,8 +53540,8 @@ yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
 3   / 2:  2.000  4.000  3.000
 5   / 3:  4.000  6.000  5.000
  
-yes? def ax/x/bounds xax = {0},{-2,2}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
+def ax/x/bounds xax = {0},{-2,2}
+list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
              X: 0
  Column  1: XBOXLO is XBOXLO (axis XAX)
  Column  2: XBOXHI is XBOXHI (axis XAX)
@@ -53452,8 +53549,8 @@ yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
          XBOXLO  XBOXHI    X
 I / *:    -2.000  2.000  0.0000
  
-yes? def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
+def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
+list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
              X: -2 to 6
  Column  1: XBOXLO is XBOXLO (axis XAX)
  Column  2: XBOXHI is XBOXHI (axis XAX)
@@ -53529,9 +53626,9 @@ go polymark poly/lev=(-5,30,1)/pal=white/fill/line=1/nolab/over v1 v2 v3 circle
  
 ! And, from Andrew with other reversed axes.
  
-yes? ppl cross 1
-yes? plot/vl=4:-4/hl=4:-4/vs/line/title="there should be just one triangle" {1,2,3,1},{0,2,1,0}
-yes? poly/ov/col=2/pal=yellow {1,2,3,1},{0,2,1,0}
+ppl cross 1
+plot/vl=4:-4/hl=4:-4/vs/line/title="there should be just one triangle" {1,2,3,1},{0,2,1,0}
+poly/ov/col=2/pal=yellow {1,2,3,1},{0,2,1,0}
  
 ppl cross 0
  
@@ -53703,12 +53800,10 @@ GO err600_if_comments_tab.jnl
 ! thrown off and we got an error about an invalid ENDIF
  
 IF 0 THEN
-   ENDIF
 ENDIF
  
 ! Here there is a tab before the ! which throws off the parsing...
 IF 0 THEN
-   ENDIF
 ENDIF
  
 ! err600_set_var_title.jnl
@@ -53860,6 +53955,7 @@ list ..dimnames
 list ..varnames
              VARIABLE : ..VARNAMES
              FILENAME : levitus_climatology.cdf
+             X        : 1
         "TEMP"
  
 ! err600_nc_des_order.jnl
@@ -53937,8 +54033,13 @@ use coads_climatology
 def sym timeax = `sst,return=taxis`
  !-> def sym timeax = TIME9
  
-show att/all ($timeax)
- !-> show att/all TIME9
+show att/all (($timeax))
+ !-> show att/all (TIME9)
+     attributes for dataset: ./coads_climatology.cdf
+ (TIME9).units = hour since 0000-01-01 00:00:00 
+ (TIME9).time_origin = 1-JAN-0000 00:00:00 
+ (TIME9).modulo =   
+ (TIME9).orig_file_axname = TIME 
 show axis ($timeax)
  !-> show axis TIME9
  name       axis              # pts   start                end
@@ -53947,8 +54048,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 TIME9
-show att/all ($timeax)
- !-> show att/all TIME9
+show att/all (($timeax))
+ !-> show att/all (TIME9)
+     attributes for dataset: ./coads_climatology.cdf
+ (TIME9).units = MONTHS since 1-JAN-0001 
+ (TIME9).time_origin = 1-JAN-0001 
+ (TIME9).orig_file_axname = TIME 
 show axis ($timeax)
  !-> show axis TIME9
  name       axis              # pts   start                end
@@ -53962,8 +54067,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
@@ -53973,8 +54082,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
@@ -53992,8 +54107,12 @@ def sym timeax = `temp,return=taxis`
  !-> def sym timeax = TIME11
 def sym zax = `temp,return=zaxis`
  !-> def sym zax = PSZT1
-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 PSZT1
  name       axis              # pts   start                end
@@ -54002,8 +54121,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
@@ -54012,8 +54135,14 @@ T0 = 14-JAN-1980 14:00:00
    Axis span (to cell edges) = 3650
 cancel axis/depth ($zax)
  !-> cancel axis/depth PSZT1
-show att/all ($zax)
- !-> show att/all PSZT1
+show att/all (($zax))
+ !-> show att/all (PSZT1)
+     attributes for dataset: ./gt4d011.cdf
+ (PSZT1).units = METERS 
+ (PSZT1).positive = up 
+ (PSZT1).point_spacing = uneven 
+ (PSZT1).edges = PSZTedges 
+ (PSZT1).orig_file_axname = PSZT 
 show axis ($zax)
  !-> show axis PSZT1
  name       axis              # pts   start                end
@@ -54081,7 +54210,7 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        24   T       FERRET V6.93   29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (PSXT191_108)          DOUBLE    units           CHAR        12   T       degrees_east
@@ -54126,7 +54255,7 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        24   T       FERRET V6.93   29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (PSXT191_108)          DOUBLE    units           CHAR        12   T       degrees_east
@@ -55377,9 +55506,6 @@ LIST/NOHEAD/I=91:94/J=37/K=1/L=1 temp,salt
 ! Previously this did not have the effect of changing the precision.
 LIST/NOHEAD/I=91:94/J=37/K=1/L=1/PREC=3 temp,salt
 139.5W / 91:  27.3  2.37E-04
-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.
 138.5W / 92:  27.3  2.38E-04
 137.5W / 93:  27.2  2.38E-04
 136.5W / 94:  27.2  2.38E-04
@@ -55448,6 +55574,9 @@ 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     
@@ -55647,6 +55776,7 @@ IS_ELEMENT_OF_STR_N(VAR,VALUES)
 LABWID(STR,HT)
 LANCZOS(A,F1,F2,N)
 LIST_VALUE_XML(tag,value,cdata_flag,outputfile)
+LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
 LSL_LOWPASS(A,cutoff_period,filter_span)
 MINMAX(A)
 MINUTES24(formatted time)
@@ -55659,6 +55789,7 @@ SAMPLEI_MULTI(I_INDICES,DAT_TO_SAMPLE)
 SAMPLEJ_MULTI(J_INDICES,DAT_TO_SAMPLE)
 SAMPLEK_MULTI(K_INDICES,DAT_TO_SAMPLE)
 SAMPLEL_MULTI(L_INDICES,DAT_TO_SAMPLE)
+SAMPLEF_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
 SAMPLET_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
 SAMPLEXY(DAT_TO_SAMPLE,XPTS,YPTS)
 SAMPLEXY_CLOSEST(DAT_TO_SAMPLE,XPTS,YPTS)
@@ -55756,6 +55887,14 @@ EXPNDI_BY_M_COUNTS(dat,counts,max_row_len)
 STR_MASK(STRING,MASK,--)
 SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
 SEPARATE(A,Rowsize,FixLongitudes)
+TIME_REFORMAT(A)
+FT_TO_ORTHOGONAL(VAR,TIME2D,ALLTIME)
+CURV_TO_RECT_FSU(V,mapping)
+PIECEWISE3(V1,V2,V3,Control parameter,Tol1,Tol2,Tol3)
+SAMPLE_FAST_I(V,Indices)
+SAMPLE_FAST_I_STR(S,Indices)
+SEPARATE_STR(A,Rowsize,FixLongitudes)
+WRITE_WEBROW_GWT(id,name,Cruise_Mask,filename)
 ADD_9(A,B,C,D,E,F,G,H,I)
 APPENDE(ENS,VAR)
 AVET(A)
@@ -55766,6 +55905,7 @@ 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)
@@ -55925,15 +56065,15 @@ def axis/y=0.000001:0.000002/npoints=100 yax
 let a = x[gx=xax] + y[gy=yax]
 shade a; sh sym xax*; ; sh sym yax*
 XAXIS_REVERSED = "0"
-XAXIS_MIN = "3.99494949E-06"
+XAXIS_MIN = "3.994949495E-06"
 XAXL = "4.737"
 XAXNAME = "XIRREG_SUBSPAN"
-XAXIS_MAX = "5.0050505E-06"
+XAXIS_MAX = "5.005050505E-06"
 XAXNAM = "(XAX_LEV9421_380)"
 YAXIS_REVERSED = "0"
 YAXL = "4.737"
-YAXIS_MIN = "9.94949495E-07"
-YAXIS_MAX = "2.0050505E-06"
+YAXIS_MIN = "9.949494949E-07"
+YAXIS_MAX = "2.005050505E-06"
 YAXNAM = "YAX_LEV94"
  
  
@@ -55968,27 +56108,27 @@ USE ocean_atlas_temp
 SET VIEW upper
 FILL temp[L=2,X=180:200,Y=30:44]
 SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.50000"
-XAXIS_MAX = "199.5000"
-YAXIS_MIN = "30.500000"
-YAXIS_MAX = "43.50000"
+XAXIS_MIN = "180.500000"
+XAXIS_MAX = "199.500000"
+YAXIS_MIN = "30.5000000"
+YAXIS_MAX = "43.5000000"
  
 ! See the larger region used by default for SHADE
 SHADE temp[L=2,X=180:200,y=30:44]
 SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.00000"
-XAXIS_MAX = "200.0000"
-YAXIS_MIN = "30.000000"
-YAXIS_MAX = "44.00000"
+XAXIS_MIN = "180.000000"
+XAXIS_MAX = "200.000000"
+YAXIS_MIN = "30.0000000"
+YAXIS_MAX = "44.0000000"
  
 ! SHADE/TRIM trims the region as for a FILL plot
 SET VIEW lower
 SHADE/TRIM temp[L=2,X=180:200,y=30:44]
 SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.50000"
-XAXIS_MAX = "199.5000"
-YAXIS_MIN = "30.500000"
-YAXIS_MAX = "43.50000"
+XAXIS_MIN = "180.500000"
+XAXIS_MAX = "199.500000"
+YAXIS_MIN = "30.5000000"
+YAXIS_MAX = "43.5000000"
  
  
 GO bn_reset
@@ -56433,27 +56573,28 @@ list vnames
  4   / 4:"TIME3"          
 list lnames
              VARIABLE : ..DIMNAMES[D=gt4d011]
-             SUBSET   : 20 points (X)
- 1    /  1:"PSXT1"     
- 2    /  2:"PSYT1"     
- 3    /  3:"PSYTedges" 
- 4    /  4:"PSZT1"     
- 5    /  5:"PSZTedges" 
- 6    /  6:"TIME11"    
- 7    /  7:"PSXT91_108"
- 8    /  8:"PSYT35_56" 
- 9    /  9:"PSZT1_10"  
- 10   / 10:"PSYT35_55" 
- 11   / 11:"PSXU"      
- 12   / 12:"PSYU"      
- 13   / 13:"PSYUedges" 
- 14   / 14:"PSXU91_108"
- 15   / 15:"PSYU35_55" 
- 16   / 16:"PSZW"      
- 17   / 17:"PSZWedges" 
- 18   / 18:"PSYT36_55" 
- 19   / 19:"PSZW1_10"  
- 20   / 20:"PSYU35_56" 
+             SUBSET   : 21 points (X)
+ 1    /  1:"grid_definition"
+ 2    /  2:"PSXT1"          
+ 3    /  3:"PSYT1"          
+ 4    /  4:"PSYTedges"      
+ 5    /  5:"PSZT1"          
+ 6    /  6:"PSZTedges"      
+ 7    /  7:"TIME11"         
+ 8    /  8:"PSXT91_108"     
+ 9    /  9:"PSYT35_56"      
+ 10   / 10:"PSZT1_10"       
+ 11   / 11:"PSYT35_55"      
+ 12   / 12:"PSXU"           
+ 13   / 13:"PSYU"           
+ 14   / 14:"PSYUedges"      
+ 15   / 15:"PSXU91_108"     
+ 16   / 16:"PSYU35_55"      
+ 17   / 17:"PSZW"           
+ 18   / 18:"PSZWedges"      
+ 19   / 19:"PSYT36_55"      
+ 20   / 20:"PSZW1_10"       
+ 21   / 21:"PSYU35_56"      
  
 go bn_reset
 cancel mode verify
@@ -56468,12 +56609,14 @@ let nat = temp.nattrs
 list nat
              VARIABLE : TEMP.NATTRS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
           5.000000
  
 list (`temp,return=xaxis`)[d=2].nattrs
  !-> list (XAX_LEV9421_380)[d=2].nattrs
-             VARIABLE : (XAX_LEV9421_380)[d=ocean_atlas_temp].NATTRS
+             VARIABLE : (XAX_LEV9421_380)[D=ocean_atlas_temp].NATTRS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
           4.000000
  
 use gt4d011
@@ -56508,14 +56651,17 @@ let a = temp.units
 list/d=3 a
              VARIABLE : TEMP.UNITS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "Deg C"
 list temp[d=3].units
-             VARIABLE : TEMP[d=ocean_atlas_temp].UNITS
+             VARIABLE : TEMP[D=ocean_atlas_temp].UNITS
              FILENAME : gt4d011.cdf
+             X        : 1
         "Deg C"
 list/d=3 temp.history
              VARIABLE : TEMP.HISTORY
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "From ocean_atlas_monthly"
  
 can data/all
@@ -56528,7 +56674,7 @@ use coads_climatology
 ! But this does
 let a = sst[d=1].dimnames
 list a[i=2]
-             VARIABLE : SST[d=coads_climatology].DIMNAMES
+             VARIABLE : SST[D=coads_climatology].DIMNAMES
              FILENAME : coads_climatology.cdf
              X        : 2
         "COADSY"
@@ -56544,16 +56690,18 @@ use coads_climatology
 define symbol ferret_plot_var sst[x=30:39,y=-90:90]
 list ($ferret_plot_var).long_name
  !-> list sst[x=30:39,y=-90:90].long_name
-             VARIABLE : SST.LONG_NAME
+             VARIABLE : SST[X=30:39,Y=-90:90].LONG_NAME
              FILENAME : coads_climatology.cdf
+             X        : 1
         "SEA SURFACE TEMPERATURE"
  
 use coads_climatology
 define symbol ferret_plot_var sst[d=1,x=30:35,y=-90:90]
 list ($ferret_plot_var).units
  !-> list sst[d=1,x=30:35,y=-90:90].units
-             VARIABLE : SST[d=coads_climatology].UNITS
+             VARIABLE : SST[D=coads_climatology,X=30:35,Y=-90:90].UNITS
              FILENAME : coads_climatology.cdf
+             X        : 1
         "Deg C"
  
 use coads_climatology
@@ -56561,8 +56709,9 @@ use levitus_climatology
 define symbol ferret_plot_var sst[d=1,x=30:35,y=-90:90]
 list ($ferret_plot_var).history
  !-> list sst[d=1,x=30:35,y=-90:90].history
-             VARIABLE : SST[d=coads_climatology].HISTORY
+             VARIABLE : SST[D=coads_climatology,X=30:35,Y=-90:90].HISTORY
              FILENAME : levitus_climatology.cdf
+             X        : 1
         "From coads_climatology"
  
 go bn_reset
@@ -56578,13 +56727,15 @@ def sym yaxnam  "(`temp[d=1],return=yaxis`)"
  
 list ($xaxnam)[d=1].modulo
  !-> list (XAXLEVITR1_160)[d=1].modulo
-             VARIABLE : (XAXLEVITR1_160)[d=levitus_climatology].MODULO
+             VARIABLE : (XAXLEVITR1_160)[D=levitus_climatology].MODULO
              FILENAME : coads_climatology.cdf
+             X        : 1
         " "
 list ($yaxnam).point_spacing[d=1]
  !-> list (YAXLEVITR1_90).point_spacing[d=1]
              VARIABLE : (YAXLEVITR1_90).POINT_SPACING[D=levitus_climatology]
              FILENAME : levitus_climatology.cdf
+             X        : 1
         "even"
  
  
@@ -56782,12 +56933,12 @@ GO err611_exit_if.jnl
 ! This only in v6.11 GFDL release bug
 ! Fixed in xeq_exit.F
  
-yes? sp echo if 1 then > a.jnl
-yes? sp echo exit/script >> a.jnl
-yes? sp echo endif >> a.jnl
-yes? sp echo go a > b.jnl
-yes? sp echo say hello >> b.jnl
-yes? go b  !the following fails to say "hello"
+sp echo if 1 then > a.jnl
+sp echo exit/script >> a.jnl
+sp echo endif >> a.jnl
+sp echo go a > b.jnl
+sp echo say hello >> b.jnl
+go b  !the following fails to say "hello"
 go a
 if 1 then
 exit/script
@@ -56856,7 +57007,7 @@ ppl list labels
 plot/x=56e:100e/y=10 sst[L=1]
 plot/over/x=56e:100e/y=40 sst[L=1]
 ppl list labels
- @ACSEA SURFACE TEMPERATURE (Deg C)                                             
+                                                                                
  @ASLONGITUDE                                                                   
  @ASDeg C                                                                       
 
@@ -57068,12 +57219,12 @@ GO err611_exit_if.jnl
 ! This only in v6.11 GFDL release bug
 ! Fixed in xeq_exit.F
  
-yes? sp echo if 1 then > a.jnl
-yes? sp echo exit/script >> a.jnl
-yes? sp echo endif >> a.jnl
-yes? sp echo go a > b.jnl
-yes? sp echo say hello >> b.jnl
-yes? go b  !the following fails to say "hello"
+sp echo if 1 then > a.jnl
+sp echo exit/script >> a.jnl
+sp echo endif >> a.jnl
+sp echo go a > b.jnl
+sp echo say hello >> b.jnl
+go b  !the following fails to say "hello"
 go a
 if 1 then
 exit/script
@@ -59500,7 +59651,7 @@ sh command list
        /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/SIGMA
+       /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]
@@ -59993,10 +60144,10 @@ SH GRID am
  
 GO bn_clock_syms
 SH SYM delta_cpu, clock_secs, current_date, current_time
-DELTA_CPU = "40.2969"
-CLOCK_SECS = "69.632"
-CURRENT_DATE = "29-Oct-14"
-CURRENT_TIME = "15:57:05"
+DELTA_CPU = "59.8629"
+CLOCK_SECS = "102.35"
+CURRENT_DATE = "17-Nov-15"
+CURRENT_TIME = "09:27:16"
 ! test special symbols DELTA_CPU, CLOCK_SECS
 !
 ! NOTE THAT THE VALUES OF THE SYMBOLS WILL VARY FROM ONE
@@ -60005,8 +60156,8 @@ CURRENT_TIME = "15:57:05"
 use gt4d011
 shade/k=1 temp[L=@ave]
 sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.043993"
-CLOCK_SECS = "69.723"
+DELTA_CPU = "0.057991"
+CLOCK_SECS = "102.547"
  
 repeat/k=1:10 shade temp[L=@ave]
 !-> REPEAT: K=1
@@ -60020,60 +60171,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.304954
+ !-> DEFINE VARIABLE ten_plots = 0.308953
 sh sym DELTA_CPU, CLOCK_SECS
 DELTA_CPU = "0"
-CLOCK_SECS = "70.43"
+CLOCK_SECS = "103.891"
  
 let  sumclock = 0
 let  sumcpu = 0
 sh sym CLOCK_SECS
-CLOCK_SECS = "70.431"
+CLOCK_SECS = "103.892"
 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.030996
- !-> DEFINE VARIABLE sumcpu =0.030996
+ !-> DEFINE VARIABLE dt = 0.029995
+ !-> DEFINE VARIABLE sumcpu =0.029995
 !-> REPEAT: K=2
- !-> DEFINE VARIABLE dt = 0.037994
- !-> DEFINE VARIABLE sumcpu =0.06899
+ !-> DEFINE VARIABLE dt = 0.031995
+ !-> DEFINE VARIABLE sumcpu =0.06199
 !-> REPEAT: K=3
- !-> DEFINE VARIABLE dt = 0.042993
- !-> DEFINE VARIABLE sumcpu =0.111983
-!-> REPEAT: K=4
  !-> DEFINE VARIABLE dt = 0.032995
- !-> DEFINE VARIABLE sumcpu =0.144978
+ !-> DEFINE VARIABLE sumcpu =0.094985
+!-> REPEAT: K=4
+ !-> DEFINE VARIABLE dt = 0.034995
+ !-> DEFINE VARIABLE sumcpu =0.12998
 !-> REPEAT: K=5
- !-> DEFINE VARIABLE dt = 0.036995
- !-> DEFINE VARIABLE sumcpu =0.181973
+ !-> DEFINE VARIABLE dt = 0.034994
+ !-> DEFINE VARIABLE sumcpu =0.164974
 !-> REPEAT: K=6
- !-> DEFINE VARIABLE dt = 0.031995
- !-> DEFINE VARIABLE sumcpu =0.213968
+ !-> DEFINE VARIABLE dt = 0.032995
+ !-> DEFINE VARIABLE sumcpu =0.197969
 !-> REPEAT: K=7
- !-> DEFINE VARIABLE dt = 0.038995
- !-> DEFINE VARIABLE sumcpu =0.252963
+ !-> DEFINE VARIABLE dt = 0.034995
+ !-> DEFINE VARIABLE sumcpu =0.232964
 !-> REPEAT: K=8
- !-> DEFINE VARIABLE dt = 0.040993
- !-> DEFINE VARIABLE sumcpu =0.293956
+ !-> DEFINE VARIABLE dt = 0.035995
+ !-> DEFINE VARIABLE sumcpu =0.268959
 !-> REPEAT: K=9
- !-> DEFINE VARIABLE dt = 0.029995
- !-> DEFINE VARIABLE sumcpu =0.323951
+ !-> DEFINE VARIABLE dt = 0.036994
+ !-> DEFINE VARIABLE sumcpu =0.305953
 !-> REPEAT: K=10
- !-> DEFINE VARIABLE dt = 0.037994
- !-> DEFINE VARIABLE sumcpu =0.361945
+ !-> DEFINE VARIABLE dt = 0.032995
+ !-> DEFINE VARIABLE sumcpu =0.338948
  
 say `sumcpu`
- !-> MESSAGE/CONTINUE 0.361945
-0.361945
+ !-> MESSAGE/CONTINUE 0.338948
+0.338948
 sh sym CLOCK_SECS
-CLOCK_SECS = "71.655"
+CLOCK_SECS = "106.205"
  
 SH SYM session_date, current_date, session_time, current_time
-SESSION_DATE = "29-Oct-14"
-SESSION_TIME = "15:55"
-CURRENT_DATE = "29-Oct-14"
-CURRENT_TIME = "15:57:07"
+SESSION_DATE = "17-Nov-15"
+SESSION_TIME = "09:25"
+CURRENT_DATE = "17-Nov-15"
+CURRENT_TIME = "09:27:20"
  
  
 ! ******** V6.3 Additions below ***********
@@ -60898,8 +61049,8 @@ say `temp,return=isdepth`
  
 use coads_climatology
 say `sst,return=isdepth`
- !-> MESSAGE/CONTINUE NORMAL
-NORMAL
+ !-> MESSAGE/CONTINUE 0
+0
  
 can data 2
  
@@ -61418,24 +61569,24 @@ plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day]
  found   TEMP     M: 34 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
  regrid  TEMP     M: 26 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 23 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 22 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  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
 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: 23 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 22 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  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: 23 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  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: 23 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 22 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 23 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ 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
 setting up plot
 PPL plot 756  complete
@@ -61481,12 +61632,12 @@ plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at 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
  doing moduloing TEMP on T axis:     1   168 dset:   2
- regrid  TEMP     M: 16 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 13 dset:   2 I:   45   56  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 16 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ 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 XY
- regrid  TEMP     M: 16 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 13 dset:   2 I:   45   56  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 15 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 12 dset:   2 I:   45   56  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
 setting up plot
 PPL plot 759  complete
 plot/over temp[g=u at asn]
@@ -61498,16 +61649,16 @@ plot/over temp[g=u at asn]
  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
- regrid  TEMP     M: 14 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- -DELETE 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
  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: 15 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 12 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 15 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  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
  doing moduloing TEMP on T axis:     1     2 dset:   2
 setting up plot
 PPL plot 760  complete
@@ -61519,14 +61670,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: 15 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 11 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ reading TEMP     M: 14 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: 11 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 11 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
  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: 11 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
 setting up plot
 PPL plot 761  complete
 plot/over temp[g=u,gt=u at ave]
@@ -61548,10 +61699,10 @@ plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day,gt=g5dayg5da
  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: 11 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 10 dset:   2 I:   50   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: 11 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    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]
@@ -61562,11 +61713,11 @@ plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gt=g5_10g00abcdefg
  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: 11 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 10 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
  regrid  TEMP     M: 21 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 11 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 10 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 11 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: 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
@@ -61579,7 +61730,7 @@ plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day,gt=g5dayg5da
  found   TEMP     M: 18 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
  regrid  TEMP     M: 21 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M:  9 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ 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
@@ -62428,7 +62579,7 @@ GO bn_multi_decade
 ! New default no-small tics for multi-decade plots
 ! See bug 670
  
-def axis/t="01-JAN-1860":"30-DEC-2300":5/edges/units="Days"/cal="360d" simutaxis1
+def axis/t="01-JAN-1860":"30-DEC-2300":1/edges/units="years"/cal="360d" simutaxis1
 let tvar = t[gt=simutaxis1]*-1E+34
  
 define view/x=0:1/y=0.000:0.125 v1
@@ -62827,7 +62978,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.
@@ -63963,7 +64114,7 @@ list contents
  2   / 2:"     e.g.   yes? GO filename"                                              
  3   / 3:" "                                                                         
  4   / 4:" Use "GO/HELP filename" to read documentation in  the file to be executed."
- 5   / 5:" *** NOTE: Axis is already regular: MYAXIS"                                
+ 5   / 5:"           *** NOTE: Axis is already regular: MYAXIS"                      
  6   / 6:" **ERROR: variable unknown or not in data set: GARBAGE"                    
  7   / 7:"show grid garbage"                                                         
 cancel var contents
@@ -64049,9 +64200,9 @@ list contents
              VARIABLE : { SPAWN:"cat redirect_journal.txt" }
              SUBSET   : 47 points (X)
  1    /  1:" ! NOAA/PMEL TMAP"                                                          
- 2    /  2:" ! FERRET v6.93  "                                                          
- 3    /  3:" ! Linux 2.6.18-398.el5PAE 32-bit - 10/29/14"                               
- 4    /  4:" ! 29-Oct-14 15:55     "                                                    
+ 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     "                                                    
  5    /  5:""                                                                           
  6    /  6:"! "                                                                         
  7    /  7:"!! --- 22. produce some output to stdout and stderr"                        
@@ -64130,20 +64281,21 @@ variable transforms e.g.SST[T=1-jan:15-mar at DDC]
    @SBN        binomial smoothed            @SMN        minimum smoothed
    @SWL        Welch smoothed               @STD        standard deviation
    @SHN        Hanning smoothed             @WGT        weights for avg,int
-   @SPZ        Parzen smoothed
+   @SPZ        Parzen smoothed              @SPX        box smooth w/missing
  
 regridding transforms e.g.SST[GX=x5deg at AVE]
    code        description                  code        description
    ----        -----------                  ----        -----------
-   @LIN        lin. interp.                 @MOD        modulo ave
-   @AVE        box avgd                     @MODVAR     modulo var
-   @XACT       exact match                  @MODNGD     # gd mod pts
-   @ASN        index assn                   @MODNBD     #bad mod pts
-   @VAR        variance                     @MODSUM     modulo sum
-   @MIN        minimum                      @MODMIN     modulo min
-   @MAX        maximum                      @MODMAX     modulo max
-   @SUM        sum                          @NRST       nearst coord
-   @NGD        # gd pts
+   @LIN        lin. interp.                 @MODVAR     modulo var
+   @AVE        box 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
+   @MOD        modulo ave
  
 auxiliary varible regridding transforms e.g.TEMP[GZ(depth)=zax at AVE]
    code        description                  code        description
@@ -65156,8 +65308,7 @@ 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        2048 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.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2. [...]
+                                 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 [...]
   
 (LON273_289)           DOUBLE    long_name       CHAR        9    T       longitude
                                  units           CHAR        12   T       degrees_east
@@ -65338,7 +65489,6 @@ sh dat
  name     title                             I         J         K         L         M         N
  TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25      ...       ...
  TEMP_MM  TEMP - TEMPAVE                   1:18      1:22      1:10      1:25      ...       ...
-       (T=14-AUG-1982 11:00:13-JAN-1983 13:00)
  
  
  
@@ -65428,12 +65578,12 @@ list/L=15:20 tax_month(t[gt=tvar],tvar), tax_yearfrac(t[gt=tvar],tvar)
  Column  1: TAX_MONTH(T[GT=TVAR],TVAR)
  Column  2: TAX_YEARFRAC(T[GT=TVAR],TVAR)
              (C001,V002)  (C001,V005)
-17-MAR      / 15:   3.000  0.2082
-16-APR      / 16:   4.000  0.2904
-17-MAY      / 17:   5.000  0.3753
-16-JUN      / 18:   6.000  0.4575
-17-JUL      / 19:   7.000  0.5425
-16-AUG      / 20:   8.000  0.6247
+17-MAR      / 15:   3.000  0.2092
+16-APR      / 16:   4.000  0.2926
+17-MAY      / 17:   5.000  0.3760
+16-JUN      / 18:   6.000  0.4594
+17-JUL      / 19:   7.000  0.5428
+16-AUG      / 20:   8.000  0.6262
 ! the following is an error for a modulo time axis
 list/L=15:20 tax_year(t[gt=tvar],tvar)
 list tax_units(tvar)
@@ -65478,7 +65628,6 @@ sh dat
  name     title                             I         J         K         L         M         N
  TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25      ...       ...
  TEMP_MM  TEMP - TEMPAVE                   1:18      1:22      1:10      1:25      ...       ...
-       (T=14-AUG-1982 11:00:13-JAN-1983 13:00)
  
  
 GO bn_reset
@@ -65874,8 +66023,8 @@ list/l=1:7 TAX_yearfrac(t[gt=var], var)
  01-JAN-2010 00:00:10 / 3:  0.002740
  01-JAN-2010 00:00:15 / 4:  0.002740
  01-JAN-2010 00:00:20 / 5:  0.002740
- 01-JAN-2010 00:00:25 / 6:  0.002740
- 01-JAN-2010 00:00:30 / 7:  0.002740
+ 01-JAN-2010 00:00:25 / 6:  0.002741
+ 01-JAN-2010 00:00:30 / 7:  0.002741
  
 ! This example from Patrick B. Output of TAX_dayfrac repeats.
 ! We need to just return an error mesage. Cant represent 2.5 years
@@ -66520,40 +66669,40 @@ can mode ver
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.686
-randu2_randn2       0.027
-randu2_randn2       0.551
-randu2_randn2       0.149
-randu2_randn2       0.450
+randu2_randn2       0.657
+randu2_randn2       0.258
+randu2_randn2       0.241
+randu2_randn2       0.151
+randu2_randn2       0.091
              VARIABLE : RANDU2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.235
-randu2_randn2       0.948
-randu2_randn2       0.391
-randu2_randn2       0.973
-randu2_randn2       0.515
+randu2_randn2       0.029
+randu2_randn2       0.111
+randu2_randn2       0.779
+randu2_randn2       0.535
+randu2_randn2       0.321
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.689
-randu2_randn2       0.507
-randu2_randn2       0.348
-randu2_randn2       0.656
-randu2_randn2       0.413
-randu2_randn2       0.374
+randu2_randn2       0.931
+randu2_randn2       0.491
+randu2_randn2       0.178
+randu2_randn2       0.721
+randu2_randn2       0.379
+randu2_randn2       0.967
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.769
-randu2_randn2       0.341
-randu2_randn2       0.439
-randu2_randn2       0.311
-randu2_randn2       0.145
-randu2_randn2       0.181
+randu2_randn2       0.317
+randu2_randn2       0.024
+randu2_randn2       0.269
+randu2_randn2       0.754
+randu2_randn2       0.162
+randu2_randn2       0.916
              VARIABLE : RANDU2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
@@ -66578,40 +66727,40 @@ randu2_randn2       0.900
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.354
-randu2_randn2       0.641
-randu2_randn2       0.923
-randu2_randn2       1.707
-randu2_randn2      -0.248
+randu2_randn2       0.126
+randu2_randn2      -0.560
+randu2_randn2       1.056
+randu2_randn2       0.714
+randu2_randn2      -0.473
              VARIABLE : RANDN2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.039
-randu2_randn2       0.350
-randu2_randn2       1.126
-randu2_randn2      -0.992
-randu2_randn2      -1.041
+randu2_randn2      -0.507
+randu2_randn2      -1.944
+randu2_randn2      -1.216
+randu2_randn2       1.740
+randu2_randn2      -0.925
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       1.024
-randu2_randn2      -1.786
-randu2_randn2      -1.033
-randu2_randn2       0.754
-randu2_randn2      -1.856
-randu2_randn2      -0.369
+randu2_randn2       0.633
+randu2_randn2      -1.911
+randu2_randn2      -0.524
+randu2_randn2      -0.330
+randu2_randn2      -0.074
+randu2_randn2       0.092
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2      -0.310
-randu2_randn2      -0.748
-randu2_randn2       0.207
-randu2_randn2      -0.560
-randu2_randn2       0.364
-randu2_randn2       0.176
+randu2_randn2       0.763
+randu2_randn2      -1.013
+randu2_randn2       0.357
+randu2_randn2       0.689
+randu2_randn2      -0.471
+randu2_randn2       0.817
              VARIABLE : RANDN2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
@@ -66636,14 +66785,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.354       1.354       0.543
-randu2_randn2       0.845       0.845       0.543
-randu2_randn2       0.320       0.543       0.320
-randu2_randn2       0.543       0.320       0.497
-randu2_randn2      -0.718      -0.390       0.497
-randu2_randn2      -0.390      -0.390       0.497
-randu2_randn2       0.312       0.312       0.497
-randu2_randn2       0.497       0.497       0.543
+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
  
 GO bn_reset
 cancel mode verify
@@ -67077,8 +67226,8 @@ list eofsvd_space(spacetime)
              SUBSET   : 2 by 2 points (X-T)
              1       2     
               1       2
- 1   / 1: -0.7071  0.0000
- 2   / 2:  0.0000 -0.7071
+ 1   / 1:  0.0000  0.7071
+ 2   / 2: -0.7071  0.0000
  
 show func eofsvd_tfunc
 EOFSVD_TFUNC(A)
@@ -67091,246 +67240,246 @@ list eofsvd_tfunc(spacetime)
              SUBSET   : 2 by 240 points (X-T)
                  1      2    
                  1      2
- 0     /   1: -1.414  0.000
- 0.25  /   2: -1.402 -0.185
- 0.5   /   3: -1.366 -0.366
- 0.75  /   4: -1.307 -0.541
- 1     /   5: -1.225 -0.707
- 1.25  /   6: -1.122 -0.861
- 1.5   /   7: -1.000 -1.000
- 1.75  /   8: -0.861 -1.122
- 2     /   9: -0.707 -1.225
- 2.25  /  10: -0.541 -1.307
- 2.5   /  11: -0.366 -1.366
- 2.75  /  12: -0.185 -1.402
- 3     /  13:  0.000 -1.414
- 3.25  /  14:  0.185 -1.402
- 3.5   /  15:  0.366 -1.366
- 3.75  /  16:  0.541 -1.307
- 4     /  17:  0.707 -1.225
- 4.25  /  18:  0.861 -1.122
- 4.5   /  19:  1.000 -1.000
- 4.75  /  20:  1.122 -0.861
- 5     /  21:  1.225 -0.707
- 5.25  /  22:  1.307 -0.541
- 5.5   /  23:  1.366 -0.366
- 5.75  /  24:  1.402 -0.185
- 6     /  25:  1.414  0.000
- 6.25  /  26:  1.402  0.185
- 6.5   /  27:  1.366  0.366
- 6.75  /  28:  1.307  0.541
- 7     /  29:  1.225  0.707
- 7.25  /  30:  1.122  0.861
- 7.5   /  31:  1.000  1.000
- 7.75  /  32:  0.861  1.122
- 8     /  33:  0.707  1.225
- 8.25  /  34:  0.541  1.307
- 8.5   /  35:  0.366  1.366
- 8.75  /  36:  0.185  1.402
- 9     /  37:  0.000  1.414
- 9.25  /  38: -0.185  1.402
- 9.5   /  39: -0.366  1.366
- 9.75  /  40: -0.541  1.307
- 10    /  41: -0.707  1.225
- 10.25 /  42: -0.861  1.122
- 10.5  /  43: -1.000  1.000
- 10.75 /  44: -1.122  0.861
- 11    /  45: -1.225  0.707
- 11.25 /  46: -1.307  0.541
- 11.5  /  47: -1.366  0.366
- 11.75 /  48: -1.402  0.185
- 12    /  49: -1.414  0.000
- 12.25 /  50: -1.402 -0.185
- 12.5  /  51: -1.366 -0.366
- 12.75 /  52: -1.307 -0.541
- 13    /  53: -1.225 -0.707
- 13.25 /  54: -1.122 -0.861
- 13.5  /  55: -1.000 -1.000
- 13.75 /  56: -0.861 -1.122
- 14    /  57: -0.707 -1.225
- 14.25 /  58: -0.541 -1.307
- 14.5  /  59: -0.366 -1.366
- 14.75 /  60: -0.185 -1.402
- 15    /  61:  0.000 -1.414
- 15.25 /  62:  0.185 -1.402
- 15.5  /  63:  0.366 -1.366
- 15.75 /  64:  0.541 -1.307
- 16    /  65:  0.707 -1.225
- 16.25 /  66:  0.861 -1.122
- 16.5  /  67:  1.000 -1.000
- 16.75 /  68:  1.122 -0.861
- 17    /  69:  1.225 -0.707
- 17.25 /  70:  1.307 -0.541
- 17.5  /  71:  1.366 -0.366
- 17.75 /  72:  1.402 -0.185
- 18    /  73:  1.414  0.000
- 18.25 /  74:  1.402  0.185
- 18.5  /  75:  1.366  0.366
- 18.75 /  76:  1.307  0.541
- 19    /  77:  1.225  0.707
- 19.25 /  78:  1.122  0.861
- 19.5  /  79:  1.000  1.000
- 19.75 /  80:  0.861  1.122
- 20    /  81:  0.707  1.225
- 20.25 /  82:  0.541  1.307
- 20.5  /  83:  0.366  1.366
- 20.75 /  84:  0.185  1.402
- 21    /  85:  0.000  1.414
- 21.25 /  86: -0.185  1.402
- 21.5  /  87: -0.366  1.366
- 21.75 /  88: -0.541  1.307
- 22    /  89: -0.707  1.225
- 22.25 /  90: -0.861  1.122
- 22.5  /  91: -1.000  1.000
- 22.75 /  92: -1.122  0.861
- 23    /  93: -1.225  0.707
- 23.25 /  94: -1.307  0.541
- 23.5  /  95: -1.366  0.366
- 23.75 /  96: -1.402  0.185
- 24    /  97: -1.414  0.000
- 24.25 /  98: -1.402 -0.185
- 24.5  /  99: -1.366 -0.366
- 24.75 / 100: -1.307 -0.541
- 25    / 101: -1.225 -0.707
- 25.25 / 102: -1.122 -0.861
- 25.5  / 103: -1.000 -1.000
- 25.75 / 104: -0.861 -1.122
- 26    / 105: -0.707 -1.225
- 26.25 / 106: -0.541 -1.307
- 26.5  / 107: -0.366 -1.366
- 26.75 / 108: -0.185 -1.402
- 27    / 109:  0.000 -1.414
- 27.25 / 110:  0.185 -1.402
- 27.5  / 111:  0.366 -1.366
- 27.75 / 112:  0.541 -1.307
- 28    / 113:  0.707 -1.225
- 28.25 / 114:  0.861 -1.122
- 28.5  / 115:  1.000 -1.000
- 28.75 / 116:  1.122 -0.861
- 29    / 117:  1.225 -0.707
- 29.25 / 118:  1.307 -0.541
- 29.5  / 119:  1.366 -0.366
- 29.75 / 120:  1.402 -0.185
- 30    / 121:  1.414  0.000
- 30.25 / 122:  1.402  0.185
- 30.5  / 123:  1.366  0.366
- 30.75 / 124:  1.307  0.541
- 31    / 125:  1.225  0.707
- 31.25 / 126:  1.122  0.861
- 31.5  / 127:  1.000  1.000
- 31.75 / 128:  0.861  1.122
- 32    / 129:  0.707  1.225
- 32.25 / 130:  0.541  1.307
- 32.5  / 131:  0.366  1.366
- 32.75 / 132:  0.185  1.402
- 33    / 133:  0.000  1.414
- 33.25 / 134: -0.185  1.402
- 33.5  / 135: -0.366  1.366
- 33.75 / 136: -0.541  1.307
- 34    / 137: -0.707  1.225
- 34.25 / 138: -0.861  1.122
- 34.5  / 139: -1.000  1.000
- 34.75 / 140: -1.122  0.861
- 35    / 141: -1.225  0.707
- 35.25 / 142: -1.307  0.541
- 35.5  / 143: -1.366  0.366
- 35.75 / 144: -1.402  0.185
- 36    / 145: -1.414  0.000
- 36.25 / 146: -1.402 -0.185
- 36.5  / 147: -1.366 -0.366
- 36.75 / 148: -1.307 -0.541
- 37    / 149: -1.225 -0.707
- 37.25 / 150: -1.122 -0.861
- 37.5  / 151: -1.000 -1.000
- 37.75 / 152: -0.861 -1.122
- 38    / 153: -0.707 -1.225
- 38.25 / 154: -0.541 -1.307
- 38.5  / 155: -0.366 -1.366
- 38.75 / 156: -0.185 -1.402
- 39    / 157:  0.000 -1.414
- 39.25 / 158:  0.185 -1.402
- 39.5  / 159:  0.366 -1.366
- 39.75 / 160:  0.541 -1.307
- 40    / 161:  0.707 -1.225
- 40.25 / 162:  0.861 -1.122
- 40.5  / 163:  1.000 -1.000
- 40.75 / 164:  1.122 -0.861
- 41    / 165:  1.225 -0.707
- 41.25 / 166:  1.307 -0.541
- 41.5  / 167:  1.366 -0.366
- 41.75 / 168:  1.402 -0.185
- 42    / 169:  1.414  0.000
- 42.25 / 170:  1.402  0.185
- 42.5  / 171:  1.366  0.366
- 42.75 / 172:  1.307  0.541
- 43    / 173:  1.225  0.707
- 43.25 / 174:  1.122  0.861
- 43.5  / 175:  1.000  1.000
- 43.75 / 176:  0.861  1.122
- 44    / 177:  0.707  1.225
- 44.25 / 178:  0.541  1.307
- 44.5  / 179:  0.366  1.366
- 44.75 / 180:  0.185  1.402
- 45    / 181:  0.000  1.414
- 45.25 / 182: -0.185  1.402
- 45.5  / 183: -0.366  1.366
- 45.75 / 184: -0.541  1.307
- 46    / 185: -0.707  1.225
- 46.25 / 186: -0.861  1.122
- 46.5  / 187: -1.000  1.000
- 46.75 / 188: -1.122  0.861
- 47    / 189: -1.225  0.707
- 47.25 / 190: -1.307  0.541
- 47.5  / 191: -1.366  0.366
- 47.75 / 192: -1.402  0.185
- 48    / 193: -1.414  0.000
- 48.25 / 194: -1.402 -0.185
- 48.5  / 195: -1.366 -0.366
- 48.75 / 196: -1.307 -0.541
- 49    / 197: -1.225 -0.707
- 49.25 / 198: -1.122 -0.861
- 49.5  / 199: -1.000 -1.000
- 49.75 / 200: -0.861 -1.122
- 50    / 201: -0.707 -1.225
- 50.25 / 202: -0.541 -1.307
- 50.5  / 203: -0.366 -1.366
- 50.75 / 204: -0.185 -1.402
- 51    / 205:  0.000 -1.414
- 51.25 / 206:  0.185 -1.402
- 51.5  / 207:  0.366 -1.366
- 51.75 / 208:  0.541 -1.307
- 52    / 209:  0.707 -1.225
- 52.25 / 210:  0.861 -1.122
- 52.5  / 211:  1.000 -1.000
- 52.75 / 212:  1.122 -0.861
- 53    / 213:  1.225 -0.707
- 53.25 / 214:  1.307 -0.541
- 53.5  / 215:  1.366 -0.366
- 53.75 / 216:  1.402 -0.185
- 54    / 217:  1.414  0.000
- 54.25 / 218:  1.402  0.185
- 54.5  / 219:  1.366  0.366
- 54.75 / 220:  1.307  0.541
- 55    / 221:  1.225  0.707
- 55.25 / 222:  1.122  0.861
- 55.5  / 223:  1.000  1.000
- 55.75 / 224:  0.861  1.122
- 56    / 225:  0.707  1.225
- 56.25 / 226:  0.541  1.307
- 56.5  / 227:  0.366  1.366
- 56.75 / 228:  0.185  1.402
- 57    / 229:  0.000  1.414
- 57.25 / 230: -0.185  1.402
- 57.5  / 231: -0.366  1.366
- 57.75 / 232: -0.541  1.307
- 58    / 233: -0.707  1.225
- 58.25 / 234: -0.861  1.122
- 58.5  / 235: -1.000  1.000
- 58.75 / 236: -1.122  0.861
- 59    / 237: -1.225  0.707
- 59.25 / 238: -1.307  0.541
- 59.5  / 239: -1.366  0.366
- 59.75 / 240: -1.402  0.185
+ 0     /   1:  0.000 -1.414
+ 0.25  /   2:  0.185 -1.402
+ 0.5   /   3:  0.366 -1.366
+ 0.75  /   4:  0.541 -1.307
+ 1     /   5:  0.707 -1.225
+ 1.25  /   6:  0.861 -1.122
+ 1.5   /   7:  1.000 -1.000
+ 1.75  /   8:  1.122 -0.861
+ 2     /   9:  1.225 -0.707
+ 2.25  /  10:  1.307 -0.541
+ 2.5   /  11:  1.366 -0.366
+ 2.75  /  12:  1.402 -0.185
+ 3     /  13:  1.414  0.000
+ 3.25  /  14:  1.402  0.185
+ 3.5   /  15:  1.366  0.366
+ 3.75  /  16:  1.307  0.541
+ 4     /  17:  1.225  0.707
+ 4.25  /  18:  1.122  0.861
+ 4.5   /  19:  1.000  1.000
+ 4.75  /  20:  0.861  1.122
+ 5     /  21:  0.707  1.225
+ 5.25  /  22:  0.541  1.307
+ 5.5   /  23:  0.366  1.366
+ 5.75  /  24:  0.185  1.402
+ 6     /  25:  0.000  1.414
+ 6.25  /  26: -0.185  1.402
+ 6.5   /  27: -0.366  1.366
+ 6.75  /  28: -0.541  1.307
+ 7     /  29: -0.707  1.225
+ 7.25  /  30: -0.861  1.122
+ 7.5   /  31: -1.000  1.000
+ 7.75  /  32: -1.122  0.861
+ 8     /  33: -1.225  0.707
+ 8.25  /  34: -1.307  0.541
+ 8.5   /  35: -1.366  0.366
+ 8.75  /  36: -1.402  0.185
+ 9     /  37: -1.414  0.000
+ 9.25  /  38: -1.402 -0.185
+ 9.5   /  39: -1.366 -0.366
+ 9.75  /  40: -1.307 -0.541
+ 10    /  41: -1.225 -0.707
+ 10.25 /  42: -1.122 -0.861
+ 10.5  /  43: -1.000 -1.000
+ 10.75 /  44: -0.861 -1.122
+ 11    /  45: -0.707 -1.225
+ 11.25 /  46: -0.541 -1.307
+ 11.5  /  47: -0.366 -1.366
+ 11.75 /  48: -0.185 -1.402
+ 12    /  49:  0.000 -1.414
+ 12.25 /  50:  0.185 -1.402
+ 12.5  /  51:  0.366 -1.366
+ 12.75 /  52:  0.541 -1.307
+ 13    /  53:  0.707 -1.225
+ 13.25 /  54:  0.861 -1.122
+ 13.5  /  55:  1.000 -1.000
+ 13.75 /  56:  1.122 -0.861
+ 14    /  57:  1.225 -0.707
+ 14.25 /  58:  1.307 -0.541
+ 14.5  /  59:  1.366 -0.366
+ 14.75 /  60:  1.402 -0.185
+ 15    /  61:  1.414  0.000
+ 15.25 /  62:  1.402  0.185
+ 15.5  /  63:  1.366  0.366
+ 15.75 /  64:  1.307  0.541
+ 16    /  65:  1.225  0.707
+ 16.25 /  66:  1.122  0.861
+ 16.5  /  67:  1.000  1.000
+ 16.75 /  68:  0.861  1.122
+ 17    /  69:  0.707  1.225
+ 17.25 /  70:  0.541  1.307
+ 17.5  /  71:  0.366  1.366
+ 17.75 /  72:  0.185  1.402
+ 18    /  73:  0.000  1.414
+ 18.25 /  74: -0.185  1.402
+ 18.5  /  75: -0.366  1.366
+ 18.75 /  76: -0.541  1.307
+ 19    /  77: -0.707  1.225
+ 19.25 /  78: -0.861  1.122
+ 19.5  /  79: -1.000  1.000
+ 19.75 /  80: -1.122  0.861
+ 20    /  81: -1.225  0.707
+ 20.25 /  82: -1.307  0.541
+ 20.5  /  83: -1.366  0.366
+ 20.75 /  84: -1.402  0.185
+ 21    /  85: -1.414  0.000
+ 21.25 /  86: -1.402 -0.185
+ 21.5  /  87: -1.366 -0.366
+ 21.75 /  88: -1.307 -0.541
+ 22    /  89: -1.225 -0.707
+ 22.25 /  90: -1.122 -0.861
+ 22.5  /  91: -1.000 -1.000
+ 22.75 /  92: -0.861 -1.122
+ 23    /  93: -0.707 -1.225
+ 23.25 /  94: -0.541 -1.307
+ 23.5  /  95: -0.366 -1.366
+ 23.75 /  96: -0.185 -1.402
+ 24    /  97:  0.000 -1.414
+ 24.25 /  98:  0.185 -1.402
+ 24.5  /  99:  0.366 -1.366
+ 24.75 / 100:  0.541 -1.307
+ 25    / 101:  0.707 -1.225
+ 25.25 / 102:  0.861 -1.122
+ 25.5  / 103:  1.000 -1.000
+ 25.75 / 104:  1.122 -0.861
+ 26    / 105:  1.225 -0.707
+ 26.25 / 106:  1.307 -0.541
+ 26.5  / 107:  1.366 -0.366
+ 26.75 / 108:  1.402 -0.185
+ 27    / 109:  1.414  0.000
+ 27.25 / 110:  1.402  0.185
+ 27.5  / 111:  1.366  0.366
+ 27.75 / 112:  1.307  0.541
+ 28    / 113:  1.225  0.707
+ 28.25 / 114:  1.122  0.861
+ 28.5  / 115:  1.000  1.000
+ 28.75 / 116:  0.861  1.122
+ 29    / 117:  0.707  1.225
+ 29.25 / 118:  0.541  1.307
+ 29.5  / 119:  0.366  1.366
+ 29.75 / 120:  0.185  1.402
+ 30    / 121:  0.000  1.414
+ 30.25 / 122: -0.185  1.402
+ 30.5  / 123: -0.366  1.366
+ 30.75 / 124: -0.541  1.307
+ 31    / 125: -0.707  1.225
+ 31.25 / 126: -0.861  1.122
+ 31.5  / 127: -1.000  1.000
+ 31.75 / 128: -1.122  0.861
+ 32    / 129: -1.225  0.707
+ 32.25 / 130: -1.307  0.541
+ 32.5  / 131: -1.366  0.366
+ 32.75 / 132: -1.402  0.185
+ 33    / 133: -1.414  0.000
+ 33.25 / 134: -1.402 -0.185
+ 33.5  / 135: -1.366 -0.366
+ 33.75 / 136: -1.307 -0.541
+ 34    / 137: -1.225 -0.707
+ 34.25 / 138: -1.122 -0.861
+ 34.5  / 139: -1.000 -1.000
+ 34.75 / 140: -0.861 -1.122
+ 35    / 141: -0.707 -1.225
+ 35.25 / 142: -0.541 -1.307
+ 35.5  / 143: -0.366 -1.366
+ 35.75 / 144: -0.185 -1.402
+ 36    / 145:  0.000 -1.414
+ 36.25 / 146:  0.185 -1.402
+ 36.5  / 147:  0.366 -1.366
+ 36.75 / 148:  0.541 -1.307
+ 37    / 149:  0.707 -1.225
+ 37.25 / 150:  0.861 -1.122
+ 37.5  / 151:  1.000 -1.000
+ 37.75 / 152:  1.122 -0.861
+ 38    / 153:  1.225 -0.707
+ 38.25 / 154:  1.307 -0.541
+ 38.5  / 155:  1.366 -0.366
+ 38.75 / 156:  1.402 -0.185
+ 39    / 157:  1.414  0.000
+ 39.25 / 158:  1.402  0.185
+ 39.5  / 159:  1.366  0.366
+ 39.75 / 160:  1.307  0.541
+ 40    / 161:  1.225  0.707
+ 40.25 / 162:  1.122  0.861
+ 40.5  / 163:  1.000  1.000
+ 40.75 / 164:  0.861  1.122
+ 41    / 165:  0.707  1.225
+ 41.25 / 166:  0.541  1.307
+ 41.5  / 167:  0.366  1.366
+ 41.75 / 168:  0.185  1.402
+ 42    / 169:  0.000  1.414
+ 42.25 / 170: -0.185  1.402
+ 42.5  / 171: -0.366  1.366
+ 42.75 / 172: -0.541  1.307
+ 43    / 173: -0.707  1.225
+ 43.25 / 174: -0.861  1.122
+ 43.5  / 175: -1.000  1.000
+ 43.75 / 176: -1.122  0.861
+ 44    / 177: -1.225  0.707
+ 44.25 / 178: -1.307  0.541
+ 44.5  / 179: -1.366  0.366
+ 44.75 / 180: -1.402  0.185
+ 45    / 181: -1.414  0.000
+ 45.25 / 182: -1.402 -0.185
+ 45.5  / 183: -1.366 -0.366
+ 45.75 / 184: -1.307 -0.541
+ 46    / 185: -1.225 -0.707
+ 46.25 / 186: -1.122 -0.861
+ 46.5  / 187: -1.000 -1.000
+ 46.75 / 188: -0.861 -1.122
+ 47    / 189: -0.707 -1.225
+ 47.25 / 190: -0.541 -1.307
+ 47.5  / 191: -0.366 -1.366
+ 47.75 / 192: -0.185 -1.402
+ 48    / 193:  0.000 -1.414
+ 48.25 / 194:  0.185 -1.402
+ 48.5  / 195:  0.366 -1.366
+ 48.75 / 196:  0.541 -1.307
+ 49    / 197:  0.707 -1.225
+ 49.25 / 198:  0.861 -1.122
+ 49.5  / 199:  1.000 -1.000
+ 49.75 / 200:  1.122 -0.861
+ 50    / 201:  1.225 -0.707
+ 50.25 / 202:  1.307 -0.541
+ 50.5  / 203:  1.366 -0.366
+ 50.75 / 204:  1.402 -0.185
+ 51    / 205:  1.414  0.000
+ 51.25 / 206:  1.402  0.185
+ 51.5  / 207:  1.366  0.366
+ 51.75 / 208:  1.307  0.541
+ 52    / 209:  1.225  0.707
+ 52.25 / 210:  1.122  0.861
+ 52.5  / 211:  1.000  1.000
+ 52.75 / 212:  0.861  1.122
+ 53    / 213:  0.707  1.225
+ 53.25 / 214:  0.541  1.307
+ 53.5  / 215:  0.366  1.366
+ 53.75 / 216:  0.185  1.402
+ 54    / 217:  0.000  1.414
+ 54.25 / 218: -0.185  1.402
+ 54.5  / 219: -0.366  1.366
+ 54.75 / 220: -0.541  1.307
+ 55    / 221: -0.707  1.225
+ 55.25 / 222: -0.861  1.122
+ 55.5  / 223: -1.000  1.000
+ 55.75 / 224: -1.122  0.861
+ 56    / 225: -1.225  0.707
+ 56.25 / 226: -1.307  0.541
+ 56.5  / 227: -1.366  0.366
+ 56.75 / 228: -1.402  0.185
+ 57    / 229: -1.414  0.000
+ 57.25 / 230: -1.402 -0.185
+ 57.5  / 231: -1.366 -0.366
+ 57.75 / 232: -1.307 -0.541
+ 58    / 233: -1.225 -0.707
+ 58.25 / 234: -1.122 -0.861
+ 58.5  / 235: -1.000 -1.000
+ 58.75 / 236: -0.861 -1.122
+ 59    / 237: -0.707 -1.225
+ 59.25 / 238: -0.541 -1.307
+ 59.5  / 239: -0.366 -1.366
+ 59.75 / 240: -0.185 -1.402
  
 ! The sum over all significant EOFs of the outer product of
 ! EOF(i) and TAF(i) should return the zero-time-meaned data
@@ -67361,254 +67510,254 @@ list eofsvd_space(space12)
              SUBSET   : 3 by 3 points (X-T)
              1       2       3     
               1       2       3
- 1   / 1: -0.7071  0.0000    ....
- 2   / 2:  0.0000 -0.7071    ....
+ 1   / 1:  0.0000  0.7071    ....
+ 2   / 2: -0.7071  0.0000    ....
  3   / 3:    ....    ....    ....
 list eofsvd_tfunc(space12)
              VARIABLE : EOFSVD_TFUNC(SPACE12)
              SUBSET   : 3 by 240 points (X-T)
                  1      2      3    
                  1      2      3
- 0     /   1: -1.414  0.000   ....
- 0.25  /   2: -1.402 -0.185   ....
- 0.5   /   3: -1.366 -0.366   ....
- 0.75  /   4: -1.307 -0.541   ....
- 1     /   5: -1.225 -0.707   ....
- 1.25  /   6: -1.122 -0.861   ....
- 1.5   /   7: -1.000 -1.000   ....
- 1.75  /   8: -0.861 -1.122   ....
- 2     /   9: -0.707 -1.225   ....
- 2.25  /  10: -0.541 -1.307   ....
- 2.5   /  11: -0.366 -1.366   ....
- 2.75  /  12: -0.185 -1.402   ....
- 3     /  13:  0.000 -1.414   ....
- 3.25  /  14:  0.185 -1.402   ....
- 3.5   /  15:  0.366 -1.366   ....
- 3.75  /  16:  0.541 -1.307   ....
- 4     /  17:  0.707 -1.225   ....
- 4.25  /  18:  0.861 -1.122   ....
- 4.5   /  19:  1.000 -1.000   ....
- 4.75  /  20:  1.122 -0.861   ....
- 5     /  21:  1.225 -0.707   ....
- 5.25  /  22:  1.307 -0.541   ....
- 5.5   /  23:  1.366 -0.366   ....
- 5.75  /  24:  1.402 -0.185   ....
- 6     /  25:  1.414  0.000   ....
- 6.25  /  26:  1.402  0.185   ....
- 6.5   /  27:  1.366  0.366   ....
- 6.75  /  28:  1.307  0.541   ....
- 7     /  29:  1.225  0.707   ....
- 7.25  /  30:  1.122  0.861   ....
- 7.5   /  31:  1.000  1.000   ....
- 7.75  /  32:  0.861  1.122   ....
- 8     /  33:  0.707  1.225   ....
- 8.25  /  34:  0.541  1.307   ....
- 8.5   /  35:  0.366  1.366   ....
- 8.75  /  36:  0.185  1.402   ....
- 9     /  37:  0.000  1.414   ....
- 9.25  /  38: -0.185  1.402   ....
- 9.5   /  39: -0.366  1.366   ....
- 9.75  /  40: -0.541  1.307   ....
- 10    /  41: -0.707  1.225   ....
- 10.25 /  42: -0.861  1.122   ....
- 10.5  /  43: -1.000  1.000   ....
- 10.75 /  44: -1.122  0.861   ....
- 11    /  45: -1.225  0.707   ....
- 11.25 /  46: -1.307  0.541   ....
- 11.5  /  47: -1.366  0.366   ....
- 11.75 /  48: -1.402  0.185   ....
- 12    /  49: -1.414  0.000   ....
- 12.25 /  50: -1.402 -0.185   ....
- 12.5  /  51: -1.366 -0.366   ....
- 12.75 /  52: -1.307 -0.541   ....
- 13    /  53: -1.225 -0.707   ....
- 13.25 /  54: -1.122 -0.861   ....
- 13.5  /  55: -1.000 -1.000   ....
- 13.75 /  56: -0.861 -1.122   ....
- 14    /  57: -0.707 -1.225   ....
- 14.25 /  58: -0.541 -1.307   ....
- 14.5  /  59: -0.366 -1.366   ....
- 14.75 /  60: -0.185 -1.402   ....
- 15    /  61:  0.000 -1.414   ....
- 15.25 /  62:  0.185 -1.402   ....
- 15.5  /  63:  0.366 -1.366   ....
- 15.75 /  64:  0.541 -1.307   ....
- 16    /  65:  0.707 -1.225   ....
- 16.25 /  66:  0.861 -1.122   ....
- 16.5  /  67:  1.000 -1.000   ....
- 16.75 /  68:  1.122 -0.861   ....
- 17    /  69:  1.225 -0.707   ....
- 17.25 /  70:  1.307 -0.541   ....
- 17.5  /  71:  1.366 -0.366   ....
- 17.75 /  72:  1.402 -0.185   ....
- 18    /  73:  1.414  0.000   ....
- 18.25 /  74:  1.402  0.185   ....
- 18.5  /  75:  1.366  0.366   ....
- 18.75 /  76:  1.307  0.541   ....
- 19    /  77:  1.225  0.707   ....
- 19.25 /  78:  1.122  0.861   ....
- 19.5  /  79:  1.000  1.000   ....
- 19.75 /  80:  0.861  1.122   ....
- 20    /  81:  0.707  1.225   ....
- 20.25 /  82:  0.541  1.307   ....
- 20.5  /  83:  0.366  1.366   ....
- 20.75 /  84:  0.185  1.402   ....
- 21    /  85:  0.000  1.414   ....
- 21.25 /  86: -0.185  1.402   ....
- 21.5  /  87: -0.366  1.366   ....
- 21.75 /  88: -0.541  1.307   ....
- 22    /  89: -0.707  1.225   ....
- 22.25 /  90: -0.861  1.122   ....
- 22.5  /  91: -1.000  1.000   ....
- 22.75 /  92: -1.122  0.861   ....
- 23    /  93: -1.225  0.707   ....
- 23.25 /  94: -1.307  0.541   ....
- 23.5  /  95: -1.366  0.366   ....
- 23.75 /  96: -1.402  0.185   ....
- 24    /  97: -1.414  0.000   ....
- 24.25 /  98: -1.402 -0.185   ....
- 24.5  /  99: -1.366 -0.366   ....
- 24.75 / 100: -1.307 -0.541   ....
- 25    / 101: -1.225 -0.707   ....
- 25.25 / 102: -1.122 -0.861   ....
- 25.5  / 103: -1.000 -1.000   ....
- 25.75 / 104: -0.861 -1.122   ....
- 26    / 105: -0.707 -1.225   ....
- 26.25 / 106: -0.541 -1.307   ....
- 26.5  / 107: -0.366 -1.366   ....
- 26.75 / 108: -0.185 -1.402   ....
- 27    / 109:  0.000 -1.414   ....
- 27.25 / 110:  0.185 -1.402   ....
- 27.5  / 111:  0.366 -1.366   ....
- 27.75 / 112:  0.541 -1.307   ....
- 28    / 113:  0.707 -1.225   ....
- 28.25 / 114:  0.861 -1.122   ....
- 28.5  / 115:  1.000 -1.000   ....
- 28.75 / 116:  1.122 -0.861   ....
- 29    / 117:  1.225 -0.707   ....
- 29.25 / 118:  1.307 -0.541   ....
- 29.5  / 119:  1.366 -0.366   ....
- 29.75 / 120:  1.402 -0.185   ....
- 30    / 121:  1.414  0.000   ....
- 30.25 / 122:  1.402  0.185   ....
- 30.5  / 123:  1.366  0.366   ....
- 30.75 / 124:  1.307  0.541   ....
- 31    / 125:  1.225  0.707   ....
- 31.25 / 126:  1.122  0.861   ....
- 31.5  / 127:  1.000  1.000   ....
- 31.75 / 128:  0.861  1.122   ....
- 32    / 129:  0.707  1.225   ....
- 32.25 / 130:  0.541  1.307   ....
- 32.5  / 131:  0.366  1.366   ....
- 32.75 / 132:  0.185  1.402   ....
- 33    / 133:  0.000  1.414   ....
- 33.25 / 134: -0.185  1.402   ....
- 33.5  / 135: -0.366  1.366   ....
- 33.75 / 136: -0.541  1.307   ....
- 34    / 137: -0.707  1.225   ....
- 34.25 / 138: -0.861  1.122   ....
- 34.5  / 139: -1.000  1.000   ....
- 34.75 / 140: -1.122  0.861   ....
- 35    / 141: -1.225  0.707   ....
- 35.25 / 142: -1.307  0.541   ....
- 35.5  / 143: -1.366  0.366   ....
- 35.75 / 144: -1.402  0.185   ....
- 36    / 145: -1.414  0.000   ....
- 36.25 / 146: -1.402 -0.185   ....
- 36.5  / 147: -1.366 -0.366   ....
- 36.75 / 148: -1.307 -0.541   ....
- 37    / 149: -1.225 -0.707   ....
- 37.25 / 150: -1.122 -0.861   ....
- 37.5  / 151: -1.000 -1.000   ....
- 37.75 / 152: -0.861 -1.122   ....
- 38    / 153: -0.707 -1.225   ....
- 38.25 / 154: -0.541 -1.307   ....
- 38.5  / 155: -0.366 -1.366   ....
- 38.75 / 156: -0.185 -1.402   ....
- 39    / 157:  0.000 -1.414   ....
- 39.25 / 158:  0.185 -1.402   ....
- 39.5  / 159:  0.366 -1.366   ....
- 39.75 / 160:  0.541 -1.307   ....
- 40    / 161:  0.707 -1.225   ....
- 40.25 / 162:  0.861 -1.122   ....
- 40.5  / 163:  1.000 -1.000   ....
- 40.75 / 164:  1.122 -0.861   ....
- 41    / 165:  1.225 -0.707   ....
- 41.25 / 166:  1.307 -0.541   ....
- 41.5  / 167:  1.366 -0.366   ....
- 41.75 / 168:  1.402 -0.185   ....
- 42    / 169:  1.414  0.000   ....
- 42.25 / 170:  1.402  0.185   ....
- 42.5  / 171:  1.366  0.366   ....
- 42.75 / 172:  1.307  0.541   ....
- 43    / 173:  1.225  0.707   ....
- 43.25 / 174:  1.122  0.861   ....
- 43.5  / 175:  1.000  1.000   ....
- 43.75 / 176:  0.861  1.122   ....
- 44    / 177:  0.707  1.225   ....
- 44.25 / 178:  0.541  1.307   ....
- 44.5  / 179:  0.366  1.366   ....
- 44.75 / 180:  0.185  1.402   ....
- 45    / 181:  0.000  1.414   ....
- 45.25 / 182: -0.185  1.402   ....
- 45.5  / 183: -0.366  1.366   ....
- 45.75 / 184: -0.541  1.307   ....
- 46    / 185: -0.707  1.225   ....
- 46.25 / 186: -0.861  1.122   ....
- 46.5  / 187: -1.000  1.000   ....
- 46.75 / 188: -1.122  0.861   ....
- 47    / 189: -1.225  0.707   ....
- 47.25 / 190: -1.307  0.541   ....
- 47.5  / 191: -1.366  0.366   ....
- 47.75 / 192: -1.402  0.185   ....
- 48    / 193: -1.414  0.000   ....
- 48.25 / 194: -1.402 -0.185   ....
- 48.5  / 195: -1.366 -0.366   ....
- 48.75 / 196: -1.307 -0.541   ....
- 49    / 197: -1.225 -0.707   ....
- 49.25 / 198: -1.122 -0.861   ....
- 49.5  / 199: -1.000 -1.000   ....
- 49.75 / 200: -0.861 -1.122   ....
- 50    / 201: -0.707 -1.225   ....
- 50.25 / 202: -0.541 -1.307   ....
- 50.5  / 203: -0.366 -1.366   ....
- 50.75 / 204: -0.185 -1.402   ....
- 51    / 205:  0.000 -1.414   ....
- 51.25 / 206:  0.185 -1.402   ....
- 51.5  / 207:  0.366 -1.366   ....
- 51.75 / 208:  0.541 -1.307   ....
- 52    / 209:  0.707 -1.225   ....
- 52.25 / 210:  0.861 -1.122   ....
- 52.5  / 211:  1.000 -1.000   ....
- 52.75 / 212:  1.122 -0.861   ....
- 53    / 213:  1.225 -0.707   ....
- 53.25 / 214:  1.307 -0.541   ....
- 53.5  / 215:  1.366 -0.366   ....
- 53.75 / 216:  1.402 -0.185   ....
- 54    / 217:  1.414  0.000   ....
- 54.25 / 218:  1.402  0.185   ....
- 54.5  / 219:  1.366  0.366   ....
- 54.75 / 220:  1.307  0.541   ....
- 55    / 221:  1.225  0.707   ....
- 55.25 / 222:  1.122  0.861   ....
- 55.5  / 223:  1.000  1.000   ....
- 55.75 / 224:  0.861  1.122   ....
- 56    / 225:  0.707  1.225   ....
- 56.25 / 226:  0.541  1.307   ....
- 56.5  / 227:  0.366  1.366   ....
- 56.75 / 228:  0.185  1.402   ....
- 57    / 229:  0.000  1.414   ....
- 57.25 / 230: -0.185  1.402   ....
- 57.5  / 231: -0.366  1.366   ....
- 57.75 / 232: -0.541  1.307   ....
- 58    / 233: -0.707  1.225   ....
- 58.25 / 234: -0.861  1.122   ....
- 58.5  / 235: -1.000  1.000   ....
- 58.75 / 236: -1.122  0.861   ....
- 59    / 237: -1.225  0.707   ....
- 59.25 / 238: -1.307  0.541   ....
- 59.5  / 239: -1.366  0.366   ....
- 59.75 / 240: -1.402  0.185   ....
+ 0     /   1:  0.000 -1.414   ....
+ 0.25  /   2:  0.185 -1.402   ....
+ 0.5   /   3:  0.366 -1.366   ....
+ 0.75  /   4:  0.541 -1.307   ....
+ 1     /   5:  0.707 -1.225   ....
+ 1.25  /   6:  0.861 -1.122   ....
+ 1.5   /   7:  1.000 -1.000   ....
+ 1.75  /   8:  1.122 -0.861   ....
+ 2     /   9:  1.225 -0.707   ....
+ 2.25  /  10:  1.307 -0.541   ....
+ 2.5   /  11:  1.366 -0.366   ....
+ 2.75  /  12:  1.402 -0.185   ....
+ 3     /  13:  1.414  0.000   ....
+ 3.25  /  14:  1.402  0.185   ....
+ 3.5   /  15:  1.366  0.366   ....
+ 3.75  /  16:  1.307  0.541   ....
+ 4     /  17:  1.225  0.707   ....
+ 4.25  /  18:  1.122  0.861   ....
+ 4.5   /  19:  1.000  1.000   ....
+ 4.75  /  20:  0.861  1.122   ....
+ 5     /  21:  0.707  1.225   ....
+ 5.25  /  22:  0.541  1.307   ....
+ 5.5   /  23:  0.366  1.366   ....
+ 5.75  /  24:  0.185  1.402   ....
+ 6     /  25:  0.000  1.414   ....
+ 6.25  /  26: -0.185  1.402   ....
+ 6.5   /  27: -0.366  1.366   ....
+ 6.75  /  28: -0.541  1.307   ....
+ 7     /  29: -0.707  1.225   ....
+ 7.25  /  30: -0.861  1.122   ....
+ 7.5   /  31: -1.000  1.000   ....
+ 7.75  /  32: -1.122  0.861   ....
+ 8     /  33: -1.225  0.707   ....
+ 8.25  /  34: -1.307  0.541   ....
+ 8.5   /  35: -1.366  0.366   ....
+ 8.75  /  36: -1.402  0.185   ....
+ 9     /  37: -1.414  0.000   ....
+ 9.25  /  38: -1.402 -0.185   ....
+ 9.5   /  39: -1.366 -0.366   ....
+ 9.75  /  40: -1.307 -0.541   ....
+ 10    /  41: -1.225 -0.707   ....
+ 10.25 /  42: -1.122 -0.861   ....
+ 10.5  /  43: -1.000 -1.000   ....
+ 10.75 /  44: -0.861 -1.122   ....
+ 11    /  45: -0.707 -1.225   ....
+ 11.25 /  46: -0.541 -1.307   ....
+ 11.5  /  47: -0.366 -1.366   ....
+ 11.75 /  48: -0.185 -1.402   ....
+ 12    /  49:  0.000 -1.414   ....
+ 12.25 /  50:  0.185 -1.402   ....
+ 12.5  /  51:  0.366 -1.366   ....
+ 12.75 /  52:  0.541 -1.307   ....
+ 13    /  53:  0.707 -1.225   ....
+ 13.25 /  54:  0.861 -1.122   ....
+ 13.5  /  55:  1.000 -1.000   ....
+ 13.75 /  56:  1.122 -0.861   ....
+ 14    /  57:  1.225 -0.707   ....
+ 14.25 /  58:  1.307 -0.541   ....
+ 14.5  /  59:  1.366 -0.366   ....
+ 14.75 /  60:  1.402 -0.185   ....
+ 15    /  61:  1.414  0.000   ....
+ 15.25 /  62:  1.402  0.185   ....
+ 15.5  /  63:  1.366  0.366   ....
+ 15.75 /  64:  1.307  0.541   ....
+ 16    /  65:  1.225  0.707   ....
+ 16.25 /  66:  1.122  0.861   ....
+ 16.5  /  67:  1.000  1.000   ....
+ 16.75 /  68:  0.861  1.122   ....
+ 17    /  69:  0.707  1.225   ....
+ 17.25 /  70:  0.541  1.307   ....
+ 17.5  /  71:  0.366  1.366   ....
+ 17.75 /  72:  0.185  1.402   ....
+ 18    /  73:  0.000  1.414   ....
+ 18.25 /  74: -0.185  1.402   ....
+ 18.5  /  75: -0.366  1.366   ....
+ 18.75 /  76: -0.541  1.307   ....
+ 19    /  77: -0.707  1.225   ....
+ 19.25 /  78: -0.861  1.122   ....
+ 19.5  /  79: -1.000  1.000   ....
+ 19.75 /  80: -1.122  0.861   ....
+ 20    /  81: -1.225  0.707   ....
+ 20.25 /  82: -1.307  0.541   ....
+ 20.5  /  83: -1.366  0.366   ....
+ 20.75 /  84: -1.402  0.185   ....
+ 21    /  85: -1.414  0.000   ....
+ 21.25 /  86: -1.402 -0.185   ....
+ 21.5  /  87: -1.366 -0.366   ....
+ 21.75 /  88: -1.307 -0.541   ....
+ 22    /  89: -1.225 -0.707   ....
+ 22.25 /  90: -1.122 -0.861   ....
+ 22.5  /  91: -1.000 -1.000   ....
+ 22.75 /  92: -0.861 -1.122   ....
+ 23    /  93: -0.707 -1.225   ....
+ 23.25 /  94: -0.541 -1.307   ....
+ 23.5  /  95: -0.366 -1.366   ....
+ 23.75 /  96: -0.185 -1.402   ....
+ 24    /  97:  0.000 -1.414   ....
+ 24.25 /  98:  0.185 -1.402   ....
+ 24.5  /  99:  0.366 -1.366   ....
+ 24.75 / 100:  0.541 -1.307   ....
+ 25    / 101:  0.707 -1.225   ....
+ 25.25 / 102:  0.861 -1.122   ....
+ 25.5  / 103:  1.000 -1.000   ....
+ 25.75 / 104:  1.122 -0.861   ....
+ 26    / 105:  1.225 -0.707   ....
+ 26.25 / 106:  1.307 -0.541   ....
+ 26.5  / 107:  1.366 -0.366   ....
+ 26.75 / 108:  1.402 -0.185   ....
+ 27    / 109:  1.414  0.000   ....
+ 27.25 / 110:  1.402  0.185   ....
+ 27.5  / 111:  1.366  0.366   ....
+ 27.75 / 112:  1.307  0.541   ....
+ 28    / 113:  1.225  0.707   ....
+ 28.25 / 114:  1.122  0.861   ....
+ 28.5  / 115:  1.000  1.000   ....
+ 28.75 / 116:  0.861  1.122   ....
+ 29    / 117:  0.707  1.225   ....
+ 29.25 / 118:  0.541  1.307   ....
+ 29.5  / 119:  0.366  1.366   ....
+ 29.75 / 120:  0.185  1.402   ....
+ 30    / 121:  0.000  1.414   ....
+ 30.25 / 122: -0.185  1.402   ....
+ 30.5  / 123: -0.366  1.366   ....
+ 30.75 / 124: -0.541  1.307   ....
+ 31    / 125: -0.707  1.225   ....
+ 31.25 / 126: -0.861  1.122   ....
+ 31.5  / 127: -1.000  1.000   ....
+ 31.75 / 128: -1.122  0.861   ....
+ 32    / 129: -1.225  0.707   ....
+ 32.25 / 130: -1.307  0.541   ....
+ 32.5  / 131: -1.366  0.366   ....
+ 32.75 / 132: -1.402  0.185   ....
+ 33    / 133: -1.414  0.000   ....
+ 33.25 / 134: -1.402 -0.185   ....
+ 33.5  / 135: -1.366 -0.366   ....
+ 33.75 / 136: -1.307 -0.541   ....
+ 34    / 137: -1.225 -0.707   ....
+ 34.25 / 138: -1.122 -0.861   ....
+ 34.5  / 139: -1.000 -1.000   ....
+ 34.75 / 140: -0.861 -1.122   ....
+ 35    / 141: -0.707 -1.225   ....
+ 35.25 / 142: -0.541 -1.307   ....
+ 35.5  / 143: -0.366 -1.366   ....
+ 35.75 / 144: -0.185 -1.402   ....
+ 36    / 145:  0.000 -1.414   ....
+ 36.25 / 146:  0.185 -1.402   ....
+ 36.5  / 147:  0.366 -1.366   ....
+ 36.75 / 148:  0.541 -1.307   ....
+ 37    / 149:  0.707 -1.225   ....
+ 37.25 / 150:  0.861 -1.122   ....
+ 37.5  / 151:  1.000 -1.000   ....
+ 37.75 / 152:  1.122 -0.861   ....
+ 38    / 153:  1.225 -0.707   ....
+ 38.25 / 154:  1.307 -0.541   ....
+ 38.5  / 155:  1.366 -0.366   ....
+ 38.75 / 156:  1.402 -0.185   ....
+ 39    / 157:  1.414  0.000   ....
+ 39.25 / 158:  1.402  0.185   ....
+ 39.5  / 159:  1.366  0.366   ....
+ 39.75 / 160:  1.307  0.541   ....
+ 40    / 161:  1.225  0.707   ....
+ 40.25 / 162:  1.122  0.861   ....
+ 40.5  / 163:  1.000  1.000   ....
+ 40.75 / 164:  0.861  1.122   ....
+ 41    / 165:  0.707  1.225   ....
+ 41.25 / 166:  0.541  1.307   ....
+ 41.5  / 167:  0.366  1.366   ....
+ 41.75 / 168:  0.185  1.402   ....
+ 42    / 169:  0.000  1.414   ....
+ 42.25 / 170: -0.185  1.402   ....
+ 42.5  / 171: -0.366  1.366   ....
+ 42.75 / 172: -0.541  1.307   ....
+ 43    / 173: -0.707  1.225   ....
+ 43.25 / 174: -0.861  1.122   ....
+ 43.5  / 175: -1.000  1.000   ....
+ 43.75 / 176: -1.122  0.861   ....
+ 44    / 177: -1.225  0.707   ....
+ 44.25 / 178: -1.307  0.541   ....
+ 44.5  / 179: -1.366  0.366   ....
+ 44.75 / 180: -1.402  0.185   ....
+ 45    / 181: -1.414  0.000   ....
+ 45.25 / 182: -1.402 -0.185   ....
+ 45.5  / 183: -1.366 -0.366   ....
+ 45.75 / 184: -1.307 -0.541   ....
+ 46    / 185: -1.225 -0.707   ....
+ 46.25 / 186: -1.122 -0.861   ....
+ 46.5  / 187: -1.000 -1.000   ....
+ 46.75 / 188: -0.861 -1.122   ....
+ 47    / 189: -0.707 -1.225   ....
+ 47.25 / 190: -0.541 -1.307   ....
+ 47.5  / 191: -0.366 -1.366   ....
+ 47.75 / 192: -0.185 -1.402   ....
+ 48    / 193:  0.000 -1.414   ....
+ 48.25 / 194:  0.185 -1.402   ....
+ 48.5  / 195:  0.366 -1.366   ....
+ 48.75 / 196:  0.541 -1.307   ....
+ 49    / 197:  0.707 -1.225   ....
+ 49.25 / 198:  0.861 -1.122   ....
+ 49.5  / 199:  1.000 -1.000   ....
+ 49.75 / 200:  1.122 -0.861   ....
+ 50    / 201:  1.225 -0.707   ....
+ 50.25 / 202:  1.307 -0.541   ....
+ 50.5  / 203:  1.366 -0.366   ....
+ 50.75 / 204:  1.402 -0.185   ....
+ 51    / 205:  1.414  0.000   ....
+ 51.25 / 206:  1.402  0.185   ....
+ 51.5  / 207:  1.366  0.366   ....
+ 51.75 / 208:  1.307  0.541   ....
+ 52    / 209:  1.225  0.707   ....
+ 52.25 / 210:  1.122  0.861   ....
+ 52.5  / 211:  1.000  1.000   ....
+ 52.75 / 212:  0.861  1.122   ....
+ 53    / 213:  0.707  1.225   ....
+ 53.25 / 214:  0.541  1.307   ....
+ 53.5  / 215:  0.366  1.366   ....
+ 53.75 / 216:  0.185  1.402   ....
+ 54    / 217:  0.000  1.414   ....
+ 54.25 / 218: -0.185  1.402   ....
+ 54.5  / 219: -0.366  1.366   ....
+ 54.75 / 220: -0.541  1.307   ....
+ 55    / 221: -0.707  1.225   ....
+ 55.25 / 222: -0.861  1.122   ....
+ 55.5  / 223: -1.000  1.000   ....
+ 55.75 / 224: -1.122  0.861   ....
+ 56    / 225: -1.225  0.707   ....
+ 56.25 / 226: -1.307  0.541   ....
+ 56.5  / 227: -1.366  0.366   ....
+ 56.75 / 228: -1.402  0.185   ....
+ 57    / 229: -1.414  0.000   ....
+ 57.25 / 230: -1.402 -0.185   ....
+ 57.5  / 231: -1.366 -0.366   ....
+ 57.75 / 232: -1.307 -0.541   ....
+ 58    / 233: -1.225 -0.707   ....
+ 58.25 / 234: -1.122 -0.861   ....
+ 58.5  / 235: -1.000 -1.000   ....
+ 58.75 / 236: -0.861 -1.122   ....
+ 59    / 237: -0.707 -1.225   ....
+ 59.25 / 238: -0.541 -1.307   ....
+ 59.5  / 239: -0.366 -1.366   ....
+ 59.75 / 240: -0.185 -1.402   ....
  
  
 ! If there are no complete time series, the functions should bail with an error
@@ -67709,11 +67858,11 @@ list eofs[L=1:2]
              1       2     
               1       2
  ---- L:1 T:   1
- 1   / 1: -0.3534 -0.0087
- 2   / 2: -0.0087  0.3534
+ 1   / 1:  0.0179 -0.3531
+ 2   / 2: -0.3531 -0.0179
  ---- L:2 T:   2
- 1   / 1:  0.0087 -0.3534
- 2   / 2: -0.3534 -0.0087
+ 1   / 1:  0.3531  0.0179
+ 2   / 2:  0.0179 -0.3531
  
 show func eofsvd_tfunc
 EOFSVD_TFUNC(A)
@@ -67732,246 +67881,246 @@ list tafs[I=1:2]
              SUBSET   : 2 by 240 points (X-T)
                  1      2    
                  1      2
- 0     /   1: -1.414  0.035
- 0.1   /   2: -1.410 -0.113
- 0.2   /   3: -1.390 -0.260
- 0.3   /   4: -1.355 -0.404
- 0.4   /   5: -1.306 -0.543
- 0.5   /   6: -1.242 -0.677
- 0.6   /   7: -1.164 -0.803
- 0.7   /   8: -1.074 -0.920
- 0.8   /   9: -0.972 -1.027
- 0.9   /  10: -0.859 -1.123
- 1     /  11: -0.737 -1.207
- 1.1   /  12: -0.607 -1.277
- 1.2   /  13: -0.470 -1.334
- 1.3   /  14: -0.328 -1.376
- 1.4   /  15: -0.182 -1.402
- 1.5   /  16: -0.035 -1.414
- 1.6   /  17:  0.113 -1.410
- 1.7   /  18:  0.260 -1.390
- 1.8   /  19:  0.404 -1.355
- 1.9   /  20:  0.543 -1.306
- 2     /  21:  0.677 -1.242
- 2.1   /  22:  0.803 -1.164
- 2.2   /  23:  0.920 -1.074
- 2.3   /  24:  1.027 -0.972
- 2.4   /  25:  1.123 -0.859
- 2.5   /  26:  1.207 -0.737
- 2.6   /  27:  1.277 -0.607
- 2.7   /  28:  1.334 -0.470
- 2.8   /  29:  1.376 -0.328
- 2.9   /  30:  1.402 -0.182
- 3     /  31:  1.414 -0.035
- 3.1   /  32:  1.410  0.113
- 3.2   /  33:  1.390  0.260
- 3.3   /  34:  1.355  0.404
- 3.4   /  35:  1.306  0.543
- 3.5   /  36:  1.242  0.677
- 3.6   /  37:  1.164  0.803
- 3.7   /  38:  1.074  0.920
- 3.8   /  39:  0.972  1.027
- 3.9   /  40:  0.859  1.123
- 4     /  41:  0.737  1.207
- 4.1   /  42:  0.607  1.277
- 4.2   /  43:  0.470  1.334
- 4.3   /  44:  0.328  1.376
- 4.4   /  45:  0.182  1.402
- 4.5   /  46:  0.035  1.414
- 4.6   /  47: -0.113  1.410
- 4.7   /  48: -0.260  1.390
- 4.8   /  49: -0.404  1.355
- 4.9   /  50: -0.543  1.306
- 5     /  51: -0.677  1.242
- 5.1   /  52: -0.803  1.164
- 5.2   /  53: -0.920  1.074
- 5.3   /  54: -1.027  0.972
- 5.4   /  55: -1.123  0.859
- 5.5   /  56: -1.207  0.737
- 5.6   /  57: -1.277  0.607
- 5.7   /  58: -1.334  0.470
- 5.8   /  59: -1.376  0.328
- 5.9   /  60: -1.402  0.182
- 6     /  61: -1.414  0.035
- 6.1   /  62: -1.410 -0.113
- 6.2   /  63: -1.390 -0.260
- 6.3   /  64: -1.355 -0.404
- 6.4   /  65: -1.306 -0.543
- 6.5   /  66: -1.242 -0.677
- 6.6   /  67: -1.164 -0.803
- 6.7   /  68: -1.074 -0.920
- 6.8   /  69: -0.972 -1.027
- 6.9   /  70: -0.859 -1.123
- 7     /  71: -0.737 -1.207
- 7.1   /  72: -0.607 -1.277
- 7.2   /  73: -0.470 -1.334
- 7.3   /  74: -0.328 -1.376
- 7.4   /  75: -0.182 -1.402
- 7.5   /  76: -0.035 -1.414
- 7.6   /  77:  0.113 -1.410
- 7.7   /  78:  0.260 -1.390
- 7.8   /  79:  0.404 -1.355
- 7.9   /  80:  0.543 -1.306
- 8     /  81:  0.677 -1.242
- 8.1   /  82:  0.803 -1.164
- 8.2   /  83:  0.920 -1.074
- 8.3   /  84:  1.027 -0.972
- 8.4   /  85:  1.123 -0.859
- 8.5   /  86:  1.207 -0.737
- 8.6   /  87:  1.277 -0.607
- 8.7   /  88:  1.334 -0.470
- 8.8   /  89:  1.376 -0.328
- 8.9   /  90:  1.402 -0.182
- 9     /  91:  1.414 -0.035
- 9.1   /  92:  1.410  0.113
- 9.2   /  93:  1.390  0.260
- 9.3   /  94:  1.355  0.404
- 9.4   /  95:  1.306  0.543
- 9.5   /  96:  1.242  0.677
- 9.6   /  97:  1.164  0.803
- 9.7   /  98:  1.074  0.920
- 9.8   /  99:  0.972  1.027
- 9.9   / 100:  0.859  1.123
- 10    / 101:  0.737  1.207
- 10.1  / 102:  0.607  1.277
- 10.2  / 103:  0.470  1.334
- 10.3  / 104:  0.328  1.376
- 10.4  / 105:  0.182  1.402
- 10.5  / 106:  0.035  1.414
- 10.6  / 107: -0.113  1.410
- 10.7  / 108: -0.260  1.390
- 10.8  / 109: -0.404  1.355
- 10.9  / 110: -0.543  1.306
- 11    / 111: -0.677  1.242
- 11.1  / 112: -0.803  1.164
- 11.2  / 113: -0.920  1.074
- 11.3  / 114: -1.027  0.972
- 11.4  / 115: -1.123  0.859
- 11.5  / 116: -1.207  0.737
- 11.6  / 117: -1.277  0.607
- 11.7  / 118: -1.334  0.470
- 11.8  / 119: -1.376  0.328
- 11.9  / 120: -1.402  0.182
- 12    / 121: -1.414  0.035
- 12.1  / 122: -1.410 -0.113
- 12.2  / 123: -1.390 -0.260
- 12.3  / 124: -1.355 -0.404
- 12.4  / 125: -1.306 -0.543
- 12.5  / 126: -1.242 -0.677
- 12.6  / 127: -1.164 -0.803
- 12.7  / 128: -1.074 -0.920
- 12.8  / 129: -0.972 -1.027
- 12.9  / 130: -0.859 -1.123
- 13    / 131: -0.737 -1.207
- 13.1  / 132: -0.607 -1.277
- 13.2  / 133: -0.470 -1.334
- 13.3  / 134: -0.328 -1.376
- 13.4  / 135: -0.182 -1.402
- 13.5  / 136: -0.035 -1.414
- 13.6  / 137:  0.113 -1.410
- 13.7  / 138:  0.260 -1.390
- 13.8  / 139:  0.404 -1.355
- 13.9  / 140:  0.543 -1.306
- 14    / 141:  0.677 -1.242
- 14.1  / 142:  0.803 -1.164
- 14.2  / 143:  0.920 -1.074
- 14.3  / 144:  1.027 -0.972
- 14.4  / 145:  1.123 -0.859
- 14.5  / 146:  1.207 -0.737
- 14.6  / 147:  1.277 -0.607
- 14.7  / 148:  1.334 -0.470
- 14.8  / 149:  1.376 -0.328
- 14.9  / 150:  1.402 -0.182
- 15    / 151:  1.414 -0.035
- 15.1  / 152:  1.410  0.113
- 15.2  / 153:  1.390  0.260
- 15.3  / 154:  1.355  0.404
- 15.4  / 155:  1.306  0.543
- 15.5  / 156:  1.242  0.677
- 15.6  / 157:  1.164  0.803
- 15.7  / 158:  1.074  0.920
- 15.8  / 159:  0.972  1.027
- 15.9  / 160:  0.859  1.123
- 16    / 161:  0.737  1.207
- 16.1  / 162:  0.607  1.277
- 16.2  / 163:  0.470  1.334
- 16.3  / 164:  0.328  1.376
- 16.4  / 165:  0.182  1.402
- 16.5  / 166:  0.035  1.414
- 16.6  / 167: -0.113  1.410
- 16.7  / 168: -0.260  1.390
- 16.8  / 169: -0.404  1.355
- 16.9  / 170: -0.543  1.306
- 17    / 171: -0.677  1.242
- 17.1  / 172: -0.803  1.164
- 17.2  / 173: -0.920  1.074
- 17.3  / 174: -1.027  0.972
- 17.4  / 175: -1.123  0.859
- 17.5  / 176: -1.207  0.737
- 17.6  / 177: -1.277  0.607
- 17.7  / 178: -1.334  0.470
- 17.8  / 179: -1.376  0.328
- 17.9  / 180: -1.402  0.182
- 18    / 181: -1.414  0.035
- 18.1  / 182: -1.410 -0.113
- 18.2  / 183: -1.390 -0.260
- 18.3  / 184: -1.355 -0.404
- 18.4  / 185: -1.306 -0.543
- 18.5  / 186: -1.242 -0.677
- 18.6  / 187: -1.164 -0.803
- 18.7  / 188: -1.074 -0.920
- 18.8  / 189: -0.972 -1.027
- 18.9  / 190: -0.859 -1.123
- 19    / 191: -0.737 -1.207
- 19.1  / 192: -0.607 -1.277
- 19.2  / 193: -0.470 -1.334
- 19.3  / 194: -0.328 -1.376
- 19.4  / 195: -0.182 -1.402
- 19.5  / 196: -0.035 -1.414
- 19.6  / 197:  0.113 -1.410
- 19.7  / 198:  0.260 -1.390
- 19.8  / 199:  0.404 -1.355
- 19.9  / 200:  0.543 -1.306
- 20    / 201:  0.677 -1.242
- 20.1  / 202:  0.803 -1.164
- 20.2  / 203:  0.920 -1.074
- 20.3  / 204:  1.027 -0.972
- 20.4  / 205:  1.123 -0.859
- 20.5  / 206:  1.207 -0.737
- 20.6  / 207:  1.277 -0.607
- 20.7  / 208:  1.334 -0.470
- 20.8  / 209:  1.376 -0.328
- 20.9  / 210:  1.402 -0.182
- 21    / 211:  1.414 -0.035
- 21.1  / 212:  1.410  0.113
- 21.2  / 213:  1.390  0.260
- 21.3  / 214:  1.355  0.404
- 21.4  / 215:  1.306  0.543
- 21.5  / 216:  1.242  0.677
- 21.6  / 217:  1.164  0.803
- 21.7  / 218:  1.074  0.920
- 21.8  / 219:  0.972  1.027
- 21.9  / 220:  0.859  1.123
- 22    / 221:  0.737  1.207
- 22.1  / 222:  0.607  1.277
- 22.2  / 223:  0.470  1.334
- 22.3  / 224:  0.328  1.376
- 22.4  / 225:  0.182  1.402
- 22.5  / 226:  0.035  1.414
- 22.6  / 227: -0.113  1.410
- 22.7  / 228: -0.260  1.390
- 22.8  / 229: -0.404  1.355
- 22.9  / 230: -0.543  1.306
- 23    / 231: -0.677  1.242
- 23.1  / 232: -0.803  1.164
- 23.2  / 233: -0.920  1.074
- 23.3  / 234: -1.027  0.972
- 23.4  / 235: -1.123  0.859
- 23.5  / 236: -1.207  0.737
- 23.6  / 237: -1.277  0.607
- 23.7  / 238: -1.334  0.470
- 23.8  / 239: -1.376  0.328
- 23.9  / 240: -1.402  0.182
+ 0     /   1:  0.072  1.412
+ 0.1   /   2: -0.076  1.412
+ 0.2   /   3: -0.223  1.396
+ 0.3   /   4: -0.368  1.365
+ 0.4   /   5: -0.509  1.319
+ 0.5   /   6: -0.644  1.259
+ 0.6   /   7: -0.772  1.185
+ 0.7   /   8: -0.892  1.098
+ 0.8   /   9: -1.002  0.998
+ 0.9   /  10: -1.100  0.888
+ 1     /  11: -1.187  0.768
+ 1.1   /  12: -1.261  0.640
+ 1.2   /  13: -1.321  0.505
+ 1.3   /  14: -1.367  0.364
+ 1.4   /  15: -1.397  0.219
+ 1.5   /  16: -1.412  0.072
+ 1.6   /  17: -1.412 -0.076
+ 1.7   /  18: -1.396 -0.223
+ 1.8   /  19: -1.365 -0.368
+ 1.9   /  20: -1.319 -0.509
+ 2     /  21: -1.259 -0.644
+ 2.1   /  22: -1.185 -0.772
+ 2.2   /  23: -1.098 -0.892
+ 2.3   /  24: -0.998 -1.002
+ 2.4   /  25: -0.888 -1.100
+ 2.5   /  26: -0.768 -1.187
+ 2.6   /  27: -0.640 -1.261
+ 2.7   /  28: -0.505 -1.321
+ 2.8   /  29: -0.364 -1.367
+ 2.9   /  30: -0.219 -1.397
+ 3     /  31: -0.072 -1.412
+ 3.1   /  32:  0.076 -1.412
+ 3.2   /  33:  0.223 -1.396
+ 3.3   /  34:  0.368 -1.365
+ 3.4   /  35:  0.509 -1.319
+ 3.5   /  36:  0.644 -1.259
+ 3.6   /  37:  0.772 -1.185
+ 3.7   /  38:  0.892 -1.098
+ 3.8   /  39:  1.002 -0.998
+ 3.9   /  40:  1.100 -0.888
+ 4     /  41:  1.187 -0.768
+ 4.1   /  42:  1.261 -0.640
+ 4.2   /  43:  1.321 -0.505
+ 4.3   /  44:  1.367 -0.364
+ 4.4   /  45:  1.397 -0.219
+ 4.5   /  46:  1.412 -0.072
+ 4.6   /  47:  1.412  0.076
+ 4.7   /  48:  1.396  0.223
+ 4.8   /  49:  1.365  0.368
+ 4.9   /  50:  1.319  0.509
+ 5     /  51:  1.259  0.644
+ 5.1   /  52:  1.185  0.772
+ 5.2   /  53:  1.098  0.892
+ 5.3   /  54:  0.998  1.002
+ 5.4   /  55:  0.888  1.100
+ 5.5   /  56:  0.768  1.187
+ 5.6   /  57:  0.640  1.261
+ 5.7   /  58:  0.505  1.321
+ 5.8   /  59:  0.364  1.367
+ 5.9   /  60:  0.219  1.397
+ 6     /  61:  0.072  1.412
+ 6.1   /  62: -0.076  1.412
+ 6.2   /  63: -0.223  1.396
+ 6.3   /  64: -0.368  1.365
+ 6.4   /  65: -0.509  1.319
+ 6.5   /  66: -0.644  1.259
+ 6.6   /  67: -0.772  1.185
+ 6.7   /  68: -0.892  1.098
+ 6.8   /  69: -1.002  0.998
+ 6.9   /  70: -1.100  0.888
+ 7     /  71: -1.187  0.768
+ 7.1   /  72: -1.261  0.640
+ 7.2   /  73: -1.321  0.505
+ 7.3   /  74: -1.367  0.364
+ 7.4   /  75: -1.397  0.219
+ 7.5   /  76: -1.412  0.072
+ 7.6   /  77: -1.412 -0.076
+ 7.7   /  78: -1.396 -0.223
+ 7.8   /  79: -1.365 -0.368
+ 7.9   /  80: -1.319 -0.509
+ 8     /  81: -1.259 -0.644
+ 8.1   /  82: -1.185 -0.772
+ 8.2   /  83: -1.098 -0.892
+ 8.3   /  84: -0.998 -1.002
+ 8.4   /  85: -0.888 -1.100
+ 8.5   /  86: -0.768 -1.187
+ 8.6   /  87: -0.640 -1.261
+ 8.7   /  88: -0.505 -1.321
+ 8.8   /  89: -0.364 -1.367
+ 8.9   /  90: -0.219 -1.397
+ 9     /  91: -0.072 -1.412
+ 9.1   /  92:  0.076 -1.412
+ 9.2   /  93:  0.223 -1.396
+ 9.3   /  94:  0.368 -1.365
+ 9.4   /  95:  0.509 -1.319
+ 9.5   /  96:  0.644 -1.259
+ 9.6   /  97:  0.772 -1.185
+ 9.7   /  98:  0.892 -1.098
+ 9.8   /  99:  1.002 -0.998
+ 9.9   / 100:  1.100 -0.888
+ 10    / 101:  1.187 -0.768
+ 10.1  / 102:  1.261 -0.640
+ 10.2  / 103:  1.321 -0.505
+ 10.3  / 104:  1.367 -0.364
+ 10.4  / 105:  1.397 -0.219
+ 10.5  / 106:  1.412 -0.072
+ 10.6  / 107:  1.412  0.076
+ 10.7  / 108:  1.396  0.223
+ 10.8  / 109:  1.365  0.368
+ 10.9  / 110:  1.319  0.509
+ 11    / 111:  1.259  0.644
+ 11.1  / 112:  1.185  0.772
+ 11.2  / 113:  1.098  0.892
+ 11.3  / 114:  0.998  1.002
+ 11.4  / 115:  0.888  1.100
+ 11.5  / 116:  0.768  1.187
+ 11.6  / 117:  0.640  1.261
+ 11.7  / 118:  0.505  1.321
+ 11.8  / 119:  0.364  1.367
+ 11.9  / 120:  0.219  1.397
+ 12    / 121:  0.072  1.412
+ 12.1  / 122: -0.076  1.412
+ 12.2  / 123: -0.223  1.396
+ 12.3  / 124: -0.368  1.365
+ 12.4  / 125: -0.509  1.319
+ 12.5  / 126: -0.644  1.259
+ 12.6  / 127: -0.772  1.185
+ 12.7  / 128: -0.892  1.098
+ 12.8  / 129: -1.002  0.998
+ 12.9  / 130: -1.100  0.888
+ 13    / 131: -1.187  0.768
+ 13.1  / 132: -1.261  0.640
+ 13.2  / 133: -1.321  0.505
+ 13.3  / 134: -1.367  0.364
+ 13.4  / 135: -1.397  0.219
+ 13.5  / 136: -1.412  0.072
+ 13.6  / 137: -1.412 -0.076
+ 13.7  / 138: -1.396 -0.223
+ 13.8  / 139: -1.365 -0.368
+ 13.9  / 140: -1.319 -0.509
+ 14    / 141: -1.259 -0.644
+ 14.1  / 142: -1.185 -0.772
+ 14.2  / 143: -1.098 -0.892
+ 14.3  / 144: -0.998 -1.002
+ 14.4  / 145: -0.888 -1.100
+ 14.5  / 146: -0.768 -1.187
+ 14.6  / 147: -0.640 -1.261
+ 14.7  / 148: -0.505 -1.321
+ 14.8  / 149: -0.364 -1.367
+ 14.9  / 150: -0.219 -1.397
+ 15    / 151: -0.072 -1.412
+ 15.1  / 152:  0.076 -1.412
+ 15.2  / 153:  0.223 -1.396
+ 15.3  / 154:  0.368 -1.365
+ 15.4  / 155:  0.509 -1.319
+ 15.5  / 156:  0.644 -1.259
+ 15.6  / 157:  0.772 -1.185
+ 15.7  / 158:  0.892 -1.098
+ 15.8  / 159:  1.002 -0.998
+ 15.9  / 160:  1.100 -0.888
+ 16    / 161:  1.187 -0.768
+ 16.1  / 162:  1.261 -0.640
+ 16.2  / 163:  1.321 -0.505
+ 16.3  / 164:  1.367 -0.364
+ 16.4  / 165:  1.397 -0.219
+ 16.5  / 166:  1.412 -0.072
+ 16.6  / 167:  1.412  0.076
+ 16.7  / 168:  1.396  0.223
+ 16.8  / 169:  1.365  0.368
+ 16.9  / 170:  1.319  0.509
+ 17    / 171:  1.259  0.644
+ 17.1  / 172:  1.185  0.772
+ 17.2  / 173:  1.098  0.892
+ 17.3  / 174:  0.998  1.002
+ 17.4  / 175:  0.888  1.100
+ 17.5  / 176:  0.768  1.187
+ 17.6  / 177:  0.640  1.261
+ 17.7  / 178:  0.505  1.321
+ 17.8  / 179:  0.364  1.367
+ 17.9  / 180:  0.219  1.397
+ 18    / 181:  0.072  1.412
+ 18.1  / 182: -0.076  1.412
+ 18.2  / 183: -0.223  1.396
+ 18.3  / 184: -0.368  1.365
+ 18.4  / 185: -0.509  1.319
+ 18.5  / 186: -0.644  1.259
+ 18.6  / 187: -0.772  1.185
+ 18.7  / 188: -0.892  1.098
+ 18.8  / 189: -1.002  0.998
+ 18.9  / 190: -1.100  0.888
+ 19    / 191: -1.187  0.768
+ 19.1  / 192: -1.261  0.640
+ 19.2  / 193: -1.321  0.505
+ 19.3  / 194: -1.367  0.364
+ 19.4  / 195: -1.397  0.219
+ 19.5  / 196: -1.412  0.072
+ 19.6  / 197: -1.412 -0.076
+ 19.7  / 198: -1.396 -0.223
+ 19.8  / 199: -1.365 -0.368
+ 19.9  / 200: -1.319 -0.509
+ 20    / 201: -1.259 -0.644
+ 20.1  / 202: -1.185 -0.772
+ 20.2  / 203: -1.098 -0.892
+ 20.3  / 204: -0.998 -1.002
+ 20.4  / 205: -0.888 -1.100
+ 20.5  / 206: -0.768 -1.187
+ 20.6  / 207: -0.640 -1.261
+ 20.7  / 208: -0.505 -1.321
+ 20.8  / 209: -0.364 -1.367
+ 20.9  / 210: -0.219 -1.397
+ 21    / 211: -0.072 -1.412
+ 21.1  / 212:  0.076 -1.412
+ 21.2  / 213:  0.223 -1.396
+ 21.3  / 214:  0.368 -1.365
+ 21.4  / 215:  0.509 -1.319
+ 21.5  / 216:  0.644 -1.259
+ 21.6  / 217:  0.772 -1.185
+ 21.7  / 218:  0.892 -1.098
+ 21.8  / 219:  1.002 -0.998
+ 21.9  / 220:  1.100 -0.888
+ 22    / 221:  1.187 -0.768
+ 22.1  / 222:  1.261 -0.640
+ 22.2  / 223:  1.321 -0.505
+ 22.3  / 224:  1.367 -0.364
+ 22.4  / 225:  1.397 -0.219
+ 22.5  / 226:  1.412 -0.072
+ 22.6  / 227:  1.412  0.076
+ 22.7  / 228:  1.396  0.223
+ 22.8  / 229:  1.365  0.368
+ 22.9  / 230:  1.319  0.509
+ 23    / 231:  1.259  0.644
+ 23.1  / 232:  1.185  0.772
+ 23.2  / 233:  1.098  0.892
+ 23.3  / 234:  0.998  1.002
+ 23.4  / 235:  0.888  1.100
+ 23.5  / 236:  0.768  1.187
+ 23.6  / 237:  0.640  1.261
+ 23.7  / 238:  0.505  1.321
+ 23.8  / 239:  0.364  1.367
+ 23.9  / 240:  0.219  1.397
  
 ! Explanation:
 ! Time series means = (0.5, 0.0, 0.0, 0.5) + (0, 1, 2, 3)
@@ -68253,7 +68402,7 @@ LIST v[@ypt]
 LIST v[@ept]
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 by 3 points (X-Y-F)
-             E        : 1.00499999999999989 (interpolated)
+             E        : 1 (interpolated)
               1        2        3     
               1        2        3
  ---- N:1 F:   1
@@ -68271,7 +68420,7 @@ LIST v[@ept]
 LIST v[@fpt]
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 by 3 points (X-Y-E)
-             F        : 1.000499999999999945 (interpolated)
+             F        : 1 (interpolated)
               1        2        3     
               1        2        3
  ---- M:1 E:   1
@@ -68291,8 +68440,8 @@ LIST v[@fpt]
 LIST v[@ept, at fpt]	!XY
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 points (X-Y)
-             E        : 1.00499999999999989 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             E        : 1 (interpolated)
+             F        : 1 (interpolated)
               1        2        3     
               1        2        3
  1   / 1:  1112.00  1113.00  1114.00
@@ -68302,7 +68451,7 @@ LIST v[@ypt, at fpt]	!XE
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 points (X-E)
              Y        : 1.05 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             F        : 1 (interpolated)
               1        2        3     
               1        2        3
  1   / 1:  1112.00  1113.00  1114.00
@@ -68312,7 +68461,7 @@ LIST v[@ypt, at ept]	!XF
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 points (X-F)
              Y        : 1.05 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
+             E        : 1 (interpolated)
               1        2        3     
               1        2        3
  1   / 1:  1112.00  1113.00  1114.00
@@ -68322,7 +68471,7 @@ LIST v[@xpt, at fpt]	!YE
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 points (Y-E)
              X        : 1.5 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             F        : 1 (interpolated)
               1        2        3     
               1        2        3
  1   / 1:  1112.00  1122.00  1132.00
@@ -68332,7 +68481,7 @@ LIST v[@xpt, at ept]	!YF
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 points (Y-F)
              X        : 1.5 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
+             E        : 1 (interpolated)
               1        2        3     
               1        2        3
  1   / 1:  1112.00  1122.00  1132.00
@@ -68355,7 +68504,7 @@ LIST/ORDER=F v[@xpt, at ypt, at ept]	! F
              SUBSET   : 3 points (F)
              X        : 1.5 (interpolated)
              Y        : 1.05 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
+             E        : 1 (interpolated)
              1        2        3     
              1        2        3
           1112.50  2112.50  3112.50
@@ -68364,7 +68513,7 @@ LIST/ORDER=E v[@xpt, at ypt, at fpt]	! E
              SUBSET   : 3 points (E)
              X        : 1.5 (interpolated)
              Y        : 1.05 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             F        : 1 (interpolated)
              1        2        3     
              1        2        3
           1112.50  1212.50  1312.50
@@ -68372,8 +68521,8 @@ LIST/ORDER=Y v[@xpt, at ept, at fpt]	! Y
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 points (Y)
              X        : 1.5 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             E        : 1 (interpolated)
+             F        : 1 (interpolated)
              1        2        3     
              1        2        3
           1112.50  1122.50  1132.50
@@ -68381,8 +68530,8 @@ LIST/ORDER=X v[@ypt, at ept, at fpt]	! X
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 points (X)
              Y        : 1.05 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             E        : 1 (interpolated)
+             F        : 1 (interpolated)
              1        2        3     
              1        2        3
           1112.50  1113.50  1114.50
@@ -68392,8 +68541,8 @@ LIST v[@xpt, at ypt, at ept, at fpt]
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              X        : 1.5 (interpolated)
              Y        : 1.05 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             E        : 1 (interpolated)
+             F        : 1 (interpolated)
           1113.00
  
 GO bn_reset
@@ -68466,7 +68615,7 @@ list veven
              SUBSET   : 3 by 3 by 3 by 3 points (X-Y-E-FORECAST)
               4        6        8     
               2        3        4
- ---- N:2 F:   05-JAN-1980 00:00:00
+ ---- N:2 F:   1980
  ---- M:2 E:   4
  4   / 2:  2222.00  3222.00  4222.00
  6   / 3:  2322.00  3322.00  4322.00
@@ -68479,7 +68628,7 @@ list veven
  4   / 2:  2242.00  3242.00  4242.00
  6   / 3:  2342.00  3342.00  4342.00
  8   / 4:  2442.00  3442.00  4442.00
- ---- N:3 F:   07-JAN-1980 00:00:00
+ ---- N:3 F:   1980
  ---- M:2 E:   4
  4   / 2:  2223.00  3223.00  4223.00
  6   / 3:  2323.00  3323.00  4323.00
@@ -68492,7 +68641,7 @@ list veven
  4   / 2:  2243.00  3243.00  4243.00
  6   / 3:  2343.00  3343.00  4343.00
  8   / 4:  2443.00  3443.00  4443.00
- ---- N:4 F:   09-JAN-1980 00:00:00
+ ---- N:4 F:   1980
  ---- M:2 E:   4
  4   / 2:  2224.00  3224.00  4224.00
  6   / 3:  2324.00  3324.00  4324.00
@@ -68510,7 +68659,7 @@ list v1234
              SUBSET   : 3 by 3 by 3 by 3 points (X-Y-E-FORECAST)
               5        7        9     
               3        4        5
- ---- N:3 F:   06-JAN-1980 00:00:00
+ ---- N:3 F:   1980
  ---- M:3 E:   5
  5   / 3:  2777.50  3777.50  4777.50
  7   / 4:  2877.50  3877.50  4877.50
@@ -68523,7 +68672,7 @@ list v1234
  5   / 3:  2797.50  3797.50  4797.50
  7   / 4:  2897.50  3897.50  4897.50
  9   / 5:  2997.50  3997.50  4997.50
- ---- N:4 F:   08-JAN-1980 00:00:00
+ ---- N:4 F:   1980
  ---- M:3 E:   5
  5   / 3:  2778.50  3778.50  4778.50
  7   / 4:  2878.50  3878.50  4878.50
@@ -68536,7 +68685,7 @@ list v1234
  5   / 3:  2798.50  3798.50  4798.50
  7   / 4:  2898.50  3898.50  4898.50
  9   / 5:  2998.50  3998.50  4998.50
- ---- N:5 F:   10-JAN-1980 00:00:00
+ ---- N:5 F:   1980
  ---- M:3 E:   5
  5   / 3:  2779.50  3779.50  4779.50
  7   / 4:  2879.50  3879.50  4879.50
@@ -68556,8 +68705,8 @@ stat veven
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68580,8 +68729,8 @@ stat v1[g=even]-veven, v1
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68596,8 +68745,8 @@ stat v1[g=even]-veven, v1
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68613,8 +68762,8 @@ stat v2[g=even]-veven, v2
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68629,8 +68778,8 @@ stat v2[g=even]-veven, v2
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68646,8 +68795,8 @@ stat v3[g=even]-veven, v3
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68662,8 +68811,8 @@ stat v3[g=even]-veven, v3
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68679,8 +68828,8 @@ stat v4[g=even]-veven, v4
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68695,8 +68844,8 @@ stat v4[g=even]-veven, v4
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68712,8 +68861,8 @@ stat v12[g=even]-veven, v12
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68728,8 +68877,8 @@ stat v12[g=even]-veven, v12
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68745,8 +68894,8 @@ stat v13[g=even]-veven, v13
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68761,8 +68910,8 @@ stat v13[g=even]-veven, v13
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68778,8 +68927,8 @@ stat v14[g=even]-veven, v14
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68794,8 +68943,8 @@ stat v14[g=even]-veven, v14
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68811,8 +68960,8 @@ stat v23[g=even]-veven, v23
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68827,8 +68976,8 @@ stat v23[g=even]-veven, v23
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68844,8 +68993,8 @@ stat v24[g=even]-veven, v24
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68860,8 +69009,8 @@ stat v24[g=even]-veven, v24
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68877,8 +69026,8 @@ stat v33[g=even]-veven, v33
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68893,8 +69042,8 @@ stat v33[g=even]-veven, v33
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68910,8 +69059,8 @@ stat v234[g=even]-veven, v234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68926,8 +69075,8 @@ stat v234[g=even]-veven, v234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68943,8 +69092,8 @@ stat v134[g=even]-veven, v134
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68959,8 +69108,8 @@ stat v134[g=even]-veven, v134
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68976,8 +69125,8 @@ stat v124[g=even]-veven, v124
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68992,8 +69141,8 @@ stat v124[g=even]-veven, v124
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69009,8 +69158,8 @@ stat v123[g=even]-veven, v123
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69025,8 +69174,8 @@ stat v123[g=even]-veven, v123
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69042,8 +69191,8 @@ stat v1234[g=even]-veven, v1234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69058,8 +69207,8 @@ stat v1234[g=even]-veven, v1234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69083,8 +69232,8 @@ stat v1[g=even]-veven, v1
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69099,8 +69248,8 @@ stat v1[g=even]-veven, v1
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69116,8 +69265,8 @@ stat v2[g=even]-veven, v2
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69132,8 +69281,8 @@ stat v2[g=even]-veven, v2
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69149,8 +69298,8 @@ stat v3[g=even]-veven, v3
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69165,8 +69314,8 @@ stat v3[g=even]-veven, v3
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69182,8 +69331,8 @@ stat v4[g=even]-veven, v4
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69198,8 +69347,8 @@ stat v4[g=even]-veven, v4
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69215,8 +69364,8 @@ stat v12[g=even]-veven, v12
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69231,8 +69380,8 @@ stat v12[g=even]-veven, v12
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69248,8 +69397,8 @@ stat v13[g=even]-veven, v13
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69264,8 +69413,8 @@ stat v13[g=even]-veven, v13
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69281,8 +69430,8 @@ stat v14[g=even]-veven, v14
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69297,8 +69446,8 @@ stat v14[g=even]-veven, v14
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69314,8 +69463,8 @@ stat v23[g=even]-veven, v23
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69330,8 +69479,8 @@ stat v23[g=even]-veven, v23
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69347,8 +69496,8 @@ stat v24[g=even]-veven, v24
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69363,8 +69512,8 @@ stat v24[g=even]-veven, v24
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69380,8 +69529,8 @@ stat v33[g=even]-veven, v33
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69396,8 +69545,8 @@ stat v33[g=even]-veven, v33
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69413,8 +69562,8 @@ stat v234[g=even]-veven, v234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69429,8 +69578,8 @@ stat v234[g=even]-veven, v234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69446,8 +69595,8 @@ stat v134[g=even]-veven, v134
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69462,8 +69611,8 @@ stat v134[g=even]-veven, v134
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69479,8 +69628,8 @@ stat v124[g=even]-veven, v124
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69495,8 +69644,8 @@ stat v124[g=even]-veven, v124
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69512,8 +69661,8 @@ stat v123[g=even]-veven, v123
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69528,8 +69677,8 @@ stat v123[g=even]-veven, v123
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69545,8 +69694,8 @@ stat v1234[g=even]-veven, v1234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69561,8 +69710,8 @@ stat v1234[g=even]-veven, v1234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -70646,7 +70795,7 @@ stat temp[g=g5day] - temp[g=g5day at ave]
              DEPTH (m): 5
              TIME: 21-JAN-1982 00:00 (interpolated)
              E: 1 to 2
-             FORECAST: 23-JAN-1982 00:00:00 to 24-JAN-1982 00:0
+             FORECAST: 1982 to 1982
              DATA SET: ./gtsa056_1_ef.nc
  
  Total # of data points: 120 (5*6*1*1*2*2)
@@ -70678,7 +70827,7 @@ LIST temp[g=g5day at ave]
              TIME     : 21-JAN-1982 00:00 (interpolated)
                129.5W   128.5W   127.5W   126.5W   125.5W  
                101      102      103      104      105
- ---- N:1 F:   23-JAN-1982 00:00:00
+ ---- N:1 F:   1982
  ---- M:1 E:   1
  1.5N  / 46:  32.3553  32.3552  32.5032  32.8652  33.3285
  1.17N / 45:  32.1766  32.1710  32.2834  32.5970  33.0244
@@ -70693,7 +70842,7 @@ LIST temp[g=g5day at ave]
  0.5N  / 43:  37.9306  37.8902  37.8887  38.0374  38.3408
  0.17N / 42:  37.8944  37.8343  37.7825  37.8263  38.0336
  0.17S / 41:  37.9538  37.8657  37.7716  37.7285  37.8282
- ---- N:2 F:   23-JAN-1982 20:00:00
+ ---- N:2 F:   1982
  ---- M:1 E:   1
  1.5N  / 46:  37.7553  37.7552  37.9032  38.2652  38.7285
  1.17N / 45:  37.5766  37.5710  37.6834  37.9970  38.4244
@@ -70727,7 +70876,7 @@ LIST temp[g=g5day]
              TIME     : 21-JAN-1982 00:00 (interpolated)
                129.5W   128.5W   127.5W   126.5W   125.5W  
                101      102      103      104      105
- ---- N:1 F:   23-JAN-1982 00:00:00
+ ---- N:1 F:   1982
  ---- M:1 E:   1
  1.5N  / 46:  34.3553  34.3552  34.5032  34.8652  35.3285
  1.17N / 45:  34.1766  34.1710  34.2834  34.5970  35.0244
@@ -70742,7 +70891,7 @@ LIST temp[g=g5day]
  0.5N  / 43:  39.9306  39.8902  39.8887  40.0374  40.3408
  0.17N / 42:  39.8944  39.8343  39.7825  39.8263  40.0336
  0.17S / 41:  39.9538  39.8657  39.7716  39.7285  39.8282
- ---- N:2 F:   23-JAN-1982 20:00:00
+ ---- N:2 F:   1982
  ---- M:1 E:   1
  1.5N  / 46:  36.0220  36.0219  36.1698  36.5318  36.9952
  1.17N / 45:  35.8433  35.8377  35.9501  36.2637  36.6910
@@ -70782,7 +70931,7 @@ plot temp
  -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
- strip --> EX#1[F=23-JAN-198200:00:00 at ITP,D=1]
+ strip --> EX#1[F=1982 at ITP,D=1]
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
@@ -70791,7 +70940,7 @@ plot temp
  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[F=23-JAN-198200:00:00 at ITP,D=1]
+ doing --> TEMP[F=1982 at ITP,D=1]
 setting up plot
 PPL plot 863  complete
 plot/over temp[g=g5day]
@@ -70858,14 +71007,14 @@ plot temp
  -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
- strip --> EX#1[F=23-JAN-198200:00:00 at ITP,D=1]
+ strip --> EX#1[F=1982 at ITP,D=1]
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
  eval    EX#1     C:  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[F=23-JAN-198200:00:00 at ITP,D=1]
+ doing --> TEMP[F=1982 at ITP,D=1]
 setting up plot
 PPL plot 867  complete
 plot/over temp[g=g5day]
@@ -71199,24 +71348,24 @@ list a2[ge=eoffset at var, gf=fax4day at var]
              VARIABLE : Variance of _E[GE=E2PT]+_F[GF=F2PT]
                         regrid: 1 delta on E at VAR, 96 hour on F at VAR
              SUBSET   : 2 by 16 points (E-FORECAST)
-                            1.1          2.1     
-                            1            2
- 15-JAN-1982 00 /  1:         ....         ....
- 19-JAN-1982 00 /  2:         ....         ....
- 23-JAN-1982 00 /  3:         ....  5.16988E-27
- 27-JAN-1982 00 /  4:         ....         ....
- 31-JAN-1982 00 /  5:         ....         ....
- 04-FEB-1982 00 /  6:         ....         ....
- 08-FEB-1982 00 /  7:         ....         ....
- 12-FEB-1982 00 /  8:         ....         ....
- 16-FEB-1982 00 /  9:         ....         ....
- 20-FEB-1982 00 / 10:         ....         ....
- 24-FEB-1982 00 / 11:         ....         ....
- 28-FEB-1982 00 / 12:         ....         ....
- 04-MAR-1982 00 / 13:         ....         ....
- 08-MAR-1982 00 / 14:         ....         ....
- 12-MAR-1982 00 / 15:         ....         ....
- 16-MAR-1982 00 / 16:         ....         ....
+                          1.1       2.1    
+                           1         2
+ 15-JAN-1982 00 /  1:      ....      ....
+ 19-JAN-1982 00 /  2:      ....      ....
+ 23-JAN-1982 00 /  3:      ....  0.000000
+ 27-JAN-1982 00 /  4:      ....      ....
+ 31-JAN-1982 00 /  5:      ....      ....
+ 04-FEB-1982 00 /  6:      ....      ....
+ 08-FEB-1982 00 /  7:      ....      ....
+ 12-FEB-1982 00 /  8:      ....      ....
+ 16-FEB-1982 00 /  9:      ....      ....
+ 20-FEB-1982 00 / 10:      ....      ....
+ 24-FEB-1982 00 / 11:      ....      ....
+ 28-FEB-1982 00 / 12:      ....      ....
+ 04-MAR-1982 00 / 13:      ....      ....
+ 08-MAR-1982 00 / 14:      ....      ....
+ 12-MAR-1982 00 / 15:      ....      ....
+ 16-MAR-1982 00 / 16:      ....      ....
  
 ! 1/00 additions to check details of @MIN, at MAX bevavior
  
@@ -71433,7 +71582,7 @@ GO bn_reset
 cancel mode verify
 GO bn_aggregate_e
 ! bn_aggregate_e.jnl
-! using the DEFINE ATTRIBUTE/E command
+! using the DEFINE DATA/AGGREGATE/E command
 ! Datasets share sst, but only ens1 has airt.
  
 set mode diag
@@ -71444,7 +71593,7 @@ define data/agg/title fourfiles = ens1, ens3, ens2, ens4
 ! The grid of SST is known.
 show data fourfiles
      currently SET data sets:
-    5> FOURFILES  (default)  Ferret-defined Ensemble dataset
+    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       ...
  
@@ -71495,7 +71644,7 @@ define data/agg fourfiles = ens1, ens3, ens2, ens4
  allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME13    NORMAL    NORMAL
 show data fourfiles
      currently SET data sets:
-    5> FOURFILES  (default)  Ferret-defined Ensemble dataset
+    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       ...
  AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      1:4       ...
@@ -71601,7 +71750,7 @@ define data/agg 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 dataset
+    3> WINDY  (default)  Ferret-defined 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       ...
@@ -71634,7 +71783,7 @@ define data/agg 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 dataset
+    3> WINDY  (default)  Ferret-defined 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       ...
@@ -71681,7 +71830,8 @@ sh command define
  DEFINE SYMBOL
  DEFINE ATTRIBUT/D/TYPE/OUTPUT/QUIET
  DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/E/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/E/F/TITLE/QUIET/HIDE
+ DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
 sh command show
  SHOW/ALL
  SHOW WINDOW/ALL
@@ -71693,7 +71843,7 @@ sh command show
        /HIDDEN
  SHOW MODE/ALL
  SHOW MOVIE/ALL
- SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/SIGMA
+ SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ
        /CURVILIN
  SHOW COMMANDS/ALL
  SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
@@ -71714,7 +71864,7 @@ ensemble/HIDE/title="ensemble with hidden members" fourfiles = ens1, ens2, ens3,
 ! should just show the ensemble set
 sh dat
      currently SET data sets:
-    5> FOURFILES  (default)  Ferret-defined Ensemble dataset
+    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       ...
  
@@ -71753,7 +71903,7 @@ sh dat/hidden
  name     title                             I         J         K         L         M         N
  SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
  
-    5> FOURFILES  (default)  Ferret-defined Ensemble dataset
+    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       ...
  
@@ -71796,7 +71946,7 @@ sh dat
  name     title                             I         J         K         L         M         N
  SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
  
-    5> MY_ENS  (default)  Ferret-defined Ensemble dataset
+    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       ...
  
@@ -71825,7 +71975,7 @@ ensemble/HIDE/title="uvars in dset 2"  my_ens = 1,2,3,4
 ! members hidden, showing only ensemble.
 sh dat
      currently SET data sets:
-    5> MY_ENS  (default)  Ferret-defined Ensemble dataset
+    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       ...
  
@@ -71860,15 +72010,15 @@ ensemble/HIDE/title="ensemble with hidden members" more = ens2, ens3, ens4
 ! Shows all the ensembles
 sh dat
      currently SET data sets:
-    5> FOURFILES     Ferret-defined Ensemble dataset
+    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 dataset
+    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 dataset
+    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       ...
  
@@ -72360,7 +72510,7 @@ list temp  ! values should be  28.69, 28.63
              VARIABLE : Potential temperature (degrees C)
              FILENAME : append_pack.nc
              SUBSET   : 2 points (TIME)
-             LONGITUDE: 179.9E(179.9)
+             LONGITUDE: 180E(179.9)
              LATITUDE : 0.05S
              DEPTH (m): 2.5
                       179.95E  
@@ -72380,7 +72530,7 @@ list temp  ! values should match those above.
              VARIABLE : Potential temperature (degrees C)
              FILENAME : a.nc
              SUBSET   : 2 points (TIME)
-             LONGITUDE: 179.9E(179.9)
+             LONGITUDE: 180E(179.9)
              LATITUDE : 0.05S
              DEPTH (m): 2.5
                       179.95E  
@@ -72425,7 +72575,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.93   29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72476,7 +72626,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.93   29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72515,7 +72665,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.93   29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72554,7 +72704,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.93   29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72585,7 +72735,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.93   29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72617,7 +72767,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.93   29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72678,7 +72828,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.93   29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72723,7 +72873,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.93   29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72778,7 +72928,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.93   29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72814,7 +72964,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.93   29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72850,7 +73000,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.93   29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72886,7 +73036,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        24   T       FERRET V6.93   29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72918,7 +73068,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.93   29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -73148,7 +73298,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.93   29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          FLOAT     units           CHAR        13   T       degrees_north
@@ -73180,7 +73330,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.93   29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          FLOAT     units           CHAR        13   T       degrees_north
@@ -73221,7 +73371,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.93   29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -73259,7 +73409,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.93   29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -73284,7 +73434,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.93   29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             INT       units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -73309,7 +73459,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        24   T       FERRET V6.93   29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -73525,11 +73675,11 @@ GO err684_tax_fcns
  list/L=3:7 tax_yearfrac(var, var)
              VARIABLE : TAX_YEARFRAC(VAR, VAR)
              SUBSET   : 5 points (TIME)
- 08-OCT-2006 22 / 3:  0.7699
- 13-OCT-2006 23 / 4:  0.7836
- 18-OCT-2006 22 / 5:  0.7973
- 23-OCT-2006 21 / 6:  0.8110
- 28-OCT-2006 22 / 7:  0.8247
+ 08-OCT-2006 22 / 3:  0.7725
+ 13-OCT-2006 23 / 4:  0.7862
+ 18-OCT-2006 22 / 5:  0.7998
+ 23-OCT-2006 21 / 6:  0.8134
+ 28-OCT-2006 22 / 7:  0.8272
  
  list/L=3:7 tax_year(var, var)
              VARIABLE : TAX_YEAR(VAR, VAR)
@@ -73575,8 +73725,8 @@ GO err684_line_plot_zero
 plot {0,0,0}
 sh sym yaxis*
 YAXIS_REVERSED = "0"
-YAXIS_MIN = "-1.0000000"
-YAXIS_MAX = "1.000000"
+YAXIS_MIN = "-1.00000000"
+YAXIS_MAX = "1.00000000"
  
  
 GO bn_reset
@@ -73745,17 +73895,17 @@ variables:
 		A:missing_value = -1.e+34 ;
 		A:_FillValue = -1.e+34 ;
 		A:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
-		A:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
+		A:long_name_mod = "X=20E:20E(380), Y=90S:90N" ;
 		A:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
  TIME10 = 366, 1096.485, 1826.97 ;
 
- A = -0.0994369294629927, -0.0415768591404557, 0.141480238197389 ;
+ A = -0.0994369294620938, -0.0415768591395995, 0.141480238198149 ;
 }
  
 save/clob/file=aa.nc sst[x=@ave,y=@ave]-sst[x=@ave,y=@ave,t=@ave]
@@ -73774,17 +73924,17 @@ variables:
 		E410:missing_value = -1.e+34 ;
 		E410:_FillValue = -1.e+34 ;
 		E410:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
-		E410:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
+		E410:long_name_mod = "X=20E:20E(380), Y=90S:90N" ;
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
  TIME10 = 366, 1096.485, 1826.97 ;
 
- E410 = -0.0994369294629927, -0.0415768591404557, 0.141480238197389 ;
+ E410 = -0.0994369294620938, -0.0415768591395995, 0.141480238198149 ;
 }
  
 ! Double check the missing-value matches what is written.
@@ -73793,7 +73943,7 @@ save/clob/file=aa.nc/y=-81:-75 sst[x=@ave]-sst[x=@ave,t=@ave]
 use aa.nc
 list e410
              VARIABLE : SST[X=@AVE]-SST[X=@AVE,T=@AVE]
-                        X=20E:20E(380), T=01-JAN 00:45:01-APR 08:12
+                        X=20E:20E(380)
              FILENAME : aa.nc
              SUBSET   : 4 by 3 points (LATITUDE-TIME)
                     81S    79S    77S    75S   
@@ -73825,11 +73975,11 @@ variables:
 		E410:missing_value = -1.e+34f ;
 		E410:_FillValue = -1.e+34f ;
 		E410:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
-		E410:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
+		E410:long_name_mod = "X=20E:20E(380), Y=90S:90N" ;
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -73842,7 +73992,7 @@ save/clob/file=aa.nc/outtype=float/y=-81:-75 sst[x=@ave]-sst[x=@ave,t=@ave]
 use aa.nc
 list e410
              VARIABLE : SST[X=@AVE]-SST[X=@AVE,T=@AVE]
-                        X=20E:20E(380), T=01-JAN 00:45:01-APR 08:12
+                        X=20E:20E(380)
              FILENAME : aa.nc
              SUBSET   : 4 by 3 points (LATITUDE-TIME)
                     81S    79S    77S    75S   
@@ -73997,8 +74147,12 @@ let/title="tic labels on dependent axis" var = {\
 1.6897,1.687,1.6843,1.6817,1.679,1.6765,1.676,1.676}
  
 plot/line/sym/title="Vert axis labels should be 1.675 thru 1.715" var
-can mode meta
+cancel mode meta
  
+! rename the metafile. Else we get weird contents in axticlabel.plt
+! once the whole benchmark suite has finished. (why?)
+set mode meta metafile.plt
+cancel mode meta
  
 GO bn_reset
 cancel mode verify
@@ -74394,8 +74548,8 @@ variables:
 		DDAT_ORIG:long_name = "DDAT[GZ=ZAXIS_ORIG at ASN]" ;
 
 // global attributes:
-		:history = "Wed Oct 29 15:57:28 2014: ncks -h -A -h z1.nc append_to_this.nc\n",
-			"FERRET V6.93   29-Oct-14" ;
+		: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" ;
 		:Conventions = "CF-1.6" ;
 		:NCO = "4.4.6" ;
 }
@@ -74429,7 +74583,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -74460,7 +74614,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -74522,7 +74676,7 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74550,7 +74704,7 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74711,6 +74865,7 @@ GO bn_vtree
 ! bn_tree.jnl
  
 ! 11/2013 -- demonstrate SHOW VARIABLE/TREE and RETRUN=STATUS
+! 12/14 update to test regridding output using bn_vtree_regrid.jnl
  
 CANCEL DATA/ALL
 ! pure abstract variable -- no dataset
@@ -74791,16 +74946,16 @@ vtree=all a
    in default dataset my_file_vars
    A = FV1[D=1] - FV1[D=2]
      FV1
-     FV1[d=other_file_var]
+     FV1[d=other_file_vars]
 vtree=all /d=1 a
    in default dataset my_file_vars
    A = FV1[D=1] - FV1[D=2]
      FV1
-     FV1[d=other_file_var]
+     FV1[d=other_file_vars]
 vtree=all /d=2 a
    in default dataset other_file_vars
    A = FV1[D=1] - FV1[D=2]
-     FV1[d=my_file_var]
+     FV1[d=my_file_vars]
      FV1
 ********************************
  
@@ -74808,12 +74963,12 @@ vtree=all /d=2 a
 go bn_vtree.sub noexist
 /TREE=ALL
    in default dataset my_file_vars
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
 /TREE=USER
    in default dataset my_file_vars
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
 /TREE=FILE
-   NOEXIST  (unknown variable)
+   *unknown variable: NOEXIST
 the problem is UNKNOWN VARIABLE: NOEXIST
 ************************
  
@@ -74821,12 +74976,12 @@ the problem is UNKNOWN VARIABLE: NOEXIST
 go bn_vtree.sub v[d=noexist]
 /TREE=ALL
    in default dataset my_file_vars
-   V[D=NOEXIST] ??                           <== UNKNOWN DATASET ******
+   V[D=NOEXIST] ??			<== UNKNOWN DATASET ******
 /TREE=USER
    in default dataset my_file_vars
-   V[D=NOEXIST] ??                           <== UNKNOWN DATASET ******
+   V[D=NOEXIST] ??			<== UNKNOWN DATASET ******
 /TREE=FILE
-   V[D=NOEXIST]  (unknown dataset)
+   *unknown dataset: V[D=NOEXIST]
 the problem is UNKNOWN DATASET: V[D=NOEXIST]
 ************************
  
@@ -74834,12 +74989,12 @@ the problem is UNKNOWN DATASET: V[D=NOEXIST]
 go bn_vtree.sub novar[d=nodset]
 /TREE=ALL
    in default dataset my_file_vars
-   NOVAR[D=NODSET] ??                           <== UNKNOWN DATASET ******
+   NOVAR[D=NODSET] ??			<== UNKNOWN DATASET ******
 /TREE=USER
    in default dataset my_file_vars
-   NOVAR[D=NODSET] ??                           <== UNKNOWN DATASET ******
+   NOVAR[D=NODSET] ??			<== UNKNOWN DATASET ******
 /TREE=FILE
-   NOVAR[D=NODSET]  (unknown dataset)
+   *unknown dataset: NOVAR[D=NODSET]
 the problem is UNKNOWN DATASET: NOVAR[D=NODSET]
 ************************
  
@@ -74848,13 +75003,13 @@ go bn_vtree.sub b
 /TREE=ALL
    in default dataset my_file_vars
    B = NOEXIST
-     NOEXIST ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST ??			<== UNKNOWN VARIABLE ******
 /TREE=USER
    in default dataset my_file_vars
    B = NOEXIST
-     NOEXIST ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST ??			<== UNKNOWN VARIABLE ******
 /TREE=FILE
-   NOEXIST  (unknown variable)
+   *unknown variable: NOEXIST
 the problem is UNKNOWN VARIABLE: NOEXIST
 ************************
  
@@ -74880,11 +75035,13 @@ go bn_vtree.sub fv1z
    in default dataset my_file_vars
    FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
      FV1
+       regrid to ZPTS = Z[Z=0:500:100]
        FVZ
      FVX
 /TREE=USER
    in default dataset my_file_vars
    FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
+       regrid to ZPTS = Z[Z=0:500:100]
 /TREE=FILE
    FV1[d=my_file_vars]
    FVZ[d=my_file_vars]
@@ -74900,11 +75057,13 @@ go bn_vtree.sub fv1z
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
      FV1
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]
      FVX
 /TREE=USER
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]
 /TREE=FILE
    FV1[d=my_file_vars]
@@ -74919,12 +75078,14 @@ go bn_vtree.sub fv1z
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
      FV1
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
          FVZ
      FVX
 /TREE=USER
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
 /TREE=FILE
    FV1[d=my_file_vars]
@@ -74946,7 +75107,7 @@ go bn_vtree.sub fv1z
    FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
        NOEXIST   (unknown auxiliary variable)
 /TREE=FILE
-   NOEXIST  (unknown auxiliary variable)
+   *unknown auxiliary variable: NOEXIST
    FVX[d=my_file_vars]
 the problem is UNKNOWN AUXILIARY VARIABLE: NOEXIST
 ************************
@@ -74957,17 +75118,19 @@ go bn_vtree.sub fv1z
 /TREE=ALL
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
-     NOEXIST[GZ(DEPTH)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(DEPTH)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
          FVZ
      FVX
 /TREE=USER
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
-     NOEXIST[GZ(DEPTH)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(DEPTH)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
 /TREE=FILE
-   NOEXIST[GZ(DEPTH)=ZPTS]  (unknown variable)
+   *unknown variable: NOEXIST[GZ(DEPTH)=ZPTS]
    FVZ[d=my_file_vars]
    FVX[d=my_file_vars]
 the problem is UNKNOWN VARIABLE: NOEXIST[GZ(DEPTH)=ZPTS]
@@ -74979,17 +75142,19 @@ go bn_vtree.sub fv1z
 /TREE=ALL
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
-     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        UNKNOWN_AUX   (unknown auxiliary variable)
      FVX
 /TREE=USER
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
-     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        UNKNOWN_AUX   (unknown auxiliary variable)
 /TREE=FILE
-   NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]  (unknown variable)
-   UNKNOWN_AUX  (unknown auxiliary variable)
+   *unknown variable: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
+   *unknown auxiliary variable: UNKNOWN_AUX
    FVX[d=my_file_vars]
 the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
 ************************
@@ -75000,9 +75165,9 @@ go bn_vtree.sub fv1
 /TREE=ALL
    in default dataset MY_AGG
    FV1   (aggregate variable)
-     FV1[d=my_file_var]
-     FV1[d=other_file_var]
-     FV1[d=another_file_var]
+     FV1[d=my_file_vars]
+     FV1[d=other_file_vars]
+     FV1[d=another_file_vars]
 /TREE=USER
    in default dataset MY_AGG
    FV1   (aggregate variable)
@@ -75022,16 +75187,16 @@ go bn_vtree.sub fvx
 /TREE=ALL
    in default dataset MY_UVAR_AGG
    FVX   (aggregate variable)
-     FVX[d=my_file_var]
-     FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
-       FV1[d=other_file_var]
-     FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
-       FV1[d=another_file_var]
+     FVX[d=my_file_vars]
+     FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+       FV1[d=other_file_vars]
+     FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+       FV1[d=another_file_vars]
 /TREE=USER
    in default dataset MY_UVAR_AGG
    FVX   (aggregate variable)
-     FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
-     FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+     FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+     FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
 /TREE=FILE
  
    FVX[d=my_file_vars]
@@ -75050,30 +75215,30 @@ go bn_vtree.sub p0    ! recursion
 /TREE=ALL
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = P1 + S3
            P1 =   *** WARNING: RECURSIVE DEFINITION.  See above
-           S3 ??                           <== UNKNOWN VARIABLE ******
+           S3 ??			<== UNKNOWN VARIABLE ******
 /TREE=USER
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = P1 + S3
            P1 =   *** WARNING: RECURSIVE DEFINITION.  See above
-           S3 ??                           <== UNKNOWN VARIABLE ******
+           S3 ??			<== UNKNOWN VARIABLE ******
 /TREE=FILE
-   S1  (unknown variable)
-   S2  (unknown variable)
-   S3  (unknown variable)
-   S3  (unknown variable)
+   *unknown variable: S1
+   *unknown variable: S2
+   *unknown variable: S3
+   *unknown variable: S3
 the problem is ILLEGAL RECURSIVE VARIABLES: P1
 ************************
 let p3 = s1 + S3
@@ -75081,31 +75246,31 @@ go bn_vtree.sub p0    ! ok
 /TREE=ALL
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = S1 + S3
-           S1 ??                           <== UNKNOWN VARIABLE ******
-           S3 ??                           <== UNKNOWN VARIABLE ******
+           S1 ??			<== UNKNOWN VARIABLE ******
+           S3 ??			<== UNKNOWN VARIABLE ******
 /TREE=USER
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = S1 + S3
-           S1 ??                           <== UNKNOWN VARIABLE ******
-           S3 ??                           <== UNKNOWN VARIABLE ******
+           S1 ??			<== UNKNOWN VARIABLE ******
+           S3 ??			<== UNKNOWN VARIABLE ******
 /TREE=FILE
-   S1  (unknown variable)
-   S2  (unknown variable)
-   S3  (unknown variable)
-   S1  (unknown variable)
-   S3  (unknown variable)
+   *unknown variable: S1
+   *unknown variable: S2
+   *unknown variable: S3
+   *unknown variable: S1
+   *unknown variable: S3
 the problem is UNKNOWN VARIABLE: S1
 ************************
  
@@ -75127,8 +75292,8 @@ show var/tree/d=my_uvar_agg     uv
    in default dataset MY_UVAR_AGG
    UV = FVX + FVX + FVX
      FVX   (aggregate variable)
-       FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
-       FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+       FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+       FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
 ***************************
  
 ! suppressing duplicates elsewhere in the family tree ("defined above")
@@ -75143,8 +75308,8 @@ go bn_vtree.sub v2
    V2 = V1 + B + A + A
      V1 = A  + B + B^2
        A = FV1[D=1] - FV1[D=2]
-         FV1[d=my_file_var]
-         FV1[d=other_file_var]
+         FV1[d=my_file_vars]
+         FV1[d=other_file_vars]
        B = C
          C = 1
      B =  (defined above)
@@ -75168,8 +75333,8 @@ go bn_vtree.sub v3
    in default dataset MY_UVAR_AGG
    V3 = A + V1 + B + A + A
      A = FV1[D=1] - FV1[D=2]
-       FV1[d=my_file_var]
-       FV1[d=other_file_var]
+       FV1[d=my_file_vars]
+       FV1[d=other_file_vars]
      V1 = A  + B + B^2
        A =  (defined above)
        B = C
@@ -75203,26 +75368,26 @@ go bn_vtree.sub "a, b, c, noexist, d, e, fvx[d=my_file_vars]"
    in default dataset MY_UVAR_AGG
    D = B + C
      B = FV1[D=MY_FILE_VARS]
-       FV1[d=my_file_var]
+       FV1[d=my_file_vars]
      C = 1
    A = F
-     F ??                           <== UNKNOWN VARIABLE ******
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
+     F ??			<== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
    E = 1
-   FVX[d=my_file_var]
+   FVX[d=my_file_vars]
 /TREE=USER
    in default dataset MY_UVAR_AGG
    D = B + C
      B = FV1[D=MY_FILE_VARS]
      C = 1
    A = F
-     F ??                           <== UNKNOWN VARIABLE ******
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
+     F ??			<== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
    E = 1
 /TREE=FILE
-   F  (unknown variable)
+   *unknown variable: F
    FV1[d=my_file_vars]
-   NOEXIST  (unknown variable)
+   *unknown variable: NOEXIST
    FVX[d=my_file_vars]
 the problem is UNKNOWN VARIABLE: F
 ************************
@@ -75237,14 +75402,16 @@ the problem is UNKNOWN VARIABLE: F
 /TREE=ALL
    in default dataset MY_UVAR_AGG
    B = A[G=NOEXIST]
-     A[G=NOEXIST]   (unknown grid)
+     A = I[I=1:5]
+       regrid to NOEXIST ??		<== UNKNOWN GRID ******
 /TREE=USER
    in default dataset MY_UVAR_AGG
    B = A[G=NOEXIST]
-     A[G=NOEXIST]   (unknown grid)
+     A = I[I=1:5]
+       regrid to NOEXIST ??		<== UNKNOWN GRID ******
 /TREE=FILE
-   A[G=NOEXIST]  (unknown grid)
-the problem is UNKNOWN GRID: A[G=NOEXIST]
+   *unknown grid: NOEXIST
+the problem is UNKNOWN GRID: NOEXIST
 ************************
   list b
  
@@ -75260,7 +75427,7 @@ the problem is UNKNOWN GRID: A[G=NOEXIST]
    C = A[X=45S]
      A[X=45S]   *** WARNING: ERROR IN DEFINITION
 /TREE=FILE
-   A[X=45S]   *** WARNING: SYNTAX ERROR
+      *WARNING: syntax error: A[X=45S]
 the problem is ERROR IN EXPRESSION: A[X=45S]
 ************************
   list c
@@ -75277,7 +75444,7 @@ the problem is ERROR IN EXPRESSION: A[X=45S]
    D = A[I=1,,J=2]
      A[I=1,,J=2]   *** WARNING: ERROR IN DEFINITION
 /TREE=FILE
-   A[I=1,,J=2]   *** WARNING: SYNTAX ERROR
+      *WARNING: syntax error: A[I=1,,J=2]
 the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
 ************************
   list d
@@ -75294,7 +75461,7 @@ the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
    E = A[P=1]
      A[P=1]   *** WARNING: ERROR IN DEFINITION
 /TREE=FILE
-   A[P=1]   *** WARNING: SYNTAX ERROR
+      *WARNING: syntax error: A[P=1]
 the problem is ERROR IN EXPRESSION: A[P=1]
 ************************
   list e
@@ -75327,6 +75494,528 @@ show var/tree a
    in default dataset MY_UVAR_AGG
    A = ..HISTORY[D=1]
  
+! *****
+! 12/14 addition to test regridding dependencies
+go bn_vtree_regrid
+! bn_vtree_regrid.jnl
+! exercise 12/14 enhancements to display regrid target on a separate line
+! updated 1/26/15 to exercise multiple regrid target outputs
+! updated 2/23/15 to report target of regrid even when aux regridding occurs
+ 
+! case 1: target grid known,   regridded variable known
+let myvar = 1           ! var to be regridded is known
+let gvar = x[x=1:5]    ! target regridding var is known
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree a
+   in default dataset MY_UVAR_AGG
+   A = MYVAR[G=GVAR] + UNVAR + KVAR
+     MYVAR = 1
+       regrid to GVAR = X[X=1:5]
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 2: target grid known,   regridded variable unknown
+canc var/all
+! myvar unknown
+let gvar = x[x=1:5]    ! target regridding var is known
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree a
+   in default dataset MY_UVAR_AGG
+   A = MYVAR[G=GVAR] + UNVAR + KVAR
+     MYVAR[G=GVAR] ??			<== UNKNOWN VARIABLE ******
+       regrid to GVAR = X[X=1:5]
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 3: target grid unknown, regridded variable known
+canc var/all
+let myvar = 1           ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree a
+   in default dataset MY_UVAR_AGG
+   A = MYVAR[G=GVAR] + UNVAR + KVAR
+     MYVAR = 1
+       regrid to GVAR ??		<== UNKNOWN GRID ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 4: target grid unknown, regridded variable unknown
+canc var/all
+! myvar unknown
+! gvar  unknown
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree a
+   in default dataset MY_UVAR_AGG
+   A = MYVAR[G=GVAR] + UNVAR + KVAR
+     MYVAR[G=GVAR] ??			<== UNKNOWN VARIABLE ******
+       regrid to GVAR ??		<== UNKNOWN GRID ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! **************************************
+! same tests but now with a dataset named with the target grid
+use coads_climatology
+use levitus_climatology   ! default to d=2
+ 
+! case 1: target grid known,   regridded variable known
+canc var/all
+let myvar = 1           ! var to be regridded is known
+let a = myvar[g=sst[d=1]] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree=all a
+   in default dataset levitus_climatology
+   A = MYVAR[G=SST[D=1]] + UNVAR + KVAR
+     MYVAR = 1
+       regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 2: target grid known,   regridded variable unknown
+canc var/all
+! myvar unknown
+let a = myvar[g=sst[d=1]] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree=all a
+   in default dataset levitus_climatology
+   A = MYVAR[G=SST[D=1]] + UNVAR + KVAR
+     MYVAR[G=SST[D=1]] ??			<== UNKNOWN VARIABLE ******
+       regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 3a: target grid unknown, regridded variable known
+canc var/all
+let myvar = 1           ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=gvar[d=1]] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree=all a
+   in default dataset levitus_climatology
+   A = MYVAR[G=GVAR[D=1]] + UNVAR + KVAR
+     MYVAR = 1
+       regrid to GVAR[D=1] ??		<== UNKNOWN GRID ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 3b: target grid unknown cuz of dataset, regridded variable known
+canc var/all
+let myvar = 1           ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=sst[d=bad_dset]] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree=all a
+   in default dataset levitus_climatology
+   A = MYVAR[G=SST[D=BAD_DSET]] + UNVAR + KVAR
+     MYVAR[G=SST[D=BAD_DSET]] ??			<== UNKNOWN DATASET ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 4: target grid unknown, regridded variable unknown
+canc var/all
+! myvar unknown
+! gvar  unknown
+let a = myvar[g=gvar[d=1]] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree=all a
+   in default dataset levitus_climatology
+   A = MYVAR[G=GVAR[D=1]] + UNVAR + KVAR
+     MYVAR[G=GVAR[D=1]] ??			<== UNKNOWN VARIABLE ******
+       regrid to GVAR[D=1] ??		<== UNKNOWN GRID ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! *******************
+! file variable listing, only
+canc var/all
+let myvar = 1
+let fvar = airt[d=1]
+let kvar = 1  ! known var
+* /TREE=FILE with know regrid target
+let a = myvar[g=sst[d=1]] + fvar + kvar
+sho var/tree=file a
+   *unknown grid: SST[D=1]
+   *unknown variable: AIRT[D=1]
+ 
+* /TREE=FILE with unknow regrid target
+let a = myvar[g=unknown] + fvar + kvar
+sho var/tree=file a
+   *unknown grid: UNKNOWN
+   *unknown variable: AIRT[D=1]
+ 
+! ********************
+! regridding to multiple targets
+ 
+define axis/x=140e:160e:1 x1
+define axis/y=20s:20n:1   y1
+LET myvar = X[gx=x1] + Y[gy=y1]
+ 
+define axis/y=5s:5n:.5 yp5
+ 
+go bn_vtree.sub myvar[g=temp]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+myvar[g=temp] is ready and AVAILABLE
+************************
+ 
+! second target *is* a named variable
+go bn_vtree.sub myvar[g=temp,gy=sst[d=1]]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: SST[D=1]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+go bn_vtree.sub myvar[gx=temp,gy=sst[d=1]]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: SST[D=1]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+go bn_vtree.sub myvar[gy=sst[d=1],gx=temp]  ! reverse order, only
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+     regrid to TEMP
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   *unknown grid: SST[D=1]
+   regrid to TEMP[d=levitus_climatology]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+ 
+! second target is not a named variable
+go bn_vtree.sub myvar[g=temp,gy=yp5]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+myvar[g=temp,gy=yp5] is ready and AVAILABLE
+************************
+go bn_vtree.sub myvar[gx=temp,gy=yp5]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+myvar[gx=temp,gy=yp5] is ready and AVAILABLE
+************************
+go bn_vtree.sub myvar[g=temp,y=5s:5n:.5]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+myvar[g=temp,y=5s:5n:.5] is ready and AVAILABLE
+************************
+go bn_vtree.sub myvar[g=sst[d=1],y=5s:5n:.5]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   *unknown grid: SST[D=1]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+ 
+! multiple targets, including unknown variables
+go bn_vtree.sub myvar[g=temp,gy=mybad]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=mybad,gy=temp]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+     regrid to TEMP
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   *unknown grid: MYBAD
+   regrid to TEMP[d=levitus_climatology]
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[gy=temp,g=mybad[d=1]]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD[D=1]
+the problem is UNKNOWN GRID: MYBAD[D=1]
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad[d=1],gy=mybad2]! distinct unknown targets
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
+     regrid to MYBAD2 ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
+     regrid to MYBAD2 ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD[D=1]
+   *unknown grid: MYBAD2
+the problem is UNKNOWN GRID: MYBAD[D=1]
+************************
+go bn_vtree.sub myvar[gx=temp,gy=temp,g=mybad[d=1]]  ! dup known targets
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD[D=1]
+the problem is UNKNOWN GRID: MYBAD[D=1]
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad,gy=mybad]      ! dup unknown suppressed
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad[d=2],gy=mybad] ! dup unknown missed
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD[D=2] ??		<== UNKNOWN GRID ******
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD[D=2] ??		<== UNKNOWN GRID ******
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD[D=2]
+   *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD[D=2]
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad,gy='MYBAD']    ! dup unknown missed
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+     regrid to 'MYBAD' ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+     regrid to 'MYBAD' ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD
+   *unknown grid: 'MYBAD'
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=myvar,gy=mybad]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[gy=yp5,g=mybad]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=mybad,y=5s:5n:.5]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+ 
+! 2/15 additions -- auxiliary variable regridding
+USE levitus_climatology
+LET myzvar = Z[Z=100:500:100]
+DEFINE AXIS/z/units=meters zax = myzvar
+SET REGION/i=101:102/j=41:42
+ 
+LET/D=levitus_climatology depth = z[g=temp]+ 0*temp[k=1]
+ 
+! valid aux var and target variable
+LET tempz = temp[gz(depth)=myzvar]
+vtree=all tempz
+   in default dataset levitus_climatology
+   TEMPZ = TEMP[GZ(DEPTH)=MYZVAR]
+     TEMP
+       regrid to MYZVAR = Z[Z=100:500:100]
+       DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+         TEMP
+ 
+! valid aux var.  Target is axis name
+LET tempz1 = temp[gz(depth)=zax]
+vtree=all tempz1
+   in default dataset levitus_climatology
+   TEMPZ1 = TEMP[GZ(DEPTH)=ZAX]
+     TEMP
+       DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+         TEMP
+ 
+! valid aux var.  Target is unknown
+LET tempz2 = temp[gz(depth)=unknown_target]
+vtree=all tempz2
+   in default dataset levitus_climatology
+   TEMPZ2 = TEMP[GZ(DEPTH)=UNKNOWN_TARGET]
+     TEMP
+       regrid to UNKNOWN_TARGET ??		<== UNKNOWN GRID ******
+       DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+         TEMP
+ 
+! --- unknown aux var, valid target ---
+! When an unknown auxiliary variable error occurs it suppresses
+! the reporting of both the variable being regridded and the regrid target
+! The underlying issue is that GET_VAR_CONTEXT (called from is_dependencies.F)
+! can return only a single error status
+! If it contains ferr_unknown_auxvar, then the success or failure of other
+! parts of the context processing are unknown.
+! One could kludge the code to find a way around this, but the violence
+! required is not justified in order to fix this small loss in error reporting.
+LET tempz3 = temp[gz(unknown_aux)=myzvar]
+vtree=all tempz3
+   in default dataset levitus_climatology
+   TEMPZ3 = TEMP[GZ(UNKNOWN_AUX)=MYZVAR]
+       UNKNOWN_AUX   (unknown auxiliary variable)
+ 
+! a syntax error leads to a similar behavior
+LET tempz3a = temp[gz(unknown_aux)=myzvar,SYNTAX_ERROR]
+vtree=all tempz3a
+   in default dataset levitus_climatology
+   TEMPZ3A = TEMP[GZ(UNKNOWN_AUX)=MYZVAR,SYNTAX_ERROR]
+     TEMP[GZ(UNKNOWN_AUX)=MYZVAR,SYNTAX_ERROR]   *** WARNING: ERROR IN DEFINITION
+ 
+! similar behavior here:  the unknown_target does not get reported
+LET tempz4 = temp[gz(unknown_aux)=unknown_target]
+vtree=all tempz4
+   in default dataset levitus_climatology
+   TEMPZ4 = TEMP[GZ(UNKNOWN_AUX)=UNKNOWN_TARGET]
+       UNKNOWN_AUX   (unknown auxiliary variable)
+ 
+ 
+ 
  
 ! *********** v6.86 Additions ***********
 GO bn_reset
@@ -75730,7 +76419,7 @@ variables:
 		LABELS:history = "From http://dunkel.pmel.noaa.gov:8930/thredds/dodsC/data/atmos3.ncml" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75753,7 +76442,7 @@ variables:
 		STRVAR:long_name = "mystrings" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75905,7 +76594,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 : 03-JAN-2000 00:00:00 JULIAN"
+LAB5 = "FORECAST : 2000 JULIAN"
  
 GO bn_reset
 cancel mode verify
@@ -75981,7 +76670,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76011,7 +76700,7 @@ variables:
 		A:history = "From a" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76032,7 +76721,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76053,7 +76742,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76075,7 +76764,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76246,7 +76935,7 @@ show dat
  
  
 ! another error, new name is a user-var
-yes? set var/name=diff w
+set var/name=diff w
  
 SET MODE/LAST ignore
  
@@ -76304,7 +76993,7 @@ GO bn_short.sub tvar ave
 ! short script extracted from bn_negative_t.sub for bn_enter_exit_GO
  
 LIST/nohead/norow $1[t=-5:9@$2]	! neg/pos t endpoints
- !-> LIST/nohead/norow tvar[t=-5:9 at ave]	! neg/pos t endpoints
+ !-> LIST/nohead/norow tvar[t=-5:9 at ave]
    2.000
  
 ! Exit_GO
@@ -76396,11 +77085,11 @@ list/y=3/l=1 temp[x=@std]
 list/y=3/l=1 temp[z=@std,x=@std]
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
-             LONGITUDE: 140W to 122W (standard deviation)
+             LONGITUDE: 140W to 122W (XZ stddev)
              LATITUDE : 3N (interpolated)
-             DEPTH (m): 0 to 100 (standard deviation)
+             DEPTH (m): 0 to 100 (XZ stddev)
              TIME     : 17-AUG-1982 12:00
-          0.1946
+          1.037
  
 GO bn_reset
 cancel mode verify
@@ -76496,7 +77185,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        24   T       FERRET V6.93   29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -76512,7 +77201,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        24   T       FERRET V6.93   29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -76528,7 +77217,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        24   T       FERRET V6.93   29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -76554,7 +77243,7 @@ set axis/name=.fr x_in_meters
  
 set mode/last ignore
  
-! *********** v6.9+ Additions ***********
+! *********** v6.93 Additions ***********
 GO bn_reset
 cancel mode verify
 GO bn691_bug_fixes
@@ -77057,7 +77746,7 @@ def axis/z=1:20:1 zaxis
 define axis/t=1-jan-2000:1-jan-2005:1/units=days  longtime
 let bigvar = x[gx=xaxis]+y[gy=yaxis] + z[gz=zaxis] + t[gt=longtime]
 sh grid bigvar
-    GRID (G085)
+    GRID (G103)
  name       axis              # pts   start                end
  XAXIS     X                  360 r   1                    360
  YAXIS     Y                  180 r   1                    180
@@ -77070,7 +77759,7 @@ load bigvar
 ! also was an incorrect size.
 define axis/t=1-jan-2000:1-jan-2010:1/units=days  longtime
 sh grid bigvar
-    GRID (G085)
+    GRID (G103)
  name       axis              # pts   start                end
  XAXIS     X                  360 r   1                    360
  YAXIS     Y                  180 r   1                    180
@@ -77362,10 +78051,12 @@ GO bn_vtree.sub c
 /TREE=ALL
    C = B2[GT=A]
      B2 = A
+       regrid to A = T[GT=1:2:1]
        A = T[GT=1:2:1]
 /TREE=USER
    C = B2[GT=A]
      B2 = A
+       regrid to A = T[GT=1:2:1]
        A = T[GT=1:2:1]
 /TREE=FILE
 c is ready and AVAILABLE
@@ -77403,6 +78094,8 @@ cancel mode verify
 GO err69_isready_bugs
 ! err69_isready_bugs.jnl
 ! Tickets 2201 and 2215
+! updated error script 12/14 *sh* - to ensure that bench log file
+! has verification of this problem and its fix, as well as the bench error file
  
 ! ticket 2201: isready operation meant we couldn't cancel the second axis
  
@@ -77424,6 +78117,18 @@ can axis xax_isready_1
 can var b
 can axis xax_isready_2
  
+! 12/14 additions:
+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
+show axis xax_isready_1, xax_isready_2   ! did they both get canceled?
+ name       axis              # pts   start                end
+ 
 ! Ticket 2215, only with an unreleased Ferret; the first fix to 2201.
  
 let a = x[gx=1:3:1]
@@ -77440,6 +78145,19 @@ m
  
 GO bn_reset
 cancel mode verify
+GO err691_substring_arg
+! err693_substring_arg
+! ACM 12/10/2014
+! ticket 2210. Argument checking was not done for the SUBSTRING function
+ 
+set mode ignore
+list substring("hello",1,-2)
+list substring("hello",1,-3)
+ 
+set mode/last ignore
+ 
+GO bn_reset
+cancel mode verify
 GO bn_append_dsg
 ! bn_append_dsg.jnl
 !From SOCAT 3: appending to a dsg file where the new variable is on the obs
@@ -77515,7 +78233,7 @@ variables:
 		:geospatial_lat_max = 29.07 ;
 		:time_coverage_start = "2006-06-10T23:48:00Z" ;
 		:time_converage_end = "2006-06-11T00:12:00Z" ;
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 }
  
 GO bn_reset
@@ -77608,7 +78326,7 @@ variables:
 		LON360:history = "added to test_save_dsg.nc" ;
 
 // global attributes:
-		:history = "CruiseDsgNcFile 1.0FERRET V6.93   29-Oct-14" ;
+		:history = "CruiseDsgNcFile 1.0FERRET V6.951 (beta) 17-Nov-15" ;
 		:featureType = "Trajectory" ;
 		:Conventions = "Some other conventionsCF-1.6" ;
 		:geospatial_lon_min = -92.77 ;
@@ -77635,7 +78353,7 @@ can dat/all; use anew_global.nc
 sh att .
      attributes for dataset: ./anew_global.nc
  ..history = Subset of etopo20,
- FERRET V6.93   29-Oct-14 
+ FERRET V6.951 (beta) 17-Nov-15 
  ..Conventions = Existing conventions note, , CF-1.6 
  
  
@@ -77667,7 +78385,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.93   29-Oct-14 
+ ..history = The history of the fileFERRET V6.951 (beta) 17-Nov-15 
  ..Conventions = Conventions for variables named V2CF-1.6 
  
 GO bn_reset
@@ -78079,14 +78797,14 @@ a is ready and AVAILABLE
    in default dataset my_file_vars
    A = FV1[D=1] - FV1[D=2]
      FV1
-     FV1[d=other_file_var]
+     FV1[d=other_file_vars]
    in default dataset my_file_vars
    A = FV1[D=1] - FV1[D=2]
      FV1
-     FV1[d=other_file_var]
+     FV1[d=other_file_vars]
    in default dataset other_file_vars
    A = FV1[D=1] - FV1[D=2]
-     FV1[d=my_file_var]
+     FV1[d=my_file_vars]
      FV1
 ********************************
 /TREE=ALL
@@ -78095,30 +78813,30 @@ a is ready and AVAILABLE
 the problem is UNKNOWN VARIABLE: NOEXIST
 ************************
    in default dataset my_file_vars
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
    in default dataset my_file_vars
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
-   NOEXIST  (unknown variable)
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
+   *unknown variable: NOEXIST
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
 the problem is UNKNOWN DATASET: V[D=NOEXIST]
 ************************
    in default dataset my_file_vars
-   V[D=NOEXIST] ??                           <== UNKNOWN DATASET ******
+   V[D=NOEXIST] ??			<== UNKNOWN DATASET ******
    in default dataset my_file_vars
-   V[D=NOEXIST] ??                           <== UNKNOWN DATASET ******
-   V[D=NOEXIST]  (unknown dataset)
+   V[D=NOEXIST] ??			<== UNKNOWN DATASET ******
+   *unknown dataset: V[D=NOEXIST]
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
 the problem is UNKNOWN DATASET: NOVAR[D=NODSET]
 ************************
    in default dataset my_file_vars
-   NOVAR[D=NODSET] ??                           <== UNKNOWN DATASET ******
+   NOVAR[D=NODSET] ??			<== UNKNOWN DATASET ******
    in default dataset my_file_vars
-   NOVAR[D=NODSET] ??                           <== UNKNOWN DATASET ******
-   NOVAR[D=NODSET]  (unknown dataset)
+   NOVAR[D=NODSET] ??			<== UNKNOWN DATASET ******
+   *unknown dataset: NOVAR[D=NODSET]
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
@@ -78126,11 +78844,11 @@ the problem is UNKNOWN VARIABLE: NOEXIST
 ************************
    in default dataset my_file_vars
    B = NOEXIST
-     NOEXIST ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST ??			<== UNKNOWN VARIABLE ******
    in default dataset my_file_vars
    B = NOEXIST
-     NOEXIST ??                           <== UNKNOWN VARIABLE ******
-   NOEXIST  (unknown variable)
+     NOEXIST ??			<== UNKNOWN VARIABLE ******
+   *unknown variable: NOEXIST
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
@@ -78149,10 +78867,12 @@ fv1z is ready and AVAILABLE
    in default dataset my_file_vars
    FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
      FV1
+       regrid to ZPTS = Z[Z=0:500:100]
        FVZ
      FVX
    in default dataset my_file_vars
    FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
+       regrid to ZPTS = Z[Z=0:500:100]
    FV1[d=my_file_vars]
    FVZ[d=my_file_vars]
    FVX[d=my_file_vars]
@@ -78164,10 +78884,12 @@ fv1z is ready and AVAILABLE
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
      FV1
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]
      FVX
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]
    FV1[d=my_file_vars]
    FVX[d=my_file_vars]
@@ -78179,11 +78901,13 @@ fv1z is ready and AVAILABLE
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
      FV1
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
          FVZ
      FVX
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
    FV1[d=my_file_vars]
    FVZ[d=my_file_vars]
@@ -78200,7 +78924,7 @@ the problem is UNKNOWN AUXILIARY VARIABLE: NOEXIST
    in default dataset my_file_vars
    FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
        NOEXIST   (unknown auxiliary variable)
-   NOEXIST  (unknown auxiliary variable)
+   *unknown auxiliary variable: NOEXIST
    FVX[d=my_file_vars]
 /TREE=ALL
 /TREE=USER
@@ -78209,15 +78933,17 @@ the problem is UNKNOWN VARIABLE: NOEXIST[GZ(DEPTH)=ZPTS]
 ************************
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
-     NOEXIST[GZ(DEPTH)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(DEPTH)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
          FVZ
      FVX
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
-     NOEXIST[GZ(DEPTH)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(DEPTH)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
-   NOEXIST[GZ(DEPTH)=ZPTS]  (unknown variable)
+   *unknown variable: NOEXIST[GZ(DEPTH)=ZPTS]
    FVZ[d=my_file_vars]
    FVX[d=my_file_vars]
 /TREE=ALL
@@ -78227,15 +78953,17 @@ the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
 ************************
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
-     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        UNKNOWN_AUX   (unknown auxiliary variable)
      FVX
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
-     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        UNKNOWN_AUX   (unknown auxiliary variable)
-   NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]  (unknown variable)
-   UNKNOWN_AUX  (unknown auxiliary variable)
+   *unknown variable: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
+   *unknown auxiliary variable: UNKNOWN_AUX
    FVX[d=my_file_vars]
 /TREE=ALL
 /TREE=USER
@@ -78244,395 +78972,7851 @@ fv1 is ready and AVAILABLE
 ************************
    in default dataset MY_AGG
    FV1   (aggregate variable)
-     FV1[d=my_file_var]
-     FV1[d=other_file_var]
-     FV1[d=another_file_var]
+     FV1[d=my_file_vars]
+     FV1[d=other_file_vars]
+     FV1[d=another_file_vars]
    in default dataset MY_AGG
    FV1   (aggregate variable)
  
-   FV1[d=my_file_vars]
-   FV1[d=other_file_vars]
-   FV1[d=another_file_vars]
-/TREE=ALL
-/TREE=USER
-/TREE=FILE
-fvx is ready and AVAILABLE
-************************
-   in default dataset MY_UVAR_AGG
-   FVX   (aggregate variable)
-     FVX[d=my_file_var]
-     FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
-       FV1[d=other_file_var]
-     FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
-       FV1[d=another_file_var]
-   in default dataset MY_UVAR_AGG
-   FVX   (aggregate variable)
-     FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
-     FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+   FV1[d=my_file_vars]
+   FV1[d=other_file_vars]
+   FV1[d=another_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+fvx is ready and AVAILABLE
+************************
+   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
+   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]
+ 
+   FVX[d=my_file_vars]
+   FV1[d=other_file_vars]
+   FV1[d=another_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is ILLEGAL RECURSIVE VARIABLES: P1
+************************
+   in default dataset MY_UVAR_AGG
+   P0 = S1 + P1
+     S1 ??			<== UNKNOWN VARIABLE ******
+     P1 = S2 + P2
+       S2 ??			<== UNKNOWN VARIABLE ******
+       P2 = S3 + P3
+         S3 ??			<== UNKNOWN VARIABLE ******
+         P3 = P1 + S3
+           P1 =   *** WARNING: RECURSIVE DEFINITION.  See above
+           S3 ??			<== UNKNOWN VARIABLE ******
+   in default dataset MY_UVAR_AGG
+   P0 = S1 + P1
+     S1 ??			<== UNKNOWN VARIABLE ******
+     P1 = S2 + P2
+       S2 ??			<== UNKNOWN VARIABLE ******
+       P2 = S3 + P3
+         S3 ??			<== UNKNOWN VARIABLE ******
+         P3 = P1 + S3
+           P1 =   *** WARNING: RECURSIVE DEFINITION.  See above
+           S3 ??			<== UNKNOWN VARIABLE ******
+   *unknown variable: S1
+   *unknown variable: S2
+   *unknown variable: S3
+   *unknown variable: S3
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN VARIABLE: S1
+************************
+   in default dataset MY_UVAR_AGG
+   P0 = S1 + P1
+     S1 ??			<== UNKNOWN VARIABLE ******
+     P1 = S2 + P2
+       S2 ??			<== UNKNOWN VARIABLE ******
+       P2 = S3 + P3
+         S3 ??			<== UNKNOWN VARIABLE ******
+         P3 = S1 + S3
+           S1 ??			<== UNKNOWN VARIABLE ******
+           S3 ??			<== UNKNOWN VARIABLE ******
+   in default dataset MY_UVAR_AGG
+   P0 = S1 + P1
+     S1 ??			<== UNKNOWN VARIABLE ******
+     P1 = S2 + P2
+       S2 ??			<== UNKNOWN VARIABLE ******
+       P2 = S3 + P3
+         S3 ??			<== UNKNOWN VARIABLE ******
+         P3 = S1 + S3
+           S1 ??			<== UNKNOWN VARIABLE ******
+           S3 ??			<== UNKNOWN VARIABLE ******
+   *unknown variable: S1
+   *unknown variable: S2
+   *unknown variable: S3
+   *unknown variable: S1
+   *unknown variable: S3
+   in default dataset my_file_vars
+   FV = FV1 + FV1 + FV1
+   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
+   UV = FVX + FVX + FVX
+     FVX   (aggregate variable)
+       FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+       FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+***************************
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+v2 is ready and AVAILABLE
+************************
+   in default dataset MY_UVAR_AGG
+   V2 = V1 + B + A + A
+     V1 = A  + B + B^2
+       A = FV1[D=1] - FV1[D=2]
+         FV1[d=my_file_vars]
+         FV1[d=other_file_vars]
+       B = C
+         C = 1
+     B =  (defined above)
+     A =  (defined above)
+   in default dataset MY_UVAR_AGG
+   V2 = V1 + B + A + A
+     V1 = A  + B + B^2
+       A = FV1[D=1] - FV1[D=2]
+       B = C
+         C = 1
+     B =  (defined above)
+     A =  (defined above)
+   FV1[d=my_file_vars]
+   FV1[d=other_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+v3 is ready and AVAILABLE
+************************
+   in default dataset MY_UVAR_AGG
+   V3 = A + V1 + B + A + A
+     A = FV1[D=1] - FV1[D=2]
+       FV1[d=my_file_vars]
+       FV1[d=other_file_vars]
+     V1 = A  + B + B^2
+       A =  (defined above)
+       B = C
+         C = 1
+     B =  (defined above)
+   in default dataset MY_UVAR_AGG
+   V3 = A + V1 + B + A + A
+     A = FV1[D=1] - FV1[D=2]
+     V1 = A  + B + B^2
+       A =  (defined above)
+       B = C
+         C = 1
+     B =  (defined above)
+   FV1[d=my_file_vars]
+   FV1[d=other_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN VARIABLE: F
+************************
+   in default dataset MY_UVAR_AGG
+   D = B + C
+     B = FV1[D=MY_FILE_VARS]
+       FV1[d=my_file_vars]
+     C = 1
+   A = F
+     F ??			<== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
+   E = 1
+   FVX[d=my_file_vars]
+   in default dataset MY_UVAR_AGG
+   D = B + C
+     B = FV1[D=MY_FILE_VARS]
+     C = 1
+   A = F
+     F ??			<== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
+   E = 1
+   *unknown variable: F
+   FV1[d=my_file_vars]
+   *unknown variable: NOEXIST
+   FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN GRID: NOEXIST
+************************
+   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
+   B = A[G=NOEXIST]
+     A = I[I=1:5]
+       regrid to NOEXIST ??		<== UNKNOWN GRID ******
+   *unknown grid: NOEXIST
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is ERROR IN EXPRESSION: A[X=45S]
+************************
+   in default dataset MY_UVAR_AGG
+   C = A[X=45S]
+     A[X=45S]   *** WARNING: ERROR IN DEFINITION
+   in default dataset MY_UVAR_AGG
+   C = A[X=45S]
+     A[X=45S]   *** WARNING: ERROR IN DEFINITION
+      *WARNING: syntax error: A[X=45S]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
+************************
+   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
+   D = A[I=1,,J=2]
+     A[I=1,,J=2]   *** WARNING: ERROR IN DEFINITION
+      *WARNING: syntax error: A[I=1,,J=2]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is ERROR IN EXPRESSION: A[P=1]
+************************
+   in default dataset MY_UVAR_AGG
+   E = A[P=1]
+     A[P=1]   *** WARNING: ERROR IN DEFINITION
+   in default dataset MY_UVAR_AGG
+   E = A[P=1]
+     A[P=1]   *** WARNING: ERROR IN DEFINITION
+      *WARNING: syntax error: A[P=1]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+f is ready and AVAILABLE
+************************
+   in default dataset MY_UVAR_AGG
+   F = A[I=10]
+     A = I[I=1:5]
+   in default dataset MY_UVAR_AGG
+   F = A[I=10]
+     A = I[I=1:5]
+   in default dataset MY_UVAR_AGG
+   A = FVZ.LONG_NAME[D=1]
+   in default dataset MY_UVAR_AGG
+   A = ..HISTORY[D=1]
+ 
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO bn_date1900_array
+! bn_date1900_array.jnl
+! Let date1900 accept an array of date strings, returning a list
+! of coordinate values, days since 1-jan-1900.
+ 
+ 
+sh func/details date1900
+DATE1900(formatted date)
+    Convert date strings into Julian days since 1-Jan-1900
+        Axes of result:
+          X: inherited from argument(s)
+          Y: NORMAL (no axis)
+          Z: NORMAL (no axis)
+          T: NORMAL (no axis)
+          E: NORMAL (no axis)
+          F: NORMAL (no axis)
+    formatted date: dd-MMM-yy or dd-MMM-yyyy  (e.g. "20-Dec-00") (none) (STRING)
+        Influence on output axes:
+          X: passed to result grid
+          Y: no influence (indicate argument limits with "[]")
+          Z: no influence (indicate argument limits with "[]")
+          T: no influence (indicate argument limits with "[]")
+          E: no influence (indicate argument limits with "[]")
+          F: no influence (indicate argument limits with "[]")
+ 
+! Function always worked just on one date string.
+list date1900("01-jan-2001")
+             VARIABLE : DATE1900("01-jan-2001")
+          36890.
+ 
+ 
+! Now the argument can be an array
+let datestrings = {"01-jan-2001", "02-jan-2001", "30-Jul-2002"}
+list date1900(datestrings)
+             VARIABLE : DATE1900(DATESTRINGS)
+             SUBSET   : 3 points (X)
+ 1   / 1:  36890.
+ 2   / 2:  36891.
+ 3   / 3:  37465.
+ 
+def axis/t/units=days/t0=1-jan-1900 taxis = date1900(datestrings)
+list t[gt=taxis]
+             VARIABLE : T
+                        axis TAXIS
+             SUBSET   : 3 points (TIME)
+ 01-JAN-2001 00 / 1:  36890.
+ 02-JAN-2001 00 / 2:  36891.
+ 30-JUL-2002 00 / 3:  37465.
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO bn_spawn_size
+! bn_spawn_size.jnl
+! Return the size of the result of a spawn, not
+! the nominalabstract axis length.
+ 
+! ticket 981
+ 
+let files = {spawn:"ls *cdf*.jnl"}
+list files
+             VARIABLE : {SPAWN:"ls *cdf*.jnl"}
+             SUBSET   : 8 points (X)
+ 1   / 1:"bn_cdf_errmsg.jnl"      
+ 2   / 2:"bn_cdf.jnl"             
+ 3   / 3:"bn_cdf_keepax.jnl"      
+ 4   / 4:"bn_netcdf4.jnl"         
+ 5   / 5:"err490_cdf_childax.jnl" 
+ 6   / 6:"err491_cdf_childax.jnl" 
+ 7   / 7:"err65_read_epic_cdf.jnl"
+ 8   / 8:"err667_5d_netcdf.jnl"   
+say `files,return=isize`
+ !-> MESSAGE/CONTINUE 8
+8
+ 
+! Evaluate size without loading the variable first
+let datfiles = {spawn:"ls *.dat"}
+say `datfiles,return=isize`
+ !-> MESSAGE/CONTINUE 37
+37
+ 
+! expression syntax
+say `{spawn:"ls xml*.jnl"},return=isize`
+ !-> MESSAGE/CONTINUE 3
+3
+list {spawn:"ls xml*.jnl"}
+             VARIABLE : {SPAWN:"ls xml*.jnl"}
+             SUBSET   : 3 points (X)
+ 1   / 1:"xml_header_script.jnl"
+ 2   / 2:"xml_use_coads.jnl"    
+ 3   / 3:"xml_use_numstring.jnl"
+ 
+! Test variables based on output of a spawn.
+! These already worked correctly, has a grid-changing function.
+ 
+LET filesets = xcat({spawn:"ls *.nc"}, {spawn:"ls *.jnl"})
+say `filesets, return=isize`
+ !-> MESSAGE/CONTINUE 908
+908
+ 
+let files = {spawn:"ls *cdf*.jnl"}
+let name_len = strindex(files, ".sub")
+say `name_len, return=isize`
+ !-> MESSAGE/CONTINUE 8
+8
+ 
+GO bn_reset
+cancel mode verify
+GO bn_polygon_log
+! bn_polygon_log.jnl
+! polygon plots on a log axis need tests
+ 
+let xsqr = YSEQUENCE({0,.1,.1,0})
+let ysqr = YSEQUENCE({0,0,.1,.1})
+let xpts = cos(x/10) + 2
+let ypts = x/10+1
+ 
+! Polygon plot
+ 
+set view ul
+polygon/title="NOT LOG"/i=1:100 xpts+xsqr, ypts+ysqr, x*x/10
+ 
+! Poly/vlog and /hlog
+! (known bug: Whats up with the colorbar labels?)
+set view ur; poly/title=VLOG/i=1:100/vlog xpts+xsqr,ypts+ysqr,x*x/10
+set view ll; poly/title=HLOG/i=1:100/hlog xpts+xsqr,ypts+ysqr,x*x/10
+set view lr;poly/title=BOTH/i=1:100/vlog/hlog xpts+xsqr,ypts+ysqr,x*x/10
+ 
+! These are errors - log of negative values on axis
+ 
+set mode ignore
+ 
+let ybad = x/10 - 1
+let xbad = cos(x/10) + 0.8
+ 
+can view
+polygon/i=1:100/nolab xbad+xsqr,ybad+ysqr,x*x/10
+ 
+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
+ 
+! *********** v6.94Additions ***********
+ 
+GO bn_reset
+cancel mode verify
+GO bn694_bug_fixes
+! bn694_bug_fixes
+! test various fixes that went into version 6.94
+! 11/2014 ACM
+! 12/2014 *sh* added IF-THEN flow fixes, including review of past tickets
+! 1/2015 *sh* added test for undetected bad dataset name in regrid target
+ 
+GO bn_reset
+cancel mode verify
+GO err693_upcase_quoted_name
+! err693_upcase_quoted_name.jnl
+! ticket 2050. Names are saved in uppercase
+! form unless there are duplicates other than case.
+! Then searching for the name in quotes looked
+! only with a case-sensitive search.
+ 
+let abc = 12
+cancel mode upcase
+ 
+save/file=aa.nc/clobber abc
+can dat/all; can var/all
+ 
+use aa.nc
+! previously this failed to find the name.
+list 'abc'
+             VARIABLE : 12
+             FILENAME : aa.nc
+          12.00
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_isready_hang
+! err693_isready_hang.jnl
+! ACM 12/10/2014
+! ticket 2219.  The last of these commands caused Ferret to hang.
+ 
+use gt4d011
+def ax/t/t0="`u,r=t0`"/unit="`u,r=tunit`" time = t[gt=u]
+ !-> def ax/t/t0="14-JAN-1980 14:00:00"/unit="hour" time = t[gt=u]
+let a = u
+IF `a,r=isready` THEN; let/title="`a,r=title`" a1 = a; ENDIF
+ !-> IF 1         THEN
+ !-> DEFINE VARIABLE/title="U" a1 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a2 = a; ENDIF
+ !-> IF 1         THEN
+ !-> DEFINE VARIABLE/title="U" a2 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a3 = a; ENDIF
+ !-> IF 1         THEN
+ !-> DEFINE VARIABLE/title="U" a3 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a4 = a; ENDIF
+ !-> IF 1         THEN
+ !-> DEFINE VARIABLE/title="U" a4 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a5 = a; ENDIF
+ !-> IF 1         THEN
+ !-> DEFINE VARIABLE/title="U" a5 = a
+ 
+GO bn_reset
+cancel mode verify
+GO err693_isready_dyn_grid_crash   ! 12/23/2014
+let/unit="m" b = x[gx=1:5:1]
+say "`b,r=unit`"     ! this causes dynamic grid of b to be created
+ !-> MESSAGE/CONTINUE "m"
+m
+let c = x[gx=1:5:2]
+let b2 = b+0*c[gx=b] ! dynamic grid of b exists, but not grid of c
+VTREE b2
+   B2 = B+0*C[GX=B]
+     B = X[GX=1:5:1]
+     C = X[GX=1:5:2]
+       regrid to B = X[GX=1:5:1]
+ 
+GO bn_reset
+cancel mode verify
+GO err693_attr_in_gcfcn
+! err693_attr_in_gcfcn.jnl
+! ACM 12/10/2014
+! bug 2220 varname.attname as an argument to grid-changing functions.
+! All except the last of these caused various ungraceful stops.
+ 
+let/units="m" a = 1
+list is_element_of_str(a.units,{"m","a"})
+             VARIABLE : IS_ELEMENT_OF_STR(A.UNITS,{"m","a"})
+             X        : 1
+          1.000
+ 
+let/units="m" a = 1
+let b = a.units
+list is_element_of_str(b,{"m","a"})
+             VARIABLE : IS_ELEMENT_OF_STR(B,{"m","a"})
+             X        : 1
+          1.000
+ 
+ 
+use levitus_climatology
+ 
+list is_element_of_str_n (temp.long_name, {"Temperature", "temp"})
+             VARIABLE : IS_ELEMENT_OF_STR_N (TEMP.LONG_NAME, {"Temperature", "temp"})
+             FILENAME : levitus_climatology.cdf
+             X        : 1
+          2.000
+ 
+let a = temp.units
+list is_element_of_str (a, {"Kelvin", "Celsius", "DEG C"})
+             VARIABLE : IS_ELEMENT_OF_STR (A, {"Kelvin", "Celsius", "DEG C"})
+             FILENAME : levitus_climatology.cdf
+             X        : 1
+          1.000
+ 
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_inconsistent_quote
+! inconsistent interpretation of surrounding double quotes
+! the original source of the problem is in PARSE_COMMAND
+! arg_start and arg_end are set to skip surrounding quotation marks.
+! But since this behavior permeates so many routines it is best to repair
+! the problem in ALL_1_ARG
+ 
+ 
+let foobar = 1
+LIST "foobar", "foobar" ! this is correct - list as strings
+ Column  1: str is "foobar"
+ Column  2: str is "foobar"
+              str     str
+I / *:    "foobar" "foobar"
+LIST "foobar"           ! error: lists the value instead
+             VARIABLE : "foobar"
+        "foobar"
+ 
+! IF-THEN flow tests
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_2214
+! bug 2214
+! If we put the "say hi" in parentheses, this seems to work.
+! But parentheses haven't previously been required, so there are a lot of
+! scripts that don't have them.
+ 
+* 12/14 note (sh) - Ferret handles this situation correctly because
+* PARSE_COMMAND acts on the semi-colons in the full command line *before*
+* it acts on the "IF".  Thus the thress semicolon-connected commands
+* follow the same logical path through Ferret as if they were separated
+* onto three lines
+ 
+IF 0 THEN; rep/i=1:1 say ERROR; ENDIF
+ 
+IF 1 THEN; rep/i=1:1 say CORRECT; ENDIF
+!-> REPEAT: I=1
+CORRECT
+ 
+(IF 0 THEN; rep/i=1:1 say ERROR; ENDIF)
+ 
+(IF 1 THEN; rep/i=1:1 say CORRECT; ENDIF)
+!-> REPEAT: I=1
+CORRECT
+ 
+!yes? quit
+!yes? quit
+!yes? ^Z
+!Suspended
+ 
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_2211
+! bug #2211
+ 
+ 
+IF 0 THEN
+ELSE
+   exit/script
+ 
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1860
+! from bug 1860
+! continue line found within grave accents
+ 
+CANCEL MODE VERIFY
+This works:
+CORRECT IF THIS DISPLAYS
+This works:
+CORRECT IF THIS DISPLAYS
+This works:
+CORRECT IF THIS DISPLAYS
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1446
+! testing ticket 1446
+ 
+! the presence of a tab preceding the "!" comment caused a parsing error
+ 
+! the behavior of this even in v69+ today is problematic in that
+! it echos an ENDIF statement that should be a plain old skip
+ 
+IF 0 THEN
+ENDIF
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1681
+! testing ticker 1681
+ 
+!The third block of the following script issues an error:
+!ERROR: invalid command: ENDIF can only be used in an IF clause
+!
+!Looks like a parsing bug -- it seems the ENDIF inside the REPEAT is being
+!applied to the outermost IF. Note that the error goes away if we change
+!the outer 0 to a 1.
+ 
+ 
+say "test1"
+test1
+if 0 then
+endif
+ 
+say "test2"
+test2
+if 0 then
+endif
+ 
+say "test3"
+test3
+if 0 then
+endif
+ 
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1706
+! testing ticket 1706
+!
+def sym a say hi\\; say hi
+ 
+IF 0 THEN
+ENDIF
+ 
+! some versions (not v550 but yes v63 but not v6301) fail to say "here"
+IF 1 THEN
+   say here
+here
+ENDIF
+ 
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1368   ! Jan 28, 2010, Ferret version 5.812
+! testing ticket 1368 - first found in Ferret v5.812 (Jan 28, 2010)
+ 
+! this is still a bug in V69+
+! the initial IF command is not being closed by the first ENDIF
+! it is skipping down to the elif command
+ 
+define symbol xend 180
+let key_flag = 0
+ 
+! test 1 - line 1 false condition should suppress both outputs
+IF `($xend) GT 360` THEN
+ !-> IF 0 THEN
+ENDIF
+ 
+ 
+! test 2 - line 1 false condition should cause else clause - "point G"
+let dxymin = 0.20
+if `dxymin lt 0.12` then
+ !-> if 0 then
+elif `dxymin lt 0.25` then
+ !-> elif 1 then
+  SAY "CORRECT.  this message should display"
+CORRECT.  this message should display
+endif
+ 
+! test 3 - this is from bug #918 -- looks like the same bug as #1368
+IF 0 THEN
+ENDIF
+ 
+GO bn_reset
+cancel mode verify
+GO err693_ribbon_start_missing
+! err693_ribbon_start_missing
+! 1/6/2015 ACM
+!
+! Bug 2226: If data starts with a missing-value and we're using (-inf) then
+! the ribbon plot started with the lowest color instead of plotting as for missing
+! Only the cases starting with missing data were incorrect previous to fixing this bug.
+ 
+DEFINE SYMBOL ribbon_command = PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3
+ 
+let/units=degrees_east xvar = {-177,-174,-186}
+let/units=degrees_north yvar = {-43, -45, -42}
+let vvar = {,271, 319}
+! This previously started with purple, not a gray missing-value point
+($ribbon_command)/title="(-inf) in levels" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="(-inf) in levels" xvar,yvar,vvar
+ 
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,,,271,319}
+($ribbon_command)/title="start with several missing" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="start with several missing" xvar,yvar,vvar
+ 
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,,271,319,1000}
+($ribbon_command)/title="end large positive value" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="end large positive value" xvar,yvar,vvar
+ 
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,271,319,1000,}
+($ribbon_command)/title="end with large positive and missing" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="end with large positive and missing" xvar,yvar,vvar
+ 
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {1.e7,,,271,319}
+($ribbon_command)/title="start with large positive" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="start with large positive" xvar,yvar,vvar
+ 
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,1.e7,,271,319}
+($ribbon_command)/title="start with missing then large positive" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="start with missing then large positive" xvar,yvar,vvar
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err691_pt_in_poly
+! err691_pt_in_poly
+! ticket 1961: modulo longitude for pt_in_poly
+! and sending subset of the xy field
+ 
+use coads_climatology
+ 
+let xpts = {64,81,81,82,88,88,79,79,76,73,68,64}
+let ypts = {31,30,29,29,27,24,20,19,20,25,27,31}
+ 
+let pts = pt_in_poly(sst[L=5,x=60:90,y=15:35], xpts, ypts)
+shade/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
+             VARIABLE : MINMAX(PTS)
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 2 points (X)
+ 1   / 1: -1.000
+ 2   / 2:  1.000
+ 
+! Put the xpts on different modulo branches
+! Previously  the list commands would have listed -1,-1
+ 
+let xpts0 = {64,81,81,82,88,88,79,79,76,73,68,64}
+let/title=lon/units=degrees_east xpts = xpts0 + 360
+ 
+shade/title="Plus 360"/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
+             VARIABLE : MINMAX(PTS)
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 2 points (X)
+ 1   / 1: -1.000
+ 2   / 2:  1.000
+ 
+let/title=lon/units=degrees_east xpts = xpts0 - 360
+ 
+shade/title="Minus 360"/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
+             VARIABLE : MINMAX(PTS)
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 2 points (X)
+ 1   / 1: -1.000
+ 2   / 2:  1.000
+ 
+GO bn_reset
+cancel mode verify
+GO err693_undetected_regrid_dset
+! err693_undetected_regrid_dset.jnl    - Jan 2015
+ 
+! in GET_CONTEXT_MODS no check is made whether dataset name/number is
+! valid following   "gdset = FIND_DSET_NUMBER( name(dstart:dend) )"
+ 
+use coads_climatology
+use levitus_climatology   ! default to d=2
+ 
+canc var/all
+let myvar = temp
+let a = myvar[g=temp[d=bad_d]]    ! THIS SHOULD BE DETECTED AS AN ERROR
+ 
+set mode ignore
+stat/l=1/x=180/y=0 a    ! this *SHOULD* trigger an error.  Yes.  Detect it.
+set mode/last ignore
+ 
+GO bn_reset
+cancel mode verify
+GO err693_line_over_axis
+! Ticket 2232: line plots overlaid the plot axes
+show mode meta
+      MODE            STATE        ARGUMENT
+      METAFILE      CANCELLED      metafile.plt
+! line plot with /VS draw on top of the axes
+let xval = {0.0, 0.2, 1.0, 0.8, 0}
+let yval = {0.0, 1.1, 1.1, 0.0, 0}
+plot/vs/line/thick=3/color=lightblue xval, yval
+ 
+! any line overlay may draw on the axes
+let xval = {0.0, 0.0, 0.8, 0.2, 0}
+let yval = {0.1, 1.2, 1.2, 0.1, 0.1}
+plot/ribbon/vs/line/thick=3/over/nolab/pal=green_light xval, yval, yval
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_save_packed
+! err693_save_packed.jnl
+! ticket 2240: bug writing multiple vars with one SAVE when scaled
+!
+! Previously saw a netcdf error because first variable was mis-scaled on writing.
+ 
+use err693_save_packed.nc
+save/clobber/file=a.nc QA_OF_SEAICE_CONC_CDR, GODDARD_MERGED_SEAICE_CONC
+ 
+GO bn_reset
+cancel mode verify
+GO err693_subspan_trans
+! err693_subspan_trans
+! bug 2241  3/9/2015
+ 
+use coads_climatology
+let a = sst[x=120:284,y=-2:2 at ave,t=@ave]
+save/clob/file=a.nc a
+can var a
+use a
+set reg/x=25:385
+let b = a[x=@min]
+ 
+set mode diag
+say `a[x=@min]`
+ getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing moduloing A on X axis:     1    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
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
+ 
+! This previously resulted in an error.
+say `b`
+ dealloc  dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ getgrid B        C:  7 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    B        C:  6 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ strip --> A[X=25E:25E(385)@MIN,D=2]
+ strip 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
+ doing moduloing A on X axis:     1    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
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
+ 
+can mode diag
+ 
+! What if the region for @MIN is in the saved portion?
+say `a[x=150:200 at min]`
+ !-> MESSAGE/CONTINUE 26.96305592854818
+26.96305592854818
+let b = a[x=150:200 at min]
+say `b`
+ !-> MESSAGE/CONTINUE 26.96305592854818
+26.96305592854818
+ 
+! What if the region for @MIN extends beyond the saved portion?
+say `a[x=200:300 at min]`
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
+let b = a[x=200:300 at min]
+say `b`
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
+ 
+! What if the region for @MIN is outside the saved portion?
+say `a[x=300:385 at min]`
+ !-> MESSAGE/CONTINUE bad
+bad
+let b = a[x=300:385 at min]
+say `b`
+ !-> MESSAGE/CONTINUE bad
+bad
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_repeat_err
+!   err693_repeat_err.jnl
+! test fix for ticket 2244: Error handling in REPEAT
+ 
+! The second of these should result in an error - in debug mode
+! it instead was hitting an out-of-range subscript error.
+ 
+repeat/range=1:2/name=column repeat/range=1:2/name=row say `column`,`row`
+!-> REPEAT: COLUMN:1
+!-> REPEAT: ROW:1
+ !-> MESSAGE/CONTINUE 1,1
+1,1
+!-> REPEAT: ROW:2
+ !-> MESSAGE/CONTINUE 1,2
+1,2
+!-> REPEAT: COLUMN:2
+!-> REPEAT: ROW:1
+ !-> MESSAGE/CONTINUE 2,1
+2,1
+!-> REPEAT: ROW:2
+ !-> MESSAGE/CONTINUE 2,2
+2,2
+ 
+set mode ignore
+repeat/range=1:2/name=column repeat/range=1:2/name=row
+!-> REPEAT: COLUMN:1
+!-> REPEAT: COLUMN:2
+set mode/last ignore
+ 
+GO bn_reset
+cancel mode verify
+GO err693_edit_useratt
+! err693_edit_useratt.jnl
+! ticket 2249: set attribute properties for user-defined variable
+ 
+use err491_attval.cdf
+list/x=135.402W:135.321W/y=58.609 elev
+             VARIABLE : Surface elevation (meter)
+             DATA SET : K-Bay OAR3d model (200m)
+             FILENAME : err491_attval.cdf
+             SUBSET   : 7 points (LONGITUDE)
+             LATITUDE : 58.61N (interpolated)
+             T (day)  : 1.7837
+ 135.402W / 45:   ....
+ 135.389W / 46:   ....
+ 135.375W / 47:   ....
+ 135.362W / 48:  2.953
+ 135.348W / 49:  2.953
+ 135.335W / 50:  2.950
+ 135.321W / 51:  2.953
+ 
+ 
+! Rename the file variable, define a variable using its name
+set var/name=elev_in elev
+let  elev = missing(elev_in, -1.e34)
+ 
+! Inherit attributes from the file variable.
+! cancel writing the scale attributes
+set att/like=elev_in elev
+can att/output elev.scale_factor
+can att/output elev.add_offset
+ 
+! set the bad-flag (can't do this before the SET ATT/LIKE
+set var/bad=-1.e34 elev
+ 
+! save
+save/clobber/file=a.nc elev
+can var/all
+use a.nc
+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)
+             T (day)  : 1.7837
+ 135.402W / 45:   ....
+ 135.389W / 46:   ....
+ 135.375W / 47:   ....
+ 135.362W / 48:  2.953
+ 135.348W / 49:  2.953
+ 135.335W / 50:  2.950
+ 135.321W / 51:  2.953
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_redef_rec_axis
+! err693_redef_rec_axis.jnl
+! ticket 2271. Redefining the record axis meant
+! that SHOW AXIS/FULL couldnt get the time axis info
+ 
+define axis/x=1:5:1 xax
+define axis/y=2:10:2 yax
+define axis/t=1:7:1 tredef
+let var = x[gx=xax] + y[gy=yax] + t[gt=tredef]
+save/clobber/file=a.nc var
+ 
+can var/all
+can axis xax
+can axis yax
+can axis tredef
+ 
+use a.nc
+define axis/t=1:7:1/units=days/t0=1-jan-2000 tredef
+ 
+! Previously the output had  time range: ???
+show data/full
+     currently SET data sets:
+    1> ./a.nc  (default)
+ 
+ name     title                             I         J         K         L         M         N
+ VAR      X[GX=XAX] + Y[GY=YAX] + T[GT=TR  1:5       1:5       ...       1:7       ...       ...
+               on grid GSI1 with -1.E+34 for missing data
+             X=0.5:5.5  Y=1:11  
+ 
+  time range: 02-JAN-2000 00:00 to 08-JAN-2000 00:00
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_frame_types
+! bn_frame_types.jnl
+! Ticket 2275
+! The default file type for FRAME was still HDF
+ 
+set mode ignore
+ 
+use coads_climatology
+shade/l=1 sst
+ 
+! This issued an error and quit
+frame/format=hdf/file=a.hdf
+ 
+! so did this
+frame/file=a.png
+ 
+! this is (always) ok
+frame/file=a.gif
+frame/format=gif file=a.plot
+ 
+set mode/last ignore
+ 
+GO bn_reset
+cancel mode verify
+GO err693_shape
+! err693_shape.jnl
+! bug 2273 shape of variable with various subexpressions
+ 
+use coads_climatology
+let a = sst[x=@ave]
+let a_clim = a[gt=MONTH_IRREG at mod]
+let a_anom = a - a_clim[gt=a at nrst]
+ 
+! Should all be YT
+say `a,r=shape`  `a_clim[gt=a at nrst],r=shape` `a_anom,r=shape`
+ !-> MESSAGE/CONTINUE YT  YT YT
+YT  YT YT
+ 
+! Also works for size returns
+ 
+! Should be 180, 1, 1
+say `sst,r=isize`  `a,r=isize` `a_anom,r=isize`
+ !-> MESSAGE/CONTINUE 180  1 1
+180  1 1
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_ef_axis_precision
+ ! NOAA/PMEL TMAP
+ ! FERRET v6.94
+ ! Linux 2.6.32-504.12.2.el6.x86_64 64-bit - 03/20/15
+ ! 11-May-15 16:51
+ 
+define axis/f faxis = {0.001, 0.123, 0.234, 0.498}
+define axis/e eaxis = {1001.1009, 1234.005, 2112.321, 2520.45}
+let efvar = _M[ge=eaxis] + _n[gf=faxis]
+set view upper; plot/n=3 efvar
+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
+ 1001.1 / 1:  4.000
+ 1234   / 2:  5.000
+ 2112.3 / 3:  6.000
+ 2520.4 / 4:  7.000
+list/m=2 efvar
+             VARIABLE : _M[GE=EAXIS] + _N[GF=FAXIS]
+             SUBSET   : 4 points (F)
+             E        : 1234
+ 0    / 1:  3.000
+ 0.12 / 2:  4.000
+ 0.23 / 3:  5.000
+ 0.5  / 4:  6.000
+q
+ 
+GO bn_reset
+cancel mode verify
+GO err693_string_results
+! err693_string_results.jnl
+! Ticket 2234, the LIST B returned the numeric pointer to the string.
+! *acm* 5/14/2015
+ 
+let b = IF a then "yes" else "no"
+let a = 1/0
+list b
+             VARIABLE : IF A THEN "yes" ELSE "no"
+        "no"
+ 
+! The LOAD C makes the data type of D correct
+let d = if c then "ok" else "not ok"
+let c = 1/0
+load C
+list d
+             VARIABLE : IF C THEN "ok" ELSE "not ok"
+        "not ok"
+ 
+GO bn_reset
+cancel mode verify
+GO err693_lev_nv_over
+! err693_lev_nv_over.jnl
+! The polygon command with /LEV=20V caused a crash; levels settings incorrect.
+ 
+! draw any underlay to set up for polymark script
+use coads_climatology
+shade/x=120:250/Y=25s:65n/L=1/pal=white/nokey sst
+ 
+LET xpts = 180 + 50*COS(2*3.14*I[I=1:50]/60)
+LET ypts = 15  + 20*SIN(2*3.14*I[I=1:50]/60)
+ 
+! Variable is a constant w/ negative value
+LET sst = -5 + 0*ypts
+ 
+! The poly/over command caused a Fortran runtime error in tm_fmt_sngl
+GO polymark polygon/over/lev=20v/key/title="SST"  xpts,ypts,sst,square, 0.5
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_fcn_of_attvar
+! err693_fcn_of_attvar.jnl
+! Ticket 2291 Function of attribute-expression
+! returned just the first result
+ 
+use coads_climatology
+list sst.dimnames
+             VARIABLE : SST.DIMNAMES
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 3 points (X)
+ 1   / 1:"COADSX"
+ 2   / 2:"COADSY"
+ 3   / 3:"TIME10"
+list dncase(sst.dimnames)
+             VARIABLE : DNCASE(SST.DIMNAMES)
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 3 points (X)
+ 1   / 1:"coadsx"
+ 2   / 2:"coadsy"
+ 3   / 3:"time10"
+list strlen( sst.dimnames)
+             VARIABLE : STRLEN( SST.DIMNAMES)
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 3 points (X)
+ 1   / 1:  6.000
+ 2   / 2:  6.000
+ 3   / 3:  6.000
+list substring(sst.dimnames,2,3)
+             VARIABLE : SUBSTRING(SST.DIMNAMES,2,3)
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 3 points (X)
+ 1   / 1:"OAD"
+ 2   / 2:"OAD"
+ 3   / 3:"IME"
+list dncase(substring(sst.dimnames,2,3))
+             VARIABLE : DNCASE(SUBSTRING(SST.DIMNAMES,2,3))
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 3 points (X)
+ 1   / 1:"oad"
+ 2   / 2:"oad"
+ 3   / 3:"ime"
+list ysequence(dncase(sst.dimnames))
+             VARIABLE : YSEQUENCE(DNCASE(SST.DIMNAMES))
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 3 points (Y)
+ 1   / 1:"coadsx"
+ 2   / 2:"coadsy"
+ 3   / 3:"time10"
+ 
+GO bn_reset
+cancel mode verify
+GO err693_isize_and_gcfcn
+! err693_isize_and_gcfcn.jnl
+! ticket 2213
+! SET REGION interacting with ABSTRACT AXES
+! When the variable using XSEQUENCE was defined, suddenly the
+! region was being applied (inconsistently).
+ 
+can mode verify
+8
+    GRID XABSTRACT
+ name       axis              # pts   start                end
+ ABSTRACT  X             99999999 r   1                    1.E+08
+ normal    Y
+ normal    Z
+ normal    T
+ normal    E
+ normal    F
+8
+8 a
+8
+8 b
+8
+8 c
+8
+8 d
+8
+8 e
+8
+8 f
+8
+8 g
+8
+8 h
+8
+    GRID XABSTRACT
+ name       axis              # pts   start                end
+ ABSTRACT  X             99999999 r   1                    1.E+08
+ normal    Y
+ normal    Z
+ normal    T
+ normal    E
+ normal    F
+8
+8 a
+8
+8 b
+8
+8 c
+8
+8 d
+8
+8 e
+8
+8 f
+8
+8 g
+8
+8 h
+ 
+GO bn_reset
+cancel mode verify
+GO err693_ribbon_scale
+! err693_ribbon_scale.jnl
+! ticket 2295: the vertical scale is mis-computed
+! 5/29/2015
+ 
+let var = {-81,-81,-81}
+let color = {2,2,2}
+plot/ribbon/key var,color
+ 
+! should be -82 to -80
+sh sym yaxis*
+YAXIS_REVERSED = "0"
+YAXIS_MIN = "-82.0000000"
+YAXIS_MAX = "-80.0000000"
+ 
+GO bn_reset
+cancel mode verify
+GO err693_parse_curly
+! err693_parse_curly.jnl
+! the sub-routine defines a string variable containing commands for overlays in
+! different directions. the bug was that the parser doesn't handle quoted strings
+! inside { } if those strings include curly braces.
+! The argument chooses one of the strings with commands and plots the overlay
+ 
+use gt4d011
+ 
+shade/i=100/l=1/pal=grayscale temp
+go err693_parse_curly.sub yz
+! err693_parse_curly.sub
+! Define a variable with commands for overlays in different directions
+! the bug was that the parser doesn't handle quoted strings inside { } if those
+! strings include curly braces.
+! Choose one of the strings and plot the overlay
+ 
+! list of valid shapes
+ 
+let prd_shapes = {"xy", "xz", "yz"}
+ 
+! List of associated overlays
+! This is the part that's not working; due to bug #2296 we can't write {"...{}..."}.
+ 
+let prd_overlays = {\
+   "go land 6; go draw_line 180 -90 180 90 1; go draw_box 210 270 -5 5 6/dash=(.04,.06,.04,.06)",\
+   "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) {-1e3,1e3,,-1e3,1e3,,-1e3,1e3,,-136,-136,,-126,-126}, {85,85,,50,50,,20,20,,-1e4,1e4,,-1e4,1e4}",\
+   "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) 1e3*{-1,1,,-1,1,,-1,1},{85,85,,50,50,,20,20}"}
+ 
+! Then later when we're generating figures, we'll be
+! passing one of these shapes into a script like this:
+ 
+let p1s_shape = "$1%xy%"
+ !-> DEFINE VARIABLE p1s_shape = "yz"
+ 
+! For the specified shape, find the associated overlay command
+! (default is no overlay).
+let p1s_ov = ""
+IF `prd_shapes,r=isready` THEN
+ !-> IF 1         THEN
+      )
+ !-> rep/name=s/range=1:3 (let p1s_this_shape = prd_shapes[i=`s`];      IF `p1s_this_shape EQ p1s_shape` THEN;         let p1s_ov = prd_overlays[i=`s`];         exit/loop;      ENDIF;      )
+!-> REPEAT: S:1
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=1]
+ !-> IF 0 THEN
+!-> REPEAT: S:2
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=2]
+ !-> IF 0 THEN
+!-> REPEAT: S:3
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=3]
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE p1s_ov = prd_overlays[i=3]
+   can var p1s_this_shape
+ENDIF
+ 
+! generate a figure, with the appropriate overlay
+define symbol overcommands = `p1s_ov`
+ !-> define symbol overcommands = plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) 1e3*{-1,1,,-1,1,,-1,1},{85,85,,50,50,,20,20}
+($overcommands)
+ !-> plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) 1e3*{-1,1,,-1,1,,-1,1},{85,85,,50,50,,20,20}
+ 
+ shade/j=40/l=1/pal=grayscale temp
+go err693_parse_curly.sub xz
+! err693_parse_curly.sub
+! Define a variable with commands for overlays in different directions
+! the bug was that the parser doesn't handle quoted strings inside { } if those
+! strings include curly braces.
+! Choose one of the strings and plot the overlay
+ 
+! list of valid shapes
+ 
+let prd_shapes = {"xy", "xz", "yz"}
+ 
+! List of associated overlays
+! This is the part that's not working; due to bug #2296 we can't write {"...{}..."}.
+ 
+let prd_overlays = {\
+   "go land 6; go draw_line 180 -90 180 90 1; go draw_box 210 270 -5 5 6/dash=(.04,.06,.04,.06)",\
+   "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) {-1e3,1e3,,-1e3,1e3,,-1e3,1e3,,-136,-136,,-126,-126}, {85,85,,50,50,,20,20,,-1e4,1e4,,-1e4,1e4}",\
+   "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) 1e3*{-1,1,,-1,1,,-1,1},{85,85,,50,50,,20,20}"}
+ 
+! Then later when we're generating figures, we'll be
+! passing one of these shapes into a script like this:
+ 
+let p1s_shape = "$1%xy%"
+ !-> DEFINE VARIABLE p1s_shape = "xz"
+ 
+! For the specified shape, find the associated overlay command
+! (default is no overlay).
+let p1s_ov = ""
+IF `prd_shapes,r=isready` THEN
+ !-> IF 1         THEN
+      )
+ !-> rep/name=s/range=1:3 (let p1s_this_shape = prd_shapes[i=`s`];      IF `p1s_this_shape EQ p1s_shape` THEN;         let p1s_ov = prd_overlays[i=`s`];         exit/loop;      ENDIF;      )
+!-> REPEAT: S:1
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=1]
+ !-> IF 0 THEN
+!-> REPEAT: S:2
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=2]
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE p1s_ov = prd_overlays[i=2]
+   can var p1s_this_shape
+ENDIF
+ 
+! generate a figure, with the appropriate overlay
+define symbol overcommands = `p1s_ov`
+ !-> define symbol overcommands = plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) {-1e3,1e3,,-1e3,1e3,,-1e3,1e3,,-136,-136,,-126,-126}, {85,85,,50,50,,20,20,,-1e4,1e4,,-1e4,1e4}
+($overcommands)
+ !-> plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) {-1e3,1e3,,-1e3,1e3,,-1e3,1e3,,-136,-136,,-126,-126}, {85,85,,50,50,,20,20,,-1e4,1e4,,-1e4,1e4}
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_list_missing
+! err693_list_missing.jnl
+ 
+let a= {1,2,3}
+let b = 1./0
+ 
+! Ths listing of b is .... was squashed onto the ends of values of a.
+! 1   / 1:  1.000..
+! 2   / 2:  2.000..
+ 
+list a,b
+             X: 0.5 to 3.5
+ Column  1: A is {1,2,3}
+ Column  2: B is 1./0
+             A    B
+1   / 1:  1.000 ....
+2   / 2:  2.000 ....
+3   / 3:  3.000 ....
+ 
+GO bn_reset
+cancel mode verify
+GO err693_shf_subscr
+! err693_shf_subscr.jnl
+! ticket 2231  Subscripts used to compute @SHF-1 at the low end of the axis
+ 
+ 
+def ax/edge/z=0:40:10 zax_t
+def ax/edge/z=5:45:10 zax_w
+let zw = z[gz=zax_w]
+let zdiff = zw - missing(zw[z=@shf:-1],0)
+let zdiff_t = zdiff[gz=zax_t at asn]
+ 
+! a range of K shows the values correctly
+list zdiff_t
+             VARIABLE : ZDIFF[GZ=ZAX_T at ASN]
+             SUBSET   : 4 points (Z)
+ 5    / 1:  10.00
+ 15   / 2:  10.00
+ 25   / 3:  10.00
+ 35   / 4:  10.00
+ 
+! but just K=1 returned a K=0 error
+can mem
+list/k=1 zdiff_t
+             VARIABLE : ZDIFF[GZ=ZAX_T at ASN]
+             Z        : 5
+          10.00
+ 
+! Shift of +1
+can mem
+let zdiff = zw - missing(zw[z=@shf:1],0)
+list/k=4 zdiff_t
+             VARIABLE : ZDIFF[GZ=ZAX_T at ASN]
+             Z        : 35
+          40.00
+list/k=3:4 zdiff_t
+             VARIABLE : ZDIFF[GZ=ZAX_T at ASN]
+             SUBSET   : 2 points (Z)
+ 25   / 3: -10.00
+ 35   / 4:  40.00
+ 
+GO bn_reset
+cancel mode verify
+GO err693_shift_w_region
+! err693_shift_w_region
+! Ticket 2300.  In fact with bounds checking on, the list a[i=@shf] would have
+! caused a Fortran runtime error with out-of-bounds subscripts. The fix for
+! ticket 2301 fixes this as well.
+ 
+set region/x=10:20
+let a = {1,2,3}
+list a
+             VARIABLE : {1,2,3}
+             SUBSET   : 3 points (X)
+ 1   / 1:  1.000
+ 2   / 2:  2.000
+ 3   / 3:  3.000
+list a[i=@shf]
+             VARIABLE : {1,2,3}
+                        shifted by 1 pts on X
+             SUBSET   : 3 points (X)
+ 1   / 1:  2.000
+ 2   / 2:  3.000
+ 3   / 3:   ....
+cancel region
+list a[i=@shf]
+             VARIABLE : {1,2,3}
+                        shifted by 1 pts on X
+             SUBSET   : 3 points (X)
+ 1   / 1:  2.000
+ 2   / 2:  3.000
+ 3   / 3:   ....
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_scalar_grids
+! err693_scalar_grids.jnl
+! See ticket 1602
+ 
+!  multiplication by scalar variable "let one = 1" added
+!  abstract axes to the expression in all directions not
+!  already reperesented in the grid.
+ 
+ 
+! The T averaging is ignored; no T direction in the grid.
+use levitus_climatology
+let a = temp[x=140,y=0,z=0]
+list a[t=1-jan-0001:1-jan-0020 at ave]
+             VARIABLE : TEMP[X=140,Y=0,Z=0]
+             FILENAME : levitus_climatology.cdf
+             LONGITUDE: 140E
+             LATITUDE : 0
+             DEPTH (m): 0
+          29.30
+ 
+! Multiply by a variable which is a constant (prev. this
+! resulted in an illegal use of transform error.)
+let one = 1
+let b = one*a
+list b[t=1-jan-0001:1-jan-0020 at ave]
+             VARIABLE : ONE*A
+             FILENAME : levitus_climatology.cdf
+             DEPTH (m): 0
+          29.30
+ 
+! Test with a constant-array variable.
+let two = {2}
+let c = two*a
+list c[t=1-jan-0001:1-jan-0020 at ave]
+             VARIABLE : TWO*A
+             FILENAME : levitus_climatology.cdf
+             X        : 1
+             DEPTH (m): 0
+          58.59
+ 
+ 
+! check interactions with GC functions (prev. this
+! resulted in an illegal use of transform error.)
+LET v = X[x=1:4:1] + Y[Y=.1:.4:.1]
+LET a = XSEQUENCE( v[I=2:3,J=2:3] ) + Z[Z=.01:.02:.01]
+LIST a[t=1-jan-0001:1-jan-0020 at ave]
+             VARIABLE : XSEQUENCE( V[I=2:3,J=2:3] ) + Z[Z=.01:.02:.01]
+             SUBSET   : 4 by 2 points (X-Z)
+               1      2      3      4    
+               1      2      3      4
+ 0.01  / 1:  2.210  3.210  2.310  3.310
+ 0.02  / 2:  2.220  3.220  2.320  3.320
+list b
+             VARIABLE : ONE*A
+             SUBSET   : 4 by 2 points (X-Z)
+               1      2      3      4    
+               1      2      3      4
+ 0.01  / 1:  2.210  3.210  2.310  3.310
+ 0.02  / 2:  2.220  3.220  2.320  3.320
+ 
+list b[x=@ave,k=@ave]
+             VARIABLE : ONE*A
+             X        : 0.5 to 4.5 (XZ ave)
+             Z        : 0.005 to 0.025 (XZ ave)
+          2.765
+ 
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO bn_permute_ascii
+! bn_permute_ascii.jnl
+! test permutations when reading ascii data, in E and F directions
+! 11/18/2014
+! see ticket 2217: was not working for grids in E and F
+ 
+ 
+! First with T axis
+ 
+! unpermuted
+def axis/t=1:12:1 t12
+define axis/x=1:4:1 x4ax
+def grid/x=x4ax/t=t12 txgrid
+ FILE/SKIP=4/VAR="Tm"/COL=12/order=tx/GRID=txgrid fxdata.dat
+sh dat
+     currently SET data sets:
+    1> ./fxdata.dat  (default)
+ name     title                             I         J         K         L         M         N
+ TM       TM                               1:4       ...       ...       1:12      ...       ...
+ 
+list tm
+             VARIABLE : TM
+             FILENAME : fxdata.dat
+             SUBSET   : 4 by 12 points (X-T)
+               1      2      3      4    
+               1      2      3      4
+ 1    /  1:  -6.85  -6.75  -6.65  -6.55
+ 2    /  2: -11.71 -11.72 -11.73 -11.74
+ 3    /  3: -19.12 -19.22 -19.32 -19.42
+ 4    /  4: -24.81 -24.82 -24.83 -24.84
+ 5    /  5: -27.19 -27.29 -27.39 -27.49
+ 6    /  6: -28.51 -28.52 -28.53 -28.54
+ 7    /  7: -30.27 -30.37 -30.47 -30.57
+ 8    /  8: -31.34 -31.54 -31.64 -31.74
+ 9    /  9: -29.34 -29.44 -29.54 -29.64
+ 10   / 10: -23.29 -23.39 -23.49 -23.59
+ 11   / 11: -14.91 -14.92 -14.93 -14.94
+ 12   / 12:  -8.09  -8.19  -8.29  -8.39
+ 
+! permuted
+def axis/t=1:12:1 t12
+define axis/x=1:4:1 x4ax
+def grid/x=x4ax/t=t12 txgrid
+FILE/SKIP=4/VAR="Tm"/COL=12/order=tx/GRID=txgrid fxdata.dat
+sh dat
+     currently SET data sets:
+    1> ./fxdata.dat  (default)
+ name     title                             I         J         K         L         M         N
+ TM       TM                               1:4       ...       ...       1:12      ...       ...
+ 
+list tm
+             VARIABLE : TM
+             FILENAME : fxdata.dat
+             SUBSET   : 4 by 12 points (X-T)
+               1      2      3      4    
+               1      2      3      4
+ 1    /  1:  -6.85  -6.75  -6.65  -6.55
+ 2    /  2: -11.71 -11.72 -11.73 -11.74
+ 3    /  3: -19.12 -19.22 -19.32 -19.42
+ 4    /  4: -24.81 -24.82 -24.83 -24.84
+ 5    /  5: -27.19 -27.29 -27.39 -27.49
+ 6    /  6: -28.51 -28.52 -28.53 -28.54
+ 7    /  7: -30.27 -30.37 -30.47 -30.57
+ 8    /  8: -31.34 -31.54 -31.64 -31.74
+ 9    /  9: -29.34 -29.44 -29.54 -29.64
+ 10   / 10: -23.29 -23.39 -23.49 -23.59
+ 11   / 11: -14.91 -14.92 -14.93 -14.94
+ 12   / 12:  -8.09  -8.19  -8.29  -8.39
+ 
+! Then same with F axis
+can data/all
+ 
+def axis/f=1:12:1 f12
+define axis/x=1:4:1 x4ax
+def grid/x=x4ax/f=f12 fxgrid
+ FILE/SKIP=4/VAR="Tm"/COL=12/order=fx/GRID=fxgrid fxdata.dat
+sh dat
+     currently SET data sets:
+    1> ./fxdata.dat  (default)
+ name     title                             I         J         K         L         M         N
+ TM       TM                               1:4       ...       ...       ...       ...       1:12
+ 
+list tm
+             VARIABLE : TM
+             FILENAME : fxdata.dat
+             SUBSET   : 4 by 12 points (X-F)
+               1      2      3      4    
+               1      2      3      4
+ 1    /  1:  -6.85  -6.75  -6.65  -6.55
+ 2    /  2: -11.71 -11.72 -11.73 -11.74
+ 3    /  3: -19.12 -19.22 -19.32 -19.42
+ 4    /  4: -24.81 -24.82 -24.83 -24.84
+ 5    /  5: -27.19 -27.29 -27.39 -27.49
+ 6    /  6: -28.51 -28.52 -28.53 -28.54
+ 7    /  7: -30.27 -30.37 -30.47 -30.57
+ 8    /  8: -31.34 -31.54 -31.64 -31.74
+ 9    /  9: -29.34 -29.44 -29.54 -29.64
+ 10   / 10: -23.29 -23.39 -23.49 -23.59
+ 11   / 11: -14.91 -14.92 -14.93 -14.94
+ 12   / 12:  -8.09  -8.19  -8.29  -8.39
+ 
+! Read same data in y-z-t
+can data/all
+ 
+def axis/t=1:6:1 t6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/t=t6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/GRID=grid3d fxdata.dat
+sh dat
+     currently SET data sets:
+    1> ./fxdata.dat  (default)
+ name     title                             I         J         K         L         M         N
+ TM       TM                               ...       1:2       1:4       1:6       ...       ...
+ 
+list tm
+             VARIABLE : TM
+             FILENAME : fxdata.dat
+             SUBSET   : 2 by 4 by 6 points (Y-Z-T)
+             1      2    
+             1      2
+ ---- L:1 T:   1
+ 1   / 1:  -6.85 -11.71
+ 2   / 2: -19.12 -24.81
+ 3   / 3: -27.19 -28.51
+ 4   / 4: -30.27 -31.34
+ ---- L:2 T:   2
+ 1   / 1: -29.34 -23.29
+ 2   / 2: -14.91  -8.09
+ 3   / 3:  -6.75 -11.72
+ 4   / 4: -19.22 -24.82
+ ---- L:3 T:   3
+ 1   / 1: -27.29 -28.52
+ 2   / 2: -30.37 -31.54
+ 3   / 3: -29.44 -23.39
+ 4   / 4: -14.92  -8.19
+ ---- L:4 T:   4
+ 1   / 1:  -6.65 -11.73
+ 2   / 2: -19.32 -24.83
+ 3   / 3: -27.39 -28.53
+ 4   / 4: -30.47 -31.64
+ ---- L:5 T:   5
+ 1   / 1: -29.54 -23.49
+ 2   / 2: -14.93  -8.29
+ 3   / 3:  -6.55 -11.74
+ 4   / 4: -19.42 -24.84
+ ---- L:6 T:   6
+ 1   / 1: -27.49 -28.54
+ 2   / 2: -30.57 -31.74
+ 3   / 3: -29.64 -23.59
+ 4   / 4: -14.94  -8.39
+ 
+! And permuted
+ 
+can data/all
+ 
+def axis/t=1:6:1 t6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/t=t6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/order=tyz/GRID=grid3d fxdata.dat
+sh dat
+     currently SET data sets:
+    1> ./fxdata.dat  (default)
+ name     title                             I         J         K         L         M         N
+ TM       TM                               ...       1:2       1:4       1:6       ...       ...
+ 
+list tm
+             VARIABLE : TM
+             FILENAME : fxdata.dat
+             SUBSET   : 2 by 4 by 6 points (Y-Z-T)
+             1      2    
+             1      2
+ ---- L:1 T:   1
+ 1   / 1:  -6.85 -30.27
+ 2   / 2:  -6.75 -30.37
+ 3   / 3:  -6.65 -30.47
+ 4   / 4:  -6.55 -30.57
+ ---- L:2 T:   2
+ 1   / 1: -11.71 -31.34
+ 2   / 2: -11.72 -31.54
+ 3   / 3: -11.73 -31.64
+ 4   / 4: -11.74 -31.74
+ ---- L:3 T:   3
+ 1   / 1: -19.12 -29.34
+ 2   / 2: -19.22 -29.44
+ 3   / 3: -19.32 -29.54
+ 4   / 4: -19.42 -29.64
+ ---- L:4 T:   4
+ 1   / 1: -24.81 -23.29
+ 2   / 2: -24.82 -23.39
+ 3   / 3: -24.83 -23.49
+ 4   / 4: -24.84 -23.59
+ ---- L:5 T:   5
+ 1   / 1: -27.19 -14.91
+ 2   / 2: -27.29 -14.92
+ 3   / 3: -27.39 -14.93
+ 4   / 4: -27.49 -14.94
+ ---- L:6 T:   6
+ 1   / 1: -28.51  -8.09
+ 2   / 2: -28.52  -8.19
+ 3   / 3: -28.53  -8.29
+ 4   / 4: -28.54  -8.39
+ 
+! Now with Y-Z-E
+ 
+can data/all
+ 
+def axis/e=1:6:1 e6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/e=e6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/GRID=grid3d fxdata.dat
+sh dat
+     currently SET data sets:
+    1> ./fxdata.dat  (default)
+ name     title                             I         J         K         L         M         N
+ TM       TM                               ...       1:2       1:4       ...       1:6       ...
+ 
+list tm
+             VARIABLE : TM
+             FILENAME : fxdata.dat
+             SUBSET   : 2 by 4 by 6 points (Y-Z-E)
+             1      2    
+             1      2
+ ---- M:1 E:   1
+ 1   / 1:  -6.85 -11.71
+ 2   / 2: -19.12 -24.81
+ 3   / 3: -27.19 -28.51
+ 4   / 4: -30.27 -31.34
+ ---- M:2 E:   2
+ 1   / 1: -29.34 -23.29
+ 2   / 2: -14.91  -8.09
+ 3   / 3:  -6.75 -11.72
+ 4   / 4: -19.22 -24.82
+ ---- M:3 E:   3
+ 1   / 1: -27.29 -28.52
+ 2   / 2: -30.37 -31.54
+ 3   / 3: -29.44 -23.39
+ 4   / 4: -14.92  -8.19
+ ---- M:4 E:   4
+ 1   / 1:  -6.65 -11.73
+ 2   / 2: -19.32 -24.83
+ 3   / 3: -27.39 -28.53
+ 4   / 4: -30.47 -31.64
+ ---- M:5 E:   5
+ 1   / 1: -29.54 -23.49
+ 2   / 2: -14.93  -8.29
+ 3   / 3:  -6.55 -11.74
+ 4   / 4: -19.42 -24.84
+ ---- M:6 E:   6
+ 1   / 1: -27.49 -28.54
+ 2   / 2: -30.57 -31.74
+ 3   / 3: -29.64 -23.59
+ 4   / 4: -14.94  -8.39
+ 
+can data/all
+ 
+def axis/e=1:6:1 e6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/e=e6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/order=eyz/GRID=grid3d fxdata.dat
+sh dat
+     currently SET data sets:
+    1> ./fxdata.dat  (default)
+ name     title                             I         J         K         L         M         N
+ TM       TM                               ...       1:2       1:4       ...       1:6       ...
+ 
+list tm
+             VARIABLE : TM
+             FILENAME : fxdata.dat
+             SUBSET   : 2 by 4 by 6 points (Y-Z-E)
+             1      2    
+             1      2
+ ---- M:1 E:   1
+ 1   / 1:  -6.85 -30.27
+ 2   / 2:  -6.75 -30.37
+ 3   / 3:  -6.65 -30.47
+ 4   / 4:  -6.55 -30.57
+ ---- M:2 E:   2
+ 1   / 1: -11.71 -31.34
+ 2   / 2: -11.72 -31.54
+ 3   / 3: -11.73 -31.64
+ 4   / 4: -11.74 -31.74
+ ---- M:3 E:   3
+ 1   / 1: -19.12 -29.34
+ 2   / 2: -19.22 -29.44
+ 3   / 3: -19.32 -29.54
+ 4   / 4: -19.42 -29.64
+ ---- M:4 E:   4
+ 1   / 1: -24.81 -23.29
+ 2   / 2: -24.82 -23.39
+ 3   / 3: -24.83 -23.49
+ 4   / 4: -24.84 -23.59
+ ---- M:5 E:   5
+ 1   / 1: -27.19 -14.91
+ 2   / 2: -27.29 -14.92
+ 3   / 3: -27.39 -14.93
+ 4   / 4: -27.49 -14.94
+ ---- M:6 E:   6
+ 1   / 1: -28.51  -8.09
+ 2   / 2: -28.52  -8.19
+ 3   / 3: -28.53  -8.29
+ 4   / 4: -28.54  -8.39
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO bn_lon_lat_time_string
+! 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.
+ 
+show function lon_lat_time_string
+LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
+    Generate strings from longitude,latitude,time
+    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 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}
+ 
+! latitudes are labeled N or S
+let lat = {3.12, 4.9, -15.03}
+ 
+! Time steps are interpreted in terms of a time axis
+let time = {1,2,3}
+define axis/t=1-jan-2001:31-jan-2001:1/units=days/t0=1-jan-2001 taxis
+let tt = t[gt=taxis]
+ 
+list lon_lat_time_string(lon, lat, time, tt, "my_string")
+             VARIABLE : LON_LAT_TIME_STRING(LON, LAT, TIME, TT, "my_string")
+             SUBSET   : 3 points (X)
+ 1   / 1:"my_string_187.6E_3.12N_02-JAN-2001" 
+ 2   / 2:"my_string_210E_4.9N_03-JAN-2001"    
+ 3   / 3:"my_string_340.5E_15.03S_04-JAN-2001"
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO bn_save_justdim
+! 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.
+!
+! Allows for a dimension and a 2-D variable to have the same name.
+!  see ticket 2227
+! 1/21/2015 ACM
+ 
+use twodtime.nc
+sh dat
+     currently SET data sets:
+    1> ./twodtime.nc  (default)
+ name     title                             I         J         K         L         M         N
+ TIME     GRIB forecast or observation ti  ...       ...       ...       1:8       ...       1:3
+ 
+ 
+! previously this gave a name-in-use error
+save/file=a.nc/clobber time
+ 
+!  The file has 2D TIME variable, and TIME as a dimension.
+sp ncdump a.nc >> all_ncdump.out
+ 
+! Now, keep case and axis name as on input
+CANCEL MODE upcase
+ 
+save/clobber/keep/file=a.nc time
+sp ncdump a.nc >> all_ncdump.out
+ 
+SET MODE/LAST upcase_output
+ 
+GO bn_reset
+cancel mode verify
+GO bn_time2d
+! bn_time2d.jnl
+! 1/30/2015 ACM
+ 
+! initial changes to handle 2d time variable: forecast and time
+! plot both axes as formatted time axes.
+ 
+use twodtime.nc
+sh dat
+     currently SET data sets:
+    1> ./twodtime.nc  (default)
+ name     title                             I         J         K         L         M         N
+ TIME     GRIB forecast or observation ti  ...       ...       ...       1:8       ...       1:3
+ 
+sh att time
+     attributes for dataset: ./twodtime.nc
+ 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 
+ time.orig_file_axname = time 
+ 
+!  The file has the t axis as just a dimension. Define another
+!  axis with time units
+ 
+def axis/t=1:8:1/units=month/t0=1-nov-2014 taxis
+let time2d = time[gt=taxis at asn]
+set att/like=time time2d
+ 
+shade time2d
+shade/trans time2d
+ 
+GO bn_reset
+cancel mode verify
+GO bn_legend_labels
+! bn_legend_labels.jnl
+! The legend labels on a multi-line plot describe the
+!  variable and context but are not controlable by the user.
+!
+! /KEY=title tells Ferret to label the legend with the variable
+! title.
+! *acm* 2/4/2015 Ticket 2231
+ 
+use coads_climatology
+let/title=January sst1 = sst[l=1]
+let/title=February sst2 = sst[l=2]
+let/title=March sst3 = sst[l=3]
+ 
+! Draw a plot and show the labels on the legend.
+plot/x=300/y=20:65 sst1,sst2,sst3
+sh sym lab7,lab8,lab9
+LAB7 = "SST1[T=16-JAN 06:00]"
+LAB9 = "SST3[T=17-MAR 02:58]"
+LAB8 = "SST2[T=15-FEB 16:29]"
+ 
+! Draw a plot with legend labeled with the variable titles.
+plot/x=300/y=20:65/key=title  sst1,sst2,sst3
+sh sym lab7,lab8,lab9
+LAB7 = "January"
+LAB9 = "March"
+LAB8 = "February"
+ 
+GO bn_reset
+cancel mode verify
+GO bn_DQ
+! bn_DQ.jnl  *sh* 2/2015
+! test the use of _DQ_ and _SQ_ in lieu of " and '
+ 
+let foobar = 1
+let foobar_ = 1
+ 
+LIST foobar, foobar_
+ Column  1: FOOBAR is 1
+ Column  2: FOOBAR_ is 1
+         FOOBAR  FOOBAR_
+I / *:     1.000   1.000
+ 
+LIST    "foobar"    ! bug fix: pre-V694 used to list the value of foobar
+             VARIABLE : "foobar"
+        "foobar"
+let a = "foobar"
+list a
+             VARIABLE : "foobar"
+        "foobar"
+ 
+list    _DQ_foobar_DQ_
+             VARIABLE : _DQ_foobar_DQ_
+        "foobar"
+let a = _DQ_foobar_DQ_
+list a
+             VARIABLE : _DQ_foobar_DQ_
+        "foobar"
+ 
+! ======
+list    "_DQ_foobar_DQ_"
+             VARIABLE : "_DQ_foobar_DQ_"
+        "_DQ_foobar_DQ_"
+let a = "_DQ_foobar_DQ_"
+list a
+             VARIABLE : "_DQ_foobar_DQ_"
+        "_DQ_foobar_DQ_"
+ 
+list    _DQ_"foobar"_DQ_
+             VARIABLE : _DQ_"foobar"_DQ_
+        ""foobar""
+let a = _DQ_"foobar"_DQ_
+list a
+             VARIABLE : _DQ_"foobar"_DQ_
+        ""foobar""
+ 
+! ======
+list    'FOOBAR'
+             VARIABLE : 1
+          1.000
+let a = 'FOOBAR'
+list a
+             VARIABLE : 'FOOBAR'
+          1.000
+ 
+list    _SQ_FOOBAR_SQ_
+             VARIABLE : 1
+          1.000
+let a = _SQ_FOOBAR_SQ_
+list a
+             VARIABLE : _SQ_FOOBAR_SQ_
+          1.000
+ 
+! ======
+list       "'foobar'"
+             VARIABLE : "'foobar'"
+        "'foobar'"
+let a =    "'foobar'"
+list a
+             VARIABLE : "'foobar'"
+        "'foobar'"
+ 
+list    _DQ_'foobar'_DQ_
+             VARIABLE : _DQ_'foobar'_DQ_
+        "'foobar'"
+let a = _DQ_'foobar'_DQ_
+list a
+             VARIABLE : _DQ_'foobar'_DQ_
+        "'foobar'"
+ 
+! ======
+list       "_SQ_foobar_SQ_"
+             VARIABLE : "_SQ_foobar_SQ_"
+        "_SQ_foobar_SQ_"
+let a =    "_SQ_foobar_SQ_"
+list a
+             VARIABLE : "_SQ_foobar_SQ_"
+        "_SQ_foobar_SQ_"
+ 
+list    _DQ__SQ_foobar_SQ__DQ_
+             VARIABLE : _DQ__SQ_foobar_SQ__DQ_
+        "_SQ_foobar_SQ_"
+let a = _DQ__SQ_foobar_SQ__DQ_
+list a
+             VARIABLE : _DQ__SQ_foobar_SQ__DQ_
+        "_SQ_foobar_SQ_"
+ 
+! ======
+list    'FOOBAR'    +    'FOOBAR'
+             VARIABLE : 'FOOBAR'    +    'FOOBAR'
+          2.000
+let a = 'FOOBAR'    +    'FOOBAR'
+list a
+             VARIABLE : 'FOOBAR'    +    'FOOBAR'
+          2.000
+ 
+list    _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_  ! should behave like the preceding
+             VARIABLE : _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_
+          2.000
+let a = _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_
+list a
+             VARIABLE : _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_
+          2.000
+ 
+! ====== demonstrate hiding all sorts of characters
+let a = _DQ_'"+-/;_SQ_foobar"'_DQ_
+list a
+             VARIABLE : _DQ_'"+-/;_SQ_foobar"'_DQ_
+        "'"+-/;_SQ_foobar"'"
+ 
+! ======
+say     "hello"
+hello
+say  _DQ_hello_DQ_
+hello
+ 
+! ======
+list    {"foobar","foobar"}
+             VARIABLE : {"foobar","foobar"}
+             SUBSET   : 2 points (X)
+ 1   / 1:"foobar"
+ 2   / 2:"foobar"
+let a = {"foobar","foobar"}
+list a
+             VARIABLE : {"foobar","foobar"}
+             SUBSET   : 2 points (X)
+ 1   / 1:"foobar"
+ 2   / 2:"foobar"
+ 
+list    {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+             VARIABLE : {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+             SUBSET   : 2 points (X)
+ 1   / 1:"foobar"
+ 2   / 2:"foobar"
+let a = {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+list a
+             VARIABLE : {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+             SUBSET   : 2 points (X)
+ 1   / 1:"foobar"
+ 2   / 2:"foobar"
+ 
+list    {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_} ! DQ used to protect '"'
+             VARIABLE : {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_}
+             SUBSET   : 2 points (X)
+ 1   / 1:""foobar""
+ 2   / 2:""foobar""
+let a = {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_}
+list a
+             VARIABLE : {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_}
+             SUBSET   : 2 points (X)
+ 1   / 1:""foobar""
+ 2   / 2:""foobar""
+ 
+! ======
+list    {SPAWN:"ls weird_name1.cdf","foobar"}
+             VARIABLE : {SPAWN:"ls weird_name1.cdf","foobar"}
+             SUBSET   : 2 points (X)
+ 1   / 1:"weird_name1.cdf"
+ 2   / 2:"foobar"         
+let a = {SPAWN:"ls weird_name1.cdf","foobar"}
+list a
+             VARIABLE : {SPAWN:"ls weird_name1.cdf","foobar"}
+             SUBSET   : 2 points (X)
+ 1   / 1:"weird_name1.cdf"
+ 2   / 2:"foobar"         
+ 
+list    {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+             VARIABLE : {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+             SUBSET   : 2 points (X)
+ 1   / 1:"weird_name1.cdf"
+ 2   / 2:"foobar"         
+let a = {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+list a
+             VARIABLE : {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+             SUBSET   : 2 points (X)
+ 1   / 1:"weird_name1.cdf"
+ 2   / 2:"foobar"         
+ 
+list    {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_} ! DQ protects '"'
+             VARIABLE : {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+             SUBSET   : 2 points (X)
+ 1   / 1:"weird_name1.cdf"
+ 2   / 2:"foobar"         
+let a = {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+list a
+             VARIABLE : {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+             SUBSET   : 2 points (X)
+ 1   / 1:"weird_name1.cdf"
+ 2   / 2:"foobar"         
+ 
+! ======
+! in repl_exprns:
+say `"=" EQ "="`
+ !-> MESSAGE/CONTINUE 1
+1
+say `_DQ_=_DQ_ EQ _DQ_=_DQ_`
+ !-> MESSAGE/CONTINUE 1
+1
+say `_DQ_"="_DQ_ EQ _DQ_"="_DQ_`            ! DQ used to protect '"'
+ !-> MESSAGE/CONTINUE 1
+1
+ 
+! in xeq_if:
+IF 1 THEN SAY "I is too big" ENDIF
+I is too big
+IF 1 THEN SAY _DQ_I is too big_DQ_ ENDIF
+I is too big
+IF 1 THEN SAY _DQ_"I is too big"_DQ_ ENDIF  ! DQ used to protect '"'
+"I is too big"
+ 
+! ======
+DEFINE SYMBOL a    "foobar"
+say ($a)
+ !-> MESSAGE/CONTINUE foobar
+foobar
+DEFINE SYMBOL a _DQ_foobar_DQ_
+say ($a)
+ !-> MESSAGE/CONTINUE foobar
+foobar
+ 
+! ======
+DEFINE SYMBOL a    "(`foobar,return=xaxis`)"
+ !-> DEFINE SYMBOL a    "(ABSTRACT)"
+say ($a)
+ !-> MESSAGE/CONTINUE (ABSTRACT)
+(ABSTRACT)
+DEFINE SYMBOL a _DQ_(`foobar,return=xaxis`)_DQ_
+ !-> DEFINE SYMBOL a _DQ_(ABSTRACT)_DQ_
+say ($a)
+ !-> MESSAGE/CONTINUE (ABSTRACT)
+(ABSTRACT)
+ 
+! ======
+GO bn_DQ.sub _DQ_+-/_SQ_\!foo"bar;_SQ_"_DQ_    "_DQ_+-/_SQ_\!foobar;_SQ_"
+! bn_DQ.sub   arg_with_DQ    arg_with_quotes
+ 
+SAY _DQ_ "-quotations   ok as in $1%any_arg_with_quotes%_DQ_
+ !-> MESSAGE/CONTINUE _DQ_ "-quotations   ok as in +-/_SQ_!foo"bar;_SQ_"_DQ_
+ "-quotations   ok as in +-/_SQ_!foo"bar;_SQ_"
+SAY    "_DQ_ delimiters ok as in $2%any_arg_with_DQ%"
+ !-> MESSAGE/CONTINUE    "_DQ_ delimiters ok as in _DQ_+-/_SQ_!foobar;_SQ_"
+_DQ_ delimiters ok as in _DQ_+-/_SQ_!foobar;_SQ_
+ 
+ 
+! ======  string arguments to functions
+list STRCAT(   "HELL"   ,   "O"   )
+             VARIABLE : STRCAT(   "HELL"   ,   "O"   )
+        "HELLO"
+list STRCAT(_DQ_HELL_DQ_,_DQ_O_DQ_)
+             VARIABLE : STRCAT(_DQ_HELL_DQ_,_DQ_O_DQ_)
+        "HELLO"
+ 
+! ======
+let/title=   "title of A"    a = 1
+list a
+             VARIABLE : title of A
+          1.000
+let/title=_DQ_title of A_DQ_ a = 1
+list a
+             VARIABLE : title of A
+          1.000
+let/title=_DQ_"title of A"_DQ_ a = 1        ! DQ used to protect '"'
+list a
+             VARIABLE : "title of A"
+          1.000
+ 
+! ======
+use weird_name1.cdf
+list    'v2-and-minus'[i=4:6]
+             VARIABLE : SIN(2+I/10)
+             FILENAME : weird_name1.cdf
+             SUBSET   : 3 points (X)
+ 4   / 4:  0.6755
+ 5   / 5:  0.5985
+ 6   / 6:  0.5155
+list _SQ_v2-and-minus_SQ_[i=4:6]
+             VARIABLE : SIN(2+I/10)
+             FILENAME : weird_name1.cdf
+             SUBSET   : 3 points (X)
+ 4   / 4:  0.6755
+ 5   / 5:  0.5985
+ 6   / 6:  0.5155
+list    'v2-and-minus'[i=4:6]
+             VARIABLE : SIN(2+I/10)
+             FILENAME : weird_name1.cdf
+             SUBSET   : 3 points (X)
+ 4   / 4:  0.6755
+ 5   / 5:  0.5985
+ 6   / 6:  0.5155
+list _SQ_v2-and-minus_SQ_[i=4:6]
+             VARIABLE : SIN(2+I/10)
+             FILENAME : weird_name1.cdf
+             SUBSET   : 3 points (X)
+ 4   / 4:  0.6755
+ 5   / 5:  0.5985
+ 6   / 6:  0.5155
+list    'v2-and-minus'[i=4:6]    / 'X'[i=4:6]
+             VARIABLE : 'v2-and-minus'[I=4:6]    / 'X'[I=4:6]
+             FILENAME : weird_name1.cdf
+             SUBSET   : 3 points (X)
+ 4   / 4: -0.8741
+ 5   / 5: -0.8482
+ 6   / 6: -0.8166
+list _SQ_v2-and-minus_SQ_[i=4:6] / _SQ_X_SQ_[i=4:6]
+             VARIABLE : _SQ_v2-and-minus_SQ_[I=4:6] / _SQ_X_SQ_[I=4:6]
+             FILENAME : weird_name1.cdf
+             SUBSET   : 3 points (X)
+ 4   / 4: -0.8741
+ 5   / 5: -0.8482
+ 6   / 6: -0.8166
+ 
+! ======
+SET REGION/T=   "1-jan-2001":"15-jan-2001"
+SHOW REGION
+default region:
+        X/I is unspecified
+        Y/J is unspecified
+        Z/K is unspecified
+        T=-6.3146E+10:-6.3147E+10
+        E/M is unspecified
+        F/N is unspecified
+SET REGION/T=_DQ_1-jan-2001_DQ_:_DQ_15-jan-2001_DQ_
+SHOW REGION
+default region:
+        X/I is unspecified
+        Y/J is unspecified
+        Z/K is unspecified
+        T=-6.3146E+10:-6.3147E+10
+        E/M is unspecified
+        F/N is unspecified
+! ==> THE clean_draconian FILTER REMOVES THE FOLLOWING DATE-TIME LINES FROM LOG
+SET REGION/T=   "1-jan-2001:12:00":"15-jan-2001 12:00"
+SHOW REGION
+default region:
+        X/I is unspecified
+        Y/J is unspecified
+        Z/K is unspecified
+        T=-6.3146E+10:-6.3147E+10
+        E/M is unspecified
+        F/N is unspecified
+SET REGION/T=_DQ_1-jan-2001:12:00_DQ_:_DQ_15-jan-2001 12:00_DQ_
+SHOW REGION
+default region:
+        X/I is unspecified
+        Y/J is unspecified
+        Z/K is unspecified
+        T=-6.3146E+10:-6.3147E+10
+        E/M is unspecified
+        F/N is unspecified
+ 
+! ======
+DEFINE ATTRIBUTE foobar.some_text =    "some text about foobar"
+SHOW ATTRIBUTE/ALL foobar
+     attributes for user-defined variables
+ foobar.long_name = 1 
+ foobar.missing_value = -1.E+34
+ foobar.some_text = some text about foobar 
+DEFINE ATTRIBUTE foobar.some_text = _DQ_some text about foobar_DQ_
+SHOW ATTRIBUTE/ALL foobar
+     attributes for user-defined variables
+ foobar.long_name = 1 
+ foobar.missing_value = -1.E+34
+ foobar.some_text = some text about foobar 
+DEFINE ATTR foobar.some_text = _DQ_"quoted attribute"_DQ_ ! DQ protects '"'
+SHOW ATTRIBUTE/ALL foobar
+     attributes for user-defined variables
+ foobar.long_name = 1 
+ foobar.missing_value = -1.E+34
+ foobar.some_text = "quoted attribute" 
+ 
+! ======
+SPAWN    "ls weird_name1.*"
+weird_name1.cdf
+SPAWN _DQ_ls weird_name1.*_DQ_
+weird_name1.cdf
+ 
+! ======
+LET a = {"first.nc", SPAWN:   "ls weird_name1.*"   ,"last.nc"}
+LIST a
+             VARIABLE : {"first.nc", SPAWN:   "ls weird_name1.*"   ,"last.nc"}
+             SUBSET   : 3 points (X)
+ 1   / 1:"first.nc"       
+ 2   / 2:"weird_name1.cdf"
+ 3   / 3:"last.nc"        
+LET a = {"first.nc", SPAWN:_DQ_ls weird_name1.*_DQ_,"last.nc"}
+LIST a
+             VARIABLE : {"first.nc", SPAWN:_DQ_ls weird_name1.*_DQ_,"last.nc"}
+             SUBSET   : 3 points (X)
+ 1   / 1:"first.nc"       
+ 2   / 2:"weird_name1.cdf"
+ 3   / 3:"last.nc"        
+ 
+! =========================
+! !!!!!!  TEMPORARY LINE
+! !!!!!!  see bug report err693_xeq_show.jnl
+show data   ! to side step dset=-1 left behind by SHOW ATTRIBUTE previously
+     currently SET data sets:
+    1> ./weird_name1.cdf  (default)
+ name     title                             I         J         K         L         M         N
+ v1       lower case v1                    1:20      ...       ...       ...       ...       ...
+ v2-and-minus
+          SIN(2+I/10)                      1:20      ...       ...       ...       ...       ...
+ V1       Upper case V1                    1:20      ...       ...       ...       ...       ...
+ I        SIN(4+I/10)                      1:20      ...       ...       ...       ...       ...
+ X        SIN(5+I/10)                      1:20      ...       ...       ...       ...       ...
+ 
+! !!!!!!
+! =========================
+                                                                                ! ======
+define grid/x=_DQ_v1_DQ_ gg
+show grid gg
+    GRID GG
+ name       axis              # pts   start                end
+ XAX1_20   X                   20 r   1                    20
+ normal    Y
+ normal    Z
+ normal    T
+ normal    E
+ normal    F
+ 
+! ======
+LET/TITLE= _DQ_'A title w/ "sq"'. Ship_Ka'imimoana_DQ_ A = 1 ! ' char for emacs
+LIST A
+             VARIABLE : 'A title w/ "sq"'. Ship_Ka'imimoana
+          1.000
+ 
+! ======
+contour/LEVELS=    "(-10,10,2)DARK(-10,10,8)"    \
+               10*SIN(X[x=1:5:.1])*COS(Y[Y=1:5:.1])
+contour/LEVELS= _DQ_(-10,10,2)DARK(-10,10,8)_DQ_ \
+               10*SIN(X[x=1:5:.1])*COS(Y[Y=1:5:.1])
+ 
+! ====== parse, parsex routines
+!plot/set x[i=1:3]^2
+!ppl title    "'A title w/ single quotes'. Ship Ka'imimoana"
+!ppl plot
+!label 2,5,0 "'A title w/ single quotes'. Ship Ka'imimoana"
+ 
+plot/set x[i=1:3]^2
+ppl title _DQ_'A title w/ "single quotes"'. Ship_Ka'imimoana_DQ_ ! ' for emacs
+ppl plot
+label 2,5,0 _DQ_'A title w/ "single quotes"'. Ship_Ka'imimoana_DQ_ ! ' emacs
+ppl %label 2,4,0 _DQ_'A title w/ "single quotes"'. Ship_Ka'imimoana_DQ_ ! ' emacs
+ 
+! ======  EQUAL_PEMUTE
+list/order=_DQ_yx_DQ_ 10*i[i=1:3] + j[j=1:2]
+             VARIABLE : 10*I[I=1:3] + J[J=1:2]
+             SUBSET   : 2 by 3 points (Y-X)
+             1      2    
+             1      2
+ 1   / 1:  11.00  12.00
+ 2   / 2:  21.00  22.00
+ 3   / 3:  31.00  32.00
+ 
+! ======  EQUAL_COLOR
+plot/color=_DQ_red_DQ_ i[i=1:100]^2
+ 
+! ======  EQUAL_RANGE
+plot/vlim=-2:2/hlim="1-jan-1980":"15-feb-1980" \
+    SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+plot/vlim=-2:2/hlim=_DQ_1-jan-1980_DQ_:_DQ_15-feb-1980_DQ_ \
+    SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+! ==> THE clean_draconian FILTER REMOVES THE FOLLOWING DATE-TIME LINES FROM LOG
+plot/vlim=-2:2/hlim="1-jan-1980":"15-feb-1980:12:00" \
+    SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+plot/vlim=-2:2/hlim=_DQ_1-jan-1980_DQ_:_DQ_15-feb-1980:12:00_DQ_ \
+    SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+ 
+! the following usages for _DQ_ and _SQ_ are NOT supported:
+! 1. internal PLOT+ syntax
+!    e.g. PPL XFOR (i5, ''LONW'')
+ 
+! 2. quote used as a delimiter for symbol substitution
+!    e.g. ($mysymbol"0|red>1|green>2")     ! several single char als.  e.g. "%"
+ 
+! in xeq_set:  double quotes around SET MODE argument -- _DQ_ not supported
+ 
+! in put_label: special hack for "'date'" -- _SQ_ not supported
+ 
+! it isn't clear that there is really a requirement for the _SQ_ syntax at all
+! since we are adding this feature to meet our own needs in LAS, we won't
+! make the extra effort to hit all of the obscure cases.  As a result, the
+! occurrences of IF string .EQ. "'" in these routines will be ignored
+!   - break_varname
+!   - break_varattname
+!   - inherit_attrs
+ 
+! in xeq_define.F:  DEFINE AXIS/NAME='my-name' is of unclear purpose
+ 
+! *********** v6.95Additions ***********
+ 
+GO bn_reset
+cancel mode verify
+GO bn695_bug_fixes
+! bn695_bug_fixes
+! test various fixes that went into version 6.95
+ 
+GO bn_reset
+cancel mode verify
+GO err694_shf_missing
+! err694_shf_missing.jnl
+! Test the fix for ticket 2314
+ 
+! This had been getting a missing-result; now is correct
+use gt4d011.cdf
+list/i=100/j=50/k=1/l=24 temp[l=@shf]
+             VARIABLE : TEMPERATURE (deg. C)
+             FILENAME : gt4d011.cdf
+             LONGITUDE: 130.5W
+             LATITUDE : 1.5N
+             DEPTH (m): 5
+             TIME     : 04-JAN-1983 10:00 (shifted by 1 pts)
+          32.10
+ 
+! Check shift that takes us beyond the end of a modulo axis (at x=20)
+can dat/all; use coads_climatology
+list/x=10:30/y=-60/l=1  sst
+             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 10 points (LONGITUDE)
+             LATITUDE : 60S (interpolated)
+             TIME     : 16-JAN 06:00
+ 11E   / -4:  0.422
+ 13E   / -3:  0.368
+ 15E   / -2:  0.505
+ 17E   / -1:  0.207
+ 19E   /  0:  0.583
+ 21E   /  1:  0.734
+ 23E   /  2:  0.472
+ 25E   /  3:  0.526
+ 27E   /  4:  0.820
+ 29E   /  5:  1.017
+list/x=10:30/y=-60/l=1  sst[i=@shf:3]
+             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
+                        shifted by 3 pts on X
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 10 points (LONGITUDE)
+             LATITUDE : 60S (interpolated)
+             TIME     : 16-JAN 06:00
+ 11E   / -4:  0.207
+ 13E   / -3:  0.583
+ 15E   / -2:  0.734
+ 17E   / -1:  0.472
+ 19E   /  0:  0.526
+ 21E   /  1:  0.820
+ 23E   /  2:  1.017
+ 25E   /  3:  1.062
+ 27E   /  4:  1.423
+ 29E   /  5:  1.221
+ 
+GO bn_reset
+cancel mode verify
+GO err694_longname_showdat
+! err694_longname_showdat.jnl
+! ticket 2317
+!
+! Make a file whose name starts the same as file with long name.
+sp rm WestCoastCarbon_9d9c_f562_77b5_5.nc
+sp ln -s WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc WestCoastCarbon_9d9c_f562_77b5_5.nc
+ 
+use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+ 
+! Long name was not matched by SHOW DAT filename
+! this previously returned an unknown dataset error
+sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
+     currently SET data sets:
+    1> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc  (default)
+ name     title                             I         J         K         L         M         N
+ PROF     Prof                             ...       ...       ...       ...       1:21      ...
+ TIME     Time                             ...       ...       ...       ...       1:21      ...
+ LATITUDE Latitude                         ...       ...       ...       ...       1:21      ...
+ LONGITUDE
+          Longitude                        ...       ...       ...       ...       1:21      ...
+ ROWSIZE  Number of Observations for this  ...       ...       ...       ...       1:21      ...
+ PRESS_DB PRESS_DB                         1:373     ...       ...       ...       ...       ...
+ PCO2     PCO2                             1:373     ...       ...       ...       ...       ...
+ 
+ 
+! If a file matched to 1st 32 characters, the shorter-named
+! datset was mistakenly returned.
+ 
+use WestCoastCarbon_9d9c_f562_77b5_5
+sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
+     currently SET data sets:
+    1> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+ name     title                             I         J         K         L         M         N
+ PROF     Prof                             ...       ...       ...       ...       1:21      ...
+ TIME     Time                             ...       ...       ...       ...       1:21      ...
+ LATITUDE Latitude                         ...       ...       ...       ...       1:21      ...
+ LONGITUDE
+          Longitude                        ...       ...       ...       ...       1:21      ...
+ ROWSIZE  Number of Observations for this  ...       ...       ...       ...       1:21      ...
+ PRESS_DB PRESS_DB                         1:373     ...       ...       ...       ...       ...
+ PCO2     PCO2                             1:373     ...       ...       ...       ...       ...
+ 
+ 
+sp rm WestCoastCarbon_9d9c_f562_77b5_5.nc
+ 
+GO bn_reset
+cancel mode verify
+GO err693_std4d
+! err693_std4d
+! Check fix to ticket 2319: std transform in multi-dimensions
+ 
+ 
+let a = x[gx=1:3:1] * y[gy=1:3:1]
+let astd = a[x=@std,y=@std]
+let avar = a[x=@var,y=@var]
+let a2 = a^2
+let avar_calc = a2[x=@ave,y=@ave] - a[x=@ave,y=@ave]^2
+let astd_x = a[x=@std]
+let astd_x_y = astd_x[y=@std]
+ 
+! STD and VAR in x and y together; vs astd_x_y separately
+list astd^2, avar, avar_calc, astd_x_y^2
+             X: 0.5 to 3.5
+             Y: 0.5 to 3.5
+ Column  1: EX#1 is ASTD^2
+ Column  2: AVAR is A[X=@VAR,Y=@VAR]
+ Column  3: AVAR_CALC is A2[X=@AVE,Y=@AVE] - A[X=@AVE,Y=@AVE]^2
+ Column  4: EX#4 is ASTD_X_Y^2
+           EX#1   AVAR  AVAR_CA   EX#4
+I / *:     5.778  5.778   5.778  0.4444
+ 
+ 
+! Now in the E and F directions
+ 
+let a = _e[ge=1:3:1] * _f[gf=1:3:1]
+let astd = a[e=@std,f=@std]
+let avar = a[e=@var,f=@var]
+let a2 = a^2
+let avar_calc = a2[e=@ave,f=@ave] - a[e=@ave,f=@ave]^2
+let astd_e = a[e=@std]
+let astd_e_f = astd_e[f=@std]
+ 
+list astd^2, avar, avar_calc, astd_e_f^2
+             E: 0.5 to 3.5
+             F: 0.5 to 3.5
+ Column  1: EX#1 is ASTD^2
+ Column  2: AVAR is A[E=@VAR,F=@VAR]
+ Column  3: AVAR_CALC is A2[E=@AVE,F=@AVE] - A[E=@AVE,F=@AVE]^2
+ Column  4: EX#4 is ASTD_E_F^2
+           EX#1   AVAR  AVAR_CA   EX#4
+I / *:     5.778  5.778   5.778  0.4444
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO bn_f_tax_fcns
+! bn_f_from_tax_fcns.jnl
+! test tax_* functions returning results from a
+! time-formatted axis in the F direction
+!
+! 2/2015 ACM
+ 
+define axis/f=1-jan-2011:31-jan-2011:1/units=hours fax
+ 
+ 
+ 
+let ff = _f[gf=fax]
+! Test RETURN=F0
+say `ff,return=F0`
+ !-> MESSAGE/CONTINUE 15-JAN-1901
+15-JAN-1901
+ 
+list/N=20:30 tax_datestring(_F[g=ff],ff,"minute")
+             VARIABLE : TAX_DATESTRING(_F[G=FF],FF,"minute")
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:"01-JAN-2011 19:00"
+ 01-JAN-2011 20:00 / 21:"01-JAN-2011 20:00"
+ 01-JAN-2011 21:00 / 22:"01-JAN-2011 21:00"
+ 01-JAN-2011 22:00 / 23:"01-JAN-2011 22:00"
+ 01-JAN-2011 23:00 / 24:"01-JAN-2011 23:00"
+ 02-JAN-2011 00:00 / 25:"02-JAN-2011 00:00"
+ 02-JAN-2011 01:00 / 26:"02-JAN-2011 01:00"
+ 02-JAN-2011 02:00 / 27:"02-JAN-2011 02:00"
+ 02-JAN-2011 03:00 / 28:"02-JAN-2011 03:00"
+ 02-JAN-2011 04:00 / 29:"02-JAN-2011 04:00"
+ 02-JAN-2011 05:00 / 30:"02-JAN-2011 05:00"
+list/N=20:30 tax_datestring(_F[g=ff],ff,"hour")
+             VARIABLE : TAX_DATESTRING(_F[G=FF],FF,"hour")
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:"01-JAN-2011 19"
+ 01-JAN-2011 20:00 / 21:"01-JAN-2011 20"
+ 01-JAN-2011 21:00 / 22:"01-JAN-2011 21"
+ 01-JAN-2011 22:00 / 23:"01-JAN-2011 22"
+ 01-JAN-2011 23:00 / 24:"01-JAN-2011 23"
+ 02-JAN-2011 00:00 / 25:"02-JAN-2011 00"
+ 02-JAN-2011 01:00 / 26:"02-JAN-2011 01"
+ 02-JAN-2011 02:00 / 27:"02-JAN-2011 02"
+ 02-JAN-2011 03:00 / 28:"02-JAN-2011 03"
+ 02-JAN-2011 04:00 / 29:"02-JAN-2011 04"
+ 02-JAN-2011 05:00 / 30:"02-JAN-2011 05"
+list/N=20:30 tax_datestring(_F[g=ff],ff,"day")
+             VARIABLE : TAX_DATESTRING(_F[G=FF],FF,"day")
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:"01-JAN-2011"
+ 01-JAN-2011 20:00 / 21:"01-JAN-2011"
+ 01-JAN-2011 21:00 / 22:"01-JAN-2011"
+ 01-JAN-2011 22:00 / 23:"01-JAN-2011"
+ 01-JAN-2011 23:00 / 24:"01-JAN-2011"
+ 02-JAN-2011 00:00 / 25:"02-JAN-2011"
+ 02-JAN-2011 01:00 / 26:"02-JAN-2011"
+ 02-JAN-2011 02:00 / 27:"02-JAN-2011"
+ 02-JAN-2011 03:00 / 28:"02-JAN-2011"
+ 02-JAN-2011 04:00 / 29:"02-JAN-2011"
+ 02-JAN-2011 05:00 / 30:"02-JAN-2011"
+list/N=20:30 tax_dayfrac(_F[g=ff],ff)
+             VARIABLE : TAX_DAYFRAC(_F[G=FF],FF)
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:  0.7917
+ 01-JAN-2011 20:00 / 21:  0.8333
+ 01-JAN-2011 21:00 / 22:  0.8750
+ 01-JAN-2011 22:00 / 23:  0.9167
+ 01-JAN-2011 23:00 / 24:  0.9583
+ 02-JAN-2011 00:00 / 25:  0.0000
+ 02-JAN-2011 01:00 / 26:  0.0417
+ 02-JAN-2011 02:00 / 27:  0.0833
+ 02-JAN-2011 03:00 / 28:  0.1250
+ 02-JAN-2011 04:00 / 29:  0.1667
+ 02-JAN-2011 05:00 / 30:  0.2083
+list/N=20:30 tax_day(_F[g=ff],ff)
+             VARIABLE : TAX_DAY(_F[G=FF],FF)
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:  1.000
+ 01-JAN-2011 20:00 / 21:  1.000
+ 01-JAN-2011 21:00 / 22:  1.000
+ 01-JAN-2011 22:00 / 23:  1.000
+ 01-JAN-2011 23:00 / 24:  1.000
+ 02-JAN-2011 00:00 / 25:  2.000
+ 02-JAN-2011 01:00 / 26:  2.000
+ 02-JAN-2011 02:00 / 27:  2.000
+ 02-JAN-2011 03:00 / 28:  2.000
+ 02-JAN-2011 04:00 / 29:  2.000
+ 02-JAN-2011 05:00 / 30:  2.000
+list/N=20:30 tax_jday(_F[g=ff],ff)
+             VARIABLE : TAX_JDAY(_F[G=FF],FF)
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:  1.000
+ 01-JAN-2011 20:00 / 21:  1.000
+ 01-JAN-2011 21:00 / 22:  1.000
+ 01-JAN-2011 22:00 / 23:  1.000
+ 01-JAN-2011 23:00 / 24:  1.000
+ 02-JAN-2011 00:00 / 25:  2.000
+ 02-JAN-2011 01:00 / 26:  2.000
+ 02-JAN-2011 02:00 / 27:  2.000
+ 02-JAN-2011 03:00 / 28:  2.000
+ 02-JAN-2011 04:00 / 29:  2.000
+ 02-JAN-2011 05:00 / 30:  2.000
+list/N=20:30 tax_month(_F[g=ff],ff)
+             VARIABLE : TAX_MONTH(_F[G=FF],FF)
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:  1.000
+ 01-JAN-2011 20:00 / 21:  1.000
+ 01-JAN-2011 21:00 / 22:  1.000
+ 01-JAN-2011 22:00 / 23:  1.000
+ 01-JAN-2011 23:00 / 24:  1.000
+ 02-JAN-2011 00:00 / 25:  1.000
+ 02-JAN-2011 01:00 / 26:  1.000
+ 02-JAN-2011 02:00 / 27:  1.000
+ 02-JAN-2011 03:00 / 28:  1.000
+ 02-JAN-2011 04:00 / 29:  1.000
+ 02-JAN-2011 05:00 / 30:  1.000
+list/N=20:30 tax_yearfrac(_F[g=ff],ff)
+             VARIABLE : TAX_YEARFRAC(_F[G=FF],FF)
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:  0.004909
+ 01-JAN-2011 20:00 / 21:  0.005023
+ 01-JAN-2011 21:00 / 22:  0.005137
+ 01-JAN-2011 22:00 / 23:  0.005251
+ 01-JAN-2011 23:00 / 24:  0.005365
+ 02-JAN-2011 00:00 / 25:  0.005479
+ 02-JAN-2011 01:00 / 26:  0.005594
+ 02-JAN-2011 02:00 / 27:  0.005708
+ 02-JAN-2011 03:00 / 28:  0.005822
+ 02-JAN-2011 04:00 / 29:  0.005936
+ 02-JAN-2011 05:00 / 30:  0.006050
+list/N=20:30 tax_year(_F[g=ff],ff)
+             VARIABLE : TAX_YEAR(_F[G=FF],FF)
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:  2011.
+ 01-JAN-2011 20:00 / 21:  2011.
+ 01-JAN-2011 21:00 / 22:  2011.
+ 01-JAN-2011 22:00 / 23:  2011.
+ 01-JAN-2011 23:00 / 24:  2011.
+ 02-JAN-2011 00:00 / 25:  2011.
+ 02-JAN-2011 01:00 / 26:  2011.
+ 02-JAN-2011 02:00 / 27:  2011.
+ 02-JAN-2011 03:00 / 28:  2011.
+ 02-JAN-2011 04:00 / 29:  2011.
+ 02-JAN-2011 05:00 / 30:  2011.
+list/N=20:30 tax_jday1900(_F[g=ff],ff)
+             VARIABLE : TAX_JDAY1900(_F[G=FF],FF)
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:  40542.
+ 01-JAN-2011 20:00 / 21:  40542.
+ 01-JAN-2011 21:00 / 22:  40542.
+ 01-JAN-2011 22:00 / 23:  40542.
+ 01-JAN-2011 23:00 / 24:  40542.
+ 02-JAN-2011 00:00 / 25:  40543.
+ 02-JAN-2011 01:00 / 26:  40543.
+ 02-JAN-2011 02:00 / 27:  40543.
+ 02-JAN-2011 03:00 / 28:  40543.
+ 02-JAN-2011 04:00 / 29:  40543.
+ 02-JAN-2011 05:00 / 30:  40543.
+list tax_units(ff)
+             VARIABLE : TAX_UNITS(FF)
+          3600.
+ 
+! commands from tax_tstep, changing time origin
+ 
+DEFINE AXIS/F="1-JAN-2000:00:00:01":"1-JAN-2000:00:15:00":2/UNITS=seconds fsec
+LIST/N=440:451 _F[GF=fsec]
+             VARIABLE : _F
+                        axis FSEC
+             SUBSET   : 12 points (FORECAST)
+ 01-JAN-2000 00:14:39 / 440:  3.123E+09
+ 01-JAN-2000 00:14:41 / 441:  3.123E+09
+ 01-JAN-2000 00:14:43 / 442:  3.123E+09
+ 01-JAN-2000 00:14:45 / 443:  3.123E+09
+ 01-JAN-2000 00:14:47 / 444:  3.123E+09
+ 01-JAN-2000 00:14:49 / 445:  3.123E+09
+ 01-JAN-2000 00:14:51 / 446:  3.123E+09
+ 01-JAN-2000 00:14:53 / 447:  3.123E+09
+ 01-JAN-2000 00:14:55 / 448:  3.123E+09
+ 01-JAN-2000 00:14:57 / 449:  3.123E+09
+ 01-JAN-2000 00:14:59 / 450:  3.123E+09
+ 01-JAN-2000 00:15:01 / 451:  3.123E+09
+LET bsin = SIN(_F[GF=fsec]/40000)
+SAVE/FILE=a.nc/clobber bsin
+CAN VAR/all
+USE a.nc
+ 
+SET LIST/PREC=7
+! Reset the date to dec 1999
+! Function lets us leave off the leading 0.
+LIST/N=1:15  TAX_TSTEP(bsin, "1-dec-1999:00:00:00" )
+             VARIABLE : TAX_TSTEP(BSIN, "1-dec-1999:00:00:00" )
+             FILENAME : a.nc
+             SUBSET   : 15 points (FORECAST)
+ 01-JAN-2000 00:00:01 /  1:  2678401.
+ 01-JAN-2000 00:00:03 /  2:  2678403.
+ 01-JAN-2000 00:00:05 /  3:  2678405.
+ 01-JAN-2000 00:00:07 /  4:  2678407.
+ 01-JAN-2000 00:00:09 /  5:  2678409.
+ 01-JAN-2000 00:00:11 /  6:  2678411.
+ 01-JAN-2000 00:00:13 /  7:  2678413.
+ 01-JAN-2000 00:00:15 /  8:  2678415.
+ 01-JAN-2000 00:00:17 /  9:  2678417.
+ 01-JAN-2000 00:00:19 / 10:  2678419.
+ 01-JAN-2000 00:00:21 / 11:  2678421.
+ 01-JAN-2000 00:00:23 / 12:  2678423.
+ 01-JAN-2000 00:00:25 / 13:  2678425.
+ 01-JAN-2000 00:00:27 / 14:  2678427.
+ 01-JAN-2000 00:00:29 / 15:  2678429.
+ 
+! argument can be upper or lowercase
+! Should list values 1, 3, 5...
+LIST/N=1:15  TAX_TSTEP(bsin, "1-JAN-2000:00:00:00" )
+             VARIABLE : TAX_TSTEP(BSIN, "1-JAN-2000:00:00:00" )
+             FILENAME : a.nc
+             SUBSET   : 15 points (FORECAST)
+ 01-JAN-2000 00:00:01 /  1:   1.00000
+ 01-JAN-2000 00:00:03 /  2:   3.00000
+ 01-JAN-2000 00:00:05 /  3:   5.00000
+ 01-JAN-2000 00:00:07 /  4:   7.00000
+ 01-JAN-2000 00:00:09 /  5:   9.00000
+ 01-JAN-2000 00:00:11 /  6:  11.00000
+ 01-JAN-2000 00:00:13 /  7:  13.00000
+ 01-JAN-2000 00:00:15 /  8:  15.00000
+ 01-JAN-2000 00:00:17 /  9:  17.00000
+ 01-JAN-2000 00:00:19 / 10:  19.00000
+ 01-JAN-2000 00:00:21 / 11:  21.00000
+ 01-JAN-2000 00:00:23 / 12:  23.00000
+ 01-JAN-2000 00:00:25 / 13:  25.00000
+ 01-JAN-2000 00:00:27 / 14:  27.00000
+ 01-JAN-2000 00:00:29 / 15:  29.00000
+ 
+! Test  with TAX_DATESTRING
+ 
+DEFINE AXIS/F="1-JAN-1902:00:00:00":"1-JAN-1902:00:30:00":5/UNITS=seconds fsec
+LIST/N=200:205 _F[GF=fsec]
+             VARIABLE : _F
+                        axis FSEC
+             SUBSET   : 6 points (FORECAST)
+ 01-JAN-1902 00:16:35 / 200:  30327395.
+ 01-JAN-1902 00:16:40 / 201:  30327400.
+ 01-JAN-1902 00:16:45 / 202:  30327405.
+ 01-JAN-1902 00:16:50 / 203:  30327410.
+ 01-JAN-1902 00:16:55 / 204:  30327415.
+ 01-JAN-1902 00:17:00 / 205:  30327420.
+ 
+LET ff = _F[GF=fsec]
+LET reset_date = TAX_DATESTRING(`_F[GF=fsec,n=1]`, ff, "sec")
+ !-> DEFINE VARIABLE reset_date = TAX_DATESTRING(30326400, ff, "sec")
+LIST/N=1:15 TAX_TSTEP(ff, "`reset_date`")
+ !-> LIST/N=1:15 TAX_TSTEP(ff, "01-JAN-1902 00:00:00")
+             VARIABLE : TAX_TSTEP(FF, "01-JAN-1902 00:00:00")
+             SUBSET   : 15 points (FORECAST)
+ 01-JAN-1902 00:00:00 /  1:   0.00000
+ 01-JAN-1902 00:00:05 /  2:   5.00000
+ 01-JAN-1902 00:00:10 /  3:  10.00000
+ 01-JAN-1902 00:00:15 /  4:  15.00000
+ 01-JAN-1902 00:00:20 /  5:  20.00000
+ 01-JAN-1902 00:00:25 /  6:  25.00000
+ 01-JAN-1902 00:00:30 /  7:  30.00000
+ 01-JAN-1902 00:00:35 /  8:  35.00000
+ 01-JAN-1902 00:00:40 /  9:  40.00000
+ 01-JAN-1902 00:00:45 / 10:  45.00000
+ 01-JAN-1902 00:00:50 / 11:  50.00000
+ 01-JAN-1902 00:00:55 / 12:  55.00000
+ 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
+ 
+GO bn_reset
+cancel mode verify
+GO bn_fmrc
+! bn_fmrc.jnl
+! initial test of DEFINE DATA/F
+ 
+use "run1.nc"
+use "run2.nc"
+use "run3.nc"
+use "run4.nc"
+ 
+define data/hide/F/agg/title 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
+ normal    Z
+ TF_LAG_T  MODEL ELAPSED TIME (12 r   0                    11
+ normal    E
+ TF_CAL_F  FORECAST             4 r   02-JAN-2010 00:00    08-JAN-2010 00:00
+list/i=1/j=1/L=1:6/n=1:4 sst
+             VARIABLE : SST_IN (Deg C)
+             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      
+                          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
+ 
+show att sst
+     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 
+ 
+! Attribute _ftime2dRef pointe to the 2D time variable
+list/L=1:6/n=1:4 `sst._ftime2dRef`
+ !-> list/L=1:6/n=1:4 TF_TIMES
+             VARIABLE : Forecast time step matrix (day since 01-JAN-2010 00:00:00)
+             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      
+                          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
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO bn_return_defined
+! bn_return_defined.jnl
+! 5/3/2015 *acm*
+! `return=defined` returns 1 if the user variable is defined
+! see ticket 2293
+ 
+let a = b
+say `a,r=defined` `b,r=defined`
+ !-> MESSAGE/CONTINUE 1 0
+1 0
+ 
+! abbreviate to 3 letters
+use levitus_climatology
+let temp2 = 2*temp
+say `temp2,return=def`
+ !-> MESSAGE/CONTINUE 1
+1
+ 
+! returns false for file variables
+say `temp,return=defined`
+ !-> MESSAGE/CONTINUE 0
+0
+ 
+GO bn_reset
+cancel mode verify
+GO bn_can_var_noerr
+! bn_can_var_noerr.jnl
+! CANCEL VARIABLE/NOERROR
+ 
+ 
+let a = 1
+ 
+! intentional error
+set mode ignore
+cancel var b,a
+show var
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+     A = 1
+ 
+cancel mode ignore
+ 
+! specify /noerr and we can issue the command
+ 
+cancel var/noerror a,b
+show var
+ Created by DEFINE VARIABLE:
+ 
+! no effect on CAN VAR/ALL or CAN VAR template_name
+ 
+let a1 = 1
+let a7 = 7
+let c = 12
+ 
+cancel var/noerror name*
+show var
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+     C = 12
+     A7 = 7
+     A1 = 1
+ 
+cancel var/noerror a*
+show var
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+     C = 12
+ 
+cancel var/noerror/all
+show var
+ Created by DEFINE VARIABLE:
+ 
+GO bn_reset
+cancel mode verify
+GO bn_annotate
+! bn_annotate.jnl
+! The command ANNOTATE /USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE
+! locates user-defined labels on a plot.
+!   /USER and /NOUSER behave as the LABEL command does
+!   /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
+ 
+! ANNOTATE /USER
+set v ul
+plot/vs/sym=28/hl=-5:5/vl=-10:10 {-1,1},{-1,1}
+ 
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/USER labels"
+ !-> annotate/nouser/xpos=2.2495/ypos=3.89900/halign=0/valign=-8/siz=.25 "ANNOTATE/USER labels"
+annotate/user/xpos=-1/ypos=-1/halign=0/valign=0/angle=-90/siz=0.2 "X"
+annotate/user/xpos=0/ypos=0/halign=0/valign=0/angle=0/siz=0.2 "X"
+annotate/user/xpos=1/ypos=1/halign=0/valign=0/angle=45/siz=0.2 "X"
+ 
+plot/ov/vs/line=1/nolab {-1,1,1,-1,-1},{4,4,6,6,4}
+annotate/user/xpos=0/ypos=5/halign=0/valign=0/angle=0/siz=0.2 "BOX"
+ 
+plot/ov/vs/line=1/nolab .5*{-1,1,1,-1,-1},{-2,-2,-8,-8,-2}
+	annotate/user/xpos=0/ypos=-5/halign=0/valign=0/angle=90/siz=0.2 "BOX"
+ 
+plot/ov/vs/sym=2/size=2/nolab 3,0
+annotate/user/xpos=3/ypos=0/halign=0/valign=1/angle=45/siz=0.2 "TOP"
+annotate/user/xpos=3/ypos=0/halign=0/valign=-1/angle=45/siz=0.2 "BOTTOM"
+ 
+plot/ov/vs/sym=2/size=2/nolab -3,0
+annotate/user/xpos=-3/ypos=0/halign=-1/valign=-1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-1/valign=1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=1/valign=-1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=1/valign=1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-3/valign=-3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-3/valign=3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=3/valign=-3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=3/valign=3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-.99/valign=5/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=.99/valign=5/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-.99/valign=-5/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=.99/valign=-5/angle=45/siz=0.2 "M"
+ 
+ 
+ 
+! ANNOTATE/NORM
+set v ur
+plot/i=1:5/vlim=1:5/hlim=1:5/color=white/nolab i
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/NORM labels"
+ !-> annotate/nouser/xpos=2.2495/ypos=3.89900/halign=0/valign=-8/siz=.25 "ANNOTATE/NORM labels"
+ 
+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=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=.5/halign=0/valign=0/angle=0/size=0.14 "DEAD CENTER"
+annotate/norm/xpos=.5/ypos=0/halign=0/valign=1/angle=0/size=0.14 "HANGING FROM BOTTOM"
+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"
+ 
+! ANNOTATE/NOUSER
+set v ll
+plot/i=1:5/vlim=1:5/hlim=1:5/color=white/nolab i
+ 
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels"
+ !-> annotate/nouser/xpos=2.2495/ypos=3.89900/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels"
+ 
+! nouser
+annotate/nouser/xpos=0/ypos=0/halign=-1/angle=0/size=0.15 "At Origin"
+annotate/nouser/xpos=0/ypos=0/halign=-3/valign=-3/angle=0/size=0.15 "With/HALIGN=-3/VALIGN=-3"
+ 
+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=4.49900/ypos=3.89900/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"
+ !-> annotate/nouser/xpos=4.49900/ypos=3.89900/halign=4/valign=3/angle=0/siz=0.15 "With/HALIGN=3/VALIGN=4"
+ 
+plot/vs/line/over/color=lightblue/nolab {3,3},{1,6}
+plot/vs/line/over/color=lightblue/nolab {1,5}, {3,3}
+ 
+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 "
+ !-> annotate/nouser/xpos=2.2495/ypos=1.9495/halign=0/valign=0/angle=0/siz=0.15 "Arguments locate the first<nl>line of multi-line labels "
+ 
+! angles
+set v lr
+ 
+plot/i=1:5/vlim=1:5/hlim=1:5/color=white/nolab i
+! nouser
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels<nl>Use VALIGN=0"
+ !-> annotate/nouser/xpos=2.2495/ypos=3.89900/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels<nl>Use VALIGN=0"
+annotate/nouser/xpos=0/ypos=0/halign=0/valign=0/angle=45/size=0.15 "Center At Origin"
+annotate/nouser/xpos=0/ypos=($ppl$ylen)/halign=-1/valign=0/angle=-45/siz=0.15 "left-align"
+ !-> annotate/nouser/xpos=0/ypos=3.89900/halign=-1/valign=0/angle=-45/siz=0.15 "left-align"
+annotate/nouser/xpos=($ppl$xlen)/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "right-align"
+ !-> annotate/nouser/xpos=4.49900/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "right-align"
+ 
+! Test defaults
+! Default is like PPL user-labels
+! /USER/SIZ=0.12/ANGLE=0/HALIGN=0/VALIGN=-1
+ 
+shade/x=1:2/y=1:2/pal=grayscale i+j
+annotate/xpos=1.5/ypos=1.8 "Anno Label"
+label 1.5,1.6,,,, PPL label
+ 
+ 
+! DEFINE ANNOTATION inside a grapchics call with /SET
+can view
+use gt4d011.cdf
+shade/set temp[k=1,l=1]
+  DEFINE ANNOTATION/user/xpos=224/ypos=-3/halign=0/valign=0/angle=0/siz=.3 "X"
+ppl shade
+ 
+shade/set/j=40/L=1 temp
+  DEFINE ANNOTATION/user/xpos=224/ypos=80/halign=0/valign=0/angle=0/siz=.3 "X"
+ppl shade
+ 
+can data/all
+ 
+plot/set/i=1:5 i
+! nouser
+define annotation/nouser/xpos=0/ypos=0/halign=0/angle=0/size=0.15 "Center At Origin"
+define annotation/nouser/xpos=0/ypos=($ppl$ylen)/halign=-1/angle=0/siz=0.15 "left-align at upper left corner"
+ !-> define annotation/nouser/xpos=0/ypos=6.67400/halign=-1/angle=0/siz=0.15 "left-align at upper left corner"
+define annotation/nouser/xpos=($ppl$xlen)/ypos=0/halign=1/angle=0/siz=0.15 "right-align at lower right corner"
+ !-> define annotation/nouser/xpos=7.27400/ypos=0/halign=1/angle=0/siz=0.15 "right-align at lower right corner"
+! user
+define annotation/user/xpos=3/ypos=2/halign=0/angle=0/siz=0.15 "user units centered at 3,2"
+define annotation/user/xpos=3/ypos=3/halign=-1/angle=0/siz=0.15 "user units left at 3,3"
+define annotation/user/xpos=3/ypos=4/halign=1/angle=0/siz=0.15 "user units right at 3,4"
+ppl plot
+ 
+! angles
+ 
+plot/set/i=1:5 i
+define annotation/nouser/xpos=0/ypos=0/halign=0/angle=45/size=0.15 "Center At Origin"
+define annotation/nouser/xpos=0/ypos=($ppl$ylen)/halign=-1/angle=-45/siz=0.15 "left-align at upper left corner"
+ !-> define annotation/nouser/xpos=0/ypos=6.67400/halign=-1/angle=-45/siz=0.15 "left-align at upper left corner"
+define annotation/nouser/xpos=($ppl$xlen)/ypos=0/halign=1/angle=-45/siz=0.15 "right-align at lower right corner"
+ !-> define annotation/nouser/xpos=7.27400/ypos=0/halign=1/angle=-45/siz=0.15 "right-align at lower right corner"
+! user
+define annotation/user/xpos=3/ypos=2/halign=0/angle=45/siz=0.15 "user units centered at 3,2"
+define annotation/user/xpos=3/ypos=3/halign=-1/angle=45/siz=0.15 "user units left at 3,3"
+define annotation/user/xpos=3/ypos=4/halign=1/angle=45/siz=0.15 "user units right at 3,4"
+ppl plot
+ 
+! DEFINE ANNO/NORM
+plot/i=1:5/nolab/set i
+def anno/norm/xp=.5/yp=1.1/hal=0/ang=0/size=.3 "FLOATING TITLE"
+def anno/norm/xp=.5/yp=-.2/hal=0/ang=0/size=.3 "SUBMERGED TITLE"
+def anno/norm/xp=0/yp=1/hal=-1/ang=0/size=.3 "LEFT/TOP"
+def anno/norm/xp=.5/yp=1/hal=0/ang=0/size=.3 "CTR/TOP"
+def anno/norm/xp=1/yp=1/hal=1/ang=0/size=.3 "RIGHT/TOP"
+def anno/norm/xp=1/yp=.5/hal=0/ang=-90/size=.3 "RIGHT EDGE"
+def anno/norm/xp=0/yp=.5/hal=0/ang=90/size=.3 "LEFT EDGE"
+def anno/norm/xp=.5/yp=.5/hal=0/val=0/ang=0/size=.3 "DEAD CENTER"
+def anno/norm/xp=.5/yp=0/hal=0/val=1/ang=0/size=.3 "HANGING FROM BOTTOM"
+def anno/norm/xp=0/yp=0/hal=-2/val=-2/ang=0/size=.2 "BOTTOM LEFT INSET"
+def anno/norm/xp=0/yp=1/hal=-2/val=2/ang=0/size=.2 "TOP LEFT INSET"
+def anno/norm/xp=1/yp=0/hal=2/val=-2/ang=0/size=.2 "BOTTOM RIGHT INSET"
+def anno/norm/xp=1/yp=1/hal=2/val=2/ang=0/size=.2 "TOP RIGHT INSET"
+ppl plot
+ 
+plot/set/vs/sym=28/hl=-5:5/vl=-10:10 {-1,1},{-1,1}
+ 
+define annotation/user/xpos=-1/ypos=-1/halign=0/valign=0/angle=-90/siz=.5 "X"
+define annotation/user/xpos=0/ypos=0/halign=0/valign=0/angle=0/siz=.5 "X"
+define annotation/user/xpos=1/ypos=1/halign=0/valign=0/angle=45/siz=.5 "X"
+define annotation/user/xpos=0/ypos=5/halign=0/valign=0/angle=0/siz=.5 "BOX"
+define annotation/user/xpos=0/ypos=-5/halign=0/valign=0/angle=90/siz=.5 "BOX"
+define annotation/user/xpos=3/ypos=0/halign=0/valign=1/angle=45/siz=.5 "TOP"
+define annotation/user/xpos=3/ypos=0/halign=0/valign=-1/angle=45/siz=.5 "BOTTOM"
+define annotation/user/xpos=-3/ypos=0/halign=-1/valign=-1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-1/valign=1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=1/valign=-1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=1/valign=1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-3/valign=-3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-3/valign=3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=3/valign=-3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=3/valign=3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-.99/valign=5/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=.99/valign=5/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-.99/valign=-5/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=.99/valign=-5/angle=45/siz=.5 "M"
+ppl list labels
+                                                                                
+ @AS{-1,1}                                                                      
+ @AS{-1,1}                                                                      
+
+          XPOS       YPOS     HGT   ROT   UNITS
+ LAB 1  0.000E+00  7.270E+00 0.120    0  SYSTEM  @ASX : 0.5 to 2.5
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
+ LAB 2 -1.344E+00 -1.000E+00 0.500  -90  USER    X
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 3  0.000E+00 -7.492E-01 0.500    0  USER    X
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 4  1.243E+00  4.703E-01 0.500   45  USER    X
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 5  0.000E+00  4.251E+00 0.500    0  USER    BOX
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 6  3.437E-01 -5.000E+00 0.500   90  USER    BOX
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 7  3.486E+00 -1.059E+00 0.500   45  USER    TOP
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 8  3.000E+00  0.000E+00 0.500   45  USER    BOTTOM
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 9 -3.000E+00  0.000E+00 0.500   45  USER    M
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
+ LAB10 -2.514E+00 -1.059E+00 0.500   45  USER    M
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
+ LAB11 -3.000E+00  0.000E+00 0.500   45  USER    M
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
+ LAB12 -2.514E+00 -1.059E+00 0.500   45  USER    M
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
+ LAB13 -3.000E+00  2.119E+00 0.500   45  USER    M
+ 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
+ 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
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB18 -1.782E+00 -3.703E+00 0.500   45  USER    M
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB19 -3.732E+00  2.643E+00 0.500   45  USER    M
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB20 -4.213E+00  1.595E+00 0.500   45  USER    M
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ppl plot
+plot/ov/vs/line=1/nolab {-1,1,1,-1,-1},{4,4,6,6,4}
+plot/ov/vs/line=1/nolab .5*{-1,1,1,-1,-1},{-2,-2,-8,-8,-2}
+plot/ov/vs/sym=2/size=2/nolab 3,0
+plot/ov/vs/sym=2/size=2/nolab -3,0
+ 
+! intentional errors
+set mode ignore
+can v
+shade/i=1:2/j=1:2/nokey i+j
+ 
+ 
+! errors in arguments
+annotate/nouser/xpos=a2/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=b/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=0/halign=c/valign=0/angle=-45/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=0/halign=1/valign=d/angle=ee/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=0/halign=1/valign=0/angle=-45/siz=f "My Lab"
+ 
+! missing a location
+annotate/nouser/ypos=0 "My Lab"
+annotate/nouser/xpos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+ 
+! /USER and /NOUSER
+annotate/nouser/user/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+ 
+! define annotation
+ 
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=a2/ypos=0/hal=1/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0,3/ypos=b/hal=1/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=c/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=1/val=d/ang=ee/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=1/val=0/ang=-45/siz=f "My Lab"; ppl plot
+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.15 "My Lab"; ppl plot
+ 
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/ypos=0 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/hal=1/val=0 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/user/xpos=0/ypos=0 "My Lab"; ppl plot
+ 
+GO bn_reset
+cancel mode verify
+GO bn_auxiliary
+! bn_auxiliary.jnl:  exercise auxiliary coordinate regridding
+ 
+! notes about the 6/2015 version:
+! -- tests 1D regridding, only, as of 6/2015
+! -- includestests the deprecated "LAYERZ" and "__LayerzRef_" automation syntax
+!    ... to be replaced by a different automation syntax in the future
+ 
+! *sh* 6/2015
+ 
+! initialize the test environment
+USE levitus_3d_subset
+SPAWN rm layerz_test_data.txt
+LET Zpts = Z[Z=100:500:100]
+DEFINE AXIS/z/units=meters zax = zpts
+ 
+! conjure a 4D auxiliary variable that contains the same values
+! as the native Z coordinates
+! regridding using this auxiliary variable should give the same results as
+! conventional regridding -- usefuly to validate the results
+LET/D=levitus_3d_subset depth = z[g=temp]+ 0*temp[k=1]
+ 
+!************
+! exercise the syntax of setting layerz associations
+! do same tests on EZ, uvar, and netCDF variable
+ 
+! EZ file variable
+LIST/NOHEAD/FILE=layerz_test_data.txt 1
+FILE/VAR=v layerz_test_data.txt
+! set the layerz link to point to a variable named "depth"
+SET VAR/layerz=depth v
+SHOW VAR/LAYERZ v
+  DEPTH holds the designated vertical (layerz) coordinates of V
+SHOW ATT v
+! modify the layerz link
+SET VAR/layerz=newdepth v
+SHOW VAR/LAYERZ v
+  NEWDEPTH holds the designated vertical (layerz) coordinates of V
+SHOW ATT v
+     attributes for dataset: ./layerz_test_data.txt
+ V.long_name = V 
+ V.missing_value = -1.E+34
+ V.__LayerzRef_ = NEWDEPTH 
+cancel var/layerz v
+SHOW VAR/LAYERZ v
+  No variable holds vertical (layerz) coordinates of V
+SHOW ATT v
+     attributes for dataset: ./layerz_test_data.txt
+ V.long_name = V 
+ V.missing_value = -1.E+34
+CANCEL DATA layerz_test_data.txt
+ 
+! user variable
+! set the layerz link
+LET a = temp
+SET VAR/layerz=depth a
+SHOW VAR/LAYERZ a
+  DEPTH holds the designated vertical (layerz) coordinates of a
+SHOW ATT a
+     attributes for user-defined variables
+ a.long_name = TEMP 
+ a.missing_value = -1.E+34
+ a.__LayerzRef_ = DEPTH 
+! modify the layerz link
+SET VAR/layerz=newdepth a
+SHOW VAR/LAYERZ a
+  NEWDEPTH holds the designated vertical (layerz) coordinates of a
+SHOW ATT a
+     attributes for user-defined variables
+ a.long_name = TEMP 
+ a.missing_value = -1.E+34
+ a.__LayerzRef_ = NEWDEPTH 
+cancel var/layerz a
+SHOW VAR/LAYERZ a
+  No variable holds vertical (layerz) coordinates of a
+SHOW ATT a
+     attributes for user-defined variables
+ a.long_name = TEMP 
+ a.missing_value = -1.E+34
+ 
+! netCDF file variable
+! set the layerz link
+SET VAR/layerz=depth temp[d=levitus_3d_subset]
+SHOW VAR/LAYERZ/d=levitus_3d_subset temp
+  DEPTH holds the designated vertical (layerz) coordinates of TEMP
+SHOW ATT temp.__LayerzRef_[d=levitus_3d_subset]
+     attributes for dataset: ./levitus_3d_subset.nc
+ TEMP.__LayerzRef_ = DEPTH 
+! modify the layerz link
+SET VAR/layerz=newdepth temp[d=levitus_3d_subset]
+SHOW VAR/LAYERZ/d=levitus_3d_subset temp
+  NEWDEPTH holds the designated vertical (layerz) coordinates of TEMP
+SHOW ATT temp.__LayerzRef_[d=levitus_3d_subset]
+     attributes for dataset: ./levitus_3d_subset.nc
+ TEMP.__LayerzRef_ = NEWDEPTH 
+cancel var/layerz temp[d=levitus_3d_subset]
+SHOW VAR/LAYERZ/d=levitus_3d_subset temp
+  No variable holds vertical (layerz) coordinates of TEMP
+SHOW ATT temp[d=levitus_3d_subset]   ! __LayerzRef_ has been deleted
+     attributes for dataset: ./levitus_3d_subset.nc
+ TEMP.missing_value = -1.E+10
+ TEMP._FillValue = -1.E+10
+ TEMP.long_name = TEMPERATURE 
+ TEMP.history = From /home/users/tmap/ferret/linux/fer_dsets/data/levitus_climatology.cdf 
+ TEMP.units = DEG C 
+ 
+! deliberate error
+SET MODE ignore; SET VAR/layerz=depth noexist; SET MODE/last ignore
+ 
+!************
+! exercise the layerz calculations in various situations
+! compare the manually specified syntax with the automated results
+ 
+! make "depth" the layerz coordinate variable for "temp"
+SET VAR/layerz=depth temp[d=levitus_3d_subset]
+ 
+! values of the unadulterated variable
+list/PREC=7 temp[z=0:500]
+             VARIABLE : TEMPERATURE (DEG C)
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 11 points (LONGITUDE-LATITUDE-DEPTH (m))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   0
+ 48.5S / 2:  7.725000  7.917999
+ 49.5S / 1:  6.827000  7.007000
+ ---- K:2 Z:   10
+ 48.5S / 2:  7.726000  7.917999
+ 49.5S / 1:  6.843000  7.021999
+ ---- K:3 Z:   20
+ 48.5S / 2:  7.715000  7.907000
+ 49.5S / 1:  6.840000  7.018999
+ ---- K:4 Z:   30
+ 48.5S / 2:  7.594000  7.789000
+ 49.5S / 1:  6.740999  6.923000
+ ---- K:5 Z:   50
+ 48.5S / 2:  7.410999  7.584000
+ 49.5S / 1:  6.624001  6.785000
+ ---- K:6 Z:   75
+ 48.5S / 2:  7.572001  7.666000
+ 49.5S / 1:  6.750999  6.848000
+ ---- K:7 Z:   100
+ 48.5S / 2:  7.334999  7.436001
+ 49.5S / 1:  6.462000  6.572001
+ ---- K:8 Z:   150
+ 48.5S / 2:  7.372000  7.464001
+ 49.5S / 1:  6.466000  6.573999
+ ---- K:9 Z:   200
+ 48.5S / 2:  6.961000  7.073000
+ 49.5S / 1:  6.025999  6.150000
+ ---- K:10 Z:   300
+ 48.5S / 2:  6.457001  6.636999
+ 49.5S / 1:  5.445000  5.665000
+ ---- K:11 Z:   400
+ 48.5S / 2:  6.181999  6.377001
+ 49.5S / 1:  5.187000  5.410000
+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
+ normal    T
+ normal    E
+ normal    F
+ 
+! use aux var regridding.  Target coordinate points match the source points
+! identically at 0, 100, 200, ... 500
+! values should match the unadulterated variable at these points
+! this command will be issued in diagnostic mode to highlight that the
+! K range over which temp is read is the minimum needed to compute the result
+SET MODE diagnostic
+LET tempz = temp[gz(depth)=zpts]
+LIST/PREC=7 tempz
+ dealloc  dynamic grid GAO1            XAXLEVITR1YAXLEVITR4ZAXLEVITR NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ getgrid TEMPZ    C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ getgrid DEPTH    C:  9 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid GAO1            XAXLEVITR1YAXLEVITR4ZAXLEVITR NORMAL    NORMAL    NORMAL
+ getgrid ZPTS     C:  9 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid (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 (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    5  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    TEMPZ    C:  6 dset:   1 I:    1    2  J:    1    2  K:    1    5  L: -999 -999  M: -999 -999  N: -999 -999
+ allocate dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
+ strip regrid on Z: TEMP --> (G086)           @LIN
+ eval    DEPTH    C:  9 dset:   1 I:    1    2  J:    1    2  K:    1   20  L: -999 -999  M: -999 -999  N: -999 -999
+ pseudo  Z        M: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
+ dealloc  dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
+             VARIABLE : TEMP[GZ(DEPTH)=ZPTS]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.334999  7.436001
+ 49.5S / 1:  6.462000  6.572001
+ ---- K:2 Z:   200
+ 48.5S / 2:  6.961000  7.073000
+ 49.5S / 1:  6.025999  6.150000
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.457001  6.636999
+ 49.5S / 1:  5.445000  5.665000
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.181999  6.377001
+ 49.5S / 1:  5.187000  5.410000
+ ---- K:5 Z:   500
+ 48.5S / 2:  5.835500  6.045001
+ 49.5S / 1:  4.879000  5.102500
+SHOW GRID tempz
+ dealloc  dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
+    GRID (G086)
+ 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
+ normal    T
+ normal    E
+ normal    F
+!LET tempz = temp[gz=zpts,layerz]  ! same regrid using semi-automated notation
+!LIST/PREC=7 tempz
+!SHOW GRID tempz
+SET MODE/last diagnostic
+ 
+! list a little with no imtermediate variable, so Z labeling is visible
+LIST/PREC=7 temp[gz(depth)=zpts,k=1]
+             VARIABLE : TEMPERATURE (DEG C)
+                        regrid: 100 delta on Z at LIN using DEPTH field
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z        : 100
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2:  7.334999  7.436001
+ 49.5S / 1:  6.462000  6.572001
+!LIST/PREC=7 temp[gz=zpts,k=1,layerz] ! same using semi-automated notation
+ 
+! same calculation, but with a named Z axis
+LET tempzax = temp[gz(depth)=zax]
+LIST tempzax
+             VARIABLE : TEMP[GZ(DEPTH)=ZAX]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (METERS))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.334999  7.436001
+ 49.5S / 1:  6.462000  6.572001
+ ---- K:2 Z:   200
+ 48.5S / 2:  6.961000  7.073000
+ 49.5S / 1:  6.025999  6.150000
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.457001  6.636999
+ 49.5S / 1:  5.445000  5.665000
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.181999  6.377001
+ 49.5S / 1:  5.187000  5.410000
+ ---- K:5 Z:   500
+ 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
+ normal    T
+ normal    E
+ normal    F
+!LET tempzax = temp[gz=zax,layerz]  ! same regrid using semi-automated notation
+!LIST tempzax
+!SHOW GRID tempzax
+ 
+! regrid to a different set of Z points
+LET tempz_alt = temp[gz(depth)=2:10:2]
+LIST/PREC=7 tempz_alt
+             VARIABLE : TEMP[GZ(DEPTH)=2:10:2]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   2
+ 48.5S / 2:  7.725200  7.917999
+ 49.5S / 1:  6.830200  7.010000
+ ---- K:2 Z:   4
+ 48.5S / 2:  7.725400  7.917999
+ 49.5S / 1:  6.833400  7.013000
+ ---- K:3 Z:   6
+ 48.5S / 2:  7.725600  7.917999
+ 49.5S / 1:  6.836600  7.016000
+ ---- K:4 Z:   8
+ 48.5S / 2:  7.725800  7.917999
+ 49.5S / 1:  6.839800  7.018999
+ ---- K:5 Z:   10
+ 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
+ normal    T
+ normal    E
+ normal    F
+ 
+!! do same regrid using the shorhand semi-automated notation
+!LIST/PREC=7 temp[z=2:10:2,layerz]   ! lo:hi:delta notation
+!SHOW GRID
+ 
+! test the shorthand notation var[gz(depth)=100] as an implicit aux var
+! regrid via linear interpolation
+! the value should match the preceding output at Z=6
+LET tempz_1pt = temp[gz(depth)=6]
+LIST/PREC=7 tempz_1pt
+             VARIABLE : TEMP[GZ(DEPTH)=6]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z        : 6
+               120.5E    121.5E  
+                 1         2
+ 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
+ normal    T
+ normal    E
+ normal    F
+ 
+       K     Z                   ZBOX      ZBOXLO
+       1>  6                     6.E-05     5.99997
+ 
+! do same regrid using the shorhand semi-automated notation
+LIST/PREC=7 temp[z=6,layerz]     ! =1pt notation   WILL BE CHANGED!
+             VARIABLE : TEMPERATURE (DEG C)
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             DEPTH (m): 6 (interpolated using DEPTH)
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2:  7.725600  7.917999
+ 49.5S / 1:  6.836600  7.016000
+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
+ normal    T
+ normal    E
+ normal    F
+ 
+! auxiliary points in reverse order
+! to get results that we can check for correctness, we will reverse the Z-order
+! of the temperature field as well as the depth field.
+LET rvtemp0 = ZREVERSE(temp)
+LET rvtemp  = rvtemp0[gz=temp at asn]
+LET rvdepth0 = ZREVERSE(depth)
+LET/D=levitus_3d_subset rvdepth  = rvdepth0[gz=temp at asn]
+! **** NOTE: THERE'S A SUBTLE MISBEHAVIOR IN AUX REGRID SHOWN IN THIS COMMENTED
+! OUT LINE BUT WILL RARELY OCCUR AND EASILY WORKED AROUND
+!LET rvtempzax = rvtemp[gz(rvdepth)=zax]  ! zlims aren't filled in if not given
+LET rvtempzax = rvtemp[gz(rvdepth)=zax,z=100:500]
+LIST/PREC=7 rvtempzax - tempz
+             VARIABLE : RVTEMPZAX - TEMPZ
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+               120.5E     121.5E   
+                 1          2
+ ---- K:1 Z:   100
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ ---- K:2 Z:   200
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ ---- K:3 Z:   300
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ ---- K:4 Z:   400
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ ---- K:5 Z:   500
+ 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
+ normal    T
+ normal    E
+ normal    F
+ 
+! deliberate execution errors:
+LET disordered_depth1 = IF K EQ 3 THEN DEPTH[K=1] ELSE DEPTH
+LET disordered_tempz1 = temp[gz(disordered_depth1)=zax]
+LET disordered_depth2 = IF K EQ 3 THEN DEPTH[K=5] ELSE DEPTH
+LET disordered_tempz2 = temp[gz(disordered_depth2)=zax]
+SET MODE ignore
+LIST disordered_tempz1
+             VARIABLE : TEMP[GZ(DISORDERED_DEPTH1)=ZAX]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (METERS))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.334999  7.436001
+ 49.5S / 1:  6.462000  6.572001
+ ---- K:2 Z:   200
+ 48.5S / 2:  6.961000  7.073000
+ 49.5S / 1:  6.025999  6.150000
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.457001  6.636999
+ 49.5S / 1:  5.445000  5.665000
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.181999  6.377001
+ 49.5S / 1:  5.187000  5.410000
+ ---- K:5 Z:   500
+ 48.5S / 2:  5.835500  6.045001
+ 49.5S / 1:  4.879000  5.102500
+LIST disordered_tempz2
+             VARIABLE : TEMP[GZ(DISORDERED_DEPTH2)=ZAX]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (METERS))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.334999  7.436001
+ 49.5S / 1:  6.462000  6.572001
+ ---- K:2 Z:   200
+ 48.5S / 2:  6.961000  7.073000
+ 49.5S / 1:  6.025999  6.150000
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.457001  6.636999
+ 49.5S / 1:  5.445000  5.665000
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.181999  6.377001
+ 49.5S / 1:  5.187000  5.410000
+ ---- K:5 Z:   500
+ 48.5S / 2:  5.835500  6.045001
+ 49.5S / 1:  4.879000  5.102500
+SET MODE/last ignore
+ 
+! test VTREE with a complex auxiliary variable definitions
+VTREE
+   in default dataset levitus_3d_subset
+   RVTEMPZAX = RVTEMP[GZ(RVDEPTH)=ZAX,Z=100:500]
+     RVTEMP = RVTEMP0[GZ=TEMP at ASN]
+       RVDEPTH = RVDEPTH0[GZ=TEMP at ASN]
+         RVDEPTH0 = ZREVERSE(DEPTH)
+           DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+   DISORDERED_TEMPZ2 = TEMP[GZ(DISORDERED_DEPTH2)=ZAX]
+       DISORDERED_DEPTH2 = IF K EQ 3 THEN DEPTH[K=5] ELSE DEPTH
+         DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+   DISORDERED_TEMPZ1 = TEMP[GZ(DISORDERED_DEPTH1)=ZAX]
+       DISORDERED_DEPTH1 = IF K EQ 3 THEN DEPTH[K=1] ELSE DEPTH
+         DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+   TEMPZ = TEMP[GZ(DEPTH)=ZPTS]
+       regrid to ZPTS = Z[Z=100:500:100]
+       DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+   TEMPZAX = TEMP[GZ(DEPTH)=ZAX]
+       DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+   TEMPZ_1PT = TEMP[GZ(DEPTH)=6]
+   TEMPZ_ALT = TEMP[GZ(DEPTH)=2:10:2]
+   A = TEMP
+ 
+! 6-dimensional regridding
+ 
+! 6d temperature and 3d depth field (depth unchanging in time, ensemble and forecast)
+LET temp6d = temp/100 + 1*L[L=1:2] + 10*_M[M=1:2] + 100*_N[N=1:2]
+!list/k=7:12/PREC=7 temp6d
+LET tempz6d = temp6d[gz(depth)=zpts]
+!LIST/PREC=7 tempz6d
+! compare pre- and post- regrid at a fixed depth
+stat/z=100 temp6d-tempz6d
+ 
+             TEMP6D-TEMPZ6D
+             LONGITUDE: 120E to 122E
+             LATITUDE: 50S to 48S
+             DEPTH (m): 100
+             T: 0.5 to 2.5
+             E: 0.5 to 2.5
+             F: 0.5 to 2.5
+             DATA SET: ./levitus_3d_subset.nc
+ 
+ Total # of data points: 32 (2*2*1*2*2*2)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+ Standard deviation: 0
+stat/z=400 temp6d-tempz6d
+ 
+             TEMP6D-TEMPZ6D
+             LONGITUDE: 120E to 122E
+             LATITUDE: 50S to 48S
+             DEPTH (m): 400
+             T: 0.5 to 2.5
+             E: 0.5 to 2.5
+             F: 0.5 to 2.5
+             DATA SET: ./levitus_3d_subset.nc
+ 
+ Total # of data points: 32 (2*2*1*2*2*2)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+ Standard deviation: 0
+ 
+! 6d temperature and 6d depth field
+! hold temperature constant over time, have depths change
+! note that for N=2 depths of less than 100 are no longer in the data hence missing values at Z=100
+LET temp6d_const = temp + 0*L[L=1:2] + 0*_M[M=1:2] + 0*_N[N=1:2]     ! constant in T,E,F
+LET depth6d = depth + 10*(L[L=1:2]-1) + 50*(_M[M=1:2]-1) + 100*(_N[N=1:2]-1)
+LET tempz6d_tDep = temp6d_const[gz(depth6d)=zpts]
+LIST/PREC=7 tempz6d_tDep
+             VARIABLE : TEMP6D_CONST[GZ(DEPTH6D)=ZPTS]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 by 2 by 2 by 2 points (LONGITUDE-LATITUDE-Z-T-E-F)
+               120.5E    121.5E  
+                 1         2
+ ---- N:1 F:   1
+ ---- M:1 E:   1
+ ---- L:1 T:   1
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.334999  7.436001
+ 49.5S / 1:  6.462000  6.572001
+ ---- K:2 Z:   200
+ 48.5S / 2:  6.961000  7.073000
+ 49.5S / 1:  6.025999  6.150000
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.457001  6.636999
+ 49.5S / 1:  5.445000  5.665000
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.181999  6.377001
+ 49.5S / 1:  5.187000  5.410000
+ ---- K:5 Z:   500
+ 48.5S / 2:  5.835500  6.045001
+ 49.5S / 1:  4.879000  5.102500
+ ---- L:2 T:   2
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.429800  7.528001
+ 49.5S / 1:  6.577600  6.682400
+ ---- K:2 Z:   200
+ 48.5S / 2:  7.043200  7.151200
+ 49.5S / 1:  6.113999  6.234800
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.507401  6.680599
+ 49.5S / 1:  5.503100  5.713500
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.209499  6.403001
+ 49.5S / 1:  5.212800  5.435500
+ ---- K:5 Z:   500
+ 48.5S / 2:  5.870150  6.078201
+ 49.5S / 1:  4.909800  5.133250
+ ---- M:2 E:   2
+ ---- L:1 T:   1
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.410999  7.584000
+ 49.5S / 1:  6.624001  6.785000
+ ---- K:2 Z:   200
+ 48.5S / 2:  7.372000  7.464001
+ 49.5S / 1:  6.466000  6.573999
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.709001  6.855000
+ 49.5S / 1:  5.735499  5.907500
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.319500  6.507000
+ 49.5S / 1:  5.316000  5.537500
+ ---- K:5 Z:   500
+ 48.5S / 2:  6.008749  6.211001
+ 49.5S / 1:  5.033000  5.256250
+ ---- L:2 T:   2
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.502500  7.686500
+ 49.5S / 1:  6.682500  6.854000
+ ---- K:2 Z:   200
+ 48.5S / 2:  7.364600  7.458401
+ 49.5S / 1:  6.465200  6.573600
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.759401  6.898600
+ 49.5S / 1:  5.793599  5.956000
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.347000  6.533000
+ 49.5S / 1:  5.341800  5.563000
+ ---- K:5 Z:   500
+ 48.5S / 2:  6.043399  6.244201
+ 49.5S / 1:  5.063800  5.287000
+ ---- N:2 F:   2
+ ---- M:1 E:   1
+ ---- L:1 T:   1
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.725000  7.917999
+ 49.5S / 1:  6.827000  7.007000
+ ---- K:2 Z:   200
+ 48.5S / 2:  7.334999  7.436001
+ 49.5S / 1:  6.462000  6.572001
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.961000  7.073000
+ 49.5S / 1:  6.025999  6.150000
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.457001  6.636999
+ 49.5S / 1:  5.445000  5.665000
+ ---- K:5 Z:   500
+ 48.5S / 2:  6.181999  6.377001
+ 49.5S / 1:  5.187000  5.410000
+ ---- L:2 T:   2
+ ---- K:1 Z:   100
+ 48.5S / 2:      ....      ....
+ 49.5S / 1:      ....      ....
+ ---- K:2 Z:   200
+ 48.5S / 2:  7.429800  7.528001
+ 49.5S / 1:  6.577600  6.682400
+ ---- K:3 Z:   300
+ 48.5S / 2:  7.043200  7.151200
+ 49.5S / 1:  6.113999  6.234800
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.507401  6.680599
+ 49.5S / 1:  5.503100  5.713500
+ ---- K:5 Z:   500
+ 48.5S / 2:  6.209499  6.403001
+ 49.5S / 1:  5.212800  5.435500
+ ---- M:2 E:   2
+ ---- L:1 T:   1
+ ---- K:1 Z:   100
+ 48.5S / 2:      ....      ....
+ 49.5S / 1:      ....      ....
+ ---- K:2 Z:   200
+ 48.5S / 2:  7.410999  7.584000
+ 49.5S / 1:  6.624001  6.785000
+ ---- K:3 Z:   300
+ 48.5S / 2:  7.372000  7.464001
+ 49.5S / 1:  6.466000  6.573999
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.709001  6.855000
+ 49.5S / 1:  5.735499  5.907500
+ ---- K:5 Z:   500
+ 48.5S / 2:  6.319500  6.507000
+ 49.5S / 1:  5.316000  5.537500
+ ---- L:2 T:   2
+ ---- K:1 Z:   100
+ 48.5S / 2:      ....      ....
+ 49.5S / 1:      ....      ....
+ ---- K:2 Z:   200
+ 48.5S / 2:  7.502500  7.686500
+ 49.5S / 1:  6.682500  6.854000
+ ---- K:3 Z:   300
+ 48.5S / 2:  7.364600  7.458401
+ 49.5S / 1:  6.465200  6.573600
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.759401  6.898600
+ 49.5S / 1:  5.793599  5.956000
+ ---- K:5 Z:   500
+ 48.5S / 2:  6.347000  6.533000
+ 49.5S / 1:  5.341800  5.563000
+LIST/PREC=7/k=7:8 temp6d_const, depth6d  ! reference values at Z=100, 200, 300 for visual comparison
+             DATA SET: ./levitus_3d_subset.nc
+             LONGITUDE: 120E to 122E
+             LATITUDE: 50S to 48S
+             DEPTH (m): 87.5 to 175
+             T: 0.5 to 2.5
+             E: 0.5 to 2.5
+             F: 0.5 to 2.5
+ Column  1: TEMP6D_CONST is TEMP + 0*L[L=1:2] + 0*_M[M=1:2] + 0*_N[N=1:2]
+ Column  2: DEPTH6D is DEPTH + 10*(L[L=1:2]-1) + 50*(_M[M=1:2]-1) + 100*(_N[N=1:2]-1)
+         TEMP6D_CONS   DEPTH6D
+ ---- N:1 F:   1
+ ---- M:1 E:   1
+ ---- L:1 T:   1
+ ---- K:7 Z:   100
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.462000  100.0000
+121.5E / 2:  6.572001  100.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.334999  100.0000
+121.5E / 2:  7.436001  100.0000
+ ---- K:8 Z:   150
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.466000  150.0000
+121.5E / 2:  6.573999  150.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.372000  150.0000
+121.5E / 2:  7.464001  150.0000
+ ---- L:2 T:   2
+ ---- K:7 Z:   100
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.462000  110.0000
+121.5E / 2:  6.572001  110.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.334999  110.0000
+121.5E / 2:  7.436001  110.0000
+ ---- K:8 Z:   150
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.466000  160.0000
+121.5E / 2:  6.573999  160.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.372000  160.0000
+121.5E / 2:  7.464001  160.0000
+ ---- M:2 E:   2
+ ---- L:1 T:   1
+ ---- K:7 Z:   100
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.462000  150.0000
+121.5E / 2:  6.572001  150.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.334999  150.0000
+121.5E / 2:  7.436001  150.0000
+ ---- K:8 Z:   150
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.466000  200.0000
+121.5E / 2:  6.573999  200.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.372000  200.0000
+121.5E / 2:  7.464001  200.0000
+ ---- L:2 T:   2
+ ---- K:7 Z:   100
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.462000  160.0000
+121.5E / 2:  6.572001  160.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.334999  160.0000
+121.5E / 2:  7.436001  160.0000
+ ---- K:8 Z:   150
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.466000  210.0000
+121.5E / 2:  6.573999  210.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.372000  210.0000
+121.5E / 2:  7.464001  210.0000
+ ---- N:2 F:   2
+ ---- M:1 E:   1
+ ---- L:1 T:   1
+ ---- K:7 Z:   100
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.462000  200.0000
+121.5E / 2:  6.572001  200.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.334999  200.0000
+121.5E / 2:  7.436001  200.0000
+ ---- K:8 Z:   150
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.466000  250.0000
+121.5E / 2:  6.573999  250.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.372000  250.0000
+121.5E / 2:  7.464001  250.0000
+ ---- L:2 T:   2
+ ---- K:7 Z:   100
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.462000  210.0000
+121.5E / 2:  6.572001  210.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.334999  210.0000
+121.5E / 2:  7.436001  210.0000
+ ---- K:8 Z:   150
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.466000  260.0000
+121.5E / 2:  6.573999  260.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.372000  260.0000
+121.5E / 2:  7.464001  260.0000
+ ---- M:2 E:   2
+ ---- L:1 T:   1
+ ---- K:7 Z:   100
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.462000  250.0000
+121.5E / 2:  6.572001  250.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.334999  250.0000
+121.5E / 2:  7.436001  250.0000
+ ---- K:8 Z:   150
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.466000  300.0000
+121.5E / 2:  6.573999  300.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.372000  300.0000
+121.5E / 2:  7.464001  300.0000
+ ---- L:2 T:   2
+ ---- K:7 Z:   100
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.462000  260.0000
+121.5E / 2:  6.572001  260.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.334999  260.0000
+121.5E / 2:  7.436001  260.0000
+ ---- K:8 Z:   150
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.466000  310.0000
+121.5E / 2:  6.573999  310.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.372000  310.0000
+121.5E / 2:  7.464001  310.0000
+! ... some spot checks
+LIST/PREC=7/l=1/m=1/n=1 tempz6d_tDep[Z=100] - temp6d_const[k=7]
+             VARIABLE : TEMPZ6D_TDEP[Z=100] - TEMP6D_CONST[K=7]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z        : 100
+             T        : 1
+             E        : 1
+             F        : 1
+               120.5E     121.5E   
+                 1          2
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+LIST/PREC=7/l=1/m=2/n=1 tempz6d_tDep[Z=200] - temp6d_const[k=8]
+             VARIABLE : TEMPZ6D_TDEP[Z=200] - TEMP6D_CONST[K=8]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z        : 200
+             T        : 1
+             E        : 2
+             F        : 1
+               120.5E     121.5E   
+                 1          2
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+LIST/PREC=7/l=1/m=2/n=2 tempz6d_tDep[Z=300] - temp6d_const[k=8]
+             VARIABLE : TEMPZ6D_TDEP[Z=300] - TEMP6D_CONST[K=8]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z        : 300
+             T        : 1
+             E        : 2
+             F        : 2
+               120.5E     121.5E   
+                 1          2
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ 
+! ** deliberate error **
+! 6d temperature and 3d depth field (depth unchanging in time, ensemble and forecast)
+! Ferret does not permit auxiliary variable to have an axis not found on the source variable
+! (to avoid having to consider auxiliary variables during grid-getting ... possible to do)
+SET MODE IGNORE
+LET tempz6d_unmatch = temp[gz(depth6d)=zpts]
+LIST/PREC=7 tempz6d_unmatch
+SET MODE/LAST IGNORE
+ 
+! ********************************
+! test the @plave regridding -- ave defined from area under piecewise curve
+ 
+! first compare to our simplest of linear interpolation regrids, tempz
+! note that results will differ due to non-linearity
+! at Z=500 on the output they become identical because the Z=500 grid box
+! extends 450:550 with source points at Z=400 and Z=600 -- pure linear
+! LET tempz = temp[gz(depth)=zpts]
+LET tempzave = temp[gz(depth)=zpts at plave]
+LIST tempzave - tempz
+             VARIABLE : TEMPZAVE - TEMPZ
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+                120.5E      121.5E   
+                  1           2
+ ---- K:1 Z:   100
+ 48.5S / 2:  0.07800055  0.08299971
+ 49.5S / 1:  0.09349990  0.09612441
+ ---- K:2 Z:   200
+ 48.5S / 2:  0.03974986  0.04325008
+ 49.5S / 1:  0.03737521  0.04537499
+ ---- K:3 Z:   300
+ 48.5S / 2:  0.02862477  0.02200031
+ 49.5S / 1:  0.04037499  0.02874994
+ ---- K:4 Z:   400
+ 48.5S / 2: -0.00893724 -0.00900024
+ 49.5S / 1: -0.00625008 -0.00656247
+ ---- K:5 Z:   500
+ 48.5S / 2:  0.00000000  0.00000000
+ 49.5S / 1:  0.00000000  0.00000000
+ 
+! list a little.  Note the regridding transform label
+LIST/PREC=7 temp[gz(depth)=zpts at plave,k=1]
+             VARIABLE : TEMPERATURE (DEG C)
+                        regrid: 100 delta on Z at PLAVE using DEPTH field
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z        : 50 to 150
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2:  7.413000  7.519001
+ 49.5S / 1:  6.555500  6.668125
+ 
+! Levitus has points at 50, 75, 100, 150, 200
+! define target axis with edges at 50:75 (k=1),  75:100 (k=2)
+!                                 100:125(k=3), 125:150 (k=4), 150:175(k=5)
+define axis/edges/z=50:175:25/units=m zpt2     ! point at 125 is mid-way
+ 
+! raw source data -- artifically designed for easy mental calcs
+LET myvals = temp*0+100*(i-100)+10*(j-40)+k
+list/PREC=7 myvals[z=50:300]
+             VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+K
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 6 points (LONGITUDE-LATITUDE-DEPTH (m))
+               120.5E    121.5E  
+                 1         2
+ ---- K:5 Z:   50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:6 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:7 Z:   100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:8 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:9 Z:   200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+ ---- K:10 Z:   300
+ 48.5S / 2: -10270.00 -10170.00
+ 49.5S / 1: -10280.00 -10180.00
+ 
+! linear interpolation regridding
+LET mzlin2 = myvals[gz(depth)=zpt2]
+LIST/PREC=7 mzlin2
+             VARIABLE : MYVALS[GZ(DEPTH)=ZPT2]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   62.5
+ 48.5S / 2: -10274.50 -10174.50
+ 49.5S / 1: -10284.50 -10184.50
+ ---- K:2 Z:   87.5
+ 48.5S / 2: -10273.50 -10173.50
+ 49.5S / 1: -10283.50 -10183.50
+ ---- K:3 Z:   112.5
+ 48.5S / 2: -10272.75 -10172.75
+ 49.5S / 1: -10282.75 -10182.75
+ ---- K:4 Z:   137.5
+ 48.5S / 2: -10272.25 -10172.25
+ 49.5S / 1: -10282.25 -10182.25
+ ---- K:5 Z:   162.5
+ 48.5S / 2: -10271.75 -10171.75
+ 49.5S / 1: -10281.75 -10181.75
+ 
+! average-regridding
+LET mzave2 = myvals[gz(depth)=zpt2 at plave]
+ 
+! cases:
+! 1) both edges lie on source points
+LIST/PREC=7 mzave2[k=2]   ! vals at 75, 100 ==> 75:100
+             VARIABLE : MYVALS[GZ(DEPTH)=ZPT2 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z (M)    : 87.5
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10273.50 -10173.50
+ 49.5S / 1: -10283.50 -10183.50
+ 
+! 2) lower edge only lies on source point
+LIST/PREC=7 mzave2[k=3]   ! vals at 100, 150 ==> 100:125
+             VARIABLE : MYVALS[GZ(DEPTH)=ZPT2 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z (M)    : 112.5
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10272.75 -10172.75
+ 49.5S / 1: -10282.75 -10182.75
+ 
+! 3) upper edge only lies on source point
+LIST/PREC=7 mzave2[k=4]   ! vals at 100, 150 ==> 125:150
+             VARIABLE : MYVALS[GZ(DEPTH)=ZPT2 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z (M)    : 137.5
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10272.25 -10172.25
+ 49.5S / 1: -10282.25 -10182.25
+ 
+! 4) full range
+! myvals2 is linear in k, so @plave and @lin get identical results
+LIST/PREC=7 mzave2
+             VARIABLE : MYVALS[GZ(DEPTH)=ZPT2 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   62.5
+ 48.5S / 2: -10274.50 -10174.50
+ 49.5S / 1: -10284.50 -10184.50
+ ---- K:2 Z:   87.5
+ 48.5S / 2: -10273.50 -10173.50
+ 49.5S / 1: -10283.50 -10183.50
+ ---- K:3 Z:   112.5
+ 48.5S / 2: -10272.75 -10172.75
+ 49.5S / 1: -10282.75 -10182.75
+ ---- K:4 Z:   137.5
+ 48.5S / 2: -10272.25 -10172.25
+ 49.5S / 1: -10282.25 -10182.25
+ ---- K:5 Z:   162.5
+ 48.5S / 2: -10271.75 -10171.75
+ 49.5S / 1: -10281.75 -10181.75
+LIST/PREC=7 mzave2 - mzlin2
+             VARIABLE : MZAVE2 - MZLIN2
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E     121.5E   
+                 1          2
+ ---- K:1 Z:   62.5
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ ---- K:2 Z:   87.5
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ ---- K:3 Z:   112.5
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ ---- K:4 Z:   137.5
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ ---- K:5 Z:   162.5
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ 
+! 5) divide a single source range into multiple destination cells
+! a range of 50 divided into 5 cells will have means of x.1,x.3,x.5, x.7, x.9
+define axis/edges/z=150:200:10/units=m zpt3
+LET mzave3 = myvals[gz(depth)=zpt3 at plave]
+LIST/PREC=7 mzave3
+             VARIABLE : MYVALS[GZ(DEPTH)=ZPT3 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   155
+ 48.5S / 2: -10271.90 -10171.90
+ 49.5S / 1: -10281.90 -10181.90
+ ---- K:2 Z:   165
+ 48.5S / 2: -10271.70 -10171.70
+ 49.5S / 1: -10281.70 -10181.70
+ ---- K:3 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:4 Z:   185
+ 48.5S / 2: -10271.30 -10171.30
+ 49.5S / 1: -10281.30 -10181.30
+ ---- K:5 Z:   195
+ 48.5S / 2: -10271.10 -10171.10
+ 49.5S / 1: -10281.10 -10181.10
+ 
+! 6) derive a single destination cell from many source points
+! by manual calculation the correct answers will be n.333333
+define axis/edges/z=50:200:150/units=m zpt4
+LET mzave4 = myvals[gz(depth)=zpt4 at plave]
+LIST/PREC=7 mzave4
+             VARIABLE : MYVALS[GZ(DEPTH)=ZPT4 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z (M)    : 125
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10272.67 -10172.67
+ 49.5S / 1: -10282.67 -10182.67
+ 
+! 7) derive a single destination cell from many source points
+! by manual calculation the correct answers will be n.8125
+define axis/edges/z=50:250:200/units=m zpt5
+LET mzave5 = myvals[gz(depth)=zpt5 at plave]
+LIST/PREC=7 mzave5
+             VARIABLE : MYVALS[GZ(DEPTH)=ZPT5 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z (M)    : 150
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10272.19 -10172.19
+ 49.5S / 1: -10282.19 -10182.19
+ 
+! 8) test the short-hand notation var[gz(depth)=0:100 at ave] as an implicit
+! aux var regrid via piecewice linear averaging
+! To confirm correct results we create a piecewize linear function that
+! has constant slope.  Averaging such a function over a symmetric region
+! around a point on the source data should return the value at the point
+LET myvals_z = TEMP*0+100*(I-100)+10*(J-40)+Z
+list/PREC=7 myvals_z[z=200]
+             VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             DEPTH (m): 200
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10080.00  -9980.00
+ 49.5S / 1: -10090.00  -9990.00
+list/PREC=7 myvals_z[gz(depth)=190:210 at ave]
+             VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+                        regrid: on Z at PLAVE using DEPTH field
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z        : 190 to 210
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10080.00  -9980.00
+ 49.5S / 1: -10090.00  -9990.00
+list/PREC=7 myvals_z[gz(depth)=150:250 at ave]
+             VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+                        regrid: on Z at PLAVE using DEPTH field
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z        : 150 to 250
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10080.00  -9980.00
+ 49.5S / 1: -10090.00  -9990.00
+ 
+! 8a) do same regrid using the shorhand semi-automated notation
+SET VAR/LAYERZ=depth myvals_z
+list/PREC=7 myvals_z[z=190:210 at ave,layerz]  ! lo:hi at ave notation WILL BE CHANGED
+             VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             DEPTH (m): 190 to 210 (pc wise lin avgd using DEPTH)
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10080.00  -9980.00
+ 49.5S / 1: -10090.00  -9990.00
+list/PREC=7 myvals_z[z=150:250 at ave,layerz]  ! WILL BE CHANGED
+             VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             DEPTH (m): 150 to 250 (pc wise lin avgd using DEPTH)
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10080.00  -9980.00
+ 49.5S / 1: -10090.00  -9990.00
+ 
+! test missing values in the depth array
+! cases:
+! 1) missing values at start of aux array
+define axis/z=25:200:25/units=m zpt6
+LET depmis = IF (I NE 102 OR k GT 6) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+ 
+! 2) missing values at end of aux array
+LET depmis = IF (I NE 102 OR k LT 9) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+ 
+! 3) missing values in midst of aux array -- stops processing beyond
+LET depmis = IF (I NE 102 OR k EQ 7 OR K EQ 8) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+ 
+! 4) singleton non-missing values in a line of the aux array
+LET depmis = IF (I NE 102 OR K EQ 8) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+ 
+! 5) there are only missing values in a line of the aux array
+LET depmis = IF (I NE 102) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+ 
+! 6) two separated singletons -- only the first should be found
+LET depmis = IF (I NE 102 OR K EQ 6 OR K EQ 8) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+list depmis[z=25:200]      ! to illustrate why the result is as it is
+             VARIABLE : IF (I NE 102 OR K EQ 6 OR K EQ 8) THEN DEPTH
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 6 points (LONGITUDE-LATITUDE-DEPTH (m))
+               120.5E    121.5E  
+                 1         2
+ ---- K:4 Z:   30
+ 48.5S / 2:   30.0000   30.0000
+ 49.5S / 1:   30.0000   30.0000
+ ---- K:5 Z:   50
+ 48.5S / 2:   50.0000   50.0000
+ 49.5S / 1:   50.0000   50.0000
+ ---- K:6 Z:   75
+ 48.5S / 2:   75.0000   75.0000
+ 49.5S / 1:   75.0000   75.0000
+ ---- K:7 Z:   100
+ 48.5S / 2:  100.0000  100.0000
+ 49.5S / 1:  100.0000  100.0000
+ ---- K:8 Z:   150
+ 48.5S / 2:  150.0000  150.0000
+ 49.5S / 1:  150.0000  150.0000
+ ---- K:9 Z:   200
+ 48.5S / 2:  200.0000  200.0000
+ 49.5S / 1:  200.0000  200.0000
+ 
+! ********
+! reversed-auxiliary variable used in regridding
+! (see definitions made earlier)
+! Note that the regridded result only matches the original data in regions
+! where the underlying piecewise function remains strictly linear with
+! unchanging slope/intercept.  Since the Z=500 point has cell limits 450:550
+! and the underlying Levitus Z points (used in the definition of "depth") are
+! at 400 and 600, we get the identical result from @PLAVE and @LIN
+LET rvtempzaxave = rvtemp[gz(rvdepth)=zax at plave,z=100:500]
+LIST/PREC=7 rvtempzaxave - tempz
+             VARIABLE : RVTEMPZAXAVE - TEMPZ
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+                120.5E      121.5E   
+                  1           2
+ ---- K:1 Z:   100
+ 48.5S / 2:  0.07800055  0.08299971
+ 49.5S / 1:  0.09349990  0.09612441
+ ---- K:2 Z:   200
+ 48.5S / 2:  0.03974986  0.04325008
+ 49.5S / 1:  0.03737521  0.04537499
+ ---- K:3 Z:   300
+ 48.5S / 2:  0.02862477  0.02200031
+ 49.5S / 1:  0.04037499  0.02874994
+ ---- K:4 Z:   400
+ 48.5S / 2: -0.00893724 -0.00900024
+ 49.5S / 1: -0.00625008 -0.00656247
+ ---- K:5 Z:   500
+ 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
+ normal    T
+ normal    E
+ normal    F
+ 
+       K     Z                   ZBOX      ZBOXLO
+       1>  100                   100        50
+       2>  200                   100        150
+       3>  300                   100        250
+       4>  400                   100        350
+       5>  500                   100        450
  
-   FVX[d=my_file_vars]
-   FV1[d=other_file_vars]
-   FV1[d=another_file_vars]
-/TREE=ALL
-/TREE=USER
-/TREE=FILE
-the problem is ILLEGAL RECURSIVE VARIABLES: P1
-************************
-   in default dataset MY_UVAR_AGG
-   P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
-     P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
-       P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
-         P3 = P1 + S3
-           P1 =   *** WARNING: RECURSIVE DEFINITION.  See above
-           S3 ??                           <== UNKNOWN VARIABLE ******
-   in default dataset MY_UVAR_AGG
-   P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
-     P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
-       P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
-         P3 = P1 + S3
-           P1 =   *** WARNING: RECURSIVE DEFINITION.  See above
-           S3 ??                           <== UNKNOWN VARIABLE ******
-   S1  (unknown variable)
-   S2  (unknown variable)
-   S3  (unknown variable)
-   S3  (unknown variable)
-/TREE=ALL
-/TREE=USER
-/TREE=FILE
-the problem is UNKNOWN VARIABLE: S1
-************************
-   in default dataset MY_UVAR_AGG
-   P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
-     P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
-       P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
-         P3 = S1 + S3
-           S1 ??                           <== UNKNOWN VARIABLE ******
-           S3 ??                           <== UNKNOWN VARIABLE ******
-   in default dataset MY_UVAR_AGG
-   P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
-     P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
-       P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
-         P3 = S1 + S3
-           S1 ??                           <== UNKNOWN VARIABLE ******
-           S3 ??                           <== UNKNOWN VARIABLE ******
-   S1  (unknown variable)
-   S2  (unknown variable)
-   S3  (unknown variable)
-   S1  (unknown variable)
-   S3  (unknown variable)
-   in default dataset my_file_vars
-   FV = FV1 + FV1 + FV1
-   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
-   UV = FVX + FVX + FVX
-     FVX   (aggregate variable)
-       FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
-       FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
-***************************
-/TREE=ALL
-/TREE=USER
-/TREE=FILE
-v2 is ready and AVAILABLE
-************************
-   in default dataset MY_UVAR_AGG
-   V2 = V1 + B + A + A
-     V1 = A  + B + B^2
-       A = FV1[D=1] - FV1[D=2]
-         FV1[d=my_file_var]
-         FV1[d=other_file_var]
-       B = C
-         C = 1
-     B =  (defined above)
-     A =  (defined above)
-   in default dataset MY_UVAR_AGG
-   V2 = V1 + B + A + A
-     V1 = A  + B + B^2
-       A = FV1[D=1] - FV1[D=2]
-       B = C
-         C = 1
-     B =  (defined above)
-     A =  (defined above)
-   FV1[d=my_file_vars]
-   FV1[d=other_file_vars]
-/TREE=ALL
-/TREE=USER
-/TREE=FILE
-v3 is ready and AVAILABLE
-************************
-   in default dataset MY_UVAR_AGG
-   V3 = A + V1 + B + A + A
-     A = FV1[D=1] - FV1[D=2]
-       FV1[d=my_file_var]
-       FV1[d=other_file_var]
-     V1 = A  + B + B^2
-       A =  (defined above)
-       B = C
-         C = 1
-     B =  (defined above)
-   in default dataset MY_UVAR_AGG
-   V3 = A + V1 + B + A + A
-     A = FV1[D=1] - FV1[D=2]
-     V1 = A  + B + B^2
-       A =  (defined above)
-       B = C
-         C = 1
-     B =  (defined above)
-   FV1[d=my_file_vars]
-   FV1[d=other_file_vars]
-/TREE=ALL
-/TREE=USER
-/TREE=FILE
-the problem is UNKNOWN VARIABLE: F
-************************
-   in default dataset MY_UVAR_AGG
-   D = B + C
-     B = FV1[D=MY_FILE_VARS]
-       FV1[d=my_file_var]
-     C = 1
-   A = F
-     F ??                           <== UNKNOWN VARIABLE ******
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
-   E = 1
-   FVX[d=my_file_var]
-   in default dataset MY_UVAR_AGG
-   D = B + C
-     B = FV1[D=MY_FILE_VARS]
-     C = 1
-   A = F
-     F ??                           <== UNKNOWN VARIABLE ******
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
-   E = 1
-   F  (unknown variable)
-   FV1[d=my_file_vars]
-   NOEXIST  (unknown variable)
-   FVX[d=my_file_vars]
-/TREE=ALL
-/TREE=USER
-/TREE=FILE
-the problem is UNKNOWN GRID: A[G=NOEXIST]
-************************
-   in default dataset MY_UVAR_AGG
-   B = A[G=NOEXIST]
-     A[G=NOEXIST]   (unknown grid)
-   in default dataset MY_UVAR_AGG
-   B = A[G=NOEXIST]
-     A[G=NOEXIST]   (unknown grid)
-   A[G=NOEXIST]  (unknown grid)
-/TREE=ALL
-/TREE=USER
-/TREE=FILE
-the problem is ERROR IN EXPRESSION: A[X=45S]
-************************
-   in default dataset MY_UVAR_AGG
-   C = A[X=45S]
-     A[X=45S]   *** WARNING: ERROR IN DEFINITION
-   in default dataset MY_UVAR_AGG
-   C = A[X=45S]
-     A[X=45S]   *** WARNING: ERROR IN DEFINITION
-   A[X=45S]   *** WARNING: SYNTAX ERROR
-/TREE=ALL
-/TREE=USER
-/TREE=FILE
-the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
-************************
-   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
-   D = A[I=1,,J=2]
-     A[I=1,,J=2]   *** WARNING: ERROR IN DEFINITION
-   A[I=1,,J=2]   *** WARNING: SYNTAX ERROR
-/TREE=ALL
-/TREE=USER
-/TREE=FILE
-the problem is ERROR IN EXPRESSION: A[P=1]
-************************
-   in default dataset MY_UVAR_AGG
-   E = A[P=1]
-     A[P=1]   *** WARNING: ERROR IN DEFINITION
-   in default dataset MY_UVAR_AGG
-   E = A[P=1]
-     A[P=1]   *** WARNING: ERROR IN DEFINITION
-   A[P=1]   *** WARNING: SYNTAX ERROR
-/TREE=ALL
-/TREE=USER
-/TREE=FILE
-f is ready and AVAILABLE
-************************
-   in default dataset MY_UVAR_AGG
-   F = A[I=10]
-     A = I[I=1:5]
-   in default dataset MY_UVAR_AGG
-   F = A[I=10]
-     A = I[I=1:5]
-   in default dataset MY_UVAR_AGG
-   A = FVZ.LONG_NAME[D=1]
-   in default dataset MY_UVAR_AGG
-   A = ..HISTORY[D=1]
+! 5/15 -- added tests for non-monotonic auxiliary variable
+!test_non_monotonic_aux_z.jnl
+ 
+cancel region
+define axis/x=161e:165e:1 xax
+define axis/z=100:600:100 zax
+ 
+let temp = 0.0001*Z[gz=zax]^2 + 0*x[gx=xax]
+list temp
+             VARIABLE : 0.0001*Z[GZ=ZAX]^2 + 0*X[GX=XAX]
+             SUBSET   : 5 by 6 points (LONGITUDE-Z)
+               161E      162E      163E      164E      165E    
+                 1         2         3         4         5
+ 100   / 1:   1.00000   1.00000   1.00000   1.00000   1.00000
+ 200   / 2:   4.00000   4.00000   4.00000   4.00000   4.00000
+ 300   / 3:   9.00000   9.00000   9.00000   9.00000   9.00000
+ 400   / 4:  16.00000  16.00000  16.00000  16.00000  16.00000
+ 500   / 5:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 600   / 6:  36.00000  36.00000  36.00000  36.00000  36.00000
+ 
+! disordered points at beginning, middle and end, missing at beginning
+let density0 = 0*i[gx=xax]*k[gz=zax] + z/10
+let density1 = if i eq 2 and k eq 4 then 20  else density0
+let density2 = if i eq 3 and k eq 1 then 20  else density1
+let density3 = if i eq 3 and k eq 2 then 10  else density2
+let density4 = if i eq 4 and k eq 6 then 30  else density3
+let density  = if i eq 5 and k le 2 then 1/0 else density4  ! missing at k=1:3
+list density
+             VARIABLE : IF I EQ 5 AND K LE 2 THEN 1/0 ELSE DENSITY4
+             SUBSET   : 5 by 6 points (LONGITUDE-Z)
+               161E      162E      163E      164E      165E    
+                 1         2         3         4         5
+ 100   / 1:  10.00000  10.00000  20.00000  10.00000      ....
+ 200   / 2:  20.00000  20.00000  10.00000  20.00000      ....
+ 300   / 3:  30.00000  30.00000  30.00000  30.00000  30.00000
+ 400   / 4:  40.00000  20.00000  40.00000  40.00000  40.00000
+ 500   / 5:  50.00000  50.00000  50.00000  50.00000  50.00000
+ 600   / 6:  60.00000  60.00000  60.00000  30.00000  60.00000
+ 
+! Z=200-300 on the density axis are double valued at I=2
+list temp[gz(density)=5:65:2.5]
+             VARIABLE : 0.0001*Z[GZ=ZAX]^2 + 0*X[GX=XAX]
+                        regrid: 2.5 delta on Z at LIN using DENSITY field
+             SUBSET   : 5 by 25 points (LONGITUDE-Z)
+               161E      162E      163E      164E      165E    
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 7.5  /  2:      ....      ....      ....      ....      ....
+ 10   /  3:   1.00000   1.00000   4.00000   1.00000      ....
+ 12.5 /  4:   1.75000   1.75000      ....   1.75000      ....
+ 15   /  5:   2.50000   2.50000      ....   2.50000      ....
+ 17.5 /  6:   3.25000   3.25000      ....   3.25000      ....
+ 20   /  7:   4.00000      ....      ....   4.00000      ....
+ 22.5 /  8:   5.25000      ....   7.12500   5.25000      ....
+ 25   /  9:   6.50000      ....   7.75000   6.50000      ....
+ 27.5 / 10:   7.75000      ....   8.37500   7.75000      ....
+ 30   / 11:   9.00000      ....   9.00000      ....   9.00000
+ 32.5 / 12:  10.75000  19.75000  10.75000      ....  10.75000
+ 35   / 13:  12.50000  20.50000  12.50000      ....  12.50000
+ 37.5 / 14:  14.25000  21.25000  14.25000      ....  14.25000
+ 40   / 15:  16.00000  22.00000  16.00000      ....  16.00000
+ 42.5 / 16:  18.25000  22.75000  18.25000      ....  18.25000
+ 45   / 17:  20.50000  23.50000  20.50000      ....  20.50000
+ 47.5 / 18:  22.75000  24.25000  22.75000      ....  22.75000
+ 50   / 19:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 52.5 / 20:  27.75000  27.75000  27.75000      ....  27.75000
+ 55   / 21:  30.50000  30.50000  30.50000      ....  30.50000
+ 57.5 / 22:  33.25000  33.25000  33.25000      ....  33.25000
+ 60   / 23:  36.00000  36.00000  36.00000      ....  36.00000
+ 62.5 / 24:      ....      ....      ....      ....      ....
+ 65   / 25:      ....      ....      ....      ....      ....
+ 
+ 
+!************************************
+! reverse-ordering of same field
+let btemp = 0.0001*(700-Z[gz=zax])^2  + 0*x[gx=xax]
+list btemp
+             VARIABLE : 0.0001*(700-Z[GZ=ZAX])^2  + 0*X[GX=XAX]
+             SUBSET   : 5 by 6 points (LONGITUDE-Z)
+               161E      162E      163E      164E      165E    
+                 1         2         3         4         5
+ 100   / 1:  36.00000  36.00000  36.00000  36.00000  36.00000
+ 200   / 2:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 300   / 3:  16.00000  16.00000  16.00000  16.00000  16.00000
+ 400   / 4:   9.00000   9.00000   9.00000   9.00000   9.00000
+ 500   / 5:   4.00000   4.00000   4.00000   4.00000   4.00000
+ 600   / 6:   1.00000   1.00000   1.00000   1.00000   1.00000
+ 
+let bdensity0 = 0*i[gx=xax]*k[gz=zax] + (700-z)/10
+let bdensity1 = if i eq 2 and (7-k) eq 4 then 20  else bdensity0
+let bdensity2 = if i eq 3 and (7-k) eq 1 then 20  else bdensity1
+let bdensity3 = if i eq 3 and (7-k) eq 2 then 10  else bdensity2
+let bdensity4 = if i eq 4 and (7-k) eq 6 then 30  else bdensity3
+let bdensity  = if i eq 5 and (7-k) le 2 then 1/0 else bdensity4 !missing k=1:3
+ 
+SAY "************ TBD: STILL NEED TO MAKE SURE UNITS ARE WORKING ********"
+************ TBD: STILL NEED TO MAKE SURE UNITS ARE WORKING ********
+SET VAR/units="kg/m^3" density
+ 
+list bdensity
+             VARIABLE : IF I EQ 5 AND (7-K) LE 2 THEN 1/0 ELSE BDENSITY4
+             SUBSET   : 5 by 6 points (LONGITUDE-Z)
+               161E      162E      163E      164E      165E    
+                 1         2         3         4         5
+ 100   / 1:  60.00000  60.00000  60.00000  30.00000  60.00000
+ 200   / 2:  50.00000  50.00000  50.00000  50.00000  50.00000
+ 300   / 3:  40.00000  20.00000  40.00000  40.00000  40.00000
+ 400   / 4:  30.00000  30.00000  30.00000  30.00000  30.00000
+ 500   / 5:  20.00000  20.00000  10.00000  20.00000      ....
+ 600   / 6:  10.00000  10.00000  20.00000  10.00000      ....
+ 
+list btemp[gz(bdensity)=5:65:2.5]
+             VARIABLE : 0.0001*(700-Z[GZ=ZAX])^2  + 0*X[GX=XAX]
+                        regrid: 2.5 delta on Z at LIN using BDENSITY field
+             SUBSET   : 5 by 25 points (LONGITUDE-Z)
+               161E      162E      163E      164E      165E    
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 7.5  /  2:      ....      ....      ....      ....      ....
+ 10   /  3:   1.00000   1.00000   4.00000   1.00000      ....
+ 12.5 /  4:   1.75000   1.75000      ....   1.75000      ....
+ 15   /  5:   2.50000   2.50000      ....   2.50000      ....
+ 17.5 /  6:   3.25000   3.25000      ....   3.25000      ....
+ 20   /  7:   4.00000      ....      ....   4.00000      ....
+ 22.5 /  8:   5.25000      ....   7.12500   5.25000      ....
+ 25   /  9:   6.50000      ....   7.75000   6.50000      ....
+ 27.5 / 10:   7.75000      ....   8.37500   7.75000      ....
+ 30   / 11:   9.00000      ....   9.00000      ....   9.00000
+ 32.5 / 12:  10.75000  19.75000  10.75000      ....  10.75000
+ 35   / 13:  12.50000  20.50000  12.50000      ....  12.50000
+ 37.5 / 14:  14.25000  21.25000  14.25000      ....  14.25000
+ 40   / 15:  16.00000  22.00000  16.00000      ....  16.00000
+ 42.5 / 16:  18.25000  22.75000  18.25000      ....  18.25000
+ 45   / 17:  20.50000  23.50000  20.50000      ....  20.50000
+ 47.5 / 18:  22.75000  24.25000  22.75000      ....  22.75000
+ 50   / 19:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 52.5 / 20:  27.75000  27.75000  27.75000      ....  27.75000
+ 55   / 21:  30.50000  30.50000  30.50000      ....  30.50000
+ 57.5 / 22:  33.25000  33.25000  33.25000      ....  33.25000
+ 60   / 23:  36.00000  36.00000  36.00000      ....  36.00000
+ 62.5 / 24:      ....      ....      ....      ....      ....
+ 65   / 25:      ....      ....      ....      ....      ....
+ 
+!************************************
+! similar analysis using @plave over wider cells
+! compare to reverse-ordered data
+list  temp[gz(density)=5:65:15 at plave]
+             VARIABLE : 0.0001*Z[GZ=ZAX]^2 + 0*X[GX=XAX]
+                        regrid: 15 kg/m^3 on Z at PLAVE using DENSITY field
+             SUBSET   : 5 by 5 points (LONGITUDE-Z (kg/m^3))
+              161E      162E      163E      164E      165E    
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+list btemp[gz(bdensity)=5:65:15 at plave]
+             VARIABLE : 0.0001*(700-Z[GZ=ZAX])^2  + 0*X[GX=XAX]
+                        regrid: 15 delta on Z at PLAVE using BDENSITY field
+             SUBSET   : 5 by 5 points (LONGITUDE-Z)
+              161E      162E      163E      164E      165E    
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 
+! 6/15
+! test 1D auxiliary axis regirdding on all axes
+ 
+! p for passive axis
+! a for active axis
+ 
+define axis/x=161:165:1 xp
+define axis/y=161:165:1 yp
+define axis/z=161:165:1 zp
+define axis/t=161:165:1 tp
+define axis/e=161:165:1 ep
+define axis/f=161:165:1 fp
+ 
+define axis/x=100:700:100 xa
+define axis/y=100:700:100 ya
+define axis/z=100:700:100 za
+define axis/t=100:700:100 ta
+define axis/e=100:700:100 ea
+define axis/f=100:700:100 fa
+ 
+ 
+GO bn_auxiliary.sub Z,X,F
+
+*****************************
+**********  Z,X,F ***********
+*****************************
+
+! show the underlying fields
+list/order=($pax1)($aax)($REG1) temp
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (X-Z)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:   1.00000   1.00000   1.00000   1.00000   1.00000
+ 200   / 2:   4.00000   4.00000   4.00000   4.00000   4.00000
+ 300   / 3:   9.00000   9.00000   9.00000   9.00000   9.00000
+ 400   / 4:  16.00000  16.00000  16.00000  16.00000  16.00000
+ 500   / 5:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 600   / 6:  36.00000  36.00000  36.00000  36.00000  36.00000
+ 700   / 7:  49.00000  49.00000  49.00000  49.00000  49.00000
+list/order=($pax1)($aax)($REG1) btemp
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (X-Z)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 200   / 2:  36.00000  36.00000  36.00000  36.00000  36.00000
+ 300   / 3:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 400   / 4:  16.00000  16.00000  16.00000  16.00000  16.00000
+ 500   / 5:   9.00000   9.00000   9.00000   9.00000   9.00000
+ 600   / 6:   4.00000   4.00000   4.00000   4.00000   4.00000
+ 700   / 7:   1.00000   1.00000   1.00000   1.00000   1.00000
+list/order=($pax1)($aax)($REG1) density
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 density
+             VARIABLE : IF (_I EQ 5 OR _N EQ 5) AND _K LE 2 THEN 1/0 ELSE DENSITY4
+             SUBSET   : 5 by 7 points (X-Z)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  10.00000  10.00000  20.00000  10.00000      ....
+ 200   / 2:  20.00000  20.00000  10.00000  20.00000      ....
+ 300   / 3:  30.00000  30.00000  30.00000  30.00000  30.00000
+ 400   / 4:  40.00000  20.00000  40.00000  40.00000  40.00000
+ 500   / 5:  50.00000  50.00000  50.00000  50.00000  50.00000
+ 600   / 6:  60.00000  60.00000  60.00000  30.00000  60.00000
+ 700   / 7:  70.00000  70.00000  70.00000  70.00000  70.00000
+list/order=($pax1)($aax)($REG1) bdensity
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 bdensity
+             VARIABLE : IF (_I EQ 5 OR _N EQ 5) AND (8-_K) LE 2 THEN 1/0 ELSE BDENSITY4
+             SUBSET   : 5 by 7 points (X-Z)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  70.00000  70.00000  70.00000  70.00000  70.00000
+ 200   / 2:  60.00000  60.00000  60.00000  30.00000  60.00000
+ 300   / 3:  50.00000  50.00000  50.00000  50.00000  50.00000
+ 400   / 4:  40.00000  20.00000  40.00000  40.00000  40.00000
+ 500   / 5:  30.00000  30.00000  30.00000  30.00000  30.00000
+ 600   / 6:  20.00000  20.00000  10.00000  20.00000      ....
+ 700   / 7:  10.00000  10.00000  20.00000  10.00000      ....
+ 
+! show the regridded fields
+! using interpolation
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:5]  ! passive ax 1
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp[gZ(density)=5:80:5]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on Z at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (X-Z)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:5]  ! passive ax 2
+ !-> list/order=FZ/i=1/j=1 /l=1/m=1 temp[gZ(density)=5:80:5]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on Z at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (F-Z)
+             X        : 161
+             Y        : 161
+             T        : 161
+             E        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:5]  ! backwards pasv ax 1
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=5:80:5]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on Z at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (X-Z)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:5]  ! backwards pasv ax 2
+ !-> list/order=FZ/i=1/j=1 /l=1/m=1 btemp[gZ(bdensity)=5:80:5]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on Z at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (F-Z)
+             X        : 161
+             Y        : 161
+             T        : 161
+             E        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp[gZ(density)=35]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on Z at LIN using DENSITY field
+             SUBSET   : 5 points (X)
+             Z        : 35
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          12.50000  20.50000  12.50000  12.50000  12.50000
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=35]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on Z at LIN using BDENSITY field
+             SUBSET   : 5 points (X)
+             Z        : 35
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          12.50000  20.50000  12.50000  12.50000  12.50000
+ 
+ 
+! using piecewise linear averaging
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:15 at plave]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp[gZ(density)=5:80:15 at plave]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on Z at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (X-Z)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:15 at plave]
+ !-> list/order=FZ/i=1/j=1 /l=1/m=1 temp[gZ(density)=5:80:15 at plave]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on Z at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (F-Z)
+             X        : 161
+             Y        : 161
+             T        : 161
+             E        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:15 at plave]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=5:80:15 at plave]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on Z at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (X-Z)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:15 at plave]
+ !-> list/order=FZ/i=1/j=1 /l=1/m=1 btemp[gZ(bdensity)=5:80:15 at plave]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on Z at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (F-Z)
+             X        : 161
+             Y        : 161
+             T        : 161
+             E        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35:55 at plave]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp[gZ(density)=35:55 at plave]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on Z at PLAVE using DENSITY field
+             SUBSET   : 5 points (X)
+             Z        : 35 to 55
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          20.75000  24.00000  20.75000      ....  20.75000
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35:55 at plave]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=35:55 at plave]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on Z at PLAVE using BDENSITY field
+             SUBSET   : 5 points (X)
+             Z        : 35 to 55
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          20.75000  24.00000  20.75000      ....  20.75000
+ 
+!*********************************************************************************
+!*********************************************************************************
+EXIT/SCRIPT
+GO bn_auxiliary.sub Z,Y,E
+
+*****************************
+**********  Z,Y,E ***********
+*****************************
+
+! show the underlying fields
+list/order=($pax1)($aax)($REG1) temp
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 temp
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (Y-Z)
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:   1.00000   1.00000   1.00000   1.00000   1.00000
+ 200   / 2:   4.00000   4.00000   4.00000   4.00000   4.00000
+ 300   / 3:   9.00000   9.00000   9.00000   9.00000   9.00000
+ 400   / 4:  16.00000  16.00000  16.00000  16.00000  16.00000
+ 500   / 5:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 600   / 6:  36.00000  36.00000  36.00000  36.00000  36.00000
+ 700   / 7:  49.00000  49.00000  49.00000  49.00000  49.00000
+list/order=($pax1)($aax)($REG1) btemp
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 btemp
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (Y-Z)
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 200   / 2:  36.00000  36.00000  36.00000  36.00000  36.00000
+ 300   / 3:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 400   / 4:  16.00000  16.00000  16.00000  16.00000  16.00000
+ 500   / 5:   9.00000   9.00000   9.00000   9.00000   9.00000
+ 600   / 6:   4.00000   4.00000   4.00000   4.00000   4.00000
+ 700   / 7:   1.00000   1.00000   1.00000   1.00000   1.00000
+list/order=($pax1)($aax)($REG1) density
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 density
+             VARIABLE : IF (_J EQ 5 OR _M EQ 5) AND _K LE 2 THEN 1/0 ELSE DENSITY4
+             SUBSET   : 5 by 7 points (Y-Z)
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  10.00000  10.00000  20.00000  10.00000      ....
+ 200   / 2:  20.00000  20.00000  10.00000  20.00000      ....
+ 300   / 3:  30.00000  30.00000  30.00000  30.00000  30.00000
+ 400   / 4:  40.00000  20.00000  40.00000  40.00000  40.00000
+ 500   / 5:  50.00000  50.00000  50.00000  50.00000  50.00000
+ 600   / 6:  60.00000  60.00000  60.00000  30.00000  60.00000
+ 700   / 7:  70.00000  70.00000  70.00000  70.00000  70.00000
+list/order=($pax1)($aax)($REG1) bdensity
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 bdensity
+             VARIABLE : IF (_J EQ 5 OR _M EQ 5) AND (8-_K) LE 2 THEN 1/0 ELSE BDENSITY4
+             SUBSET   : 5 by 7 points (Y-Z)
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  70.00000  70.00000  70.00000  70.00000  70.00000
+ 200   / 2:  60.00000  60.00000  60.00000  30.00000  60.00000
+ 300   / 3:  50.00000  50.00000  50.00000  50.00000  50.00000
+ 400   / 4:  40.00000  20.00000  40.00000  40.00000  40.00000
+ 500   / 5:  30.00000  30.00000  30.00000  30.00000  30.00000
+ 600   / 6:  20.00000  20.00000  10.00000  20.00000      ....
+ 700   / 7:  10.00000  10.00000  20.00000  10.00000      ....
+ 
+! show the regridded fields
+! using interpolation
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:5]  ! passive ax 1
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 temp[gZ(density)=5:80:5]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on Z at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (Y-Z)
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:5]  ! passive ax 2
+ !-> list/order=EZ/i=1/j=1 /l=1 /n=1 temp[gZ(density)=5:80:5]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on Z at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (E-Z)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:5]  ! backwards pasv ax 1
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 btemp[gZ(bdensity)=5:80:5]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on Z at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (Y-Z)
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:5]  ! backwards pasv ax 2
+ !-> list/order=EZ/i=1/j=1 /l=1 /n=1 btemp[gZ(bdensity)=5:80:5]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on Z at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (E-Z)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35]
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 temp[gZ(density)=35]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on Z at LIN using DENSITY field
+             SUBSET   : 5 points (Y)
+             Z        : 35
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          12.50000  20.50000  12.50000  12.50000  12.50000
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35]
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 btemp[gZ(bdensity)=35]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on Z at LIN using BDENSITY field
+             SUBSET   : 5 points (Y)
+             Z        : 35
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          12.50000  20.50000  12.50000  12.50000  12.50000
+ 
+ 
+! using piecewise linear averaging
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:15 at plave]
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 temp[gZ(density)=5:80:15 at plave]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on Z at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (Y-Z)
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:15 at plave]
+ !-> list/order=EZ/i=1/j=1 /l=1 /n=1 temp[gZ(density)=5:80:15 at plave]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on Z at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (E-Z)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:15 at plave]
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 btemp[gZ(bdensity)=5:80:15 at plave]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on Z at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (Y-Z)
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:15 at plave]
+ !-> list/order=EZ/i=1/j=1 /l=1 /n=1 btemp[gZ(bdensity)=5:80:15 at plave]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on Z at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (E-Z)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35:55 at plave]
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 temp[gZ(density)=35:55 at plave]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on Z at PLAVE using DENSITY field
+             SUBSET   : 5 points (Y)
+             Z        : 35 to 55
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          20.75000  24.00000  20.75000      ....  20.75000
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35:55 at plave]
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 btemp[gZ(bdensity)=35:55 at plave]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on Z at PLAVE using BDENSITY field
+             SUBSET   : 5 points (Y)
+             Z        : 35 to 55
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          20.75000  24.00000  20.75000      ....  20.75000
+ 
+!*********************************************************************************
+!*********************************************************************************
+EXIT/SCRIPT
+CANC MODE VERIFY
+
+*****************************
+**********  X,Z,F ***********
+*****************************
+
+             VARIABLE : 0.0001*     _X[GX=XA] ^2 +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (Z-X)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:   1.00000   1.00000   1.00000   1.00000   1.00000
+ 200   / 2:   4.00000   4.00000   4.00000   4.00000   4.00000
+ 300   / 3:   9.00000   9.00000   9.00000   9.00000   9.00000
+ 400   / 4:  16.00000  16.00000  16.00000  16.00000  16.00000
+ 500   / 5:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 600   / 6:  36.00000  36.00000  36.00000  36.00000  36.00000
+ 700   / 7:  49.00000  49.00000  49.00000  49.00000  49.00000
+             VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (Z-X)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 200   / 2:  36.00000  36.00000  36.00000  36.00000  36.00000
+ 300   / 3:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 400   / 4:  16.00000  16.00000  16.00000  16.00000  16.00000
+ 500   / 5:   9.00000   9.00000   9.00000   9.00000   9.00000
+ 600   / 6:   4.00000   4.00000   4.00000   4.00000   4.00000
+ 700   / 7:   1.00000   1.00000   1.00000   1.00000   1.00000
+             VARIABLE : IF (_K EQ 5 OR _N EQ 5) AND _I LE 2 THEN 1/0 ELSE DENSITY4
+             SUBSET   : 5 by 7 points (Z-X)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  10.00000  10.00000  20.00000  10.00000      ....
+ 200   / 2:  20.00000  20.00000  10.00000  20.00000      ....
+ 300   / 3:  30.00000  30.00000  30.00000  30.00000  30.00000
+ 400   / 4:  40.00000  20.00000  40.00000  40.00000  40.00000
+ 500   / 5:  50.00000  50.00000  50.00000  50.00000  50.00000
+ 600   / 6:  60.00000  60.00000  60.00000  30.00000  60.00000
+ 700   / 7:  70.00000  70.00000  70.00000  70.00000  70.00000
+             VARIABLE : IF (_K EQ 5 OR _N EQ 5) AND (8-_I) LE 2 THEN 1/0 ELSE BDENSITY4
+             SUBSET   : 5 by 7 points (Z-X)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  70.00000  70.00000  70.00000  70.00000  70.00000
+ 200   / 2:  60.00000  60.00000  60.00000  30.00000  60.00000
+ 300   / 3:  50.00000  50.00000  50.00000  50.00000  50.00000
+ 400   / 4:  40.00000  20.00000  40.00000  40.00000  40.00000
+ 500   / 5:  30.00000  30.00000  30.00000  30.00000  30.00000
+ 600   / 6:  20.00000  20.00000  10.00000  20.00000      ....
+ 700   / 7:  10.00000  10.00000  20.00000  10.00000      ....
+             VARIABLE : 0.0001*     _X[GX=XA] ^2 +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on X at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (Z-X)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0.0001*     _X[GX=XA] ^2 +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on X at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (F-X)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on X at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (Z-X)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on X at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (F-X)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0.0001*     _X[GX=XA] ^2 +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on X at LIN using DENSITY field
+             SUBSET   : 5 points (Z)
+             X        : 35
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          12.50000  20.50000  12.50000  12.50000  12.50000
+             VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on X at LIN using BDENSITY field
+             SUBSET   : 5 points (Z)
+             X        : 35
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          12.50000  20.50000  12.50000  12.50000  12.50000
+             VARIABLE : 0.0001*     _X[GX=XA] ^2 +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on X at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (Z-X)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0.0001*     _X[GX=XA] ^2 +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on X at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (F-X)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on X at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (Z-X)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on X at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (F-X)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0.0001*     _X[GX=XA] ^2 +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on X at PLAVE using DENSITY field
+             SUBSET   : 5 points (Z)
+             X        : 35 to 55
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          20.75000  24.00000  20.75000      ....  20.75000
+             VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on X at PLAVE using BDENSITY field
+             SUBSET   : 5 points (Z)
+             X        : 35 to 55
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          20.75000  24.00000  20.75000      ....  20.75000
+
+*****************************
+**********  Y,X,E ***********
+*****************************
+
+             VARIABLE : 0*_X[GX=XP] +  0.0001*     _Y[GY=YA] ^2 +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (X-Y)
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:   1.00000   1.00000   1.00000   1.00000   1.00000
+ 200   / 2:   4.00000   4.00000   4.00000   4.00000   4.00000
+ 300   / 3:   9.00000   9.00000   9.00000   9.00000   9.00000
+ 400   / 4:  16.00000  16.00000  16.00000  16.00000  16.00000
+ 500   / 5:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 600   / 6:  36.00000  36.00000  36.00000  36.00000  36.00000
+ 700   / 7:  49.00000  49.00000  49.00000  49.00000  49.00000
+             VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (X-Y)
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 200   / 2:  36.00000  36.00000  36.00000  36.00000  36.00000
+ 300   / 3:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 400   / 4:  16.00000  16.00000  16.00000  16.00000  16.00000
+ 500   / 5:   9.00000   9.00000   9.00000   9.00000   9.00000
+ 600   / 6:   4.00000   4.00000   4.00000   4.00000   4.00000
+ 700   / 7:   1.00000   1.00000   1.00000   1.00000   1.00000
+             VARIABLE : IF (_I EQ 5 OR _M EQ 5) AND _J LE 2 THEN 1/0 ELSE DENSITY4
+             SUBSET   : 5 by 7 points (X-Y)
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  10.00000  10.00000  20.00000  10.00000      ....
+ 200   / 2:  20.00000  20.00000  10.00000  20.00000      ....
+ 300   / 3:  30.00000  30.00000  30.00000  30.00000  30.00000
+ 400   / 4:  40.00000  20.00000  40.00000  40.00000  40.00000
+ 500   / 5:  50.00000  50.00000  50.00000  50.00000  50.00000
+ 600   / 6:  60.00000  60.00000  60.00000  30.00000  60.00000
+ 700   / 7:  70.00000  70.00000  70.00000  70.00000  70.00000
+             VARIABLE : IF (_I EQ 5 OR _M EQ 5) AND (8-_J) LE 2 THEN 1/0 ELSE BDENSITY4
+             SUBSET   : 5 by 7 points (X-Y)
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  70.00000  70.00000  70.00000  70.00000  70.00000
+ 200   / 2:  60.00000  60.00000  60.00000  30.00000  60.00000
+ 300   / 3:  50.00000  50.00000  50.00000  50.00000  50.00000
+ 400   / 4:  40.00000  20.00000  40.00000  40.00000  40.00000
+ 500   / 5:  30.00000  30.00000  30.00000  30.00000  30.00000
+ 600   / 6:  20.00000  20.00000  10.00000  20.00000      ....
+ 700   / 7:  10.00000  10.00000  20.00000  10.00000      ....
+             VARIABLE : 0*_X[GX=XP] +  0.0001*     _Y[GY=YA] ^2 +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on Y at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (X-Y)
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] +  0.0001*     _Y[GY=YA] ^2 +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on Y at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (E-Y)
+             X        : 161
+             Z        : 161
+             T        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on Y at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (X-Y)
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on Y at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (E-Y)
+             X        : 161
+             Z        : 161
+             T        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] +  0.0001*     _Y[GY=YA] ^2 +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on Y at LIN using DENSITY field
+             SUBSET   : 5 points (X)
+             Y        : 35
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          12.50000  20.50000  12.50000  12.50000  12.50000
+             VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on Y at LIN using BDENSITY field
+             SUBSET   : 5 points (X)
+             Y        : 35
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          12.50000  20.50000  12.50000  12.50000  12.50000
+             VARIABLE : 0*_X[GX=XP] +  0.0001*     _Y[GY=YA] ^2 +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on Y at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (X-Y)
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] +  0.0001*     _Y[GY=YA] ^2 +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on Y at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (E-Y)
+             X        : 161
+             Z        : 161
+             T        : 161
+             F        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on Y at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (X-Y)
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on Y at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (E-Y)
+             X        : 161
+             Z        : 161
+             T        : 161
+             F        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] +  0.0001*     _Y[GY=YA] ^2 +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on Y at PLAVE using DENSITY field
+             SUBSET   : 5 points (X)
+             Y        : 35 to 55
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          20.75000  24.00000  20.75000      ....  20.75000
+             VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on Y at PLAVE using BDENSITY field
+             SUBSET   : 5 points (X)
+             Y        : 35 to 55
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          20.75000  24.00000  20.75000      ....  20.75000
+
+*****************************
+**********  T,Y,F ***********
+*****************************
+
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0.0001*     _T[GT=TA] ^2 +  0*_E[GE=EP] +  0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (Y-T)
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:   1.00000   1.00000   1.00000   1.00000   1.00000
+ 200   / 2:   4.00000   4.00000   4.00000   4.00000   4.00000
+ 300   / 3:   9.00000   9.00000   9.00000   9.00000   9.00000
+ 400   / 4:  16.00000  16.00000  16.00000  16.00000  16.00000
+ 500   / 5:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 600   / 6:  36.00000  36.00000  36.00000  36.00000  36.00000
+ 700   / 7:  49.00000  49.00000  49.00000  49.00000  49.00000
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (Y-T)
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 200   / 2:  36.00000  36.00000  36.00000  36.00000  36.00000
+ 300   / 3:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 400   / 4:  16.00000  16.00000  16.00000  16.00000  16.00000
+ 500   / 5:   9.00000   9.00000   9.00000   9.00000   9.00000
+ 600   / 6:   4.00000   4.00000   4.00000   4.00000   4.00000
+ 700   / 7:   1.00000   1.00000   1.00000   1.00000   1.00000
+             VARIABLE : IF (_J EQ 5 OR _N EQ 5) AND _L LE 2 THEN 1/0 ELSE DENSITY4
+             SUBSET   : 5 by 7 points (Y-T)
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  10.00000  10.00000  20.00000  10.00000      ....
+ 200   / 2:  20.00000  20.00000  10.00000  20.00000      ....
+ 300   / 3:  30.00000  30.00000  30.00000  30.00000  30.00000
+ 400   / 4:  40.00000  20.00000  40.00000  40.00000  40.00000
+ 500   / 5:  50.00000  50.00000  50.00000  50.00000  50.00000
+ 600   / 6:  60.00000  60.00000  60.00000  30.00000  60.00000
+ 700   / 7:  70.00000  70.00000  70.00000  70.00000  70.00000
+             VARIABLE : IF (_J EQ 5 OR _N EQ 5) AND (8-_L) LE 2 THEN 1/0 ELSE BDENSITY4
+             SUBSET   : 5 by 7 points (Y-T)
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  70.00000  70.00000  70.00000  70.00000  70.00000
+ 200   / 2:  60.00000  60.00000  60.00000  30.00000  60.00000
+ 300   / 3:  50.00000  50.00000  50.00000  50.00000  50.00000
+ 400   / 4:  40.00000  20.00000  40.00000  40.00000  40.00000
+ 500   / 5:  30.00000  30.00000  30.00000  30.00000  30.00000
+ 600   / 6:  20.00000  20.00000  10.00000  20.00000      ....
+ 700   / 7:  10.00000  10.00000  20.00000  10.00000      ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0.0001*     _T[GT=TA] ^2 +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on T at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (Y-T)
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0.0001*     _T[GT=TA] ^2 +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on T at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (F-T)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             E        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on T at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (Y-T)
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on T at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (F-T)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             E        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0.0001*     _T[GT=TA] ^2 +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on T at LIN using DENSITY field
+             SUBSET   : 5 points (Y)
+             T        : 35
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          12.50000  20.50000  12.50000  12.50000  12.50000
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on T at LIN using BDENSITY field
+             SUBSET   : 5 points (Y)
+             T        : 35
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          12.50000  20.50000  12.50000  12.50000  12.50000
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0.0001*     _T[GT=TA] ^2 +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on T at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (Y-T)
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0.0001*     _T[GT=TA] ^2 +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on T at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (F-T)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             E        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on T at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (Y-T)
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on T at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (F-T)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             E        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0.0001*     _T[GT=TA] ^2 +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on T at PLAVE using DENSITY field
+             SUBSET   : 5 points (Y)
+             T        : 35 to 55
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          20.75000  24.00000  20.75000      ....  20.75000
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on T at PLAVE using BDENSITY field
+             SUBSET   : 5 points (Y)
+             T        : 35 to 55
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          20.75000  24.00000  20.75000      ....  20.75000
+
+*****************************
+**********  E,Z,F ***********
+*****************************
+
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0.0001*     _E[GE=EA] ^2 +  0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (Z-E)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:   1.00000   1.00000   1.00000   1.00000   1.00000
+ 200   / 2:   4.00000   4.00000   4.00000   4.00000   4.00000
+ 300   / 3:   9.00000   9.00000   9.00000   9.00000   9.00000
+ 400   / 4:  16.00000  16.00000  16.00000  16.00000  16.00000
+ 500   / 5:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 600   / 6:  36.00000  36.00000  36.00000  36.00000  36.00000
+ 700   / 7:  49.00000  49.00000  49.00000  49.00000  49.00000
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (Z-E)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 200   / 2:  36.00000  36.00000  36.00000  36.00000  36.00000
+ 300   / 3:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 400   / 4:  16.00000  16.00000  16.00000  16.00000  16.00000
+ 500   / 5:   9.00000   9.00000   9.00000   9.00000   9.00000
+ 600   / 6:   4.00000   4.00000   4.00000   4.00000   4.00000
+ 700   / 7:   1.00000   1.00000   1.00000   1.00000   1.00000
+             VARIABLE : IF (_K EQ 5 OR _N EQ 5) AND _M LE 2 THEN 1/0 ELSE DENSITY4
+             SUBSET   : 5 by 7 points (Z-E)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  10.00000  10.00000  20.00000  10.00000      ....
+ 200   / 2:  20.00000  20.00000  10.00000  20.00000      ....
+ 300   / 3:  30.00000  30.00000  30.00000  30.00000  30.00000
+ 400   / 4:  40.00000  20.00000  40.00000  40.00000  40.00000
+ 500   / 5:  50.00000  50.00000  50.00000  50.00000  50.00000
+ 600   / 6:  60.00000  60.00000  60.00000  30.00000  60.00000
+ 700   / 7:  70.00000  70.00000  70.00000  70.00000  70.00000
+             VARIABLE : IF (_K EQ 5 OR _N EQ 5) AND (8-_M) LE 2 THEN 1/0 ELSE BDENSITY4
+             SUBSET   : 5 by 7 points (Z-E)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  70.00000  70.00000  70.00000  70.00000  70.00000
+ 200   / 2:  60.00000  60.00000  60.00000  30.00000  60.00000
+ 300   / 3:  50.00000  50.00000  50.00000  50.00000  50.00000
+ 400   / 4:  40.00000  20.00000  40.00000  40.00000  40.00000
+ 500   / 5:  30.00000  30.00000  30.00000  30.00000  30.00000
+ 600   / 6:  20.00000  20.00000  10.00000  20.00000      ....
+ 700   / 7:  10.00000  10.00000  20.00000  10.00000      ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0.0001*     _E[GE=EA] ^2 +  0*_F[GF=FP]
+                        regrid: 5 delta on E at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (Z-E)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0.0001*     _E[GE=EA] ^2 +  0*_F[GF=FP]
+                        regrid: 5 delta on E at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (F-E)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             T        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+                        regrid: 5 delta on E at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (Z-E)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+                        regrid: 5 delta on E at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (F-E)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             T        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0.0001*     _E[GE=EA] ^2 +  0*_F[GF=FP]
+                        regrid: on E at LIN using DENSITY field
+             SUBSET   : 5 points (Z)
+             E        : 35
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          12.50000  20.50000  12.50000  12.50000  12.50000
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+                        regrid: on E at LIN using BDENSITY field
+             SUBSET   : 5 points (Z)
+             E        : 35
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          12.50000  20.50000  12.50000  12.50000  12.50000
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0.0001*     _E[GE=EA] ^2 +  0*_F[GF=FP]
+                        regrid: 15 delta on E at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (Z-E)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0.0001*     _E[GE=EA] ^2 +  0*_F[GF=FP]
+                        regrid: 15 delta on E at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (F-E)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             T        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+                        regrid: 15 delta on E at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (Z-E)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+                        regrid: 15 delta on E at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (F-E)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             T        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0.0001*     _E[GE=EA] ^2 +  0*_F[GF=FP]
+                        regrid: on E at PLAVE using DENSITY field
+             SUBSET   : 5 points (Z)
+             E        : 35 to 55
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          20.75000  24.00000  20.75000      ....  20.75000
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+                        regrid: on E at PLAVE using BDENSITY field
+             SUBSET   : 5 points (Z)
+             E        : 35 to 55
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          20.75000  24.00000  20.75000      ....  20.75000
+
+*****************************
+**********  F,X,T ***********
+*****************************
+
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0.0001*     _F[GF=FA] ^2
+             SUBSET   : 5 by 7 points (X-F)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:   1.00000   1.00000   1.00000   1.00000   1.00000
+ 200   / 2:   4.00000   4.00000   4.00000   4.00000   4.00000
+ 300   / 3:   9.00000   9.00000   9.00000   9.00000   9.00000
+ 400   / 4:  16.00000  16.00000  16.00000  16.00000  16.00000
+ 500   / 5:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 600   / 6:  36.00000  36.00000  36.00000  36.00000  36.00000
+ 700   / 7:  49.00000  49.00000  49.00000  49.00000  49.00000
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+             SUBSET   : 5 by 7 points (X-F)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 200   / 2:  36.00000  36.00000  36.00000  36.00000  36.00000
+ 300   / 3:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 400   / 4:  16.00000  16.00000  16.00000  16.00000  16.00000
+ 500   / 5:   9.00000   9.00000   9.00000   9.00000   9.00000
+ 600   / 6:   4.00000   4.00000   4.00000   4.00000   4.00000
+ 700   / 7:   1.00000   1.00000   1.00000   1.00000   1.00000
+             VARIABLE : IF (_I EQ 5 OR _L EQ 5) AND _N LE 2 THEN 1/0 ELSE DENSITY4
+             SUBSET   : 5 by 7 points (X-F)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  10.00000  10.00000  20.00000  10.00000      ....
+ 200   / 2:  20.00000  20.00000  10.00000  20.00000      ....
+ 300   / 3:  30.00000  30.00000  30.00000  30.00000  30.00000
+ 400   / 4:  40.00000  20.00000  40.00000  40.00000  40.00000
+ 500   / 5:  50.00000  50.00000  50.00000  50.00000  50.00000
+ 600   / 6:  60.00000  60.00000  60.00000  30.00000  60.00000
+ 700   / 7:  70.00000  70.00000  70.00000  70.00000  70.00000
+             VARIABLE : IF (_I EQ 5 OR _L EQ 5) AND (8-_N) LE 2 THEN 1/0 ELSE BDENSITY4
+             SUBSET   : 5 by 7 points (X-F)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  70.00000  70.00000  70.00000  70.00000  70.00000
+ 200   / 2:  60.00000  60.00000  60.00000  30.00000  60.00000
+ 300   / 3:  50.00000  50.00000  50.00000  50.00000  50.00000
+ 400   / 4:  40.00000  20.00000  40.00000  40.00000  40.00000
+ 500   / 5:  30.00000  30.00000  30.00000  30.00000  30.00000
+ 600   / 6:  20.00000  20.00000  10.00000  20.00000      ....
+ 700   / 7:  10.00000  10.00000  20.00000  10.00000      ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0.0001*     _F[GF=FA] ^2
+                        regrid: 5 delta on F at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (X-F)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0.0001*     _F[GF=FA] ^2
+                        regrid: 5 delta on F at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (T-F)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             E        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+                        regrid: 5 delta on F at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (X-F)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+                        regrid: 5 delta on F at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (T-F)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             E        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0.0001*     _F[GF=FA] ^2
+                        regrid: on F at LIN using DENSITY field
+             SUBSET   : 5 points (X)
+             F        : 35
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          12.50000  20.50000  12.50000  12.50000  12.50000
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+                        regrid: on F at LIN using BDENSITY field
+             SUBSET   : 5 points (X)
+             F        : 35
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          12.50000  20.50000  12.50000  12.50000  12.50000
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0.0001*     _F[GF=FA] ^2
+                        regrid: 15 delta on F at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (X-F)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0.0001*     _F[GF=FA] ^2
+                        regrid: 15 delta on F at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (T-F)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             E        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+                        regrid: 15 delta on F at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (X-F)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+                        regrid: 15 delta on F at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (T-F)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             E        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0.0001*     _F[GF=FA] ^2
+                        regrid: on F at PLAVE using DENSITY field
+             SUBSET   : 5 points (X)
+             F        : 35 to 55
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          20.75000  24.00000  20.75000      ....  20.75000
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+                        regrid: on F at PLAVE using BDENSITY field
+             SUBSET   : 5 points (X)
+             F        : 35 to 55
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          20.75000  24.00000  20.75000      ....  20.75000
+ 
+GO bn_reset
+cancel mode verify
+GO bn_plot_ribbon_gaploc
+! bn_plot_ribbon_gaploc.jnl
+! 7/20/2015 *acm*  new PLOT/VS/RIBBON/GAPLOC
+!
+! If a trajectory leaves the selected region and then travels
+! 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.
+ 
+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
  
 GO bn_reset
 cancel mode verify
-GO bn_date1900_array
-! bn_date1900_array.jnl
-! Let date1900 accept an array of date strings, returning a list
-! of coordinate values, days since 1-jan-1900.
+GO bn_time_short_axes
+! bn_time_short_axes.jnl
+! testing time axis style with HH:MM on the time axis labels.
  
+use timesec
  
-sh func/details date1900
-DATE1900(formatted date)
-    Convert date strings into Julian days since 1-Jan-1900
-        Axes of result:
-          X: inherited from argument(s)
-          Y: NORMAL (no axis)
-          Z: NORMAL (no axis)
-          T: NORMAL (no axis)
-          E: NORMAL (no axis)
-          F: NORMAL (no axis)
-    formatted date: dd-MMM-yy or dd-MMM-yyyy  (e.g. "20-Dec-00") (none) (STRING)
-        Influence on output axes:
-          X: passed to result grid
-          Y: no influence (indicate argument limits with "[]")
-          Z: no influence (indicate argument limits with "[]")
-          T: no influence (indicate argument limits with "[]")
-          E: no influence (indicate argument limits with "[]")
-          F: no influence (indicate argument limits with "[]")
+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
  
-! Function always worked just on one date string.
-list date1900("01-jan-2001")
-             VARIABLE : DATE1900("01-jan-2001")
-          36890.
  
+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
  
-! Now the argument can be an array
-let datestrings = {"01-jan-2001", "02-jan-2001", "30-Jul-2002"}
-list date1900(datestrings)
-             VARIABLE : DATE1900(DATESTRINGS)
-             SUBSET   : 3 points (X)
- 1   / 1:  36890.
- 2   / 2:  36891.
- 3   / 3:  37465.
+! 2D plots
  
-def axis/t/units=days/t0=1-jan-1900 taxis = date1900(datestrings)
-list t[gt=taxis]
-             VARIABLE : T
-                        axis TAXIS
-             SUBSET   : 3 points (TIME)
- 01-JAN-2001 00 / 1:  36890.
- 02-JAN-2001 00 / 2:  36891.
- 30-JUL-2002 00 / 3:  37465.
+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
+ 
 GO bn_reset
 cancel mode verify
-GO bn_spawn_size
-! bn_spawn_size.jnl
-! Return the size of the result of a spawn, not
-! the nominalabstract axis length.
+GO bn_floatstr_extended
+! bn_floatstr_extended.jnl
+! test use of Integer and zero-filled formats in FLOATSTR function (Ferret v6.95)
+! 9/28/2015
  
-! ticket 981
  
-let files = {spawn:"ls *cdf*.jnl"}
-list files
-             VARIABLE : {SPAWN:"ls *cdf*.jnl"}
-             SUBSET   : 8 points (X)
- 1   / 1:"bn_cdf_errmsg.jnl"      
- 2   / 2:"bn_cdf.jnl"             
- 3   / 3:"bn_cdf_keepax.jnl"      
- 4   / 4:"bn_netcdf4.jnl"         
- 5   / 5:"err490_cdf_childax.jnl" 
- 6   / 6:"err491_cdf_childax.jnl" 
- 7   / 7:"err65_read_epic_cdf.jnl"
- 8   / 8:"err667_5d_netcdf.jnl"   
-say `files,return=isize`
- !-> MESSAGE/CONTINUE 8
-8
+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"
  
-! Evaluate size without loading the variable first
-let datfiles = {spawn:"ls *.dat"}
-say `datfiles,return=isize`
- !-> MESSAGE/CONTINUE 36
-36
+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"
  
-! expression syntax
-say `{spawn:"ls xml*.jnl"},return=isize`
- !-> MESSAGE/CONTINUE 3
-3
-list {spawn:"ls xml*.jnl"}
-             VARIABLE : {SPAWN:"ls xml*.jnl"}
+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:"xml_header_script.jnl"
- 2   / 2:"xml_use_coads.jnl"    
- 3   / 3:"xml_use_numstring.jnl"
+ 1   / 1:"  3"
+ 2   / 2:"  2"
+ 3   / 3:""   
  
-! Test variables based on output of a spawn.
-! These already worked correctly, has a grid-changing function.
+! 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:""     
  
-LET filesets = xcat({spawn:"ls *.nc"}, {spawn:"ls *.jnl"})
-say `filesets, return=isize`
- !-> MESSAGE/CONTINUE 875
-875
+! 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"
  
-let files = {spawn:"ls *cdf*.jnl"}
-let name_len = strindex(files, ".sub")
-say `name_len, return=isize`
- !-> MESSAGE/CONTINUE 8
-8
+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 : 50S (interpolated)
+             TIME     : 16-JAN 06:00
+ 165W   /  88:""
+ 163W   /  89:""
+ 161W   /  90:""
+ 159W   /  91:""
+ 157W   /  92:""
+ 155W   /  93:""
+ 153W   /  94:""
+ 151W   /  95:""
+ 149W   /  96:""
+ 147W   /  97:""
+ 145W   /  98:""
+ 143W   /  99:""
+ 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"
+ 
+! *********** 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
+ 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
+ 
+       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 bn_polygon_log
-! bn_polygon_log.jnl
-! polygon plots on a log axis need tests
+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.
  
-let xsqr = YSEQUENCE({0,.1,.1,0})
-let ysqr = YSEQUENCE({0,0,.1,.1})
-let xpts = cos(x/10) + 2
-let ypts = x/10+1
+USE coads_climatology
  
-! Polygon plot
+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 view ul
-polygon/title="NOT LOG"/i=1:100 xpts+xsqr, ypts+ysqr, x*x/10
+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       ...       ...
  
-! Poly/vlog and /hlog
-! (known bug: Whats up with the colorbar labels?)
-set view ur; poly/title=VLOG/i=1:100/vlog xpts+xsqr,ypts+ysqr,x*x/10
-set view ll; poly/title=HLOG/i=1:100/hlog xpts+xsqr,ypts+ysqr,x*x/10
-set view lr;poly/title=BOTH/i=1:100/vlog/hlog xpts+xsqr,ypts+ysqr,x*x/10
  
-! These are errors - log of negative values on axis
+! intentional errors
+SET MODE ignore
+SHOW DATA noexist
+SHOW DATA 2
+SHOW DATA/ATT noexist
  
-set mode ignore
+SET MODE/LAST ignore
  
-let ybad = x/10 - 1
-let xbad = cos(x/10) + 0.8
+GO bn_reset
+cancel mode verify
+GO bn_bin_regrid
+! bin regridding tests
  
-can view
-polygon/i=1:100/nolab xbad+xsqr,ybad+ysqr,x*x/10
+go bn_bin_regrid.sub X
+! Tests of @BIN and @NBIN regridding transforms
  
-poly/i=1:100/vlog xbad+xsqr,ybad+ysqr,x*x/10
-poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
+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
  
-set mode/last ignore
  
 !  *********** Always do a bn_reset  ***********
 !  *********** make sure things clean up well **
@@ -78647,9 +86831,9 @@ yes? ! run bn_all_ef tests
 yes? 
 yes? GO bn_all_ef
  	NOAA/PMEL TMAP
- 	FERRET v6.93  
- 	Linux 2.6.18-398.el5PAE 32-bit - 10/29/14
- 	29-Oct-14 15:57     
+ 	FERRET v6.951 (beta)
+ 	Linux 2.6.18-407.el5PAE 32-bit - 11/17/15
+ 	17-Nov-15 09:28     
 
 SET MODE VERIFY
 ! bn_all_ef.jnl
@@ -78790,23 +86974,23 @@ list a - sst[l=@ave]
              SUBSET   : 15 points (LONGITUDE)
              LATITUDE : 1S
              TIME     : 01-JAN 00:45 to 01-APR 08:12
-                 1S    
-                 45
- 151E   / 66:  0.0000
- 153E   / 67:  0.0000
- 155E   / 68:  0.0000
- 157E   / 69:  0.0000
- 159E   / 70:  0.0000
- 161E   / 71:  0.0000
- 163E   / 72:  0.0000
- 165E   / 73:  0.0000
- 167E   / 74:  0.0000
- 169E   / 75:  0.0000
- 171E   / 76:  0.0000
- 173E   / 77:  0.0000
- 175E   / 78:  0.0000
- 177E   / 79:  0.0000
- 179E   / 80:  0.0000
+                  1S      
+                  45
+ 151E   / 66:  3.553E-15
+ 153E   / 67:  0.000E+00
+ 155E   / 68:  3.553E-15
+ 157E   / 69:  0.000E+00
+ 159E   / 70:  3.553E-15
+ 161E   / 71:  3.553E-15
+ 163E   / 72:  3.553E-15
+ 165E   / 73:  0.000E+00
+ 167E   / 74:  3.553E-15
+ 169E   / 75:  3.553E-15
+ 171E   / 76: -3.553E-15
+ 173E   / 77:  3.553E-15
+ 175E   / 78:  0.000E+00
+ 177E   / 79:  3.553E-15
+ 179E   / 80:  3.553E-15
  
 can region
 let a = x[i=1:9,k=1:5] + t[l=1:5]
@@ -79503,7 +87687,7 @@ variables:
 		MY_VAR:long_name = "T[GT=T5]" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -79528,7 +87712,7 @@ variables:
 		MY_VAR:long_name = "T[GT=T5]" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -79552,7 +87736,7 @@ variables:
 		B:long_name = "\"one line of text\"" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -79591,7 +87775,7 @@ variables:
 		D:history = "From test_string" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -79626,7 +87810,7 @@ variables:
 		B:long_name = "SAMPLEJ(YSEQUENCE({\"a\",\"b\",,\"d\",\"e\",\"f\"}),{2,,1})" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -79667,7 +87851,7 @@ variables:
 		V:long_name = "T[GT=MONTH_IRREG]" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -79724,7 +87908,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -79781,7 +87965,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -79836,7 +88020,7 @@ variables:
 		T2:long_name = "Z[GZ=ZIRR]" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -79884,7 +88068,7 @@ variables:
 		V:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -79978,7 +88162,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -80048,7 +88232,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -80099,7 +88283,7 @@ variables:
 		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -80174,7 +88358,7 @@ variables:
 		A:long_name = "T[GT=TIME]" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -80201,7 +88385,7 @@ variables:
 		X_:long_name_mod = "axis ABSTRACT" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 		:title = "a long title longer than 80 characters a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789" ;
 data:
@@ -80225,7 +88409,7 @@ variables:
 		A:history = "From x" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		: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:
@@ -80252,11 +88436,11 @@ variables:
 		A:history = "From t0_cdc" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_long_revision_num.jnl --- history attribute
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 bn_bounds_defineax.jnl --- N+1 def of bounds.
 netcdf irrxzt {
 dimensions:
@@ -80287,7 +88471,7 @@ variables:
 		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -80359,7 +88543,7 @@ variables:
 		VAR_B:long_name = "my strings" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -80403,7 +88587,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -80445,7 +88629,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -80553,7 +88737,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 6 after CANCEL MODE upcase_output
@@ -80594,7 +88778,7 @@ variables:
 		Elev:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 7 outtput flags to control attribute output
@@ -80617,7 +88801,7 @@ variables:
 		BB:another_attr = 6.f ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -80643,7 +88827,7 @@ variables:
 		BB:another_attr = 6.f ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -80663,7 +88847,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -80684,7 +88868,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -80727,7 +88911,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 12 Check that settings hold for child axis.
@@ -80767,7 +88951,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 13 cancel output of attributes of the variable.
@@ -80805,7 +88989,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 14 attributes of data from ez data.
@@ -80834,7 +89018,7 @@ variables:
 		A3:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -80867,7 +89051,7 @@ variables:
 		V4:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -80893,7 +89077,7 @@ variables:
 		A:four = "theory" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -80939,7 +89123,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 		:simulation = "K-Bay OAR3d model (200m)" ;
 		:start_date = "980105000000" ;
@@ -81046,7 +89230,7 @@ variables:
 		TEMP:units = "deg. C" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 		:dt_internal = 15. ;
 }
@@ -81088,7 +89272,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -81171,7 +89355,7 @@ variables:
 		RIGUE:history = "From test0" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -81208,7 +89392,7 @@ variables:
 		B:long_name = "hello" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -81248,7 +89432,7 @@ variables:
 		VWND:units = "M/S" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -81299,7 +89483,7 @@ variables:
 		T2:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -81358,7 +89542,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -81403,7 +89587,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -81446,7 +89630,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -81481,7 +89665,7 @@ variables:
 		TEMP:units = "DEG C" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -81515,7 +89699,7 @@ variables:
 		TWO:history = "From levitus_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 27 attributes of  user-defined axes
@@ -81545,7 +89729,7 @@ variables:
 		AXY:long_name = "RESHAPE (A,RVAR)" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 28 Define a new global attribute
@@ -81574,7 +89758,7 @@ variables:
 		BROILED:history = "From test0" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 		:glob = "Global attribute" ;
 		:FERRET_comment = "File written via LAS. Attributes are inherited from originating dataset" ;
@@ -81635,7 +89819,7 @@ variables:
 		FAREN:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -81680,7 +89864,7 @@ variables:
 		FAREN:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -81699,7 +89883,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -81729,7 +89913,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -81759,7 +89943,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -81812,7 +89996,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -81854,7 +90038,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -81872,7 +90056,7 @@ variables:
 		V:long_name = "Y[GY=YAXIS]" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 err611_set_var_ez.jnl --- 
@@ -81891,7 +90075,7 @@ variables:
 		MY_ASC:history = "From dat.dat" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -81909,7 +90093,7 @@ variables:
 		MY_UNF:history = "From unf.dat" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- SET VAR/OUTTYPE for user variable
@@ -81926,7 +90110,7 @@ variables:
 		A:long_name = "{1.1,2.2,3.3}" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -81947,7 +90131,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.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -82010,7 +90194,7 @@ variables:
 		newvar:history = "From a" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_keep_axisnames.jnl --- test SAVE/KEEP_AXISNAMES
@@ -82037,7 +90221,7 @@ variables:
 		A:long_name = "X[GX=X100] + T[GT=T31]" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES
@@ -82064,7 +90248,7 @@ variables:
 		A:long_name = "X[GX=X100] + T[GT=T31]" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, degrees_east, degrees_north, std names on axes:
@@ -82130,7 +90314,7 @@ variables:
 		ZUP:long_name = "Z[GZ=ZAXUP]" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, Convert forms of DEG, degrees to degrees_east:
@@ -82162,7 +90346,7 @@ variables:
 		Y_:long_name_mod = "axis YFIFTEEN" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since
@@ -82195,8 +90379,84 @@ variables:
 		XYTVAR:history = "From bn_strides" ;
 
 // global attributes:
-		:history = "FERRET V6.93   29-Oct-14" ;
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:Conventions = "CF-1.6" ;
+}
+netcdf a {
+dimensions:
+	TIME16 = 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" ;
+
+// global attributes:
+		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:Conventions = "CF-1.6" ;
+data:
+
+ reftime = 0, 1, 2.03333333333333 ;
+
+ reftime_bnds =
+  -0.5, 0.5,
+  0.5, 1.51666666666667,
+  1.51666666666667, 2.55 ;
+
+ 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 ;
+}
+netcdf a {
+dimensions:
+	time = 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, time) ;
+		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" ;
 		:Conventions = "CF-1.6" ;
+data:
+
+ reftime = 0, 1, 2.03333333333333 ;
+
+ reftime_bnds =
+  -0.5, 0.5,
+  0.5, 1.51666666666667,
+  1.51666666666667, 2.55 ;
+
+ 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 ;
 }
 -----
 end of ncdump output
@@ -82209,49 +90469,49 @@ yes?
 yes? 
 yes? GO bn_startupfile
  	NOAA/PMEL TMAP
- 	FERRET v6.93  
- 	Linux 2.6.18-398.el5PAE 32-bit - 10/29/14
- 	29-Oct-14 15:57     
+ 	FERRET v6.951 (beta)
+ 	Linux 2.6.18-407.el5PAE 32-bit - 11/17/15
+ 	17-Nov-15 09:28     
 
 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.93"
-FERRET_PLATFORM = "Linux 2.6.18-398.el5PAE 32-bit"
+FERRET_VERSION = "6.951"
+FERRET_PLATFORM = "Linux 2.6.18-407.el5PAE 32-bit"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.3-rc2 of Oct  6 2014 16:16:52 $"
+NETCDF_VERSION = "4.3.2 of Dec 16 2014 12:21:13 $"
 FERRET_MEMORY = "31"
-SESSION_DATE = "29-Oct-14"
-SESSION_TIME = "15:57"
-SESSION_PID = "1762"
-DELTA_CPU = "0.036993"
-CLOCK_SECS = "0.328"
-CURRENT_DATE = "29-Oct-14"
-CURRENT_TIME = "15:57:39"
+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"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
 LAST_GO_FILE = "./bn_startupfile.jnl"
 PPL$FORMAT = "(3F10.2)"
 PPL$PLTNME = "startup_tests.plt"
-PPL$TEKNME = "/dev/tty"
-PPL$XLEN = "8.000"
-PPL$YLEN = "6.000"
-PPL$XORG = "1.200"
-PPL$YORG = "1.400"
-PPL$WIDTH = "10.20"
-PPL$HEIGHT = "8.800"
+PPL$TEKNME = "/dev/tt"
+PPL$XLEN = "8.00000"
+PPL$YLEN = "6.00000"
+PPL$XORG = "1.20000"
+PPL$YORG = "1.40000"
+PPL$WIDTH = "10.2000"
+PPL$HEIGHT = "8.80000"
 PPL$LINE_COUNT = "0"
-PPL$XFACT1 = "1.000"
-PPL$XOFF1 = "0.000"
-PPL$YFACT1 = "1.000"
-PPL$YOFF1 = "0.000"
+PPL$XFACT1 = "1.000000"
+PPL$XOFF1 = "0.000000"
+PPL$YFACT1 = "1.000000"
+PPL$YOFF1 = "0.000000"
 PPL$VIEW_X = "0.000"
 PPL$VIEW_Y = "0.000"
 PPL$VIEW_Z = "0.000"
 PPL$COMMAND_FILE = "$$MEMBUF$$"
-WIN_TITLE = "29-Oct-14:15:57"
+WIN_TITLE = "17-Nov-15:09:28"
 VP_WIDTH = "10.2"
 VP_HEIGHT = "8.8"
 VP_SCALE = "1"
@@ -82273,7 +90533,8 @@ GO_FILE = "./bn_startupfile.jnl"
       LATIT_LABEL   CANCELLED            1
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
-      6D_LAB           SET
+      E_LABEL          SET               1
+      F_LABEL          SET               1
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -82292,7 +90553,8 @@ GO_FILE = "./bn_startupfile.jnl"
       NODATA_LAB       SET
       SHRINK_YLAB   CANCELLED
       CURVILINEAR   CANCELLED
-      SIGMA         CANCELLED
+      LAYERZ        CANCELLED
+      6D_LAB           SET
      currently SET data sets:
     1> ./gtbc011.cdf  (default)
  name     title                             I         J         K         L         M         N
@@ -82313,9 +90575,9 @@ yes?
 yes? 
 yes? GO bn_gif
  	NOAA/PMEL TMAP
- 	FERRET v6.93  
- 	Linux 2.6.18-398.el5PAE 32-bit - 10/29/14
- 	29-Oct-14 15:57     
+ 	FERRET v6.951 (beta)
+ 	Linux 2.6.18-407.el5PAE 32-bit - 11/17/15
+ 	17-Nov-15 09:28     
 
 ! bn450_gif.JNL - copied from bn450_plot.jnl
 ! this journal file only tests the writing of gif file in batch mode using
@@ -82532,9 +90794,9 @@ yes?
 yes? 
 yes? GO bn_ps
  	NOAA/PMEL TMAP
- 	FERRET v6.93  
- 	Linux 2.6.18-398.el5PAE 32-bit - 10/29/14
- 	29-Oct-14 15:57     
+ 	FERRET v6.951 (beta)
+ 	Linux 2.6.18-407.el5PAE 32-bit - 11/17/15
+ 	17-Nov-15 09:28     
 
 ! bn450_ps.JNL - copied from bn450_plot.jnl
 ! this journal file only tests the writing of ps files in batch mode using
@@ -82646,9 +90908,9 @@ yes?
 yes? 
 yes? GO bn_batch_metafile
  	NOAA/PMEL TMAP
- 	FERRET v6.93  
- 	Linux 2.6.18-398.el5PAE 32-bit - 10/29/14
- 	29-Oct-14 15:57     
+ 	FERRET v6.951 (beta)
+ 	Linux 2.6.18-407.el5PAE 32-bit - 11/17/15
+ 	17-Nov-15 09:28     
 
 ! bn_batch_metafile.jnl
 ! Run at the end of the benchmark scripts, starting ferret with the flags
@@ -82732,4 +90994,4 @@ set window/location=0.1,0.1/title="another title"
  
 set mode/last logo
 exit/command
-Ended at Wed Oct 29 15:57:41 PDT 2014
+Ended at Tue Nov 17 09:28:13 PST 2015
diff --git a/bench/ansley_official.rhel6-32_err b/bench/ansley_official.rhel6-32_err
deleted file mode 100644
index f0cef0b..0000000
--- a/bench/ansley_official.rhel6-32_err
+++ /dev/null
@@ -1,3676 +0,0 @@
-Procedure run_all to run all FERRET benchmarks
-Running FERRET version /home/users/ansley/build/v685Release/FERRET/fer/ferret_c
--rwxr-xr-x 1 ansley tmap 42809389 Nov 12 15:10 /home/users/ansley/build/v685Release/FERRET/fer/ferret_c
-Using external functions from /home/users/ansley/build/v685Release/FERRET/external_functions/ext_func
-Running the tests of external functions y
-Benchmark run by ansley
-Note: v6.85 on flat 32-bit
-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/tmap/ferret/linux/fer_dsets
-FER_DESCR=.
-FER_DIR=.
-FER_DSETS=.
-FER_EXTERNAL_FUNCTIONS=/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func
-FER_FONTS=/home/users/tmap/ferret/rhel6-x86_64-linux/ppl/fonts
-FER_GO=. /home/users/tmap/ferret/rhel6-x86_64-linux/go /home/users/tmap/ferret/rhel6-x86_64-linux/examples /home/users/tmap/ferret/rhel6-x86_64-linux/contrib /home/users/tmap/ferret/tmap_go
-FER_GRIDS=.
-FER_LIBS=/home/users/tmap/ferret/rhel6-x86_64-linux/lib
-FER_LINK_DIR=/home/users/tmap/ferret_link/linux
-FER_PALETTE=. /home/users/tmap/ferret/rhel6-x86_64-linux/ppl
-FER_WEB_BROWSER=firefox
-PWD=/home/users/ansley/build/v685Release/FERRET/bench
-Beginning at Tue Nov 12 15:12:09 PST 2013
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-        SET EXPRESSION has not been given or implied
-        SET EXPRESSION has not been given or implied
- **ERROR: unknown command qualifier: help
-MESSAGE/CONTINUE /help
- **ERROR: unknown command: that
-that
- **ERROR: command syntax: \!
-\! ignore (err cuz bang gets escaped)
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: invalid command: Value needed for argument 3 in command
-          GO bn_dollar hello
-message/cont $3
- **ERROR: my error message
-message/cont $3"<my error message"
- **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: 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: Valid argument $3 choices are: hello|goodbye
- **ERROR: my error message
-message/cont $3">greetings|hello|goodbye<my error message"
- **ERROR: my error message
-message/cont $3">greetings|hello>replacement text|goodbye<my error message"
- **ERROR: command syntax: empty argument replacement string: $3""
-message/cont $3""
- **ERROR: command syntax: empty text string provided with ">": <
-message/cont $3"<"
- **ERROR: invalid command: Valid value needed for argument $3
-message/cont $3"||"
- *** NOTE: Valid argument $3 choices are: |
- **ERROR: invalid command: Valid value needed for argument $3
-message/cont $3"|>|"
- *** NOTE: Valid argument $3 choices are: >|
- **ERROR: command syntax: empty text string provided with ">": >|
-message/cont $3">|"
- **ERROR: command syntax: empty text string provided with ">": |<
-message/cont $3"|<"
- **ERROR: invalid command: Valid value needed for argument $3
-message/cont $3"|>"
- *** NOTE: Valid argument $3 choices are: >
- **ERROR: command syntax: arg number not in 1-99 range: $100
-say $100
- **ERROR: command syntax: arg number not in 1-99 range: $100)
-say ($100)
- **ERROR: invalid command: Value needed for argument 10 in command
-          GO bn_dollar hello
-say ($10)0
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: command syntax: unpaired grave accents: message/continue "2+2=`2+2"
-message/continue "2+2=`2+2"
- **ERROR: variable unknown or not in data set: GARBAGE
-message/continue "2+2=`garbage`"
- **ERROR: invalid command: grave accent doesnt evaluate to scalar
-          I[i=3:5]
-message/continue "3 numbers: `I[i=3:5]`"
- **ERROR: command syntax: options: "P=prec","B=bad","W=width","ZW=zero-width" or "R=return-item"
-          message/continue "1/3=`1/3BAD=-999`"
-message/continue "1/3=`1/3BAD=-999`"
- **ERROR: command syntax: options: "P=prec","B=bad","W=width","ZW=zero-width" or "R=return-item"
-          message/continue "1/3=`1/3,qBAD=-999`"
-message/continue "1/3=`1/3,qBAD=-999`"
- **ERROR: command syntax: unpaired quotation marks, grave accent or brackets
-MESSAGE/CONTINUE \`2+2`
- **ERROR: command syntax: unpaired quotation marks, grave accent or brackets
-MESSAGE/CONTINUE `2+2\`
- **ERROR: command syntax: 2+2\
-          illegal character: \
-MESSAGE/CONTINUE `2+2\`+1`
- **ERROR: command syntax: unpaired quotation marks, grave accent or brackets
-MESSAGE/CONTINUE \`2+2`+1\`
- **ERROR: command syntax: 1*/3
-          * before / is illegal
-MESSAGE/CONTINUE `1*/3`
- **ERROR: command syntax: sst*/3
-          * before / is illegal
-MESSAGE/CONTINUE `sst*/3,return=lunits`
- **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,units,dset,
-            dsetnum,dsetpath,dsettitle,*size,*start,*end,
-            *units,*axis,nc_scale,nc_offset,user_scale,user_offset,
-            calendar,dtype,xmod,tmod,status,isDepth,isReady
-          sst,return=Xsize
-MESSAGE/CONTINUE `sst,return=Xsize`
- **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,units,dset,
-            dsetnum,dsetpath,dsettitle,*size,*start,*end,
-            *units,*axis,nc_scale,nc_offset,user_scale,user_offset,
-            calendar,dtype,xmod,tmod,status,isDepth,isReady
-          sst,return=trash
-MESSAGE/CONTINUE `sst,return=trash`
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: unknown data set: NOEXIST
-DEFINE VARIABLE/d=noexist a = b
- **ERROR: variable unknown or not in data set: AIRT[D=GT4D011]
-list/l=1/x=180/y=0 airt[d=gt4d011]
- **ERROR: invalid command: CANCEL what?
-can var
- LISTing to file v12file.nc
- LISTing to file v1file.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: invalid command: ELSE can only be used between IF and ENDIF
-else
- **ERROR: invalid command: ENDIF can only be used in an IF clause
-endif
- **ERROR: invalid command: ELIF can only be used between IF and ENDIF
-elif
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: command syntax: IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
-          Cannot use multiple IFs in an expression
-LIST/ORDER=X  IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
- **ERROR: command syntax: IF I LT 5 THEN I ELSE -9
-          ELSE before - is illegal
-          negative constants need to be enclosed in parentheses
-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
- PERMANENT data cleared from memory
- TEMPORARY 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: Ambiguous coordinates on X axis: X[I=1:5] - X[I=6:9]
- **ERROR: inconsistent sizes of data regions: X axis
-          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]
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file WV.J34K56L7
- LISTing to file test.dat
- LISTing to file test.dat
- 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
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY 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 XFINE
-Replacing definition of axis XCOARSE
-Replacing definition of axis YFINE
-Replacing definition of axis YCOARSE
-Replacing definition of grid G24
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file test.unf
- 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
- 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
- *** NOTE: /XLIMITS and /YLIMITS are deprecated.
- *** NOTE: Use /HLIMITS and /VLIMITS instead.
- **ERROR: invalid command: color=noexist
-          Colors are Black,Red,Green,Blue,LightBlue,Purple, and White
-plot/over/i=1:10/color=noexist i
- **ERROR: value out of legal range: thick=4
-          Legal range is 1 to 3
-plot/over/i=1:10/thick=4 i
- **ERROR: value out of legal range: size=-1
-          Symbol size must be positive
-plot/over/i=1:10/size=-1 i
- Using every   2th vector in the Y direction
- **ERROR: invalid command: color=noexist
-          Colors are Black,Red,Green,Blue,LightBlue,Purple, and White
-cont/over/i=1:10/color=noexist i
- **ERROR: unknown command qualifier: thick=4
-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
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis LON_FIELD_I_AXIS
-Replacing definition of axis LON_FIELD_J_AXIS
-Replacing definition of axis LAT_FIELD_I_AXIS
-Replacing definition of axis LAT_FIELD_J_AXIS
- **ERROR: inconsistent sizes of data regions: Y coord field lies
-          in different plane from data to be plotted
-shade/nolabel sst, x_page, y_page
- **ERROR: all data have same value: X coordinate field
-shade/nolabel sst, 0*x_page, y_page
- **ERROR: all data have same value: Y coordinate field
-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
- **ERROR: inconsistent sizes of data regions: Y axis of X position array
-shade/nolabel sst, x_page[j=1:12], y_page
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: command syntax: illegal name: TEST*
-define symbol test* = hello
- **ERROR: invalid command: Value needed for argument 5 in command
-          GO bn_symbols
-define symbol t$5 = hi
- **ERROR: error message
-message/continue ($test2"<error message")
- **ERROR: invalid command: Valid value needed for symbol test2
-message/continue ($test2"|hello|bye|")
- *** 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: Valid symbol t2 choices are: solong>really hello|bye|
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: unknown defining grid: GX=NOEXIST
-list temp[gx=noexist]
- **ERROR: command syntax: P=NOEXIST
-list temp[gx=u,p=noexist]
- **ERROR: command syntax: used GX=lo:hi:delta with X=lo:hi (ditto for Y,Z, or T)
-          X=160E:160W
-list temp[gx=130e:80w:10,x=160e:160w]
- **ERROR: command syntax: used GX=lo:hi:delta with X=lo:hi (ditto for Y,Z, or T)
-          I=2:5
-list temp[gx=130e:80w:10,i=2:5]
- **ERROR: command syntax: used GX=lo:hi:delta with X=lo:hi (ditto for Y,Z, or T)
-          GX=130E:80W:10
-list temp[i=2:5,gx=130e:80w:10]
- **ERROR: command syntax: GX=lo:hi:delta with no delta (or ditto for Y,Z, or T)
-          GX=130E:80W
-list temp[gx=130e:80w]
- **ERROR: variable unknown or not in data set: NOEXIST
-list temp[gx=u]	+ noexist
- **ERROR: illegal limits: TEMP on grid (G003) does not exist at K=30
-          Axis extremes are K=1:27
-list temp[gx=u,k=30]
- **ERROR: illegal limits: TEMP does not contain K=20
-          Data are available in K =    1:2
-list temp[gx=u,k=20]
- **ERROR: regridding: Axis orientation not matching request:GX=PSYU
-list temp[gx=psyu]
- **ERROR: regridding: Axis orientation not matching request:GX=PSYT
-list/i=3:6 X[gx=PSYT]
- **ERROR: unknown defining grid: GX=NOEXIST
-list tu
- **ERROR: command syntax: P=NOEXIST
-list tu
- **ERROR: variable unknown or not in data set: NOEXIST
-list tu
- **ERROR: illegal limits: TEMP on grid (G003) does not exist at K=30
-          Axis extremes are K=1:27
-list tu
- **ERROR: illegal limits: TEMP does not contain K=20
-          Data are available in K =    1:2
-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.
-list temp[gz=z999999,z=5:15]
- *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
- *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
- Cached data cleared from memory
- *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] +  X[X=1.1:11:1.5]
- *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] +  X[X=1.1:11:1.5]
- *** NOTE: Ambiguous coordinates on X axis: TEMP[I=101:120:4]+X[I=101:120:4]
- **ERROR: invalid command: non-positive delta value: X[I=1:5:-1]
-list x[i=1:5:-1]
- **ERROR: invalid command: non-positive delta value: X[I=1:5:0]
-list x[i=1:5:0]
- **ERROR: invalid command: non-positive delta value: X[X=1:5:-1]
-list x[x=1:5:-1]
- **ERROR: invalid command: non-positive delta value: X[X=1:5:0]
-list x[x=1:5:0]
- **ERROR: illegal limits: A is not in the range I=101:105
-          Axis extremes are I=1:11
-list a
- **ERROR: illegal limits: A is not in the range J=46:50
-          Axis extremes are J=1:7
-list a
- **ERROR: illegal limits: A is not in the range I=101:105
-          Axis extremes are I=1:8
-list a
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file test0a.cdf
- LISTing to file test0b.cdf
- LISTing to file test0c.cdf
- LISTing to file test0d.cdf
- LISTing to file test0e.cdf
- LISTing to file test0f.cdf
- LISTing to file test0g.cdf
- LISTing to file test0h.cdf
- LISTing to file test0i.cdf
- LISTing to file test0j.cdf
- LISTing to file test0k.cdf
- LISTing to file test0l.cdf
- LISTing to file test0m.cdf
- LISTing to file test0n.cdf
- LISTing to file test0o.cdf
- LISTing to file test0p.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
- *** NOTE: Write the data initially with the /BOUNDS qualifier
- LISTing to file test2.cdf
- LISTing to file FL.cdf
- LISTing to file FTLON.cdf
- **ERROR: invalid command: /CLOBBER not specified and file exists: test_abs.cdf
-list/format=cdf/l=1:10/file=test_abs.cdf l
- LISTing to file test_abs.cdf
- **TMAP ERR: Requested data range is outside of data set limits
-             inconsistent I axis length for IL
-list/format=cdf/i=5:15/l=5:10/append/file=test_abs.cdf il
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- **TMAP ERR: attempt to redefine line
-             # of dims in variable IJL2 is inconsist. w/ CDF file
-list/format=cdf/append/file=test_abs.cdf ijl2
- **ERROR: variable unknown or not in data set: IJKL[K=@AVE]
-list/format=cdf/append/file=test_abs.cdf ijkl[k=@ave]
- LISTing to file test_abs.cdf
- **TMAP ERR: error in line definition
-             disordered output coordinate value:         363  Axis: TCENTURY
-list/format=cdf/l=13/append/file=test_abs.cdf l1
- LISTing to file FI.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: regridding: no target grid specified
-load temp[g=@lin]
- **ERROR: regridding: no target grid specified
-load temp[gx=@ave]
- **ERROR: regridding: G=W - more than 1 target grid
-load temp[g=u,g=w]
- **ERROR: unknown defining grid: G=X --> g=user-or-pseudo-var not allowed
-load temp[g=x]
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: command syntax: xlimits
-plot/xlimits i
- **ERROR: command syntax: xlimits= i
-plot/xlimits= i
- **ERROR: command syntax: xlimits=text
-plot/xlimits=text i
- **ERROR: command syntax: xlimits=1
-plot/xlimits=1 i
- **ERROR: command syntax: i
-plot/xlimits=1: i
- **ERROR: command syntax: xlimits=1:: i
-plot/xlimits=1:: i
- **ERROR: command syntax: i
-plot/xlimits=1:2: i
- **ERROR: invalid command: Must give a range: xlimits=5:5
-plot/xlimits=5:5 i
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file test_perm10.dat
- LISTing to file test_perm24.dat
- LISTing to file test_perm48.dat
- LISTing to file test_perm48_10.dat
-Replacing definition of grid G12
-Replacing definition of grid G24
- LISTing to file test_stream.unf
- LISTing to file test_stream.unf
- LISTing to file test_stream.unf
- LISTing to file test_stream.unf
- PERMANENT data cleared from memory
- TEMPORARY 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: Attempt to access unsupported feature
-             Descriptor requests delta of 0, please use 1
-             Data set: ./coads_clim_bad_delta.des
-set data coads_clim_bad_delta.des
- **TMAP ERR: error in line definition
-             A gap or overlap exists in time axis
-set data coads_clim_step_order.des
- **TMAP ERR: non-existent or not on line
-             coads_clim.001b
-list sst
- 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 TIME
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file test.cdf
- 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
-Replacing definition of axis TAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- Cached data cleared from memory
- **ERROR: command syntax: v2-and-minus
-          - before and is illegal
-list v2-and-minus
- **ERROR: dimensions improperly specified: 99999999 words were requested.
-list x
- *** NOTE: Check for unspecified limits on an ABSTRACT axis
- *** NOTE: Use the SHOW GRID command to see the axes
- **ERROR: dimensions improperly specified: 99999999 words were requested.
-list i
- *** NOTE: Check for unspecified limits on an ABSTRACT axis
- *** NOTE: Use the SHOW GRID command to see the axes
- **ERROR: variable unknown or not in data set: 'i'
-list 'i'
- **ERROR: command syntax: v2-and-minus[i=5:15 at ddc]
-          - before and is illegal
-list v2-and-minus[i=5:15 at ddc]
- Cached data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file permutedBinaryTest.dat
- LISTing to file junk.dat
-Replacing definition of axis XAX
-Replacing definition of axis YAX
-Replacing definition of axis ZAX
-Replacing definition of axis TAX
- **ERROR: request exceeds memory setting: A negative number of words were requested.
-load num
- *** NOTE: The current grid is most likely too large
-Replacing definition of axis YAX
-Replacing definition of axis ZAX
-Replacing definition of axis TAX
- **ERROR: request exceeds memory setting: 1000 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 XAX
-Replacing definition of axis YAX
-Replacing definition of axis ZAX
-Replacing definition of axis TAX
- **TMAP ERR: non-existent or not on line
-             NoSuchFile.dat
-SET DATA/EZ/format=stream/var=num/grid=mygrid NoSuchFile.dat
- **ERROR: Size of file ./junk.dat doesn't match size specified by variables/grid
-load num
- *** NOTE: Binary file reading: Insufficient memory reading variable    2
- **ERROR: invalid command: variable permutations only allowed for STREAM format
-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
- 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
- **ERROR: improper grid or axis definition: NPOINTS=1 incompatible with limits given
-define axis/x=1:5/npoints=1 xax
-Replacing definition of axis XAX
- **ERROR: improper grid or axis definition: error in start,end,delta
-define axis/x=5/npoints=1/edges xax
-Replacing definition of axis XAX
-Replacing definition of axis TAX
-Replacing definition of axis TAX
-Replacing definition of axis TAX
-Replacing definition of axis TAX
- **ERROR: improper grid or axis definition: NPOINTS=1 incompatible with limits given
-define axis/t=15-jan-1980:25-jan-1980/npoints=1/unit=days tax
-Replacing definition of axis TAX
- **ERROR: improper grid or axis definition: error in start,end,delta
-define axis/t=15-jan-1980/npoints=1/unit=days/edges tax
-Replacing definition of axis TAX
-Replacing definition of axis XAX
-Replacing definition of axis XAX
-Replacing definition of axis TAX
-Replacing definition of axis TAX
-Replacing definition of axis TAX
-Replacing definition of axis TAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
-Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
-Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
-Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
-Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
-Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
-Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
-Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
-Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- **ERROR: improper grid or axis definition: unrepairable repeated axis coords
-define axis/from/x/name=xax {6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- **ERROR: improper grid or axis definition: unrepairable repeated axis coords
-define axis/from/x/name=xax/edges {6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- **ERROR: improper grid or axis definition: unrepairable repeated axis coords
-define axis/from/x/name=xax/edges {6,6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
-Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
-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
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY 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 TCAL
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file out.cdf
- LISTing to file out.cdf
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY 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: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: command syntax: noname(i)
-          unknown function "noname"
-stat i, noname(i)
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY 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: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
- **ERROR: invalid command: delta values may only modify variable names
-LIST/i=2:4:2 VAR
- PERMANENT data cleared from memory
- TEMPORARY 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: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
- PERMANENT data cleared from memory
- TEMPORARY 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
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of grid GX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis YAX
-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
-Replacing definition of axis Y1
-Replacing definition of axis Y2
-Replacing definition of grid MYGRID
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TDAYS
-Replacing definition of axis TDAYS
-Replacing definition of axis TDAYS
-Replacing definition of grid TGRID
-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
-Replacing definition of grid TGRID
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: command syntax: dash=(1., 2.)
-          DASH[=(dn1,up1,dn2,up2)] takes 4 arguments or no argument
-plot/dash=(1., 2.)/color=red/thick/i=1:1000 sin(62.8*(i+10) )
- **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
- PERMANENT data cleared from memory
- TEMPORARY 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
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis DAYT
-Replacing definition of grid TGRID
- **ERROR: error in external function
-LIST vw_fft
-Replacing definition of grid TGRID
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis X10
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Not deleted: X10
- *** NOTE: Axis is in use by grid G10X5
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY 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: illegal limits: VWND does not contain L=102:150
-          Data are available in L =    1:60
-list tsorted_indices, tsorted_wnd
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: error in external function
-list/l=1:2 eofxyfcn
- **ERROR: error in external function
-list/i=1:3/j=1:3 eofstat
- **ERROR: error in external function
-list/i=1:2 eoftime
- PERMANENT data cleared from memory
- TEMPORARY 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: strindex("Ferret is fun for the whole family - real family fun")
-          The strindex function has an incorrect number of arguments
-list strindex("Ferret is fun for the whole family - real family fun")
- **ERROR: command syntax: strrindex("Ferret is fun for the whole family - real family fun")
-          The strrindex function has an incorrect number of arguments
-list strrindex("Ferret is fun for the whole family - real family fun")
- **ERROR: command syntax: substring("Have you fed your ferret today", 19)
-          The substring function has an incorrect number of arguments
-list substring("Have you fed your ferret today", 19)
- **ERROR: command syntax: substring("Have you fed your ferret today")
-          The substring function has an incorrect number of arguments
-list substring("Have you fed your ferret today")
- **ERROR: command syntax: strcat ("All work and no play")
-          The strcat function has an incorrect number of arguments
-list strcat ("All work and no play")
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY 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
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** 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
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Re-defining viewport MID
-Re-defining viewport MID2
-Re-defining viewport LLAX
-Re-defining viewport LRAX
-Re-defining viewport ULAX
-Re-defining viewport URAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: command syntax: "string2"}
-list e
- **ERROR: command syntax: 5, "string2"}
-list e
- **ERROR: illegal data type (float,string,...) for operation: D
-plot d
- **ERROR: illegal data type (float,string,...) for operation: D
-define axis/x xax = d
- LISTing to file test_string.cdf
- LISTing to file test_string.cdf
- LISTing to file test_string.cdf
- LISTing to file test_string.cdf
- LISTing to file test_string.cdf
- LISTing to file test_string2.cdf
- **ERROR: invalid command: cant use this regrid transform on strings: @LIN
-list a[gx=xnrst]
- **ERROR: invalid command: cant use this regrid transform on strings: @AVE
-list a[gx=xnrst at ave]
- **ERROR: invalid command: cant use this regrid transform on strings: @VAR
-list a[gx=xnrst at var]
- **ERROR: invalid command: cant use this regrid transform on strings: @NGD
-list a[gx=xnrst at ngd]
- **ERROR: invalid command: cant use this regrid transform on strings: @MAX
-list a[gx=xnrst at max]
- **ERROR: invalid command: cant use this regrid transform on strings: @SUM
-list a[gx=xnrst at sum]
- **ERROR: invalid command: cant use this regrid transform on strings: @MOD
-list a[gx=xnrst at mod]
- LISTing to file foo.cdf
- PERMANENT data cleared from memory
- TEMPORARY 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 X1
-Replacing definition of grid G1
-Replacing definition of axis TAX
-Replacing definition of axis TAX
-Replacing definition of axis Z1
-Replacing definition of grid G1
- **TMAP ERR: syntax error in string
-             Unrecognized field type: D
-             Data set: ./bn_delimited_read_date_time.dat
- *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
-SET DATA/FORM=delimited/type="d, da2,date2"  bn_delimited_read_date_time.dat
- **TMAP ERR: syntax error in string
-             Unrecognized field type: DATE2
-             Data set: ./bn_delimited_read_date_time.dat
- *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
-SET DATA/FORM=delimited/type="da,da, date2"  bn_delimited_read_date_time.dat
- **ERROR: command syntax: ,,:
-SET DATA/EZ/form=delim/delim="/,,,:" bn_delimited_read_date_time.dat
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY 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_good_order.cdf
- LISTing to file test_bad_order.cdf
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis T2
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Re-defining viewport LL6
-Re-defining viewport UL6
-Re-defining viewport LM6
-Re-defining viewport UM6
-Re-defining viewport LR6
-Re-defining viewport UR6
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XAX
-Replacing definition of axis YAX
-Replacing definition of axis ZAX
-Replacing definition of axis TAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file profiles.nc
- LISTing to file profiles.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file test_100x100.nc
- Cached data cleared from memory
- Cached data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XAX
-Replacing definition of axis YAX
-Replacing definition of grid MYGRID
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file longax.dat
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: regarding ./test_axes.nc ...
- *** NOTE: Climatological axes test_irreg, test_seas defined
- PERMANENT data cleared from memory
- TEMPORARY 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: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
-Replacing definition of axis TAX2
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file string4d.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: regarding ./test_axes.nc ...
- *** NOTE: Climatological axes test_irreg, test_seas defined
- *** NOTE: Not deleted: TEST_IRREG
- *** NOTE: Axis is in use by grid (G022)
- *** NOTE: Not deleted: XEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: XODD
- *** NOTE: Axis is in use by grid G13
- *** NOTE: Not deleted: YEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: YODD
- *** NOTE: Axis is in use by grid G2
- *** NOTE: Not deleted: ZEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: ZODD
- *** NOTE: Axis is in use by grid G3
- *** NOTE: Not deleted: TEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: TODD
- *** NOTE: Axis is in use by grid G4
- *** NOTE: Not deleted: XCOARSE
- *** NOTE: Axis is in use by grid GCOARSE
- *** NOTE: Not deleted: YFINE
- *** NOTE: Axis is in use by grid GFINE
- *** NOTE: Not deleted: YCOARSE
- *** NOTE: Axis is in use by grid GCOARSE
- *** NOTE: Not deleted: XFINE
- *** NOTE: Axis is in use by grid GFINE
- *** NOTE: Not deleted: TAX48
- *** NOTE: Axis is in use by grid G48
- *** NOTE: Not deleted: XEZ1
- *** NOTE: Axis is in use by grid GEZ1
- *** NOTE: Not deleted: XEZ2
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: YEZ
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: ZEZ
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: XEZ3
- *** NOTE: Axis is in use by grid GEZ3
- *** NOTE: Not deleted: LON_FIELD_J_AXIS
- *** NOTE: Axis is in use by grid LON_FIELD_GRID
- *** NOTE: Not deleted: LAT_FIELD_I_AXIS
- *** NOTE: Axis is in use by grid LAT_FIELD_GRID
- *** NOTE: Not deleted: LAT_FIELD_J_AXIS
- *** NOTE: Axis is in use by grid LAT_FIELD_GRID
- *** NOTE: Not deleted: LON_FIELD_I_AXIS
- *** NOTE: Axis is in use by grid LON_FIELD_GRID
- *** NOTE: Not deleted: XIRREG
- *** NOTE: Axis is in use by grid GIRREG
- *** NOTE: Not deleted: TCENTURY
- *** NOTE: Axis is in use by grid GCENTURY
- *** NOTE: Not deleted: TAX5DAY
- *** NOTE: Axis is in use by grid G5DAY
- *** NOTE: Not deleted: XAX10
- *** NOTE: Axis is in use by grid G5_10
- *** NOTE: Not deleted: X5
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: Y5
- *** NOTE: Axis is in use by grid G10X5
- *** NOTE: Not deleted: TIME1
- *** NOTE: Axis is in use by grid GHB1
- *** NOTE: Not deleted: TIME2
- *** NOTE: Axis is in use by grid GCQ1
- *** NOTE: Not deleted: TAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: X4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: Y4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: Z4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: T4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: XCHANNEL
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: YRISE
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: ZLAYER
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: TIME
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: Z1
- *** NOTE: Axis is in use by grid G1
- *** NOTE: Not deleted: TCAL
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: XTROP
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: YTROP
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: ZAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: Y1
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: Y2
- *** NOTE: Axis is in use by grid G10X2
- *** NOTE: Not deleted: JMONTHS
- *** 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: 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: TEST_IRREG
- *** NOTE: Axis is in use by grid (G022)
- *** 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
- *** NOTE: Axis is in use by grid G13
- *** NOTE: Not deleted: YEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: YODD
- *** NOTE: Axis is in use by grid G2
- *** NOTE: Not deleted: ZEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: ZODD
- *** NOTE: Axis is in use by grid G3
- *** NOTE: Not deleted: TEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: TODD
- *** NOTE: Axis is in use by grid G4
- *** NOTE: Not deleted: XCOARSE
- *** NOTE: Axis is in use by grid GCOARSE
- *** NOTE: Not deleted: YFINE
- *** NOTE: Axis is in use by grid GFINE
- *** NOTE: Not deleted: YCOARSE
- *** NOTE: Axis is in use by grid GCOARSE
- *** NOTE: Not deleted: XFINE
- *** NOTE: Axis is in use by grid GFINE
- *** NOTE: Not deleted: TAX48
- *** NOTE: Axis is in use by grid G48
- *** NOTE: Not deleted: XEZ1
- *** NOTE: Axis is in use by grid GEZ1
- *** NOTE: Not deleted: XEZ2
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: YEZ
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: ZEZ
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: XEZ3
- *** NOTE: Axis is in use by grid GEZ3
- *** NOTE: Not deleted: LON_FIELD_J_AXIS
- *** NOTE: Axis is in use by grid LON_FIELD_GRID
- *** NOTE: Not deleted: LAT_FIELD_I_AXIS
- *** NOTE: Axis is in use by grid LAT_FIELD_GRID
- *** NOTE: Not deleted: LAT_FIELD_J_AXIS
- *** NOTE: Axis is in use by grid LAT_FIELD_GRID
- *** NOTE: Not deleted: LON_FIELD_I_AXIS
- *** NOTE: Axis is in use by grid LON_FIELD_GRID
- *** NOTE: Not deleted: XIRREG
- *** NOTE: Axis is in use by grid GIRREG
- *** NOTE: Not deleted: TCENTURY
- *** NOTE: Axis is in use by grid GCENTURY
- *** NOTE: Not deleted: TAX5DAY
- *** NOTE: Axis is in use by grid G5DAY
- *** NOTE: Not deleted: XAX10
- *** NOTE: Axis is in use by grid G5_10
- *** NOTE: Not deleted: X5
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: Y5
- *** NOTE: Axis is in use by grid G10X5
- *** NOTE: Not deleted: TIME1
- *** NOTE: Axis is in use by grid GHB1
- *** NOTE: Not deleted: TIME2
- *** NOTE: Axis is in use by grid GCQ1
- *** NOTE: Not deleted: TAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: X4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: Y4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: Z4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: T4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: XCHANNEL
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: YRISE
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: ZLAYER
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: TIME
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: Z1
- *** NOTE: Axis is in use by grid G1
- *** NOTE: Not deleted: TCAL
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: XTROP
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: YTROP
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: ZAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: Y1
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: Y2
- *** NOTE: Axis is in use by grid G10X2
- *** NOTE: Not deleted: JMONTHS
- *** 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: 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: 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
- TEMPORARY data cleared from memory
- LISTing to file test_mod.cdf
- LISTing to file test_mod.cdf
- LISTing to file test_mod.cdf
- **ERROR: improper grid or axis definition: Axis length exceeds modulo length
-define axis/x=130e:500:10/modulo=360 xsub
- LISTing to file test_mod.cdf
- LISTing to file test_mod.cdf
- LISTing to file test_mod.cdf
- LISTing to file test_mod.cdf
- LISTing to file test_mod.cdf
- LISTing to file test_mod.cdf
- LISTing to file test_mod.cdf
- LISTing to file test_subspan_modulo.nc
- LISTing to file test_subspan_modulo.nc
- LISTing to file test_subspan_modulo.nc
- LISTing to file test_subspan_modulo.nc
- LISTing to file test_subspan_modulo.nc
- LISTing to file test_subspan_modulo.nc
- LISTing to file test_subspan_modulo.nc
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** 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
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: /THICKNESS ignored  on /SYMBOL=DOT
- *** NOTE: /SIZE= ignored  on /SYMBOL=DOT
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY 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: Undecipherable value of netCDF attribute modulo on variable lon_moderr
- *** NOTE: modulo = "j"
- *** NOTE: Undecipherable value of netCDF attribute modulo on variable time_moderr
- *** NOTE: modulo = "j"
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Re-defining viewport MID
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Re-defining viewport MID1
-Re-defining viewport MID2
- 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
-Replacing definition of axis TAX
- 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
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY 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: value out of legal range: # of contour levels > 500  (3283)
-CONTOUR/L=1/LEV=0.01d sst
- **ERROR: value out of legal range: # of contour levels > 500  (3283)
-CONTOUR/FILL/L=1/LEV=0.01d sst
- **ERROR: value out of legal range: # of shade levels > 500  (3283)
-SHADE/L=1/LEV=0.01d sst
- **ERROR: value out of legal range: # of levels > 500  (4094)
-POLYGON/KEY/LEV=0.01d/coord_ax=Z  PLMxpoly+PLMxpolymark, PLMypoly+PLMypolymark, PLMpolydata
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
- *** NOTE: Valid calendars are GREGORIAN NOLEAP    JULIAN    360_DAY   ALL_LEAP
- *** NOTE: A dummy axis of subscripts will be used
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-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
-Replacing definition of axis YAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,units,dset,
-            dsetnum,dsetpath,dsettitle,*size,*start,*end,
-            *units,*axis,nc_scale,nc_offset,user_scale,user_offset,
-            calendar,dtype,xmod,tmod,status,isDepth,isReady
-          axy, return=xx
-MESSAGE/CONTINUE `axy, return=xx`
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XAX
- LISTing to file a.dat
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis YAX
-Replacing definition of axis Z1
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file clim.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
- *** NOTE: Axis has repeated values -- micro-adjusting TIME
- **ERROR: illegal limits: "DUMMY" does not exist at T=JAN-1990
-          Axis extremes are T=DEC-1997:JAN-1998
-list/t=1-jan-1990 dummy
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: invalid command: Can SET VARIABLE/OFFSET= only with NetCDF datasets
-SET VAR/OFFSET=1 x1
- **ERROR: invalid command: Can SET VARIABLE/SCALEFAC= only with NetCDF datasets
-SET VAR/SCALE=10 x2
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file longvname.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file longvname.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 eofsp.cdf
- LISTing to file eofti.cdf
- LISTing to file eofst.cdf
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file confuse_xz.nc
- LISTing to file confuse_yz.nc
- LISTing to file confuse_yt.nc
- LISTing to file confuse_yzt.nc
- LISTing to file confuse_xz.nc
- LISTing to file confuse_yz.nc
- LISTing to file confuse_yt.nc
- LISTing to file confuse_yzt.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis YQ
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TAX
-Replacing definition of axis XAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-SHO VAR/XML
-SHO VAR/XML
-SHO VAR/XML
-SHO VAR/XML
-SHOW VAR/XML
-SHOW VAR/XML
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY 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: /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
-Replacing definition of axis TAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: invalid command: REPEAT/NAME requires /RANGE
-rep/name=a say `a`
- **ERROR: command syntax: L is a pseudo-variable; cannot use with REPEAT/RANGE/NAME. Instead use REPEAT/L=
-rep/range=1:3/name=L (use coads_climatology; list/nohead [sst=I=1,j=1])
- **ERROR: command syntax: I is a pseudo-variable; cannot use with REPEAT/RANGE/NAME. Instead use REPEAT/I=
-rep/range=1:3/name=I (use coads_climatology; list/nohead [sst])
- **ERROR: command syntax: j is a pseudo-variable; cannot use with REPEAT/RANGE/NAME. Instead use REPEAT/j=
-rep/range=1:3/name=j (use coads_climatology; list/nohead [sst])
- **ERROR: command syntax: k is a pseudo-variable; cannot use with REPEAT/RANGE/NAME. Instead use REPEAT/k=
-rep/range=1:3/name=k (use coads_climatology; list/nohead [sst])
- **ERROR: command syntax: X is a pseudo-variable; cannot use with REPEAT/RANGE/NAME. Instead use REPEAT/X=
-rep/range=1:3/name=X (use coads_climatology; list/nohead [sst])
- **ERROR: command syntax: y is a pseudo-variable; cannot use with REPEAT/RANGE/NAME. Instead use REPEAT/y=
-rep/range=1:3/name=y (use coads_climatology; list/nohead [sst])
- **ERROR: command syntax: z is a pseudo-variable; cannot use with REPEAT/RANGE/NAME. Instead use REPEAT/z=
-rep/range=1:3/name=z (use coads_climatology; list/nohead [sst])
- **ERROR: command syntax: tbox is a pseudo-variable; cannot use with REPEAT/RANGE/NAME=
-rep/range=1:3/name=tbox (use coads_climatology; list/nohead[sst,x=181,y=0,t=`tbox`])
- **ERROR: command syntax: xboxlo is a pseudo-variable; cannot use with REPEAT/RANGE/NAME=
-rep/range=1:3/name=xboxlo (list/nohead xboxlo)
- **ERROR: command syntax: nested REPEAT loops with the same counter name 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
- **ERROR: command syntax: nested REPEAT loops with the same counter name 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
- PERMANENT data cleared from memory
- TEMPORARY 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: illegal limits: "TEMP" does not exist at T=AUG-1980:JAN-1982
-          Axis extremes are T=AUG-1982:JAN-1983
-list/t=1-aug-1980:1-jan-1982/i=92/j=35 temp
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XAX
-Replacing definition of axis YAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY 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 TAX1
-Replacing definition of axis TAX2
-Replacing definition of axis TAX1
-Replacing definition of axis TAX2
-Replacing definition of axis TAX1
-Replacing definition of axis TAX2
- PERMANENT data cleared from memory
- TEMPORARY 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 AGRID
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis X_AX
- PERMANENT data cleared from memory
- TEMPORARY 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 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
- 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
-Replacing definition of axis XAX
-Replacing definition of axis YAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
-Replacing definition of axis TAX
-Replacing definition of axis TAX
- *** NOTE: Axis definition error on axis: TAX
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
-Replacing definition of axis TAX
- **ERROR: improper grid or axis definition: BOUNDS specified do not correctly enclose coordinate points
-def axis/t/bounds tax={1.2,2,3.2,5,7,8.8,9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5}
- **ERROR: improper grid or axis definition: BOUNDS specified do not correctly enclose coordinate points
-def axis/t/bounds tax={0.1,2,3.2,5,7,8,9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5}
- **ERROR: improper grid or axis definition: BOUNDS specified do not correctly enclose coordinate points
-def axis/t/bounds tax={0,2,3.2,5,7,8,9.9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5}
- **ERROR: improper grid or axis definition: BOUNDS specified do not correctly enclose coordinate points
-def axis/t/bounds tax={0,2,3.2,5,7,8,9.9}, {0.5,1.5,2.5,3.5,6.5,7.5,8.5,9.5}
- **ERROR: improper grid or axis definition: dimension of bounds (15) must be 2*N or N+1, N=number of axis coordinates (7)
-def axis/t/bounds tax={1.2,2,3.2,5,7,8.4,9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5,10.5}
- *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
- **ERROR: improper grid or axis definition: BOUNDS specified do not correctly enclose coordinate points
-def axis/t/bounds tax= {12, 12.2, 36, 36.2, 60, 60.2, 84, 84.2, 108} , {0,24, 0,24, 24,48, 24,48, 48,72, 48,72, 72,96, 72,96, 96,120}
- *** NOTE: Not deleted: TAX
- *** NOTE: Axis is in use by grid GFORMAT
- LISTing to file a.nc
- LISTing to file a.nc
- *** NOTE: Cannot have both /BOUNDS and /RIGID Ignoring /RIGID
- LISTing to file a.nc
- *** NOTE: Cannot have both /BOUNDS and /EDGES Ignoring /EDGES
- LISTing to file a.nc
-Replacing definition of axis XAX
-Replacing definition of axis ZAX
-Replacing definition of axis TAX
- LISTing to file irrxzt.nc
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: MONTH_REG
- *** NOTE: Write the data initially with the /BOUNDS qualifier
- LISTing to file a.nc
- LISTing to file a.nc
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
- *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
- *** NOTE: Substituting coordinate midpoints
- *** 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
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of grid TGRID
- **ERROR: command syntax: Invalid calendar name. Names are, GREGORIAN, NOLEAP, JULIAN, 360_DAY, ALL_LEAP
-def axis/t/cal=nogood/t=1-jan-2000:1-jan-2010:1/units=months tax
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Units  not recognized: SOMETHING
- *** NOTE: They will not be convertible:
- *** NOTE: Units  not recognized: SOMETHING
- *** NOTE: They will not be convertible:
- *** NOTE: Units  not recognized: ZORRO
- *** NOTE: They will not be convertible:
- *** NOTE: Units  not recognized for T axis: METERS
- *** NOTE: They will not be convertible
- *** NOTE: Units  not recognized for Y axis: SECONDS
- *** NOTE: They will not be convertible
-Replacing definition of axis TAX
-Replacing definition of axis XAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY 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: /UNIT=MONTHS  ... using 1/12 of 365.00 days
-Replacing definition of axis TAX
-Replacing definition of axis ZAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XAX
- LISTing to file xlong.nc
- LISTing to file xlongshift.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-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
- 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 axis XAX
-Replacing definition of axis YAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Re-defining viewport VP_1
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XAX
-Replacing definition of axis YAX
-Replacing definition of axis ZAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XAX
-Replacing definition of axis YAX
-Replacing definition of axis XAX
- PERMANENT data cleared from memory
- TEMPORARY 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 XFINE
-Replacing definition of axis YFINE
- LISTing to file fine.dat
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: illegal limits: One-point independent axis: Requires a /HLIMIT or /VLIMIT specification
-plot/sym/siz=0.3 0*t[gt=vwnd]
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
-Replacing definition of axis TAX
- LISTing to file aa.nc
- LISTing to file cc.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: First argument is a letter of the alphabet
-query/ignore $1%q|a|b|c|d|<First argument is a letter of the alphabet%
- **ERROR: invalid command: Valid value needed for argument $2
-query/ignore $2%|a|b|c|d|%
- *** 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: 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: 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: 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: Valid symbol t2 choices are: solong>really hello|bye|
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: invalid command: delta non-positive on X axis of EX#1
-list/l=1/j=40/i=0:300:0 sst
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file 10a.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
-Replacing definition of axis XQ
-Replacing definition of axis YQ
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Evenly spaced axis has edges definition: TCOADS - ignored
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TIME1
- *** NOTE: grid  used by data set coads_clim
- *** NOTE: Redefinition may alter apparent contents of data set
-Replacing definition of axis TIME1
- *** NOTE: grid  used by data set coads_clim
- *** NOTE: Redefinition may alter apparent contents of data set
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis COADSX.ILLEGAL
- *** NOTE: grid  used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
- *** NOTE: grid  used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
-Replacing definition of axis COADSY.ILLEGAL
- *** NOTE: grid  used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
- *** NOTE: grid  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
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY 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 TIME
- LISTing to file a.nc
- TEMPORARY 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 longtitle.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 longtitle.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
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
- **ERROR: improper grid or axis definition: error in start,end,delta
-DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/t myt
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
- **ERROR: improper grid or axis definition: error in start,end,delta
-DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/T/CALENDAR=noleap myt
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY 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 t0_cdc.nc
- LISTing to file my_cdc_timeaxis.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TGREG
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY 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 revision.nc
-
-Bailing out of external function "ffta":
-	 Time axis must be a regular axis
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: command syntax: IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
-          Cannot use multiple IFs in an expression
-LIST/ORDER=X  IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
- **ERROR: command syntax: IF I LT 5 THEN I ELSE -9
-          ELSE before - is illegal
-          negative constants need to be enclosed in parentheses
-DEFINE VARIABLE A = IF I LT 5 THEN I ELSE -9
- **ERROR: variable unknown or not in data set: A1
-load a1,a2,a3
- **TMAP ERR: non-existent or not on line
-             nofile.nc
-set data nofile.nc
- **ERROR: invalid command: REPEAT/NAME requires /RANGE
-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])
- **ERROR: error in external function
-LOAD vw_fft
- 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
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TAX
-Replacing definition of axis XAX
-Replacing definition of axis ZAX
-Replacing definition of axis TAX
- LISTing to file irrxzt.nc
-Replacing definition of axis ZAX
-Replacing definition of axis ZAX2
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: invalid command: SHOW ATTRIBUTE given with no argument
-sho att/all
- **ERROR: unknown data set: d=2
-show att/all temp[d=2]
- **ERROR: attribute undefined or invalid attribute name: salt.nonsense
-          attribute nonsense not found for variable SALT
-sho att salt.nonsense
- **ERROR: invalid command: dataset not found for varname.attname .
-sho att/all .
- 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
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY 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: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
- 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 temp.pp
- *** NOTE: Changing the length  of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.some_text
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute temp.long_name
- *** NOTE: Changing the value of attribute temp.units
- *** NOTE: Changing the value of attribute temp.missing_value
- *** NOTE: Changing the value of attribute temp.missing_value
- LISTing to file a.nc
- LISTing to file a.nc
- *** NOTE: Changing the value of attribute (PSZT1).positive
- *** NOTE: Changing the type of attribute (coadsx).modulo
- *** NOTE: Changing the value of attribute (coadsx).modulo
- *** NOTE: Changing the value of attribute (TIME4).time_origin
- **ERROR: command syntax: enclose coordinate variable name in parentheses
-list coadsx.units
- **ERROR: variable unknown or not in data set: COADSX.UNITS
-list coadsx.units
- **ERROR: invalid command: Cannot change attribute for direction of axis.
-set att (COADSX81_81).axis = "Z"
- 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 temp.pp
- *** NOTE: Changing the length  of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.some_text
- *** NOTE: Changing the type of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.pp
- *** NOTE: Changing the type of attribute temp.some_text
- *** NOTE: Changing the value of attribute temp.some_text
- *** NOTE: Changing the value of attribute temp.long_name
- *** NOTE: Changing the value of attribute temp.units
- *** NOTE: Changing the type of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.pp
- 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
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- LISTing to file a.nc
-Replacing definition of axis XAX
-Replacing definition of axis YAX
-Replacing definition of axis ZAX
-Replacing definition of axis TAX
-Replacing definition of grid MYGRID
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
- LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- *** NOTE: Changing the value of attribute (COADSX).point_spacing
- *** NOTE: Changing the value of attribute (COADSY).point_spacing
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
-NetCDF: Numeric conversion not representable (OPeNDAP/netCDF Error code -60)
- data in attribute missing_value not representable in output type NC_INT
-LIST/FORMAT=CDF/file=a.nc/clobber/x=132w/k=1 temp
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
- **ERROR: unknown or invalid argument: Can SET VARIABLE/OUTTYPE=INPUT, DOUBLE, FLOAT, INT, SHORT, BYTE
-set var/outtype=char broiled
- **ERROR: unknown or invalid argument: Can SET VARIABLE/OUTTYPE=INPUT, DOUBLE, FLOAT, INT, SHORT, BYTE
-set var/outtype=garbage broiled
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute (PSXT1).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 (PSYT1).units
- 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
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis X2AX
- *** NOTE: Changing the value of attribute (z4ax).positive
- LISTing to file string4d.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute (TIME7).units
- *** NOTE: Changing the value of attribute (TIME7).units
- *** NOTE: Changing the value of attribute (TIME7).time_origin
- *** NOTE: Changing the value of attribute (TIME7).time_origin
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
-Replacing definition of axis TIME
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
-syntax error, unexpected WORD_STRING, expecting WORD_WORD
-context: Error { code = 404; message = "data/PMEL/COADS/coads_nothing.cdf"^;};
-curl error details: 
- PERMANENT data cleared from memory
- TEMPORARY 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: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
- Using every   3th vector in the X direction
- Using every   4th vector in the Y direction
- *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **TMAP ERR: non-existent or not on line
-             this_is_not_a_file.nc
-SET DAT/FORM=CDF this_is_not_a_file.nc
- **Internet Data error
-             NetCDF: Malformed or inaccessible DAP DDS (OPeNDAP/netCDF Error code -72)
-             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
-             NetCDF: I/O failure (OPeNDAP/netCDF Error code -68)
-             Data set: http://noserver/a/nofile.cdf
-SET DAT/FORM=CDF  "http://noserver/a/nofile.cdf"
- LISTing to file asc.dat
- **netCDF error
-             NetCDF: Unknown file format (OPeNDAP/netCDF Error code -51)
-             Data set: ./asc.nc
-SET DAT/FORM=CDF asc.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
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file err581_subspanx_fill_bug.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XIR
- LISTing to file xyir.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
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: illegal use of transformation:  not all dimensions present on grid
-shade sst[x=@var,k=@var]
- **ERROR: illegal use of transformation:  not all dimensions present on grid
-shade sst[t=@AVE,Z=@ave]
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 360.00 days
- LISTing to file t3file.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file 0000_a.nc
- LISTing to file subdir/a.nc
- LISTing to file subdir/0000_a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
-Replacing definition of axis TAX
- LISTing to file a.nc
- *** NOTE: Not deleted: TAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: cannot parse "units since date", date= "event"; leaving units string
- 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
- *** NOTE: Invalid I axis limits ignored: TEMP
- **ERROR: dimensions improperly specified: specified data is not a line
-           - its a 2D region: "plot/i=100/k=1 temp[x=122.5W]"
-plot/i=100/k=1 temp[x=122.5W]
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-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
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- Cached data cleared from memory
- 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
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file b.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
- 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
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file b.nc
- LISTing to file b.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: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
-Replacing definition of axis TIME9
- *** NOTE: grid  used by data set coads_climatology
- *** NOTE: Redefinition may alter apparent contents of data set
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TIME
- LISTing to file a.nc
- LISTing to file t2.nc
- LISTing to file t12.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file out.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- 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)
- **ERROR: invalid command: not a strided axis: COADSX
-cancel axis/stride COADSX
- **ERROR: invalid command: offset must be less than stride value
-set axis/stride=2/offset=4 COADSX
- **ERROR: invalid command: not a strided axis: COADSX
-cancel axis/stride COADSX
- *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
- LISTing to file d2.nc
- *** 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
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY 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 noleap.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
- *** NOTE: They will not be convertible:
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file tripolar_missing_lon.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-**ERROR in External Function add_9:
-  Dynamic linking call dlopen() returns --
-  "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/add_9.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function appende:
-  Dynamic linking call dlopen() returns --
-  "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/appende.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function avet:
-  Dynamic linking call dlopen() returns --
-  "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/avet.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function dates:
-  Dynamic linking call dlopen() returns --
-  "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/dates.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function expndi_by_z_counts:
-  Dynamic linking call dlopen() returns --
-  "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/expndi_by_z_counts.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function expndi_id_by_z_counts:
-  Dynamic linking call dlopen() returns --
-  "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/expndi_id_by_z_counts.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function factorial:
-  Dynamic linking call dlopen() returns --
-  "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/factorial.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function fft_amp:
-  Dynamic linking call dlopen() returns --
-  "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/fft_amp.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function ffta_sample:
-  Dynamic linking call dlopen() returns --
-  "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/ffta_sample.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function fft_phas:
-  Dynamic linking call dlopen() returns --
-  "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/fft_phas.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function fill_xy:
-  Dynamic linking call dlopen() returns --
-  "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/fill_xy.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function minmax:
-  Dynamic linking call dlopen() returns --
-  "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/minmax.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function pass_thru:
-  Dynamic linking call dlopen() returns --
-  "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/pass_thru.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function percent_good_t:
-  Dynamic linking call dlopen() returns --
-  "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/percent_good_t.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function storage:
-  Dynamic linking call dlopen() returns --
-  "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/storage.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function string_arg:
-  Dynamic linking call dlopen() returns --
-  "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/string_arg.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function student_t_cutoff:
-  Dynamic linking call dlopen() returns --
-  "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/student_t_cutoff.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function subtract:
-  Dynamic linking call dlopen() returns --
-  "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/subtract.so: wrong ELF class: ELFCLASS64".
-curl error details: 
- PERMANENT data cleared from memory
- TEMPORARY 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: Ignored modulo length exceeding axis length: LONGITUDE
- *** NOTE: Axis has repeated values -- micro-adjusting TIME
- *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
- *** NOTE: Valid calendars are GREGORIAN NOLEAP    JULIAN    360_DAY   ALL_LEAP
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
- *** 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"
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
- *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
- *** NOTE: They will not be convertible:
- *** NOTE: regarding ./climatological_axes.cdf ...
- *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
- *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
- *** NOTE: A dummy axis of subscripts will be used
- *** 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
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- 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
- Cached data cleared from memory
- Cached data cleared from memory
- Cached data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY 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
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XAX
-Replacing definition of axis YAX
- PERMANENT data cleared from memory
- 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
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY 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
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XAX
- LISTing to file a.nc
- LISTing to file b.nc
- LISTing to file b.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY 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
- 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
- PERMANENT data cleared from memory
- TEMPORARY 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 z1.nc
- LISTing to file z2.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TIME
-Replacing definition of axis TIME
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TIME
- LISTing to file a.nc
- LISTing to file b.nc
- LISTing to file b.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- Using every   5th vector in the X direction
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis ZAX
- **ERROR: value out of legal range: Median smoother length must be odd
-plot/trans var, var[z=@med:4]
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TIME
-Replacing definition of axis TIME
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TIME
- LISTing to file a.nc
- LISTing to file b.nc
- LISTing to file b.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Units on axis "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file 1a.dat
- LISTing to file 3a.dat
- LISTing to file 5a.dat
- LISTing to file 7a.dat
- LISTing to file 9a.dat
- LISTing to file 11a.dat
- PERMANENT data cleared from memory
- TEMPORARY 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: variable unknown or not in data set: A_REGRID[D=1,GT=B[D=2]@MOD]
-LIST a_regrid[D=1,GT=b[D=2]@MOD]
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file dat.dat
- LISTing to file a.nc
- LISTing to file unf.dat
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file lonlat.dat
- LISTing to file lonlat.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
- LISTing to file a.nc
- 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
-Replacing definition of axis TAX
-Replacing definition of grid GG
- 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
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
-Replacing definition of axis XAX
-Replacing definition of axis YAX
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
-Replacing definition of axis ZAX
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
-Replacing definition of axis TAX
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
-Replacing definition of axis XAX
-Replacing definition of axis YAX
-Replacing definition of axis ZAX
-Replacing definition of axis TAX
- *** NOTE: @NBD 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
- *** 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
- PERMANENT data cleared from memory
- TEMPORARY 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 X1
-Replacing definition of axis Y1
-Replacing definition of grid G1
- 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
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file test0a.cdf
- LISTing to file test0b.cdf
- LISTing to file test0c.cdf
- LISTing to file test0d.cdf
- LISTing to file test0e.cdf
- LISTing to file test0f.cdf
- LISTing to file test0g.cdf
- LISTing to file test0h.cdf
- LISTing to file test0i.cdf
- LISTing to file test0j.cdf
- LISTing to file test0k.cdf
- LISTing to file test0l.cdf
- LISTing to file test0m.cdf
- LISTing to file test0n.cdf
- LISTing to file test0o.cdf
- LISTing to file test0p.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
- *** NOTE: Write the data initially with the /BOUNDS qualifier
- LISTing to file test2.cdf
- LISTing to file FL.cdf
- LISTing to file FTLON.cdf
- **ERROR: invalid command: /CLOBBER not specified and file exists: test_abs.cdf
-list/format=cdf/keep_axnames/l=1:10/file=test_abs.cdf l
- LISTing to file test_abs.cdf
- **TMAP ERR: Requested data range is outside of data set limits
-             inconsistent I axis length for IL
-list/format=cdf/keep_axnames/i=5:15/l=5:10/append/file=test_abs.cdf il
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- **TMAP ERR: attempt to redefine line
-             # of dims in variable IJL2 is inconsist. w/ CDF file
-list/format=cdf/keep_axnames/append/file=test_abs.cdf ijl2
- **ERROR: variable unknown or not in data set: IJKL[K=@AVE]
-list/format=cdf/keep_axnames/append/file=test_abs.cdf ijkl[k=@ave]
- LISTing to file test_abs.cdf
- **TMAP ERR: error in line definition
-             disordered output coordinate value:         363  Axis: TCENTURY
-list/format=cdf/keep_axnames/l=13/append/file=test_abs.cdf l1
- LISTing to file FI.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
- **TMAP ERR: attempt to redefine line
-             axis PSXT doesnt match CDF file
-list/format=cdf/keep_axnames/append/file=test_fil.cdf ijk
- LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
- **TMAP ERR: attempt to redefine line
-             axis PSXT doesnt match CDF file
-list/format=cdf/keep_axnames/append/file=test_fil.cdf ikl
- LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
- **TMAP ERR: attempt to redefine line
-             axis PSXT doesnt match CDF file
-list/format=cdf/keep_axnames/append/file=test_fil.cdf ijl
- LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
- **TMAP ERR: attempt to redefine line
-             axis PSYT doesnt match CDF file
-list/format=cdf/keep_axnames/append/file=test_fil.cdf jkl
- LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
- **TMAP ERR: attempt to redefine line
-             axis PSXU doesnt match CDF file
-list/format=cdf/keep_axnames/append/file=test_fil.cdf ijkl
- LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
- **TMAP ERR: attempt to redefine line
-             axis PSXT doesnt match CDF file
-list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=1:50/l=2:3 ijl
- LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
- **TMAP ERR: attempt to redefine line
-             axis PSXT doesnt match CDF file
-list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=51:100/l=2:3 ijl
- LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
- **TMAP ERR: attempt to redefine line
-             axis PSXU doesnt match CDF file
-list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=30:40/k=5/l=1:3 ijkl
- LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
- **TMAP ERR: attempt to redefine line
-             axis PSZT doesnt match CDF file
-list/format=cdf/keep_axnames/append/file=test_fil.cdf iavejkl
- LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
- **TMAP ERR: attempt to redefine line
-             axis PSXU doesnt match CDF file
-list/format=cdf/keep_axnames/append/file=test_fil.cdf ijavekl
- LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
- **TMAP ERR: attempt to redefine line
-             axis PSXU doesnt match CDF file
-list/format=cdf/keep_axnames/append/file=test_fil.cdf ijkavel
- LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
- **TMAP ERR: attempt to redefine line
-             axis PSXU doesnt match CDF file
-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
- 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
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TAX
-Replacing definition of grid TGRID
- PERMANENT data cleared from memory
- TEMPORARY 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
-Replacing definition of axis TSEC
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis CAXIS
- *** NOTE: grid  used by data set grads_bug_file
- *** NOTE: Redefinition may alter apparent contents of data set
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- 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
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
-Replacing definition of axis TAX
- *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
- *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis ZAXLEVITR
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file xz.nc
- 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
- 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
- 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 t_bug.nc
-Replacing definition of axis T_AXIS
- LISTing to file t_bug.nc
-NetCDF: Variable not found (OPeNDAP/netCDF Error code -49)
- T_AXIS_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/FILE=t_bug.nc/APPEND var
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: invalid command: offset must be greater than or equal to zero
-SET AXIS/STRIDE=12/OFFSET=-1 truemonth
- **ERROR: invalid command: stride must be greater than zero
-SET AXIS/STRIDE=-1/OFFSET=1 truemonth
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY 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 TAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis YAX
-Replacing definition of grid GG123456789012345678902
- **ERROR: unknown defining grid: G=NO_EXIST12345678901234567890
-load/x=160e/y=5s temp[d=2,k=1,g=no_exist12345678901234567890]
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute sst.history
- PERMANENT data cleared from memory
- TEMPORARY 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 "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
- LISTing to file mypack.nc
- *** NOTE: LON1_15: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: LAT1800_1800: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: ENS: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: Units on axis "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY 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 TAX
- 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
- LISTing to file list_of_numbers.dat
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Re-defining viewport V1
-Re-defining viewport V1
-Re-defining viewport V2
-Re-defining viewport V3
-Re-defining viewport V4
-Re-defining viewport V5
-Re-defining viewport V6
-Re-defining viewport V7
-Re-defining viewport V8
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file dummy.dat
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- Restoring default chunk cache settings
- Restoring default chunk cache settings
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file nc4_deflate4.nc
- *** NOTE: NetCDF Classic style cannot set compression, ignoring /DEFLATE
- *** NOTE: NetCDF Classic style cannot set chunking, ignoring /*CHUNK
- LISTing to file nc4_nodeflate3.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file nc4_deflate4bigchunk.nc
- LISTing to file nc4_nodeflate3.nc
- LISTing to file nc4_deflate4_xyt.nc
- LISTing to file nc4_deflate4_defaultchunk.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file nc4_inttemp_classic.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
- LISTing to file nc4_inttemp_set_list_deflate_chunk.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
- LISTing to file nc4_inttemp_shuffle_set_list_deflate_chunk.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
- LISTing to file nc4_inttemp_set_classic.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
- LISTing to file nc4_deflate4_t1.nc
- **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
- **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
- 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: Axis is in use by grid G10X5
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY 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 MYGRID
- *** NOTE: Axis reset to be regular (evenly-spaced): MYX
- *** NOTE: Axis is already regular: MYX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Axis reset to be regular (evenly-spaced): MYX1
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- Use the GO command to name a file of FERRET commands to be executed.
-     e.g.   yes? GO filename
- 
- Use "GO/HELP filename" to read documentation in  the file to be executed.
- Use the GO command to name a file of FERRET commands to be executed.
-     e.g.   yes? GO filename
- 
- Use "GO/HELP filename" to read documentation in  the file to be executed.
- Use the GO command to name a file of FERRET commands to be executed.
-     e.g.   yes? GO filename
- 
- Use "GO/HELP filename" to read documentation in  the file to be executed.
- Use the GO command to name a file of FERRET commands to be executed.
-     e.g.   yes? GO filename
- 
- Use "GO/HELP filename" to read documentation in  the file to be executed.
- Use the GO command to name a file of FERRET commands to be executed.
-     e.g.   yes? GO filename
- 
- Use "GO/HELP filename" to read documentation in  the file to be executed.
- Use the GO command to name a file of FERRET commands to be executed.
-     e.g.   yes? GO filename
- 
- Use "GO/HELP filename" to read documentation in  the file to be executed.
- *** NOTE: No active redirects to cancel
- Use the GO command to name a file of FERRET commands to be executed.
-     e.g.   yes? GO filename
- 
- Use "GO/HELP filename" to read documentation in  the file to be executed.
- Use the GO command to name a file of FERRET commands to be executed.
-     e.g.   yes? GO filename
- 
- Use "GO/HELP filename" to read documentation in  the file to be executed.
- *** NOTE: Axis is already regular: MYAXIS
- **ERROR: variable unknown or not in data set: GARBAGE
-show grid garbage
- Use the GO command to name a file of FERRET commands to be executed.
-     e.g.   yes? GO filename
- 
- Use "GO/HELP filename" to read documentation in  the file to be executed.
- *** NOTE: stderr is not redirected
- Use the GO command to name a file of FERRET commands to be executed.
-     e.g.   yes? GO filename
- 
- Use "GO/HELP filename" to read documentation in  the file to be executed.
- Use the GO command to name a file of FERRET commands to be executed.
-     e.g.   yes? GO filename
- 
- Use "GO/HELP filename" to read documentation in  the file to be executed.
- Use the GO command to name a file of FERRET commands to be executed.
-     e.g.   yes? GO filename
- 
- Use "GO/HELP filename" to read documentation in  the file to be executed.
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- Using every   8th vector in the X direction
- Using every   7th vector in the Y direction
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY 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 TAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XAX
-Replacing definition of axis YAX
-Replacing definition of axis ZAX
-Replacing definition of axis YAX
-Replacing definition of axis YAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- 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
- *** NOTE: 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.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb [...]
- *** NOTE: exceeds expected length. Maximum characters: 2048
- LISTing to file aa.nc
- 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
- **ERROR: value out of legal range: illegal mode argument. Negative or > 1.e+9,
-set mode desperate 1234567890123456789
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file g.nc
-Replacing definition of axis YAX_DUP_AXNAMES
- LISTing to file h.nc
- LISTing to file gh.nc
- LISTing to file justh.nc
- LISTing to file justg.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
- LISTing to file a.nc
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY 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
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: error in external function
-list/L=15:20 tax_year(t[gt=tvar],tvar)
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file cc.nc
- LISTing to file c1.nc
- TEMPORARY data cleared from memory
- LISTing to file c2.nc
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis lev
- 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
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- 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
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XAX
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.030, to avoid running off page.
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: command syntax: illegal name, matches an operator: AND
-DEFINE VARIABLE AND = 5
- **ERROR: command syntax: illegal name, matches an operator: OR
-DEFINE VARIABLE OR = 5
- **ERROR: command syntax: illegal name, matches an operator: GT
-DEFINE VARIABLE GT = 5
- **ERROR: command syntax: illegal name, matches an operator: GE
-DEFINE VARIABLE GE = 5
- **ERROR: command syntax: illegal name, matches an operator: LT
-DEFINE VARIABLE LT = 5
- **ERROR: command syntax: illegal name, matches an operator: LE
-DEFINE VARIABLE LE = 5
- **ERROR: command syntax: illegal name, matches an operator: EQ
-DEFINE VARIABLE EQ = 5
- **ERROR: command syntax: illegal name, matches an operator: NE
-DEFINE VARIABLE NE = 5
- **ERROR: command syntax: illegal name, matches an operator: IF
-DEFINE VARIABLE IF  = 5
- **ERROR: command syntax: illegal name, matches an operator: ELSE
-DEFINE VARIABLE ELSE = 5
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a1.nc
- LISTing to file a2.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: command syntax: IFV I GT 3 THEN ( IFV I LT 5 THEN I ELSE -9 ) ELSE .333
-          Cannot use multiple IFs in an expression
-LIST/ORDER=X  IFV I GT 3 THEN ( IFV I LT 5 THEN I ELSE -9 ) ELSE .333
- **ERROR: command syntax: ifv I LT 5 THEN I ELSE -9
-          ELSE before - is illegal
-          negative constants need to be enclosed in parentheses
-DEFINE VARIABLE A = ifv I LT 5 THEN I ELSE -9
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- TEMPORARY data cleared from memory
- TEMPORARY data cleared from memory
- TEMPORARY data cleared from memory
- TEMPORARY data cleared from memory
- TEMPORARY data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis ZAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XAX
- LISTing to file a.nc
-Replacing definition of axis YAX
- LISTing to file a.nc
-Replacing definition of axis TAXIS
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY 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 ...
-Replacing definition of axis TNEW
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-
-Bailing out of external function "eofsvd_stat":
-	There are no spatial locations having complete time series.
-
-Bailing out of external function "eofsvd_space":
-	There are no spatial locations having complete time series.
-
-Bailing out of external function "eofsvd_tfunc":
-	There are no spatial locations having complete time series.
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis YAXIS
-Replacing definition of axis TAXIS
-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)
- PERMANENT data cleared from memory
- TEMPORARY 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 EVEN
-Replacing definition of grid G1
-Replacing definition of grid G2
-Replacing definition of grid G3
-Replacing definition of grid G4
-Replacing definition of grid G13
-Replacing definition of grid G14
-Replacing definition of grid G23
-Replacing definition of grid G33
-Replacing definition of grid G234
-Replacing definition of grid G134
-Replacing definition of grid G124
-Replacing definition of grid G123
-Replacing definition of grid G1234
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XFINE
-Replacing definition of axis XCOARSE
-Replacing definition of axis YFINE
-Replacing definition of axis YCOARSE
-Replacing definition of axis XFINE
-Replacing definition of axis XCOARSE
-Replacing definition of axis YFINE
-Replacing definition of axis YCOARSE
-Replacing definition of grid G24
-Replacing definition of grid G48
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: command syntax: IF _m GT 3 THEN ( IF _m LT 5 THEN _m ELSE -9 ) ELSE .333
-          Cannot use multiple IFs in an expression
-LIST/order=e  IF _m GT 3 THEN ( IF _m LT 5 THEN _m ELSE -9 ) ELSE .333
- **ERROR: command syntax: IF _m LT 5 THEN _m ELSE -9
-          ELSE before - is illegal
-          negative constants need to be enclosed in parentheses
-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
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-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
- **ERROR: error defining aggregate dataset: Aggregate dataset not defined
-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
- **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
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY 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: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- 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
- TEMPORARY 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
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file mytype.nc
- LISTing to file mytype.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
- LISTing to file mytype.nc
- LISTing to file mytype.nc
- LISTing to file mytype.nc
- LISTing to file mytype.nc
- LISTing to file mytype.nc
- LISTing to file mytype.nc
- LISTing to file mytype.nc
- LISTing to file mytype.nc
- LISTing to file mytype.nc
- LISTing to file mytype.nc
- LISTing to file mytype.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 mytype.nc
- LISTing to file mytype.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
- LISTing to file mytype.nc
- LISTing to file mytype.nc
- LISTing to file mytype.nc
- LISTing to file mytype.nc
- LISTing to file mytype.nc
-NetCDF: Numeric conversion not representable (OPeNDAP/netCDF Error code -60)
- failure writing to CDF output file
-LIST/FORMAT=CDF/L=32875000:32875201/clobber/file=mytype.nc tt
- LISTing to file mytype.nc
-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
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: improper grid or axis definition: data for DEFINE AXIS/FROM_VARIABLE is not monotonic at index 12
-define axis/t/units=days tax = tvar
- PERMANENT data cleared from memory
- TEMPORARY 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
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY 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
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file aa.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file aa.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
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- LISTing to file aa.nc
- LISTing to file aa.nc
- LISTing to file aa.nc
- LISTing to file aa.nc
- LISTing to file aa.nc
-NetCDF: Numeric conversion not representable (OPeNDAP/netCDF Error code -60)
- data in attribute missing_value not representable in output type NC_INT
-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
- 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
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: command syntax: .HELLO
-list .hello
- **ERROR: variable unknown or not in data set: A.UNITS
- 
-list a.units
- **ERROR: variable unknown or not in data set: A.UNITS
-list a.units
- **ERROR: attribute undefined or invalid attribute name: ..HISTORY
-          attribute HISTORY not found for dataset
-list ..history
- **ERROR: variable unknown or not in data set: ..HISTORY
-list ..history
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis AXI
-Replacing definition of axis AXI_COARSE
-Replacing definition of axis AXI
-Replacing definition of axis AXI_COARSE
-Replacing definition of axis AXI
-Replacing definition of axis AXI_COARSE
-Replacing definition of axis AXI
-Replacing definition of axis AXI_COARSE
-Replacing definition of axis AXI
-Replacing definition of axis AXI_COARSE
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: unrepairable repeated axis coords on axis trdim at subscript 2
- *** NOTE: A dummy axis of subscripts will be used
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file sst_new.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 ZAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file append_to_this.nc
-ncks: WARNING Overwriting global attribute history
-ncks: WARNING Overwriting global attribute Conventions
-ncks: WARNING Overwriting attribute point_spacing for output variable ZAXIS_ORIG
-ncks: WARNING Overwriting attribute axis for output variable ZAXIS_ORIG
-ncks: WARNING Overwriting attribute standard_name for output variable ZAXIS_ORIG
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XIRREG
- LISTing to file a.nc
- LISTing to file a.nc
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
- LISTing to file a.nc
- LISTing to file a.nc
- 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
- *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
- *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
- **ERROR: command syntax: COLOR
-          /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)
- 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
- **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
-**ERROR in External Function add_9:
-  Dynamic linking call dlopen() returns --
-  "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/add_9.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function avet:
-  Dynamic linking call dlopen() returns --
-  "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/avet.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function pass_thru:
-  Dynamic linking call dlopen() returns --
-  "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/pass_thru.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function storage:
-  Dynamic linking call dlopen() returns --
-  "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/storage.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function add_9:
-  Dynamic linking call dlopen() returns --
-  "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/add_9.so: wrong ELF class: ELFCLASS64".
-**ERROR Ferret crash; signal = 11
- 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 Tue Nov 12 15:14:02 PST 2013
diff --git a/bench/ansley_official.rhel6-32_log b/bench/ansley_official.rhel6-32_log
deleted file mode 100644
index ea05e35..0000000
--- a/bench/ansley_official.rhel6-32_log
+++ /dev/null
@@ -1,78481 +0,0 @@
-Procedure run_all to run all FERRET benchmarks
-Running FERRET version /home/users/ansley/build/v685Release/FERRET/fer/ferret_c
--rwxr-xr-x 1 ansley tmap 42809389 Nov 12 15:10 /home/users/ansley/build/v685Release/FERRET/fer/ferret_c
-Using external functions from /home/users/ansley/build/v685Release/FERRET/external_functions/ext_func
-Running the tests of external functions y
-Benchmark run by ansley
-Note: v6.85 on flat 32-bit
-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/tmap/ferret/linux/fer_dsets
-FER_DESCR=.
-FER_DIR=.
-FER_DSETS=.
-FER_EXTERNAL_FUNCTIONS=/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func
-FER_FONTS=/home/users/tmap/ferret/rhel6-x86_64-linux/ppl/fonts
-FER_GO=. /home/users/tmap/ferret/rhel6-x86_64-linux/go /home/users/tmap/ferret/rhel6-x86_64-linux/examples /home/users/tmap/ferret/rhel6-x86_64-linux/contrib /home/users/tmap/ferret/tmap_go
-FER_GRIDS=.
-FER_LIBS=/home/users/tmap/ferret/rhel6-x86_64-linux/lib
-FER_LINK_DIR=/home/users/tmap/ferret_link/linux
-FER_PALETTE=. /home/users/tmap/ferret/rhel6-x86_64-linux/ppl
-FER_WEB_BROWSER=firefox
-PWD=/home/users/ansley/build/v685Release/FERRET/bench
-Beginning at Tue Nov 12 15:12:09 PST 2013
-! BN500_ALL.JNL
-! - run all the benchmark tests
-! - ordered (more or less) from least to most complex
-! V2.30: uses BN230_syntax instead of BN200_syntax
-!        added BN230_cdf
-!	 added BN230_regrid_transforms 8/92
-! V3.00: uses BN300_syntax instead of BN230_syntax
-! 	 added bn300_dollar 4/93
-! V3.01: adds bn301_axis_limits and ppl echo ON
-! V3.11: adds bn311_ez_order (/ORDER and /FORMAT=STREAM)
-! V3.12: adds bn312_user (tests SAMPLE and OBJECTIVE)
-! V3.13: for AIX testing: removed mem_mgmt & ignore errors during bn200_output
-! V3.20: to test SAVE/HEADING=enhanced (new BN320_cdf)
-! V4.00: added "*" tests to bnxxx_dollar and added new test bn400_grave
-!    6/95 - added bn401_symbols
-!    7/95 - modified bn*_syntax: bn401_syntax has var1[G=var2[d=dset]]
-!    8/95 - modified bn*_ez: bn401_ez tests FORM=unf
-! V4.20:
-!    9/95 - added test of LET/D and LIST/FORMAT=STREAM
-!	  - slightly modified syntax in bn420_regrid_transforms
-!	  - added bn420_dynamic_grids and bn420_comma_delimited
-!	  - added 2 small additional tests in bn420_grave
-!	  - added a small syntax test in bn420_syntax
-!	  - tested for commas inside args in bn420_dollar
-!	  - tested for enclosing parens in bn420_symbol
-! V4.30:
-!   5/96  - added IF tests
-!   9/96  - added MC data tests *kob*
-! V4.50:
-!   1/97  - eliminated MODE POLISH
-!	    (bn301_expressions.jnl -> bn450_expressions.jnl)
-!   8/97  - bn430_if -> bn450_if: added symbol substitution test
-!10/97*kob*- cancel metafile creation after bn420_syntax and turn it
-!	    on only before bn450_plot (upgraded from bn320_plot)
-!	   - also add test for negative time steps (bn450_negative_t)
-!	   - also add test for cuvilinear stuff
-!          - also added steve's "exact match" regridding
-!11/97 *kob* - added bn450_gc_functions
-! V4.91:
-!    1/98  - corrected bug in this script -- need to cancel viewports after
-!	     bn312_user or the plots which follow come up in a small viewport
-!    2/98 *kob* - moved bn450_curv.jnl up to right after bn450_plot.jnl in
-!		  order to have those metafiles saves as well for checking
-!		  also renamed it to bn491_curv.jnl and added some minor
-!		  cosmetic changes
-!    2/98 *kob* - add in bn491_bug_fixes.jnl
-!    4/98 *sh*  - replaced bn420_dynamic_grids with bn491_... (minor chg)
-! V5.00:
-!   2/99 *sh* -- bn420_regrid_transform ==> bn500_regrid_transform
-!   3/1/99 *kob* - removed bn200_budget from distributable benchmarks
-!   5/99 *kob* - added V50 bench files
-! V5.10:
-!  10/99 *sh* -- added bn_sample.jnl to test SAMPLEI,J,K,L
-!			bn_non_COARDS_netCDF.jnl
-!			bn_cache_hits.jnl, .sub
-!			bn_strides_revs_perms.jnl
-!			bn_regrid_to_user.jnl
-! V5.33:
-! 6/01 *sh* -- added bn_modulo_strides.jnl
-! 6/01 *acm*  -- add	bn_calendar
-!			bn_dash_dot
-!			bn_flowlines
-! 6/08 *kob*  -- add	bn_internal_external_functions
-!
-! V5.40:
-! 9/01 *sh* -- added bn_axis_viewports
-!           -- added bn_strings
-! 10/01 *acm* -- added bn_axcontrol
-!             -- add EOF's and cmprsi_by to bn_internal_external_functions.jnl
-! 11/01 *sh* -- added bn_delimited_read
-!
-! V5.41:
-! 3/02 *acm*-- Add bn540_bug_fixes.jnl
-!
-! V5.50:
-! 11/02 *sh*-- Add bn_subspan_modulo.jnl
-!
-! V5.52
-!  5/03 *acm* add bn_multi_line_labels.jnl, bn552_bug_fixes.jnl,
-!             bn_set_var_scale_off.jnl, bn_longvarnames.jnl, bn_shakey.jnl
-! v5.53
-!  9/03 *kob* added bn_test_nan
- 
-! v5.81
-!  9/05 *acm* remove bn_curv_shade_mod.jnl which was duplicated by bn_curv_mod.jnl
- 
-!  V6.00
-!  9/06 *acm* new scripts  bn_tab_comma_multivar.jnl, bn_element_functions.jnl,
-!             bn_long_revision_num.jnl, bn_window_title.jnl, bn_last_error.jnl,
-!             bn_deg_min.jnl, bn_dp_readscale.jnl, bn_bounds_defineax.jnl,
-!              bn_attributes.jnl, n600_bug_fixes.jnl
-!
-! 9/06 *acm* New bn601_bug_fixes for version 6.02
- 
-! 6/06  *acm* add bn_transforms.jnl -- there was a benchmark testing regridding
-!             transforms but not the others: smoothers, fillers, etc.
-! 1/12  *acm* add bn_variance.jnl -- testing @VAR transform
- 
-! 10/06 *acm* Remove tests of nco funcions: we dont want to require them to be installed
-!             on a system in order for it to pass the benchmarks.
-!
-! 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
- 
-! Include this statement to compare the outupt of 6D Ferret with
-! previous 4D benchmark logs.
-! cancel mode 6d_lab
- 
-GO bn_reset
-cancel mode verify
-GO bn_syntax
-! bn401_syntax.JNL
-! - test syntax interpretation of Program FERRET
-! - major changes for FERRET ver 2.00 5/90
-! - changed mode REMOTE to mode STUPID - REMOTE removed in V2.30
-! - added semicolon-separated command group processing in V3.00 2/93
-! - added mode journal and mode ppllist tests
-! - extended mode journal, ppllist, and metafile tests to include paths
-! for V4.01 added var1[G=var2[d=dset]] (nested brackets) syntax
-! for V4.20 added blanks surrounding colons
-!	and tests of "escapes" using back slashes
-! for V531 test continuation lines and long input lines
- 
-! SET - SHOW - CANCEL DATA
-USE gtbc011
-SHOW DATA/BRIEF
-     currently SET data sets:
-    1> ./gtbc011.cdf  (default)
-SHOW DATA
-     currently SET data sets:
-    1> ./gtbc011.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
- 
-SHOW DATA/VARIABLES
-     currently SET data sets:
-    1> ./gtbc011.cdf  (default)
- 
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
-             deg. C on grid PS3DT1 with -1.E+34 for missing data
-             X=161W:158W  Y=30S:50N  Z=0:4149  
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
-             frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
-             X=161W:159W  Y=30S:50N  Z=0:4149  
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
-             cm/sec on grid PS3DU1 with -1.E+34 for missing data
-             X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
-             cm/sec on grid PS3DU1 with -1.E+34 for missing data
-             X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
-             cm/sec on grid PS3DW1 with -1.E+34 for missing data
-             X=161W:159W  Y=30S:50N  Z=5:4149  
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
-             dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
-             X=161.5W:158.5W  Y=28.8S:51.4N  
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
-             dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
-             X=161.5W:158.5W  Y=28.8S:51.4N  
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
-             cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
-             X=161.5W:156.5W  Y=28.8S:51.4N  
- 
-  time range: 15-MAR-1983 10:00 to 15-MAR-1983 12:00
- 
-SHOW DATA/FILES
-     currently SET data sets:
-    1> ./gtbc011.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
- 
-SHOW DATA/FULL
-     currently SET data sets:
-    1> ./gtbc011.cdf  (default)
- 
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
-             deg. C on grid PS3DT1 with -1.E+34 for missing data
-             X=161W:158W  Y=30S:50N  Z=0:4149  
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
-             frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
-             X=161W:159W  Y=30S:50N  Z=0:4149  
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
-             cm/sec on grid PS3DU1 with -1.E+34 for missing data
-             X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
-             cm/sec on grid PS3DU1 with -1.E+34 for missing data
-             X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
-             cm/sec on grid PS3DW1 with -1.E+34 for missing data
-             X=161W:159W  Y=30S:50N  Z=5:4149  
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
-             dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
-             X=161.5W:158.5W  Y=28.8S:51.4N  
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
-             dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
-             X=161.5W:158.5W  Y=28.8S:51.4N  
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
-             cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
-             X=161.5W:156.5W  Y=28.8S:51.4N  
- 
-  time range: 15-MAR-1983 10:00 to 15-MAR-1983 12:00
- 
-CANCEL DATA 1
-SHOW DATA
-     currently SET data sets:
-USE gtbc011
-USE gt4d011
-SHOW DATA/BRIEF
-     currently SET data sets:
-    1> ./gtbc011.cdf
-    2> ./gt4d011.cdf  (default)
-SHOW DATA/BRIEF gtbc011
-     currently SET data sets:
-    1> ./gtbc011.cdf
-! ... save and restore data set
-SET DATA 1
-SET DATA/SAVE
-SHOW DATA/BRIEF
-     currently SET data sets:
-    1> ./gtbc011.cdf  (default)
-    2> ./gt4d011.cdf
-SET DATA 2
-SHOW DATA/BRIEF
-     currently SET data sets:
-    1> ./gtbc011.cdf
-    2> ./gt4d011.cdf  (default)
-SET DATA/RESTORE
-CANCEL DATA/ALL
-! ... EZ data sets
-FILE snoopy.dat
-SHOW DATA/FULL
-     currently SET data sets:
-    1> ./snoopy.dat  (default)
- 
- name     title                             I         J         K         L         M         N
- V1       V1                               1:20480   ...       ...       ...       ...       ...
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20480.5  
- 
- /FORMAT = FREE
- /SKIP = 0
- /COLUMNS = 1
-FILE/TITLE="quick and dirty" snoopy.dat
-SHOW DATA
-     currently SET data sets:
-    1> ./snoopy.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:20480   ...       ...       ...       ...       ...
- 
-SET MODE IGNORE_ERROR
-SET DATA/EZ/VAR="P,Q" 1
-FILE/TITLE="quick and dirty"/VAR="P,Q"/COL=4/GRID=ABSTRACT/FORM=UNF/SKIP=2 snoopy.dat
-SET MODE/LAST IGNORE_ERROR
-CANCEL DATA 1
-FILE/TITLE="quick and dirty"/VAR="P,Q"/COL=4/GRID=ABSTRACT/FORM=UNF/SKIP=2 snoopy.dat
-SET VARIABLE/TITLE="my P variable" P
-SHOW DATA/FULL
-     currently SET data sets:
-    1> ./snoopy.dat  (default)
-     quick and dirty
- name     title                             I         J         K         L         M         N
- P        my P variable                   1:99999999  1:99999999  1:99999999  1:99999999  1:99999999  1:99999999
-               on grid ABSTRACT with -1.E+34 for missing data
-             X=0.5:1.E+08  Y=0.5:1.E+08  Z=0.5:1.E+08  E=0.5:1.E+08  F=0.5:1
- Q        Q                               1:99999999  1:99999999  1:99999999  1:99999999  1:99999999  1:99999999
-               on grid ABSTRACT with -1.E+34 for missing data
-             X=0.5:1.E+08  Y=0.5:1.E+08  Z=0.5:1.E+08  E=0.5:1.E+08  F=0.5:1
- 
- /FORMAT = UNF
- /SKIP = 2
- /COLUMNS = 4
- 
-! SET - SHOW - CANCEL - DEFINE REGION
-SHOW REGION
-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
-SET REGION/I=101:105/J=46:48/Z=0/L=1
-SHOW REGION
-default region:
-        I=101:105
-        J=46:48
-        Z=0
-        L=1
-        E/M is unspecified
-        F/N is unspecified
-DEFINE REGION SAVE
-CANCEL REGION
-SHOW REGION
-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
-DEFINE REGION/X=130E:70W/Y=28.9S:48.6N W	! re-define to default
-SET REGION/@W
-SHOW REGION
-default region:
-        X=130:290
-        Y=-28.9:48.6
-        Z/K is unspecified
-        T/L is unspecified
-        E/M is unspecified
-        F/N is unspecified
-SHOW REGION SAVE
-region SAVE
-        I=101:105
-        J=46:48
-        Z=0
-        L=1
-        E/M is unspecified
-        F/N is unspecified
-SHOW REGION/ALL
-default region:
-        X=130:290
-        Y=-28.9:48.6
-        Z/K is unspecified
-        T/L is unspecified
-        E/M is unspecified
-        F/N is unspecified
-region SAVE
-        I=101:105
-        J=46:48
-        Z=0
-        L=1
-        E/M is unspecified
-        F/N is unspecified
-region W
-        X=130:290
-        Y=-28.9:48.6
-        Z/K is unspecified
-        T/L is unspecified
-        E/M is unspecified
-        F/N is unspecified
-SET REGION SAVE
-SHOW REGION
-default region:
-        I=101:105
-        J=46:48
-        Z=0
-        L=1
-        E/M is unspecified
-        F/N is unspecified
-! delta regions
-CANCEL REGION
-SET REGION/L=1
-SET REGION/DL=1:3
-SHOW REGION
-default region:
-        X/I is unspecified
-        Y/J is unspecified
-        Z/K is unspecified
-        L=2:4
-        E/M is unspecified
-        F/N is unspecified
-DEFINE REGION/dX=5 W
-SHOW REGION W
-region W
-        X=135:295
-        Y=-28.9:48.6
-        Z/K is unspecified
-        T/L is unspecified
-        E/M is unspecified
-        F/N is unspecified
- 
-! SET - SHOW - CANCEL  MODE
-SHOW MODES
-      MODE            STATE        ARGUMENT
-      DIAGNOSTIC    CANCELLED           99
-      VERIFY           SET         DEFAULT
-      INTERPOLATE   CANCELLED
-      IGNORE_ERROR  CANCELLED
-      STUPID        CANCELLED
-      JOURNAL          SET         ferret.jnl
-      LONG_LABEL       SET               1
-      LATIT_LABEL      SET               1
-      DEPTH_LABEL      SET              -4
-      CALENDAR         SET         minutes
-      6D_LAB           SET
-      ASCII_FONT       SET
-      SEGMENT          SET
-      WAIT          CANCELLED
-      DESPERATE     CANCELLED      2560000
-      GKS              SET
-      REFRESH          SET
-      METAFILE      CANCELLED      metafile.plt
-      PPLLIST       CANCELLED      ppllist.out
-      GUI           CANCELLED
-      LOGO             SET
-      LABELS           SET
-      GRATICULE     CANCELLED
-      LINECOLORS       SET               6
-      UPCASE_OUTPU     SET
-      NLEVELS          SET              30
-      NODATA_LAB       SET
-      shrink_ylab   CANCELLED
-SET MODE IGNORE_ERROR
-SHOW MODES
-      MODE            STATE        ARGUMENT
-      DIAGNOSTIC    CANCELLED           99
-      VERIFY           SET         DEFAULT
-      INTERPOLATE   CANCELLED
-      IGNORE_ERROR     SET
-      STUPID        CANCELLED
-      JOURNAL          SET         ferret.jnl
-      LONG_LABEL       SET               1
-      LATIT_LABEL      SET               1
-      DEPTH_LABEL      SET              -4
-      CALENDAR         SET         minutes
-      6D_LAB           SET
-      ASCII_FONT       SET
-      SEGMENT          SET
-      WAIT          CANCELLED
-      DESPERATE     CANCELLED      2560000
-      GKS              SET
-      REFRESH          SET
-      METAFILE      CANCELLED      metafile.plt
-      PPLLIST       CANCELLED      ppllist.out
-      GUI           CANCELLED
-      LOGO             SET
-      LABELS           SET
-      GRATICULE     CANCELLED
-      LINECOLORS       SET               6
-      UPCASE_OUTPU     SET
-      NLEVELS          SET              30
-      NODATA_LAB       SET
-      shrink_ylab   CANCELLED
-CANCEL MODE IGNORE_ERROR
-SHOW MODES
-      MODE            STATE        ARGUMENT
-      DIAGNOSTIC    CANCELLED           99
-      VERIFY           SET         DEFAULT
-      INTERPOLATE   CANCELLED
-      IGNORE_ERROR  CANCELLED
-      STUPID        CANCELLED
-      JOURNAL          SET         ferret.jnl
-      LONG_LABEL       SET               1
-      LATIT_LABEL      SET               1
-      DEPTH_LABEL      SET              -4
-      CALENDAR         SET         minutes
-      6D_LAB           SET
-      ASCII_FONT       SET
-      SEGMENT          SET
-      WAIT          CANCELLED
-      DESPERATE     CANCELLED      2560000
-      GKS              SET
-      REFRESH          SET
-      METAFILE      CANCELLED      metafile.plt
-      PPLLIST       CANCELLED      ppllist.out
-      GUI           CANCELLED
-      LOGO             SET
-      LABELS           SET
-      GRATICULE     CANCELLED
-      LINECOLORS       SET               6
-      UPCASE_OUTPU     SET
-      NLEVELS          SET              30
-      NODATA_LAB       SET
-      shrink_ylab   CANCELLED
-SHOW MODE STUPID
-      MODE            STATE        ARGUMENT
-      STUPID        CANCELLED
-SET MODE STUPID
-SHOW MODE STUPID
-      MODE            STATE        ARGUMENT
-      STUPID           SET
-SET MODE/LAST STUPID
-SHOW MODE STUPID
-      MODE            STATE        ARGUMENT
-      STUPID        CANCELLED
- 
-! new modes 5/93
-set mode journal newjournal.jnl
-show mode journal
-      MODE            STATE        ARGUMENT
-      JOURNAL          SET         newjournal.jnl
-set mode journal ferret.jnl
-ppl list plot
-         WIDTH=   10.20  HEIGHT=    8.80  TKTYPE= 4010  BAUD=  110
-         WINDOW= ON   BOX= OFF  CROSS= 0  PLTYPE=  3
-         PLOT MODE=   A
-         PLOT FILE= metafile.plt                                                                                                                                                                                                                                                                                                                                                                                                                                                                             [...]
-set mode ppllist:ppllist.out
-show mode ppllist
-      MODE            STATE        ARGUMENT
-      PPLLIST          SET         ppllist.out
-ppl list plot
-ppl listsym
-cancel mode ppllist
-ppl list plot
-         WIDTH=   10.20  HEIGHT=    8.80  TKTYPE= 4010  BAUD=  110
-         WINDOW= ON   BOX= OFF  CROSS= 0  PLTYPE=  3
-         PLOT MODE=   A
-         PLOT FILE= metafile.plt                                                                                                                                                                                                                                                                                                                                                                                                                                                                             [...]
-cancel mode journal
-show mode journal
-      MODE            STATE        ARGUMENT
-      JOURNAL       CANCELLED      ferret.jnl
- 
-! new 1/94  (syntax check also applies to modes journal and ppllist)
-show mode metafile
-      MODE            STATE        ARGUMENT
-      METAFILE      CANCELLED      metafile.plt
-set mode metafile newmetafile1.plt
-show mode metafile
-      MODE            STATE        ARGUMENT
-      METAFILE         SET         newmetafile1.plt
-set mode metafile:newmetafile2.plt
-show mode metafile
-      MODE            STATE        ARGUMENT
-      METAFILE         SET         newmetafile2.plt
-set mode metafile: newmetafile3.plt
-show mode metafile
-      MODE            STATE        ARGUMENT
-      METAFILE         SET         newmetafile3.plt
-set mode metafile: "newmetafile4.plt"
-show mode metafile
-      MODE            STATE        ARGUMENT
-      METAFILE         SET         newmetafile4.plt
-set mode metafile: "./newmetafile5.plt"
-show mode metafile
-      MODE            STATE        ARGUMENT
-      METAFILE         SET         ./newmetafile5.plt
-set mode metafile: ./newmetafile6.plt
-show mode metafile
-      MODE            STATE        ARGUMENT
-      METAFILE         SET         ./newmetafile6.plt
-set mode metafile newmetafile7.plt
-show mode metafile
-      MODE            STATE        ARGUMENT
-      METAFILE         SET         newmetafile7.plt
-set mode metafile "newmetafile8.plt"
-show mode metafile
-      MODE            STATE        ARGUMENT
-      METAFILE         SET         newmetafile8.plt
-set mode metafile "./newmetafile9.plt"
-show mode metafile
-      MODE            STATE        ARGUMENT
-      METAFILE         SET         ./newmetafile9.plt
-set mode metafile ./newmetafile10.plt
-show mode metafile
-      MODE            STATE        ARGUMENT
-      METAFILE         SET         ./newmetafile10.plt
-set mode metafile metafile.plt
- 
-! SET - SHOW - CANCEL EXPRESSION
-SHOW EXPRESSION
-CANCEL EXPRESSION
-SHOW EXPRESSION
-SET EXPRESSION i+5,i-j
-SHOW EXPRESSION
-        current output expression(s):
-        I+5
-        I-J
-LIST/i=1:3/j=6:8
-             X: 0.5 to 3.5
-             Y: 5.5 to 8.5
- Column  1: EX#1 is I+5
- Column  2: EX#2 is I-J
-          EX#1   EX#2
- ---- J:6 Y:   6
-1   / 1:  6.000 -5.000
-2   / 2:  7.000 -4.000
-3   / 3:  8.000 -3.000
- ---- J:7 Y:   7
-1   / 1:  6.000 -6.000
-2   / 2:  7.000 -5.000
-3   / 3:  8.000 -4.000
- ---- J:8 Y:   8
-1   / 1:  6.000 -7.000
-2   / 2:  7.000 -6.000
-3   / 3:  8.000 -5.000
- 
-! SET,SHOW GRID
-USE gt4d011
-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
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
-LIST/I=101:105/J=50/K=1/L=5 SALT
-             VARIABLE : (SALINITY(ppt) - 35) /1000 (frac. by wt. less .035)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 points (LONGITUDE)
-             LATITUDE : 1.5N
-             DEPTH (m): 5
-             TIME     : 10-SEP-1982 20:00
-                   1.5N    
-                   50
- 129.5W / 101:  1.123E-04
- 128.5W / 102:  1.092E-04
- 127.5W / 103:  1.064E-04
- 126.5W / 104:  1.042E-04
- 125.5W / 105:  1.015E-04
-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
- normal    E
- normal    F
-SET GRID/SAVE
-SET GRID ABSTRACT
-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
- 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
- normal    E
- normal    F
- 
-       I     X                   XBOX      XBOXLO
-      50>  179.5E                1          179E
-      51>  179.5W                1          180E
-      52>  178.5W                1          179W
-      53>  177.5W                1          178W
-      54>  176.5W                1          177W
-      55>  175.5W                1          176W
-      56>  174.5W                1          175W
-      57>  173.5W                1          174W
-      58>  172.5W                1          173W
-      59>  171.5W                1          172W
-      60>  170.5W                1          171W
-      61>  169.5W                1          170W
-      62>  168.5W                1          169W
-      63>  167.5W                1          168W
-      64>  166.5W                1          167W
-      65>  165.5W                1          166W
-      66>  164.5W                1          165W
-SET GRID/RESTORE
-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:
- >>> Definitions that replace any file variable of same name:
-     A = I
-CANC VARIABLES/ALL
-SHOW VARIABLES
- Created by DEFINE VARIABLE:
- 
-! SHOW MEMORY , LOAD
-SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 4 bytes)
-SHOW MEMORY/TEMPORARY
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 4 bytes)
-data loaded without /PERMANENT:
- SALT[D=gt4d011]                   X     mr:3  blk1:1  nblk:1
-  101  /130W          50  /1.3N           1  /0              5  /07-SEP-1982  ...  / ...         ...  / ...
-  105  /125W          50  /1.7N           1  /10             5  /13-SEP-1982  ...  / ...         ...  / ...
- 
-SHOW MEMORY/PERMANENT
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 4 bytes)
-data loaded with /PERMANENT:
-SHOW MEMORY/ALL
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 4 bytes)
-all data in memory:
- SALT[D=gt4d011]                   X     mr:3  blk1:1  nblk:1
-  101  /130W          50  /1.3N           1  /0              5  /07-SEP-1982  ...  / ...         ...  / ...
-  105  /125W          50  /1.7N           1  /10             5  /13-SEP-1982  ...  / ...         ...  / ...
- 
- 
-LET A=i
-LOAD/PERM/I=1:5 A
-SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 4 bytes)
-SHOW MEMORY/FREE
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 4 bytes)
-            total memory table slots: 500
-            total memory blocks: 2000
-            memory block size: 12800
- 
-            number of free memory blocks: 1997
-            largest free region: 1997
-            number of free regions: 1
-            free memory table slots: 497
-            number of UN-CACHED variables: 0
-            number of /PERMANENT variables: 1
-            number of blocks used /PERM: 1
-LOAD/TEMPORARY/I=1:5 A
-SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 4 bytes)
-SHOW MEMORY/FREE
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 4 bytes)
-            total memory table slots: 500
-            total memory blocks: 2000
-            memory block size: 12800
- 
-            number of free memory blocks: 1998
-            largest free region: 1997
-            number of free regions: 2
-            free memory table slots: 498
-            number of UN-CACHED variables: 0
- 
-! REPEAT
-REPEAT/L=1:3 LIST/I=1:6/ORDER=X 1/(I+L)
-!-> REPEAT: L=1
-             VARIABLE : 1/(I+L)
-             SUBSET   : 6 points (X)
-             T        : 1
-            1       2       3       4       5       6     
-             1       2       3       4       5       6
-          0.5000  0.3333  0.2500  0.2000  0.1667  0.1429
-!-> REPEAT: L=2
-             VARIABLE : 1/(I+L)
-             SUBSET   : 6 points (X)
-             T        : 2
-            1       2       3       4       5       6     
-             1       2       3       4       5       6
-          0.3333  0.2500  0.2000  0.1667  0.1429  0.1250
-!-> REPEAT: L=3
-             VARIABLE : 1/(I+L)
-             SUBSET   : 6 points (X)
-             T        : 3
-            1       2       3       4       5       6     
-             1       2       3       4       5       6
-          0.2500  0.2000  0.1667  0.1429  0.1250  0.1111
- 
-! semicolon-separated command groups
-cancel region
-cancel data/all
-(show data)
-     currently SET data sets:
-show data;show data
-     currently SET data sets:
-     currently SET data sets:
-set region/l=99;show region;repeat/l=1:3 (show data;sh reg);can reg;show reg
-default region:
-        X/I is unspecified
-        Y/J is unspecified
-        Z/K is unspecified
-        L=99
-        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
-!-> REPEAT: L=3
-     currently SET data sets:
-default region:
-        X/I is unspecified
-        Y/J is unspecified
-        Z/K is unspecified
-        L=3
-        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
-((show wind;show reg);repeat/l=1:2 (show reg;list/i=1:3/ord=x (i+5)))
- OPEN ACTIVE
-   1    *
-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
-default region:
-        X/I is unspecified
-        Y/J is unspecified
-        Z/K is unspecified
-        L=1
-        E/M is unspecified
-        F/N is unspecified
-             VARIABLE : (I+5)
-             SUBSET   : 3 points (X)
-            1      2      3    
-            1      2      3
-          6.000  7.000  8.000
-!-> REPEAT: L=2
-default region:
-        X/I is unspecified
-        Y/J is unspecified
-        Z/K is unspecified
-        L=2
-        E/M is unspecified
-        F/N is unspecified
-             VARIABLE : (I+5)
-             SUBSET   : 3 points (X)
-            1      2      3    
-            1      2      3
-          6.000  7.000  8.000
- 
- 
-! nested brackets (7/95 - version 4.01)
-use gtbc011,gt4d011
-stat/k=1/l=1/j=40/i=70/d=2 temp[d=1]
- 
-             TEMPERATURE
-             LONGITUDE: 160.5W
-             LATITUDE: 1.8S
-             DEPTH (m): 5
-             TIME: 15-MAR-1983 10:00
-             E:  N/A
-             F:  N/A
-             DATA SET: ./gtbc011.cdf
- 
- Total # of data points: 1 (1*1*1*1*1*1)
- # flagged as bad  data: 0
- Minimum value: 30.082
- Maximum value: 30.082
- Mean    value: 30.082 (unweighted average)
-stat/k=1/l=1/j=40/i=70/d=2 temp[d=1,g=u]
- 
-             TEMPERATURE
-             regrid: U
-             LONGITUDE: 160W
-             LATITUDE: 1.7S
-             DEPTH (m): 5
-             TIME: 15-MAR-1983 10:00
-             E:  N/A
-             F:  N/A
-             DATA SET: ./gtbc011.cdf
- 
- Total # of data points: 1 (1*1*1*1*1*1)
- # flagged as bad  data: 0
- Minimum value: 30.252
- Maximum value: 30.252
- Mean    value: 30.252 (unweighted average)
-! ... note that since the data set times do not overlap the regrid request
-!	produces only a single missing value flag
-stat/k=1/l=1/j=40/i=70/d=2 temp[d=1,g=u[d=2]]
- 
-             TEMPERATURE
-             regrid: U[D=gt4d011]
-             LONGITUDE: 160W
-             LATITUDE: 1.7S
-             DEPTH (m): 5
-             TIME: 17-AUG-1982 12:00
-             E:  N/A
-             F:  N/A
-             DATA SET: ./gtbc011.cdf
- 
- Total # of data points: 1 (1*1*1*1*1*1)
- # flagged as bad  data: 1
-stat/k=1/l=1/j=40/i=70/d=2 temp[d=gtbc011,g=u[d=gt4d011]]
- 
-             TEMPERATURE
-             regrid: U[D=gt4d011]
-             LONGITUDE: 160W
-             LATITUDE: 1.7S
-             DEPTH (m): 5
-             TIME: 17-AUG-1982 12:00
-             E:  N/A
-             F:  N/A
-             DATA SET: ./gtbc011.cdf
- 
- Total # of data points: 1 (1*1*1*1*1*1)
- # flagged as bad  data: 1
- 
-! test blanks surrounding colons (bn420 - 10/95)
-list/nohead/i=1 : 3 i
- 1   / 1:  1.000
- 2   / 2:  2.000
- 3   / 3:  3.000
- 
-! test escapes using back slashes (bn420 - 11/95)
-! (moved to bn420_grave)
- 
-say \/help	! "/" should pass through
-/help
-set mode ignore
-say /help
-canc mode ignore
- 
-say this\;that	! ";" should pass through
-this;that
-set mode ignore
-say this;that
-this
-canc mode ignore
- 
-say yes\! "\!" passes through
-yes! "!" passes through
-say yes! "!" passes through
-yes
- 
-! ********* V5.31 **********
-! test continuation line capabilities
-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
- 
-! long quotations can span multiple lines
-say "start of quote \ ! quotations left open
-followed by the end of the quote\
-"  ! and the closing quote all by itself
-start of quote followed by the end of the quote
- 
-! leading blanks are significant on continuation lines
-say "demonstrate that these leading blanks:\
-       really are preserved"
-demonstrate that these leading blanks:       really are preserved
- 
-! continuation prompts are ignored, too
-yes? say "demonstrate that these leading blanks:\
-...?        really are preserved"
-demonstrate that these leading blanks:       really are preserved
- 
-! weird little blank line inputs
- 
- 
-cancel region  ! to make next output predictable
-show region\
-! comment
-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
- 
-! a common example: continuation for REPEAT loops
-repeat/i=1:3 (cancel data/all;\
-show data;\
-let a = i;\
-list/nohead a;\
-cancel variables/all;\
-)
-!-> REPEAT: I=1
-     currently SET data sets:
-          1.000
-!-> REPEAT: I=2
-     currently SET data sets:
-          2.000
-!-> REPEAT: I=3
-     currently SET data sets:
-          3.000
- 
-! deliberate error -- backslash escapes the bang
-set mode ignore; \! ignore (err cuz bang gets escaped); can mode ignore
- 
-! test long input lines with continuation (V5.31)
-! *kob* 6/01 - note shorten this test for long lines to 1024 characters. This
-!              because that is the maximum record length for NAG f95.  Any
-! 	       longer and the program is aborted
- 
-say *** A111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000B111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000C111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000D111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000E11111111122222222223333333333444444444455555555556666666666777777777788888888889999 [...]
-F111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000G111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000H111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000I111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000\
-J111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000
-*** A111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000B111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000C111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000D111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000E111111111222222222233333333334444444444555555555566666666667777777777888888888899999999 [...]
- 
-cancel mode metafile      !9/97
- 
-GO bn_reset
-cancel mode verify
-GO bn_dollar hello    ! test command arg
-! test this with GO journal hello
- 
-! V510: 3/00 *sh* added tests of backslash escapes and surrounding quotations
-! V532: 5/01 *sh* added tests of 2-digit arguments; made mode ignore stricter
- 
-set mode ignore
-message/continue $1
- !-> message/continue hello
-hello
- 
-message/continue here is: $1"some text" and some more stuff
- !-> message/continue here is: hello and some more stuff
-here is: hello and some more stuff
- 
-message/cont here is a big $1 and $3&some text&      ! default provided
- !-> message/cont here is a big hello and some text      ! default provided
-here is a big hello and some text
- 
-message/cont $3			! error - no default
- 
-message/cont $3"<my error message"	! error - with message
- 
-message/cont $*
- !-> message/cont hello
-hello
- 
-message/continue here is: $*"some text" and some more stuff
- !-> message/continue here is: hello and some more stuff
-here is: hello and some more stuff
- 
-message/continue $no_digit_text   ! no substitution
-$no_digit_text
- 
-!!!!!!!!!!!!!!!!!!
- 
-message/cont $1"|hello|goodbye<my error message"
- !-> message/cont hello
-hello
- 
-message/cont $1"greetings|hello|goodbye"
- !-> message/cont hello
-hello
- 
-message/cont $1">greetings|hello|goodbye"
- !-> message/cont hello
-hello
- 
-message/cont $1">greetings|hello|goodbye<my error message"
- !-> message/cont hello
-hello
- 
-message/cont $1">greetings|hello>replacement text|goodbye<my error message"
- !-> message/cont replacement text
-replacement text
- 
-! doesn't match on "hello"
- 
-message/cont $1"|xxxxx|goodbye<my error message"
- 
-message/cont $1"greetings|xxxxx|goodbye"
- 
-message/cont $1">greetings|xxxxx|goodbye"
- !-> message/cont greetings
-greetings
- 
-message/cont $1">greetings|xxxxx|goodbye<my error message"
- !-> message/cont greetings
-greetings
- 
-message/cont $1">greetings|xxxxx>replacement text|goodbye<my error message"
- !-> message/cont greetings
-greetings
- 
-! no argument supplied
- 
-message/cont $3"|hello|goodbye<my error message"
- 
-message/cont $3"greetings|hello|goodbye"
- !-> message/cont greetings
-greetings
- 
-message/cont $3">greetings|hello|goodbye"
- 
-message/cont $3">greetings|hello|goodbye<my error message"
- 
-message/cont $3">greetings|hello>replacement text|goodbye<my error message"
- 
-! pathological examples
-!*********
-! works ok with 500 character input buffer
-message/cont here is a very long text $1 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx the end 1234567890 yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy 1234567890
- !-> message/cont here is a very long text hello xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx the end 1234567890 yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy 1234567890
-here is a very long text hello xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx the end 1234567890 yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy 1234567890
-message/cont here is a very long text $1 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx the end 1234567890 yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy [...]
- !-> message/cont here is a very long text hello xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx the end 1234567890 yyyyyyyyyyyyyyyyyyyyyyyyy [...]
-here is a very long text hello xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx the end 1234567890 yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy 1234567890
-message/cont $3""
-message/cont $3"<"
-message/cont $3"||"
-message/cont $3">"
- !-> message/cont >
->
-message/cont $3"|>|"
-message/cont $3">|"
-message/cont $3"|<"
-message/cont $3"|>"
- 
-set mode/last ignore
- 
-! bn420 10/95 - added tests that arguments don't get incorrectly broken up
-! ==> EACH OF THESE SHOULD PASS AS A SINGLE ARGUMENT!!!
-go bn_dollar.sub VAR[x=1,y=1]	! should be interpreted as a single arg
-VAR[x=1,y=1]  2-n/a  3-n/a  4-n/a
-go bn_dollar.sub VAR[x=1,g=var2[d=d1],y=1]	!  a single arg
-VAR[x=1,g=var2[d=d1],y=1]  2-n/a  3-n/a  4-n/a
-go bn_dollar.sub ((x+y)/(x-5))	! ignore slash, get single arg
-((x+y)/(x-5))  2-n/a  3-n/a  4-n/a
-go bn_dollar.sub ((x+y),(x-5))	! ignore comma, get single arg
-((x+y),(x-5))  2-n/a  3-n/a  4-n/a
- 
-! V510 3/00
-set mode ignore
-  message/continue "$1"                ! final quote used to get mis-applied
- !-> message/continue "hello"                ! final quote used to get mis-applied
-hello
-set mode/last ignore
-go bn_dollar.sub \"hello\"                 ! quotations as part of argument
-"hello"  2-n/a  3-n/a  4-n/a
-go bn_dollar.sub "\"hello with blanks\""   ! quotations as part of argument
-"hello with blanks"  2-n/a  3-n/a  4-n/a
-go bn_dollar.sub \"((x+y),(x-5))\"         ! quotations as part of argument
-"((x+y),(x-5))"  2-n/a  3-n/a  4-n/a
- 
-! V5.3 additions 5/01 -- 2-digit arguments in parentheses
-go bn_dollar.sub VAR[x=1,y=1] "arg 2" " " "arg 4" "arg 5"
-VAR[x=1,y=1]  arg 2  3-n/a  arg 4
-VAR[x=1,y=1]999  arg 2  3-parens
-11-n/a   12-n/a  13-n/a
-41-n/a  42-n/a  43-n/a
- 
-go bn_dollar.sub VAR[x=1,y=1] "arg 2" " " "arg 4" "arg 5" \
-"arg 6" "arg 7" "arg 8" "arg 9" "arg 10" \
-"arg 11" "arg 12" " "      "arg 14" "arg 15"
-VAR[x=1,y=1]  arg 2  3-n/a  arg 4
-VAR[x=1,y=1]999  arg 2  3-parens
-arg 11   arg 12  13-n/a
-41-n/a  42-n/a  43-n/a
- 
-go bn_dollar.sub VAR[x=1,y=1] "arg 2" " " "arg 4" "arg 5" \
-"arg 6" "arg 7" "arg 8" "arg 9" "arg 10" \
-"arg 11" "arg 12" " "      "arg 14" "arg 15" \
-"arg 16" "arg 17" "arg 18" "arg 19" "arg 20" \
-"arg 21" "arg 22" "arg 23" "arg 24" "arg 25" \
-"arg 26" "arg 27" "arg 28" "arg 29" "arg 30" \
-"arg 31" "arg 32" "arg 33" "arg 34" "arg 35" \
-"arg 36" "arg 37" "arg 38" "arg 39" "arg 40" \
-"arg 41" "arg 42" " "      "arg 44" "arg 45"
-VAR[x=1,y=1]  arg 2  3-n/a  arg 4
-VAR[x=1,y=1]999  arg 2  3-parens
-arg 11   arg 12  13-n/a
-star 41  subst 42  43-n/a
- 
-! deliberate errors
-set mode ignore
-  say $100        ! argument number too large
-  say ($100)        ! argument number too large
-  say ($10)0      ! argument 10 not defined
-set mode/last ignore
- 
-! added in bn400
-GO bn_reset
-cancel mode verify
-GO bn_grave
-! bn420_grave
-! benchmark to test evaluation of grave accent-enclosed expressions
-! requires FERRET version 4.00 or later
- 
-! added one new command since bn400_grave to test for unwanted leading blanks
-!  (a problem noticed on HP)
-! and make sure that grave accents protect "/" and other chars from the parser
- 
-! 2/96 - added tests of PRECISION=n abd BAD=string
- 
-message/continue "2+2=`2+2`"
- !-> message/continue "2+2=4"
-2+2=4
- 
-message/continue "2 squared + 2 squared =`2^2` + `2+2`"
- !-> message/continue "2 squared + 2 squared =4 + 4"
-2 squared + 2 squared =4 + 4
- 
-message/continue "50/0 =`50/0`"	! invalid result
- !-> message/continue "50/0 =bad"	! invalid result
-50/0 =bad
- 
-repeat/i=1:3 message/continue "I=`I`"
-!-> REPEAT: I=1
- !-> message/continue "I=1"
-I=1
-!-> REPEAT: I=2
- !-> message/continue "I=2"
-I=2
-!-> REPEAT: I=3
- !-> message/continue "I=3"
-I=3
- 
-LET start = 5; repeat/i=`start`:`start+2` message/continue "I=`I`"
- !-> repeat/i=5:7 message/continue "I=`I`"
-!-> REPEAT: I=5
- !-> message/continue "I=5"
-I=5
-!-> REPEAT: I=6
- !-> message/continue "I=6"
-I=6
-!-> REPEAT: I=7
- !-> message/continue "I=7"
-I=7
-!cancel region/X ! removed - temporary experiment 3/00 *sh*
- 
-message/continue "2+2=``2+2``"	! double grave accents get condensed
- !-> message/continue "2+2=`2+2`"	! double grave accents get condensed
-2+2=`2+2`
- 
-message/continue A default substitution: $9"default string|2+2=`2+2`"
- !-> message/continue A default substitution: default string
-A default substitution: default string
- 
-message/continue A grave   substitution: $9"2+2=`2+2`|replacement string"
- !-> message/continue A grave   substitution: 2+2=4
-A grave   substitution: 2+2=4
- 
-canc var/all;LET XX = 5+4; mess/cont "xx is `xx`"
- !-> mess/cont "xx is 9"
-xx is 9
- 
-! 2/96
-message/continue "1/300=`1/300,p=5`"
- !-> message/continue "1/300=0.0033333"
-1/300=0.0033333
-message/continue "1/300=`1/300,p=-5`"	! decimal places
- !-> message/continue "1/300=0.00333"	! decimal places
-1/300=0.00333
-message/continue "1/300=`1/300 , precision=10`"
- !-> message/continue "1/300=0.003333333333"
-1/300=0.003333333333
-message/continue "1/0=`1/0,  b=-999`"
- !-> message/continue "1/0=-999"
-1/0=-999
-message/continue "1/0=`1/0  ,BAD=missing`"
- !-> message/continue "1/0=missing"
-1/0=missing
-message/continue "1/3=`1/3, precision=10,  BAD=-999`"
- !-> message/continue "1/3=0.3333333333"
-1/3=0.3333333333
-message/continue "1/3=`1/3,	BAD=-999 ,precision=10`"
- !-> message/continue "1/3=0.3333333333"
-1/3=0.3333333333
- 
-! deliberate error
-set mode ignore_errors
-message/continue "2+2=`2+2"    		! unclosed grave accent
-message/continue "2+2=`garbage`"	! invalid expression
-message/continue "3 numbers: `I[i=3:5]`"! not a scalar
- 
-! 2/96 deliberate errors
-message/continue "1/3=`1/3,BAD=-999,precision=11`"
- !-> message/continue "1/3=0.33333333333"
-1/3=0.33333333333
-message/continue "1/3=`1/3BAD=-999`"
-message/continue "1/3=`1/3,qBAD=-999`"
-canc mode ignore_errors
- 
-! bn420_grave:
-! CHECK THIS TO MAKE SURE THERE ARE NO LEADING BLANKS  (ESP. HP!!!)
-let x1 = 0.012954
-let x2 = 7.5E-09
-let x3 = .1
-say >>`x1`<< ---  >>`x2`<< --- >>`x3`<<
- !-> MESSAGE/CONTINUE >>0.012954<< ---  >>7.5E-09           << --- >>0.1<<
->>0.012954<< ---  >>7.5E-09           << --- >>0.1<<
- 
-! must recognize "/" inside immediate mode exprn
-list/I=`6/2` i
- !-> list/I=3 i
-             VARIABLE : I
-                        axis ABSTRACT
-             X        : 3
-          3.000
- 
-! test escapes using back slashes (bn420 - 11/95)
-say `2+2`	! normal evaluation
- !-> MESSAGE/CONTINUE 4
-4
-say \`2+2\`	! these grave accents should pass through
-`2+2`
-say \`2+2\`
-`2+2`
-say \`2+`1+1`\` ! should translate 1+1=>2
- !-> MESSAGE/CONTINUE `2+2`
-`2+2`
-set mode ignore
-say \`2+2`	! syntax error
-say `2+2\`	! syntax error
-say `2+2\`+1`	! syntax error
-say \`2+2`+1\`	! syntax error
-canc mode ignore
- 
-! test nested brackets mixed with grave accents
-let long = x
-say temp[x=`long[i=1]`:`long[i=160]`:5]
- !-> MESSAGE/CONTINUE temp[x=1:160:5]
-temp[x=1:160:5]
- 
-! V5.10 - test new features
-use coads_climatology
-set mode diagnostic
-let sst2 = sst[l=5:8]
-say `sst, return=size`    ! should only do a GETGRID
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- !-> MESSAGE/CONTINUE 48600
-48600
-say `sst2,return=lend`    ! should inherit L=5:8
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid SST2     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- !-> MESSAGE/CONTINUE 8
-8
-set mode/last diagnostic
- 
-say `sst,return=shape`
- !-> MESSAGE/CONTINUE XYT
-XYT
-say `sst,return=T0`
- !-> MESSAGE/CONTINUE 01-JAN-0000 00:00:00
-01-JAN-0000 00:00:00
-say `sst,return=TITLE`
- !-> MESSAGE/CONTINUE SEA SURFACE TEMPERATURE
-SEA SURFACE TEMPERATURE
-say `sst,return=units`
- !-> MESSAGE/CONTINUE Deg C
-Deg C
-say `sst,return=GRID`
- !-> MESSAGE/CONTINUE GSQ1
-GSQ1
- 
-say `sst,ret=isize`
- !-> MESSAGE/CONTINUE 180
-180
-say `sst,ret=jsize`
- !-> MESSAGE/CONTINUE 90
-90
-say `sst,ret=ksize`
- !-> MESSAGE/CONTINUE 1
-1
-say `sst,ret=lsize`
- !-> MESSAGE/CONTINUE 3
-3
- 
-say `sst,r=istart`
- !-> MESSAGE/CONTINUE 1
-1
-say `sst,r=jstart`
- !-> MESSAGE/CONTINUE 1
-1
-say `sst,r=kstart`
- !-> MESSAGE/CONTINUE 0
-0
-say `sst,r=lstart`
- !-> MESSAGE/CONTINUE 1
-1
- 
-say `sst,R=iend`
- !-> MESSAGE/CONTINUE 180
-180
-say `sst,R=jend`
- !-> MESSAGE/CONTINUE 90
-90
-say `sst,R=kend`
- !-> MESSAGE/CONTINUE 0
-0
-say `sst,R=LEND`
- !-> MESSAGE/CONTINUE 3
-3
- 
-say `sst,return=xstart`
- !-> MESSAGE/CONTINUE 21E
-21E
-say `sst,return=ystart`
- !-> MESSAGE/CONTINUE 89S
-89S
-say `sst,return=zstart`
- !-> MESSAGE/CONTINUE *
-*
-say `sst,return=tstart`
- !-> MESSAGE/CONTINUE 16-JAN 06:00:00
-16-JAN 06:00:00
- 
-say `sst,return=xend`
- !-> MESSAGE/CONTINUE 19E(379)
-19E(379)
-say `sst,return=yend`
- !-> MESSAGE/CONTINUE 89N
-89N
-say `sst,return=zend`
- !-> MESSAGE/CONTINUE *
-*
-say `sst,return=tend`
- !-> MESSAGE/CONTINUE 17-MAR 02:58:12
-17-MAR 02:58:12
- 
-say `sst,return=xunit`
- !-> MESSAGE/CONTINUE degrees_east
-degrees_east
-say `sst,return=junits`
- !-> MESSAGE/CONTINUE degrees_north
-degrees_north
-say `sst,return=kunit`
- !-> MESSAGE/CONTINUE
-
-say `sst,return=tunits`
- !-> MESSAGE/CONTINUE hour
-hour
- 
-say `sst^2,return=size`
- !-> MESSAGE/CONTINUE 48600
-48600
-say `sst[L=1]+sst,return=lsize`
- !-> MESSAGE/CONTINUE 3
-3
-say `sst[L=1:3 at ave],return=lsize`
- !-> MESSAGE/CONTINUE 1
-1
-say `sst[L=1:3 at ave]+sst,return=lsize`
- !-> MESSAGE/CONTINUE 3
-3
- 
-! test case of grid-changing variables returning an imposed (ABSTRACT) axes
-let a = XSEQUENCE(J[j=1:5])
-set mode diagnostic
-say `a,return=isize`          ! full evaluation occurs
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid (C01,V08 C:  9 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid (C11,V08 C: 11 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid 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
- 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
- !-> 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
- !-> MESSAGE/CONTINUE 2
-2
-say `a[i=100:200],return=isize`    ! WRONG! because 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
- !-> MESSAGE/CONTINUE 101
-101
-set mode/last diagnostic
- 
-! deliberate errors
-set mode ignore_errors
-say `1*/3`     ! deliberate syntax error
-say `sst*/3,return=lunits`
-say `sst,rr=size`            ! could be an error ...
- !-> MESSAGE/CONTINUE 48600
-48600
-say `sst,return=Xsize`
-say `sst,return=trash`
-set mode/last ignore_errors
- 
- 
-! added in bn420
-GO bn_reset
-cancel mode verify
-GO bn_letd
-! bn420_letd.jnl
-! 9/1/95
- 
-! test LET definitions with the /D qualifier:  LET, SHOW, SET VAR, CANCEL
-! .. not a particularly inspired benchmark, but, what the heck
- 
-! 9/2005 acm
-! test for the behavior of bug 1336 by listing contents of variables;
-! tests with SHOW VAR did not detect the bug.
- 
-sp touch snoopy.dat
- 
-! set and show 3 types of variables
-let a = global_pre-empt
-show var
- Created by DEFINE VARIABLE:
- >>> Definitions that replace any file variable of same name:
-     A = GLOBAL_PRE-EMPT
-show var/d
-let/d a = global_default
-show var
- Created by DEFINE VARIABLE:
- >>> Definitions that replace any file variable of same name:
-     A = GLOBAL_PRE-EMPT
- >>> Definitions used if no file variable of this name exists:
-     A (/D default) = GLOBAL_DEFAULT
-show var/d
-     A (/D default) = GLOBAL_DEFAULT
-USE clim_airt_lev
-let/d=clim_airt_lev a = clim_airt_lev-specific
-set mode ignore; let/d=noexist a = b; set mode/last ignore
-show var
- Created by DEFINE VARIABLE:
-     A[D=clim_airt_lev] = CLIM_AIRT_LEV-SPECIFIC
- >>> Definitions that replace any file variable of same name:
-     A = GLOBAL_PRE-EMPT
- >>> Definitions used if no file variable of this name exists:
-     A (/D default) = GLOBAL_DEFAULT
-show var/d=clim_airt_lev
-     A[D=clim_airt_lev] = CLIM_AIRT_LEV-SPECIFIC
-show data clim_airt_lev
-     currently SET data sets:
-    1> ./clim_airt_lev.cdf  (default)
- name     title                             I         J         K         L         M         N
- AIRT     CLIMATOLOGICAL AIR TEMPERATURE   1:160     1:100     ...       1:12      ...       ...
- ------------------------------
- A[D=clim_airt_lev] = CLIM_AIRT_LEV-SPECIFIC
- 
-use gt4d011
-let/d=2 a = specific-to-gt4d
-show var
- Created by DEFINE VARIABLE:
-     A[D=clim_airt_lev] = CLIM_AIRT_LEV-SPECIFIC
-     A[D=gt4d011] = SPECIFIC-TO-GT4D
- >>> Definitions that replace any file variable of same name:
-     A = GLOBAL_PRE-EMPT
- >>> Definitions used if no file variable of this name exists:
-     A (/D default) = GLOBAL_DEFAULT
-show var/d=clim_airt_lev
-     A[D=clim_airt_lev] = CLIM_AIRT_LEV-SPECIFIC
-show var airt
-list/l=1/x=180/y=0 airt[d=clim_airt_lev]
-             VARIABLE : CLIMATOLOGICAL AIR TEMPERATURE (deg. C)
-             FILENAME : clim_airt_lev.cdf
-             LONGITUDE: 179.5E
-             LATITUDE : 0.2S
-             TIME     : 12-JAN-1982 12:00
-          27.14
- 
-! data set-specific definition
-let/d=clim_airt_lev airt = 1
-list/l=1/x=180/y=0 airt[d=clim_airt_lev]
-             VARIABLE : 1
-             FILENAME : clim_airt_lev.cdf
-          1.000
-set mode ignore; list/l=1/x=180/y=0 airt[d=gt4d011]; set mode/last ignore
- 
-! default definition where no data set variable exists
-let/d airt = 2
-list/l=1/x=180/y=0 airt[d=clim_airt_lev]
-             VARIABLE : 1
-             FILENAME : clim_airt_lev.cdf
-          1.000
-list/l=1/x=180/y=0 airt[d=gt4d011]
-             VARIABLE : 2
-             FILENAME : gt4d011.cdf
-          2.000
- 
-! global def'n replacing all file variables (but not data-set specific uvars)
-let airt = 2
-list/l=1/x=180/y=0 airt[d=clim_airt_lev]
-             VARIABLE : 1
-             FILENAME : clim_airt_lev.cdf
-          1.000
-list/l=1/x=180/y=0 airt[d=gt4d011]
-             VARIABLE : 2
-          2.000
-canc data/all
-list/l=1/x=180/y=0 airt
-             VARIABLE : 2
-          2.000
-show var
- Created by DEFINE VARIABLE:
- >>> Definitions that replace any file variable of same name:
-     AIRT = 2
-     A = GLOBAL_PRE-EMPT
- >>> Definitions used if no file variable of this name exists:
-     AIRT (/D default) = 2
-     A (/D default) = GLOBAL_DEFAULT
- 
-! SET VARIABLE testing
-USE clim_airt_lev
-let t1 = 1
-let/d t2 = 2
-let/d=clim_airt_lev t3 = 3
-file/var=t4,t3 snoopy.dat
-set var/titl=test1 t1
-set var/titl=test2 t2
-set var/titl=test3 t3[d=clim_airt_lev]
-set var/titl=test4 t4[d=snoopy.dat]
-set var/titl=test3 t3[d=snoopy.dat]
-show data
-     currently SET data sets:
-    1> ./clim_airt_lev.cdf
- name     title                             I         J         K         L         M         N
- AIRT     CLIMATOLOGICAL AIR TEMPERATURE   1:160     1:100     ...       1:12      ...       ...
- ------------------------------
- T3[D=clim_airt_lev] = 3
- 
-    2> ./snoopy.dat  (default)
- name     title                             I         J         K         L         M         N
- T4       test4                            1:20480   ...       ...       ...       ...       ...
- T3       test3                            1:20480   ...       ...       ...       ...       ...
- 
-show data/full 1
-     currently SET data sets:
-    1> ./clim_airt_lev.cdf
- 
- name     title                             I         J         K         L         M         N
- AIRT     CLIMATOLOGICAL AIR TEMPERATURE   1:160     1:100     ...       1:12      ...       ...
-             deg. C on grid GGT1 with -1.E+34 for missing data
-             X=130E:70W  Y=30S:50N  
- 
-  time range: 12-JAN-1982 12:00 to 13-DEC-1982 02:00
- ------------------------------
- T3[D=clim_airt_lev] = 3
-         "test3"
- 
-show var
- Created by DEFINE VARIABLE:
-     T3[D=clim_airt_lev] = 3
-         "test3"
- >>> Definitions that replace any file variable of same name:
-     T1 = 1
-         "test1"
-     AIRT = 2
-     A = GLOBAL_PRE-EMPT
- >>> Definitions used if no file variable of this name exists:
-     T2 (/D default) = 2
-         "test2"
-     AIRT (/D default) = 2
-     A (/D default) = GLOBAL_DEFAULT
- 
-! selective cancelling
-canc var/d/all
-show var	! LET/D, only, deleted
- Created by DEFINE VARIABLE:
-     T3[D=clim_airt_lev] = 3
-         "test3"
- >>> Definitions that replace any file variable of same name:
-     T1 = 1
-         "test1"
-     AIRT = 2
-     A = GLOBAL_PRE-EMPT
-can var t3[d=clim_airt_lev]
-show var
- Created by DEFINE VARIABLE:
- >>> Definitions that replace any file variable of same name:
-     T1 = 1
-         "test1"
-     AIRT = 2
-     A = GLOBAL_PRE-EMPT
-set mode ignore; can var; set mode/last ignore
-can var/all
-show var
- Created by DEFINE VARIABLE:
- 
-! cancelling various categiries in various ways
-let/d=clim_airt_lev t1 = 1
-let/d=clim_airt_lev t2 = 2
-let/d=clim_airt_lev t3 = 3
-show var
- Created by DEFINE VARIABLE:
-     T3[D=clim_airt_lev] = 3
-     T2[D=clim_airt_lev] = 2
-     T1[D=clim_airt_lev] = 1
-can var/d=clim_airt_lev t1
-show var
- Created by DEFINE VARIABLE:
-     T3[D=clim_airt_lev] = 3
-     T2[D=clim_airt_lev] = 2
-can var/all/d=clim_airt_lev
-show var
- Created by DEFINE VARIABLE:
-let/d=clim_airt_lev t1 = 1
-let/d=clim_airt_lev t2 = 2
-let/d=clim_airt_lev t3 = 3
-can var/d=clim_airt_lev	! implied "/all"
-show var
- Created by DEFINE VARIABLE:
-let/d t1 = 1
-let/d t2 = 2
-let/d t3 = 3
-can var/d	! implied/d/all
-show var
- Created by DEFINE VARIABLE:
- 
-! test for the behavior of bug 1336 by listing contents of variables;
- 
-let v1 = x[x=1:8]
-let v2 = x[x=1:8] + y[y=1:3]
-save/clobber/file=v12file.nc v1, v2
-save/clobber/file=v1file.nc/i=3:8 v1
-can var v1
-can var v2
- 
-use v12file
-use v1file
- 
-list v1  ! from vfile
-             VARIABLE : X[X=1:8]
-             FILENAME : v1file.nc
-             SUBSET   : 6 points (X)
- 3   / 1:  3.000
- 4   / 2:  4.000
- 5   / 3:  5.000
- 6   / 4:  6.000
- 7   / 5:  7.000
- 8   / 6:  8.000
-let/d v1 = 0
-let/d v2 = 2
- 
-list v1  ! v1 exists in default data set so use dataset variable
-             VARIABLE : X[X=1:8]
-             FILENAME : v1file.nc
-             SUBSET   : 6 points (X)
- 3   / 1:  3.000
- 4   / 2:  4.000
- 5   / 3:  5.000
- 6   / 4:  6.000
- 7   / 5:  7.000
- 8   / 6:  8.000
- 
-list v2  ! v2 does not exist in default dset so use let/d definition
-             VARIABLE : 2
-             FILENAME : v1file.nc
-          2.000
- 
-let/d q = v2
-list q
-             VARIABLE : V2
-             FILENAME : v1file.nc
-          2.000
-list q[d=v12file]
-             VARIABLE : V2
-             FILENAME : v12file.nc
-             SUBSET   : 8 by 3 points (X-Y)
-             1      2      3      4      5      6      7      8    
-             1      2      3      4      5      6      7      8
- 1   / 1:   2.00   3.00   4.00   5.00   6.00   7.00   8.00   9.00
- 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
- 
- 
-! added in bn430
-GO bn_reset
-cancel mode verify
-GO bn_if
-! bn430_if
-! 5/6/96
-! 5/22/96 - added nested multi-line IF with nesting in REJECTED clause
- 
-! 8/97 bn430_if -> bn450_if: added test of symbol substitution with IF
- 
-CANC MODE VERIFY
----->CORRECT
----->CORRECT
----->CORRECT
----->CORRECT
----->CORRECT
----->CORRECT
----->CORRECT
----->all is well after checking TRUE
----->CORRECT
----->CORRECT
----->CORRECT
----->CORRECT
----->CORRECT
----->CORRECT
----->CORRECT
----->CORRECT
----->all is well after checking FALSE
----->CORRECT
----->CORRECT
----->CORRECT
----->CORRECT
----->CORRECT
----->CORRECT
----->all is well after checking single line IFs
----->CORRECT
----->CORRECT, again
-100
-1
-2
----->all is well after command group and loop tests
-CORRECT:sym sub
----->CORRECT
----->CORRECT again
----->all is well
----->CORRECT
----->all is well
----->CORRECT: took ELSE
----->CORRECT again
----->all is well
----->CORRECT: took ELIF
----->all is well
----->CORRECT
----->all is well following multi-line IF tests
----->all is well following weird multi-line IF
--->CORRECT: nested single line IFs
--->CORRECT: nested single line IFs
--->CORRECT: nested single line IFs
----->CORRECT: took ELIF -- starting nested IF
----->CORRECT: took ELSE inside nested IF
-----> CORRECT: took non-nested IF clause
----->all is well following nested multi-line IF
----->CORRECT: took ELIF -- starting single line nested IF
----->all is well following embedded single line IF
----->CORRECT
----->nested: all is well after single line IF
----->CORRECT
----->CORRECT, again
----->nested: all is well after command group and loop tests
----->CORRECT
----->CORRECT again
----->nested: all is well after multi-line IF
->>> --> DELIBERATE WARNING: UNCLOSED IF in NESTED GO FILE<<<
----->... now inside of nested IF clause
----->CORRECT
----->all is well following unclosed nested IF
->>> DELIBERATE ERRORS <<<
-SAY ">>> --> DELIBERATE WARNING: UNCLOSED IF <<<"
->>> --> DELIBERATE WARNING: UNCLOSED IF <<<
-IF yes THEN
-  say ---->... now inside of IF clause
----->... now inside of IF clause
- 
- 
- 
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_expressions
-! bn450_expressions.JNL
-! test all manner of expressions
-! V450 - commented out MODE POLISH test -- mode was eliminated
-! V530 - new pseudo-variables XBOXLO, YBOXHI, etc.
- 
-! test infix expressions
-! 1/96 - commented out: CANCEL MODE POLISH
- 
-! test grid creation for a variety of combos
-let c1 = 2
-let i1 = i
-let k1 = k
- 
-! . . . constants
-list 4
-             VARIABLE : constant
-          4.000
-list 2 + 2
-             VARIABLE : 2 + 2
-          4.000
-list c1 + 2
-             VARIABLE : C1 + 2
-          4.000
-list 2 + c1
-             VARIABLE : 2 + C1
-          4.000
-list c1 + c1
-             VARIABLE : C1 + C1
-          4.000
- 
-! ... constant plus variable or pseudovariable
-set reg/i=1:3
-list/order=x i + 2
-             VARIABLE : I + 2
-             SUBSET   : 3 points (X)
-            1      2      3    
-            1      2      3
-          3.000  4.000  5.000
-list/order=x 2 + i
-             VARIABLE : 2 + I
-             SUBSET   : 3 points (X)
-            1      2      3    
-            1      2      3
-          3.000  4.000  5.000
-list/order=x i1 + 2
-             VARIABLE : I1 + 2
-             SUBSET   : 3 points (X)
-            1      2      3    
-            1      2      3
-          3.000  4.000  5.000
-list/order=x 2 + i1
-             VARIABLE : 2 + I1
-             SUBSET   : 3 points (X)
-            1      2      3    
-            1      2      3
-          3.000  4.000  5.000
-list/order=x i + c1
-             VARIABLE : I + C1
-             SUBSET   : 3 points (X)
-            1      2      3    
-            1      2      3
-          3.000  4.000  5.000
-list/order=x c1 + i
-             VARIABLE : C1 + I
-             SUBSET   : 3 points (X)
-            1      2      3    
-            1      2      3
-          3.000  4.000  5.000
-list/order=x i1 + c1
-             VARIABLE : I1 + C1
-             SUBSET   : 3 points (X)
-            1      2      3    
-            1      2      3
-          3.000  4.000  5.000
-list/order=x c1 + i1
-             VARIABLE : C1 + I1
-             SUBSET   : 3 points (X)
-            1      2      3    
-            1      2      3
-          3.000  4.000  5.000
- 
-! ... constant plus variable or pseudovariable with modified region
-set reg/i=11:13
-list/order=x i[i=1:3] + 2
-             VARIABLE : I[I=1:3] + 2
-             SUBSET   : 3 points (X)
-            1      2      3    
-            1      2      3
-          3.000  4.000  5.000
-list/order=x 2 + i[i=1:3]
-             VARIABLE : 2 + I[I=1:3]
-             SUBSET   : 3 points (X)
-            1      2      3    
-            1      2      3
-          3.000  4.000  5.000
-list/order=x i1[i=1:3] + 2
-             VARIABLE : I1[I=1:3] + 2
-             SUBSET   : 3 points (X)
-            1      2      3    
-            1      2      3
-          3.000  4.000  5.000
-list/order=x 2 + i1[i=1:3]
-             VARIABLE : 2 + I1[I=1:3]
-             SUBSET   : 3 points (X)
-            1      2      3    
-            1      2      3
-          3.000  4.000  5.000
-list/order=x i[i=1:3] + c1
-             VARIABLE : I[I=1:3] + C1
-             SUBSET   : 3 points (X)
-            1      2      3    
-            1      2      3
-          3.000  4.000  5.000
-list/order=x c1 + i[i=1:3]
-             VARIABLE : C1 + I[I=1:3]
-             SUBSET   : 3 points (X)
-            1      2      3    
-            1      2      3
-          3.000  4.000  5.000
-list/order=x i1[i=1:3] + c1
-             VARIABLE : I1[I=1:3] + C1
-             SUBSET   : 3 points (X)
-            1      2      3    
-            1      2      3
-          3.000  4.000  5.000
-list/order=x c1 + i1[i=1:3]
-             VARIABLE : C1 + I1[I=1:3]
-             SUBSET   : 3 points (X)
-            1      2      3    
-            1      2      3
-          3.000  4.000  5.000
- 
-! ... two variables or pseudovariables
-set reg/i=1:3/k=2
-list/order=x i + k
-             VARIABLE : I + K
-             SUBSET   : 3 points (X)
-             Z        : 2
-            1      2      3    
-            1      2      3
-          3.000  4.000  5.000
-list/order=x i + k1
-             VARIABLE : I + K1
-             SUBSET   : 3 points (X)
-             Z        : 2
-            1      2      3    
-            1      2      3
-          3.000  4.000  5.000
-list/order=x k1 + i
-             VARIABLE : K1 + I
-             SUBSET   : 3 points (X)
-             Z        : 2
-            1      2      3    
-            1      2      3
-          3.000  4.000  5.000
- 
-! ... two variables or pseudovariables with modified region
-set reg/i=1:3/k=1
-list/order=x i + k[k=2]
-             VARIABLE : I + K[K=2]
-             SUBSET   : 3 points (X)
-             Z        : 2
-            1      2      3    
-            1      2      3
-          3.000  4.000  5.000
-list/order=x i + k1[k=2]
-             VARIABLE : I + K1[K=2]
-             SUBSET   : 3 points (X)
-             Z        : 2
-            1      2      3    
-            1      2      3
-          3.000  4.000  5.000
-! ... crash here ...
-list/order=x k1[k=2] + i
-             VARIABLE : K1[K=2] + I
-             SUBSET   : 3 points (X)
-             Z        : 2
-            1      2      3    
-            1      2      3
-          3.000  4.000  5.000
- 
- 
-! operators
-CANCEL REGION
-SET REGION/I=1:5/J=1:5
-LIST 10+2
-             VARIABLE : 10+2
-          12.00
-LIST/ORDER=X  I
-             VARIABLE : I
-                        axis ABSTRACT
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-          1.000  2.000  3.000  4.000  5.000
-LIST/ORDER=X  I*3
-             VARIABLE : I*3
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-           3.00   6.00   9.00  12.00  15.00
-LIST/ORDER=X  I/3
-             VARIABLE : I/3
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-          0.333  0.667  1.000  1.333  1.667
-LIST/ORDER=X  I+3
-             VARIABLE : I+3
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-          4.000  5.000  6.000  7.000  8.000
-LIST/ORDER=X  I-3
-             VARIABLE : I-3
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-         -2.000 -1.000  0.000  1.000  2.000
-LIST/ORDER=X  I^3
-             VARIABLE : I^3
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-            1.0    8.0   27.0   64.0  125.0
-LIST/ORDER=X  I EQ 3
-             VARIABLE : I EQ 3
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-          0.000  0.000  1.000  0.000  0.000
-LIST/ORDER=X  I NE 3
-             VARIABLE : I NE 3
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-          1.000  1.000  0.000  1.000  1.000
-LIST/ORDER=X  I GT 3
-             VARIABLE : I GT 3
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-          0.000  0.000  0.000  1.000  1.000
-LIST/ORDER=X  I GE 3
-             VARIABLE : I GE 3
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-          0.000  0.000  1.000  1.000  1.000
-LIST/ORDER=X  I LT 3
-             VARIABLE : I LT 3
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-          1.000  1.000  0.000  0.000  0.000
-LIST/ORDER=X  I LE 3
-             VARIABLE : I LE 3
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-          1.000  1.000  1.000  0.000  0.000
-LIST/ORDER=X  (I LT 3) OR (I GT 3)
-             VARIABLE : (I LT 3) OR (I GT 3)
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-          1.000  1.000  0.000  1.000  1.000
-LIST/ORDER=X  (I LE 3) AND (I GE 3)
-             VARIABLE : (I LE 3) AND (I GE 3)
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-          0.000  0.000  1.000  0.000  0.000
-LIST/ORDER=X  (I+3)*3 - 9 - (I+I+I)
-             VARIABLE : (I+3)*3 - 9 - (I+I+I)
-             SUBSET   : 5 points (X)
-            1       2       3       4       5     
-             1       2       3       4       5
-          0.0000  0.0000  0.0000  0.0000  0.0000
-LIST/ORDER=X  J * ( (I+3)*3 - 9 - (I+I+I) )
-             VARIABLE : J * ( (I+3)*3 - 9 - (I+I+I) )
-             SUBSET   : 5 by 5 points (X-Y)
-             1       2       3       4       5     
-              1       2       3       4       5
- 1   / 1:  0.0000  0.0000  0.0000  0.0000  0.0000
- 2   / 2:  0.0000  0.0000  0.0000  0.0000  0.0000
- 3   / 3:  0.0000  0.0000  0.0000  0.0000  0.0000
- 4   / 4:  0.0000  0.0000  0.0000  0.0000  0.0000
- 5   / 5:  0.0000  0.0000  0.0000  0.0000  0.0000
- 
-! IF, THEN, ELSE
-LIST/ORDER=X  IF I GT 3 THEN I
-             VARIABLE : IF I GT 3 THEN I
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-           ....   ....   ....  4.000  5.000
-LIST/ORDER=X  IF I GT 3 THEN I ELSE 0
-             VARIABLE : IF I GT 3 THEN I ELSE 0
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-          0.000  0.000  0.000  4.000  5.000
-! error: nested IF tests
-SET MODE IGNORE_ERRORS
-LIST/ORDER=X  IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333	! err
-LET A = IF I LT 5 THEN I ELSE -9					! err
-SET MODE/LAST IGNORE_ERRORS
-LET A = IF I LT 5 THEN I ELSE (-9)
-LIST/ORDER=X  IF I GT 3 THEN ( A ) ELSE .333
-             VARIABLE : IF I GT 3 THEN ( A ) ELSE .333
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-          0.333  0.333  0.333  4.000 -9.000
- 
-! functions
-LIST/ORDER=X  MAX(I,3)
-             VARIABLE : MAX(I,3)
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-          3.000  3.000  3.000  4.000  5.000
-LIST/ORDER=X  MIN(I,3)
-             VARIABLE : MIN(I,3)
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-          1.000  2.000  3.000  3.000  3.000
-LIST/ORDER=X  INT(I/3)
-             VARIABLE : INT(I/3)
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-          0.000  0.000  1.000  1.000  1.000
-LIST/ORDER=X  ABS(I-3)
-             VARIABLE : ABS(I-3)
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-          2.000  1.000  0.000  1.000  2.000
-LIST/ORDER=X  EXP(I)
-             VARIABLE : EXP(I)
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-            2.7    7.4   20.1   54.6  148.4
-LIST/ORDER=X  LN(I)
-             VARIABLE : LN(I)
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-          0.000  0.693  1.099  1.386  1.609
-LIST/ORDER=X  LN(EXP(I))
-             VARIABLE : LN(EXP(I))
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-          1.000  2.000  3.000  4.000  5.000
-LIST/ORDER=X  EXP(LN(I))
-             VARIABLE : EXP(LN(I))
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-          1.000  2.000  3.000  4.000  5.000
-LIST/ORDER=X  LOG(I)
-             VARIABLE : LOG(I)
-             SUBSET   : 5 points (X)
-            1       2       3       4       5     
-             1       2       3       4       5
-          0.0000  0.3010  0.4771  0.6021  0.6990
-LIST/ORDER=X  LOG(10^I)
-             VARIABLE : LOG(10^I)
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-          1.000  2.000  3.000  4.000  5.000
-LIST/ORDER=X  10^LOG(I)
-             VARIABLE : 10^LOG(I)
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-          1.000  2.000  3.000  4.000  5.000
-LIST/ORDER=X  SIN(I)
-             VARIABLE : SIN(I)
-             SUBSET   : 5 points (X)
-            1       2       3       4       5     
-             1       2       3       4       5
-          0.8415  0.9093  0.1411 -0.7568 -0.9589
-LIST/ORDER=X  ASIN(SIN(I/3))
-             VARIABLE : ASIN(SIN(I/3))
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-          0.333  0.667  1.000  1.333  1.475
-LIST/ORDER=X  COS(I)
-             VARIABLE : COS(I)
-             SUBSET   : 5 points (X)
-            1       2       3       4       5     
-             1       2       3       4       5
-          0.5403 -0.4161 -0.9900 -0.6536  0.2837
-LIST/ORDER=X  ACOS(COS(I/3))
-             VARIABLE : ACOS(COS(I/3))
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-          0.333  0.667  1.000  1.333  1.667
-LIST/ORDER=X  TAN(I)
-             VARIABLE : TAN(I)
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-          1.557 -2.185 -0.143  1.158 -3.381
-LIST/ORDER=X  ATAN(TAN(I/3))
-             VARIABLE : ATAN(TAN(I/3))
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-          0.333  0.667  1.000  1.333 -1.475
-LIST/J=1:3    ATAN2(J-1,I-1)
-             VARIABLE : ATAN2(J-1,I-1)
-             SUBSET   : 5 by 3 points (X-Y)
-             1      2      3      4      5    
-             1      2      3      4      5
- 1   / 1:   ....  0.000  0.000  0.000  0.000
- 2   / 2:  1.571  0.785  0.464  0.322  0.245
- 3   / 3:  1.571  1.107  0.785  0.588  0.464
-LIST/ORDER=X  MOD(I,3)
-             VARIABLE : MOD(I,3)
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-          1.000  2.000  0.000  1.000  2.000
-LIST/ORDER=X  IGNORE0(I-3)
-             VARIABLE : IGNORE0(I-3)
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-         -2.000 -1.000   ....  1.000  2.000
-LIST/ORDER=X  MISSING( IGNORE0(I-3),-9 )
-             VARIABLE : MISSING( IGNORE0(I-3),-9 )
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-         -2.000 -1.000 -9.000  1.000  2.000
-LIST/ORDER=X  RANDU(I)
-             VARIABLE : RANDU(I)
-             SUBSET   : 5 points (X)
-            1       2       3       4       5     
-             1       2       3       4       5
-          0.3376  0.7238  0.0304  0.8499  0.1694
-LIST/ORDER=X  RANDN(I)
-             VARIABLE : RANDN(I)
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-         -0.267  0.283 -0.323  1.217 -0.304
- 
-! syntax errors
-SET MODE IGNORE_ERRORS
-load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
-SET MODE/LAST IGNORE_ERRORS
- 
-! commented out 1/96
-!! test a little postfix, too
-!SET MODE POLISH
-!SET REGION/I=1:5/J=1:5
-!LIST/ORDER=X  I 3 LE I 3 GE AND
-!LIST/ORDER=X  I 3 + 3 * 9 - I I I + + -
-!LIST/J=1:3    J 1 - I 1 - ATAN2
-!! ... bug - negative constants not processed properly ...
-!SET MODE IGNORE_ERRORS
-!LIST/ORDER=X  I 3 - IGNORE0 -9 MISSING
-!SET MODE/LAST IGNORE_ERRORS
-!LIST/ORDER=X  I 3 - IGNORE0 0 9 - MISSING
-!CANCEL MODE POLISH
- 
-! test formatted output where the output field is too small
-LIST/I=1:3/FORMAT=(F6.2) 1/(i-2)		! single column test
-             VARIABLE : 1/(I-2)
-             BAD FLAG : -1.E+34       
-             SUBSET   : 3 points (X)
-             X        : 0.5 to 3.5
- -1.00
-******
-  1.00
-LIST/I=1:3/FORMAT=(2F6.2) 1/(i-2),2/(i-2)	! multi-column test
-             X: 0.5 to 3.5
- Column  1: EX#1 is 1/(I-2)
- Column  2: EX#2 is 2/(I-2)
- -1.00 -2.00
-************
-  1.00  2.00
- 
-! test new grid box limit pseudo-variables
-LIST/I=5:7 XBOXLO, XBOXHI
-             X: 4.5 to 7.5
- Column  1: XBOXLO is XBOXLO (axis ABSTRACT)
- Column  2: XBOXHI is XBOXHI (axis ABSTRACT)
-        XBOXLO  XBOXHI
-5   / 5:  4.500  5.500
-6   / 6:  5.500  6.500
-7   / 7:  6.500  7.500
-LIST/J=5:7 YBOXLO, YBOXHI
-             Y: 4.5 to 7.5
- Column  1: YBOXLO is YBOXLO (axis ABSTRACT)
- Column  2: YBOXHI is YBOXHI (axis ABSTRACT)
-        YBOXLO  YBOXHI
-5   / 5:  4.500  5.500
-6   / 6:  5.500  6.500
-7   / 7:  6.500  7.500
-LIST/K=5:7 ZBOXLO, ZBOXHI
-             Z: 4.5 to 7.5
- Column  1: ZBOXLO is ZBOXLO (axis ABSTRACT)
- Column  2: ZBOXHI is ZBOXHI (axis ABSTRACT)
-        ZBOXLO  ZBOXHI
-5   / 5:  4.500  5.500
-6   / 6:  5.500  6.500
-7   / 7:  6.500  7.500
-LIST/L=5:7 TBOXLO, TBOXHI
-             T: 4.5 to 7.5
- Column  1: TBOXLO is TBOXLO (axis ABSTRACT)
- Column  2: TBOXHI is TBOXHI (axis ABSTRACT)
-        TBOXLO  TBOXHI
-5   / 5:  4.500  5.500
-6   / 6:  5.500  6.500
-7   / 7:  6.500  7.500
- 
-GO bn_reset
-cancel mode verify
-GO bn_geometry
-! bn200_geometry.JNL
-! benchmark various geometries for accessing FERRET data
-! similar tests are performed on:
-!	abstract variable
-!	(user variable) transformed file variable
-!	memory-resident file variable
-!	disk-resident file variable
-!	diagnostic variable
- 
-! ******** abstract variable ************
-LET v_abst = i + 10*j + 100*k + 1000*l
-DEFINE REGION/I=1 IPT
-DEFINE REGION/J=1 JPT
-DEFINE REGION/K=1 KPT
-DEFINE REGION/L=1 LPT
-DEFINE REGION/I=1:5/J=1:5/K=1:5/L=1:5 R4D
-SET REG R4D
-SET EXPRESSION v_abst
-GO bn_geometry.sub
-! BN200_GEOMETRY.SUB
-! list the variable vtest on variuos geometries
- 
-! this routine assumes that a 4-D region and an expression are already set
- 
-! lines of data
-LIST/@JPT/@KPT/@LPT/ORDER=X
-             VARIABLE : I + 10*J + 100*K + 1000*L
-             SUBSET   : 5 points (X)
-             Y        : 1
-             Z        : 1
-             T        : 1
-            1      2      3      4      5    
-            1      2      3      4      5
-          1111.  1112.  1113.  1114.  1115.
-LIST/@IPT/@KPT/@LPT/ORDER=Y
-             VARIABLE : I + 10*J + 100*K + 1000*L
-             SUBSET   : 5 points (Y)
-             X        : 1
-             Z        : 1
-             T        : 1
-            1      2      3      4      5    
-            1      2      3      4      5
-          1111.  1121.  1131.  1141.  1151.
-LIST/@IPT/@JPT/@LPT/ORDER=Z
-             VARIABLE : I + 10*J + 100*K + 1000*L
-             SUBSET   : 5 points (Z)
-             X        : 1
-             Y        : 1
-             T        : 1
-            1      2      3      4      5    
-            1      2      3      4      5
-          1111.  1211.  1311.  1411.  1511.
-LIST/@IPT/@JPT/@KPT/ORDER=T
-             VARIABLE : I + 10*J + 100*K + 1000*L
-             SUBSET   : 5 points (T)
-             X        : 1
-             Y        : 1
-             Z        : 1
-            1      2      3      4      5    
-            1      2      3      4      5
-          1111.  2111.  3111.  4111.  5111.
- 
-! planes of data
-LIST/@KPT/@LPT	!XY
-             VARIABLE : I + 10*J + 100*K + 1000*L
-             SUBSET   : 5 by 5 points (X-Y)
-             Z        : 1
-             T        : 1
-             1      2      3      4      5    
-             1      2      3      4      5
- 1   / 1:  1111.  1112.  1113.  1114.  1115.
- 2   / 2:  1121.  1122.  1123.  1124.  1125.
- 3   / 3:  1131.  1132.  1133.  1134.  1135.
- 4   / 4:  1141.  1142.  1143.  1144.  1145.
- 5   / 5:  1151.  1152.  1153.  1154.  1155.
-LIST/@JPT/@LPT	!XZ
-             VARIABLE : I + 10*J + 100*K + 1000*L
-             SUBSET   : 5 by 5 points (X-Z)
-             Y        : 1
-             T        : 1
-             1      2      3      4      5    
-             1      2      3      4      5
- 1   / 1:  1111.  1112.  1113.  1114.  1115.
- 2   / 2:  1211.  1212.  1213.  1214.  1215.
- 3   / 3:  1311.  1312.  1313.  1314.  1315.
- 4   / 4:  1411.  1412.  1413.  1414.  1415.
- 5   / 5:  1511.  1512.  1513.  1514.  1515.
-LIST/@JPT/@KPT	!XT
-             VARIABLE : I + 10*J + 100*K + 1000*L
-             SUBSET   : 5 by 5 points (X-T)
-             Y        : 1
-             Z        : 1
-             1      2      3      4      5    
-             1      2      3      4      5
- 1   / 1:  1111.  1112.  1113.  1114.  1115.
- 2   / 2:  2111.  2112.  2113.  2114.  2115.
- 3   / 3:  3111.  3112.  3113.  3114.  3115.
- 4   / 4:  4111.  4112.  4113.  4114.  4115.
- 5   / 5:  5111.  5112.  5113.  5114.  5115.
-LIST/@IPT/@LPT	!YZ
-             VARIABLE : I + 10*J + 100*K + 1000*L
-             SUBSET   : 5 by 5 points (Y-Z)
-             X        : 1
-             T        : 1
-             1      2      3      4      5    
-             1      2      3      4      5
- 1   / 1:  1111.  1121.  1131.  1141.  1151.
- 2   / 2:  1211.  1221.  1231.  1241.  1251.
- 3   / 3:  1311.  1321.  1331.  1341.  1351.
- 4   / 4:  1411.  1421.  1431.  1441.  1451.
- 5   / 5:  1511.  1521.  1531.  1541.  1551.
-LIST/@IPT/@KPT	!YT
-             VARIABLE : I + 10*J + 100*K + 1000*L
-             SUBSET   : 5 by 5 points (Y-T)
-             X        : 1
-             Z        : 1
-             1      2      3      4      5    
-             1      2      3      4      5
- 1   / 1:  1111.  1121.  1131.  1141.  1151.
- 2   / 2:  2111.  2121.  2131.  2141.  2151.
- 3   / 3:  3111.  3121.  3131.  3141.  3151.
- 4   / 4:  4111.  4121.  4131.  4141.  4151.
- 5   / 5:  5111.  5121.  5131.  5141.  5151.
-LIST/@IPT/@JPT	!ZT
-             VARIABLE : I + 10*J + 100*K + 1000*L
-             SUBSET   : 5 by 5 points (Z-T)
-             X        : 1
-             Y        : 1
-             1      2      3      4      5    
-             1      2      3      4      5
- 1   / 1:  1111.  1211.  1311.  1411.  1511.
- 2   / 2:  2111.  2211.  2311.  2411.  2511.
- 3   / 3:  3111.  3211.  3311.  3411.  3511.
- 4   / 4:  4111.  4211.  4311.  4411.  4511.
- 5   / 5:  5111.  5211.  5311.  5411.  5511.
- 
-! cubes of data
-LIST/@LPT
-             VARIABLE : I + 10*J + 100*K + 1000*L
-             SUBSET   : 5 by 5 by 5 points (X-Y-Z)
-             T        : 1
-             1      2      3      4      5    
-             1      2      3      4      5
- ---- K:1 Z:   1
- 1   / 1:  1111.  1112.  1113.  1114.  1115.
- 2   / 2:  1121.  1122.  1123.  1124.  1125.
- 3   / 3:  1131.  1132.  1133.  1134.  1135.
- 4   / 4:  1141.  1142.  1143.  1144.  1145.
- 5   / 5:  1151.  1152.  1153.  1154.  1155.
- ---- K:2 Z:   2
- 1   / 1:  1211.  1212.  1213.  1214.  1215.
- 2   / 2:  1221.  1222.  1223.  1224.  1225.
- 3   / 3:  1231.  1232.  1233.  1234.  1235.
- 4   / 4:  1241.  1242.  1243.  1244.  1245.
- 5   / 5:  1251.  1252.  1253.  1254.  1255.
- ---- K:3 Z:   3
- 1   / 1:  1311.  1312.  1313.  1314.  1315.
- 2   / 2:  1321.  1322.  1323.  1324.  1325.
- 3   / 3:  1331.  1332.  1333.  1334.  1335.
- 4   / 4:  1341.  1342.  1343.  1344.  1345.
- 5   / 5:  1351.  1352.  1353.  1354.  1355.
- ---- K:4 Z:   4
- 1   / 1:  1411.  1412.  1413.  1414.  1415.
- 2   / 2:  1421.  1422.  1423.  1424.  1425.
- 3   / 3:  1431.  1432.  1433.  1434.  1435.
- 4   / 4:  1441.  1442.  1443.  1444.  1445.
- 5   / 5:  1451.  1452.  1453.  1454.  1455.
- ---- K:5 Z:   5
- 1   / 1:  1511.  1512.  1513.  1514.  1515.
- 2   / 2:  1521.  1522.  1523.  1524.  1525.
- 3   / 3:  1531.  1532.  1533.  1534.  1535.
- 4   / 4:  1541.  1542.  1543.  1544.  1545.
- 5   / 5:  1551.  1552.  1553.  1554.  1555.
-LIST/@KPT
-             VARIABLE : I + 10*J + 100*K + 1000*L
-             SUBSET   : 5 by 5 by 5 points (X-Y-T)
-             Z        : 1
-             1      2      3      4      5    
-             1      2      3      4      5
- ---- L:1 T:   1
- 1   / 1:  1111.  1112.  1113.  1114.  1115.
- 2   / 2:  1121.  1122.  1123.  1124.  1125.
- 3   / 3:  1131.  1132.  1133.  1134.  1135.
- 4   / 4:  1141.  1142.  1143.  1144.  1145.
- 5   / 5:  1151.  1152.  1153.  1154.  1155.
- ---- L:2 T:   2
- 1   / 1:  2111.  2112.  2113.  2114.  2115.
- 2   / 2:  2121.  2122.  2123.  2124.  2125.
- 3   / 3:  2131.  2132.  2133.  2134.  2135.
- 4   / 4:  2141.  2142.  2143.  2144.  2145.
- 5   / 5:  2151.  2152.  2153.  2154.  2155.
- ---- L:3 T:   3
- 1   / 1:  3111.  3112.  3113.  3114.  3115.
- 2   / 2:  3121.  3122.  3123.  3124.  3125.
- 3   / 3:  3131.  3132.  3133.  3134.  3135.
- 4   / 4:  3141.  3142.  3143.  3144.  3145.
- 5   / 5:  3151.  3152.  3153.  3154.  3155.
- ---- L:4 T:   4
- 1   / 1:  4111.  4112.  4113.  4114.  4115.
- 2   / 2:  4121.  4122.  4123.  4124.  4125.
- 3   / 3:  4131.  4132.  4133.  4134.  4135.
- 4   / 4:  4141.  4142.  4143.  4144.  4145.
- 5   / 5:  4151.  4152.  4153.  4154.  4155.
- ---- L:5 T:   5
- 1   / 1:  5111.  5112.  5113.  5114.  5115.
- 2   / 2:  5121.  5122.  5123.  5124.  5125.
- 3   / 3:  5131.  5132.  5133.  5134.  5135.
- 4   / 4:  5141.  5142.  5143.  5144.  5145.
- 5   / 5:  5151.  5152.  5153.  5154.  5155.
-LIST/@JPT
-             VARIABLE : I + 10*J + 100*K + 1000*L
-             SUBSET   : 5 by 5 by 5 points (X-Z-T)
-             Y        : 1
-             1      2      3      4      5    
-             1      2      3      4      5
- ---- L:1 T:   1
- 1   / 1:  1111.  1112.  1113.  1114.  1115.
- 2   / 2:  1211.  1212.  1213.  1214.  1215.
- 3   / 3:  1311.  1312.  1313.  1314.  1315.
- 4   / 4:  1411.  1412.  1413.  1414.  1415.
- 5   / 5:  1511.  1512.  1513.  1514.  1515.
- ---- L:2 T:   2
- 1   / 1:  2111.  2112.  2113.  2114.  2115.
- 2   / 2:  2211.  2212.  2213.  2214.  2215.
- 3   / 3:  2311.  2312.  2313.  2314.  2315.
- 4   / 4:  2411.  2412.  2413.  2414.  2415.
- 5   / 5:  2511.  2512.  2513.  2514.  2515.
- ---- L:3 T:   3
- 1   / 1:  3111.  3112.  3113.  3114.  3115.
- 2   / 2:  3211.  3212.  3213.  3214.  3215.
- 3   / 3:  3311.  3312.  3313.  3314.  3315.
- 4   / 4:  3411.  3412.  3413.  3414.  3415.
- 5   / 5:  3511.  3512.  3513.  3514.  3515.
- ---- L:4 T:   4
- 1   / 1:  4111.  4112.  4113.  4114.  4115.
- 2   / 2:  4211.  4212.  4213.  4214.  4215.
- 3   / 3:  4311.  4312.  4313.  4314.  4315.
- 4   / 4:  4411.  4412.  4413.  4414.  4415.
- 5   / 5:  4511.  4512.  4513.  4514.  4515.
- ---- L:5 T:   5
- 1   / 1:  5111.  5112.  5113.  5114.  5115.
- 2   / 2:  5211.  5212.  5213.  5214.  5215.
- 3   / 3:  5311.  5312.  5313.  5314.  5315.
- 4   / 4:  5411.  5412.  5413.  5414.  5415.
- 5   / 5:  5511.  5512.  5513.  5514.  5515.
-LIST/@IPT
-             VARIABLE : I + 10*J + 100*K + 1000*L
-             SUBSET   : 5 by 5 by 5 points (Y-Z-T)
-             X        : 1
-             1      2      3      4      5    
-             1      2      3      4      5
- ---- L:1 T:   1
- 1   / 1:  1111.  1121.  1131.  1141.  1151.
- 2   / 2:  1211.  1221.  1231.  1241.  1251.
- 3   / 3:  1311.  1321.  1331.  1341.  1351.
- 4   / 4:  1411.  1421.  1431.  1441.  1451.
- 5   / 5:  1511.  1521.  1531.  1541.  1551.
- ---- L:2 T:   2
- 1   / 1:  2111.  2121.  2131.  2141.  2151.
- 2   / 2:  2211.  2221.  2231.  2241.  2251.
- 3   / 3:  2311.  2321.  2331.  2341.  2351.
- 4   / 4:  2411.  2421.  2431.  2441.  2451.
- 5   / 5:  2511.  2521.  2531.  2541.  2551.
- ---- L:3 T:   3
- 1   / 1:  3111.  3121.  3131.  3141.  3151.
- 2   / 2:  3211.  3221.  3231.  3241.  3251.
- 3   / 3:  3311.  3321.  3331.  3341.  3351.
- 4   / 4:  3411.  3421.  3431.  3441.  3451.
- 5   / 5:  3511.  3521.  3531.  3541.  3551.
- ---- L:4 T:   4
- 1   / 1:  4111.  4121.  4131.  4141.  4151.
- 2   / 2:  4211.  4221.  4231.  4241.  4251.
- 3   / 3:  4311.  4321.  4331.  4341.  4351.
- 4   / 4:  4411.  4421.  4431.  4441.  4451.
- 5   / 5:  4511.  4521.  4531.  4541.  4551.
- ---- L:5 T:   5
- 1   / 1:  5111.  5121.  5131.  5141.  5151.
- 2   / 2:  5211.  5221.  5231.  5241.  5251.
- 3   / 3:  5311.  5321.  5331.  5341.  5351.
- 4   / 4:  5411.  5421.  5431.  5441.  5451.
- 5   / 5:  5511.  5521.  5531.  5541.  5551.
- 
-! 4D region
-LOAD
- 
-! ******** transformed file variable ************
-USE gt4d011
-LET temp_sq = temp^2
-DEFINE REGION/I=101 IPT
-DEFINE REGION/J=46 JPT
-DEFINE REGION/K=1 KPT
-DEFINE REGION/L=1 LPT
-DEFINE REGION/I=101:105/J=46:50/K=1:5/L=1:5 R4D
-SET REG R4D
-SET EXPRESSION temp_sq
-GO bn_geometry.sub
-! BN200_GEOMETRY.SUB
-! list the variable vtest on variuos geometries
- 
-! this routine assumes that a 4-D region and an expression are already set
- 
-! lines of data
-LIST/@JPT/@KPT/@LPT/ORDER=X
-             VARIABLE : TEMP^2
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 points (LONGITUDE)
-             LATITUDE : 0.2N
-             DEPTH (m): 5
-             TIME     : 17-AUG-1982 12:00
-          129.5W 128.5W 127.5W 126.5W 125.5W 
-          101    102    103    104    105
-          664.8  665.8  666.6  665.4  662.8
-LIST/@IPT/@KPT/@LPT/ORDER=Y
-             VARIABLE : TEMP^2
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 points (LATITUDE)
-             LONGITUDE: 129.5W
-             DEPTH (m): 5
-             TIME     : 17-AUG-1982 12:00
-           0.17N  0.5N   0.83N  1.17N  1.5N  
-           46     47     48     49     50
-          664.8  670.7  678.3  687.3  698.1
-LIST/@IPT/@JPT/@LPT/ORDER=Z
-             VARIABLE : TEMP^2
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 points (DEPTH (m))
-             LONGITUDE: 129.5W
-             LATITUDE : 0.2N
-             TIME     : 17-AUG-1982 12:00
-           5      15     25     35     45    
-            1      2      3      4      5
-          664.8  658.8  650.5  642.6  633.2
-LIST/@IPT/@JPT/@KPT/ORDER=T
-             VARIABLE : TEMP^2
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 points (TIME)
-             LONGITUDE: 129.5W
-             LATITUDE : 0.2N
-             DEPTH (m): 5
-           1982   1982   1982   1982   1982  
-            1      2      3      4      5
-          664.8  674.8  685.3  696.6  708.4
- 
-! planes of data
-LIST/@KPT/@LPT	!XY
-             VARIABLE : TEMP^2
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 17-AUG-1982 12:00
-              129.5W 128.5W 127.5W 126.5W 125.5W 
-              101    102    103    104    105
- 1.5N  / 50:  698.1  699.9  702.0  702.5  701.2
- 1.17N / 49:  687.3  690.0  691.9  691.7  689.5
- 0.83N / 48:  678.3  681.0  682.6  681.7  678.9
- 0.5N  / 47:  670.7  672.9  674.1  672.9  670.1
- 0.17N / 46:  664.8  665.8  666.6  665.4  662.8
-LIST/@JPT/@LPT	!XZ
-             VARIABLE : TEMP^2
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 by 5 points (LONGITUDE-DEPTH (m))
-             LATITUDE : 0.2N
-             TIME     : 17-AUG-1982 12:00
-             129.5W 128.5W 127.5W 126.5W 125.5W 
-             101    102    103    104    105
- 5     / 1:  664.8  665.8  666.6  665.4  662.8
- 15    / 2:  658.8  659.8  660.6  659.5  657.0
- 25    / 3:  650.5  651.6  652.5  651.8  649.5
- 35    / 4:  642.6  643.2  643.2  642.2  639.8
- 45    / 5:  633.2  632.6  631.0  628.7  625.8
-LIST/@JPT/@KPT	!XT
-             VARIABLE : TEMP^2
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 by 5 points (LONGITUDE-TIME)
-             LATITUDE : 0.2N
-             DEPTH (m): 5
-                      129.5W 128.5W 127.5W 126.5W 125.5W 
-                      101    102    103    104    105
- 17-AUG-1982 12 / 1:  664.8  665.8  666.6  665.4  662.8
- 23-AUG-1982 14 / 2:  674.8  674.4  672.8  670.1  667.2
- 29-AUG-1982 16 / 3:  685.3  682.5  679.4  676.5  674.4
- 04-SEP-1982 18 / 4:  696.6  692.3  688.4  685.6  684.0
- 10-SEP-1982 20 / 5:  708.4  704.7  700.4  697.1  695.1
-LIST/@IPT/@LPT	!YZ
-             VARIABLE : TEMP^2
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 by 5 points (LATITUDE-DEPTH (m))
-             LONGITUDE: 129.5W
-             TIME     : 17-AUG-1982 12:00
-              0.17N  0.5N   0.83N  1.17N  1.5N  
-              46     47     48     49     50
- 5     / 1:  664.8  670.7  678.3  687.3  698.1
- 15    / 2:  658.8  665.4  673.8  683.5  694.9
- 25    / 3:  650.5  659.6  670.7  682.2  694.3
- 35    / 4:  642.6  654.3  668.7  681.9  694.4
- 45    / 5:  633.2  645.7  664.2  681.4  694.5
-LIST/@IPT/@KPT	!YT
-             VARIABLE : TEMP^2
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 by 5 points (LATITUDE-TIME)
-             LONGITUDE: 129.5W
-             DEPTH (m): 5
-                       0.17N  0.5N   0.83N  1.17N  1.5N  
-                       46     47     48     49     50
- 17-AUG-1982 12 / 1:  664.8  670.7  678.3  687.3  698.1
- 23-AUG-1982 14 / 2:  674.8  681.5  689.5  699.0  710.0
- 29-AUG-1982 16 / 3:  685.3  691.9  700.1  710.3  721.6
- 04-SEP-1982 18 / 4:  696.6  702.9  711.1  721.2  731.5
- 10-SEP-1982 20 / 5:  708.4  714.1  721.8  730.4  738.2
-LIST/@IPT/@JPT	!ZT
-             VARIABLE : TEMP^2
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 by 5 points (DEPTH (m)-TIME)
-             LONGITUDE: 129.5W
-             LATITUDE : 0.2N
-                       5      15     25     35     45    
-                        1      2      3      4      5
- 17-AUG-1982 12 / 1:  664.8  658.8  650.5  642.6  633.2
- 23-AUG-1982 14 / 2:  674.8  669.2  660.6  652.7  643.1
- 29-AUG-1982 16 / 3:  685.3  680.3  672.3  665.2  655.3
- 04-SEP-1982 18 / 4:  696.6  692.0  684.3  677.9  667.3
- 10-SEP-1982 20 / 5:  708.4  704.0  695.0  688.9  678.3
- 
-! cubes of data
-LIST/@LPT
-             VARIABLE : TEMP^2
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 by 5 by 5 points (LONGITUDE-LATITUDE-DEPTH (m))
-             TIME     : 17-AUG-1982 12:00
-              129.5W 128.5W 127.5W 126.5W 125.5W 
-              101    102    103    104    105
- ---- K:1 Z:   5
- 1.5N  / 50:  698.1  699.9  702.0  702.5  701.2
- 1.17N / 49:  687.3  690.0  691.9  691.7  689.5
- 0.83N / 48:  678.3  681.0  682.6  681.7  678.9
- 0.5N  / 47:  670.7  672.9  674.1  672.9  670.1
- 0.17N / 46:  664.8  665.8  666.6  665.4  662.8
- ---- K:2 Z:   15
- 1.5N  / 50:  694.9  696.6  698.7  699.4  698.2
- 1.17N / 49:  683.5  686.1  688.3  688.2  686.2
- 0.83N / 48:  673.8  676.5  678.3  677.6  675.0
- 0.5N  / 47:  665.4  667.6  669.0  668.0  665.2
- 0.17N / 46:  658.8  659.8  660.6  659.5  657.0
- ---- K:3 Z:   25
- 1.5N  / 50:  694.3  695.9  698.0  698.9  697.7
- 1.17N / 49:  682.2  684.7  687.1  687.4  685.4
- 0.83N / 48:  670.7  673.5  675.7  675.5  673.0
- 0.5N  / 47:  659.6  661.9  663.6  663.2  660.6
- 0.17N / 46:  650.5  651.6  652.5  651.8  649.5
- ---- K:4 Z:   35
- 1.5N  / 50:  694.4  696.0  698.1  699.0  697.8
- 1.17N / 49:  681.9  684.4  686.8  687.2  685.2
- 0.83N / 48:  668.7  671.3  673.3  673.5  671.0
- 0.5N  / 47:  654.3  656.2  657.3  656.9  654.3
- 0.17N / 46:  642.6  643.2  643.2  642.2  639.8
- ---- K:5 Z:   45
- 1.5N  / 50:  694.5  696.1  698.2  699.0  697.9
- 1.17N / 49:  681.4  683.8  685.9  686.5  684.5
- 0.83N / 48:  664.2  665.9  666.5  666.0  663.3
- 0.5N  / 47:  645.7  646.5  645.8  644.0  641.0
- 0.17N / 46:  633.2  632.6  631.0  628.7  625.8
-LIST/@KPT
-             VARIABLE : TEMP^2
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 by 5 by 5 points (LONGITUDE-LATITUDE-TIME)
-             DEPTH (m): 5
-              129.5W 128.5W 127.5W 126.5W 125.5W 
-              101    102    103    104    105
- ---- L:1 T:   17-AUG-1982 12:00
- 1.5N  / 50:  698.1  699.9  702.0  702.5  701.2
- 1.17N / 49:  687.3  690.0  691.9  691.7  689.5
- 0.83N / 48:  678.3  681.0  682.6  681.7  678.9
- 0.5N  / 47:  670.7  672.9  674.1  672.9  670.1
- 0.17N / 46:  664.8  665.8  666.6  665.4  662.8
- ---- L:2 T:   23-AUG-1982 14:00
- 1.5N  / 50:  710.0  709.0  707.8  706.0  703.5
- 1.17N / 49:  699.0  698.2  697.0  694.4  691.4
- 0.83N / 48:  689.5  689.0  687.5  684.5  681.3
- 0.5N  / 47:  681.5  681.1  679.5  676.5  673.4
- 0.17N / 46:  674.8  674.4  672.8  670.1  667.2
- ---- L:3 T:   29-AUG-1982 16:00
- 1.5N  / 50:  721.6  717.3  712.8  709.6  707.5
- 1.17N / 49:  710.3  705.9  701.5  698.1  695.9
- 0.83N / 48:  700.1  696.1  692.1  688.7  686.5
- 0.5N  / 47:  691.9  688.4  684.9  681.7  679.5
- 0.17N / 46:  685.3  682.5  679.4  676.5  674.4
- ---- L:4 T:   04-SEP-1982 18:00
- 1.5N  / 50:  731.5  725.7  718.0  713.9  713.0
- 1.17N / 49:  721.2  714.2  707.1  703.4  702.5
- 0.83N / 48:  711.1  704.5  698.6  695.2  694.3
- 0.5N  / 47:  702.9  697.4  692.6  689.5  688.3
- 0.17N / 46:  696.6  692.3  688.4  685.6  684.0
- ---- L:5 T:   10-SEP-1982 20:00
- 1.5N  / 50:  738.2  735.8  726.4  720.5  720.1
- 1.17N / 49:  730.4  725.1  716.1  711.0  710.5
- 0.83N / 48:  721.8  715.7  708.5  704.2  703.4
- 0.5N  / 47:  714.1  708.9  703.4  699.8  698.4
- 0.17N / 46:  708.4  704.7  700.4  697.1  695.1
-LIST/@JPT
-             VARIABLE : TEMP^2
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 by 5 by 5 points (LONGITUDE-DEPTH (m)-TIME)
-             LATITUDE : 0.2N
-             129.5W 128.5W 127.5W 126.5W 125.5W 
-             101    102    103    104    105
- ---- L:1 T:   17-AUG-1982 12:00
- 5     / 1:  664.8  665.8  666.6  665.4  662.8
- 15    / 2:  658.8  659.8  660.6  659.5  657.0
- 25    / 3:  650.5  651.6  652.5  651.8  649.5
- 35    / 4:  642.6  643.2  643.2  642.2  639.8
- 45    / 5:  633.2  632.6  631.0  628.7  625.8
- ---- L:2 T:   23-AUG-1982 14:00
- 5     / 1:  674.8  674.4  672.8  670.1  667.2
- 15    / 2:  669.2  668.9  667.3  664.6  661.6
- 25    / 3:  660.6  660.8  659.4  656.7  653.6
- 35    / 4:  652.7  652.9  651.0  648.1  644.9
- 45    / 5:  643.1  642.3  639.7  636.2  633.0
- ---- L:3 T:   29-AUG-1982 16:00
- 5     / 1:  685.3  682.5  679.4  676.5  674.4
- 15    / 2:  680.3  677.5  674.3  671.3  669.0
- 25    / 3:  672.3  670.2  666.5  662.8  660.1
- 35    / 4:  665.2  663.6  659.6  655.6  652.4
- 45    / 5:  655.3  653.6  649.7  645.7  642.6
- ---- L:4 T:   04-SEP-1982 18:00
- 5     / 1:  696.6  692.3  688.4  685.6  684.0
- 15    / 2:  692.0  687.7  683.5  680.5  678.8
- 25    / 3:  684.3  680.5  675.0  670.7  668.3
- 35    / 4:  677.9  674.9  669.3  664.5  661.4
- 45    / 5:  667.3  665.0  660.5  656.2  653.0
- ---- L:5 T:   10-SEP-1982 20:00
- 5     / 1:  708.4  704.7  700.4  697.1  695.1
- 15    / 2:  704.0  700.2  695.7  692.1  690.1
- 25    / 3:  695.0  692.2  685.8  680.4  677.6
- 35    / 4:  688.9  687.1  680.9  675.2  671.8
- 45    / 5:  678.3  676.6  672.2  667.7  664.3
-LIST/@IPT
-             VARIABLE : TEMP^2
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 by 5 by 5 points (LATITUDE-DEPTH (m)-TIME)
-             LONGITUDE: 129.5W
-              0.17N  0.5N   0.83N  1.17N  1.5N  
-              46     47     48     49     50
- ---- L:1 T:   17-AUG-1982 12:00
- 5     / 1:  664.8  670.7  678.3  687.3  698.1
- 15    / 2:  658.8  665.4  673.8  683.5  694.9
- 25    / 3:  650.5  659.6  670.7  682.2  694.3
- 35    / 4:  642.6  654.3  668.7  681.9  694.4
- 45    / 5:  633.2  645.7  664.2  681.4  694.5
- ---- L:2 T:   23-AUG-1982 14:00
- 5     / 1:  674.8  681.5  689.5  699.0  710.0
- 15    / 2:  669.2  676.7  685.5  695.7  707.2
- 25    / 3:  660.6  671.4  683.3  694.9  706.9
- 35    / 4:  652.7  666.4  681.9  694.9  707.0
- 45    / 5:  643.1  657.3  677.1  694.8  707.0
- ---- L:3 T:   29-AUG-1982 16:00
- 5     / 1:  685.3  691.9  700.1  710.3  721.6
- 15    / 2:  680.3  687.7  696.8  707.5  719.1
- 25    / 3:  672.3  683.9  695.6  707.2  718.8
- 35    / 4:  665.2  680.2  695.2  707.3  718.9
- 45    / 5:  655.3  670.9  691.1  707.3  718.9
- ---- L:4 T:   04-SEP-1982 18:00
- 5     / 1:  696.6  702.9  711.1  721.2  731.5
- 15    / 2:  692.0  699.1  708.1  718.5  728.9
- 25    / 3:  684.3  696.0  707.3  718.3  728.5
- 35    / 4:  677.9  693.1  707.2  718.3  728.7
- 45    / 5:  667.3  683.1  703.1  718.3  728.7
- ---- L:5 T:   10-SEP-1982 20:00
- 5     / 1:  708.4  714.1  721.8  730.4  738.2
- 15    / 2:  704.0  710.4  718.6  727.4  735.1
- 25    / 3:  695.0  706.8  717.4  726.4  733.8
- 35    / 4:  688.9  703.8  717.2  726.4  733.8
- 45    / 5:  678.3  692.9  712.0  726.2  733.9
- 
-! 4D region
-LOAD
- 
-! ******** memory-resident file variable ************
-USE gt4d011
-CANCEL MEMORY/ALL
-SET MODE DIAGNOSTIC
-DEFINE REGION/I=101 IPT
- dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
-DEFINE REGION/J=46 JPT
-DEFINE REGION/K=1 KPT
-DEFINE REGION/L=1 LPT
-DEFINE REGION/I=101:105/J=46:50/K=1:5/L=1:5 R4D
-SET REG R4D
-SET EXPRESSION temp
-LOAD		! load full 4-D region
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
-GO bn_geometry.sub
-! BN200_GEOMETRY.SUB
-! list the variable vtest on variuos geometries
- 
-! this routine assumes that a 4-D region and an expression are already set
- 
-! lines of data
-LIST/@JPT/@KPT/@LPT/ORDER=X
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 points (LONGITUDE)
-             LATITUDE : 0.2N
-             DEPTH (m): 5
-             TIME     : 17-AUG-1982 12:00
-          129.5W 128.5W 127.5W 126.5W 125.5W 
-          101    102    103    104    105
-          25.78  25.80  25.82  25.80  25.74
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
-LIST/@IPT/@KPT/@LPT/ORDER=Y
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 points (LATITUDE)
-             LONGITUDE: 129.5W
-             DEPTH (m): 5
-             TIME     : 17-AUG-1982 12:00
-           0.17N  0.5N   0.83N  1.17N  1.5N  
-           46     47     48     49     50
-          25.78  25.90  26.04  26.22  26.42
- -DELETE TEMP     M: 29 dset:   1 I:   46   50  J:  101  101  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
-LIST/@IPT/@JPT/@LPT/ORDER=Z
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   46  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 points (DEPTH (m))
-             LONGITUDE: 129.5W
-             LATITUDE : 0.2N
-             TIME     : 17-AUG-1982 12:00
-           5      15     25     35     45    
-            1      2      3      4      5
-          25.78  25.67  25.51  25.35  25.16
- -DELETE TEMP     M: 29 dset:   1 I:    1    5  J:  101  101  K:   46   46  L:    1    1  M: -999 -999  N: -999 -999
-LIST/@IPT/@JPT/@KPT/ORDER=T
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   46  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 points (TIME)
-             LONGITUDE: 129.5W
-             LATITUDE : 0.2N
-             DEPTH (m): 5
-           1982   1982   1982   1982   1982  
-            1      2      3      4      5
-          25.78  25.98  26.18  26.39  26.62
- -DELETE TEMP     M: 29 dset:   1 I:    1    5  J:  101  101  K:   46   46  L:    1    1  M: -999 -999  N: -999 -999
- 
-! planes of data
-LIST/@KPT/@LPT	!XY
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 17-AUG-1982 12:00
-              129.5W 128.5W 127.5W 126.5W 125.5W 
-              101    102    103    104    105
- 1.5N  / 50:  26.42  26.46  26.50  26.51  26.48
- 1.17N / 49:  26.22  26.27  26.30  26.30  26.26
- 0.83N / 48:  26.04  26.10  26.13  26.11  26.06
- 0.5N  / 47:  25.90  25.94  25.96  25.94  25.89
- 0.17N / 46:  25.78  25.80  25.82  25.80  25.74
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
-LIST/@JPT/@LPT	!XZ
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 by 5 points (LONGITUDE-DEPTH (m))
-             LATITUDE : 0.2N
-             TIME     : 17-AUG-1982 12:00
-             129.5W 128.5W 127.5W 126.5W 125.5W 
-             101    102    103    104    105
- 5     / 1:  25.78  25.80  25.82  25.80  25.74
- 15    / 2:  25.67  25.69  25.70  25.68  25.63
- 25    / 3:  25.51  25.53  25.54  25.53  25.48
- 35    / 4:  25.35  25.36  25.36  25.34  25.29
- 45    / 5:  25.16  25.15  25.12  25.07  25.02
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:    1    5  K:   46   46  L:    1    1  M: -999 -999  N: -999 -999
-LIST/@JPT/@KPT	!XT
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 by 5 points (LONGITUDE-TIME)
-             LATITUDE : 0.2N
-             DEPTH (m): 5
-                      129.5W 128.5W 127.5W 126.5W 125.5W 
-                      101    102    103    104    105
- 17-AUG-1982 12 / 1:  25.78  25.80  25.82  25.80  25.74
- 23-AUG-1982 14 / 2:  25.98  25.97  25.94  25.89  25.83
- 29-AUG-1982 16 / 3:  26.18  26.13  26.07  26.01  25.97
- 04-SEP-1982 18 / 4:  26.39  26.31  26.24  26.18  26.15
- 10-SEP-1982 20 / 5:  26.62  26.55  26.47  26.40  26.36
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:    1    5  K:   46   46  L:    1    1  M: -999 -999  N: -999 -999
-LIST/@IPT/@LPT	!YZ
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 by 5 points (LATITUDE-DEPTH (m))
-             LONGITUDE: 129.5W
-             TIME     : 17-AUG-1982 12:00
-              0.17N  0.5N   0.83N  1.17N  1.5N  
-              46     47     48     49     50
- 5     / 1:  25.78  25.90  26.04  26.22  26.42
- 15    / 2:  25.67  25.80  25.96  26.14  26.36
- 25    / 3:  25.51  25.68  25.90  26.12  26.35
- 35    / 4:  25.35  25.58  25.86  26.11  26.35
- 45    / 5:  25.16  25.41  25.77  26.10  26.35
- -DELETE TEMP     M: 29 dset:   1 I:   46   50  J:    1    5  K:  101  101  L:    1    1  M: -999 -999  N: -999 -999
-LIST/@IPT/@KPT	!YT
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 by 5 points (LATITUDE-TIME)
-             LONGITUDE: 129.5W
-             DEPTH (m): 5
-                       0.17N  0.5N   0.83N  1.17N  1.5N  
-                       46     47     48     49     50
- 17-AUG-1982 12 / 1:  25.78  25.90  26.04  26.22  26.42
- 23-AUG-1982 14 / 2:  25.98  26.10  26.26  26.44  26.65
- 29-AUG-1982 16 / 3:  26.18  26.30  26.46  26.65  26.86
- 04-SEP-1982 18 / 4:  26.39  26.51  26.67  26.85  27.05
- 10-SEP-1982 20 / 5:  26.62  26.72  26.87  27.03  27.17
- -DELETE TEMP     M: 29 dset:   1 I:   46   50  J:    1    5  K:  101  101  L:    1    1  M: -999 -999  N: -999 -999
-LIST/@IPT/@JPT	!ZT
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   46  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 by 5 points (DEPTH (m)-TIME)
-             LONGITUDE: 129.5W
-             LATITUDE : 0.2N
-                       5      15     25     35     45    
-                        1      2      3      4      5
- 17-AUG-1982 12 / 1:  25.78  25.67  25.51  25.35  25.16
- 23-AUG-1982 14 / 2:  25.98  25.87  25.70  25.55  25.36
- 29-AUG-1982 16 / 3:  26.18  26.08  25.93  25.79  25.60
- 04-SEP-1982 18 / 4:  26.39  26.31  26.16  26.04  25.83
- 10-SEP-1982 20 / 5:  26.62  26.53  26.36  26.25  26.04
- -DELETE TEMP     M: 29 dset:   1 I:    1    5  J:    1    5  K:  101  101  L:   46   46  M: -999 -999  N: -999 -999
- 
-! cubes of data
-LIST/@LPT
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 by 5 by 5 points (LONGITUDE-LATITUDE-DEPTH (m))
-             TIME     : 17-AUG-1982 12:00
-              129.5W 128.5W 127.5W 126.5W 125.5W 
-              101    102    103    104    105
- ---- K:1 Z:   5
- 1.5N  / 50:  26.42  26.46  26.50  26.51  26.48
- 1.17N / 49:  26.22  26.27  26.30  26.30  26.26
- 0.83N / 48:  26.04  26.10  26.13  26.11  26.06
- 0.5N  / 47:  25.90  25.94  25.96  25.94  25.89
- 0.17N / 46:  25.78  25.80  25.82  25.80  25.74
- ---- K:2 Z:   15
- 1.5N  / 50:  26.36  26.39  26.43  26.45  26.42
- 1.17N / 49:  26.14  26.19  26.23  26.23  26.19
- 0.83N / 48:  25.96  26.01  26.04  26.03  25.98
- 0.5N  / 47:  25.80  25.84  25.87  25.85  25.79
- 0.17N / 46:  25.67  25.69  25.70  25.68  25.63
- ---- K:3 Z:   25
- 1.5N  / 50:  26.35  26.38  26.42  26.44  26.41
- 1.17N / 49:  26.12  26.17  26.21  26.22  26.18
- 0.83N / 48:  25.90  25.95  25.99  25.99  25.94
- 0.5N  / 47:  25.68  25.73  25.76  25.75  25.70
- 0.17N / 46:  25.51  25.53  25.54  25.53  25.48
- ---- K:4 Z:   35
- 1.5N  / 50:  26.35  26.38  26.42  26.44  26.42
- 1.17N / 49:  26.11  26.16  26.21  26.22  26.18
- 0.83N / 48:  25.86  25.91  25.95  25.95  25.90
- 0.5N  / 47:  25.58  25.62  25.64  25.63  25.58
- 0.17N / 46:  25.35  25.36  25.36  25.34  25.29
- ---- K:5 Z:   45
- 1.5N  / 50:  26.35  26.38  26.42  26.44  26.42
- 1.17N / 49:  26.10  26.15  26.19  26.20  26.16
- 0.83N / 48:  25.77  25.81  25.82  25.81  25.76
- 0.5N  / 47:  25.41  25.43  25.41  25.38  25.32
- 0.17N / 46:  25.16  25.15  25.12  25.07  25.02
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
-LIST/@KPT
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 by 5 by 5 points (LONGITUDE-LATITUDE-TIME)
-             DEPTH (m): 5
-              129.5W 128.5W 127.5W 126.5W 125.5W 
-              101    102    103    104    105
- ---- L:1 T:   17-AUG-1982 12:00
- 1.5N  / 50:  26.42  26.46  26.50  26.51  26.48
- 1.17N / 49:  26.22  26.27  26.30  26.30  26.26
- 0.83N / 48:  26.04  26.10  26.13  26.11  26.06
- 0.5N  / 47:  25.90  25.94  25.96  25.94  25.89
- 0.17N / 46:  25.78  25.80  25.82  25.80  25.74
- ---- L:2 T:   23-AUG-1982 14:00
- 1.5N  / 50:  26.65  26.63  26.60  26.57  26.52
- 1.17N / 49:  26.44  26.42  26.40  26.35  26.29
- 0.83N / 48:  26.26  26.25  26.22  26.16  26.10
- 0.5N  / 47:  26.10  26.10  26.07  26.01  25.95
- 0.17N / 46:  25.98  25.97  25.94  25.89  25.83
- ---- L:3 T:   29-AUG-1982 16:00
- 1.5N  / 50:  26.86  26.78  26.70  26.64  26.60
- 1.17N / 49:  26.65  26.57  26.49  26.42  26.38
- 0.83N / 48:  26.46  26.38  26.31  26.24  26.20
- 0.5N  / 47:  26.30  26.24  26.17  26.11  26.07
- 0.17N / 46:  26.18  26.13  26.07  26.01  25.97
- ---- L:4 T:   04-SEP-1982 18:00
- 1.5N  / 50:  27.05  26.94  26.80  26.72  26.70
- 1.17N / 49:  26.85  26.72  26.59  26.52  26.51
- 0.83N / 48:  26.67  26.54  26.43  26.37  26.35
- 0.5N  / 47:  26.51  26.41  26.32  26.26  26.23
- 0.17N / 46:  26.39  26.31  26.24  26.18  26.15
- ---- L:5 T:   10-SEP-1982 20:00
- 1.5N  / 50:  27.17  27.13  26.95  26.84  26.83
- 1.17N / 49:  27.03  26.93  26.76  26.66  26.65
- 0.83N / 48:  26.87  26.75  26.62  26.54  26.52
- 0.5N  / 47:  26.72  26.63  26.52  26.45  26.43
- 0.17N / 46:  26.62  26.55  26.47  26.40  26.36
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
-LIST/@JPT
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 by 5 by 5 points (LONGITUDE-DEPTH (m)-TIME)
-             LATITUDE : 0.2N
-             129.5W 128.5W 127.5W 126.5W 125.5W 
-             101    102    103    104    105
- ---- L:1 T:   17-AUG-1982 12:00
- 5     / 1:  25.78  25.80  25.82  25.80  25.74
- 15    / 2:  25.67  25.69  25.70  25.68  25.63
- 25    / 3:  25.51  25.53  25.54  25.53  25.48
- 35    / 4:  25.35  25.36  25.36  25.34  25.29
- 45    / 5:  25.16  25.15  25.12  25.07  25.02
- ---- L:2 T:   23-AUG-1982 14:00
- 5     / 1:  25.98  25.97  25.94  25.89  25.83
- 15    / 2:  25.87  25.86  25.83  25.78  25.72
- 25    / 3:  25.70  25.71  25.68  25.63  25.57
- 35    / 4:  25.55  25.55  25.52  25.46  25.40
- 45    / 5:  25.36  25.34  25.29  25.22  25.16
- ---- L:3 T:   29-AUG-1982 16:00
- 5     / 1:  26.18  26.13  26.07  26.01  25.97
- 15    / 2:  26.08  26.03  25.97  25.91  25.87
- 25    / 3:  25.93  25.89  25.82  25.75  25.69
- 35    / 4:  25.79  25.76  25.68  25.60  25.54
- 45    / 5:  25.60  25.56  25.49  25.41  25.35
- ---- L:4 T:   04-SEP-1982 18:00
- 5     / 1:  26.39  26.31  26.24  26.18  26.15
- 15    / 2:  26.31  26.22  26.14  26.09  26.05
- 25    / 3:  26.16  26.09  25.98  25.90  25.85
- 35    / 4:  26.04  25.98  25.87  25.78  25.72
- 45    / 5:  25.83  25.79  25.70  25.62  25.55
- ---- L:5 T:   10-SEP-1982 20:00
- 5     / 1:  26.62  26.55  26.47  26.40  26.36
- 15    / 2:  26.53  26.46  26.38  26.31  26.27
- 25    / 3:  26.36  26.31  26.19  26.08  26.03
- 35    / 4:  26.25  26.21  26.09  25.98  25.92
- 45    / 5:  26.04  26.01  25.93  25.84  25.77
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:    1    5  K:    1    5  L:   46   46  M: -999 -999  N: -999 -999
-LIST/@IPT
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 by 5 by 5 points (LATITUDE-DEPTH (m)-TIME)
-             LONGITUDE: 129.5W
-              0.17N  0.5N   0.83N  1.17N  1.5N  
-              46     47     48     49     50
- ---- L:1 T:   17-AUG-1982 12:00
- 5     / 1:  25.78  25.90  26.04  26.22  26.42
- 15    / 2:  25.67  25.80  25.96  26.14  26.36
- 25    / 3:  25.51  25.68  25.90  26.12  26.35
- 35    / 4:  25.35  25.58  25.86  26.11  26.35
- 45    / 5:  25.16  25.41  25.77  26.10  26.35
- ---- L:2 T:   23-AUG-1982 14:00
- 5     / 1:  25.98  26.10  26.26  26.44  26.65
- 15    / 2:  25.87  26.01  26.18  26.38  26.59
- 25    / 3:  25.70  25.91  26.14  26.36  26.59
- 35    / 4:  25.55  25.82  26.11  26.36  26.59
- 45    / 5:  25.36  25.64  26.02  26.36  26.59
- ---- L:3 T:   29-AUG-1982 16:00
- 5     / 1:  26.18  26.30  26.46  26.65  26.86
- 15    / 2:  26.08  26.22  26.40  26.60  26.82
- 25    / 3:  25.93  26.15  26.38  26.59  26.81
- 35    / 4:  25.79  26.08  26.37  26.59  26.81
- 45    / 5:  25.60  25.90  26.29  26.59  26.81
- ---- L:4 T:   04-SEP-1982 18:00
- 5     / 1:  26.39  26.51  26.67  26.85  27.05
- 15    / 2:  26.31  26.44  26.61  26.81  27.00
- 25    / 3:  26.16  26.38  26.60  26.80  26.99
- 35    / 4:  26.04  26.33  26.59  26.80  26.99
- 45    / 5:  25.83  26.14  26.52  26.80  26.99
- ---- L:5 T:   10-SEP-1982 20:00
- 5     / 1:  26.62  26.72  26.87  27.03  27.17
- 15    / 2:  26.53  26.65  26.81  26.97  27.11
- 25    / 3:  26.36  26.59  26.78  26.95  27.09
- 35    / 4:  26.25  26.53  26.78  26.95  27.09
- 45    / 5:  26.04  26.32  26.68  26.95  27.09
- -DELETE TEMP     M: 29 dset:   1 I:   46   50  J:    1    5  K:    1    5  L:  101  101  M: -999 -999  N: -999 -999
- 
-! 4D region
-LOAD
- eval    EX#1     C:  4 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
-SET MODE/LAST DIAGNOSTIC
- 
-! ******** disk-resident file variable ************
-USE gt4d011
-CANCEL MEMORY/ALL
-SET MODE DIAGNOSTIC
-DEFINE REGION/I=101 IPT
- dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
-DEFINE REGION/J=46 JPT
-DEFINE REGION/K=1 KPT
-DEFINE REGION/L=1 LPT
-DEFINE REGION/I=101:105/J=46:50/K=1:5/L=1:5 R4D
-SET REG R4D
-SET EXPRESSION temp
-GO bn_geometry.sub
-! BN200_GEOMETRY.SUB
-! list the variable vtest on variuos geometries
- 
-! this routine assumes that a 4-D region and an expression are already set
- 
-! lines of data
-LIST/@JPT/@KPT/@LPT/ORDER=X
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 31 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 points (LONGITUDE)
-             LATITUDE : 0.2N
-             DEPTH (m): 5
-             TIME     : 17-AUG-1982 12:00
-          129.5W 128.5W 127.5W 126.5W 125.5W 
-          101    102    103    104    105
-          25.78  25.80  25.82  25.80  25.74
-LIST/@IPT/@KPT/@LPT/ORDER=Y
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 29 dset:   1 I:  101  101  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 points (LATITUDE)
-             LONGITUDE: 129.5W
-             DEPTH (m): 5
-             TIME     : 17-AUG-1982 12:00
-           0.17N  0.5N   0.83N  1.17N  1.5N  
-           46     47     48     49     50
-          25.78  25.90  26.04  26.22  26.42
-LIST/@IPT/@JPT/@LPT/ORDER=Z
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   46  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 28 dset:   1 I:  101  101  J:   46   46  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 points (DEPTH (m))
-             LONGITUDE: 129.5W
-             LATITUDE : 0.2N
-             TIME     : 17-AUG-1982 12:00
-           5      15     25     35     45    
-            1      2      3      4      5
-          25.78  25.67  25.51  25.35  25.16
-LIST/@IPT/@JPT/@KPT/ORDER=T
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   46  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 27 dset:   1 I:  101  101  J:   46   46  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 points (TIME)
-             LONGITUDE: 129.5W
-             LATITUDE : 0.2N
-             DEPTH (m): 5
-           1982   1982   1982   1982   1982  
-            1      2      3      4      5
-          25.78  25.98  26.18  26.39  26.62
- 
-! planes of data
-LIST/@KPT/@LPT	!XY
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 26 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 17-AUG-1982 12:00
-              129.5W 128.5W 127.5W 126.5W 125.5W 
-              101    102    103    104    105
- 1.5N  / 50:  26.42  26.46  26.50  26.51  26.48
- 1.17N / 49:  26.22  26.27  26.30  26.30  26.26
- 0.83N / 48:  26.04  26.10  26.13  26.11  26.06
- 0.5N  / 47:  25.90  25.94  25.96  25.94  25.89
- 0.17N / 46:  25.78  25.80  25.82  25.80  25.74
-LIST/@JPT/@LPT	!XZ
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 25 dset:   1 I:  101  105  J:   46   46  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 by 5 points (LONGITUDE-DEPTH (m))
-             LATITUDE : 0.2N
-             TIME     : 17-AUG-1982 12:00
-             129.5W 128.5W 127.5W 126.5W 125.5W 
-             101    102    103    104    105
- 5     / 1:  25.78  25.80  25.82  25.80  25.74
- 15    / 2:  25.67  25.69  25.70  25.68  25.63
- 25    / 3:  25.51  25.53  25.54  25.53  25.48
- 35    / 4:  25.35  25.36  25.36  25.34  25.29
- 45    / 5:  25.16  25.15  25.12  25.07  25.02
-LIST/@JPT/@KPT	!XT
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 24 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 by 5 points (LONGITUDE-TIME)
-             LATITUDE : 0.2N
-             DEPTH (m): 5
-                      129.5W 128.5W 127.5W 126.5W 125.5W 
-                      101    102    103    104    105
- 17-AUG-1982 12 / 1:  25.78  25.80  25.82  25.80  25.74
- 23-AUG-1982 14 / 2:  25.98  25.97  25.94  25.89  25.83
- 29-AUG-1982 16 / 3:  26.18  26.13  26.07  26.01  25.97
- 04-SEP-1982 18 / 4:  26.39  26.31  26.24  26.18  26.15
- 10-SEP-1982 20 / 5:  26.62  26.55  26.47  26.40  26.36
-LIST/@IPT/@LPT	!YZ
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 23 dset:   1 I:  101  101  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 by 5 points (LATITUDE-DEPTH (m))
-             LONGITUDE: 129.5W
-             TIME     : 17-AUG-1982 12:00
-              0.17N  0.5N   0.83N  1.17N  1.5N  
-              46     47     48     49     50
- 5     / 1:  25.78  25.90  26.04  26.22  26.42
- 15    / 2:  25.67  25.80  25.96  26.14  26.36
- 25    / 3:  25.51  25.68  25.90  26.12  26.35
- 35    / 4:  25.35  25.58  25.86  26.11  26.35
- 45    / 5:  25.16  25.41  25.77  26.10  26.35
-LIST/@IPT/@KPT	!YT
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 22 dset:   1 I:  101  101  J:   46   50  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 by 5 points (LATITUDE-TIME)
-             LONGITUDE: 129.5W
-             DEPTH (m): 5
-                       0.17N  0.5N   0.83N  1.17N  1.5N  
-                       46     47     48     49     50
- 17-AUG-1982 12 / 1:  25.78  25.90  26.04  26.22  26.42
- 23-AUG-1982 14 / 2:  25.98  26.10  26.26  26.44  26.65
- 29-AUG-1982 16 / 3:  26.18  26.30  26.46  26.65  26.86
- 04-SEP-1982 18 / 4:  26.39  26.51  26.67  26.85  27.05
- 10-SEP-1982 20 / 5:  26.62  26.72  26.87  27.03  27.17
-LIST/@IPT/@JPT	!ZT
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   46  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 21 dset:   1 I:  101  101  J:   46   46  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 by 5 points (DEPTH (m)-TIME)
-             LONGITUDE: 129.5W
-             LATITUDE : 0.2N
-                       5      15     25     35     45    
-                        1      2      3      4      5
- 17-AUG-1982 12 / 1:  25.78  25.67  25.51  25.35  25.16
- 23-AUG-1982 14 / 2:  25.98  25.87  25.70  25.55  25.36
- 29-AUG-1982 16 / 3:  26.18  26.08  25.93  25.79  25.60
- 04-SEP-1982 18 / 4:  26.39  26.31  26.16  26.04  25.83
- 10-SEP-1982 20 / 5:  26.62  26.53  26.36  26.25  26.04
- 
-! cubes of data
-LIST/@LPT
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 20 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 by 5 by 5 points (LONGITUDE-LATITUDE-DEPTH (m))
-             TIME     : 17-AUG-1982 12:00
-              129.5W 128.5W 127.5W 126.5W 125.5W 
-              101    102    103    104    105
- ---- K:1 Z:   5
- 1.5N  / 50:  26.42  26.46  26.50  26.51  26.48
- 1.17N / 49:  26.22  26.27  26.30  26.30  26.26
- 0.83N / 48:  26.04  26.10  26.13  26.11  26.06
- 0.5N  / 47:  25.90  25.94  25.96  25.94  25.89
- 0.17N / 46:  25.78  25.80  25.82  25.80  25.74
- ---- K:2 Z:   15
- 1.5N  / 50:  26.36  26.39  26.43  26.45  26.42
- 1.17N / 49:  26.14  26.19  26.23  26.23  26.19
- 0.83N / 48:  25.96  26.01  26.04  26.03  25.98
- 0.5N  / 47:  25.80  25.84  25.87  25.85  25.79
- 0.17N / 46:  25.67  25.69  25.70  25.68  25.63
- ---- K:3 Z:   25
- 1.5N  / 50:  26.35  26.38  26.42  26.44  26.41
- 1.17N / 49:  26.12  26.17  26.21  26.22  26.18
- 0.83N / 48:  25.90  25.95  25.99  25.99  25.94
- 0.5N  / 47:  25.68  25.73  25.76  25.75  25.70
- 0.17N / 46:  25.51  25.53  25.54  25.53  25.48
- ---- K:4 Z:   35
- 1.5N  / 50:  26.35  26.38  26.42  26.44  26.42
- 1.17N / 49:  26.11  26.16  26.21  26.22  26.18
- 0.83N / 48:  25.86  25.91  25.95  25.95  25.90
- 0.5N  / 47:  25.58  25.62  25.64  25.63  25.58
- 0.17N / 46:  25.35  25.36  25.36  25.34  25.29
- ---- K:5 Z:   45
- 1.5N  / 50:  26.35  26.38  26.42  26.44  26.42
- 1.17N / 49:  26.10  26.15  26.19  26.20  26.16
- 0.83N / 48:  25.77  25.81  25.82  25.81  25.76
- 0.5N  / 47:  25.41  25.43  25.41  25.38  25.32
- 0.17N / 46:  25.16  25.15  25.12  25.07  25.02
-LIST/@KPT
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 19 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 by 5 by 5 points (LONGITUDE-LATITUDE-TIME)
-             DEPTH (m): 5
-              129.5W 128.5W 127.5W 126.5W 125.5W 
-              101    102    103    104    105
- ---- L:1 T:   17-AUG-1982 12:00
- 1.5N  / 50:  26.42  26.46  26.50  26.51  26.48
- 1.17N / 49:  26.22  26.27  26.30  26.30  26.26
- 0.83N / 48:  26.04  26.10  26.13  26.11  26.06
- 0.5N  / 47:  25.90  25.94  25.96  25.94  25.89
- 0.17N / 46:  25.78  25.80  25.82  25.80  25.74
- ---- L:2 T:   23-AUG-1982 14:00
- 1.5N  / 50:  26.65  26.63  26.60  26.57  26.52
- 1.17N / 49:  26.44  26.42  26.40  26.35  26.29
- 0.83N / 48:  26.26  26.25  26.22  26.16  26.10
- 0.5N  / 47:  26.10  26.10  26.07  26.01  25.95
- 0.17N / 46:  25.98  25.97  25.94  25.89  25.83
- ---- L:3 T:   29-AUG-1982 16:00
- 1.5N  / 50:  26.86  26.78  26.70  26.64  26.60
- 1.17N / 49:  26.65  26.57  26.49  26.42  26.38
- 0.83N / 48:  26.46  26.38  26.31  26.24  26.20
- 0.5N  / 47:  26.30  26.24  26.17  26.11  26.07
- 0.17N / 46:  26.18  26.13  26.07  26.01  25.97
- ---- L:4 T:   04-SEP-1982 18:00
- 1.5N  / 50:  27.05  26.94  26.80  26.72  26.70
- 1.17N / 49:  26.85  26.72  26.59  26.52  26.51
- 0.83N / 48:  26.67  26.54  26.43  26.37  26.35
- 0.5N  / 47:  26.51  26.41  26.32  26.26  26.23
- 0.17N / 46:  26.39  26.31  26.24  26.18  26.15
- ---- L:5 T:   10-SEP-1982 20:00
- 1.5N  / 50:  27.17  27.13  26.95  26.84  26.83
- 1.17N / 49:  27.03  26.93  26.76  26.66  26.65
- 0.83N / 48:  26.87  26.75  26.62  26.54  26.52
- 0.5N  / 47:  26.72  26.63  26.52  26.45  26.43
- 0.17N / 46:  26.62  26.55  26.47  26.40  26.36
-LIST/@JPT
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 18 dset:   1 I:  101  105  J:   46   46  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 by 5 by 5 points (LONGITUDE-DEPTH (m)-TIME)
-             LATITUDE : 0.2N
-             129.5W 128.5W 127.5W 126.5W 125.5W 
-             101    102    103    104    105
- ---- L:1 T:   17-AUG-1982 12:00
- 5     / 1:  25.78  25.80  25.82  25.80  25.74
- 15    / 2:  25.67  25.69  25.70  25.68  25.63
- 25    / 3:  25.51  25.53  25.54  25.53  25.48
- 35    / 4:  25.35  25.36  25.36  25.34  25.29
- 45    / 5:  25.16  25.15  25.12  25.07  25.02
- ---- L:2 T:   23-AUG-1982 14:00
- 5     / 1:  25.98  25.97  25.94  25.89  25.83
- 15    / 2:  25.87  25.86  25.83  25.78  25.72
- 25    / 3:  25.70  25.71  25.68  25.63  25.57
- 35    / 4:  25.55  25.55  25.52  25.46  25.40
- 45    / 5:  25.36  25.34  25.29  25.22  25.16
- ---- L:3 T:   29-AUG-1982 16:00
- 5     / 1:  26.18  26.13  26.07  26.01  25.97
- 15    / 2:  26.08  26.03  25.97  25.91  25.87
- 25    / 3:  25.93  25.89  25.82  25.75  25.69
- 35    / 4:  25.79  25.76  25.68  25.60  25.54
- 45    / 5:  25.60  25.56  25.49  25.41  25.35
- ---- L:4 T:   04-SEP-1982 18:00
- 5     / 1:  26.39  26.31  26.24  26.18  26.15
- 15    / 2:  26.31  26.22  26.14  26.09  26.05
- 25    / 3:  26.16  26.09  25.98  25.90  25.85
- 35    / 4:  26.04  25.98  25.87  25.78  25.72
- 45    / 5:  25.83  25.79  25.70  25.62  25.55
- ---- L:5 T:   10-SEP-1982 20:00
- 5     / 1:  26.62  26.55  26.47  26.40  26.36
- 15    / 2:  26.53  26.46  26.38  26.31  26.27
- 25    / 3:  26.36  26.31  26.19  26.08  26.03
- 35    / 4:  26.25  26.21  26.09  25.98  25.92
- 45    / 5:  26.04  26.01  25.93  25.84  25.77
-LIST/@IPT
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 17 dset:   1 I:  101  101  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 by 5 by 5 points (LATITUDE-DEPTH (m)-TIME)
-             LONGITUDE: 129.5W
-              0.17N  0.5N   0.83N  1.17N  1.5N  
-              46     47     48     49     50
- ---- L:1 T:   17-AUG-1982 12:00
- 5     / 1:  25.78  25.90  26.04  26.22  26.42
- 15    / 2:  25.67  25.80  25.96  26.14  26.36
- 25    / 3:  25.51  25.68  25.90  26.12  26.35
- 35    / 4:  25.35  25.58  25.86  26.11  26.35
- 45    / 5:  25.16  25.41  25.77  26.10  26.35
- ---- L:2 T:   23-AUG-1982 14:00
- 5     / 1:  25.98  26.10  26.26  26.44  26.65
- 15    / 2:  25.87  26.01  26.18  26.38  26.59
- 25    / 3:  25.70  25.91  26.14  26.36  26.59
- 35    / 4:  25.55  25.82  26.11  26.36  26.59
- 45    / 5:  25.36  25.64  26.02  26.36  26.59
- ---- L:3 T:   29-AUG-1982 16:00
- 5     / 1:  26.18  26.30  26.46  26.65  26.86
- 15    / 2:  26.08  26.22  26.40  26.60  26.82
- 25    / 3:  25.93  26.15  26.38  26.59  26.81
- 35    / 4:  25.79  26.08  26.37  26.59  26.81
- 45    / 5:  25.60  25.90  26.29  26.59  26.81
- ---- L:4 T:   04-SEP-1982 18:00
- 5     / 1:  26.39  26.51  26.67  26.85  27.05
- 15    / 2:  26.31  26.44  26.61  26.81  27.00
- 25    / 3:  26.16  26.38  26.60  26.80  26.99
- 35    / 4:  26.04  26.33  26.59  26.80  26.99
- 45    / 5:  25.83  26.14  26.52  26.80  26.99
- ---- L:5 T:   10-SEP-1982 20:00
- 5     / 1:  26.62  26.72  26.87  27.03  27.17
- 15    / 2:  26.53  26.65  26.81  26.97  27.11
- 25    / 3:  26.36  26.59  26.78  26.95  27.09
- 35    / 4:  26.25  26.53  26.78  26.95  27.09
- 45    / 5:  26.04  26.32  26.68  26.95  27.09
- 
-! 4D region
-LOAD
- eval    EX#1     C:  4 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 16 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
-SET MODE/LAST DIAGNOSTIC
- 
-! ******** diagnostic variable ************
-! *3/99* *kob* comment out look at qady variable - no longer important
-!USE gt160w011
-!DEFINE REGION/I=70 IPT
-!DEFINE REGION/J=50 JPT
-!DEFINE REGION/K=1 KPT
-!DEFINE REGION/L=1 LPT
-!DEFINE REGION/I=70:72/J=46:50/K=1:5/L=1:3 R4D
-!SET REG R4D
-!SET EXPRESSION qady
-!GO bn_geometry.sub
- 
-! generate error through non-comformable limits
-SET MODE IGNORE_ERRORS
-LIST X[I=1:5] - X[I=6:9]
-SET MODE/LAST IGNORE_ERRORS
- 
- 
- 
-GO bn_reset
-cancel mode verify
-set mode ignore		! needed for AIX   11/94
-GO bn_output
-! bn200_output.JNL
-! - test various output methods in FERRET
-! rev 0.0  4/27/90 *sh*
- 
-LET v = 1000*i + 100*j + 10*k + l
-SET REGION/I=1:2/J=3:4/K=5:6/L=7:8
-SET EXPRESSION v
-LOAD
- 
-! ------------------------------------------
-! single variable list
-GO bn_output.sub
-! BN200_OUTPUT.SUB
-! - test various output order permutations FERRET
-! rev 0.0  9/18/90 *sh*
- 
-! test permutations on output
-! ------ 4D region
-SET REGION/I=1:2/J=3:4/K=5:6/L=7:8
-LIST/ORDER=XYZT
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 by 2 points (X-Y-Z-T)
-             1      2    
-             1      2
- ---- L:7 T:   7
- ---- K:5 Z:   5
- 3   / 3:  1357.  2357.
- 4   / 4:  1457.  2457.
- ---- K:6 Z:   6
- 3   / 3:  1367.  2367.
- 4   / 4:  1467.  2467.
- ---- L:8 T:   8
- ---- K:5 Z:   5
- 3   / 3:  1358.  2358.
- 4   / 4:  1458.  2458.
- ---- K:6 Z:   6
- 3   / 3:  1368.  2368.
- 4   / 4:  1468.  2468.
-LIST/ORDER=XYTZ
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 by 2 points (X-Y-T-Z)
-             1      2    
-             1      2
- ---- K:5 Z:   5
- ---- L:7 T:   7
- 3   / 3:  1357.  2357.
- 4   / 4:  1457.  2457.
- ---- L:8 T:   8
- 3   / 3:  1358.  2358.
- 4   / 4:  1458.  2458.
- ---- K:6 Z:   6
- ---- L:7 T:   7
- 3   / 3:  1367.  2367.
- 4   / 4:  1467.  2467.
- ---- L:8 T:   8
- 3   / 3:  1368.  2368.
- 4   / 4:  1468.  2468.
-LIST/ORDER=XZYT
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 by 2 points (X-Z-Y-T)
-             1      2    
-             1      2
- ---- L:7 T:   7
- ---- J:3 Y:   3
- 5   / 5:  1357.  2357.
- 6   / 6:  1367.  2367.
- ---- J:4 Y:   4
- 5   / 5:  1457.  2457.
- 6   / 6:  1467.  2467.
- ---- L:8 T:   8
- ---- J:3 Y:   3
- 5   / 5:  1358.  2358.
- 6   / 6:  1368.  2368.
- ---- J:4 Y:   4
- 5   / 5:  1458.  2458.
- 6   / 6:  1468.  2468.
-LIST/ORDER=XZTY
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 by 2 points (X-Z-T-Y)
-             1      2    
-             1      2
- ---- J:3 Y:   3
- ---- L:7 T:   7
- 5   / 5:  1357.  2357.
- 6   / 6:  1367.  2367.
- ---- L:8 T:   8
- 5   / 5:  1358.  2358.
- 6   / 6:  1368.  2368.
- ---- J:4 Y:   4
- ---- L:7 T:   7
- 5   / 5:  1457.  2457.
- 6   / 6:  1467.  2467.
- ---- L:8 T:   8
- 5   / 5:  1458.  2458.
- 6   / 6:  1468.  2468.
-LIST/ORDER=XTYZ
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 by 2 points (X-T-Y-Z)
-             1      2    
-             1      2
- ---- K:5 Z:   5
- ---- J:3 Y:   3
- 7   / 7:  1357.  2357.
- 8   / 8:  1358.  2358.
- ---- J:4 Y:   4
- 7   / 7:  1457.  2457.
- 8   / 8:  1458.  2458.
- ---- K:6 Z:   6
- ---- J:3 Y:   3
- 7   / 7:  1367.  2367.
- 8   / 8:  1368.  2368.
- ---- J:4 Y:   4
- 7   / 7:  1467.  2467.
- 8   / 8:  1468.  2468.
-LIST/ORDER=XTZY
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 by 2 points (X-T-Z-Y)
-             1      2    
-             1      2
- ---- J:3 Y:   3
- ---- K:5 Z:   5
- 7   / 7:  1357.  2357.
- 8   / 8:  1358.  2358.
- ---- K:6 Z:   6
- 7   / 7:  1367.  2367.
- 8   / 8:  1368.  2368.
- ---- J:4 Y:   4
- ---- K:5 Z:   5
- 7   / 7:  1457.  2457.
- 8   / 8:  1458.  2458.
- ---- K:6 Z:   6
- 7   / 7:  1467.  2467.
- 8   / 8:  1468.  2468.
-LIST/ORDER=YXZT
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 by 2 points (Y-X-Z-T)
-             3      4    
-             3      4
- ---- L:7 T:   7
- ---- K:5 Z:   5
- 1   / 1:  1357.  1457.
- 2   / 2:  2357.  2457.
- ---- K:6 Z:   6
- 1   / 1:  1367.  1467.
- 2   / 2:  2367.  2467.
- ---- L:8 T:   8
- ---- K:5 Z:   5
- 1   / 1:  1358.  1458.
- 2   / 2:  2358.  2458.
- ---- K:6 Z:   6
- 1   / 1:  1368.  1468.
- 2   / 2:  2368.  2468.
-LIST/ORDER=YXTZ
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 by 2 points (Y-X-T-Z)
-             3      4    
-             3      4
- ---- K:5 Z:   5
- ---- L:7 T:   7
- 1   / 1:  1357.  1457.
- 2   / 2:  2357.  2457.
- ---- L:8 T:   8
- 1   / 1:  1358.  1458.
- 2   / 2:  2358.  2458.
- ---- K:6 Z:   6
- ---- L:7 T:   7
- 1   / 1:  1367.  1467.
- 2   / 2:  2367.  2467.
- ---- L:8 T:   8
- 1   / 1:  1368.  1468.
- 2   / 2:  2368.  2468.
-LIST/ORDER=YZXT
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 by 2 points (Y-Z-X-T)
-             3      4    
-             3      4
- ---- L:7 T:   7
- ---- I:1 X:   1
- 5   / 5:  1357.  1457.
- 6   / 6:  1367.  1467.
- ---- I:2 X:   2
- 5   / 5:  2357.  2457.
- 6   / 6:  2367.  2467.
- ---- L:8 T:   8
- ---- I:1 X:   1
- 5   / 5:  1358.  1458.
- 6   / 6:  1368.  1468.
- ---- I:2 X:   2
- 5   / 5:  2358.  2458.
- 6   / 6:  2368.  2468.
-LIST/ORDER=YZTX
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 by 2 points (Y-Z-T-X)
-             3      4    
-             3      4
- ---- I:1 X:   1
- ---- L:7 T:   7
- 5   / 5:  1357.  1457.
- 6   / 6:  1367.  1467.
- ---- L:8 T:   8
- 5   / 5:  1358.  1458.
- 6   / 6:  1368.  1468.
- ---- I:2 X:   2
- ---- L:7 T:   7
- 5   / 5:  2357.  2457.
- 6   / 6:  2367.  2467.
- ---- L:8 T:   8
- 5   / 5:  2358.  2458.
- 6   / 6:  2368.  2468.
-LIST/ORDER=YTXZ
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 by 2 points (Y-T-X-Z)
-             3      4    
-             3      4
- ---- K:5 Z:   5
- ---- I:1 X:   1
- 7   / 7:  1357.  1457.
- 8   / 8:  1358.  1458.
- ---- I:2 X:   2
- 7   / 7:  2357.  2457.
- 8   / 8:  2358.  2458.
- ---- K:6 Z:   6
- ---- I:1 X:   1
- 7   / 7:  1367.  1467.
- 8   / 8:  1368.  1468.
- ---- I:2 X:   2
- 7   / 7:  2367.  2467.
- 8   / 8:  2368.  2468.
-LIST/ORDER=YTZX
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 by 2 points (Y-T-Z-X)
-             3      4    
-             3      4
- ---- I:1 X:   1
- ---- K:5 Z:   5
- 7   / 7:  1357.  1457.
- 8   / 8:  1358.  1458.
- ---- K:6 Z:   6
- 7   / 7:  1367.  1467.
- 8   / 8:  1368.  1468.
- ---- I:2 X:   2
- ---- K:5 Z:   5
- 7   / 7:  2357.  2457.
- 8   / 8:  2358.  2458.
- ---- K:6 Z:   6
- 7   / 7:  2367.  2467.
- 8   / 8:  2368.  2468.
-LIST/ORDER=ZXYT
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 by 2 points (Z-X-Y-T)
-             5      6    
-             5      6
- ---- L:7 T:   7
- ---- J:3 Y:   3
- 1   / 1:  1357.  1367.
- 2   / 2:  2357.  2367.
- ---- J:4 Y:   4
- 1   / 1:  1457.  1467.
- 2   / 2:  2457.  2467.
- ---- L:8 T:   8
- ---- J:3 Y:   3
- 1   / 1:  1358.  1368.
- 2   / 2:  2358.  2368.
- ---- J:4 Y:   4
- 1   / 1:  1458.  1468.
- 2   / 2:  2458.  2468.
-LIST/ORDER=ZXTY
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 by 2 points (Z-X-T-Y)
-             5      6    
-             5      6
- ---- J:3 Y:   3
- ---- L:7 T:   7
- 1   / 1:  1357.  1367.
- 2   / 2:  2357.  2367.
- ---- L:8 T:   8
- 1   / 1:  1358.  1368.
- 2   / 2:  2358.  2368.
- ---- J:4 Y:   4
- ---- L:7 T:   7
- 1   / 1:  1457.  1467.
- 2   / 2:  2457.  2467.
- ---- L:8 T:   8
- 1   / 1:  1458.  1468.
- 2   / 2:  2458.  2468.
-LIST/ORDER=ZYXT
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 by 2 points (Z-Y-X-T)
-             5      6    
-             5      6
- ---- L:7 T:   7
- ---- I:1 X:   1
- 3   / 3:  1357.  1367.
- 4   / 4:  1457.  1467.
- ---- I:2 X:   2
- 3   / 3:  2357.  2367.
- 4   / 4:  2457.  2467.
- ---- L:8 T:   8
- ---- I:1 X:   1
- 3   / 3:  1358.  1368.
- 4   / 4:  1458.  1468.
- ---- I:2 X:   2
- 3   / 3:  2358.  2368.
- 4   / 4:  2458.  2468.
-LIST/ORDER=ZYTX
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 by 2 points (Z-Y-T-X)
-             5      6    
-             5      6
- ---- I:1 X:   1
- ---- L:7 T:   7
- 3   / 3:  1357.  1367.
- 4   / 4:  1457.  1467.
- ---- L:8 T:   8
- 3   / 3:  1358.  1368.
- 4   / 4:  1458.  1468.
- ---- I:2 X:   2
- ---- L:7 T:   7
- 3   / 3:  2357.  2367.
- 4   / 4:  2457.  2467.
- ---- L:8 T:   8
- 3   / 3:  2358.  2368.
- 4   / 4:  2458.  2468.
-LIST/ORDER=ZTXY
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 by 2 points (Z-T-X-Y)
-             5      6    
-             5      6
- ---- J:3 Y:   3
- ---- I:1 X:   1
- 7   / 7:  1357.  1367.
- 8   / 8:  1358.  1368.
- ---- I:2 X:   2
- 7   / 7:  2357.  2367.
- 8   / 8:  2358.  2368.
- ---- J:4 Y:   4
- ---- I:1 X:   1
- 7   / 7:  1457.  1467.
- 8   / 8:  1458.  1468.
- ---- I:2 X:   2
- 7   / 7:  2457.  2467.
- 8   / 8:  2458.  2468.
-LIST/ORDER=ZTYX
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 by 2 points (Z-T-Y-X)
-             5      6    
-             5      6
- ---- I:1 X:   1
- ---- J:3 Y:   3
- 7   / 7:  1357.  1367.
- 8   / 8:  1358.  1368.
- ---- J:4 Y:   4
- 7   / 7:  1457.  1467.
- 8   / 8:  1458.  1468.
- ---- I:2 X:   2
- ---- J:3 Y:   3
- 7   / 7:  2357.  2367.
- 8   / 8:  2358.  2368.
- ---- J:4 Y:   4
- 7   / 7:  2457.  2467.
- 8   / 8:  2458.  2468.
-LIST/ORDER=TXYZ
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 by 2 points (T-X-Y-Z)
-             7      8    
-             7      8
- ---- K:5 Z:   5
- ---- J:3 Y:   3
- 1   / 1:  1357.  1358.
- 2   / 2:  2357.  2358.
- ---- J:4 Y:   4
- 1   / 1:  1457.  1458.
- 2   / 2:  2457.  2458.
- ---- K:6 Z:   6
- ---- J:3 Y:   3
- 1   / 1:  1367.  1368.
- 2   / 2:  2367.  2368.
- ---- J:4 Y:   4
- 1   / 1:  1467.  1468.
- 2   / 2:  2467.  2468.
-LIST/ORDER=TXZY
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 by 2 points (T-X-Z-Y)
-             7      8    
-             7      8
- ---- J:3 Y:   3
- ---- K:5 Z:   5
- 1   / 1:  1357.  1358.
- 2   / 2:  2357.  2358.
- ---- K:6 Z:   6
- 1   / 1:  1367.  1368.
- 2   / 2:  2367.  2368.
- ---- J:4 Y:   4
- ---- K:5 Z:   5
- 1   / 1:  1457.  1458.
- 2   / 2:  2457.  2458.
- ---- K:6 Z:   6
- 1   / 1:  1467.  1468.
- 2   / 2:  2467.  2468.
-LIST/ORDER=TYXZ
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 by 2 points (T-Y-X-Z)
-             7      8    
-             7      8
- ---- K:5 Z:   5
- ---- I:1 X:   1
- 3   / 3:  1357.  1358.
- 4   / 4:  1457.  1458.
- ---- I:2 X:   2
- 3   / 3:  2357.  2358.
- 4   / 4:  2457.  2458.
- ---- K:6 Z:   6
- ---- I:1 X:   1
- 3   / 3:  1367.  1368.
- 4   / 4:  1467.  1468.
- ---- I:2 X:   2
- 3   / 3:  2367.  2368.
- 4   / 4:  2467.  2468.
-LIST/ORDER=TYZX
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 by 2 points (T-Y-Z-X)
-             7      8    
-             7      8
- ---- I:1 X:   1
- ---- K:5 Z:   5
- 3   / 3:  1357.  1358.
- 4   / 4:  1457.  1458.
- ---- K:6 Z:   6
- 3   / 3:  1367.  1368.
- 4   / 4:  1467.  1468.
- ---- I:2 X:   2
- ---- K:5 Z:   5
- 3   / 3:  2357.  2358.
- 4   / 4:  2457.  2458.
- ---- K:6 Z:   6
- 3   / 3:  2367.  2368.
- 4   / 4:  2467.  2468.
-LIST/ORDER=TZXY
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 by 2 points (T-Z-X-Y)
-             7      8    
-             7      8
- ---- J:3 Y:   3
- ---- I:1 X:   1
- 5   / 5:  1357.  1358.
- 6   / 6:  1367.  1368.
- ---- I:2 X:   2
- 5   / 5:  2357.  2358.
- 6   / 6:  2367.  2368.
- ---- J:4 Y:   4
- ---- I:1 X:   1
- 5   / 5:  1457.  1458.
- 6   / 6:  1467.  1468.
- ---- I:2 X:   2
- 5   / 5:  2457.  2458.
- 6   / 6:  2467.  2468.
-LIST/ORDER=TZYX
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 by 2 points (T-Z-Y-X)
-             7      8    
-             7      8
- ---- I:1 X:   1
- ---- J:3 Y:   3
- 5   / 5:  1357.  1358.
- 6   / 6:  1367.  1368.
- ---- J:4 Y:   4
- 5   / 5:  1457.  1458.
- 6   / 6:  1467.  1468.
- ---- I:2 X:   2
- ---- J:3 Y:   3
- 5   / 5:  2357.  2358.
- 6   / 6:  2367.  2368.
- ---- J:4 Y:   4
- 5   / 5:  2457.  2458.
- 6   / 6:  2467.  2468.
- 
-! ------ 3D regions
-SET REGION/I=1/J=3:4/K=5:6/L=7:8
-LIST/ORDER=YZT
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 points (Y-Z-T)
-             X        : 1
-             3      4    
-             3      4
- ---- L:7 T:   7
- 5   / 5:  1357.  1457.
- 6   / 6:  1367.  1467.
- ---- L:8 T:   8
- 5   / 5:  1358.  1458.
- 6   / 6:  1368.  1468.
-LIST/ORDER=YTZ
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 points (Y-T-Z)
-             X        : 1
-             3      4    
-             3      4
- ---- K:5 Z:   5
- 7   / 7:  1357.  1457.
- 8   / 8:  1358.  1458.
- ---- K:6 Z:   6
- 7   / 7:  1367.  1467.
- 8   / 8:  1368.  1468.
-LIST/ORDER=ZYT
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 points (Z-Y-T)
-             X        : 1
-             5      6    
-             5      6
- ---- L:7 T:   7
- 3   / 3:  1357.  1367.
- 4   / 4:  1457.  1467.
- ---- L:8 T:   8
- 3   / 3:  1358.  1368.
- 4   / 4:  1458.  1468.
-LIST/ORDER=ZTY
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 points (Z-T-Y)
-             X        : 1
-             5      6    
-             5      6
- ---- J:3 Y:   3
- 7   / 7:  1357.  1367.
- 8   / 8:  1358.  1368.
- ---- J:4 Y:   4
- 7   / 7:  1457.  1467.
- 8   / 8:  1458.  1468.
-LIST/ORDER=TYZ
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 points (T-Y-Z)
-             X        : 1
-             7      8    
-             7      8
- ---- K:5 Z:   5
- 3   / 3:  1357.  1358.
- 4   / 4:  1457.  1458.
- ---- K:6 Z:   6
- 3   / 3:  1367.  1368.
- 4   / 4:  1467.  1468.
-LIST/ORDER=TZY
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 points (T-Z-Y)
-             X        : 1
-             7      8    
-             7      8
- ---- J:3 Y:   3
- 5   / 5:  1357.  1358.
- 6   / 6:  1367.  1368.
- ---- J:4 Y:   4
- 5   / 5:  1457.  1458.
- 6   / 6:  1467.  1468.
- 
-SET REGION/I=1:2/J=3/K=5:6/L=7:8
-LIST/ORDER=XZT
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 points (X-Z-T)
-             Y        : 3
-             1      2    
-             1      2
- ---- L:7 T:   7
- 5   / 5:  1357.  2357.
- 6   / 6:  1367.  2367.
- ---- L:8 T:   8
- 5   / 5:  1358.  2358.
- 6   / 6:  1368.  2368.
-LIST/ORDER=XTZ
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 points (X-T-Z)
-             Y        : 3
-             1      2    
-             1      2
- ---- K:5 Z:   5
- 7   / 7:  1357.  2357.
- 8   / 8:  1358.  2358.
- ---- K:6 Z:   6
- 7   / 7:  1367.  2367.
- 8   / 8:  1368.  2368.
-LIST/ORDER=ZXT
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 points (Z-X-T)
-             Y        : 3
-             5      6    
-             5      6
- ---- L:7 T:   7
- 1   / 1:  1357.  1367.
- 2   / 2:  2357.  2367.
- ---- L:8 T:   8
- 1   / 1:  1358.  1368.
- 2   / 2:  2358.  2368.
-LIST/ORDER=ZTX
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 points (Z-T-X)
-             Y        : 3
-             5      6    
-             5      6
- ---- I:1 X:   1
- 7   / 7:  1357.  1367.
- 8   / 8:  1358.  1368.
- ---- I:2 X:   2
- 7   / 7:  2357.  2367.
- 8   / 8:  2358.  2368.
-LIST/ORDER=TXZ
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 points (T-X-Z)
-             Y        : 3
-             7      8    
-             7      8
- ---- K:5 Z:   5
- 1   / 1:  1357.  1358.
- 2   / 2:  2357.  2358.
- ---- K:6 Z:   6
- 1   / 1:  1367.  1368.
- 2   / 2:  2367.  2368.
-LIST/ORDER=TZX
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 points (T-Z-X)
-             Y        : 3
-             7      8    
-             7      8
- ---- I:1 X:   1
- 5   / 5:  1357.  1358.
- 6   / 6:  1367.  1368.
- ---- I:2 X:   2
- 5   / 5:  2357.  2358.
- 6   / 6:  2367.  2368.
- 
-SET REGION/I=1:2/J=3:4/K=5/L=7:8
-LIST/ORDER=XYT
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 points (X-Y-T)
-             Z        : 5
-             1      2    
-             1      2
- ---- L:7 T:   7
- 3   / 3:  1357.  2357.
- 4   / 4:  1457.  2457.
- ---- L:8 T:   8
- 3   / 3:  1358.  2358.
- 4   / 4:  1458.  2458.
-LIST/ORDER=XTY
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 points (X-T-Y)
-             Z        : 5
-             1      2    
-             1      2
- ---- J:3 Y:   3
- 7   / 7:  1357.  2357.
- 8   / 8:  1358.  2358.
- ---- J:4 Y:   4
- 7   / 7:  1457.  2457.
- 8   / 8:  1458.  2458.
-LIST/ORDER=YXT
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 points (Y-X-T)
-             Z        : 5
-             3      4    
-             3      4
- ---- L:7 T:   7
- 1   / 1:  1357.  1457.
- 2   / 2:  2357.  2457.
- ---- L:8 T:   8
- 1   / 1:  1358.  1458.
- 2   / 2:  2358.  2458.
-LIST/ORDER=YTX
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 points (Y-T-X)
-             Z        : 5
-             3      4    
-             3      4
- ---- I:1 X:   1
- 7   / 7:  1357.  1457.
- 8   / 8:  1358.  1458.
- ---- I:2 X:   2
- 7   / 7:  2357.  2457.
- 8   / 8:  2358.  2458.
-LIST/ORDER=TXY
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 points (T-X-Y)
-             Z        : 5
-             7      8    
-             7      8
- ---- J:3 Y:   3
- 1   / 1:  1357.  1358.
- 2   / 2:  2357.  2358.
- ---- J:4 Y:   4
- 1   / 1:  1457.  1458.
- 2   / 2:  2457.  2458.
-LIST/ORDER=TYX
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 points (T-Y-X)
-             Z        : 5
-             7      8    
-             7      8
- ---- I:1 X:   1
- 3   / 3:  1357.  1358.
- 4   / 4:  1457.  1458.
- ---- I:2 X:   2
- 3   / 3:  2357.  2358.
- 4   / 4:  2457.  2458.
- 
-SET REGION/I=1:2/J=3:4/K=5:6/L=7
-LIST/ORDER=XYZ
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 points (X-Y-Z)
-             T        : 7
-             1      2    
-             1      2
- ---- K:5 Z:   5
- 3   / 3:  1357.  2357.
- 4   / 4:  1457.  2457.
- ---- K:6 Z:   6
- 3   / 3:  1367.  2367.
- 4   / 4:  1467.  2467.
-LIST/ORDER=XZY
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 points (X-Z-Y)
-             T        : 7
-             1      2    
-             1      2
- ---- J:3 Y:   3
- 5   / 5:  1357.  2357.
- 6   / 6:  1367.  2367.
- ---- J:4 Y:   4
- 5   / 5:  1457.  2457.
- 6   / 6:  1467.  2467.
-LIST/ORDER=YXZ
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 points (Y-X-Z)
-             T        : 7
-             3      4    
-             3      4
- ---- K:5 Z:   5
- 1   / 1:  1357.  1457.
- 2   / 2:  2357.  2457.
- ---- K:6 Z:   6
- 1   / 1:  1367.  1467.
- 2   / 2:  2367.  2467.
-LIST/ORDER=YZX
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 points (Y-Z-X)
-             T        : 7
-             3      4    
-             3      4
- ---- I:1 X:   1
- 5   / 5:  1357.  1457.
- 6   / 6:  1367.  1467.
- ---- I:2 X:   2
- 5   / 5:  2357.  2457.
- 6   / 6:  2367.  2467.
-LIST/ORDER=ZXY
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 points (Z-X-Y)
-             T        : 7
-             5      6    
-             5      6
- ---- J:3 Y:   3
- 1   / 1:  1357.  1367.
- 2   / 2:  2357.  2367.
- ---- J:4 Y:   4
- 1   / 1:  1457.  1467.
- 2   / 2:  2457.  2467.
-LIST/ORDER=ZYX
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 by 2 points (Z-Y-X)
-             T        : 7
-             5      6    
-             5      6
- ---- I:1 X:   1
- 3   / 3:  1357.  1367.
- 4   / 4:  1457.  1467.
- ---- I:2 X:   2
- 3   / 3:  2357.  2367.
- 4   / 4:  2457.  2467.
- 
-! ------ 2D regions
-SET REGION/I=1/J=3/K=5:6/L=7:8
-LIST/ORDER=ZT
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 points (Z-T)
-             X        : 1
-             Y        : 3
-             5      6    
-             5      6
- 7   / 7:  1357.  1367.
- 8   / 8:  1358.  1368.
-LIST/ORDER=TZ
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 points (T-Z)
-             X        : 1
-             Y        : 3
-             7      8    
-             7      8
- 5   / 5:  1357.  1358.
- 6   / 6:  1367.  1368.
- 
-SET REGION/I=1/J=3:4/K=5/L=7:8
-LIST/ORDER=YT
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 points (Y-T)
-             X        : 1
-             Z        : 5
-             3      4    
-             3      4
- 7   / 7:  1357.  1457.
- 8   / 8:  1358.  1458.
-LIST/ORDER=TY
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 points (T-Y)
-             X        : 1
-             Z        : 5
-             7      8    
-             7      8
- 3   / 3:  1357.  1358.
- 4   / 4:  1457.  1458.
- 
-SET REGION/I=1/J=3:4/K=5:6/L=7
-LIST/ORDER=YZ
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 points (Y-Z)
-             X        : 1
-             T        : 7
-             3      4    
-             3      4
- 5   / 5:  1357.  1457.
- 6   / 6:  1367.  1467.
-LIST/ORDER=ZY
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 points (Z-Y)
-             X        : 1
-             T        : 7
-             5      6    
-             5      6
- 3   / 3:  1357.  1367.
- 4   / 4:  1457.  1467.
- 
-SET REGION/I=1:2/J=3/K=5/L=7:8
-LIST/ORDER=XT
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 points (X-T)
-             Y        : 3
-             Z        : 5
-             1      2    
-             1      2
- 7   / 7:  1357.  2357.
- 8   / 8:  1358.  2358.
-LIST/ORDER=TX
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 points (T-X)
-             Y        : 3
-             Z        : 5
-             7      8    
-             7      8
- 1   / 1:  1357.  1358.
- 2   / 2:  2357.  2358.
- 
-SET REGION/I=1:2/J=3/K=5:6/L=7
-LIST/ORDER=XZ
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 points (X-Z)
-             Y        : 3
-             T        : 7
-             1      2    
-             1      2
- 5   / 5:  1357.  2357.
- 6   / 6:  1367.  2367.
-LIST/ORDER=ZX
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 points (Z-X)
-             Y        : 3
-             T        : 7
-             5      6    
-             5      6
- 1   / 1:  1357.  1367.
- 2   / 2:  2357.  2367.
- 
-SET REGION/I=1:2/J=3:4/K=5/L=7
-LIST/ORDER=XY
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 points (X-Y)
-             Z        : 5
-             T        : 7
-             1      2    
-             1      2
- 3   / 3:  1357.  2357.
- 4   / 4:  1457.  2457.
-LIST/ORDER=YX
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 by 2 points (Y-X)
-             Z        : 5
-             T        : 7
-             3      4    
-             3      4
- 1   / 1:  1357.  1457.
- 2   / 2:  2357.  2457.
- 
-! ------ 1D regions
-LIST/I=1:2/J=3/K=5/L=7
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 points (X)
-             Y        : 3
-             Z        : 5
-             T        : 7
-             3    
-             3
- 1   / 1:  1357.
- 2   / 2:  2357.
-LIST/I=1/J=3:4/K=5/L=7
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 points (Y)
-             X        : 1
-             Z        : 5
-             T        : 7
-             1    
-             1
- 3   / 3:  1357.
- 4   / 4:  1457.
-LIST/I=1/J=3/K=5:6/L=7
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 points (Z)
-             X        : 1
-             Y        : 3
-             T        : 7
-             1    
-             1
- 5   / 5:  1357.
- 6   / 6:  1367.
-LIST/I=1/J=3/K=5/L=7:8
-             VARIABLE : 1000*I + 100*J + 10*K + L
-             SUBSET   : 2 points (T)
-             X        : 1
-             Y        : 3
-             Z        : 5
-             1    
-             1
- 7   / 7:  1357.
- 8   / 8:  1358.
- 
-! multiple variable list
-SET EXPRESSION v,i,j,k,l
-GO bn_output.sub
-! BN200_OUTPUT.SUB
-! - test various output order permutations FERRET
-! rev 0.0  9/18/90 *sh*
- 
-! test permutations on output
-! ------ 4D region
-SET REGION/I=1:2/J=3:4/K=5:6/L=7:8
-LIST/ORDER=XYZT
-             X: 0.5 to 2.5
-             Y: 2.5 to 4.5
-             Z: 4.5 to 6.5
-             T: 6.5 to 8.5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- L:7 T:   7
- ---- K:5 Z:   5
- ---- J:3 Y:   3
-1   / 1:  1357.  1.000  3.000  5.000  7.000
-2   / 2:  2357.  2.000  3.000  5.000  7.000
- ---- J:4 Y:   4
-1   / 1:  1457.  1.000  4.000  5.000  7.000
-2   / 2:  2457.  2.000  4.000  5.000  7.000
- ---- K:6 Z:   6
- ---- J:3 Y:   3
-1   / 1:  1367.  1.000  3.000  6.000  7.000
-2   / 2:  2367.  2.000  3.000  6.000  7.000
- ---- J:4 Y:   4
-1   / 1:  1467.  1.000  4.000  6.000  7.000
-2   / 2:  2467.  2.000  4.000  6.000  7.000
- ---- L:8 T:   8
- ---- K:5 Z:   5
- ---- J:3 Y:   3
-1   / 1:  1358.  1.000  3.000  5.000  8.000
-2   / 2:  2358.  2.000  3.000  5.000  8.000
- ---- J:4 Y:   4
-1   / 1:  1458.  1.000  4.000  5.000  8.000
-2   / 2:  2458.  2.000  4.000  5.000  8.000
- ---- K:6 Z:   6
- ---- J:3 Y:   3
-1   / 1:  1368.  1.000  3.000  6.000  8.000
-2   / 2:  2368.  2.000  3.000  6.000  8.000
- ---- J:4 Y:   4
-1   / 1:  1468.  1.000  4.000  6.000  8.000
-2   / 2:  2468.  2.000  4.000  6.000  8.000
-LIST/ORDER=XYTZ
-             X: 0.5 to 2.5
-             Y: 2.5 to 4.5
-             T: 6.5 to 8.5
-             Z: 4.5 to 6.5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- K:5 Z:   5
- ---- L:7 T:   7
- ---- J:3 Y:   3
-1   / 1:  1357.  1.000  3.000  5.000  7.000
-2   / 2:  2357.  2.000  3.000  5.000  7.000
- ---- J:4 Y:   4
-1   / 1:  1457.  1.000  4.000  5.000  7.000
-2   / 2:  2457.  2.000  4.000  5.000  7.000
- ---- L:8 T:   8
- ---- J:3 Y:   3
-1   / 1:  1358.  1.000  3.000  5.000  8.000
-2   / 2:  2358.  2.000  3.000  5.000  8.000
- ---- J:4 Y:   4
-1   / 1:  1458.  1.000  4.000  5.000  8.000
-2   / 2:  2458.  2.000  4.000  5.000  8.000
- ---- K:6 Z:   6
- ---- L:7 T:   7
- ---- J:3 Y:   3
-1   / 1:  1367.  1.000  3.000  6.000  7.000
-2   / 2:  2367.  2.000  3.000  6.000  7.000
- ---- J:4 Y:   4
-1   / 1:  1467.  1.000  4.000  6.000  7.000
-2   / 2:  2467.  2.000  4.000  6.000  7.000
- ---- L:8 T:   8
- ---- J:3 Y:   3
-1   / 1:  1368.  1.000  3.000  6.000  8.000
-2   / 2:  2368.  2.000  3.000  6.000  8.000
- ---- J:4 Y:   4
-1   / 1:  1468.  1.000  4.000  6.000  8.000
-2   / 2:  2468.  2.000  4.000  6.000  8.000
-LIST/ORDER=XZYT
-             X: 0.5 to 2.5
-             Z: 4.5 to 6.5
-             Y: 2.5 to 4.5
-             T: 6.5 to 8.5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- L:7 T:   7
- ---- J:3 Y:   3
- ---- K:5 Z:   5
-1   / 1:  1357.  1.000  3.000  5.000  7.000
-2   / 2:  2357.  2.000  3.000  5.000  7.000
- ---- K:6 Z:   6
-1   / 1:  1367.  1.000  3.000  6.000  7.000
-2   / 2:  2367.  2.000  3.000  6.000  7.000
- ---- J:4 Y:   4
- ---- K:5 Z:   5
-1   / 1:  1457.  1.000  4.000  5.000  7.000
-2   / 2:  2457.  2.000  4.000  5.000  7.000
- ---- K:6 Z:   6
-1   / 1:  1467.  1.000  4.000  6.000  7.000
-2   / 2:  2467.  2.000  4.000  6.000  7.000
- ---- L:8 T:   8
- ---- J:3 Y:   3
- ---- K:5 Z:   5
-1   / 1:  1358.  1.000  3.000  5.000  8.000
-2   / 2:  2358.  2.000  3.000  5.000  8.000
- ---- K:6 Z:   6
-1   / 1:  1368.  1.000  3.000  6.000  8.000
-2   / 2:  2368.  2.000  3.000  6.000  8.000
- ---- J:4 Y:   4
- ---- K:5 Z:   5
-1   / 1:  1458.  1.000  4.000  5.000  8.000
-2   / 2:  2458.  2.000  4.000  5.000  8.000
- ---- K:6 Z:   6
-1   / 1:  1468.  1.000  4.000  6.000  8.000
-2   / 2:  2468.  2.000  4.000  6.000  8.000
-LIST/ORDER=XZTY
-             X: 0.5 to 2.5
-             Z: 4.5 to 6.5
-             T: 6.5 to 8.5
-             Y: 2.5 to 4.5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- J:3 Y:   3
- ---- L:7 T:   7
- ---- K:5 Z:   5
-1   / 1:  1357.  1.000  3.000  5.000  7.000
-2   / 2:  2357.  2.000  3.000  5.000  7.000
- ---- K:6 Z:   6
-1   / 1:  1367.  1.000  3.000  6.000  7.000
-2   / 2:  2367.  2.000  3.000  6.000  7.000
- ---- L:8 T:   8
- ---- K:5 Z:   5
-1   / 1:  1358.  1.000  3.000  5.000  8.000
-2   / 2:  2358.  2.000  3.000  5.000  8.000
- ---- K:6 Z:   6
-1   / 1:  1368.  1.000  3.000  6.000  8.000
-2   / 2:  2368.  2.000  3.000  6.000  8.000
- ---- J:4 Y:   4
- ---- L:7 T:   7
- ---- K:5 Z:   5
-1   / 1:  1457.  1.000  4.000  5.000  7.000
-2   / 2:  2457.  2.000  4.000  5.000  7.000
- ---- K:6 Z:   6
-1   / 1:  1467.  1.000  4.000  6.000  7.000
-2   / 2:  2467.  2.000  4.000  6.000  7.000
- ---- L:8 T:   8
- ---- K:5 Z:   5
-1   / 1:  1458.  1.000  4.000  5.000  8.000
-2   / 2:  2458.  2.000  4.000  5.000  8.000
- ---- K:6 Z:   6
-1   / 1:  1468.  1.000  4.000  6.000  8.000
-2   / 2:  2468.  2.000  4.000  6.000  8.000
-LIST/ORDER=XTYZ
-             X: 0.5 to 2.5
-             T: 6.5 to 8.5
-             Y: 2.5 to 4.5
-             Z: 4.5 to 6.5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- K:5 Z:   5
- ---- J:3 Y:   3
- ---- L:7 T:   7
-1   / 1:  1357.  1.000  3.000  5.000  7.000
-2   / 2:  2357.  2.000  3.000  5.000  7.000
- ---- L:8 T:   8
-1   / 1:  1358.  1.000  3.000  5.000  8.000
-2   / 2:  2358.  2.000  3.000  5.000  8.000
- ---- J:4 Y:   4
- ---- L:7 T:   7
-1   / 1:  1457.  1.000  4.000  5.000  7.000
-2   / 2:  2457.  2.000  4.000  5.000  7.000
- ---- L:8 T:   8
-1   / 1:  1458.  1.000  4.000  5.000  8.000
-2   / 2:  2458.  2.000  4.000  5.000  8.000
- ---- K:6 Z:   6
- ---- J:3 Y:   3
- ---- L:7 T:   7
-1   / 1:  1367.  1.000  3.000  6.000  7.000
-2   / 2:  2367.  2.000  3.000  6.000  7.000
- ---- L:8 T:   8
-1   / 1:  1368.  1.000  3.000  6.000  8.000
-2   / 2:  2368.  2.000  3.000  6.000  8.000
- ---- J:4 Y:   4
- ---- L:7 T:   7
-1   / 1:  1467.  1.000  4.000  6.000  7.000
-2   / 2:  2467.  2.000  4.000  6.000  7.000
- ---- L:8 T:   8
-1   / 1:  1468.  1.000  4.000  6.000  8.000
-2   / 2:  2468.  2.000  4.000  6.000  8.000
-LIST/ORDER=XTZY
-             X: 0.5 to 2.5
-             T: 6.5 to 8.5
-             Z: 4.5 to 6.5
-             Y: 2.5 to 4.5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- J:3 Y:   3
- ---- K:5 Z:   5
- ---- L:7 T:   7
-1   / 1:  1357.  1.000  3.000  5.000  7.000
-2   / 2:  2357.  2.000  3.000  5.000  7.000
- ---- L:8 T:   8
-1   / 1:  1358.  1.000  3.000  5.000  8.000
-2   / 2:  2358.  2.000  3.000  5.000  8.000
- ---- K:6 Z:   6
- ---- L:7 T:   7
-1   / 1:  1367.  1.000  3.000  6.000  7.000
-2   / 2:  2367.  2.000  3.000  6.000  7.000
- ---- L:8 T:   8
-1   / 1:  1368.  1.000  3.000  6.000  8.000
-2   / 2:  2368.  2.000  3.000  6.000  8.000
- ---- J:4 Y:   4
- ---- K:5 Z:   5
- ---- L:7 T:   7
-1   / 1:  1457.  1.000  4.000  5.000  7.000
-2   / 2:  2457.  2.000  4.000  5.000  7.000
- ---- L:8 T:   8
-1   / 1:  1458.  1.000  4.000  5.000  8.000
-2   / 2:  2458.  2.000  4.000  5.000  8.000
- ---- K:6 Z:   6
- ---- L:7 T:   7
-1   / 1:  1467.  1.000  4.000  6.000  7.000
-2   / 2:  2467.  2.000  4.000  6.000  7.000
- ---- L:8 T:   8
-1   / 1:  1468.  1.000  4.000  6.000  8.000
-2   / 2:  2468.  2.000  4.000  6.000  8.000
-LIST/ORDER=YXZT
-             Y: 2.5 to 4.5
-             X: 0.5 to 2.5
-             Z: 4.5 to 6.5
-             T: 6.5 to 8.5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- L:7 T:   7
- ---- K:5 Z:   5
- ---- I:1 X:   1
-3   / 3:  1357.  1.000  3.000  5.000  7.000
-4   / 4:  1457.  1.000  4.000  5.000  7.000
- ---- I:2 X:   2
-3   / 3:  2357.  2.000  3.000  5.000  7.000
-4   / 4:  2457.  2.000  4.000  5.000  7.000
- ---- K:6 Z:   6
- ---- I:1 X:   1
-3   / 3:  1367.  1.000  3.000  6.000  7.000
-4   / 4:  1467.  1.000  4.000  6.000  7.000
- ---- I:2 X:   2
-3   / 3:  2367.  2.000  3.000  6.000  7.000
-4   / 4:  2467.  2.000  4.000  6.000  7.000
- ---- L:8 T:   8
- ---- K:5 Z:   5
- ---- I:1 X:   1
-3   / 3:  1358.  1.000  3.000  5.000  8.000
-4   / 4:  1458.  1.000  4.000  5.000  8.000
- ---- I:2 X:   2
-3   / 3:  2358.  2.000  3.000  5.000  8.000
-4   / 4:  2458.  2.000  4.000  5.000  8.000
- ---- K:6 Z:   6
- ---- I:1 X:   1
-3   / 3:  1368.  1.000  3.000  6.000  8.000
-4   / 4:  1468.  1.000  4.000  6.000  8.000
- ---- I:2 X:   2
-3   / 3:  2368.  2.000  3.000  6.000  8.000
-4   / 4:  2468.  2.000  4.000  6.000  8.000
-LIST/ORDER=YXTZ
-             Y: 2.5 to 4.5
-             X: 0.5 to 2.5
-             T: 6.5 to 8.5
-             Z: 4.5 to 6.5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- K:5 Z:   5
- ---- L:7 T:   7
- ---- I:1 X:   1
-3   / 3:  1357.  1.000  3.000  5.000  7.000
-4   / 4:  1457.  1.000  4.000  5.000  7.000
- ---- I:2 X:   2
-3   / 3:  2357.  2.000  3.000  5.000  7.000
-4   / 4:  2457.  2.000  4.000  5.000  7.000
- ---- L:8 T:   8
- ---- I:1 X:   1
-3   / 3:  1358.  1.000  3.000  5.000  8.000
-4   / 4:  1458.  1.000  4.000  5.000  8.000
- ---- I:2 X:   2
-3   / 3:  2358.  2.000  3.000  5.000  8.000
-4   / 4:  2458.  2.000  4.000  5.000  8.000
- ---- K:6 Z:   6
- ---- L:7 T:   7
- ---- I:1 X:   1
-3   / 3:  1367.  1.000  3.000  6.000  7.000
-4   / 4:  1467.  1.000  4.000  6.000  7.000
- ---- I:2 X:   2
-3   / 3:  2367.  2.000  3.000  6.000  7.000
-4   / 4:  2467.  2.000  4.000  6.000  7.000
- ---- L:8 T:   8
- ---- I:1 X:   1
-3   / 3:  1368.  1.000  3.000  6.000  8.000
-4   / 4:  1468.  1.000  4.000  6.000  8.000
- ---- I:2 X:   2
-3   / 3:  2368.  2.000  3.000  6.000  8.000
-4   / 4:  2468.  2.000  4.000  6.000  8.000
-LIST/ORDER=YZXT
-             Y: 2.5 to 4.5
-             Z: 4.5 to 6.5
-             X: 0.5 to 2.5
-             T: 6.5 to 8.5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- L:7 T:   7
- ---- I:1 X:   1
- ---- K:5 Z:   5
-3   / 3:  1357.  1.000  3.000  5.000  7.000
-4   / 4:  1457.  1.000  4.000  5.000  7.000
- ---- K:6 Z:   6
-3   / 3:  1367.  1.000  3.000  6.000  7.000
-4   / 4:  1467.  1.000  4.000  6.000  7.000
- ---- I:2 X:   2
- ---- K:5 Z:   5
-3   / 3:  2357.  2.000  3.000  5.000  7.000
-4   / 4:  2457.  2.000  4.000  5.000  7.000
- ---- K:6 Z:   6
-3   / 3:  2367.  2.000  3.000  6.000  7.000
-4   / 4:  2467.  2.000  4.000  6.000  7.000
- ---- L:8 T:   8
- ---- I:1 X:   1
- ---- K:5 Z:   5
-3   / 3:  1358.  1.000  3.000  5.000  8.000
-4   / 4:  1458.  1.000  4.000  5.000  8.000
- ---- K:6 Z:   6
-3   / 3:  1368.  1.000  3.000  6.000  8.000
-4   / 4:  1468.  1.000  4.000  6.000  8.000
- ---- I:2 X:   2
- ---- K:5 Z:   5
-3   / 3:  2358.  2.000  3.000  5.000  8.000
-4   / 4:  2458.  2.000  4.000  5.000  8.000
- ---- K:6 Z:   6
-3   / 3:  2368.  2.000  3.000  6.000  8.000
-4   / 4:  2468.  2.000  4.000  6.000  8.000
-LIST/ORDER=YZTX
-             Y: 2.5 to 4.5
-             Z: 4.5 to 6.5
-             T: 6.5 to 8.5
-             X: 0.5 to 2.5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- I:1 X:   1
- ---- L:7 T:   7
- ---- K:5 Z:   5
-3   / 3:  1357.  1.000  3.000  5.000  7.000
-4   / 4:  1457.  1.000  4.000  5.000  7.000
- ---- K:6 Z:   6
-3   / 3:  1367.  1.000  3.000  6.000  7.000
-4   / 4:  1467.  1.000  4.000  6.000  7.000
- ---- L:8 T:   8
- ---- K:5 Z:   5
-3   / 3:  1358.  1.000  3.000  5.000  8.000
-4   / 4:  1458.  1.000  4.000  5.000  8.000
- ---- K:6 Z:   6
-3   / 3:  1368.  1.000  3.000  6.000  8.000
-4   / 4:  1468.  1.000  4.000  6.000  8.000
- ---- I:2 X:   2
- ---- L:7 T:   7
- ---- K:5 Z:   5
-3   / 3:  2357.  2.000  3.000  5.000  7.000
-4   / 4:  2457.  2.000  4.000  5.000  7.000
- ---- K:6 Z:   6
-3   / 3:  2367.  2.000  3.000  6.000  7.000
-4   / 4:  2467.  2.000  4.000  6.000  7.000
- ---- L:8 T:   8
- ---- K:5 Z:   5
-3   / 3:  2358.  2.000  3.000  5.000  8.000
-4   / 4:  2458.  2.000  4.000  5.000  8.000
- ---- K:6 Z:   6
-3   / 3:  2368.  2.000  3.000  6.000  8.000
-4   / 4:  2468.  2.000  4.000  6.000  8.000
-LIST/ORDER=YTXZ
-             Y: 2.5 to 4.5
-             T: 6.5 to 8.5
-             X: 0.5 to 2.5
-             Z: 4.5 to 6.5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- K:5 Z:   5
- ---- I:1 X:   1
- ---- L:7 T:   7
-3   / 3:  1357.  1.000  3.000  5.000  7.000
-4   / 4:  1457.  1.000  4.000  5.000  7.000
- ---- L:8 T:   8
-3   / 3:  1358.  1.000  3.000  5.000  8.000
-4   / 4:  1458.  1.000  4.000  5.000  8.000
- ---- I:2 X:   2
- ---- L:7 T:   7
-3   / 3:  2357.  2.000  3.000  5.000  7.000
-4   / 4:  2457.  2.000  4.000  5.000  7.000
- ---- L:8 T:   8
-3   / 3:  2358.  2.000  3.000  5.000  8.000
-4   / 4:  2458.  2.000  4.000  5.000  8.000
- ---- K:6 Z:   6
- ---- I:1 X:   1
- ---- L:7 T:   7
-3   / 3:  1367.  1.000  3.000  6.000  7.000
-4   / 4:  1467.  1.000  4.000  6.000  7.000
- ---- L:8 T:   8
-3   / 3:  1368.  1.000  3.000  6.000  8.000
-4   / 4:  1468.  1.000  4.000  6.000  8.000
- ---- I:2 X:   2
- ---- L:7 T:   7
-3   / 3:  2367.  2.000  3.000  6.000  7.000
-4   / 4:  2467.  2.000  4.000  6.000  7.000
- ---- L:8 T:   8
-3   / 3:  2368.  2.000  3.000  6.000  8.000
-4   / 4:  2468.  2.000  4.000  6.000  8.000
-LIST/ORDER=YTZX
-             Y: 2.5 to 4.5
-             T: 6.5 to 8.5
-             Z: 4.5 to 6.5
-             X: 0.5 to 2.5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- I:1 X:   1
- ---- K:5 Z:   5
- ---- L:7 T:   7
-3   / 3:  1357.  1.000  3.000  5.000  7.000
-4   / 4:  1457.  1.000  4.000  5.000  7.000
- ---- L:8 T:   8
-3   / 3:  1358.  1.000  3.000  5.000  8.000
-4   / 4:  1458.  1.000  4.000  5.000  8.000
- ---- K:6 Z:   6
- ---- L:7 T:   7
-3   / 3:  1367.  1.000  3.000  6.000  7.000
-4   / 4:  1467.  1.000  4.000  6.000  7.000
- ---- L:8 T:   8
-3   / 3:  1368.  1.000  3.000  6.000  8.000
-4   / 4:  1468.  1.000  4.000  6.000  8.000
- ---- I:2 X:   2
- ---- K:5 Z:   5
- ---- L:7 T:   7
-3   / 3:  2357.  2.000  3.000  5.000  7.000
-4   / 4:  2457.  2.000  4.000  5.000  7.000
- ---- L:8 T:   8
-3   / 3:  2358.  2.000  3.000  5.000  8.000
-4   / 4:  2458.  2.000  4.000  5.000  8.000
- ---- K:6 Z:   6
- ---- L:7 T:   7
-3   / 3:  2367.  2.000  3.000  6.000  7.000
-4   / 4:  2467.  2.000  4.000  6.000  7.000
- ---- L:8 T:   8
-3   / 3:  2368.  2.000  3.000  6.000  8.000
-4   / 4:  2468.  2.000  4.000  6.000  8.000
-LIST/ORDER=ZXYT
-             Z: 4.5 to 6.5
-             X: 0.5 to 2.5
-             Y: 2.5 to 4.5
-             T: 6.5 to 8.5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- L:7 T:   7
- ---- J:3 Y:   3
- ---- I:1 X:   1
-5   / 5:  1357.  1.000  3.000  5.000  7.000
-6   / 6:  1367.  1.000  3.000  6.000  7.000
- ---- I:2 X:   2
-5   / 5:  2357.  2.000  3.000  5.000  7.000
-6   / 6:  2367.  2.000  3.000  6.000  7.000
- ---- J:4 Y:   4
- ---- I:1 X:   1
-5   / 5:  1457.  1.000  4.000  5.000  7.000
-6   / 6:  1467.  1.000  4.000  6.000  7.000
- ---- I:2 X:   2
-5   / 5:  2457.  2.000  4.000  5.000  7.000
-6   / 6:  2467.  2.000  4.000  6.000  7.000
- ---- L:8 T:   8
- ---- J:3 Y:   3
- ---- I:1 X:   1
-5   / 5:  1358.  1.000  3.000  5.000  8.000
-6   / 6:  1368.  1.000  3.000  6.000  8.000
- ---- I:2 X:   2
-5   / 5:  2358.  2.000  3.000  5.000  8.000
-6   / 6:  2368.  2.000  3.000  6.000  8.000
- ---- J:4 Y:   4
- ---- I:1 X:   1
-5   / 5:  1458.  1.000  4.000  5.000  8.000
-6   / 6:  1468.  1.000  4.000  6.000  8.000
- ---- I:2 X:   2
-5   / 5:  2458.  2.000  4.000  5.000  8.000
-6   / 6:  2468.  2.000  4.000  6.000  8.000
-LIST/ORDER=ZXTY
-             Z: 4.5 to 6.5
-             X: 0.5 to 2.5
-             T: 6.5 to 8.5
-             Y: 2.5 to 4.5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- J:3 Y:   3
- ---- L:7 T:   7
- ---- I:1 X:   1
-5   / 5:  1357.  1.000  3.000  5.000  7.000
-6   / 6:  1367.  1.000  3.000  6.000  7.000
- ---- I:2 X:   2
-5   / 5:  2357.  2.000  3.000  5.000  7.000
-6   / 6:  2367.  2.000  3.000  6.000  7.000
- ---- L:8 T:   8
- ---- I:1 X:   1
-5   / 5:  1358.  1.000  3.000  5.000  8.000
-6   / 6:  1368.  1.000  3.000  6.000  8.000
- ---- I:2 X:   2
-5   / 5:  2358.  2.000  3.000  5.000  8.000
-6   / 6:  2368.  2.000  3.000  6.000  8.000
- ---- J:4 Y:   4
- ---- L:7 T:   7
- ---- I:1 X:   1
-5   / 5:  1457.  1.000  4.000  5.000  7.000
-6   / 6:  1467.  1.000  4.000  6.000  7.000
- ---- I:2 X:   2
-5   / 5:  2457.  2.000  4.000  5.000  7.000
-6   / 6:  2467.  2.000  4.000  6.000  7.000
- ---- L:8 T:   8
- ---- I:1 X:   1
-5   / 5:  1458.  1.000  4.000  5.000  8.000
-6   / 6:  1468.  1.000  4.000  6.000  8.000
- ---- I:2 X:   2
-5   / 5:  2458.  2.000  4.000  5.000  8.000
-6   / 6:  2468.  2.000  4.000  6.000  8.000
-LIST/ORDER=ZYXT
-             Z: 4.5 to 6.5
-             Y: 2.5 to 4.5
-             X: 0.5 to 2.5
-             T: 6.5 to 8.5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- L:7 T:   7
- ---- I:1 X:   1
- ---- J:3 Y:   3
-5   / 5:  1357.  1.000  3.000  5.000  7.000
-6   / 6:  1367.  1.000  3.000  6.000  7.000
- ---- J:4 Y:   4
-5   / 5:  1457.  1.000  4.000  5.000  7.000
-6   / 6:  1467.  1.000  4.000  6.000  7.000
- ---- I:2 X:   2
- ---- J:3 Y:   3
-5   / 5:  2357.  2.000  3.000  5.000  7.000
-6   / 6:  2367.  2.000  3.000  6.000  7.000
- ---- J:4 Y:   4
-5   / 5:  2457.  2.000  4.000  5.000  7.000
-6   / 6:  2467.  2.000  4.000  6.000  7.000
- ---- L:8 T:   8
- ---- I:1 X:   1
- ---- J:3 Y:   3
-5   / 5:  1358.  1.000  3.000  5.000  8.000
-6   / 6:  1368.  1.000  3.000  6.000  8.000
- ---- J:4 Y:   4
-5   / 5:  1458.  1.000  4.000  5.000  8.000
-6   / 6:  1468.  1.000  4.000  6.000  8.000
- ---- I:2 X:   2
- ---- J:3 Y:   3
-5   / 5:  2358.  2.000  3.000  5.000  8.000
-6   / 6:  2368.  2.000  3.000  6.000  8.000
- ---- J:4 Y:   4
-5   / 5:  2458.  2.000  4.000  5.000  8.000
-6   / 6:  2468.  2.000  4.000  6.000  8.000
-LIST/ORDER=ZYTX
-             Z: 4.5 to 6.5
-             Y: 2.5 to 4.5
-             T: 6.5 to 8.5
-             X: 0.5 to 2.5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- I:1 X:   1
- ---- L:7 T:   7
- ---- J:3 Y:   3
-5   / 5:  1357.  1.000  3.000  5.000  7.000
-6   / 6:  1367.  1.000  3.000  6.000  7.000
- ---- J:4 Y:   4
-5   / 5:  1457.  1.000  4.000  5.000  7.000
-6   / 6:  1467.  1.000  4.000  6.000  7.000
- ---- L:8 T:   8
- ---- J:3 Y:   3
-5   / 5:  1358.  1.000  3.000  5.000  8.000
-6   / 6:  1368.  1.000  3.000  6.000  8.000
- ---- J:4 Y:   4
-5   / 5:  1458.  1.000  4.000  5.000  8.000
-6   / 6:  1468.  1.000  4.000  6.000  8.000
- ---- I:2 X:   2
- ---- L:7 T:   7
- ---- J:3 Y:   3
-5   / 5:  2357.  2.000  3.000  5.000  7.000
-6   / 6:  2367.  2.000  3.000  6.000  7.000
- ---- J:4 Y:   4
-5   / 5:  2457.  2.000  4.000  5.000  7.000
-6   / 6:  2467.  2.000  4.000  6.000  7.000
- ---- L:8 T:   8
- ---- J:3 Y:   3
-5   / 5:  2358.  2.000  3.000  5.000  8.000
-6   / 6:  2368.  2.000  3.000  6.000  8.000
- ---- J:4 Y:   4
-5   / 5:  2458.  2.000  4.000  5.000  8.000
-6   / 6:  2468.  2.000  4.000  6.000  8.000
-LIST/ORDER=ZTXY
-             Z: 4.5 to 6.5
-             T: 6.5 to 8.5
-             X: 0.5 to 2.5
-             Y: 2.5 to 4.5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- J:3 Y:   3
- ---- I:1 X:   1
- ---- L:7 T:   7
-5   / 5:  1357.  1.000  3.000  5.000  7.000
-6   / 6:  1367.  1.000  3.000  6.000  7.000
- ---- L:8 T:   8
-5   / 5:  1358.  1.000  3.000  5.000  8.000
-6   / 6:  1368.  1.000  3.000  6.000  8.000
- ---- I:2 X:   2
- ---- L:7 T:   7
-5   / 5:  2357.  2.000  3.000  5.000  7.000
-6   / 6:  2367.  2.000  3.000  6.000  7.000
- ---- L:8 T:   8
-5   / 5:  2358.  2.000  3.000  5.000  8.000
-6   / 6:  2368.  2.000  3.000  6.000  8.000
- ---- J:4 Y:   4
- ---- I:1 X:   1
- ---- L:7 T:   7
-5   / 5:  1457.  1.000  4.000  5.000  7.000
-6   / 6:  1467.  1.000  4.000  6.000  7.000
- ---- L:8 T:   8
-5   / 5:  1458.  1.000  4.000  5.000  8.000
-6   / 6:  1468.  1.000  4.000  6.000  8.000
- ---- I:2 X:   2
- ---- L:7 T:   7
-5   / 5:  2457.  2.000  4.000  5.000  7.000
-6   / 6:  2467.  2.000  4.000  6.000  7.000
- ---- L:8 T:   8
-5   / 5:  2458.  2.000  4.000  5.000  8.000
-6   / 6:  2468.  2.000  4.000  6.000  8.000
-LIST/ORDER=ZTYX
-             Z: 4.5 to 6.5
-             T: 6.5 to 8.5
-             Y: 2.5 to 4.5
-             X: 0.5 to 2.5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- I:1 X:   1
- ---- J:3 Y:   3
- ---- L:7 T:   7
-5   / 5:  1357.  1.000  3.000  5.000  7.000
-6   / 6:  1367.  1.000  3.000  6.000  7.000
- ---- L:8 T:   8
-5   / 5:  1358.  1.000  3.000  5.000  8.000
-6   / 6:  1368.  1.000  3.000  6.000  8.000
- ---- J:4 Y:   4
- ---- L:7 T:   7
-5   / 5:  1457.  1.000  4.000  5.000  7.000
-6   / 6:  1467.  1.000  4.000  6.000  7.000
- ---- L:8 T:   8
-5   / 5:  1458.  1.000  4.000  5.000  8.000
-6   / 6:  1468.  1.000  4.000  6.000  8.000
- ---- I:2 X:   2
- ---- J:3 Y:   3
- ---- L:7 T:   7
-5   / 5:  2357.  2.000  3.000  5.000  7.000
-6   / 6:  2367.  2.000  3.000  6.000  7.000
- ---- L:8 T:   8
-5   / 5:  2358.  2.000  3.000  5.000  8.000
-6   / 6:  2368.  2.000  3.000  6.000  8.000
- ---- J:4 Y:   4
- ---- L:7 T:   7
-5   / 5:  2457.  2.000  4.000  5.000  7.000
-6   / 6:  2467.  2.000  4.000  6.000  7.000
- ---- L:8 T:   8
-5   / 5:  2458.  2.000  4.000  5.000  8.000
-6   / 6:  2468.  2.000  4.000  6.000  8.000
-LIST/ORDER=TXYZ
-             T: 6.5 to 8.5
-             X: 0.5 to 2.5
-             Y: 2.5 to 4.5
-             Z: 4.5 to 6.5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- K:5 Z:   5
- ---- J:3 Y:   3
- ---- I:1 X:   1
-7   / 7:  1357.  1.000  3.000  5.000  7.000
-8   / 8:  1358.  1.000  3.000  5.000  8.000
- ---- I:2 X:   2
-7   / 7:  2357.  2.000  3.000  5.000  7.000
-8   / 8:  2358.  2.000  3.000  5.000  8.000
- ---- J:4 Y:   4
- ---- I:1 X:   1
-7   / 7:  1457.  1.000  4.000  5.000  7.000
-8   / 8:  1458.  1.000  4.000  5.000  8.000
- ---- I:2 X:   2
-7   / 7:  2457.  2.000  4.000  5.000  7.000
-8   / 8:  2458.  2.000  4.000  5.000  8.000
- ---- K:6 Z:   6
- ---- J:3 Y:   3
- ---- I:1 X:   1
-7   / 7:  1367.  1.000  3.000  6.000  7.000
-8   / 8:  1368.  1.000  3.000  6.000  8.000
- ---- I:2 X:   2
-7   / 7:  2367.  2.000  3.000  6.000  7.000
-8   / 8:  2368.  2.000  3.000  6.000  8.000
- ---- J:4 Y:   4
- ---- I:1 X:   1
-7   / 7:  1467.  1.000  4.000  6.000  7.000
-8   / 8:  1468.  1.000  4.000  6.000  8.000
- ---- I:2 X:   2
-7   / 7:  2467.  2.000  4.000  6.000  7.000
-8   / 8:  2468.  2.000  4.000  6.000  8.000
-LIST/ORDER=TXZY
-             T: 6.5 to 8.5
-             X: 0.5 to 2.5
-             Z: 4.5 to 6.5
-             Y: 2.5 to 4.5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- J:3 Y:   3
- ---- K:5 Z:   5
- ---- I:1 X:   1
-7   / 7:  1357.  1.000  3.000  5.000  7.000
-8   / 8:  1358.  1.000  3.000  5.000  8.000
- ---- I:2 X:   2
-7   / 7:  2357.  2.000  3.000  5.000  7.000
-8   / 8:  2358.  2.000  3.000  5.000  8.000
- ---- K:6 Z:   6
- ---- I:1 X:   1
-7   / 7:  1367.  1.000  3.000  6.000  7.000
-8   / 8:  1368.  1.000  3.000  6.000  8.000
- ---- I:2 X:   2
-7   / 7:  2367.  2.000  3.000  6.000  7.000
-8   / 8:  2368.  2.000  3.000  6.000  8.000
- ---- J:4 Y:   4
- ---- K:5 Z:   5
- ---- I:1 X:   1
-7   / 7:  1457.  1.000  4.000  5.000  7.000
-8   / 8:  1458.  1.000  4.000  5.000  8.000
- ---- I:2 X:   2
-7   / 7:  2457.  2.000  4.000  5.000  7.000
-8   / 8:  2458.  2.000  4.000  5.000  8.000
- ---- K:6 Z:   6
- ---- I:1 X:   1
-7   / 7:  1467.  1.000  4.000  6.000  7.000
-8   / 8:  1468.  1.000  4.000  6.000  8.000
- ---- I:2 X:   2
-7   / 7:  2467.  2.000  4.000  6.000  7.000
-8   / 8:  2468.  2.000  4.000  6.000  8.000
-LIST/ORDER=TYXZ
-             T: 6.5 to 8.5
-             Y: 2.5 to 4.5
-             X: 0.5 to 2.5
-             Z: 4.5 to 6.5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- K:5 Z:   5
- ---- I:1 X:   1
- ---- J:3 Y:   3
-7   / 7:  1357.  1.000  3.000  5.000  7.000
-8   / 8:  1358.  1.000  3.000  5.000  8.000
- ---- J:4 Y:   4
-7   / 7:  1457.  1.000  4.000  5.000  7.000
-8   / 8:  1458.  1.000  4.000  5.000  8.000
- ---- I:2 X:   2
- ---- J:3 Y:   3
-7   / 7:  2357.  2.000  3.000  5.000  7.000
-8   / 8:  2358.  2.000  3.000  5.000  8.000
- ---- J:4 Y:   4
-7   / 7:  2457.  2.000  4.000  5.000  7.000
-8   / 8:  2458.  2.000  4.000  5.000  8.000
- ---- K:6 Z:   6
- ---- I:1 X:   1
- ---- J:3 Y:   3
-7   / 7:  1367.  1.000  3.000  6.000  7.000
-8   / 8:  1368.  1.000  3.000  6.000  8.000
- ---- J:4 Y:   4
-7   / 7:  1467.  1.000  4.000  6.000  7.000
-8   / 8:  1468.  1.000  4.000  6.000  8.000
- ---- I:2 X:   2
- ---- J:3 Y:   3
-7   / 7:  2367.  2.000  3.000  6.000  7.000
-8   / 8:  2368.  2.000  3.000  6.000  8.000
- ---- J:4 Y:   4
-7   / 7:  2467.  2.000  4.000  6.000  7.000
-8   / 8:  2468.  2.000  4.000  6.000  8.000
-LIST/ORDER=TYZX
-             T: 6.5 to 8.5
-             Y: 2.5 to 4.5
-             Z: 4.5 to 6.5
-             X: 0.5 to 2.5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- I:1 X:   1
- ---- K:5 Z:   5
- ---- J:3 Y:   3
-7   / 7:  1357.  1.000  3.000  5.000  7.000
-8   / 8:  1358.  1.000  3.000  5.000  8.000
- ---- J:4 Y:   4
-7   / 7:  1457.  1.000  4.000  5.000  7.000
-8   / 8:  1458.  1.000  4.000  5.000  8.000
- ---- K:6 Z:   6
- ---- J:3 Y:   3
-7   / 7:  1367.  1.000  3.000  6.000  7.000
-8   / 8:  1368.  1.000  3.000  6.000  8.000
- ---- J:4 Y:   4
-7   / 7:  1467.  1.000  4.000  6.000  7.000
-8   / 8:  1468.  1.000  4.000  6.000  8.000
- ---- I:2 X:   2
- ---- K:5 Z:   5
- ---- J:3 Y:   3
-7   / 7:  2357.  2.000  3.000  5.000  7.000
-8   / 8:  2358.  2.000  3.000  5.000  8.000
- ---- J:4 Y:   4
-7   / 7:  2457.  2.000  4.000  5.000  7.000
-8   / 8:  2458.  2.000  4.000  5.000  8.000
- ---- K:6 Z:   6
- ---- J:3 Y:   3
-7   / 7:  2367.  2.000  3.000  6.000  7.000
-8   / 8:  2368.  2.000  3.000  6.000  8.000
- ---- J:4 Y:   4
-7   / 7:  2467.  2.000  4.000  6.000  7.000
-8   / 8:  2468.  2.000  4.000  6.000  8.000
-LIST/ORDER=TZXY
-             T: 6.5 to 8.5
-             Z: 4.5 to 6.5
-             X: 0.5 to 2.5
-             Y: 2.5 to 4.5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- J:3 Y:   3
- ---- I:1 X:   1
- ---- K:5 Z:   5
-7   / 7:  1357.  1.000  3.000  5.000  7.000
-8   / 8:  1358.  1.000  3.000  5.000  8.000
- ---- K:6 Z:   6
-7   / 7:  1367.  1.000  3.000  6.000  7.000
-8   / 8:  1368.  1.000  3.000  6.000  8.000
- ---- I:2 X:   2
- ---- K:5 Z:   5
-7   / 7:  2357.  2.000  3.000  5.000  7.000
-8   / 8:  2358.  2.000  3.000  5.000  8.000
- ---- K:6 Z:   6
-7   / 7:  2367.  2.000  3.000  6.000  7.000
-8   / 8:  2368.  2.000  3.000  6.000  8.000
- ---- J:4 Y:   4
- ---- I:1 X:   1
- ---- K:5 Z:   5
-7   / 7:  1457.  1.000  4.000  5.000  7.000
-8   / 8:  1458.  1.000  4.000  5.000  8.000
- ---- K:6 Z:   6
-7   / 7:  1467.  1.000  4.000  6.000  7.000
-8   / 8:  1468.  1.000  4.000  6.000  8.000
- ---- I:2 X:   2
- ---- K:5 Z:   5
-7   / 7:  2457.  2.000  4.000  5.000  7.000
-8   / 8:  2458.  2.000  4.000  5.000  8.000
- ---- K:6 Z:   6
-7   / 7:  2467.  2.000  4.000  6.000  7.000
-8   / 8:  2468.  2.000  4.000  6.000  8.000
-LIST/ORDER=TZYX
-             T: 6.5 to 8.5
-             Z: 4.5 to 6.5
-             Y: 2.5 to 4.5
-             X: 0.5 to 2.5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- I:1 X:   1
- ---- J:3 Y:   3
- ---- K:5 Z:   5
-7   / 7:  1357.  1.000  3.000  5.000  7.000
-8   / 8:  1358.  1.000  3.000  5.000  8.000
- ---- K:6 Z:   6
-7   / 7:  1367.  1.000  3.000  6.000  7.000
-8   / 8:  1368.  1.000  3.000  6.000  8.000
- ---- J:4 Y:   4
- ---- K:5 Z:   5
-7   / 7:  1457.  1.000  4.000  5.000  7.000
-8   / 8:  1458.  1.000  4.000  5.000  8.000
- ---- K:6 Z:   6
-7   / 7:  1467.  1.000  4.000  6.000  7.000
-8   / 8:  1468.  1.000  4.000  6.000  8.000
- ---- I:2 X:   2
- ---- J:3 Y:   3
- ---- K:5 Z:   5
-7   / 7:  2357.  2.000  3.000  5.000  7.000
-8   / 8:  2358.  2.000  3.000  5.000  8.000
- ---- K:6 Z:   6
-7   / 7:  2367.  2.000  3.000  6.000  7.000
-8   / 8:  2368.  2.000  3.000  6.000  8.000
- ---- J:4 Y:   4
- ---- K:5 Z:   5
-7   / 7:  2457.  2.000  4.000  5.000  7.000
-8   / 8:  2458.  2.000  4.000  5.000  8.000
- ---- K:6 Z:   6
-7   / 7:  2467.  2.000  4.000  6.000  7.000
-8   / 8:  2468.  2.000  4.000  6.000  8.000
- 
-! ------ 3D regions
-SET REGION/I=1/J=3:4/K=5:6/L=7:8
-LIST/ORDER=YZT
-             Y: 2.5 to 4.5
-             Z: 4.5 to 6.5
-             T: 6.5 to 8.5
-             X: 1
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- L:7 T:   7
- ---- K:5 Z:   5
-3   / 3:  1357.  1.000  3.000  5.000  7.000
-4   / 4:  1457.  1.000  4.000  5.000  7.000
- ---- K:6 Z:   6
-3   / 3:  1367.  1.000  3.000  6.000  7.000
-4   / 4:  1467.  1.000  4.000  6.000  7.000
- ---- L:8 T:   8
- ---- K:5 Z:   5
-3   / 3:  1358.  1.000  3.000  5.000  8.000
-4   / 4:  1458.  1.000  4.000  5.000  8.000
- ---- K:6 Z:   6
-3   / 3:  1368.  1.000  3.000  6.000  8.000
-4   / 4:  1468.  1.000  4.000  6.000  8.000
-LIST/ORDER=YTZ
-             Y: 2.5 to 4.5
-             T: 6.5 to 8.5
-             Z: 4.5 to 6.5
-             X: 1
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- K:5 Z:   5
- ---- L:7 T:   7
-3   / 3:  1357.  1.000  3.000  5.000  7.000
-4   / 4:  1457.  1.000  4.000  5.000  7.000
- ---- L:8 T:   8
-3   / 3:  1358.  1.000  3.000  5.000  8.000
-4   / 4:  1458.  1.000  4.000  5.000  8.000
- ---- K:6 Z:   6
- ---- L:7 T:   7
-3   / 3:  1367.  1.000  3.000  6.000  7.000
-4   / 4:  1467.  1.000  4.000  6.000  7.000
- ---- L:8 T:   8
-3   / 3:  1368.  1.000  3.000  6.000  8.000
-4   / 4:  1468.  1.000  4.000  6.000  8.000
-LIST/ORDER=ZYT
-             Z: 4.5 to 6.5
-             Y: 2.5 to 4.5
-             T: 6.5 to 8.5
-             X: 1
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- L:7 T:   7
- ---- J:3 Y:   3
-5   / 5:  1357.  1.000  3.000  5.000  7.000
-6   / 6:  1367.  1.000  3.000  6.000  7.000
- ---- J:4 Y:   4
-5   / 5:  1457.  1.000  4.000  5.000  7.000
-6   / 6:  1467.  1.000  4.000  6.000  7.000
- ---- L:8 T:   8
- ---- J:3 Y:   3
-5   / 5:  1358.  1.000  3.000  5.000  8.000
-6   / 6:  1368.  1.000  3.000  6.000  8.000
- ---- J:4 Y:   4
-5   / 5:  1458.  1.000  4.000  5.000  8.000
-6   / 6:  1468.  1.000  4.000  6.000  8.000
-LIST/ORDER=ZTY
-             Z: 4.5 to 6.5
-             T: 6.5 to 8.5
-             Y: 2.5 to 4.5
-             X: 1
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- J:3 Y:   3
- ---- L:7 T:   7
-5   / 5:  1357.  1.000  3.000  5.000  7.000
-6   / 6:  1367.  1.000  3.000  6.000  7.000
- ---- L:8 T:   8
-5   / 5:  1358.  1.000  3.000  5.000  8.000
-6   / 6:  1368.  1.000  3.000  6.000  8.000
- ---- J:4 Y:   4
- ---- L:7 T:   7
-5   / 5:  1457.  1.000  4.000  5.000  7.000
-6   / 6:  1467.  1.000  4.000  6.000  7.000
- ---- L:8 T:   8
-5   / 5:  1458.  1.000  4.000  5.000  8.000
-6   / 6:  1468.  1.000  4.000  6.000  8.000
-LIST/ORDER=TYZ
-             T: 6.5 to 8.5
-             Y: 2.5 to 4.5
-             Z: 4.5 to 6.5
-             X: 1
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- K:5 Z:   5
- ---- J:3 Y:   3
-7   / 7:  1357.  1.000  3.000  5.000  7.000
-8   / 8:  1358.  1.000  3.000  5.000  8.000
- ---- J:4 Y:   4
-7   / 7:  1457.  1.000  4.000  5.000  7.000
-8   / 8:  1458.  1.000  4.000  5.000  8.000
- ---- K:6 Z:   6
- ---- J:3 Y:   3
-7   / 7:  1367.  1.000  3.000  6.000  7.000
-8   / 8:  1368.  1.000  3.000  6.000  8.000
- ---- J:4 Y:   4
-7   / 7:  1467.  1.000  4.000  6.000  7.000
-8   / 8:  1468.  1.000  4.000  6.000  8.000
-LIST/ORDER=TZY
-             T: 6.5 to 8.5
-             Z: 4.5 to 6.5
-             Y: 2.5 to 4.5
-             X: 1
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- J:3 Y:   3
- ---- K:5 Z:   5
-7   / 7:  1357.  1.000  3.000  5.000  7.000
-8   / 8:  1358.  1.000  3.000  5.000  8.000
- ---- K:6 Z:   6
-7   / 7:  1367.  1.000  3.000  6.000  7.000
-8   / 8:  1368.  1.000  3.000  6.000  8.000
- ---- J:4 Y:   4
- ---- K:5 Z:   5
-7   / 7:  1457.  1.000  4.000  5.000  7.000
-8   / 8:  1458.  1.000  4.000  5.000  8.000
- ---- K:6 Z:   6
-7   / 7:  1467.  1.000  4.000  6.000  7.000
-8   / 8:  1468.  1.000  4.000  6.000  8.000
- 
-SET REGION/I=1:2/J=3/K=5:6/L=7:8
-LIST/ORDER=XZT
-             X: 0.5 to 2.5
-             Z: 4.5 to 6.5
-             T: 6.5 to 8.5
-             Y: 3
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- L:7 T:   7
- ---- K:5 Z:   5
-1   / 1:  1357.  1.000  3.000  5.000  7.000
-2   / 2:  2357.  2.000  3.000  5.000  7.000
- ---- K:6 Z:   6
-1   / 1:  1367.  1.000  3.000  6.000  7.000
-2   / 2:  2367.  2.000  3.000  6.000  7.000
- ---- L:8 T:   8
- ---- K:5 Z:   5
-1   / 1:  1358.  1.000  3.000  5.000  8.000
-2   / 2:  2358.  2.000  3.000  5.000  8.000
- ---- K:6 Z:   6
-1   / 1:  1368.  1.000  3.000  6.000  8.000
-2   / 2:  2368.  2.000  3.000  6.000  8.000
-LIST/ORDER=XTZ
-             X: 0.5 to 2.5
-             T: 6.5 to 8.5
-             Z: 4.5 to 6.5
-             Y: 3
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- K:5 Z:   5
- ---- L:7 T:   7
-1   / 1:  1357.  1.000  3.000  5.000  7.000
-2   / 2:  2357.  2.000  3.000  5.000  7.000
- ---- L:8 T:   8
-1   / 1:  1358.  1.000  3.000  5.000  8.000
-2   / 2:  2358.  2.000  3.000  5.000  8.000
- ---- K:6 Z:   6
- ---- L:7 T:   7
-1   / 1:  1367.  1.000  3.000  6.000  7.000
-2   / 2:  2367.  2.000  3.000  6.000  7.000
- ---- L:8 T:   8
-1   / 1:  1368.  1.000  3.000  6.000  8.000
-2   / 2:  2368.  2.000  3.000  6.000  8.000
-LIST/ORDER=ZXT
-             Z: 4.5 to 6.5
-             X: 0.5 to 2.5
-             T: 6.5 to 8.5
-             Y: 3
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- L:7 T:   7
- ---- I:1 X:   1
-5   / 5:  1357.  1.000  3.000  5.000  7.000
-6   / 6:  1367.  1.000  3.000  6.000  7.000
- ---- I:2 X:   2
-5   / 5:  2357.  2.000  3.000  5.000  7.000
-6   / 6:  2367.  2.000  3.000  6.000  7.000
- ---- L:8 T:   8
- ---- I:1 X:   1
-5   / 5:  1358.  1.000  3.000  5.000  8.000
-6   / 6:  1368.  1.000  3.000  6.000  8.000
- ---- I:2 X:   2
-5   / 5:  2358.  2.000  3.000  5.000  8.000
-6   / 6:  2368.  2.000  3.000  6.000  8.000
-LIST/ORDER=ZTX
-             Z: 4.5 to 6.5
-             T: 6.5 to 8.5
-             X: 0.5 to 2.5
-             Y: 3
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- I:1 X:   1
- ---- L:7 T:   7
-5   / 5:  1357.  1.000  3.000  5.000  7.000
-6   / 6:  1367.  1.000  3.000  6.000  7.000
- ---- L:8 T:   8
-5   / 5:  1358.  1.000  3.000  5.000  8.000
-6   / 6:  1368.  1.000  3.000  6.000  8.000
- ---- I:2 X:   2
- ---- L:7 T:   7
-5   / 5:  2357.  2.000  3.000  5.000  7.000
-6   / 6:  2367.  2.000  3.000  6.000  7.000
- ---- L:8 T:   8
-5   / 5:  2358.  2.000  3.000  5.000  8.000
-6   / 6:  2368.  2.000  3.000  6.000  8.000
-LIST/ORDER=TXZ
-             T: 6.5 to 8.5
-             X: 0.5 to 2.5
-             Z: 4.5 to 6.5
-             Y: 3
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- K:5 Z:   5
- ---- I:1 X:   1
-7   / 7:  1357.  1.000  3.000  5.000  7.000
-8   / 8:  1358.  1.000  3.000  5.000  8.000
- ---- I:2 X:   2
-7   / 7:  2357.  2.000  3.000  5.000  7.000
-8   / 8:  2358.  2.000  3.000  5.000  8.000
- ---- K:6 Z:   6
- ---- I:1 X:   1
-7   / 7:  1367.  1.000  3.000  6.000  7.000
-8   / 8:  1368.  1.000  3.000  6.000  8.000
- ---- I:2 X:   2
-7   / 7:  2367.  2.000  3.000  6.000  7.000
-8   / 8:  2368.  2.000  3.000  6.000  8.000
-LIST/ORDER=TZX
-             T: 6.5 to 8.5
-             Z: 4.5 to 6.5
-             X: 0.5 to 2.5
-             Y: 3
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- I:1 X:   1
- ---- K:5 Z:   5
-7   / 7:  1357.  1.000  3.000  5.000  7.000
-8   / 8:  1358.  1.000  3.000  5.000  8.000
- ---- K:6 Z:   6
-7   / 7:  1367.  1.000  3.000  6.000  7.000
-8   / 8:  1368.  1.000  3.000  6.000  8.000
- ---- I:2 X:   2
- ---- K:5 Z:   5
-7   / 7:  2357.  2.000  3.000  5.000  7.000
-8   / 8:  2358.  2.000  3.000  5.000  8.000
- ---- K:6 Z:   6
-7   / 7:  2367.  2.000  3.000  6.000  7.000
-8   / 8:  2368.  2.000  3.000  6.000  8.000
- 
-SET REGION/I=1:2/J=3:4/K=5/L=7:8
-LIST/ORDER=XYT
-             X: 0.5 to 2.5
-             Y: 2.5 to 4.5
-             T: 6.5 to 8.5
-             Z: 5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- L:7 T:   7
- ---- J:3 Y:   3
-1   / 1:  1357.  1.000  3.000  5.000  7.000
-2   / 2:  2357.  2.000  3.000  5.000  7.000
- ---- J:4 Y:   4
-1   / 1:  1457.  1.000  4.000  5.000  7.000
-2   / 2:  2457.  2.000  4.000  5.000  7.000
- ---- L:8 T:   8
- ---- J:3 Y:   3
-1   / 1:  1358.  1.000  3.000  5.000  8.000
-2   / 2:  2358.  2.000  3.000  5.000  8.000
- ---- J:4 Y:   4
-1   / 1:  1458.  1.000  4.000  5.000  8.000
-2   / 2:  2458.  2.000  4.000  5.000  8.000
-LIST/ORDER=XTY
-             X: 0.5 to 2.5
-             T: 6.5 to 8.5
-             Y: 2.5 to 4.5
-             Z: 5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- J:3 Y:   3
- ---- L:7 T:   7
-1   / 1:  1357.  1.000  3.000  5.000  7.000
-2   / 2:  2357.  2.000  3.000  5.000  7.000
- ---- L:8 T:   8
-1   / 1:  1358.  1.000  3.000  5.000  8.000
-2   / 2:  2358.  2.000  3.000  5.000  8.000
- ---- J:4 Y:   4
- ---- L:7 T:   7
-1   / 1:  1457.  1.000  4.000  5.000  7.000
-2   / 2:  2457.  2.000  4.000  5.000  7.000
- ---- L:8 T:   8
-1   / 1:  1458.  1.000  4.000  5.000  8.000
-2   / 2:  2458.  2.000  4.000  5.000  8.000
-LIST/ORDER=YXT
-             Y: 2.5 to 4.5
-             X: 0.5 to 2.5
-             T: 6.5 to 8.5
-             Z: 5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- L:7 T:   7
- ---- I:1 X:   1
-3   / 3:  1357.  1.000  3.000  5.000  7.000
-4   / 4:  1457.  1.000  4.000  5.000  7.000
- ---- I:2 X:   2
-3   / 3:  2357.  2.000  3.000  5.000  7.000
-4   / 4:  2457.  2.000  4.000  5.000  7.000
- ---- L:8 T:   8
- ---- I:1 X:   1
-3   / 3:  1358.  1.000  3.000  5.000  8.000
-4   / 4:  1458.  1.000  4.000  5.000  8.000
- ---- I:2 X:   2
-3   / 3:  2358.  2.000  3.000  5.000  8.000
-4   / 4:  2458.  2.000  4.000  5.000  8.000
-LIST/ORDER=YTX
-             Y: 2.5 to 4.5
-             T: 6.5 to 8.5
-             X: 0.5 to 2.5
-             Z: 5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- I:1 X:   1
- ---- L:7 T:   7
-3   / 3:  1357.  1.000  3.000  5.000  7.000
-4   / 4:  1457.  1.000  4.000  5.000  7.000
- ---- L:8 T:   8
-3   / 3:  1358.  1.000  3.000  5.000  8.000
-4   / 4:  1458.  1.000  4.000  5.000  8.000
- ---- I:2 X:   2
- ---- L:7 T:   7
-3   / 3:  2357.  2.000  3.000  5.000  7.000
-4   / 4:  2457.  2.000  4.000  5.000  7.000
- ---- L:8 T:   8
-3   / 3:  2358.  2.000  3.000  5.000  8.000
-4   / 4:  2458.  2.000  4.000  5.000  8.000
-LIST/ORDER=TXY
-             T: 6.5 to 8.5
-             X: 0.5 to 2.5
-             Y: 2.5 to 4.5
-             Z: 5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- J:3 Y:   3
- ---- I:1 X:   1
-7   / 7:  1357.  1.000  3.000  5.000  7.000
-8   / 8:  1358.  1.000  3.000  5.000  8.000
- ---- I:2 X:   2
-7   / 7:  2357.  2.000  3.000  5.000  7.000
-8   / 8:  2358.  2.000  3.000  5.000  8.000
- ---- J:4 Y:   4
- ---- I:1 X:   1
-7   / 7:  1457.  1.000  4.000  5.000  7.000
-8   / 8:  1458.  1.000  4.000  5.000  8.000
- ---- I:2 X:   2
-7   / 7:  2457.  2.000  4.000  5.000  7.000
-8   / 8:  2458.  2.000  4.000  5.000  8.000
-LIST/ORDER=TYX
-             T: 6.5 to 8.5
-             Y: 2.5 to 4.5
-             X: 0.5 to 2.5
-             Z: 5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- I:1 X:   1
- ---- J:3 Y:   3
-7   / 7:  1357.  1.000  3.000  5.000  7.000
-8   / 8:  1358.  1.000  3.000  5.000  8.000
- ---- J:4 Y:   4
-7   / 7:  1457.  1.000  4.000  5.000  7.000
-8   / 8:  1458.  1.000  4.000  5.000  8.000
- ---- I:2 X:   2
- ---- J:3 Y:   3
-7   / 7:  2357.  2.000  3.000  5.000  7.000
-8   / 8:  2358.  2.000  3.000  5.000  8.000
- ---- J:4 Y:   4
-7   / 7:  2457.  2.000  4.000  5.000  7.000
-8   / 8:  2458.  2.000  4.000  5.000  8.000
- 
-SET REGION/I=1:2/J=3:4/K=5:6/L=7
-LIST/ORDER=XYZ
-             X: 0.5 to 2.5
-             Y: 2.5 to 4.5
-             Z: 4.5 to 6.5
-             T: 7
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- K:5 Z:   5
- ---- J:3 Y:   3
-1   / 1:  1357.  1.000  3.000  5.000  7.000
-2   / 2:  2357.  2.000  3.000  5.000  7.000
- ---- J:4 Y:   4
-1   / 1:  1457.  1.000  4.000  5.000  7.000
-2   / 2:  2457.  2.000  4.000  5.000  7.000
- ---- K:6 Z:   6
- ---- J:3 Y:   3
-1   / 1:  1367.  1.000  3.000  6.000  7.000
-2   / 2:  2367.  2.000  3.000  6.000  7.000
- ---- J:4 Y:   4
-1   / 1:  1467.  1.000  4.000  6.000  7.000
-2   / 2:  2467.  2.000  4.000  6.000  7.000
-LIST/ORDER=XZY
-             X: 0.5 to 2.5
-             Z: 4.5 to 6.5
-             Y: 2.5 to 4.5
-             T: 7
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- J:3 Y:   3
- ---- K:5 Z:   5
-1   / 1:  1357.  1.000  3.000  5.000  7.000
-2   / 2:  2357.  2.000  3.000  5.000  7.000
- ---- K:6 Z:   6
-1   / 1:  1367.  1.000  3.000  6.000  7.000
-2   / 2:  2367.  2.000  3.000  6.000  7.000
- ---- J:4 Y:   4
- ---- K:5 Z:   5
-1   / 1:  1457.  1.000  4.000  5.000  7.000
-2   / 2:  2457.  2.000  4.000  5.000  7.000
- ---- K:6 Z:   6
-1   / 1:  1467.  1.000  4.000  6.000  7.000
-2   / 2:  2467.  2.000  4.000  6.000  7.000
-LIST/ORDER=YXZ
-             Y: 2.5 to 4.5
-             X: 0.5 to 2.5
-             Z: 4.5 to 6.5
-             T: 7
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- K:5 Z:   5
- ---- I:1 X:   1
-3   / 3:  1357.  1.000  3.000  5.000  7.000
-4   / 4:  1457.  1.000  4.000  5.000  7.000
- ---- I:2 X:   2
-3   / 3:  2357.  2.000  3.000  5.000  7.000
-4   / 4:  2457.  2.000  4.000  5.000  7.000
- ---- K:6 Z:   6
- ---- I:1 X:   1
-3   / 3:  1367.  1.000  3.000  6.000  7.000
-4   / 4:  1467.  1.000  4.000  6.000  7.000
- ---- I:2 X:   2
-3   / 3:  2367.  2.000  3.000  6.000  7.000
-4   / 4:  2467.  2.000  4.000  6.000  7.000
-LIST/ORDER=YZX
-             Y: 2.5 to 4.5
-             Z: 4.5 to 6.5
-             X: 0.5 to 2.5
-             T: 7
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- I:1 X:   1
- ---- K:5 Z:   5
-3   / 3:  1357.  1.000  3.000  5.000  7.000
-4   / 4:  1457.  1.000  4.000  5.000  7.000
- ---- K:6 Z:   6
-3   / 3:  1367.  1.000  3.000  6.000  7.000
-4   / 4:  1467.  1.000  4.000  6.000  7.000
- ---- I:2 X:   2
- ---- K:5 Z:   5
-3   / 3:  2357.  2.000  3.000  5.000  7.000
-4   / 4:  2457.  2.000  4.000  5.000  7.000
- ---- K:6 Z:   6
-3   / 3:  2367.  2.000  3.000  6.000  7.000
-4   / 4:  2467.  2.000  4.000  6.000  7.000
-LIST/ORDER=ZXY
-             Z: 4.5 to 6.5
-             X: 0.5 to 2.5
-             Y: 2.5 to 4.5
-             T: 7
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- J:3 Y:   3
- ---- I:1 X:   1
-5   / 5:  1357.  1.000  3.000  5.000  7.000
-6   / 6:  1367.  1.000  3.000  6.000  7.000
- ---- I:2 X:   2
-5   / 5:  2357.  2.000  3.000  5.000  7.000
-6   / 6:  2367.  2.000  3.000  6.000  7.000
- ---- J:4 Y:   4
- ---- I:1 X:   1
-5   / 5:  1457.  1.000  4.000  5.000  7.000
-6   / 6:  1467.  1.000  4.000  6.000  7.000
- ---- I:2 X:   2
-5   / 5:  2457.  2.000  4.000  5.000  7.000
-6   / 6:  2467.  2.000  4.000  6.000  7.000
-LIST/ORDER=ZYX
-             Z: 4.5 to 6.5
-             Y: 2.5 to 4.5
-             X: 0.5 to 2.5
-             T: 7
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- I:1 X:   1
- ---- J:3 Y:   3
-5   / 5:  1357.  1.000  3.000  5.000  7.000
-6   / 6:  1367.  1.000  3.000  6.000  7.000
- ---- J:4 Y:   4
-5   / 5:  1457.  1.000  4.000  5.000  7.000
-6   / 6:  1467.  1.000  4.000  6.000  7.000
- ---- I:2 X:   2
- ---- J:3 Y:   3
-5   / 5:  2357.  2.000  3.000  5.000  7.000
-6   / 6:  2367.  2.000  3.000  6.000  7.000
- ---- J:4 Y:   4
-5   / 5:  2457.  2.000  4.000  5.000  7.000
-6   / 6:  2467.  2.000  4.000  6.000  7.000
- 
-! ------ 2D regions
-SET REGION/I=1/J=3/K=5:6/L=7:8
-LIST/ORDER=ZT
-             Z: 4.5 to 6.5
-             T: 6.5 to 8.5
-             X: 1
-             Y: 3
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- L:7 T:   7
-5   / 5:  1357.  1.000  3.000  5.000  7.000
-6   / 6:  1367.  1.000  3.000  6.000  7.000
- ---- L:8 T:   8
-5   / 5:  1358.  1.000  3.000  5.000  8.000
-6   / 6:  1368.  1.000  3.000  6.000  8.000
-LIST/ORDER=TZ
-             T: 6.5 to 8.5
-             Z: 4.5 to 6.5
-             X: 1
-             Y: 3
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- K:5 Z:   5
-7   / 7:  1357.  1.000  3.000  5.000  7.000
-8   / 8:  1358.  1.000  3.000  5.000  8.000
- ---- K:6 Z:   6
-7   / 7:  1367.  1.000  3.000  6.000  7.000
-8   / 8:  1368.  1.000  3.000  6.000  8.000
- 
-SET REGION/I=1/J=3:4/K=5/L=7:8
-LIST/ORDER=YT
-             Y: 2.5 to 4.5
-             T: 6.5 to 8.5
-             X: 1
-             Z: 5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- L:7 T:   7
-3   / 3:  1357.  1.000  3.000  5.000  7.000
-4   / 4:  1457.  1.000  4.000  5.000  7.000
- ---- L:8 T:   8
-3   / 3:  1358.  1.000  3.000  5.000  8.000
-4   / 4:  1458.  1.000  4.000  5.000  8.000
-LIST/ORDER=TY
-             T: 6.5 to 8.5
-             Y: 2.5 to 4.5
-             X: 1
-             Z: 5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- J:3 Y:   3
-7   / 7:  1357.  1.000  3.000  5.000  7.000
-8   / 8:  1358.  1.000  3.000  5.000  8.000
- ---- J:4 Y:   4
-7   / 7:  1457.  1.000  4.000  5.000  7.000
-8   / 8:  1458.  1.000  4.000  5.000  8.000
- 
-SET REGION/I=1/J=3:4/K=5:6/L=7
-LIST/ORDER=YZ
-             Y: 2.5 to 4.5
-             Z: 4.5 to 6.5
-             X: 1
-             T: 7
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- K:5 Z:   5
-3   / 3:  1357.  1.000  3.000  5.000  7.000
-4   / 4:  1457.  1.000  4.000  5.000  7.000
- ---- K:6 Z:   6
-3   / 3:  1367.  1.000  3.000  6.000  7.000
-4   / 4:  1467.  1.000  4.000  6.000  7.000
-LIST/ORDER=ZY
-             Z: 4.5 to 6.5
-             Y: 2.5 to 4.5
-             X: 1
-             T: 7
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- J:3 Y:   3
-5   / 5:  1357.  1.000  3.000  5.000  7.000
-6   / 6:  1367.  1.000  3.000  6.000  7.000
- ---- J:4 Y:   4
-5   / 5:  1457.  1.000  4.000  5.000  7.000
-6   / 6:  1467.  1.000  4.000  6.000  7.000
- 
-SET REGION/I=1:2/J=3/K=5/L=7:8
-LIST/ORDER=XT
-             X: 0.5 to 2.5
-             T: 6.5 to 8.5
-             Y: 3
-             Z: 5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- L:7 T:   7
-1   / 1:  1357.  1.000  3.000  5.000  7.000
-2   / 2:  2357.  2.000  3.000  5.000  7.000
- ---- L:8 T:   8
-1   / 1:  1358.  1.000  3.000  5.000  8.000
-2   / 2:  2358.  2.000  3.000  5.000  8.000
-LIST/ORDER=TX
-             T: 6.5 to 8.5
-             X: 0.5 to 2.5
-             Y: 3
-             Z: 5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- I:1 X:   1
-7   / 7:  1357.  1.000  3.000  5.000  7.000
-8   / 8:  1358.  1.000  3.000  5.000  8.000
- ---- I:2 X:   2
-7   / 7:  2357.  2.000  3.000  5.000  7.000
-8   / 8:  2358.  2.000  3.000  5.000  8.000
- 
-SET REGION/I=1:2/J=3/K=5:6/L=7
-LIST/ORDER=XZ
-             X: 0.5 to 2.5
-             Z: 4.5 to 6.5
-             Y: 3
-             T: 7
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- K:5 Z:   5
-1   / 1:  1357.  1.000  3.000  5.000  7.000
-2   / 2:  2357.  2.000  3.000  5.000  7.000
- ---- K:6 Z:   6
-1   / 1:  1367.  1.000  3.000  6.000  7.000
-2   / 2:  2367.  2.000  3.000  6.000  7.000
-LIST/ORDER=ZX
-             Z: 4.5 to 6.5
-             X: 0.5 to 2.5
-             Y: 3
-             T: 7
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- I:1 X:   1
-5   / 5:  1357.  1.000  3.000  5.000  7.000
-6   / 6:  1367.  1.000  3.000  6.000  7.000
- ---- I:2 X:   2
-5   / 5:  2357.  2.000  3.000  5.000  7.000
-6   / 6:  2367.  2.000  3.000  6.000  7.000
- 
-SET REGION/I=1:2/J=3:4/K=5/L=7
-LIST/ORDER=XY
-             X: 0.5 to 2.5
-             Y: 2.5 to 4.5
-             Z: 5
-             T: 7
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- J:3 Y:   3
-1   / 1:  1357.  1.000  3.000  5.000  7.000
-2   / 2:  2357.  2.000  3.000  5.000  7.000
- ---- J:4 Y:   4
-1   / 1:  1457.  1.000  4.000  5.000  7.000
-2   / 2:  2457.  2.000  4.000  5.000  7.000
-LIST/ORDER=YX
-             Y: 2.5 to 4.5
-             X: 0.5 to 2.5
-             Z: 5
-             T: 7
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- I:1 X:   1
-3   / 3:  1357.  1.000  3.000  5.000  7.000
-4   / 4:  1457.  1.000  4.000  5.000  7.000
- ---- I:2 X:   2
-3   / 3:  2357.  2.000  3.000  5.000  7.000
-4   / 4:  2457.  2.000  4.000  5.000  7.000
- 
-! ------ 1D regions
-LIST/I=1:2/J=3/K=5/L=7
-             X: 0.5 to 2.5
-             Y: 3
-             Z: 5
-             T: 7
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
-1   / 1:  1357.  1.000  3.000  5.000  7.000
-2   / 2:  2357.  2.000  3.000  5.000  7.000
-LIST/I=1/J=3:4/K=5/L=7
-             Y: 2.5 to 4.5
-             X: 1
-             Z: 5
-             T: 7
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
-3   / 3:  1357.  1.000  3.000  5.000  7.000
-4   / 4:  1457.  1.000  4.000  5.000  7.000
-LIST/I=1/J=3/K=5:6/L=7
-             Z: 4.5 to 6.5
-             X: 1
-             Y: 3
-             T: 7
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
-5   / 5:  1357.  1.000  3.000  5.000  7.000
-6   / 6:  1367.  1.000  3.000  6.000  7.000
-LIST/I=1/J=3/K=5/L=7:8
-             T: 6.5 to 8.5
-             X: 1
-             Y: 3
-             Z: 5
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
-7   / 7:  1357.  1.000  3.000  5.000  7.000
-8   / 8:  1358.  1.000  3.000  5.000  8.000
- 
-! ------------------------------------------
-! test other output mechanisms
-SET REGION/I=1:2/J=3:4/K=5:6/L=7
-LIST/NOHEAD
- ---- K:5 Z:   5
- ---- J:3 Y:   3
-1   / 1:  1357.  1.000  3.000  5.000  7.000
-2   / 2:  2357.  2.000  3.000  5.000  7.000
- ---- J:4 Y:   4
-1   / 1:  1457.  1.000  4.000  5.000  7.000
-2   / 2:  2457.  2.000  4.000  5.000  7.000
- ---- K:6 Z:   6
- ---- J:3 Y:   3
-1   / 1:  1367.  1.000  3.000  6.000  7.000
-2   / 2:  2367.  2.000  3.000  6.000  7.000
- ---- J:4 Y:   4
-1   / 1:  1467.  1.000  4.000  6.000  7.000
-2   / 2:  2467.  2.000  4.000  6.000  7.000
-SET LIST/PRECISION=6
-LIST
-             X: 0.5 to 2.5
-             Y: 2.5 to 4.5
-             Z: 4.5 to 6.5
-             T: 7
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-               V      I        J        K        L
- ---- K:5 Z:   5
- ---- J:3 Y:   3
-1   / 1:  1357.00  1.00000  3.00000  5.00000  7.00000
-2   / 2:  2357.00  2.00000  3.00000  5.00000  7.00000
- ---- J:4 Y:   4
-1   / 1:  1457.00  1.00000  4.00000  5.00000  7.00000
-2   / 2:  2457.00  2.00000  4.00000  5.00000  7.00000
- ---- K:6 Z:   6
- ---- J:3 Y:   3
-1   / 1:  1367.00  1.00000  3.00000  6.00000  7.00000
-2   / 2:  2367.00  2.00000  3.00000  6.00000  7.00000
- ---- J:4 Y:   4
-1   / 1:  1467.00  1.00000  4.00000  6.00000  7.00000
-2   / 2:  2467.00  2.00000  4.00000  6.00000  7.00000
-SHOW LIST
-        SET LIST/PRECISION =   6
-        SET LIST/FORMAT = [Default]
-        SET LIST/HEADING is ENABLED
-        SET LIST/APPEND is DISABLED
-        SET LIST/FILE=AUTO [created by program] ( when LIST/FILE is used )
-        SET LIST/OUTTYPE = [Default]
-           ----
-        NetCDF-4 settings:
-        NetCDF file type = classic
-        NetCDF chunk sizes = default
-        SHUFFLE set to on
-        ENDIAN set to native
-CANCEL LIST/PRECISION
-LIST
-             X: 0.5 to 2.5
-             Y: 2.5 to 4.5
-             Z: 4.5 to 6.5
-             T: 7
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- K:5 Z:   5
- ---- J:3 Y:   3
-1   / 1:  1357.  1.000  3.000  5.000  7.000
-2   / 2:  2357.  2.000  3.000  5.000  7.000
- ---- J:4 Y:   4
-1   / 1:  1457.  1.000  4.000  5.000  7.000
-2   / 2:  2457.  2.000  4.000  5.000  7.000
- ---- K:6 Z:   6
- ---- J:3 Y:   3
-1   / 1:  1367.  1.000  3.000  6.000  7.000
-2   / 2:  2367.  2.000  3.000  6.000  7.000
- ---- J:4 Y:   4
-1   / 1:  1467.  1.000  4.000  6.000  7.000
-2   / 2:  2467.  2.000  4.000  6.000  7.000
-SET LIST/FORMAT=(1X,5F14.7)
-LIST/FORMAT
-             X: 0.5 to 2.5
-             Y: 2.5 to 4.5
-             Z: 4.5 to 6.5
-             T: 7
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-   1357.0000000     1.0000000     3.0000000     5.0000000     7.0000000
-   2357.0000000     2.0000000     3.0000000     5.0000000     7.0000000
-   1457.0000000     1.0000000     4.0000000     5.0000000     7.0000000
-   2457.0000000     2.0000000     4.0000000     5.0000000     7.0000000
-   1367.0000000     1.0000000     3.0000000     6.0000000     7.0000000
-   2367.0000000     2.0000000     3.0000000     6.0000000     7.0000000
-   1467.0000000     1.0000000     4.0000000     6.0000000     7.0000000
-   2467.0000000     2.0000000     4.0000000     6.0000000     7.0000000
-LIST/FORMAT=(1X,10F6.1)
-             X: 0.5 to 2.5
-             Y: 2.5 to 4.5
-             Z: 4.5 to 6.5
-             T: 7
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
- 1357.0   1.0   3.0   5.0   7.0
- 2357.0   2.0   3.0   5.0   7.0
- 1457.0   1.0   4.0   5.0   7.0
- 2457.0   2.0   4.0   5.0   7.0
- 1367.0   1.0   3.0   6.0   7.0
- 2367.0   2.0   3.0   6.0   7.0
- 1467.0   1.0   4.0   6.0   7.0
- 2467.0   2.0   4.0   6.0   7.0
-CANCEL LIST/FORMAT
-LIST
-             X: 0.5 to 2.5
-             Y: 2.5 to 4.5
-             Z: 4.5 to 6.5
-             T: 7
- Column  1: V is 1000*I + 100*J + 10*K + L
- Column  2: I is I (axis ABSTRACT)
- Column  3: J is J (axis ABSTRACT)
- Column  4: K is K (axis ABSTRACT)
- Column  5: L is L (axis ABSTRACT)
-             V     I      J      K      L
- ---- K:5 Z:   5
- ---- J:3 Y:   3
-1   / 1:  1357.  1.000  3.000  5.000  7.000
-2   / 2:  2357.  2.000  3.000  5.000  7.000
- ---- J:4 Y:   4
-1   / 1:  1457.  1.000  4.000  5.000  7.000
-2   / 2:  2457.  2.000  4.000  5.000  7.000
- ---- K:6 Z:   6
- ---- J:3 Y:   3
-1   / 1:  1367.  1.000  3.000  6.000  7.000
-2   / 2:  2367.  2.000  3.000  6.000  7.000
- ---- J:4 Y:   4
-1   / 1:  1467.  1.000  4.000  6.000  7.000
-2   / 2:  2467.  2.000  4.000  6.000  7.000
-CANCEL LIST/HEAD
-LIST
- ---- K:5 Z:   5
- ---- J:3 Y:   3
-1   / 1:  1357.  1.000  3.000  5.000  7.000
-2   / 2:  2357.  2.000  3.000  5.000  7.000
- ---- J:4 Y:   4
-1   / 1:  1457.  1.000  4.000  5.000  7.000
-2   / 2:  2457.  2.000  4.000  5.000  7.000
- ---- K:6 Z:   6
- ---- J:3 Y:   3
-1   / 1:  1367.  1.000  3.000  6.000  7.000
-2   / 2:  2367.  2.000  3.000  6.000  7.000
- ---- J:4 Y:   4
-1   / 1:  1467.  1.000  4.000  6.000  7.000
-2   / 2:  2467.  2.000  4.000  6.000  7.000
-CANCEL LIST/ALL
-SET LIST/FILE=AUTO-X
-LIST/FILE
-LIST/FILE=test.dat
-LIST/FILE=test.dat/APPEND
-LIST/FILE=test.unf/FORMAT=UNFORMATTED
-! V6.8 we no longer write this file type
-SET MODE IGNORE
-LIST/FILE=test.gt/FORMAT=TMAP/L=1:3 v,v^0.5
-SET MODE/LAST IGNORE
-CANCEL LIST
-cancel list/format
-can mode ignore		! needed for AIX
- 
-GO bn_reset
-cancel mode verify
-GO bn_in_plane
-! bn200_in_plane.JNL
-! benchmark various geometries with in-plane transformation applied (@SBX)
-! this benchmark is layered on the compress benchmark to obtain the geometries
-! similar tests are performed on:
-!	abstract variable
-!	file variable
- 
-! ******** abstract variable ************
-! (this case can be checked against the bn200_in_plane.sub in the same region)
-! (results should be identical since v is linear along all axes)
-LET v = i + 10*j + 100*k + 1000*l
-SET REGION/I=2:4/J=2:4/K=2:4/L=2:4
-GO bn_in_plane.sub
-! BN200_COMPRESS.SUB_V
-! list the variable v averaged on various geometries
- 
-! this routine assumes that a 4-D region and an expression are already set
- 
-! full data region
-LIST v[x=@sbx,y=@sbx,z=@sbx,t=@sbx]
-             VARIABLE : I + 10*J + 100*K + 1000*L
-                        box smoothed by 3 pts on X - box smoothed by 3 pts on Y - box smoothed by 3 pts on Z - box smoothed by 3 pts on T
-             SUBSET   : 3 by 3 by 3 by 3 points (X-Y-Z-T)
-             2      3      4    
-             2      3      4
- ---- L:2 T:   2
- ---- K:2 Z:   2
- 2   / 2:  2222.  2223.  2224.
- 3   / 3:  2232.  2233.  2234.
- 4   / 4:  2242.  2243.  2244.
- ---- K:3 Z:   3
- 2   / 2:  2322.  2323.  2324.
- 3   / 3:  2332.  2333.  2334.
- 4   / 4:  2342.  2343.  2344.
- ---- K:4 Z:   4
- 2   / 2:  2422.  2423.  2424.
- 3   / 3:  2432.  2433.  2434.
- 4   / 4:  2442.  2443.  2444.
- ---- L:3 T:   3
- ---- K:2 Z:   2
- 2   / 2:  3222.  3223.  3224.
- 3   / 3:  3232.  3233.  3234.
- 4   / 4:  3242.  3243.  3244.
- ---- K:3 Z:   3
- 2   / 2:  3322.  3323.  3324.
- 3   / 3:  3332.  3333.  3334.
- 4   / 4:  3342.  3343.  3344.
- ---- K:4 Z:   4
- 2   / 2:  3422.  3423.  3424.
- 3   / 3:  3432.  3433.  3434.
- 4   / 4:  3442.  3443.  3444.
- ---- L:4 T:   4
- ---- K:2 Z:   2
- 2   / 2:  4222.  4223.  4224.
- 3   / 3:  4232.  4233.  4234.
- 4   / 4:  4242.  4243.  4244.
- ---- K:3 Z:   3
- 2   / 2:  4322.  4323.  4324.
- 3   / 3:  4332.  4333.  4334.
- 4   / 4:  4342.  4343.  4344.
- ---- K:4 Z:   4
- 2   / 2:  4422.  4423.  4424.
- 3   / 3:  4432.  4433.  4434.
- 4   / 4:  4442.  4443.  4444.
- 
-! cubes of data
-LIST v[x=@sbx,y=@sbx,z=@sbx,l=@ave]
-             VARIABLE : I + 10*J + 100*K + 1000*L
-                        box smoothed by 3 pts on X - box smoothed by 3 pts on Y - box smoothed by 3 pts on Z
-             SUBSET   : 3 by 3 by 3 points (X-Y-Z)
-             T        : 1.5 to 4.5 (averaged)
-             2      3      4    
-             2      3      4
- ---- K:2 Z:   2
- 2   / 2:  3222.  3223.  3224.
- 3   / 3:  3232.  3233.  3234.
- 4   / 4:  3242.  3243.  3244.
- ---- K:3 Z:   3
- 2   / 2:  3322.  3323.  3324.
- 3   / 3:  3332.  3333.  3334.
- 4   / 4:  3342.  3343.  3344.
- ---- K:4 Z:   4
- 2   / 2:  3422.  3423.  3424.
- 3   / 3:  3432.  3433.  3434.
- 4   / 4:  3442.  3443.  3444.
-LIST v[x=@sbx,y=@sbx,t=@sbx,k=@ave]
-             VARIABLE : I + 10*J + 100*K + 1000*L
-                        box smoothed by 3 pts on X - box smoothed by 3 pts on Y - box smoothed by 3 pts on T
-             SUBSET   : 3 by 3 by 3 points (X-Y-T)
-             Z        : 1.5 to 4.5 (averaged)
-             2      3      4    
-             2      3      4
- ---- L:2 T:   2
- 2   / 2:  2322.  2323.  2324.
- 3   / 3:  2332.  2333.  2334.
- 4   / 4:  2342.  2343.  2344.
- ---- L:3 T:   3
- 2   / 2:  3322.  3323.  3324.
- 3   / 3:  3332.  3333.  3334.
- 4   / 4:  3342.  3343.  3344.
- ---- L:4 T:   4
- 2   / 2:  4322.  4323.  4324.
- 3   / 3:  4332.  4333.  4334.
- 4   / 4:  4342.  4343.  4344.
-LIST v[x=@sbx,z=@sbx,t=@sbx,j=@ave]
-             VARIABLE : I + 10*J + 100*K + 1000*L
-                        box smoothed by 3 pts on X - box smoothed by 3 pts on Z - box smoothed by 3 pts on T
-             SUBSET   : 3 by 3 by 3 points (X-Z-T)
-             Y        : 1.5 to 4.5 (averaged)
-             2      3      4    
-             2      3      4
- ---- L:2 T:   2
- 2   / 2:  2232.  2233.  2234.
- 3   / 3:  2332.  2333.  2334.
- 4   / 4:  2432.  2433.  2434.
- ---- L:3 T:   3
- 2   / 2:  3232.  3233.  3234.
- 3   / 3:  3332.  3333.  3334.
- 4   / 4:  3432.  3433.  3434.
- ---- L:4 T:   4
- 2   / 2:  4232.  4233.  4234.
- 3   / 3:  4332.  4333.  4334.
- 4   / 4:  4432.  4433.  4434.
-LIST v[y=@sbx,z=@sbx,t=@sbx,i=@ave]
-             VARIABLE : I + 10*J + 100*K + 1000*L
-                        box smoothed by 3 pts on Y - box smoothed by 3 pts on Z - box smoothed by 3 pts on T
-             SUBSET   : 3 by 3 by 3 points (Y-Z-T)
-             X        : 1.5 to 4.5 (averaged)
-             2      3      4    
-             2      3      4
- ---- L:2 T:   2
- 2   / 2:  2223.  2233.  2243.
- 3   / 3:  2323.  2333.  2343.
- 4   / 4:  2423.  2433.  2443.
- ---- L:3 T:   3
- 2   / 2:  3223.  3233.  3243.
- 3   / 3:  3323.  3333.  3343.
- 4   / 4:  3423.  3433.  3443.
- ---- L:4 T:   4
- 2   / 2:  4223.  4233.  4243.
- 3   / 3:  4323.  4333.  4343.
- 4   / 4:  4423.  4433.  4443.
- 
-! planes of data
-LIST v[x=@sbx,y=@sbx,k=@ave,l=@ave]	!XY
-             VARIABLE : I + 10*J + 100*K + 1000*L
-                        box smoothed by 3 pts on X - box smoothed by 3 pts on Y
-             SUBSET   : 3 by 3 points (X-Y)
-             Z        : 1.5 to 4.5 (ZT ave)
-             T        : 1.5 to 4.5 (ZT ave)
-             2      3      4    
-             2      3      4
- 2   / 2:  3322.  3323.  3324.
- 3   / 3:  3332.  3333.  3334.
- 4   / 4:  3342.  3343.  3344.
-LIST v[x=@sbx,z=@sbx,j=@ave,l=@ave]	!XZ
-             VARIABLE : I + 10*J + 100*K + 1000*L
-                        box smoothed by 3 pts on X - box smoothed by 3 pts on Z
-             SUBSET   : 3 by 3 points (X-Z)
-             Y        : 1.5 to 4.5 (YT ave)
-             T        : 1.5 to 4.5 (YT ave)
-             2      3      4    
-             2      3      4
- 2   / 2:  3232.  3233.  3234.
- 3   / 3:  3332.  3333.  3334.
- 4   / 4:  3432.  3433.  3434.
-LIST v[x=@sbx,t=@sbx,j=@ave,k=@ave]	!XT
-             VARIABLE : I + 10*J + 100*K + 1000*L
-                        box smoothed by 3 pts on X - box smoothed by 3 pts on T
-             SUBSET   : 3 by 3 points (X-T)
-             Y        : 1.5 to 4.5 (YZ ave)
-             Z        : 1.5 to 4.5 (YZ ave)
-             2      3      4    
-             2      3      4
- 2   / 2:  2332.  2333.  2334.
- 3   / 3:  3332.  3333.  3334.
- 4   / 4:  4332.  4333.  4334.
-LIST v[y=@sbx,z=@sbx,i=@ave,l=@ave]	!YZ
-             VARIABLE : I + 10*J + 100*K + 1000*L
-                        box smoothed by 3 pts on Y - box smoothed by 3 pts on Z
-             SUBSET   : 3 by 3 points (Y-Z)
-             X        : 1.5 to 4.5 (XT ave)
-             T        : 1.5 to 4.5 (XT ave)
-             2      3      4    
-             2      3      4
- 2   / 2:  3223.  3233.  3243.
- 3   / 3:  3323.  3333.  3343.
- 4   / 4:  3423.  3433.  3443.
-LIST v[y=@sbx,t=@sbx,i=@ave,k=@ave]	!YT
-             VARIABLE : I + 10*J + 100*K + 1000*L
-                        box smoothed by 3 pts on Y - box smoothed by 3 pts on T
-             SUBSET   : 3 by 3 points (Y-T)
-             X        : 1.5 to 4.5 (XZ ave)
-             Z        : 1.5 to 4.5 (XZ ave)
-             2      3      4    
-             2      3      4
- 2   / 2:  2323.  2333.  2343.
- 3   / 3:  3323.  3333.  3343.
- 4   / 4:  4323.  4333.  4343.
-LIST v[z=@sbx,t=@sbx,i=@ave,j=@ave]	!ZT
-             VARIABLE : I + 10*J + 100*K + 1000*L
-                        box smoothed by 3 pts on Z - box smoothed by 3 pts on T
-             SUBSET   : 3 by 3 points (Z-T)
-             X        : 1.5 to 4.5 (XY ave)
-             Y        : 1.5 to 4.5 (XY ave)
-             2      3      4    
-             2      3      4
- 2   / 2:  2233.  2333.  2433.
- 3   / 3:  3233.  3333.  3433.
- 4   / 4:  4233.  4333.  4433.
- 
-! lines of data
-LIST/ORDER=X v[x=@sbx,j=@ave,k=@ave,l=@ave]
-             VARIABLE : I + 10*J + 100*K + 1000*L
-                        box smoothed by 3 pts on X
-             SUBSET   : 3 points (X)
-             Y        : 1.5 to 4.5 (YZT ave)
-             Z        : 1.5 to 4.5 (YZT ave)
-             T        : 1.5 to 4.5 (YZT ave)
-            2      3      4    
-            2      3      4
-          3332.  3333.  3334.
-LIST/ORDER=Y v[y=@sbx,i=@ave,k=@ave,l=@ave]
-             VARIABLE : I + 10*J + 100*K + 1000*L
-                        box smoothed by 3 pts on Y
-             SUBSET   : 3 points (Y)
-             X        : 1.5 to 4.5 (XZT ave)
-             Z        : 1.5 to 4.5 (XZT ave)
-             T        : 1.5 to 4.5 (XZT ave)
-            2      3      4    
-            2      3      4
-          3323.  3333.  3343.
-LIST/ORDER=Z v[z=@sbx,i=@ave,j=@ave,l=@ave]
-             VARIABLE : I + 10*J + 100*K + 1000*L
-                        box smoothed by 3 pts on Z
-             SUBSET   : 3 points (Z)
-             X        : 1.5 to 4.5 (XYT ave)
-             Y        : 1.5 to 4.5 (XYT ave)
-             T        : 1.5 to 4.5 (XYT ave)
-            2      3      4    
-            2      3      4
-          3233.  3333.  3433.
-LIST/ORDER=T v[t=@sbx,i=@ave,j=@ave,k=@ave]
-             VARIABLE : I + 10*J + 100*K + 1000*L
-                        box smoothed by 3 pts on T
-             SUBSET   : 3 points (T)
-             X        : 1.5 to 4.5 (XYZ ave)
-             Y        : 1.5 to 4.5 (XYZ ave)
-             Z        : 1.5 to 4.5 (XYZ ave)
-            2      3      4    
-            2      3      4
-          2333.  3333.  4333.
- 
-! ******** file variable ************
-CANCEL VARIABLE V
-USE gt4d011
-SET REGION/I=101:103/J=46:48/K=2:4/L=2:4
-SET EXPRESSION v
-GO bn_in_plane.sub
-! BN200_COMPRESS.SUB_V
-! list the variable v averaged on various geometries
- 
-! this routine assumes that a 4-D region and an expression are already set
- 
-! full data region
-LIST v[x=@sbx,y=@sbx,z=@sbx,t=@sbx]
-             VARIABLE : MERIDIONAL VELOCITY (cm/sec)
-                        box smoothed by 3 pts on X - box smoothed by 3 pts on Y - box smoothed by 3 pts on Z - box smoothed by 3 pts on T
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 by 3 by 3 by 3 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
-              129W   128W   127W   
-              101    102    103
- ---- L:2 T:   23-AUG-1982 14:00
- ---- K:2 Z:   15
- 1N    / 48:  2.849  4.058  5.125
- 0.67N / 47:  1.415  2.665  3.817
- 0.33N / 46: -0.848  0.534  1.821
- ---- K:3 Z:   25
- 1N    / 48: -2.896 -1.523 -0.356
- 0.67N / 47: -4.228 -2.855 -1.590
- 0.33N / 46: -5.712 -4.222 -2.782
- ---- K:4 Z:   35
- 1N    / 48: -6.759 -5.268 -4.029
- 0.67N / 47: -7.824 -6.405 -5.032
- 0.33N / 46: -8.195 -6.626 -5.019
- ---- L:3 T:   29-AUG-1982 16:00
- ---- K:2 Z:   15
- 1N    / 48:  2.921  4.900  6.164
- 0.67N / 47:  1.949  4.139  5.405
- 0.33N / 46:  0.232  2.556  3.808
- ---- K:3 Z:   25
- 1N    / 48: -2.893 -0.649  0.564
- 0.67N / 47: -3.906 -1.567 -0.284
- 0.33N / 46: -5.003 -2.591 -1.204
- ---- K:4 Z:   35
- 1N    / 48: -6.685 -4.117 -2.890
- 0.67N / 47: -7.574 -5.111 -3.733
- 0.33N / 46: -7.680 -5.189 -3.608
- ---- L:4 T:   04-SEP-1982 18:00
- ---- K:2 Z:   15
- 1N    / 48:  3.252  5.404  6.662
- 0.67N / 47:  2.651  5.141  6.269
- 0.33N / 46:  1.418  4.032  4.953
- ---- K:3 Z:   25
- 1N    / 48: -2.821 -0.259  0.807
- 0.67N / 47: -3.539 -0.836  0.184
- 0.33N / 46: -4.302 -1.591 -0.594
- ---- K:4 Z:   35
- 1N    / 48: -6.758 -3.638 -2.600
- 0.67N / 47: -7.392 -4.438 -3.362
- 0.33N / 46: -7.280 -4.436 -3.244
- 
-! cubes of data
-LIST v[x=@sbx,y=@sbx,z=@sbx,l=@ave]
-             VARIABLE : MERIDIONAL VELOCITY (cm/sec)
-                        box smoothed by 3 pts on X - box smoothed by 3 pts on Y - box smoothed by 3 pts on Z
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 by 3 by 3 points (LONGITUDE-LATITUDE-DEPTH (m))
-             TIME     : 20-AUG-1982 13:00 to 07-SEP-1982 19:00 (averaged)
-              129W   128W   127W   
-              101    102    103
- ---- K:2 Z:   15
- 1N    / 48:  2.921  4.900  6.164
- 0.67N / 47:  1.949  4.139  5.405
- 0.33N / 46:  0.232  2.556  3.808
- ---- K:3 Z:   25
- 1N    / 48: -2.893 -0.649  0.564
- 0.67N / 47: -3.906 -1.567 -0.284
- 0.33N / 46: -5.003 -2.591 -1.204
- ---- K:4 Z:   35
- 1N    / 48: -6.685 -4.117 -2.890
- 0.67N / 47: -7.574 -5.111 -3.733
- 0.33N / 46: -7.680 -5.189 -3.608
-LIST v[x=@sbx,y=@sbx,t=@sbx,k=@ave]
-             VARIABLE : MERIDIONAL VELOCITY (cm/sec)
-                        box smoothed by 3 pts on X - box smoothed by 3 pts on Y - box smoothed by 3 pts on T
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 by 3 by 3 points (LONGITUDE-LATITUDE-TIME)
-             DEPTH (m): 10 to 40 (averaged)
-              129W   128W   127W   
-              101    102    103
- ---- L:2 T:   23-AUG-1982 14:00
- 1N    / 48: -2.896 -1.523 -0.356
- 0.67N / 47: -4.228 -2.855 -1.590
- 0.33N / 46: -5.712 -4.222 -2.782
- ---- L:3 T:   29-AUG-1982 16:00
- 1N    / 48: -2.893 -0.649  0.564
- 0.67N / 47: -3.906 -1.567 -0.284
- 0.33N / 46: -5.003 -2.591 -1.204
- ---- L:4 T:   04-SEP-1982 18:00
- 1N    / 48: -2.821 -0.259  0.807
- 0.67N / 47: -3.539 -0.836  0.184
- 0.33N / 46: -4.302 -1.591 -0.594
-LIST v[x=@sbx,z=@sbx,t=@sbx,j=@ave]
-             VARIABLE : MERIDIONAL VELOCITY (cm/sec)
-                        box smoothed by 3 pts on X - box smoothed by 3 pts on Z - box smoothed by 3 pts on T
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 by 3 by 3 points (LONGITUDE-DEPTH (m)-TIME)
-             LATITUDE : 0.2N to 1.2N (averaged)
-             129W   128W   127W   
-             101    102    103
- ---- L:2 T:   23-AUG-1982 14:00
- 15    / 2:  1.415  2.665  3.817
- 25    / 3: -4.228 -2.855 -1.590
- 35    / 4: -7.824 -6.405 -5.032
- ---- L:3 T:   29-AUG-1982 16:00
- 15    / 2:  1.949  4.139  5.405
- 25    / 3: -3.906 -1.567 -0.284
- 35    / 4: -7.574 -5.111 -3.733
- ---- L:4 T:   04-SEP-1982 18:00
- 15    / 2:  2.651  5.141  6.269
- 25    / 3: -3.539 -0.836  0.184
- 35    / 4: -7.392 -4.438 -3.362
-LIST v[y=@sbx,z=@sbx,t=@sbx,i=@ave]
-             VARIABLE : MERIDIONAL VELOCITY (cm/sec)
-                        box smoothed by 3 pts on Y - box smoothed by 3 pts on Z - box smoothed by 3 pts on T
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 by 3 by 3 points (LATITUDE-DEPTH (m)-TIME)
-             LONGITUDE: 129.5W to 126.5W (averaged)
-              0.33N  0.67N  1N    
-              46     47     48
- ---- L:2 T:   23-AUG-1982 14:00
- 15    / 2:  0.534  2.665  4.058
- 25    / 3: -4.222 -2.855 -1.523
- 35    / 4: -6.626 -6.405 -5.268
- ---- L:3 T:   29-AUG-1982 16:00
- 15    / 2:  2.556  4.139  4.900
- 25    / 3: -2.591 -1.567 -0.649
- 35    / 4: -5.189 -5.111 -4.117
- ---- L:4 T:   04-SEP-1982 18:00
- 15    / 2:  4.032  5.141  5.404
- 25    / 3: -1.591 -0.836 -0.259
- 35    / 4: -4.436 -4.438 -3.638
- 
-! planes of data
-LIST v[x=@sbx,y=@sbx,k=@ave,l=@ave]	!XY
-             VARIABLE : MERIDIONAL VELOCITY (cm/sec)
-                        box smoothed by 3 pts on X - box smoothed by 3 pts on Y
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 by 3 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 10 to 40 (ZT ave)
-             TIME     : 20-AUG-1982 13:00 to 07-SEP-1982 19:00 (ZT ave)
-              129W   128W   127W   
-              101    102    103
- 1N    / 48: -2.893 -0.649  0.564
- 0.67N / 47: -3.906 -1.567 -0.284
- 0.33N / 46: -5.003 -2.591 -1.204
-LIST v[x=@sbx,z=@sbx,j=@ave,l=@ave]	!XZ
-             VARIABLE : MERIDIONAL VELOCITY (cm/sec)
-                        box smoothed by 3 pts on X - box smoothed by 3 pts on Z
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 by 3 points (LONGITUDE-DEPTH (m))
-             LATITUDE : 0.2N to 1.2N (YT ave)
-             TIME     : 20-AUG-1982 13:00 to 07-SEP-1982 19:00 (YT ave)
-             129W   128W   127W   
-             101    102    103
- 15    / 2:  1.949  4.139  5.405
- 25    / 3: -3.906 -1.567 -0.284
- 35    / 4: -7.574 -5.111 -3.733
-LIST v[x=@sbx,t=@sbx,j=@ave,k=@ave]	!XT
-             VARIABLE : MERIDIONAL VELOCITY (cm/sec)
-                        box smoothed by 3 pts on X - box smoothed by 3 pts on T
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 by 3 points (LONGITUDE-TIME)
-             LATITUDE : 0.2N to 1.2N (YZ ave)
-             DEPTH (m): 10 to 40 (YZ ave)
-                      129W   128W   127W   
-                      101    102    103
- 23-AUG-1982 14 / 2: -4.228 -2.855 -1.590
- 29-AUG-1982 16 / 3: -3.906 -1.567 -0.284
- 04-SEP-1982 18 / 4: -3.539 -0.836  0.184
-LIST v[y=@sbx,z=@sbx,i=@ave,l=@ave]	!YZ
-             VARIABLE : MERIDIONAL VELOCITY (cm/sec)
-                        box smoothed by 3 pts on Y - box smoothed by 3 pts on Z
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 by 3 points (LATITUDE-DEPTH (m))
-             LONGITUDE: 129.5W to 126.5W (XT ave)
-             TIME     : 20-AUG-1982 13:00 to 07-SEP-1982 19:00 (XT ave)
-              0.33N  0.67N  1N    
-              46     47     48
- 15    / 2:  2.556  4.139  4.900
- 25    / 3: -2.591 -1.567 -0.649
- 35    / 4: -5.189 -5.111 -4.117
-LIST v[y=@sbx,t=@sbx,i=@ave,k=@ave]	!YT
-             VARIABLE : MERIDIONAL VELOCITY (cm/sec)
-                        box smoothed by 3 pts on Y - box smoothed by 3 pts on T
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 by 3 points (LATITUDE-TIME)
-             LONGITUDE: 129.5W to 126.5W (XZ ave)
-             DEPTH (m): 10 to 40 (XZ ave)
-                       0.33N  0.67N  1N    
-                       46     47     48
- 23-AUG-1982 14 / 2: -4.222 -2.855 -1.523
- 29-AUG-1982 16 / 3: -2.591 -1.567 -0.649
- 04-SEP-1982 18 / 4: -1.591 -0.836 -0.259
-LIST v[z=@sbx,t=@sbx,i=@ave,j=@ave]	!ZT
-             VARIABLE : MERIDIONAL VELOCITY (cm/sec)
-                        box smoothed by 3 pts on Z - box smoothed by 3 pts on T
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 by 3 points (DEPTH (m)-TIME)
-             LONGITUDE: 129.5W to 126.5W (XY ave)
-             LATITUDE : 0.2N to 1.2N (XY ave)
-                       15     25     35    
-                        2      3      4
- 23-AUG-1982 14 / 2:  2.665 -2.855 -6.405
- 29-AUG-1982 16 / 3:  4.139 -1.567 -5.111
- 04-SEP-1982 18 / 4:  5.141 -0.836 -4.438
- 
-! lines of data
-LIST/ORDER=X v[x=@sbx,j=@ave,k=@ave,l=@ave]
-             VARIABLE : MERIDIONAL VELOCITY (cm/sec)
-                        box smoothed by 3 pts on X
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 points (LONGITUDE)
-             LATITUDE : 0.2N to 1.2N (YZT ave)
-             DEPTH (m): 10 to 40 (YZT ave)
-             TIME     : 20-AUG-1982 13:00 to 07-SEP-1982 19:00 (YZT ave)
-          129W   128W   127W   
-          101    102    103
-         -3.906 -1.567 -0.284
-LIST/ORDER=Y v[y=@sbx,i=@ave,k=@ave,l=@ave]
-             VARIABLE : MERIDIONAL VELOCITY (cm/sec)
-                        box smoothed by 3 pts on Y
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 points (LATITUDE)
-             LONGITUDE: 129.5W to 126.5W (XZT ave)
-             DEPTH (m): 10 to 40 (XZT ave)
-             TIME     : 20-AUG-1982 13:00 to 07-SEP-1982 19:00 (XZT ave)
-           0.33N  0.67N  1N    
-           46     47     48
-         -2.591 -1.567 -0.649
-LIST/ORDER=Z v[z=@sbx,i=@ave,j=@ave,l=@ave]
-             VARIABLE : MERIDIONAL VELOCITY (cm/sec)
-                        box smoothed by 3 pts on Z
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 points (DEPTH (m))
-             LONGITUDE: 129.5W to 126.5W (XYT ave)
-             LATITUDE : 0.2N to 1.2N (XYT ave)
-             TIME     : 20-AUG-1982 13:00 to 07-SEP-1982 19:00 (XYT ave)
-           15     25     35    
-            2      3      4
-          4.139 -1.567 -5.111
-LIST/ORDER=T v[t=@sbx,i=@ave,j=@ave,k=@ave]
-             VARIABLE : MERIDIONAL VELOCITY (cm/sec)
-                        box smoothed by 3 pts on T
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 points (TIME)
-             LONGITUDE: 129.5W to 126.5W (XYZ ave)
-             LATITUDE : 0.2N to 1.2N (XYZ ave)
-             DEPTH (m): 10 to 40 (XYZ ave)
-           1982   1982   1982  
-            2      3      4
-         -2.855 -1.567 -0.836
- 
-GO bn_reset
-cancel mode verify
-GO bn_compress
-! bn200_compress.JNL
-! benchmark various geometries obtained by compressing FERRET data with @AVE
-! similar tests are performed on:
-!	abstract variable
-!	file variable
-!	diagnostic variable
- 
-! ******** abstract variable ************
-LET v = i + 10*j + 100*k + 1000*l
-SET REGION/I=1:3/J=1:3/K=1:3/L=1:3
-GO bn_compress.sub_v
-! BN200_COMPRESS.SUB_V
-! list the variable v averaged on various geometries
- 
-! this routine assumes that a 4-D region and an expression are already set
- 
-! full data region
-LIST v
-             VARIABLE : I + 10*J + 100*K + 1000*L
-             SUBSET   : 3 by 3 by 3 by 3 points (X-Y-Z-T)
-             1      2      3    
-             1      2      3
- ---- L:1 T:   1
- ---- K:1 Z:   1
- 1   / 1:  1111.  1112.  1113.
- 2   / 2:  1121.  1122.  1123.
- 3   / 3:  1131.  1132.  1133.
- ---- K:2 Z:   2
- 1   / 1:  1211.  1212.  1213.
- 2   / 2:  1221.  1222.  1223.
- 3   / 3:  1231.  1232.  1233.
- ---- K:3 Z:   3
- 1   / 1:  1311.  1312.  1313.
- 2   / 2:  1321.  1322.  1323.
- 3   / 3:  1331.  1332.  1333.
- ---- L:2 T:   2
- ---- K:1 Z:   1
- 1   / 1:  2111.  2112.  2113.
- 2   / 2:  2121.  2122.  2123.
- 3   / 3:  2131.  2132.  2133.
- ---- K:2 Z:   2
- 1   / 1:  2211.  2212.  2213.
- 2   / 2:  2221.  2222.  2223.
- 3   / 3:  2231.  2232.  2233.
- ---- K:3 Z:   3
- 1   / 1:  2311.  2312.  2313.
- 2   / 2:  2321.  2322.  2323.
- 3   / 3:  2331.  2332.  2333.
- ---- L:3 T:   3
- ---- K:1 Z:   1
- 1   / 1:  3111.  3112.  3113.
- 2   / 2:  3121.  3122.  3123.
- 3   / 3:  3131.  3132.  3133.
- ---- K:2 Z:   2
- 1   / 1:  3211.  3212.  3213.
- 2   / 2:  3221.  3222.  3223.
- 3   / 3:  3231.  3232.  3233.
- ---- K:3 Z:   3
- 1   / 1:  3311.  3312.  3313.
- 2   / 2:  3321.  3322.  3323.
- 3   / 3:  3331.  3332.  3333.
- 
-! cubes of data
-LIST v[l=@ave]
-             VARIABLE : I + 10*J + 100*K + 1000*L
-             SUBSET   : 3 by 3 by 3 points (X-Y-Z)
-             T        : 0.5 to 3.5 (averaged)
-             1      2      3    
-             1      2      3
- ---- K:1 Z:   1
- 1   / 1:  2111.  2112.  2113.
- 2   / 2:  2121.  2122.  2123.
- 3   / 3:  2131.  2132.  2133.
- ---- K:2 Z:   2
- 1   / 1:  2211.  2212.  2213.
- 2   / 2:  2221.  2222.  2223.
- 3   / 3:  2231.  2232.  2233.
- ---- K:3 Z:   3
- 1   / 1:  2311.  2312.  2313.
- 2   / 2:  2321.  2322.  2323.
- 3   / 3:  2331.  2332.  2333.
-LIST v[k=@ave]
-             VARIABLE : I + 10*J + 100*K + 1000*L
-             SUBSET   : 3 by 3 by 3 points (X-Y-T)
-             Z        : 0.5 to 3.5 (averaged)
-             1      2      3    
-             1      2      3
- ---- L:1 T:   1
- 1   / 1:  1211.  1212.  1213.
- 2   / 2:  1221.  1222.  1223.
- 3   / 3:  1231.  1232.  1233.
- ---- L:2 T:   2
- 1   / 1:  2211.  2212.  2213.
- 2   / 2:  2221.  2222.  2223.
- 3   / 3:  2231.  2232.  2233.
- ---- L:3 T:   3
- 1   / 1:  3211.  3212.  3213.
- 2   / 2:  3221.  3222.  3223.
- 3   / 3:  3231.  3232.  3233.
-LIST v[j=@ave]
-             VARIABLE : I + 10*J + 100*K + 1000*L
-             SUBSET   : 3 by 3 by 3 points (X-Z-T)
-             Y        : 0.5 to 3.5 (averaged)
-             1      2      3    
-             1      2      3
- ---- L:1 T:   1
- 1   / 1:  1121.  1122.  1123.
- 2   / 2:  1221.  1222.  1223.
- 3   / 3:  1321.  1322.  1323.
- ---- L:2 T:   2
- 1   / 1:  2121.  2122.  2123.
- 2   / 2:  2221.  2222.  2223.
- 3   / 3:  2321.  2322.  2323.
- ---- L:3 T:   3
- 1   / 1:  3121.  3122.  3123.
- 2   / 2:  3221.  3222.  3223.
- 3   / 3:  3321.  3322.  3323.
-LIST v[i=@ave]
-             VARIABLE : I + 10*J + 100*K + 1000*L
-             SUBSET   : 3 by 3 by 3 points (Y-Z-T)
-             X        : 0.5 to 3.5 (averaged)
-             1      2      3    
-             1      2      3
- ---- L:1 T:   1
- 1   / 1:  1112.  1122.  1132.
- 2   / 2:  1212.  1222.  1232.
- 3   / 3:  1312.  1322.  1332.
- ---- L:2 T:   2
- 1   / 1:  2112.  2122.  2132.
- 2   / 2:  2212.  2222.  2232.
- 3   / 3:  2312.  2322.  2332.
- ---- L:3 T:   3
- 1   / 1:  3112.  3122.  3132.
- 2   / 2:  3212.  3222.  3232.
- 3   / 3:  3312.  3322.  3332.
- 
-! planes of data
-LIST v[k=@ave,l=@ave]	!XY
-             VARIABLE : I + 10*J + 100*K + 1000*L
-             SUBSET   : 3 by 3 points (X-Y)
-             Z        : 0.5 to 3.5 (ZT ave)
-             T        : 0.5 to 3.5 (ZT ave)
-             1      2      3    
-             1      2      3
- 1   / 1:  2211.  2212.  2213.
- 2   / 2:  2221.  2222.  2223.
- 3   / 3:  2231.  2232.  2233.
-LIST v[j=@ave,l=@ave]	!XZ
-             VARIABLE : I + 10*J + 100*K + 1000*L
-             SUBSET   : 3 by 3 points (X-Z)
-             Y        : 0.5 to 3.5 (YT ave)
-             T        : 0.5 to 3.5 (YT ave)
-             1      2      3    
-             1      2      3
- 1   / 1:  2121.  2122.  2123.
- 2   / 2:  2221.  2222.  2223.
- 3   / 3:  2321.  2322.  2323.
-LIST v[j=@ave,k=@ave]	!XT
-             VARIABLE : I + 10*J + 100*K + 1000*L
-             SUBSET   : 3 by 3 points (X-T)
-             Y        : 0.5 to 3.5 (YZ ave)
-             Z        : 0.5 to 3.5 (YZ ave)
-             1      2      3    
-             1      2      3
- 1   / 1:  1221.  1222.  1223.
- 2   / 2:  2221.  2222.  2223.
- 3   / 3:  3221.  3222.  3223.
-LIST v[i=@ave,l=@ave]	!YZ
-             VARIABLE : I + 10*J + 100*K + 1000*L
-             SUBSET   : 3 by 3 points (Y-Z)
-             X        : 0.5 to 3.5 (XT ave)
-             T        : 0.5 to 3.5 (XT ave)
-             1      2      3    
-             1      2      3
- 1   / 1:  2112.  2122.  2132.
- 2   / 2:  2212.  2222.  2232.
- 3   / 3:  2312.  2322.  2332.
-LIST v[i=@ave,k=@ave]	!YT
-             VARIABLE : I + 10*J + 100*K + 1000*L
-             SUBSET   : 3 by 3 points (Y-T)
-             X        : 0.5 to 3.5 (XZ ave)
-             Z        : 0.5 to 3.5 (XZ ave)
-             1      2      3    
-             1      2      3
- 1   / 1:  1212.  1222.  1232.
- 2   / 2:  2212.  2222.  2232.
- 3   / 3:  3212.  3222.  3232.
-LIST v[i=@ave,j=@ave]	!ZT
-             VARIABLE : I + 10*J + 100*K + 1000*L
-             SUBSET   : 3 by 3 points (Z-T)
-             X        : 0.5 to 3.5 (XY ave)
-             Y        : 0.5 to 3.5 (XY ave)
-             1      2      3    
-             1      2      3
- 1   / 1:  1122.  1222.  1322.
- 2   / 2:  2122.  2222.  2322.
- 3   / 3:  3122.  3222.  3322.
- 
-! lines of data
-LIST/ORDER=X v[j=@ave,k=@ave,l=@ave]
-             VARIABLE : I + 10*J + 100*K + 1000*L
-             SUBSET   : 3 points (X)
-             Y        : 0.5 to 3.5 (YZT ave)
-             Z        : 0.5 to 3.5 (YZT ave)
-             T        : 0.5 to 3.5 (YZT ave)
-            1      2      3    
-            1      2      3
-          2221.  2222.  2223.
-LIST/ORDER=Y v[i=@ave,k=@ave,l=@ave]
-             VARIABLE : I + 10*J + 100*K + 1000*L
-             SUBSET   : 3 points (Y)
-             X        : 0.5 to 3.5 (XZT ave)
-             Z        : 0.5 to 3.5 (XZT ave)
-             T        : 0.5 to 3.5 (XZT ave)
-            1      2      3    
-            1      2      3
-          2212.  2222.  2232.
-LIST/ORDER=Z v[i=@ave,j=@ave,l=@ave]
-             VARIABLE : I + 10*J + 100*K + 1000*L
-             SUBSET   : 3 points (Z)
-             X        : 0.5 to 3.5 (XYT ave)
-             Y        : 0.5 to 3.5 (XYT ave)
-             T        : 0.5 to 3.5 (XYT ave)
-            1      2      3    
-            1      2      3
-          2122.  2222.  2322.
-LIST/ORDER=T v[i=@ave,j=@ave,k=@ave]
-             VARIABLE : I + 10*J + 100*K + 1000*L
-             SUBSET   : 3 points (T)
-             X        : 0.5 to 3.5 (XYZ ave)
-             Y        : 0.5 to 3.5 (XYZ ave)
-             Z        : 0.5 to 3.5 (XYZ ave)
-            1      2      3    
-            1      2      3
-          1222.  2222.  3222.
- 
-! point of data
-LIST/ORDER=X v[i=@ave,j=@ave,k=@ave,l=@ave]
-             VARIABLE : I + 10*J + 100*K + 1000*L
-             X        : 0.5 to 3.5 (XYZT ave)
-             Y        : 0.5 to 3.5 (XYZT ave)
-             Z        : 0.5 to 3.5 (XYZT ave)
-             T        : 0.5 to 3.5 (XYZT ave)
-          2222.
- 
-! ******** file variable ************
-CANCEL VARIABLE V
-USE gt4d011
-CANCEL MEMORY/ALL
-SET REGION/I=101:103/J=46:48/K=1:3/L=1:3
-SET EXPRESSION v
-GO bn_compress.sub_v
-! BN200_COMPRESS.SUB_V
-! list the variable v averaged on various geometries
- 
-! this routine assumes that a 4-D region and an expression are already set
- 
-! full data region
-LIST v
-             VARIABLE : MERIDIONAL VELOCITY (cm/sec)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 by 3 by 3 by 3 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
-              129W   128W   127W   
-              101    102    103
- ---- L:1 T:   17-AUG-1982 12:00
- ---- K:1 Z:   5
- 1N    / 48:  10.50  11.05  11.24
- 0.67N / 47:   7.89   7.84   8.33
- 0.33N / 46:   4.10   4.06   4.78
- ---- K:2 Z:   15
- 1N    / 48:   2.85   3.45   3.89
- 0.67N / 47:   0.69   0.73   1.38
- 0.33N / 46:  -2.43  -2.33  -1.49
- ---- K:3 Z:   25
- 1N    / 48:  -3.15  -2.57  -1.79
- 0.67N / 47:  -5.26  -5.17  -4.37
- 0.33N / 46:  -7.30  -7.07  -6.17
- ---- L:2 T:   23-AUG-1982 14:00
- ---- K:1 Z:   5
- 1N    / 48:  10.27  12.27  13.17
- 0.67N / 47:   8.14   9.98  11.31
- 0.33N / 46:   4.79   6.72   8.32
- ---- K:2 Z:   15
- 1N    / 48:   2.19   4.29   5.39
- 0.67N / 47:   0.46   2.40   3.88
- 0.33N / 46:  -2.18  -0.16   1.57
- ---- K:3 Z:   25
- 1N    / 48:  -3.70  -1.52  -0.17
- 0.67N / 47:  -5.96  -3.85  -2.20
- 0.33N / 46:  -7.70  -5.56  -3.69
- ---- L:3 T:   29-AUG-1982 16:00
- ---- K:1 Z:   5
- 1N    / 48:  10.11  13.41  14.78
- 0.67N / 47:   9.46  12.65  13.99
- 0.33N / 46:   6.97  10.15  11.50
- ---- K:2 Z:   15
- 1N    / 48:   1.84   5.11   6.48
- 0.67N / 47:   1.43   4.64   6.01
- 0.33N / 46:  -0.46   2.80   4.22
- ---- K:3 Z:   25
- 1N    / 48:  -3.16  -0.23   0.86
- 0.67N / 47:  -4.97  -1.70  -0.50
- 0.33N / 46:  -6.73  -3.24  -1.70
- 
-! cubes of data
-LIST v[l=@ave]
-             VARIABLE : MERIDIONAL VELOCITY (cm/sec)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 by 3 by 3 points (LONGITUDE-LATITUDE-DEPTH (m))
-             TIME     : 14-AUG-1982 11:00 to 01-SEP-1982 17:00 (averaged)
-              129W   128W   127W   
-              101    102    103
- ---- K:1 Z:   5
- 1N    / 48:  10.29  12.24  13.06
- 0.67N / 47:   8.50  10.16  11.21
- 0.33N / 46:   5.29   6.98   8.20
- ---- K:2 Z:   15
- 1N    / 48:   2.29   4.28   5.25
- 0.67N / 47:   0.86   2.59   3.76
- 0.33N / 46:  -1.69   0.10   1.43
- ---- K:3 Z:   25
- 1N    / 48:  -3.34  -1.44  -0.37
- 0.67N / 47:  -5.40  -3.57  -2.36
- 0.33N / 46:  -7.25  -5.29  -3.85
-LIST v[k=@ave]
-             VARIABLE : MERIDIONAL VELOCITY (cm/sec)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 by 3 by 3 points (LONGITUDE-LATITUDE-TIME)
-             DEPTH (m): 0 to 30 (averaged)
-              129W   128W   127W   
-              101    102    103
- ---- L:1 T:   17-AUG-1982 12:00
- 1N    / 48:  3.398  3.976  4.445
- 0.67N / 47:  1.107  1.133  1.784
- 0.33N / 46: -1.881 -1.779 -0.959
- ---- L:2 T:   23-AUG-1982 14:00
- 1N    / 48:  2.920  5.015  6.129
- 0.67N / 47:  0.881  2.845  4.328
- 0.33N / 46: -1.696  0.334  2.067
- ---- L:3 T:   29-AUG-1982 16:00
- 1N    / 48:  2.933  6.096  7.372
- 0.67N / 47:  1.975  5.195  6.502
- 0.33N / 46: -0.073  3.238  4.671
-LIST v[j=@ave]
-             VARIABLE : MERIDIONAL VELOCITY (cm/sec)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 by 3 by 3 points (LONGITUDE-DEPTH (m)-TIME)
-             LATITUDE : 0.2N to 1.2N (averaged)
-             129W   128W   127W   
-             101    102    103
- ---- L:1 T:   17-AUG-1982 12:00
- 5     / 1:   7.50   7.65   8.12
- 15    / 2:   0.37   0.62   1.26
- 25    / 3:  -5.24  -4.94  -4.11
- ---- L:2 T:   23-AUG-1982 14:00
- 5     / 1:   7.73   9.66  10.93
- 15    / 2:   0.16   2.18   3.61
- 25    / 3:  -5.79  -3.64  -2.02
- ---- L:3 T:   29-AUG-1982 16:00
- 5     / 1:   8.85  12.07  13.42
- 15    / 2:   0.94   4.18   5.57
- 25    / 3:  -4.95  -1.72  -0.45
-LIST v[i=@ave]
-             VARIABLE : MERIDIONAL VELOCITY (cm/sec)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 by 3 by 3 points (LATITUDE-DEPTH (m)-TIME)
-             LONGITUDE: 129.5W to 126.5W (averaged)
-              0.33N  0.67N  1N    
-              46     47     48
- ---- L:1 T:   17-AUG-1982 12:00
- 5     / 1:   4.31   8.02  10.93
- 15    / 2:  -2.08   0.93   3.39
- 25    / 3:  -6.85  -4.93  -2.51
- ---- L:2 T:   23-AUG-1982 14:00
- 5     / 1:   6.61   9.81  11.90
- 15    / 2:  -0.25   2.25   3.96
- 25    / 3:  -5.65  -4.00  -1.80
- ---- L:3 T:   29-AUG-1982 16:00
- 5     / 1:   9.54  12.04  12.77
- 15    / 2:   2.19   4.03   4.48
- 25    / 3:  -3.89  -2.39  -0.84
- 
-! planes of data
-LIST v[k=@ave,l=@ave]	!XY
-             VARIABLE : MERIDIONAL VELOCITY (cm/sec)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 by 3 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 0 to 30 (ZT ave)
-             TIME     : 14-AUG-1982 11:00 to 01-SEP-1982 17:00 (ZT ave)
-              129W   128W   127W   
-              101    102    103
- 1N    / 48:  3.084  5.029  5.982
- 0.67N / 47:  1.321  3.057  4.204
- 0.33N / 46: -1.217  0.598  1.927
-LIST v[j=@ave,l=@ave]	!XZ
-             VARIABLE : MERIDIONAL VELOCITY (cm/sec)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 by 3 points (LONGITUDE-DEPTH (m))
-             LATITUDE : 0.2N to 1.2N (YT ave)
-             TIME     : 14-AUG-1982 11:00 to 01-SEP-1982 17:00 (YT ave)
-             129W   128W   127W   
-             101    102    103
- 5     / 1:   8.03   9.79  10.82
- 15    / 2:   0.49   2.33   3.48
- 25    / 3:  -5.33  -3.43  -2.19
-LIST v[j=@ave,k=@ave]	!XT
-             VARIABLE : MERIDIONAL VELOCITY (cm/sec)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 by 3 points (LONGITUDE-TIME)
-             LATITUDE : 0.2N to 1.2N (YZ ave)
-             DEPTH (m): 0 to 30 (YZ ave)
-                      129W   128W   127W   
-                      101    102    103
- 17-AUG-1982 12 / 1:  0.875  1.110  1.757
- 23-AUG-1982 14 / 2:  0.701  2.731  4.175
- 29-AUG-1982 16 / 3:  1.612  4.843  6.182
-LIST v[i=@ave,l=@ave]	!YZ
-             VARIABLE : MERIDIONAL VELOCITY (cm/sec)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 by 3 points (LATITUDE-DEPTH (m))
-             LONGITUDE: 129.5W to 126.5W (XT ave)
-             TIME     : 14-AUG-1982 11:00 to 01-SEP-1982 17:00 (XT ave)
-              0.33N  0.67N  1N    
-              46     47     48
- 5     / 1:   6.82   9.96  11.87
- 15    / 2:  -0.05   2.40   3.94
- 25    / 3:  -5.46  -3.78  -1.72
-LIST v[i=@ave,k=@ave]	!YT
-             VARIABLE : MERIDIONAL VELOCITY (cm/sec)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 by 3 points (LATITUDE-TIME)
-             LONGITUDE: 129.5W to 126.5W (XZ ave)
-             DEPTH (m): 0 to 30 (XZ ave)
-                       0.33N  0.67N  1N    
-                       46     47     48
- 17-AUG-1982 12 / 1: -1.540  1.341  3.940
- 23-AUG-1982 14 / 2:  0.235  2.684  4.688
- 29-AUG-1982 16 / 3:  2.612  4.557  5.467
-LIST v[i=@ave,j=@ave]	!ZT
-             VARIABLE : MERIDIONAL VELOCITY (cm/sec)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 by 3 points (DEPTH (m)-TIME)
-             LONGITUDE: 129.5W to 126.5W (XY ave)
-             LATITUDE : 0.2N to 1.2N (XY ave)
-                       5      15     25    
-                        1      2      3
- 17-AUG-1982 12 / 1:   7.75   0.75  -4.76
- 23-AUG-1982 14 / 2:   9.44   1.98  -3.82
- 29-AUG-1982 16 / 3:  11.45   3.56  -2.37
- 
-! lines of data
-LIST/ORDER=X v[j=@ave,k=@ave,l=@ave]
-             VARIABLE : MERIDIONAL VELOCITY (cm/sec)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 points (LONGITUDE)
-             LATITUDE : 0.2N to 1.2N (YZT ave)
-             DEPTH (m): 0 to 30 (YZT ave)
-             TIME     : 14-AUG-1982 11:00 to 01-SEP-1982 17:00 (YZT ave)
-          129W   128W   127W   
-          101    102    103
-          1.063  2.895  4.038
-LIST/ORDER=Y v[i=@ave,k=@ave,l=@ave]
-             VARIABLE : MERIDIONAL VELOCITY (cm/sec)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 points (LATITUDE)
-             LONGITUDE: 129.5W to 126.5W (XZT ave)
-             DEPTH (m): 0 to 30 (XZT ave)
-             TIME     : 14-AUG-1982 11:00 to 01-SEP-1982 17:00 (XZT ave)
-           0.33N  0.67N  1N    
-           46     47     48
-          0.436  2.861  4.698
-LIST/ORDER=Z v[i=@ave,j=@ave,l=@ave]
-             VARIABLE : MERIDIONAL VELOCITY (cm/sec)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 points (DEPTH (m))
-             LONGITUDE: 129.5W to 126.5W (XYT ave)
-             LATITUDE : 0.2N to 1.2N (XYT ave)
-             TIME     : 14-AUG-1982 11:00 to 01-SEP-1982 17:00 (XYT ave)
-           5      15     25    
-            1      2      3
-          9.547  2.099 -3.651
-LIST/ORDER=T v[i=@ave,j=@ave,k=@ave]
-             VARIABLE : MERIDIONAL VELOCITY (cm/sec)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 points (TIME)
-             LONGITUDE: 129.5W to 126.5W (XYZ ave)
-             LATITUDE : 0.2N to 1.2N (XYZ ave)
-             DEPTH (m): 0 to 30 (XYZ ave)
-           1982   1982   1982  
-            1      2      3
-          1.247  2.536  4.212
- 
-! point of data
-LIST/ORDER=X v[i=@ave,j=@ave,k=@ave,l=@ave]
-             VARIABLE : MERIDIONAL VELOCITY (cm/sec)
-             FILENAME : gt4d011.cdf
-             LONGITUDE: 129.5W to 126.5W (XYZT ave)
-             LATITUDE : 0.2N to 1.2N (XYZT ave)
-             DEPTH (m): 0 to 30 (XYZT ave)
-             TIME     : 14-AUG-1982 11:00 to 01-SEP-1982 17:00 (XYZT ave)
-          2.665
- 
-! ****
-! remove call to bn200_compress.sub_qady for portable benchmarks *kob* 5/99
-! ****
- 
-GO bn_reset
-cancel mode verify
-GO bn_interpolate
-! bn200_interpolate.JNL
-! benchmark interpolation along various axes
- 
-SET LIST/PRECISION=6
-SET MODE LATITUDE:4
- 
-LET v = x + 10*y + 100*z + 1000*t
-SET REGION/I=1:3/J=1:3/K=1:3/L=1:3
-DEF REG/x=1.5 xpt
-DEF REG/y=1.05 ypt
-DEF REG/z=1.005 zpt
-DEF REG/t=1.0005 tpt
- 
-! first without interpolation
-CANCEL MODE INTERPOLATE
-GO bn_interpolate.sub
-! BN200_INTERPOLATE.SUB
-! interpolate in various geometries
- 
-! this routine assumes that a 4-D region and an expression are already set
- 
-! cubes of data
-LIST v[@xpt]
-             VARIABLE : X + 10*Y + 100*Z + 1000*T
-             SUBSET   : 3 by 3 by 3 points (Y-Z-T)
-             X        : 1
-              1        2        3     
-              1        2        3
- ---- L:1 T:   1
- 1   / 1:  1111.00  1121.00  1131.00
- 2   / 2:  1211.00  1221.00  1231.00
- 3   / 3:  1311.00  1321.00  1331.00
- ---- L:2 T:   2
- 1   / 1:  2111.00  2121.00  2131.00
- 2   / 2:  2211.00  2221.00  2231.00
- 3   / 3:  2311.00  2321.00  2331.00
- ---- L:3 T:   3
- 1   / 1:  3111.00  3121.00  3131.00
- 2   / 2:  3211.00  3221.00  3231.00
- 3   / 3:  3311.00  3321.00  3331.00
-LIST v[@ypt]
-             VARIABLE : X + 10*Y + 100*Z + 1000*T
-             SUBSET   : 3 by 3 by 3 points (X-Z-T)
-             Y        : 1
-              1        2        3     
-              1        2        3
- ---- L:1 T:   1
- 1   / 1:  1111.00  1112.00  1113.00
- 2   / 2:  1211.00  1212.00  1213.00
- 3   / 3:  1311.00  1312.00  1313.00
- ---- L:2 T:   2
- 1   / 1:  2111.00  2112.00  2113.00
- 2   / 2:  2211.00  2212.00  2213.00
- 3   / 3:  2311.00  2312.00  2313.00
- ---- L:3 T:   3
- 1   / 1:  3111.00  3112.00  3113.00
- 2   / 2:  3211.00  3212.00  3213.00
- 3   / 3:  3311.00  3312.00  3313.00
-LIST v[@zpt]
-             VARIABLE : X + 10*Y + 100*Z + 1000*T
-             SUBSET   : 3 by 3 by 3 points (X-Y-T)
-             Z        : 1
-              1        2        3     
-              1        2        3
- ---- L:1 T:   1
- 1   / 1:  1111.00  1112.00  1113.00
- 2   / 2:  1121.00  1122.00  1123.00
- 3   / 3:  1131.00  1132.00  1133.00
- ---- L:2 T:   2
- 1   / 1:  2111.00  2112.00  2113.00
- 2   / 2:  2121.00  2122.00  2123.00
- 3   / 3:  2131.00  2132.00  2133.00
- ---- L:3 T:   3
- 1   / 1:  3111.00  3112.00  3113.00
- 2   / 2:  3121.00  3122.00  3123.00
- 3   / 3:  3131.00  3132.00  3133.00
-LIST v[@tpt]
-             VARIABLE : X + 10*Y + 100*Z + 1000*T
-             SUBSET   : 3 by 3 by 3 points (X-Y-Z)
-             T        : 1
-              1        2        3     
-              1        2        3
- ---- K:1 Z:   1
- 1   / 1:  1111.00  1112.00  1113.00
- 2   / 2:  1121.00  1122.00  1123.00
- 3   / 3:  1131.00  1132.00  1133.00
- ---- K:2 Z:   2
- 1   / 1:  1211.00  1212.00  1213.00
- 2   / 2:  1221.00  1222.00  1223.00
- 3   / 3:  1231.00  1232.00  1233.00
- ---- K:3 Z:   3
- 1   / 1:  1311.00  1312.00  1313.00
- 2   / 2:  1321.00  1322.00  1323.00
- 3   / 3:  1331.00  1332.00  1333.00
- 
-! planes of data
-LIST v[@zpt, at tpt]	!XY
-             VARIABLE : X + 10*Y + 100*Z + 1000*T
-             SUBSET   : 3 by 3 points (X-Y)
-             Z        : 1
-             T        : 1
-              1        2        3     
-              1        2        3
- 1   / 1:  1111.00  1112.00  1113.00
- 2   / 2:  1121.00  1122.00  1123.00
- 3   / 3:  1131.00  1132.00  1133.00
-LIST v[@ypt, at tpt]	!XZ
-             VARIABLE : X + 10*Y + 100*Z + 1000*T
-             SUBSET   : 3 by 3 points (X-Z)
-             Y        : 1
-             T        : 1
-              1        2        3     
-              1        2        3
- 1   / 1:  1111.00  1112.00  1113.00
- 2   / 2:  1211.00  1212.00  1213.00
- 3   / 3:  1311.00  1312.00  1313.00
-LIST v[@ypt, at zpt]	!XT
-             VARIABLE : X + 10*Y + 100*Z + 1000*T
-             SUBSET   : 3 by 3 points (X-T)
-             Y        : 1
-             Z        : 1
-              1        2        3     
-              1        2        3
- 1   / 1:  1111.00  1112.00  1113.00
- 2   / 2:  2111.00  2112.00  2113.00
- 3   / 3:  3111.00  3112.00  3113.00
-LIST v[@xpt, at tpt]	!YZ
-             VARIABLE : X + 10*Y + 100*Z + 1000*T
-             SUBSET   : 3 by 3 points (Y-Z)
-             X        : 1
-             T        : 1
-              1        2        3     
-              1        2        3
- 1   / 1:  1111.00  1121.00  1131.00
- 2   / 2:  1211.00  1221.00  1231.00
- 3   / 3:  1311.00  1321.00  1331.00
-LIST v[@xpt, at zpt]	!YT
-             VARIABLE : X + 10*Y + 100*Z + 1000*T
-             SUBSET   : 3 by 3 points (Y-T)
-             X        : 1
-             Z        : 1
-              1        2        3     
-              1        2        3
- 1   / 1:  1111.00  1121.00  1131.00
- 2   / 2:  2111.00  2121.00  2131.00
- 3   / 3:  3111.00  3121.00  3131.00
-LIST v[@xpt, at ypt]	!ZT
-             VARIABLE : X + 10*Y + 100*Z + 1000*T
-             SUBSET   : 3 by 3 points (Z-T)
-             X        : 1
-             Y        : 1
-              1        2        3     
-              1        2        3
- 1   / 1:  1111.00  1211.00  1311.00
- 2   / 2:  2111.00  2211.00  2311.00
- 3   / 3:  3111.00  3211.00  3311.00
- 
-! lines of data
-LIST/ORDER=T v[@xpt, at ypt, at zpt]	! T
-             VARIABLE : X + 10*Y + 100*Z + 1000*T
-             SUBSET   : 3 points (T)
-             X        : 1
-             Y        : 1
-             Z        : 1
-             1        2        3     
-             1        2        3
-          1111.00  2111.00  3111.00
-LIST/ORDER=Z v[@xpt, at ypt, at tpt]	! Z
-             VARIABLE : X + 10*Y + 100*Z + 1000*T
-             SUBSET   : 3 points (Z)
-             X        : 1
-             Y        : 1
-             T        : 1
-             1        2        3     
-             1        2        3
-          1111.00  1211.00  1311.00
-LIST/ORDER=Y v[@xpt, at zpt, at tpt]	! Y
-             VARIABLE : X + 10*Y + 100*Z + 1000*T
-             SUBSET   : 3 points (Y)
-             X        : 1
-             Z        : 1
-             T        : 1
-             1        2        3     
-             1        2        3
-          1111.00  1121.00  1131.00
-LIST/ORDER=X v[@ypt, at zpt, at tpt]	! X
-             VARIABLE : X + 10*Y + 100*Z + 1000*T
-             SUBSET   : 3 points (X)
-             Y        : 1
-             Z        : 1
-             T        : 1
-             1        2        3     
-             1        2        3
-          1111.00  1112.00  1113.00
- 
-! point of data
-LIST v[@xpt, at ypt, at zpt, at tpt]
-             VARIABLE : X + 10*Y + 100*Z + 1000*T
-             X        : 1
-             Y        : 1
-             Z        : 1
-             T        : 1
-          1111.00
- 
-! then with interpolation
-SET MODE INTERPOLATE
-GO bn_interpolate.sub
-! BN200_INTERPOLATE.SUB
-! interpolate in various geometries
- 
-! this routine assumes that a 4-D region and an expression are already set
- 
-! cubes of data
-LIST v[@xpt]
-             VARIABLE : X + 10*Y + 100*Z + 1000*T
-             SUBSET   : 3 by 3 by 3 points (Y-Z-T)
-             X        : 1.5 (interpolated)
-              1        2        3     
-              1        2        3
- ---- L:1 T:   1
- 1   / 1:  1111.50  1121.50  1131.50
- 2   / 2:  1211.50  1221.50  1231.50
- 3   / 3:  1311.50  1321.50  1331.50
- ---- L:2 T:   2
- 1   / 1:  2111.50  2121.50  2131.50
- 2   / 2:  2211.50  2221.50  2231.50
- 3   / 3:  2311.50  2321.50  2331.50
- ---- L:3 T:   3
- 1   / 1:  3111.50  3121.50  3131.50
- 2   / 2:  3211.50  3221.50  3231.50
- 3   / 3:  3311.50  3321.50  3331.50
-LIST v[@ypt]
-             VARIABLE : X + 10*Y + 100*Z + 1000*T
-             SUBSET   : 3 by 3 by 3 points (X-Z-T)
-             Y        : 1.05 (interpolated)
-              1        2        3     
-              1        2        3
- ---- L:1 T:   1
- 1   / 1:  1111.50  1112.50  1113.50
- 2   / 2:  1211.50  1212.50  1213.50
- 3   / 3:  1311.50  1312.50  1313.50
- ---- L:2 T:   2
- 1   / 1:  2111.50  2112.50  2113.50
- 2   / 2:  2211.50  2212.50  2213.50
- 3   / 3:  2311.50  2312.50  2313.50
- ---- L:3 T:   3
- 1   / 1:  3111.50  3112.50  3113.50
- 2   / 2:  3211.50  3212.50  3213.50
- 3   / 3:  3311.50  3312.50  3313.50
-LIST v[@zpt]
-             VARIABLE : X + 10*Y + 100*Z + 1000*T
-             SUBSET   : 3 by 3 by 3 points (X-Y-T)
-             Z        : 1.005 (interpolated)
-              1        2        3     
-              1        2        3
- ---- L:1 T:   1
- 1   / 1:  1111.50  1112.50  1113.50
- 2   / 2:  1121.50  1122.50  1123.50
- 3   / 3:  1131.50  1132.50  1133.50
- ---- L:2 T:   2
- 1   / 1:  2111.50  2112.50  2113.50
- 2   / 2:  2121.50  2122.50  2123.50
- 3   / 3:  2131.50  2132.50  2133.50
- ---- L:3 T:   3
- 1   / 1:  3111.50  3112.50  3113.50
- 2   / 2:  3121.50  3122.50  3123.50
- 3   / 3:  3131.50  3132.50  3133.50
-LIST v[@tpt]
-             VARIABLE : X + 10*Y + 100*Z + 1000*T
-             SUBSET   : 3 by 3 by 3 points (X-Y-Z)
-             T        : 1.0005 (interpolated)
-              1        2        3     
-              1        2        3
- ---- K:1 Z:   1
- 1   / 1:  1111.50  1112.50  1113.50
- 2   / 2:  1121.50  1122.50  1123.50
- 3   / 3:  1131.50  1132.50  1133.50
- ---- K:2 Z:   2
- 1   / 1:  1211.50  1212.50  1213.50
- 2   / 2:  1221.50  1222.50  1223.50
- 3   / 3:  1231.50  1232.50  1233.50
- ---- K:3 Z:   3
- 1   / 1:  1311.50  1312.50  1313.50
- 2   / 2:  1321.50  1322.50  1323.50
- 3   / 3:  1331.50  1332.50  1333.50
- 
-! planes of data
-LIST v[@zpt, at tpt]	!XY
-             VARIABLE : X + 10*Y + 100*Z + 1000*T
-             SUBSET   : 3 by 3 points (X-Y)
-             Z        : 1.005 (interpolated)
-             T        : 1.0005 (interpolated)
-              1        2        3     
-              1        2        3
- 1   / 1:  1112.00  1113.00  1114.00
- 2   / 2:  1122.00  1123.00  1124.00
- 3   / 3:  1132.00  1133.00  1134.00
-LIST v[@ypt, at tpt]	!XZ
-             VARIABLE : X + 10*Y + 100*Z + 1000*T
-             SUBSET   : 3 by 3 points (X-Z)
-             Y        : 1.05 (interpolated)
-             T        : 1.0005 (interpolated)
-              1        2        3     
-              1        2        3
- 1   / 1:  1112.00  1113.00  1114.00
- 2   / 2:  1212.00  1213.00  1214.00
- 3   / 3:  1312.00  1313.00  1314.00
-LIST v[@ypt, at zpt]	!XT
-             VARIABLE : X + 10*Y + 100*Z + 1000*T
-             SUBSET   : 3 by 3 points (X-T)
-             Y        : 1.05 (interpolated)
-             Z        : 1.005 (interpolated)
-              1        2        3     
-              1        2        3
- 1   / 1:  1112.00  1113.00  1114.00
- 2   / 2:  2112.00  2113.00  2114.00
- 3   / 3:  3112.00  3113.00  3114.00
-LIST v[@xpt, at tpt]	!YZ
-             VARIABLE : X + 10*Y + 100*Z + 1000*T
-             SUBSET   : 3 by 3 points (Y-Z)
-             X        : 1.5 (interpolated)
-             T        : 1.0005 (interpolated)
-              1        2        3     
-              1        2        3
- 1   / 1:  1112.00  1122.00  1132.00
- 2   / 2:  1212.00  1222.00  1232.00
- 3   / 3:  1312.00  1322.00  1332.00
-LIST v[@xpt, at zpt]	!YT
-             VARIABLE : X + 10*Y + 100*Z + 1000*T
-             SUBSET   : 3 by 3 points (Y-T)
-             X        : 1.5 (interpolated)
-             Z        : 1.005 (interpolated)
-              1        2        3     
-              1        2        3
- 1   / 1:  1112.00  1122.00  1132.00
- 2   / 2:  2112.00  2122.00  2132.00
- 3   / 3:  3112.00  3122.00  3132.00
-LIST v[@xpt, at ypt]	!ZT
-             VARIABLE : X + 10*Y + 100*Z + 1000*T
-             SUBSET   : 3 by 3 points (Z-T)
-             X        : 1.5 (interpolated)
-             Y        : 1.05 (interpolated)
-              1        2        3     
-              1        2        3
- 1   / 1:  1112.00  1212.00  1312.00
- 2   / 2:  2112.00  2212.00  2312.00
- 3   / 3:  3112.00  3212.00  3312.00
- 
-! lines of data
-LIST/ORDER=T v[@xpt, at ypt, at zpt]	! T
-             VARIABLE : X + 10*Y + 100*Z + 1000*T
-             SUBSET   : 3 points (T)
-             X        : 1.5 (interpolated)
-             Y        : 1.05 (interpolated)
-             Z        : 1.005 (interpolated)
-             1        2        3     
-             1        2        3
-          1112.50  2112.50  3112.50
-LIST/ORDER=Z v[@xpt, at ypt, at tpt]	! Z
-             VARIABLE : X + 10*Y + 100*Z + 1000*T
-             SUBSET   : 3 points (Z)
-             X        : 1.5 (interpolated)
-             Y        : 1.05 (interpolated)
-             T        : 1.0005 (interpolated)
-             1        2        3     
-             1        2        3
-          1112.50  1212.50  1312.50
-LIST/ORDER=Y v[@xpt, at zpt, at tpt]	! Y
-             VARIABLE : X + 10*Y + 100*Z + 1000*T
-             SUBSET   : 3 points (Y)
-             X        : 1.5 (interpolated)
-             Z        : 1.005 (interpolated)
-             T        : 1.0005 (interpolated)
-             1        2        3     
-             1        2        3
-          1112.50  1122.50  1132.50
-LIST/ORDER=X v[@ypt, at zpt, at tpt]	! X
-             VARIABLE : X + 10*Y + 100*Z + 1000*T
-             SUBSET   : 3 points (X)
-             Y        : 1.05 (interpolated)
-             Z        : 1.005 (interpolated)
-             T        : 1.0005 (interpolated)
-             1        2        3     
-             1        2        3
-          1112.50  1113.50  1114.50
- 
-! point of data
-LIST v[@xpt, at ypt, at zpt, at tpt]
-             VARIABLE : X + 10*Y + 100*Z + 1000*T
-             X        : 1.5 (interpolated)
-             Y        : 1.05 (interpolated)
-             Z        : 1.005 (interpolated)
-             T        : 1.0005 (interpolated)
-          1113.00
- 
-GO bn_reset
-cancel mode verify
-GO bn_regrid
-! bn200_regrid.JNL
-! test regridding
-! first test consists of regridding and re-regridding back and comparing
-! when the variable, v is linear along all axes results should be exact
- 
-! second test checks area-averaging regridding
-! both with and without COS(latitude) factors computed
- 
-! third test consists of time axis regridding with differing time steps
- 
-set mode latit_label -4
-set mode long_label -4
- 
-define axis/x=2:20:2 xeven
-define axis/x=1:19:2 xodd
-define axis/y=2:20:2 yeven
-define axis/y=1:19:2 yodd
-define axis/z=2:20:2 zeven
-define axis/z=1:19:2 zodd
-define axis/t=2:20:2/t0="1-jan-1980"/unit=days teven
-define axis/t=1:19:2/t0="1-jan-1980"/unit=days todd
- 
-! default grid
-define grid/x=xeven/y=yeven/z=zeven/t=teven even
- 
-! 1 axis different
-define grid/x=xodd/y=yeven/z=zeven/t=teven g1
-define grid/x=xeven/y=yodd/z=zeven/t=teven g2
-define grid/x=xeven/y=yeven/z=zodd/t=teven g3
-define grid/x=xeven/y=yeven/z=zeven/t=todd g4
- 
-! 2 axes different
-define grid/x=xodd/y=yodd/z=zeven/t=teven g12
-define grid/x=xodd/y=yeven/z=zodd/t=teven g13
-define grid/x=xodd/y=yeven/z=zeven/t=todd g14
-define grid/x=xeven/y=yodd/z=zodd/t=teven g23
-define grid/x=xeven/y=yodd/z=zeven/t=todd g24
-define grid/x=xeven/y=yeven/z=zodd/t=todd g33
- 
-! 3 axes different
-define grid/x=xeven/y=yodd/z=zodd/t=todd g234
-define grid/x=xodd/y=yeven/z=zodd/t=todd g134
-define grid/x=xodd/y=yodd/z=zeven/t=todd g124
-define grid/x=xodd/y=yodd/z=zodd/t=teven g123
- 
-! all axes different
-define grid/x=xodd/y=yodd/z=zodd/t=todd g1234
- 
-LET veven = 1000*i[g=even] + 100*j[g=even] + 10*k[g=even] + l[g=even]
- 
-LET v1    = veven[g=g1]
-LET v2    = veven[g=g2]
-LET v3    = veven[g=g3]
-LET v4    = veven[g=g4]
-LET v12   = veven[g=g12]
-LET v13   = veven[g=g13]
-LET v14   = veven[g=g14]
-LET v23   = veven[g=g23]
-LET v24   = veven[g=g24]
-LET v33   = veven[g=g33]
-LET v234  = veven[g=g234]
-LET v134  = veven[g=g134]
-LET v124  = veven[g=g124]
-LET v123  = veven[g=g123]
-LET v1234 = veven[g=g1234]
- 
-SET REGION/X=4.01:8.99/Y=4.01:8.99/Z=4.01:8.99/T=4.01:8.99
- 
-! background
-list veven
-             VARIABLE : 1000*I[G=EVEN] + 100*J[G=EVEN] + 10*K[G=EVEN] + L[G=EVEN]
-             SUBSET   : 3 by 3 by 3 by 3 points (X-Y-Z-TIME)
-              4        6        8     
-              2        3        4
- ---- L:2 T:   05-JAN-1980 00:00
- ---- K:2 Z:   4
- 4   / 2:  2222.00  3222.00  4222.00
- 6   / 3:  2322.00  3322.00  4322.00
- 8   / 4:  2422.00  3422.00  4422.00
- ---- K:3 Z:   6
- 4   / 2:  2232.00  3232.00  4232.00
- 6   / 3:  2332.00  3332.00  4332.00
- 8   / 4:  2432.00  3432.00  4432.00
- ---- K:4 Z:   8
- 4   / 2:  2242.00  3242.00  4242.00
- 6   / 3:  2342.00  3342.00  4342.00
- 8   / 4:  2442.00  3442.00  4442.00
- ---- L:3 T:   07-JAN-1980 00:00
- ---- K:2 Z:   4
- 4   / 2:  2223.00  3223.00  4223.00
- 6   / 3:  2323.00  3323.00  4323.00
- 8   / 4:  2423.00  3423.00  4423.00
- ---- K:3 Z:   6
- 4   / 2:  2233.00  3233.00  4233.00
- 6   / 3:  2333.00  3333.00  4333.00
- 8   / 4:  2433.00  3433.00  4433.00
- ---- K:4 Z:   8
- 4   / 2:  2243.00  3243.00  4243.00
- 6   / 3:  2343.00  3343.00  4343.00
- 8   / 4:  2443.00  3443.00  4443.00
- ---- L:4 T:   09-JAN-1980 00:00
- ---- K:2 Z:   4
- 4   / 2:  2224.00  3224.00  4224.00
- 6   / 3:  2324.00  3324.00  4324.00
- 8   / 4:  2424.00  3424.00  4424.00
- ---- K:3 Z:   6
- 4   / 2:  2234.00  3234.00  4234.00
- 6   / 3:  2334.00  3334.00  4334.00
- 8   / 4:  2434.00  3434.00  4434.00
- ---- K:4 Z:   8
- 4   / 2:  2244.00  3244.00  4244.00
- 6   / 3:  2344.00  3344.00  4344.00
- 8   / 4:  2444.00  3444.00  4444.00
-list v1234
-             VARIABLE : VEVEN[G=G1234]
-             SUBSET   : 3 by 3 by 3 by 3 points (X-Y-Z-TIME)
-              5        7        9     
-              3        4        5
- ---- L:3 T:   06-JAN-1980 00:00
- ---- K:3 Z:   5
- 5   / 3:  2777.50  3777.50  4777.50
- 7   / 4:  2877.50  3877.50  4877.50
- 9   / 5:  2977.50  3977.50  4977.50
- ---- K:4 Z:   7
- 5   / 3:  2787.50  3787.50  4787.50
- 7   / 4:  2887.50  3887.50  4887.50
- 9   / 5:  2987.50  3987.50  4987.50
- ---- K:5 Z:   9
- 5   / 3:  2797.50  3797.50  4797.50
- 7   / 4:  2897.50  3897.50  4897.50
- 9   / 5:  2997.50  3997.50  4997.50
- ---- L:4 T:   08-JAN-1980 00:00
- ---- K:3 Z:   5
- 5   / 3:  2778.50  3778.50  4778.50
- 7   / 4:  2878.50  3878.50  4878.50
- 9   / 5:  2978.50  3978.50  4978.50
- ---- K:4 Z:   7
- 5   / 3:  2788.50  3788.50  4788.50
- 7   / 4:  2888.50  3888.50  4888.50
- 9   / 5:  2988.50  3988.50  4988.50
- ---- K:5 Z:   9
- 5   / 3:  2798.50  3798.50  4798.50
- 7   / 4:  2898.50  3898.50  4898.50
- 9   / 5:  2998.50  3998.50  4998.50
- ---- L:5 T:   10-JAN-1980 00:00
- ---- K:3 Z:   5
- 5   / 3:  2779.50  3779.50  4779.50
- 7   / 4:  2879.50  3879.50  4879.50
- 9   / 5:  2979.50  3979.50  4979.50
- ---- K:4 Z:   7
- 5   / 3:  2789.50  3789.50  4789.50
- 7   / 4:  2889.50  3889.50  4889.50
- 9   / 5:  2989.50  3989.50  4989.50
- ---- K:5 Z:   9
- 5   / 3:  2799.50  3799.50  4799.50
- 7   / 4:  2899.50  3899.50  4899.50
- 9   / 5:  2999.50  3999.50  4999.50
-stat veven
- 
-             1000*I[G=EVEN] + 100*J[G=EVEN] + 10*K[G=EVEN] + L[G=EVEN]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 2222
- Maximum value: 4444
- Mean    value: 3333 (unweighted average)
- Standard deviation: 825.72
- 
-! first all from one memory variable
-load/x=1:11/y=1:11/z=1:11/t=1:11 veven
-GO bn_regrid.sub
-! BN200_REGRID.SUB
-! compare various regriddings to the original data
- 
-stat v1[g=even]-veven, v1
- 
-             V1[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G1]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 2722
- Maximum value: 4944
- Mean    value: 3833 (unweighted average)
- Standard deviation: 825.72
-stat v2[g=even]-veven, v2
- 
-             V2[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G2]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 2272
- Maximum value: 4494
- Mean    value: 3383 (unweighted average)
- Standard deviation: 825.72
-stat v3[g=even]-veven, v3
- 
-             V3[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G3]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 2227
- Maximum value: 4449
- Mean    value: 3338 (unweighted average)
- Standard deviation: 825.72
-stat v4[g=even]-veven, v4
- 
-             V4[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G4]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 2222.5
- Maximum value: 4444.5
- Mean    value: 3333.5 (unweighted average)
- Standard deviation: 825.72
-stat v12[g=even]-veven, v12
- 
-             V12[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G12]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 2772
- Maximum value: 4994
- Mean    value: 3883 (unweighted average)
- Standard deviation: 825.72
-stat v13[g=even]-veven, v13
- 
-             V13[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G13]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 2727
- Maximum value: 4949
- Mean    value: 3838 (unweighted average)
- Standard deviation: 825.72
-stat v14[g=even]-veven, v14
- 
-             V14[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G14]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 2722.5
- Maximum value: 4944.5
- Mean    value: 3833.5 (unweighted average)
- Standard deviation: 825.72
-stat v23[g=even]-veven, v23
- 
-             V23[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G23]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 2277
- Maximum value: 4499
- Mean    value: 3388 (unweighted average)
- Standard deviation: 825.72
-stat v24[g=even]-veven, v24
- 
-             V24[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G24]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 2272.5
- Maximum value: 4494.5
- Mean    value: 3383.5 (unweighted average)
- Standard deviation: 825.72
-stat v33[g=even]-veven, v33
- 
-             V33[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G33]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 2227.5
- Maximum value: 4449.5
- Mean    value: 3338.5 (unweighted average)
- Standard deviation: 825.72
-stat v234[g=even]-veven, v234
- 
-             V234[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G234]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 2277.5
- Maximum value: 4499.5
- Mean    value: 3388.5 (unweighted average)
- Standard deviation: 825.72
-stat v134[g=even]-veven, v134
- 
-             V134[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G134]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 2727.5
- Maximum value: 4949.5
- Mean    value: 3838.5 (unweighted average)
- Standard deviation: 825.72
-stat v124[g=even]-veven, v124
- 
-             V124[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G124]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 2772.5
- Maximum value: 4994.5
- Mean    value: 3883.5 (unweighted average)
- Standard deviation: 825.72
-stat v123[g=even]-veven, v123
- 
-             V123[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G123]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 2777
- Maximum value: 4999
- Mean    value: 3888 (unweighted average)
- Standard deviation: 825.72
-stat v1234[g=even]-veven, v1234
- 
-             V1234[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G1234]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 2777.5
- Maximum value: 4999.5
- Mean    value: 3888.5 (unweighted average)
- Standard deviation: 825.72
- 
-! and now with recalculations at every step
-CANCEL MEMORY/ALL
-SET MODE STUPID
-GO bn_regrid.sub
-! BN200_REGRID.SUB
-! compare various regriddings to the original data
- 
-stat v1[g=even]-veven, v1
- 
-             V1[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G1]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 2722
- Maximum value: 4944
- Mean    value: 3833 (unweighted average)
- Standard deviation: 825.72
-stat v2[g=even]-veven, v2
- 
-             V2[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G2]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 2272
- Maximum value: 4494
- Mean    value: 3383 (unweighted average)
- Standard deviation: 825.72
-stat v3[g=even]-veven, v3
- 
-             V3[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G3]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 2227
- Maximum value: 4449
- Mean    value: 3338 (unweighted average)
- Standard deviation: 825.72
-stat v4[g=even]-veven, v4
- 
-             V4[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G4]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 2222.5
- Maximum value: 4444.5
- Mean    value: 3333.5 (unweighted average)
- Standard deviation: 825.72
-stat v12[g=even]-veven, v12
- 
-             V12[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G12]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 2772
- Maximum value: 4994
- Mean    value: 3883 (unweighted average)
- Standard deviation: 825.72
-stat v13[g=even]-veven, v13
- 
-             V13[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G13]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 2727
- Maximum value: 4949
- Mean    value: 3838 (unweighted average)
- Standard deviation: 825.72
-stat v14[g=even]-veven, v14
- 
-             V14[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G14]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 2722.5
- Maximum value: 4944.5
- Mean    value: 3833.5 (unweighted average)
- Standard deviation: 825.72
-stat v23[g=even]-veven, v23
- 
-             V23[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G23]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 2277
- Maximum value: 4499
- Mean    value: 3388 (unweighted average)
- Standard deviation: 825.72
-stat v24[g=even]-veven, v24
- 
-             V24[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G24]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 2272.5
- Maximum value: 4494.5
- Mean    value: 3383.5 (unweighted average)
- Standard deviation: 825.72
-stat v33[g=even]-veven, v33
- 
-             V33[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G33]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 2227.5
- Maximum value: 4449.5
- Mean    value: 3338.5 (unweighted average)
- Standard deviation: 825.72
-stat v234[g=even]-veven, v234
- 
-             V234[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G234]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 2277.5
- Maximum value: 4499.5
- Mean    value: 3388.5 (unweighted average)
- Standard deviation: 825.72
-stat v134[g=even]-veven, v134
- 
-             V134[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G134]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 2727.5
- Maximum value: 4949.5
- Mean    value: 3838.5 (unweighted average)
- Standard deviation: 825.72
-stat v124[g=even]-veven, v124
- 
-             V124[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G124]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 2772.5
- Maximum value: 4994.5
- Mean    value: 3883.5 (unweighted average)
- Standard deviation: 825.72
-stat v123[g=even]-veven, v123
- 
-             V123[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G123]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 2777
- Maximum value: 4999
- Mean    value: 3888 (unweighted average)
- Standard deviation: 825.72
-stat v1234[g=even]-veven, v1234
- 
-             V1234[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G1234]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 2777.5
- Maximum value: 4999.5
- Mean    value: 3888.5 (unweighted average)
- Standard deviation: 825.72
- 
-!****************** area-averaging regrids *******************
-! check easily computable area-averaged regrid
-LET vfine = X+Y
-LET vcoarse = vfine[g=gcoarse]
- 
-! first test without COS(latitude) corrections
-define axis/x=1:100:1/unit=cm xfine
-define axis/x=5.5:95.5:10/unit=cm xcoarse
-define axis/y=1:100:1/unit=cm yfine
-define axis/y=5.5:95.5:10/unit=cm ycoarse
-define grid/x=xfine/y=yfine gfine
-define grid/x=xcoarse/y=ycoarse gcoarse
- 
-set grid gfine
-set reg/x=20.5:80.5/y=20.5:80.5
-list vcoarse
-             VARIABLE : VFINE[G=GCOARSE]
-             SUBSET   : 6 by 6 points (X (CM)-Y (CM))
-              25.5     35.5     45.5     55.5     65.5     75.5   
-               3        4        5        6        7        8
- 25.5 / 3:   51.000   61.000   71.000   81.000   91.000  101.000
- 35.5 / 4:   61.000   71.000   81.000   91.000  101.000  111.000
- 45.5 / 5:   71.000   81.000   91.000  101.000  111.000  121.000
- 55.5 / 6:   81.000   91.000  101.000  111.000  121.000  131.000
- 65.5 / 7:   91.000  101.000  111.000  121.000  131.000  141.000
- 75.5 / 8:  101.000  111.000  121.000  131.000  141.000  151.000
-stat vcoarse,vfine
- 
-             VFINE[G=GCOARSE]
-             X (CM): 20.5 to 80.5
-             Y (CM): 20.5 to 80.5
-             Z:  N/A
-             T:  N/A
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 36 (6*6*1*1*1*1)
- # flagged as bad  data: 0
- Minimum value: 51
- Maximum value: 151
- Mean    value: 101 (unweighted average)
- Standard deviation: 24.495
- 
-             X+Y
-             X (CM): 20.5 to 80.5
-             Y (CM): 20.5 to 80.5
-             Z:  N/A
-             T:  N/A
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 3600 (60*60*1*1*1*1)
- # flagged as bad  data: 0
- Minimum value: 42
- Maximum value: 160
- Mean    value: 101 (unweighted average)
- Standard deviation: 24.495
-list vcoarse[x=@ave,y=@ave],vfine[x=@ave,y=@ave]
-             X (CM): 20.5 to 80.5 (XY ave)
-             Y (CM): 20.5 to 80.5 (XY ave)
- Column  1: VCOARSE is VFINE[G=GCOARSE]
- Column  2: VFINE is X+Y
-          VCOARSE    VFINE
-I / *:     101.000  101.000
- 
-! then test with COS(latitude) corrections
-define axis/x=1:100:1/unit=degrees xfine
-define axis/x=5.5:95.5:10/unit=degrees xcoarse
-define axis/y=1:100:1/unit=degrees yfine
-define axis/y=5.5:95.5:10/unit=degrees ycoarse
-define grid/x=xfine/y=yfine gfine
-define grid/x=xcoarse/y=ycoarse gcoarse
- 
-set grid gfine
-set reg/x=20.5:80.5/y=20.5:80.5
-list vcoarse
-             VARIABLE : VFINE[G=GCOARSE]
-             SUBSET   : 6 by 6 points (LONGITUDE-LATITUDE)
-               25.5E    35.5E    45.5E    55.5E    65.5E    75.5E  
-                3        4        5        6        7        8
- 75.5N / 8:  101.000  111.000  121.000  131.000  141.000  151.000
- 65.5N / 7:   91.000  101.000  111.000  121.000  131.000  141.000
- 55.5N / 6:   81.000   91.000  101.000  111.000  121.000  131.000
- 45.5N / 5:   71.000   81.000   91.000  101.000  111.000  121.000
- 35.5N / 4:   61.000   71.000   81.000   91.000  101.000  111.000
- 25.5N / 3:   51.000   61.000   71.000   81.000   91.000  101.000
-stat vcoarse,vfine
- 
-             VFINE[G=GCOARSE]
-             LONGITUDE: 20.5E to 80.5E
-             LATITUDE: 20.5N to 80.5N
-             Z:  N/A
-             T:  N/A
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 36 (6*6*1*1*1*1)
- # flagged as bad  data: 0
- Minimum value: 51
- Maximum value: 151
- Mean    value: 101 (unweighted average)
- Standard deviation: 24.495
- 
-             X+Y
-             LONGITUDE: 20.5E to 80.5E
-             LATITUDE: 20.5N to 80.5N
-             Z:  N/A
-             T:  N/A
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 3600 (60*60*1*1*1*1)
- # flagged as bad  data: 0
- Minimum value: 42
- Maximum value: 160
- Mean    value: 101 (unweighted average)
- Standard deviation: 24.495
-list vcoarse[x=@ave,y=@ave],vfine[x=@ave,y=@ave]
-             LONGITUDE: 20.5E to 80.5E (XY ave)
-             LATITUDE: 20.5N to 80.5N (XY ave)
- Column  1: VCOARSE is VFINE[G=GCOARSE]
- Column  2: VFINE is X+Y
-          VCOARSE    VFINE
-I / *:     94.7056  94.5308
- 
-!****************** time axis regridding *******************
-define axis/t="1-jan-1980":"1-jan-1982":24/t0="1-jan-1970" tax24
-define axis/t="1-jan-1980":"1-jan-1982":48/t0="1-jan-1920" tax48
-define grid/t=tax24 g24
-define grid/t=tax48 g48
-!show grid/l=1:4 g24,g48    ! requires blank separators: 11/1/91 *sh*
-show grid/l=1:4 g24 g48
-    GRID G24
- name       axis              # pts   start                end
- normal    X
- normal    Y
- normal    Z
- TAX24     TIME               732 r   01-JAN-1980 00:00    01-JAN-1982 00:00
- normal    E
- normal    F
- 
-       L     T                   TBOX      TBOXLO                TSTEP (HOURS)
-       1>  01-JAN-1980 00:00:00  24         31-DEC-1979 12:00:00   87648
-       2>  02-JAN-1980 00:00:00  24         01-JAN-1980 12:00:00   87672
-       3>  03-JAN-1980 00:00:00  24         02-JAN-1980 12:00:00   87696
-       4>  04-JAN-1980 00:00:00  24         03-JAN-1980 12:00:00   87720
-    GRID G48
- name       axis              # pts   start                end
- normal    X
- normal    Y
- normal    Z
- TAX48     TIME               367 r   01-JAN-1980 00:00    02-JAN-1982 00:00
- normal    E
- normal    F
- 
-       L     T                   TBOX      TBOXLO                TSTEP (HOURS)
-       1>  01-JAN-1980 00:00:00  48         31-DEC-1979 00:00:00   525960
-       2>  03-JAN-1980 00:00:00  48         02-JAN-1980 00:00:00   526008
-       3>  05-JAN-1980 00:00:00  48         04-JAN-1980 00:00:00   526056
-       4>  07-JAN-1980 00:00:00  48         06-JAN-1980 00:00:00   526104
-set region/t="1-jan-1980":"8-jan-1980"
-let a24 = t[g=g24]
-let a48 = t[g=g48]
-list a24
-             VARIABLE : T[G=G24]
-             SUBSET   : 8 points (TIME)
- 01-JAN-1980 00 / 1:  87648.0
- 02-JAN-1980 00 / 2:  87672.0
- 03-JAN-1980 00 / 3:  87696.0
- 04-JAN-1980 00 / 4:  87720.0
- 05-JAN-1980 00 / 5:  87744.0
- 06-JAN-1980 00 / 6:  87768.0
- 07-JAN-1980 00 / 7:  87792.0
- 08-JAN-1980 00 / 8:  87816.0
-list a48
-             VARIABLE : T[G=G48]
-             SUBSET   : 4 points (TIME)
- 01-JAN-1980 00 / 1:  525960.
- 03-JAN-1980 00 / 2:  526008.
- 05-JAN-1980 00 / 3:  526056.
- 07-JAN-1980 00 / 4:  526104.
-list a24[g=g48]
-             VARIABLE : T[G=G24]
-                        regrid: G48
-             SUBSET   : 4 points (TIME)
- 01-JAN-1980 00 / 1:  87648.0
- 03-JAN-1980 00 / 2:  87696.0
- 05-JAN-1980 00 / 3:  87744.0
- 07-JAN-1980 00 / 4:  87792.0
-list a24[g=g48]-a48
-             VARIABLE : A24[G=G48]-A48
-             SUBSET   : 4 points (TIME)
- 01-JAN-1980 00 / 1: -438312.
- 03-JAN-1980 00 / 2: -438312.
- 05-JAN-1980 00 / 3: -438312.
- 07-JAN-1980 00 / 4: -438312.
- 
-GO bn_reset
-cancel mode verify
-GO bn_ez		! changed from bn200_ez 8/10/95
-! 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
- 
- 
-! quick and dirty
-FILE EZ.DAT
-SHOW DATA/FULL
-     currently SET data sets:
-    1> ./EZ.DAT  (default)
- 
- name     title                             I         J         K         L         M         N
- V1       V1                               1:20480   ...       ...       ...       ...       ...
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- 
- /FORMAT = FREE
- /SKIP = 0
- /COLUMNS = 1
-LIST V1
-             VARIABLE : V1
-             FILENAME : EZ.DAT
-             SUBSET   : 5 points (X)
- 1   / 1:  0.006000
- 2   / 2:  0.355000
- 3   / 3:  0.410000
- 4   / 4:  0.435000
- 5   / 5:  0.478000
-SHOW DATA
-     currently SET data sets:
-    1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:5       ...       ...       ...       ...       ...
- 
- 
-! first 2 values from each line
-FILE/VAR="X1,X2" EZ.DAT
-SHOW DATA/FULL
-     currently SET data sets:
-    1> ./EZ.DAT  (default)
- 
- name     title                             I         J         K         L         M         N
- X1       X1                               1:20480   ...       ...       ...       ...       ...
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- X2       X2                               1:20480   ...       ...       ...       ...       ...
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- 
- /FORMAT = FREE
- /SKIP = 0
- /COLUMNS = 2
-LIST X1,X2
-             DATA SET: ./EZ.DAT
-             X: 0.5 to 5.5
- Column  1: X1
- Column  2: X2
-               X1      X2
-1   / 1:  0.006000  0.886500
-2   / 2:  0.355000  0.664300
-3   / 3:  0.410000  0.607100
-4   / 4:  0.435000  0.553500
-5   / 5:  0.478000  0.533700
-SHOW DATA
-     currently SET data sets:
-    1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:5       ...       ...       ...       ...       ...
- X2       X2                               1:5       ...       ...       ...       ...       ...
- 
- 
-! all 6 values on each line
-FILE/VAR="X1,X2"/COLUMNS=6 EZ.DAT
-SHOW DATA/FULL
-     currently SET data sets:
-    1> ./EZ.DAT  (default)
- 
- name     title                             I         J         K         L         M         N
- X1       X1                               1:20480   ...       ...       ...       ...       ...
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- X2       X2                               1:20480   ...       ...       ...       ...       ...
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- 
- /FORMAT = FREE
- /SKIP = 0
- /COLUMNS = 6
-LIST X1
-             VARIABLE : X1
-             FILENAME : EZ.DAT
-             SUBSET   : 15 points (X)
- 1    /  1:  0.006000
- 2    /  2:  0.176000
- 3    /  3:  0.282000
- 4    /  4:  0.355000
- 5    /  5:  0.379000
- 6    /  6:  0.393000
- 7    /  7:  0.410000
- 8    /  8:  0.417000
- 9    /  9:  0.467000
- 10   / 10:  0.435000
- 11   / 11:  0.444000
- 12   / 12:  0.470000
- 13   / 13:  0.478000
- 14   / 14:  0.515000
- 15   / 15:  0.469000
-SHOW DATA
-     currently SET data sets:
-    1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:15      ...       ...       ...       ...       ...
- X2       X2                               1:15      ...       ...       ...       ...       ...
- 
- 
-! all 6 but skip first 2 lines
-FILE/VAR="X1,X2"/COLUMNS=6/SKIP=2 EZ.DAT
-SHOW DATA/FULL
-     currently SET data sets:
-    1> ./EZ.DAT  (default)
- 
- name     title                             I         J         K         L         M         N
- X1       X1                               1:20480   ...       ...       ...       ...       ...
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- X2       X2                               1:20480   ...       ...       ...       ...       ...
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- 
- /FORMAT = FREE
- /SKIP = 2
- /COLUMNS = 6
-LIST X1
-             VARIABLE : X1
-             FILENAME : EZ.DAT
-             SUBSET   : 9 points (X)
- 1   / 1:  0.410000
- 2   / 2:  0.417000
- 3   / 3:  0.467000
- 4   / 4:  0.435000
- 5   / 5:  0.444000
- 6   / 6:  0.470000
- 7   / 7:  0.478000
- 8   / 8:  0.515000
- 9   / 9:  0.469000
-SHOW DATA
-     currently SET data sets:
-    1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:9       ...       ...       ...       ...       ...
- X2       X2                               1:9       ...       ...       ...       ...       ...
- 
- 
-! take 1st and 4th values on each line as X1
-FILE/VAR="X1,-,X2"/COLUMNS=6/SKIP=2 EZ.DAT
-SHOW DATA/FULL
-     currently SET data sets:
-    1> ./EZ.DAT  (default)
- 
- name     title                             I         J         K         L         M         N
- X1       X1                               1:20480   ...       ...       ...       ...       ...
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- X2       X2                               1:20480   ...       ...       ...       ...       ...
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- 
- /FORMAT = FREE
- /SKIP = 2
- /COLUMNS = 6
-LIST X1
-             VARIABLE : X1
-             FILENAME : EZ.DAT
-             SUBSET   : 6 points (X)
- 1   / 1:  0.410000
- 2   / 2:  0.593500
- 3   / 3:  0.435000
- 4   / 4:  0.545800
- 5   / 5:  0.478000
- 6   / 6:  0.514700
-SHOW DATA
-     currently SET data sets:
-    1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:6       ...       ...       ...       ...       ...
- X2       X2                               1:6       ...       ...       ...       ...       ...
- 
- 
-! specify the format explicitly
-FILE/VAR="X1,X2"/COLUMNS=6/SKIP=2/FORMAT=(3(F14.0,F7.0)) EZ.DAT
-SHOW DATA/FULL
-     currently SET data sets:
-    1> ./EZ.DAT  (default)
- 
- name     title                             I         J         K         L         M         N
- X1       X1                               1:20480   ...       ...       ...       ...       ...
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- X2       X2                               1:20480   ...       ...       ...       ...       ...
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- 
- /FORMAT = (3(F14.0,F7.0))
- /SKIP = 2
- /COLUMNS = 6
-LIST X1
-             VARIABLE : X1
-             FILENAME : EZ.DAT
-             SUBSET   : 9 points (X)
- 1   / 1:  0.410000
- 2   / 2:  0.417000
- 3   / 3:  0.467000
- 4   / 4:  0.435000
- 5   / 5:  0.444000
- 6   / 6:  0.470000
- 7   / 7:  0.478000
- 8   / 8:  0.515000
- 9   / 9:  0.469000
-SHOW DATA
-     currently SET data sets:
-    1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:9       ...       ...       ...       ...       ...
- X2       X2                               1:9       ...       ...       ...       ...       ...
- 
- 
-! specify the format to skip every second line
-FILE/VAR="X1,X2"/COLUMNS=6/SKIP=1/FORMAT="(3(F14.0,F7.0)/)" EZ.DAT
-SHOW DATA/FULL
-     currently SET data sets:
-    1> ./EZ.DAT  (default)
- 
- name     title                             I         J         K         L         M         N
- X1       X1                               1:20480   ...       ...       ...       ...       ...
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- X2       X2                               1:20480   ...       ...       ...       ...       ...
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- 
- /FORMAT = (3(F14.0,F7.0)/)
- /SKIP = 1
- /COLUMNS = 6
-LIST X1
-             VARIABLE : X1
-             FILENAME : EZ.DAT
-             SUBSET   : 6 points (X)
- 1   / 1:  0.355000
- 2   / 2:  0.379000
- 3   / 3:  0.393000
- 4   / 4:  0.435000
- 5   / 5:  0.444000
- 6   / 6:  0.470000
-SHOW DATA
-     currently SET data sets:
-    1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:6       ...       ...       ...       ...       ...
- X2       X2                               1:6       ...       ...       ...       ...       ...
- 
- 
-! modify variable title
-SET VARIABLE/TITLE="first variable" X1
-SHOW DATA
-     currently SET data sets:
-    1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       first variable                   1:6       ...       ...       ...       ...       ...
- X2       X2                               1:6       ...       ...       ...       ...       ...
- 
- 
-! read onto a 2D grid
-DEFINE AXIS/X=1:3:1 xez1
-DEFINE GRID/X=XEZ1/Y=EZ GEZ1
-FILE/VAR="X1,X2"/COLUMNS=6/GRID=GEZ1 EZ.DAT
-SHOW DATA/FULL
-     currently SET data sets:
-    1> ./EZ.DAT  (default)
- 
- name     title                             I         J         K         L         M         N
- X1       X1                               1:3       1:20480   ...       ...       ...       ...
-               on grid GEZ1 with -1.E+34 for missing data
-             X=0.5:3.5  Y=0.5:20481  
- X2       X2                               1:3       1:20480   ...       ...       ...       ...
-               on grid GEZ1 with -1.E+34 for missing data
-             X=0.5:3.5  Y=0.5:20481  
- 
- /FORMAT = FREE
- /SKIP = 0
- /COLUMNS = 6
-LIST X1
-             VARIABLE : X1
-             FILENAME : EZ.DAT
-             SUBSET   : 3 by 5 points (X-Y)
-              1         2         3      
-               1         2         3
- 1   / 1:  0.006000  0.176000  0.282000
- 2   / 2:  0.355000  0.379000  0.393000
- 3   / 3:  0.410000  0.417000  0.467000
- 4   / 4:  0.435000  0.444000  0.470000
- 5   / 5:  0.478000  0.515000  0.469000
-SHOW DATA
-     currently SET data sets:
-    1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:3       1:5       ...       ...       ...       ...
- X2       X2                               1:3       1:5       ...       ...       ...       ...
- 
- 
-! read onto a 4D grid
-DEFINE AXIS/X=1:1:1 xez2
-DEFINE AXIS/Y=1:3:1 yez
-DEFINE AXIS/Z=1:2:1 zez
-DEFINE GRID/X=XEZ2/Y=YEZ/Z=ZEZ/T=EZ GEZ2
-FILE/VAR="X1,X2"/COLUMNS=6/GRID=GEZ2 EZ.DAT
-SHOW DATA/FULL
-     currently SET data sets:
-    1> ./EZ.DAT  (default)
- 
- name     title                             I         J         K         L         M         N
- X1       X1                               1:1       1:3       1:2       1:20480   ...       ...
-               on grid GEZ2 with -1.E+34 for missing data
-             X=0.5:1.5  Y=0.5:3.5  Z=0.5:2.5  
- X2       X2                               1:1       1:3       1:2       1:20480   ...       ...
-               on grid GEZ2 with -1.E+34 for missing data
-             X=0.5:1.5  Y=0.5:3.5  Z=0.5:2.5  
- 
- /FORMAT = FREE
- /SKIP = 0
- /COLUMNS = 6
-LIST X1
-             VARIABLE : X1
-             FILENAME : EZ.DAT
-             SUBSET   : 3 by 2 by 2 points (Y-Z-T)
-             X        : 1
-              1         2         3      
-               1         2         3
- ---- L:1 T:   1
- 1   / 1:  0.006000  0.176000  0.282000
- 2   / 2:  0.355000  0.379000  0.393000
- ---- L:2 T:   2
- 1   / 1:  0.410000  0.417000  0.467000
- 2   / 2:  0.435000  0.444000  0.470000
-SHOW DATA
-     currently SET data sets:
-    1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:1       1:3       1:2       1:2       ...       ...
- X2       X2                               1:1       1:3       1:2       1:2       ...       ...
- 
- 
-! truncate reading by grid size limit
-DEFINE AXIS/X=1:8:1 xez3
-DEFINE GRID/X=XEZ3 GEZ3
-FILE/VAR="X1,X2"/COLUMNS=6/GRID=GEZ3 EZ.DAT
-SHOW DATA/FULL
-     currently SET data sets:
-    1> ./EZ.DAT  (default)
- 
- name     title                             I         J         K         L         M         N
- X1       X1                               1:8       ...       ...       ...       ...       ...
-               on grid GEZ3 with -1.E+34 for missing data
-             X=0.5:8.5  
- X2       X2                               1:8       ...       ...       ...       ...       ...
-               on grid GEZ3 with -1.E+34 for missing data
-             X=0.5:8.5  
- 
- /FORMAT = FREE
- /SKIP = 0
- /COLUMNS = 6
-LIST X1
-             VARIABLE : X1
-             FILENAME : EZ.DAT
-             SUBSET   : 8 points (X)
- 1   / 1:  0.006000
- 2   / 2:  0.176000
- 3   / 3:  0.282000
- 4   / 4:  0.355000
- 5   / 5:  0.379000
- 6   / 6:  0.393000
- 7   / 7:  0.410000
- 8   / 8:  0.417000
-SHOW DATA
-     currently SET data sets:
-    1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:8       ...       ...       ...       ...       ...
- X2       X2                               1:8       ...       ...       ...       ...       ...
- 
- 
-! 8/10/95 -- added tests of unformatted writing and reading
-SP rm -f test.unf
-LIST/FILE=test.unf/format=unf/i=1:10 i
-file/form=unf/var=my_var test.unf
-list my_var
-             VARIABLE : MY_VAR
-             FILENAME : test.unf
-             SUBSET   : 10 points (X)
- 1    /  1:   1.0000
- 2    /  2:   2.0000
- 3    /  3:   3.0000
- 4    /  4:   4.0000
- 5    /  5:   5.0000
- 6    /  6:   6.0000
- 7    /  7:   7.0000
- 8    /  8:   8.0000
- 9    /  9:   9.0000
- 10   / 10:  10.0000
- 
-! ****
-! remove bn200_budgets for portable benchmarks *kob* 5/99
-! ****
- 
-! ppl echo on turns on fort.41 to capture ppl commands.
-PPL ECHO ON		! added 10/27/93
- 
-! 10/97 *kob* now set mode metafile
-set mode metafile bnplot.plt
-GO bn_reset
-cancel mode verify
-GO bn_plot		! upgraded from bn320_plot 10/1/97 *kob*
-! bn450_plot.JNL - updated 9/97 from bn320_plot.jnl
-! upgraded from bn320 to provide method for testing batch mode.  Also remove
-! all labels to create "master" gif and ps files to compare against
-! *kob*
-! V530 - added tests of PLOT/STEP[=connected] to existing plots
-! v581 - for the last set, cancel mode logo, so that .plt files are comparable.
- 
-! 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= 4010  BAUD=  110
-         WINDOW= ON   BOX= OFF  CROSS= 0  PLTYPE=  3
-         PLOT MODE=   A
-         PLOT FILE= bnplot.plt                                                                                                                                                                                                                                                                                                                                                                                                                                                                               [...]
- 
-! 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
-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)
- 
-! 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)
- 
-! test of qualifiers added for V510
-cancel viewport
-set wind/asp=.75/clear
-set view ul
-plot/i=1:10/ylimits=1:40/nolabel i      ! note that /nolabel supresses XLAB
-plot/i=1:10/over/sym=2 i^1.1
-plot/i=1:10/over/sym=2/size=.12 i^1.2
-plot/i=1:10/over/sym=2/color=red i^1.3
-plot/i=1:10/over/thick/step i^1.4
-plot/i=1:10/over/thick/color=blue/step=connected i^1.5
-plot/i=1:10/over/thick=3/color=purple/size=.14 i^1.6
- 
-! deliberate error
-set mode ignore
-plot/over/i=1:10/color=noexist i
-plot/over/i=1:10/thick=4 i
-plot/over/i=1:10/size=-1 i
-set mode/last ignore
- 
-can mode logo
-set view ur
-let eps = .1; plot/vs RANDU(I[i=1:10]+eps), RANDU(I[i=1:10]+10+eps)
-let eps = .2; plot/vs/over/sym=2  RANDU(I[i=1:10]+eps), RANDU(I[i=1:10]+10+eps)
-let eps = .3; plot/vs/over/line/size=.12 RANDU(I[i=1:10]+eps), RANDU(I[i=1:10]+10+eps)
-let eps = .4; plot/vs/over/line/sym=2/color=red RANDU(I[i=1:10]+eps), RANDU(I[i=1:10]+10+eps)
-let eps = .5; plot/vs/over/thick RANDU(I[i=1:10]+eps), RANDU(I[i=1:10]+10+eps)
-let eps = .6; plot/vs/over/thick/color=blue RANDU(I[i=1:10]+eps), RANDU(I[i=1:10]+10+eps)
-let eps = .7; plot/vs/over/thick=3/color=purple/size=.14 RANDU(I[i=1:10]+eps), RANDU(I[i=1:10]+10+eps)
- 
-set view ll
-contour/color=lightBlue/sig=1/size=.12 x[x=0:1:.1]*SIN(Y[y=0:6.3:.2])
-vector/over/thick=3/color=green x[x=0:1:.1]*SIN(Y[y=0:6.3:.2]),x[x=0:1:.1]*COS(Y[y=0:6.3:.2])
- 
-! deliberate error
-set mode ignore
-cont/over/i=1:10/color=noexist i
-cont/over/i=1:10/thick=4 i
-cont/over/i=1:10/sigdig=-1 i
-set mode/last ignore
- 
-set view lr
-polygon/thick/color=red/palette=blue {1,2,1}, {2,1,0.5}
- 
-set mode/last logo
- 
- 
-!added in bn450 10/97 *kob*
-! moved to right after bn450_plot to capture metafiles *kob* 2/98
-GO bn_reset
-cancel mode verify
-! 2/98 changed bn450_curv to bn491_curv - just some cosmetic changes *kob*
-GO bn_curv
-cancel mode ignore
-!
-! Your basic map projection
-!
-! v 4.91 - *kob* 2/98 - just clean up window a bit before plotting and remove
-!		        all the ferret labels in order to be able to automate
-!			metafile checking.
-can view all
-! 2/98 *kob* just clean up the window a bit
-! 4/05 *acm* save only one of the plots as a metafile for checking; had four of them.
- 
-can mode meta
-set view full
-set wind/clear/asp=1
- 
-use coads_climatology
-set region/l=3
-go mp_sinusoidal
-set grid sst
-shade/nolabel sst, x_page, y_page
- 
-!
-! A more complex projection
-!
-set mode meta bnplot.plt
-go mp_orthographic 210 45
-set grid sst
-let masked_sst = sst * mp_mask
-fill/nolabel/title="Orthographic View" masked_sst, x_page, y_page
- 
-!
-! Some of the utility functions
-!
-!go mp_fland
-go mp_land
-go mp_label 237.7 47.6 -1 0 .1 @IISeattle
-go mp_label 204.4 19.5 -1 0 .1 @IIHawaii
-go mp_graticule
-go mp_graticule 160 200 40 50 65 15 11
-go mp_label 180 45 0 -22 .15 "@p5 at DRThe Bering Sea"
- 
-! move the cancel mode meta to avoid changes in the plot output
-can mode meta
- 
-!  Some map projections use 1-D x_page and y_page
-!  (mp_mercator, mp_plate_caree, mp_lambert_cyl). Test the
-!  whole zoo of map projection scripts.
- 
-go bn_mp_zoo.jnl
-! bn_mp_zoo.jnl
-! taken from mp_demo.jnl
-! acm 9/2005
-!
- 
-define viewport/xlimits=0.000,0.333/ylim=0.666,0.999 tl
-define viewport/xlimits=0.000,0.333/ylim=0.333,0.666 ml
-define viewport/xlimits=0.000,0.333/ylim=0.000,0.333 bl
-define viewport/xlimits=0.333,0.666/ylim=0.666,0.999 tm
-define viewport/xlimits=0.333,0.666/ylim=0.333,0.666 mm
-define viewport/xlimits=0.333,0.666/ylim=0.000,0.333 bm
-define viewport/xlimits=0.666,0.999/ylim=0.666,0.999 tr
-define viewport/xlimits=0.666,0.999/ylim=0.333,0.666 mr
-define viewport/xlimits=0.666,0.999/ylim=0.000,0.333 br
- 
-use coads_climatology
-set region/l=1/y=0:90
- 
-set view tl
-go margins .2, .6, .2, .2
-go mp_hammer
-set grid sst
-shade/nolab/nokey/noaxes sst, x_page, y_page
-label/nouser `($PPL$XLEN)*0.5`,-0.4,0,0,.20 Hammer
- !-> PPL %LABEL/nouser 2.5335,-0.4,0,0,.20 Hammer
- 
-set view tm
-go mp_sinusoidal
-go margins .2, .6, .2, .2
-shade/nolab/nokey/noaxes sst, x_page, y_page
-label/nouser `($PPL$XLEN)*0.5`,-0.4,0,0,.20 Sinusoidal
- !-> PPL %LABEL/nouser 2.5335,-0.4,0,0,.20 Sinusoidal
- 
-set view tr
-go mp_lambert_cyl
-go margins .2, .6, .2, .2
-shade/nolab/nokey/noaxes sst, x_page, y_page
-label/nouser `($PPL$XLEN)*0.5`,-0.4,0,0,.20 Lambert Equal Area
- !-> PPL %LABEL/nouser 2.5335,-0.4,0,0,.20 Lambert Equal Area
- 
-set view ml
-go mp_bonne
-go margins .2, .6, .2, .2
-shade/nolab/nokey/noaxes sst, x_page, y_page
-label/nouser `($PPL$XLEN)*0.5`,-0.4,0,0,.20 Bonne
- !-> PPL %LABEL/nouser 2.5335,-0.4,0,0,.20 Bonne
- 
-set view mm
-go mp_mcbryde_fpp
-go margins .2, .6, .2, .2
-shade/nolab/nokey/noaxes sst, x_page, y_page
-label/nouser `($PPL$XLEN)*0.5`,-0.4,0,0,.20 McBryde Flat Polar
- !-> PPL %LABEL/nouser 2.5335,-0.4,0,0,.20 McBryde Flat Polar
- 
-set view mr
-go mp_polyconic
-go margins .2, .6, .2, .2
-shade/nolab/nokey/noaxes sst, x_page, y_page
-label/nouser `($PPL$XLEN)*0.5`,-0.4,0,0,.20 Polyconic
- !-> PPL %LABEL/nouser 2.5335,-0.4,0,0,.20 Polyconic
- 
-set view bl
-go mp_orthographic 300 45
-go margins .2, .6, .2, .2
-let masked_sst = sst * mp_mask
-shade/nolab/nokey/noaxes masked_sst, x_page, y_page
-label/nouser `($PPL$XLEN)*0.5`,-0.4,0,0,.20 OrthoGraphic
- !-> PPL %LABEL/nouser 2.5335,-0.4,0,0,.20 OrthoGraphic
- 
-set view bm
-set region/x=240:420
-go mp_stereographic_eq
-go margins .2, .6, .2, .2
-shade/nolab/nokey/noaxes sst, x_page, y_page
-
- PPL warning: You're attempting to use more colors than are available.
-             Using PPL SHASET RESET to re-use protected colors may help.
-
-label/nouser `($PPL$XLEN)*0.5`,-0.4,0,0,.20 Stereographic Equatorial
- !-> PPL %LABEL/nouser 2.5335,-0.4,0,0,.20 Stereographic Equatorial
- 
-set view br
-set region/x=0:360/y=00:90
-go mp_stereographic_north
-go margins .2, .6, .2, .2
-shade/nolab/nokey/noaxes sst, x_page, y_page
-
- PPL warning: You're attempting to use more colors than are available.
-             Using PPL SHASET RESET to re-use protected colors may help.
-
-label/nouser `($PPL$XLEN)*0.5`,-0.4,0,0,.20 Stereographic North
- !-> PPL %LABEL/nouser 2.5335,-0.4,0,0,.20 Stereographic North
- 
-can region
-cancel viewport
-exit
- 
-!
-! What can go wrong
-!
- 
-! Do we catch incorrect region specifications?
-can region
-go mp_sinusoidal
-set grid sst
-set region/x=145
-set mode ignore
-shade/nolabel sst, x_page, y_page ! DELIBERATE ERROR
-can region
- 
-! Crazy stuff with the transformation fields:
-set region/l=1
-let phi = y * deg2rad
-shade/nolabel sst, 0*x_page, y_page ! DELIBERATE ERROR
-shade/nolabel sst, x_page, 0*y_page ! DELIBERATE ERROR
-shade/nolabel sst, x_page, sin(y_page)
-shade/nolabel sst, randn(x_page), randn(y_page)
-!2/98 *kob* - can mode meta before this plot
-can mode meta
-shade/nolabel sst, x_page[j=1:12], y_page ! DELIBERATE ERROR
-shade/nolabel sst, x_page, asin(y_page) ! DELIBERATE ERROR
- 
-shade/nolabel sst, x_page, y_page ! DELIBERATE gsetviewport() ERROR
- 
- 
-can win 1
-set win 1
- 
-!2/98 *kob* - set mode meta again
-!sset mode meta bnplot.plt
-let phi = l * deg2rad
-shade/nolabel sst, x_page, y_page
-shade/nolabel sst, x_page[j=1:12], y_page ! DELIBERATE ERROR
-can mode ignore
- 
-set mode meta bnplot.plt
- 
-SET WINDOW/CLEAR/SIZE=0.2 ! 8/25/92
-!CANCEL WINDOW/ALL    ! added 7/27/92
-! 10/97 *kob* now cancel mode metafile
-cancel mode metafile
- 
-GO bn_reset
-cancel mode verify
-GO bn_symbols	! added 6/22/95
-! bn420_symbols
-! benchmark to test machinery of symbol definition and use
-! requires FERRET version 4.00 or later
- 
-! note on max number of symbols:
-! As of 6/95 (version 4.01) an attempt to define more that 1000 symbols
-! will encounter a PLOT+   "STOP 'exceeded symbol storage'"
- 
-! bn420 - 10/95 -- make sure that symbols at start and end aren't
-!		confused with enclosing parens
-!	  4/96 -- test symbol editing in the style of dollar args
-!	       -- use template notation for SHOW SYMBOL and CANCEL SYMBOL
- 
-! V510: added tests of backslash escaping
-! V533: *sh* 7/01 - Ferret allows single quoted strings -- syntax change
- 
-cancel symbols/all
-show symbols/all
-PPL$XPIXEL = "406"
-PPL$YPIXEL = "406"
-BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.85"
-FERRET_PLATFORM = "Linux 2.6.32-358.23.2.el6.x86_64 32-bit"
-FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.0 of May 13 2013 13:48:05 $"
-FERRET_MEMORY = "25.6"
-SESSION_DATE = "12-Nov-13"
-SESSION_TIME = "15:12"
-SESSION_PID = "27740"
-DELTA_CPU = "4.84326"
-CLOCK_SECS = "9.779"
-CURRENT_DATE = "12-Nov-13"
-CURRENT_TIME = "15:12:19"
-N_OPEN_DSETS = "0"
-PROGRAM_NAME = "Ferret"
- 
-! define some symbols ... syntax variations
-define symbol s1 = hello
-define symbol s2 = "hello"
-define symbol s3  "hello and goodbye"
-define symbol num = 3
-define symbol t$dollar = hi
-define symbol t_($s1) = hi	! define "t_hello" as a symbol
- !-> define symbol t_hello = hi
- 
-! exercise SHOW SYMBOL
-show symbol/all
-PPL$XPIXEL = "406"
-PPL$YPIXEL = "406"
-BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.85"
-FERRET_PLATFORM = "Linux 2.6.32-358.23.2.el6.x86_64 32-bit"
-FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.0 of May 13 2013 13:48:05 $"
-FERRET_MEMORY = "25.6"
-SESSION_DATE = "12-Nov-13"
-SESSION_TIME = "15:12"
-SESSION_PID = "27740"
-DELTA_CPU = "0.001"
-CLOCK_SECS = "9.78"
-CURRENT_DATE = "12-Nov-13"
-CURRENT_TIME = "15:12:19"
-N_OPEN_DSETS = "0"
-PROGRAM_NAME = "Ferret"
-S1 = "hello"
-S2 = ""hello""
-S3 = "hello and goodbye"
-NUM = "3"
-T$DOLLAR = "hi"
-T_HELLO = "hi"
-show symbol s*
-SESSION_DATE = "12-Nov-13"
-SESSION_TIME = "15:12"
-SESSION_PID = "27740"
-S1 = "hello"
-S2 = ""hello""
-S3 = "hello and goodbye"
-show symbol s2
-S2 = ""hello""
- 
-! exercise CANCEL SYMBOL
-cancel symbol s2
-show symbol s*
-SESSION_DATE = "12-Nov-13"
-SESSION_TIME = "15:12"
-SESSION_PID = "27740"
-S1 = "hello"
-S3 = "hello and goodbye"
-show symbol S*
-SESSION_DATE = "12-Nov-13"
-SESSION_TIME = "15:12"
-SESSION_PID = "27740"
-S1 = "hello"
-S3 = "hello and goodbye"
-cancel symbol s2	! already deleted
- 
-! exercise symbol translation
-message/continue ($s1)
- !-> message/continue hello
-hello
-message/continue ($s1) and ($S3)
- !-> message/continue hello and hello and goodbye
-hello and hello and goodbye
-message/continue ($s1) and ($s`3`)	! no good - grave accent evaluated AFTER
- !-> message/continue hello and
-hello and
-message/continue ($s1) and ($s($num))	! nested symbol translation gets ($S3)
- !-> message/continue hello and hello and goodbye
-hello and hello and goodbye
- 
-! demonstrate the 30 character cap on symbol length
-define symbol q23456789012345678901234567890 = 4
-show symbol q*
-Q23456789012345678901234567890 = "4"
-define symbol q23456789012345678901234567890aaaaa = 5
-define symbol q23456789012345678901234567xxxaaaaa = 6
-show symbol q*
-Q23456789012345678901234567890 = "5"
-Q23456789012345678901234567XXX = "6"
- 
-! show the upper left coordinate limits labels as symbols
-plot/i=1:100/y=10/z=5/set_up SIN(I/6)+Y+Z
-show symbol lab*
-LAB1 = "FERRET Ver. 6.85"
-LAB2 = "NOAA/PMEL TMAP"
-LAB3 = "12-NOV-2013 15:12:19"
-LABX = "X"
-LAB4 = "Y : 10"
-LABNUM_Y = "4"
-LAB5 = "Z : 5"
-LABNUM_Z = "5"
-LABY = ""
-LABTIT = "SIN(I/6)+Y+Z"
-message/continue Z value saved as  ($LAB($LABNUM_Z))
- !-> message/continue Z value saved as  Z : 5
-Z value saved as  Z : 5
-message/continue Y value saved as "($LAB($LABNUM_Y))"
- !-> message/continue Y value saved as "Y : 10"
-Y value saved as "Y : 10"
-message/continue No T value saved: "($LAB($LABNUM_T))"
- !-> message/continue No T value saved: " "
-No T value saved: " "
- 
-! template tests (4/23/96)
-cancel symbol lab?
-show symbol lab*
-LABNUM_Y = "4"
-LABNUM_Z = "5"
-LABTIT = "SIN(I/6)+Y+Z"
-show symbol lab*y
-LABNUM_Y = "4"
- 
-! deliberate errors
-set mode ignore_errors
-define symbol test* = hello
-define symbol t$5 = hi
-set mode/last ignore_errors
- 
-! bn420 - check enclosing parens
-define symbol cmnd "show symbol"; define symbol arg "cmnd"
-($cmnd) ($arg)
- !-> show symbol cmnd
-CMND = "show symbol"
- 
-! bn420 - check symbol editing
-define symbol test "\"I'm here\""   ! added surrounding quotes V533
-define symbol t2 hello
-cancel symbol test2
-message/continue ($test)
- !-> message/continue "I'm here"
-I'm here
-message/continue ($test"default")
- !-> message/continue "I'm here"
-I'm here
-message/continue ($test2"default")
- !-> message/continue default
-default
- 
-message/continue ($t2"|hello|bye|")
- !-> message/continue hello
-hello
-message/continue ($t2"|hello>really hello|bye|")
- !-> message/continue really hello
-really hello
-message/continue ($t2"|hello>you said: *|bye|")
- !-> message/continue you said: hello
-you said: hello
-message/continue ($test"|*>you said: *|bye|")
- !-> message/continue you said: "I'm here"
-you said: "I'm here"
- 
-! deliberate errors
-set mode ignore_errors
-message/continue ($test2"<error message")
-message/continue ($test2"|hello|bye|")
-message/continue ($test2"|hello|bye|<error message")	! silent error
-message/continue ($t2"|solong>really hello|bye|")
-set mode/last ignore_errors
- 
-! V510 - added processing of backslash escapes
-define symbol ss \"hello\"
-show symbol ss
-SS = ""hello""
-define symbol ss "\"hello\""
-show symbol ss
-SS = ""hello""
-define symbol delayed_eval \`1+1\`
-show symbol delayed_eval
-DELAYED_EVAL = "`1+1`"
-say ($delayed_eval)         ! translate symbol and then evaluate
- !-> MESSAGE/CONTINUE 2
-2
- 
- 
-! cleanup
-cancel symbols/all
-show symbols/all
-PPL$XPIXEL = "406"
-PPL$YPIXEL = "406"
-BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.85"
-FERRET_PLATFORM = "Linux 2.6.32-358.23.2.el6.x86_64 32-bit"
-FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.0 of May 13 2013 13:48:05 $"
-FERRET_MEMORY = "25.6"
-SESSION_DATE = "12-Nov-13"
-SESSION_TIME = "15:12"
-SESSION_PID = "27740"
-DELTA_CPU = "0.008998"
-CLOCK_SECS = "9.788"
-CURRENT_DATE = "12-Nov-13"
-CURRENT_TIME = "15:12:19"
-N_OPEN_DSETS = "0"
-PROGRAM_NAME = "Ferret"
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_comma_delimited	! added 10/2/95
-! bn420_comma_delimited
- 
-! 10/2/95 - test comma and tab-delimited outputs
- 
-use gt4d011
- 
-! all possible 1, 2, and 3 dimensional lists
-!XYZT
-set region/i=95:96/j=41:42/k=2:3/l=5:6
-go bn_comma_delimited.sub comma temp
-! bn420_comma_delimited.sub
-! 10/95 benchmark various permutations for FERRET listed output
- 
-! similar to bn200_permute except that a "format" argument can be passed
-! and the region and expression information are external
- 
-! usage:
-!	SET REGION/xxxx
-!	GO bn420_permute tab_delimited  TEMP
- 
-LOAD $2
- !-> LOAD temp
- 
-LIST/ORDER=XYZT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XYZT /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
-   135.5W   ,134.5W   
- ---- L:5 T:   10-SEP-1982 20:00
- ---- K:2 Z:   15
-1.5S,27.3346,27.2218
-1.167S,27.2382,27.1246
- ---- K:3 Z:   25
-1.5S,27.2481,27.1248
-1.167S,27.1293,27.011
- ---- L:6 T:   16-SEP-1982 22:00
- ---- K:2 Z:   15
-1.5S,27.7751,27.6218
-1.167S,27.678,27.5239
- ---- K:3 Z:   25
-1.5S,27.6518,27.4892
-1.167S,27.51,27.3501
-LIST/ORDER=XYTZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XYTZ /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 by 2 points (LONGITUDE-LATITUDE-TIME-DEPTH (m))
-   135.5W   ,134.5W   
- ---- K:2 Z:   15
- ---- L:5 T:   10-SEP-1982 20:00
-1.5S,27.3346,27.2218
-1.167S,27.2382,27.1246
- ---- L:6 T:   16-SEP-1982 22:00
-1.5S,27.7751,27.6218
-1.167S,27.678,27.5239
- ---- K:3 Z:   25
- ---- L:5 T:   10-SEP-1982 20:00
-1.5S,27.2481,27.1248
-1.167S,27.1293,27.011
- ---- L:6 T:   16-SEP-1982 22:00
-1.5S,27.6518,27.4892
-1.167S,27.51,27.3501
-LIST/ORDER=XZYT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XZYT /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 by 2 points (LONGITUDE-DEPTH (m)-LATITUDE-TIME)
-   135.5W   ,134.5W   
- ---- L:5 T:   10-SEP-1982 20:00
- ---- J:41 Y:   1.5S
-15,27.3346,27.2218
-25,27.2481,27.1248
- ---- J:42 Y:   1.167S
-15,27.2382,27.1246
-25,27.1293,27.011
- ---- L:6 T:   16-SEP-1982 22:00
- ---- J:41 Y:   1.5S
-15,27.7751,27.6218
-25,27.6518,27.4892
- ---- J:42 Y:   1.167S
-15,27.678,27.5239
-25,27.51,27.3501
-LIST/ORDER=XZTY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XZTY /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 by 2 points (LONGITUDE-DEPTH (m)-TIME-LATITUDE)
-   135.5W   ,134.5W   
- ---- J:41 Y:   1.5S
- ---- L:5 T:   10-SEP-1982 20:00
-15,27.3346,27.2218
-25,27.2481,27.1248
- ---- L:6 T:   16-SEP-1982 22:00
-15,27.7751,27.6218
-25,27.6518,27.4892
- ---- J:42 Y:   1.167S
- ---- L:5 T:   10-SEP-1982 20:00
-15,27.2382,27.1246
-25,27.1293,27.011
- ---- L:6 T:   16-SEP-1982 22:00
-15,27.678,27.5239
-25,27.51,27.3501
-LIST/ORDER=XTYZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XTYZ /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 by 2 points (LONGITUDE-TIME-LATITUDE-DEPTH (m))
-          135.5W   ,134.5W   
- ---- K:2 Z:   15
- ---- J:41 Y:   1.5S
-10-SEP-1982 20,27.3346,27.2218
-16-SEP-1982 22,27.7751,27.6218
- ---- J:42 Y:   1.167S
-10-SEP-1982 20,27.2382,27.1246
-16-SEP-1982 22,27.678,27.5239
- ---- K:3 Z:   25
- ---- J:41 Y:   1.5S
-10-SEP-1982 20,27.2481,27.1248
-16-SEP-1982 22,27.6518,27.4892
- ---- J:42 Y:   1.167S
-10-SEP-1982 20,27.1293,27.011
-16-SEP-1982 22,27.51,27.3501
-LIST/ORDER=XTZY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XTZY /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 by 2 points (LONGITUDE-TIME-DEPTH (m)-LATITUDE)
-          135.5W   ,134.5W   
- ---- J:41 Y:   1.5S
- ---- K:2 Z:   15
-10-SEP-1982 20,27.3346,27.2218
-16-SEP-1982 22,27.7751,27.6218
- ---- K:3 Z:   25
-10-SEP-1982 20,27.2481,27.1248
-16-SEP-1982 22,27.6518,27.4892
- ---- J:42 Y:   1.167S
- ---- K:2 Z:   15
-10-SEP-1982 20,27.2382,27.1246
-16-SEP-1982 22,27.678,27.5239
- ---- K:3 Z:   25
-10-SEP-1982 20,27.1293,27.011
-16-SEP-1982 22,27.51,27.3501
-LIST/ORDER=YXZT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YXZT /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 by 2 points (LATITUDE-LONGITUDE-DEPTH (m)-TIME)
-   1.5S   ,1.167S 
- ---- L:5 T:   10-SEP-1982 20:00
- ---- K:2 Z:   15
-135.5W,27.3346,27.2382
-134.5W,27.2218,27.1246
- ---- K:3 Z:   25
-135.5W,27.2481,27.1293
-134.5W,27.1248,27.011
- ---- L:6 T:   16-SEP-1982 22:00
- ---- K:2 Z:   15
-135.5W,27.7751,27.678
-134.5W,27.6218,27.5239
- ---- K:3 Z:   25
-135.5W,27.6518,27.51
-134.5W,27.4892,27.3501
-LIST/ORDER=YXTZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YXTZ /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 by 2 points (LATITUDE-LONGITUDE-TIME-DEPTH (m))
-   1.5S   ,1.167S 
- ---- K:2 Z:   15
- ---- L:5 T:   10-SEP-1982 20:00
-135.5W,27.3346,27.2382
-134.5W,27.2218,27.1246
- ---- L:6 T:   16-SEP-1982 22:00
-135.5W,27.7751,27.678
-134.5W,27.6218,27.5239
- ---- K:3 Z:   25
- ---- L:5 T:   10-SEP-1982 20:00
-135.5W,27.2481,27.1293
-134.5W,27.1248,27.011
- ---- L:6 T:   16-SEP-1982 22:00
-135.5W,27.6518,27.51
-134.5W,27.4892,27.3501
-LIST/ORDER=YZXT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YZXT /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 by 2 points (LATITUDE-DEPTH (m)-LONGITUDE-TIME)
-   1.5S   ,1.167S 
- ---- L:5 T:   10-SEP-1982 20:00
- ---- I:95 X:   135.5W
-15,27.3346,27.2382
-25,27.2481,27.1293
- ---- I:96 X:   134.5W
-15,27.2218,27.1246
-25,27.1248,27.011
- ---- L:6 T:   16-SEP-1982 22:00
- ---- I:95 X:   135.5W
-15,27.7751,27.678
-25,27.6518,27.51
- ---- I:96 X:   134.5W
-15,27.6218,27.5239
-25,27.4892,27.3501
-LIST/ORDER=YZTX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YZTX /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 by 2 points (LATITUDE-DEPTH (m)-TIME-LONGITUDE)
-   1.5S   ,1.167S 
- ---- I:95 X:   135.5W
- ---- L:5 T:   10-SEP-1982 20:00
-15,27.3346,27.2382
-25,27.2481,27.1293
- ---- L:6 T:   16-SEP-1982 22:00
-15,27.7751,27.678
-25,27.6518,27.51
- ---- I:96 X:   134.5W
- ---- L:5 T:   10-SEP-1982 20:00
-15,27.2218,27.1246
-25,27.1248,27.011
- ---- L:6 T:   16-SEP-1982 22:00
-15,27.6218,27.5239
-25,27.4892,27.3501
-LIST/ORDER=YTXZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YTXZ /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 by 2 points (LATITUDE-TIME-LONGITUDE-DEPTH (m))
-          1.5S   ,1.167S 
- ---- K:2 Z:   15
- ---- I:95 X:   135.5W
-10-SEP-1982 20,27.3346,27.2382
-16-SEP-1982 22,27.7751,27.678
- ---- I:96 X:   134.5W
-10-SEP-1982 20,27.2218,27.1246
-16-SEP-1982 22,27.6218,27.5239
- ---- K:3 Z:   25
- ---- I:95 X:   135.5W
-10-SEP-1982 20,27.2481,27.1293
-16-SEP-1982 22,27.6518,27.51
- ---- I:96 X:   134.5W
-10-SEP-1982 20,27.1248,27.011
-16-SEP-1982 22,27.4892,27.3501
-LIST/ORDER=YTZX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YTZX /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 by 2 points (LATITUDE-TIME-DEPTH (m)-LONGITUDE)
-          1.5S   ,1.167S 
- ---- I:95 X:   135.5W
- ---- K:2 Z:   15
-10-SEP-1982 20,27.3346,27.2382
-16-SEP-1982 22,27.7751,27.678
- ---- K:3 Z:   25
-10-SEP-1982 20,27.2481,27.1293
-16-SEP-1982 22,27.6518,27.51
- ---- I:96 X:   134.5W
- ---- K:2 Z:   15
-10-SEP-1982 20,27.2218,27.1246
-16-SEP-1982 22,27.6218,27.5239
- ---- K:3 Z:   25
-10-SEP-1982 20,27.1248,27.011
-16-SEP-1982 22,27.4892,27.3501
-LIST/ORDER=ZXYT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZXYT /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 by 2 points (DEPTH (m)-LONGITUDE-LATITUDE-TIME)
-   15      ,25      
- ---- L:5 T:   10-SEP-1982 20:00
- ---- J:41 Y:   1.5S
-135.5W,27.3346,27.2481
-134.5W,27.2218,27.1248
- ---- J:42 Y:   1.167S
-135.5W,27.2382,27.1293
-134.5W,27.1246,27.011
- ---- L:6 T:   16-SEP-1982 22:00
- ---- J:41 Y:   1.5S
-135.5W,27.7751,27.6518
-134.5W,27.6218,27.4892
- ---- J:42 Y:   1.167S
-135.5W,27.678,27.51
-134.5W,27.5239,27.3501
-LIST/ORDER=ZXTY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZXTY /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 by 2 points (DEPTH (m)-LONGITUDE-TIME-LATITUDE)
-   15      ,25      
- ---- J:41 Y:   1.5S
- ---- L:5 T:   10-SEP-1982 20:00
-135.5W,27.3346,27.2481
-134.5W,27.2218,27.1248
- ---- L:6 T:   16-SEP-1982 22:00
-135.5W,27.7751,27.6518
-134.5W,27.6218,27.4892
- ---- J:42 Y:   1.167S
- ---- L:5 T:   10-SEP-1982 20:00
-135.5W,27.2382,27.1293
-134.5W,27.1246,27.011
- ---- L:6 T:   16-SEP-1982 22:00
-135.5W,27.678,27.51
-134.5W,27.5239,27.3501
-LIST/ORDER=ZYXT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZYXT /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 by 2 points (DEPTH (m)-LATITUDE-LONGITUDE-TIME)
-   15      ,25      
- ---- L:5 T:   10-SEP-1982 20:00
- ---- I:95 X:   135.5W
-1.5S,27.3346,27.2481
-1.167S,27.2382,27.1293
- ---- I:96 X:   134.5W
-1.5S,27.2218,27.1248
-1.167S,27.1246,27.011
- ---- L:6 T:   16-SEP-1982 22:00
- ---- I:95 X:   135.5W
-1.5S,27.7751,27.6518
-1.167S,27.678,27.51
- ---- I:96 X:   134.5W
-1.5S,27.6218,27.4892
-1.167S,27.5239,27.3501
-LIST/ORDER=ZYTX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZYTX /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 by 2 points (DEPTH (m)-LATITUDE-TIME-LONGITUDE)
-   15      ,25      
- ---- I:95 X:   135.5W
- ---- L:5 T:   10-SEP-1982 20:00
-1.5S,27.3346,27.2481
-1.167S,27.2382,27.1293
- ---- L:6 T:   16-SEP-1982 22:00
-1.5S,27.7751,27.6518
-1.167S,27.678,27.51
- ---- I:96 X:   134.5W
- ---- L:5 T:   10-SEP-1982 20:00
-1.5S,27.2218,27.1248
-1.167S,27.1246,27.011
- ---- L:6 T:   16-SEP-1982 22:00
-1.5S,27.6218,27.4892
-1.167S,27.5239,27.3501
-LIST/ORDER=ZTXY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZTXY /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 by 2 points (DEPTH (m)-TIME-LONGITUDE-LATITUDE)
-          15      ,25      
- ---- J:41 Y:   1.5S
- ---- I:95 X:   135.5W
-10-SEP-1982 20,27.3346,27.2481
-16-SEP-1982 22,27.7751,27.6518
- ---- I:96 X:   134.5W
-10-SEP-1982 20,27.2218,27.1248
-16-SEP-1982 22,27.6218,27.4892
- ---- J:42 Y:   1.167S
- ---- I:95 X:   135.5W
-10-SEP-1982 20,27.2382,27.1293
-16-SEP-1982 22,27.678,27.51
- ---- I:96 X:   134.5W
-10-SEP-1982 20,27.1246,27.011
-16-SEP-1982 22,27.5239,27.3501
-LIST/ORDER=ZTYX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZTYX /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 by 2 points (DEPTH (m)-TIME-LATITUDE-LONGITUDE)
-          15      ,25      
- ---- I:95 X:   135.5W
- ---- J:41 Y:   1.5S
-10-SEP-1982 20,27.3346,27.2481
-16-SEP-1982 22,27.7751,27.6518
- ---- J:42 Y:   1.167S
-10-SEP-1982 20,27.2382,27.1293
-16-SEP-1982 22,27.678,27.51
- ---- I:96 X:   134.5W
- ---- J:41 Y:   1.5S
-10-SEP-1982 20,27.2218,27.1248
-16-SEP-1982 22,27.6218,27.4892
- ---- J:42 Y:   1.167S
-10-SEP-1982 20,27.1246,27.011
-16-SEP-1982 22,27.5239,27.3501
-LIST/ORDER=TXYZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TXYZ /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 by 2 points (TIME-LONGITUDE-LATITUDE-DEPTH (m))
-   10-SEP-1982 20:00,16-SEP-1982 22:00
- ---- K:2 Z:   15
- ---- J:41 Y:   1.5S
-135.5W,27.3346,27.7751
-134.5W,27.2218,27.6218
- ---- J:42 Y:   1.167S
-135.5W,27.2382,27.678
-134.5W,27.1246,27.5239
- ---- K:3 Z:   25
- ---- J:41 Y:   1.5S
-135.5W,27.2481,27.6518
-134.5W,27.1248,27.4892
- ---- J:42 Y:   1.167S
-135.5W,27.1293,27.51
-134.5W,27.011,27.3501
-LIST/ORDER=TXZY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TXZY /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 by 2 points (TIME-LONGITUDE-DEPTH (m)-LATITUDE)
-   10-SEP-1982 20:00,16-SEP-1982 22:00
- ---- J:41 Y:   1.5S
- ---- K:2 Z:   15
-135.5W,27.3346,27.7751
-134.5W,27.2218,27.6218
- ---- K:3 Z:   25
-135.5W,27.2481,27.6518
-134.5W,27.1248,27.4892
- ---- J:42 Y:   1.167S
- ---- K:2 Z:   15
-135.5W,27.2382,27.678
-134.5W,27.1246,27.5239
- ---- K:3 Z:   25
-135.5W,27.1293,27.51
-134.5W,27.011,27.3501
-LIST/ORDER=TYXZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TYXZ /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 by 2 points (TIME-LATITUDE-LONGITUDE-DEPTH (m))
-   10-SEP-1982 20:00,16-SEP-1982 22:00
- ---- K:2 Z:   15
- ---- I:95 X:   135.5W
-1.5S,27.3346,27.7751
-1.167S,27.2382,27.678
- ---- I:96 X:   134.5W
-1.5S,27.2218,27.6218
-1.167S,27.1246,27.5239
- ---- K:3 Z:   25
- ---- I:95 X:   135.5W
-1.5S,27.2481,27.6518
-1.167S,27.1293,27.51
- ---- I:96 X:   134.5W
-1.5S,27.1248,27.4892
-1.167S,27.011,27.3501
-LIST/ORDER=TYZX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TYZX /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 by 2 points (TIME-LATITUDE-DEPTH (m)-LONGITUDE)
-   10-SEP-1982 20:00,16-SEP-1982 22:00
- ---- I:95 X:   135.5W
- ---- K:2 Z:   15
-1.5S,27.3346,27.7751
-1.167S,27.2382,27.678
- ---- K:3 Z:   25
-1.5S,27.2481,27.6518
-1.167S,27.1293,27.51
- ---- I:96 X:   134.5W
- ---- K:2 Z:   15
-1.5S,27.2218,27.6218
-1.167S,27.1246,27.5239
- ---- K:3 Z:   25
-1.5S,27.1248,27.4892
-1.167S,27.011,27.3501
-LIST/ORDER=TZXY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TZXY /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 by 2 points (TIME-DEPTH (m)-LONGITUDE-LATITUDE)
-   10-SEP-1982 20:00,16-SEP-1982 22:00
- ---- J:41 Y:   1.5S
- ---- I:95 X:   135.5W
-15,27.3346,27.7751
-25,27.2481,27.6518
- ---- I:96 X:   134.5W
-15,27.2218,27.6218
-25,27.1248,27.4892
- ---- J:42 Y:   1.167S
- ---- I:95 X:   135.5W
-15,27.2382,27.678
-25,27.1293,27.51
- ---- I:96 X:   134.5W
-15,27.1246,27.5239
-25,27.011,27.3501
-LIST/ORDER=TZYX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TZYX /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 by 2 points (TIME-DEPTH (m)-LATITUDE-LONGITUDE)
-   10-SEP-1982 20:00,16-SEP-1982 22:00
- ---- I:95 X:   135.5W
- ---- J:41 Y:   1.5S
-15,27.3346,27.7751
-25,27.2481,27.6518
- ---- J:42 Y:   1.167S
-15,27.2382,27.678
-25,27.1293,27.51
- ---- I:96 X:   134.5W
- ---- J:41 Y:   1.5S
-15,27.2218,27.6218
-25,27.1248,27.4892
- ---- J:42 Y:   1.167S
-15,27.1246,27.5239
-25,27.011,27.3501
- 
-!XYZ
-set region/i=95:96/j=41:42/k=2:3/l=5
-go bn_comma_delimited.sub comma temp
-! bn420_comma_delimited.sub
-! 10/95 benchmark various permutations for FERRET listed output
- 
-! similar to bn200_permute except that a "format" argument can be passed
-! and the region and expression information are external
- 
-! usage:
-!	SET REGION/xxxx
-!	GO bn420_permute tab_delimited  TEMP
- 
-LOAD $2
- !-> LOAD temp
- 
-LIST/ORDER=XYZT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XYZT /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m))
-             TIME     : 10-SEP-1982 20:00
-   135.5W   ,134.5W   
- ---- K:2 Z:   15
-1.5S,27.3346,27.2218
-1.167S,27.2382,27.1246
- ---- K:3 Z:   25
-1.5S,27.2481,27.1248
-1.167S,27.1293,27.011
-LIST/ORDER=XYTZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XYTZ /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m))
-             TIME     : 10-SEP-1982 20:00
-   135.5W   ,134.5W   
- ---- K:2 Z:   15
- ---- L:5 T:   10-SEP-1982 20:00
-1.5S,27.3346,27.2218
-1.167S,27.2382,27.1246
- ---- K:3 Z:   25
- ---- L:5 T:   10-SEP-1982 20:00
-1.5S,27.2481,27.1248
-1.167S,27.1293,27.011
-LIST/ORDER=XZYT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XZYT /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 points (LONGITUDE-DEPTH (m)-LATITUDE)
-             TIME     : 10-SEP-1982 20:00
-   135.5W   ,134.5W   
- ---- J:41 Y:   1.5S
-15,27.3346,27.2218
-25,27.2481,27.1248
- ---- J:42 Y:   1.167S
-15,27.2382,27.1246
-25,27.1293,27.011
-LIST/ORDER=XZTY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XZTY /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 points (LONGITUDE-DEPTH (m)-LATITUDE)
-             TIME     : 10-SEP-1982 20:00
-   135.5W   ,134.5W   
- ---- J:41 Y:   1.5S
- ---- L:5 T:   10-SEP-1982 20:00
-15,27.3346,27.2218
-25,27.2481,27.1248
- ---- J:42 Y:   1.167S
- ---- L:5 T:   10-SEP-1982 20:00
-15,27.2382,27.1246
-25,27.1293,27.011
-LIST/ORDER=XTYZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XTYZ /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m))
-             TIME     : 10-SEP-1982 20:00
-          135.5W   ,134.5W   
- ---- K:2 Z:   15
- ---- J:41 Y:   1.5S
-10-SEP-1982 20,27.3346,27.2218
- ---- J:42 Y:   1.167S
-10-SEP-1982 20,27.2382,27.1246
- ---- K:3 Z:   25
- ---- J:41 Y:   1.5S
-10-SEP-1982 20,27.2481,27.1248
- ---- J:42 Y:   1.167S
-10-SEP-1982 20,27.1293,27.011
-LIST/ORDER=XTZY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XTZY /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 points (LONGITUDE-DEPTH (m)-LATITUDE)
-             TIME     : 10-SEP-1982 20:00
-          135.5W   ,134.5W   
- ---- J:41 Y:   1.5S
- ---- K:2 Z:   15
-10-SEP-1982 20,27.3346,27.2218
- ---- K:3 Z:   25
-10-SEP-1982 20,27.2481,27.1248
- ---- J:42 Y:   1.167S
- ---- K:2 Z:   15
-10-SEP-1982 20,27.2382,27.1246
- ---- K:3 Z:   25
-10-SEP-1982 20,27.1293,27.011
-LIST/ORDER=YXZT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YXZT /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 points (LATITUDE-LONGITUDE-DEPTH (m))
-             TIME     : 10-SEP-1982 20:00
-   1.5S   ,1.167S 
- ---- K:2 Z:   15
-135.5W,27.3346,27.2382
-134.5W,27.2218,27.1246
- ---- K:3 Z:   25
-135.5W,27.2481,27.1293
-134.5W,27.1248,27.011
-LIST/ORDER=YXTZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YXTZ /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 points (LATITUDE-LONGITUDE-DEPTH (m))
-             TIME     : 10-SEP-1982 20:00
-   1.5S   ,1.167S 
- ---- K:2 Z:   15
- ---- L:5 T:   10-SEP-1982 20:00
-135.5W,27.3346,27.2382
-134.5W,27.2218,27.1246
- ---- K:3 Z:   25
- ---- L:5 T:   10-SEP-1982 20:00
-135.5W,27.2481,27.1293
-134.5W,27.1248,27.011
-LIST/ORDER=YZXT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YZXT /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 points (LATITUDE-DEPTH (m)-LONGITUDE)
-             TIME     : 10-SEP-1982 20:00
-   1.5S   ,1.167S 
- ---- I:95 X:   135.5W
-15,27.3346,27.2382
-25,27.2481,27.1293
- ---- I:96 X:   134.5W
-15,27.2218,27.1246
-25,27.1248,27.011
-LIST/ORDER=YZTX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YZTX /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 points (LATITUDE-DEPTH (m)-LONGITUDE)
-             TIME     : 10-SEP-1982 20:00
-   1.5S   ,1.167S 
- ---- I:95 X:   135.5W
- ---- L:5 T:   10-SEP-1982 20:00
-15,27.3346,27.2382
-25,27.2481,27.1293
- ---- I:96 X:   134.5W
- ---- L:5 T:   10-SEP-1982 20:00
-15,27.2218,27.1246
-25,27.1248,27.011
-LIST/ORDER=YTXZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YTXZ /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 points (LATITUDE-LONGITUDE-DEPTH (m))
-             TIME     : 10-SEP-1982 20:00
-          1.5S   ,1.167S 
- ---- K:2 Z:   15
- ---- I:95 X:   135.5W
-10-SEP-1982 20,27.3346,27.2382
- ---- I:96 X:   134.5W
-10-SEP-1982 20,27.2218,27.1246
- ---- K:3 Z:   25
- ---- I:95 X:   135.5W
-10-SEP-1982 20,27.2481,27.1293
- ---- I:96 X:   134.5W
-10-SEP-1982 20,27.1248,27.011
-LIST/ORDER=YTZX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YTZX /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 points (LATITUDE-DEPTH (m)-LONGITUDE)
-             TIME     : 10-SEP-1982 20:00
-          1.5S   ,1.167S 
- ---- I:95 X:   135.5W
- ---- K:2 Z:   15
-10-SEP-1982 20,27.3346,27.2382
- ---- K:3 Z:   25
-10-SEP-1982 20,27.2481,27.1293
- ---- I:96 X:   134.5W
- ---- K:2 Z:   15
-10-SEP-1982 20,27.2218,27.1246
- ---- K:3 Z:   25
-10-SEP-1982 20,27.1248,27.011
-LIST/ORDER=ZXYT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZXYT /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 points (DEPTH (m)-LONGITUDE-LATITUDE)
-             TIME     : 10-SEP-1982 20:00
-   15      ,25      
- ---- J:41 Y:   1.5S
-135.5W,27.3346,27.2481
-134.5W,27.2218,27.1248
- ---- J:42 Y:   1.167S
-135.5W,27.2382,27.1293
-134.5W,27.1246,27.011
-LIST/ORDER=ZXTY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZXTY /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 points (DEPTH (m)-LONGITUDE-LATITUDE)
-             TIME     : 10-SEP-1982 20:00
-   15      ,25      
- ---- J:41 Y:   1.5S
- ---- L:5 T:   10-SEP-1982 20:00
-135.5W,27.3346,27.2481
-134.5W,27.2218,27.1248
- ---- J:42 Y:   1.167S
- ---- L:5 T:   10-SEP-1982 20:00
-135.5W,27.2382,27.1293
-134.5W,27.1246,27.011
-LIST/ORDER=ZYXT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZYXT /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 points (DEPTH (m)-LATITUDE-LONGITUDE)
-             TIME     : 10-SEP-1982 20:00
-   15      ,25      
- ---- I:95 X:   135.5W
-1.5S,27.3346,27.2481
-1.167S,27.2382,27.1293
- ---- I:96 X:   134.5W
-1.5S,27.2218,27.1248
-1.167S,27.1246,27.011
-LIST/ORDER=ZYTX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZYTX /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 points (DEPTH (m)-LATITUDE-LONGITUDE)
-             TIME     : 10-SEP-1982 20:00
-   15      ,25      
- ---- I:95 X:   135.5W
- ---- L:5 T:   10-SEP-1982 20:00
-1.5S,27.3346,27.2481
-1.167S,27.2382,27.1293
- ---- I:96 X:   134.5W
- ---- L:5 T:   10-SEP-1982 20:00
-1.5S,27.2218,27.1248
-1.167S,27.1246,27.011
-LIST/ORDER=ZTXY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZTXY /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 points (DEPTH (m)-LONGITUDE-LATITUDE)
-             TIME     : 10-SEP-1982 20:00
-          15      ,25      
- ---- J:41 Y:   1.5S
- ---- I:95 X:   135.5W
-10-SEP-1982 20,27.3346,27.2481
- ---- I:96 X:   134.5W
-10-SEP-1982 20,27.2218,27.1248
- ---- J:42 Y:   1.167S
- ---- I:95 X:   135.5W
-10-SEP-1982 20,27.2382,27.1293
- ---- I:96 X:   134.5W
-10-SEP-1982 20,27.1246,27.011
-LIST/ORDER=ZTYX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZTYX /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 points (DEPTH (m)-LATITUDE-LONGITUDE)
-             TIME     : 10-SEP-1982 20:00
-          15      ,25      
- ---- I:95 X:   135.5W
- ---- J:41 Y:   1.5S
-10-SEP-1982 20,27.3346,27.2481
- ---- J:42 Y:   1.167S
-10-SEP-1982 20,27.2382,27.1293
- ---- I:96 X:   134.5W
- ---- J:41 Y:   1.5S
-10-SEP-1982 20,27.2218,27.1248
- ---- J:42 Y:   1.167S
-10-SEP-1982 20,27.1246,27.011
-LIST/ORDER=TXYZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TXYZ /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m))
-             TIME     : 10-SEP-1982 20:00
-   10-SEP-1982 20:00
- ---- K:2 Z:   15
- ---- J:41 Y:   1.5S
-135.5W,27.3346
-134.5W,27.2218
- ---- J:42 Y:   1.167S
-135.5W,27.2382
-134.5W,27.1246
- ---- K:3 Z:   25
- ---- J:41 Y:   1.5S
-135.5W,27.2481
-134.5W,27.1248
- ---- J:42 Y:   1.167S
-135.5W,27.1293
-134.5W,27.011
-LIST/ORDER=TXZY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TXZY /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 points (LONGITUDE-DEPTH (m)-LATITUDE)
-             TIME     : 10-SEP-1982 20:00
-   10-SEP-1982 20:00
- ---- J:41 Y:   1.5S
- ---- K:2 Z:   15
-135.5W,27.3346
-134.5W,27.2218
- ---- K:3 Z:   25
-135.5W,27.2481
-134.5W,27.1248
- ---- J:42 Y:   1.167S
- ---- K:2 Z:   15
-135.5W,27.2382
-134.5W,27.1246
- ---- K:3 Z:   25
-135.5W,27.1293
-134.5W,27.011
-LIST/ORDER=TYXZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TYXZ /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 points (LATITUDE-LONGITUDE-DEPTH (m))
-             TIME     : 10-SEP-1982 20:00
-   10-SEP-1982 20:00
- ---- K:2 Z:   15
- ---- I:95 X:   135.5W
-1.5S,27.3346
-1.167S,27.2382
- ---- I:96 X:   134.5W
-1.5S,27.2218
-1.167S,27.1246
- ---- K:3 Z:   25
- ---- I:95 X:   135.5W
-1.5S,27.2481
-1.167S,27.1293
- ---- I:96 X:   134.5W
-1.5S,27.1248
-1.167S,27.011
-LIST/ORDER=TYZX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TYZX /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 points (LATITUDE-DEPTH (m)-LONGITUDE)
-             TIME     : 10-SEP-1982 20:00
-   10-SEP-1982 20:00
- ---- I:95 X:   135.5W
- ---- K:2 Z:   15
-1.5S,27.3346
-1.167S,27.2382
- ---- K:3 Z:   25
-1.5S,27.2481
-1.167S,27.1293
- ---- I:96 X:   134.5W
- ---- K:2 Z:   15
-1.5S,27.2218
-1.167S,27.1246
- ---- K:3 Z:   25
-1.5S,27.1248
-1.167S,27.011
-LIST/ORDER=TZXY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TZXY /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 points (DEPTH (m)-LONGITUDE-LATITUDE)
-             TIME     : 10-SEP-1982 20:00
-   10-SEP-1982 20:00
- ---- J:41 Y:   1.5S
- ---- I:95 X:   135.5W
-15,27.3346
-25,27.2481
- ---- I:96 X:   134.5W
-15,27.2218
-25,27.1248
- ---- J:42 Y:   1.167S
- ---- I:95 X:   135.5W
-15,27.2382
-25,27.1293
- ---- I:96 X:   134.5W
-15,27.1246
-25,27.011
-LIST/ORDER=TZYX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TZYX /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 points (DEPTH (m)-LATITUDE-LONGITUDE)
-             TIME     : 10-SEP-1982 20:00
-   10-SEP-1982 20:00
- ---- I:95 X:   135.5W
- ---- J:41 Y:   1.5S
-15,27.3346
-25,27.2481
- ---- J:42 Y:   1.167S
-15,27.2382
-25,27.1293
- ---- I:96 X:   134.5W
- ---- J:41 Y:   1.5S
-15,27.2218
-25,27.1248
- ---- J:42 Y:   1.167S
-15,27.1246
-25,27.011
- 
-!!XYT
-!set region/i=95:96/j=41:42/k=2/l=5:6
-!go bn_comma_delimited.sub comma temp
-!!XZT
-!set region/i=95:96/j=41/k=2:3/l=5:6
-!go bn_comma_delimited.sub comma temp
-!!YZT
-!set region/i=95/j=41:42/k=2:3/l=5:6
-!!go bn_comma_delimited.sub comma temp
-!XY
-set region/i=95:96/j=41:42/k=2/l=5
-go bn_comma_delimited.sub comma temp
-! bn420_comma_delimited.sub
-! 10/95 benchmark various permutations for FERRET listed output
- 
-! similar to bn200_permute except that a "format" argument can be passed
-! and the region and expression information are external
- 
-! usage:
-!	SET REGION/xxxx
-!	GO bn420_permute tab_delimited  TEMP
- 
-LOAD $2
- !-> LOAD temp
- 
-LIST/ORDER=XYZT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XYZT /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 15
-             TIME     : 10-SEP-1982 20:00
-   135.5W   ,134.5W   
-1.5S,27.3346,27.2218
-1.167S,27.2382,27.1246
-LIST/ORDER=XYTZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XYTZ /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
-             TIME     : 10-SEP-1982 20:00
-             DEPTH (m): 15
-   135.5W   ,134.5W   
-1.5S,27.3346,27.2218
-1.167S,27.2382,27.1246
-LIST/ORDER=XZYT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XZYT /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 15
-             TIME     : 10-SEP-1982 20:00
-   135.5W   ,134.5W   
- ---- J:41 Y:   1.5S
-15,27.3346,27.2218
- ---- J:42 Y:   1.167S
-15,27.2382,27.1246
-LIST/ORDER=XZTY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XZTY /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 15
-             TIME     : 10-SEP-1982 20:00
-   135.5W   ,134.5W   
- ---- J:41 Y:   1.5S
- ---- L:5 T:   10-SEP-1982 20:00
-15,27.3346,27.2218
- ---- J:42 Y:   1.167S
- ---- L:5 T:   10-SEP-1982 20:00
-15,27.2382,27.1246
-LIST/ORDER=XTYZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XTYZ /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
-             TIME     : 10-SEP-1982 20:00
-             DEPTH (m): 15
-          135.5W   ,134.5W   
- ---- J:41 Y:   1.5S
-10-SEP-1982 20,27.3346,27.2218
- ---- J:42 Y:   1.167S
-10-SEP-1982 20,27.2382,27.1246
-LIST/ORDER=XTZY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XTZY /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
-             TIME     : 10-SEP-1982 20:00
-             DEPTH (m): 15
-          135.5W   ,134.5W   
- ---- J:41 Y:   1.5S
- ---- K:2 Z:   15
-10-SEP-1982 20,27.3346,27.2218
- ---- J:42 Y:   1.167S
- ---- K:2 Z:   15
-10-SEP-1982 20,27.2382,27.1246
-LIST/ORDER=YXZT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YXZT /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (LATITUDE-LONGITUDE)
-             DEPTH (m): 15
-             TIME     : 10-SEP-1982 20:00
-   1.5S   ,1.167S 
-135.5W,27.3346,27.2382
-134.5W,27.2218,27.1246
-LIST/ORDER=YXTZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YXTZ /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (LATITUDE-LONGITUDE)
-             TIME     : 10-SEP-1982 20:00
-             DEPTH (m): 15
-   1.5S   ,1.167S 
-135.5W,27.3346,27.2382
-134.5W,27.2218,27.1246
-LIST/ORDER=YZXT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YZXT /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (LATITUDE-LONGITUDE)
-             DEPTH (m): 15
-             TIME     : 10-SEP-1982 20:00
-   1.5S   ,1.167S 
- ---- I:95 X:   135.5W
-15,27.3346,27.2382
- ---- I:96 X:   134.5W
-15,27.2218,27.1246
-LIST/ORDER=YZTX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YZTX /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (LATITUDE-LONGITUDE)
-             DEPTH (m): 15
-             TIME     : 10-SEP-1982 20:00
-   1.5S   ,1.167S 
- ---- I:95 X:   135.5W
- ---- L:5 T:   10-SEP-1982 20:00
-15,27.3346,27.2382
- ---- I:96 X:   134.5W
- ---- L:5 T:   10-SEP-1982 20:00
-15,27.2218,27.1246
-LIST/ORDER=YTXZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YTXZ /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (LATITUDE-LONGITUDE)
-             TIME     : 10-SEP-1982 20:00
-             DEPTH (m): 15
-          1.5S   ,1.167S 
- ---- I:95 X:   135.5W
-10-SEP-1982 20,27.3346,27.2382
- ---- I:96 X:   134.5W
-10-SEP-1982 20,27.2218,27.1246
-LIST/ORDER=YTZX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YTZX /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (LATITUDE-LONGITUDE)
-             TIME     : 10-SEP-1982 20:00
-             DEPTH (m): 15
-          1.5S   ,1.167S 
- ---- I:95 X:   135.5W
- ---- K:2 Z:   15
-10-SEP-1982 20,27.3346,27.2382
- ---- I:96 X:   134.5W
- ---- K:2 Z:   15
-10-SEP-1982 20,27.2218,27.1246
-LIST/ORDER=ZXYT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZXYT /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 15
-             TIME     : 10-SEP-1982 20:00
-   15      
- ---- J:41 Y:   1.5S
-135.5W,27.3346
-134.5W,27.2218
- ---- J:42 Y:   1.167S
-135.5W,27.2382
-134.5W,27.1246
-LIST/ORDER=ZXTY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZXTY /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 15
-             TIME     : 10-SEP-1982 20:00
-   15      
- ---- J:41 Y:   1.5S
- ---- L:5 T:   10-SEP-1982 20:00
-135.5W,27.3346
-134.5W,27.2218
- ---- J:42 Y:   1.167S
- ---- L:5 T:   10-SEP-1982 20:00
-135.5W,27.2382
-134.5W,27.1246
-LIST/ORDER=ZYXT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZYXT /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (LATITUDE-LONGITUDE)
-             DEPTH (m): 15
-             TIME     : 10-SEP-1982 20:00
-   15      
- ---- I:95 X:   135.5W
-1.5S,27.3346
-1.167S,27.2382
- ---- I:96 X:   134.5W
-1.5S,27.2218
-1.167S,27.1246
-LIST/ORDER=ZYTX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZYTX /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (LATITUDE-LONGITUDE)
-             DEPTH (m): 15
-             TIME     : 10-SEP-1982 20:00
-   15      
- ---- I:95 X:   135.5W
- ---- L:5 T:   10-SEP-1982 20:00
-1.5S,27.3346
-1.167S,27.2382
- ---- I:96 X:   134.5W
- ---- L:5 T:   10-SEP-1982 20:00
-1.5S,27.2218
-1.167S,27.1246
-LIST/ORDER=ZTXY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZTXY /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 15
-             TIME     : 10-SEP-1982 20:00
-          15      
- ---- J:41 Y:   1.5S
- ---- I:95 X:   135.5W
-10-SEP-1982 20,27.3346
- ---- I:96 X:   134.5W
-10-SEP-1982 20,27.2218
- ---- J:42 Y:   1.167S
- ---- I:95 X:   135.5W
-10-SEP-1982 20,27.2382
- ---- I:96 X:   134.5W
-10-SEP-1982 20,27.1246
-LIST/ORDER=ZTYX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZTYX /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (LATITUDE-LONGITUDE)
-             DEPTH (m): 15
-             TIME     : 10-SEP-1982 20:00
-          15      
- ---- I:95 X:   135.5W
- ---- J:41 Y:   1.5S
-10-SEP-1982 20,27.3346
- ---- J:42 Y:   1.167S
-10-SEP-1982 20,27.2382
- ---- I:96 X:   134.5W
- ---- J:41 Y:   1.5S
-10-SEP-1982 20,27.2218
- ---- J:42 Y:   1.167S
-10-SEP-1982 20,27.1246
-LIST/ORDER=TXYZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TXYZ /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
-             TIME     : 10-SEP-1982 20:00
-             DEPTH (m): 15
-   10-SEP-1982 20:00
- ---- J:41 Y:   1.5S
-135.5W,27.3346
-134.5W,27.2218
- ---- J:42 Y:   1.167S
-135.5W,27.2382
-134.5W,27.1246
-LIST/ORDER=TXZY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TXZY /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
-             TIME     : 10-SEP-1982 20:00
-             DEPTH (m): 15
-   10-SEP-1982 20:00
- ---- J:41 Y:   1.5S
- ---- K:2 Z:   15
-135.5W,27.3346
-134.5W,27.2218
- ---- J:42 Y:   1.167S
- ---- K:2 Z:   15
-135.5W,27.2382
-134.5W,27.1246
-LIST/ORDER=TYXZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TYXZ /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (LATITUDE-LONGITUDE)
-             TIME     : 10-SEP-1982 20:00
-             DEPTH (m): 15
-   10-SEP-1982 20:00
- ---- I:95 X:   135.5W
-1.5S,27.3346
-1.167S,27.2382
- ---- I:96 X:   134.5W
-1.5S,27.2218
-1.167S,27.1246
-LIST/ORDER=TYZX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TYZX /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (LATITUDE-LONGITUDE)
-             TIME     : 10-SEP-1982 20:00
-             DEPTH (m): 15
-   10-SEP-1982 20:00
- ---- I:95 X:   135.5W
- ---- K:2 Z:   15
-1.5S,27.3346
-1.167S,27.2382
- ---- I:96 X:   134.5W
- ---- K:2 Z:   15
-1.5S,27.2218
-1.167S,27.1246
-LIST/ORDER=TZXY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TZXY /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
-             TIME     : 10-SEP-1982 20:00
-             DEPTH (m): 15
-   10-SEP-1982 20:00
- ---- J:41 Y:   1.5S
- ---- I:95 X:   135.5W
-15,27.3346
- ---- I:96 X:   134.5W
-15,27.2218
- ---- J:42 Y:   1.167S
- ---- I:95 X:   135.5W
-15,27.2382
- ---- I:96 X:   134.5W
-15,27.1246
-LIST/ORDER=TZYX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TZYX /FORMAT=comma temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (LATITUDE-LONGITUDE)
-             TIME     : 10-SEP-1982 20:00
-             DEPTH (m): 15
-   10-SEP-1982 20:00
- ---- I:95 X:   135.5W
- ---- J:41 Y:   1.5S
-15,27.3346
- ---- J:42 Y:   1.167S
-15,27.2382
- ---- I:96 X:   134.5W
- ---- J:41 Y:   1.5S
-15,27.2218
- ---- J:42 Y:   1.167S
-15,27.1246
- 
-!XZ
-set region/i=95:96/j=41/k=2:3/l=5
-LIST/FORMAT=comma/precision=5/order=xz temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (LONGITUDE-DEPTH (m))
-             LATITUDE : 1.5S
-             TIME     : 10-SEP-1982 20:00
-   135.5W   ,134.5W   
-15,27.335,27.222
-25,27.248,27.125
-LIST/FORMAT=comma/precision=5/order=zx temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (DEPTH (m)-LONGITUDE)
-             LATITUDE : 1.5S
-             TIME     : 10-SEP-1982 20:00
-   15      ,25      
-135.5W,27.335,27.248
-134.5W,27.222,27.125
-!XT
-set region/i=95:96/j=41/k=2/l=5:6
-LIST/FORMAT=comma/precision=5/order=xt temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (LONGITUDE-TIME)
-             LATITUDE : 1.5S
-             DEPTH (m): 15
-          135.5W   ,134.5W   
-10-SEP-1982 20,27.335,27.222
-16-SEP-1982 22,27.775,27.622
-LIST/FORMAT=comma/precision=5/order=tx temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (TIME-LONGITUDE)
-             LATITUDE : 1.5S
-             DEPTH (m): 15
-   10-SEP-1982 20:00,16-SEP-1982 22:00
-135.5W,27.335,27.775
-134.5W,27.222,27.622
-!YZ
-set region/i=95/j=41:42/k=2:3/l=5
-LIST/FORMAT=comma/precision=5/order=yz temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (LATITUDE-DEPTH (m))
-             LONGITUDE: 135.5W
-             TIME     : 10-SEP-1982 20:00
-   1.5S   ,1.167S 
-15,27.335,27.238
-25,27.248,27.129
-LIST/FORMAT=comma/precision=5/order=zy temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (DEPTH (m)-LATITUDE)
-             LONGITUDE: 135.5W
-             TIME     : 10-SEP-1982 20:00
-   15      ,25      
-1.5S,27.335,27.248
-1.167S,27.238,27.129
-!YT
-set region/i=95/j=41:42/k=2/l=5:6
-LIST/FORMAT=comma/precision=5/order=yt temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (LATITUDE-TIME)
-             LONGITUDE: 135.5W
-             DEPTH (m): 15
-          1.5S   ,1.167S 
-10-SEP-1982 20,27.335,27.238
-16-SEP-1982 22,27.775,27.678
-LIST/FORMAT=comma/precision=5/order=ty temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (TIME-LATITUDE)
-             LONGITUDE: 135.5W
-             DEPTH (m): 15
-   10-SEP-1982 20:00,16-SEP-1982 22:00
-1.5S,27.335,27.775
-1.167S,27.238,27.678
-!ZT
-set region/i=95/j=41/k=2:3/l=5:6
-LIST/FORMAT=comma/precision=5/order=zt temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (DEPTH (m)-TIME)
-             LONGITUDE: 135.5W
-             LATITUDE : 1.5S
-          15      ,25      
-10-SEP-1982 20,27.335,27.248
-16-SEP-1982 22,27.775,27.652
-LIST/FORMAT=comma/precision=5/order=tz temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (TIME-DEPTH (m))
-             LONGITUDE: 135.5W
-             LATITUDE : 1.5S
-   10-SEP-1982 20:00,16-SEP-1982 22:00
-15,27.335,27.775
-25,27.248,27.652
-!X
-set region/i=95:96/j=41/k=2/l=5
-LIST/FORMAT=comma/precision=5/order=x temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 points (LONGITUDE)
-             LATITUDE : 1.5S
-             DEPTH (m): 15
-             TIME     : 10-SEP-1982 20:00
-   135.5W   ,134.5W   
-row 1,27.335,27.222
-LIST/FORMAT=comma/precision=5/order=y temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 points (LONGITUDE)
-             LATITUDE : 1.5S
-             DEPTH (m): 15
-             TIME     : 10-SEP-1982 20:00
-   1.5S   
-135.5W,27.335
-134.5W,27.222
-!Y
-set region/i=95/j=41:42/k=2/l=5
-LIST/FORMAT=comma/precision=5/order=y temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 points (LATITUDE)
-             LONGITUDE: 135.5W
-             DEPTH (m): 15
-             TIME     : 10-SEP-1982 20:00
-   1.5S   ,1.167S 
-row 1,27.335,27.238
-LIST/FORMAT=comma/precision=5/order=x temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 points (LATITUDE)
-             LONGITUDE: 135.5W
-             DEPTH (m): 15
-             TIME     : 10-SEP-1982 20:00
-   135.5W   
-1.5S,27.335
-1.167S,27.238
-!Z
-set region/i=95/j=41/k=2:3/l=5
-LIST/FORMAT=comma/precision=5/order=z temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 points (DEPTH (m))
-             LONGITUDE: 135.5W
-             LATITUDE : 1.5S
-             TIME     : 10-SEP-1982 20:00
-   15      ,25      
-row 1,27.335,27.248
-LIST/FORMAT=comma/precision=5/order=x temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 points (DEPTH (m))
-             LONGITUDE: 135.5W
-             LATITUDE : 1.5S
-             TIME     : 10-SEP-1982 20:00
-   135.5W   
- ---- K:2 Z:   15
-1.5S,27.335
- ---- K:3 Z:   25
-1.5S,27.248
-!T
-set region/i=95/j=41/k=2/l=5:6
-LIST/FORMAT=comma/precision=5/order=t temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 points (TIME)
-             LONGITUDE: 135.5W
-             LATITUDE : 1.5S
-             DEPTH (m): 15
-   10-SEP-1982 20:00,16-SEP-1982 22:00
-row 1,27.335,27.775
-LIST/FORMAT=comma/precision=5/order=x temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 points (TIME)
-             LONGITUDE: 135.5W
-             LATITUDE : 1.5S
-             DEPTH (m): 15
-   135.5W   
- ---- L:5 T:   10-SEP-1982 20:00
- ---- K:2 Z:   15
-1.5S,27.335
- ---- L:6 T:   16-SEP-1982 22:00
- ---- K:2 Z:   15
-1.5S,27.775
- 
-! tab-delimited test
-set region/i=95:96/j=41:42/k=2:3/l=5:6
-LIST/FORMAT=tab temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
-  	135.5W   	134.5W   
- ---- L:5 T:   10-SEP-1982 20:00
- ---- K:2 Z:   15
-1.5S	27.3346	27.2218
-1.167S	27.2382	27.1246
- ---- K:3 Z:   25
-1.5S	27.2481	27.1248
-1.167S	27.1293	27.011
- ---- L:6 T:   16-SEP-1982 22:00
- ---- K:2 Z:   15
-1.5S	27.7751	27.6218
-1.167S	27.678	27.5239
- ---- K:3 Z:   25
-1.5S	27.6518	27.4892
-1.167S	27.51	27.3501
- 
-! big number formatting test
-set region/i=95:96/j=41:42/k=2/l=5
-LIST/FORMAT=comma/precision=1 randu(i)*temp*1e7
-             VARIABLE : RANDU(I)*TEMP*1E7
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 15
-             TIME     : 10-SEP-1982 20:00
-   135.5W   ,134.5W   
-1.5S,2.E+08,2.E+08
-1.167S,2.E+08,2.E+08
-LIST/FORMAT=comma/precision=9 randu(i)*temp*1e7
-             VARIABLE : RANDU(I)*TEMP*1E7
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
-             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
- 
-! small number formatting test
-set region/i=95:96/j=41:42/k=2/l=5
-LIST/FORMAT=comma/precision=1 randu(i)*temp*1e-7
-             VARIABLE : RANDU(I)*TEMP*1E-7
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 15
-             TIME     : 10-SEP-1982 20:00
-   135.5W   ,134.5W   
-1.5S,0.000002,0.000002
-1.167S,0.000002,0.000002
-LIST/FORMAT=comma/precision=9 randu(i)*temp*1e-7
-             VARIABLE : RANDU(I)*TEMP*1E-7
-             FILENAME : gt4d011.cdf
-             BAD FLAG : -1.E+34       
-             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 15
-             TIME     : 10-SEP-1982 20:00
-   135.5W   ,134.5W   
-1.5S,0.00000166750845,0.00000202088412
-1.167S,0.00000166162833,0.00000201366579
- 
-! multiple variable test
-set region/i=95:96/j=41:42/k=2/l=5
-LIST/FORMAT=comma/precision=5 u,v
-             DATA SET: ./gt4d011.cdf
-             LONGITUDE: 135.5W to 133.5W
-             LATITUDE: 1.5S to 0.833S
-             DEPTH (m): 15
-             TIME: 10-SEP-1982 20:00
- Column  1: U is ZONAL VELOCITY (cm/sec)   BAD FLAG : -1.E+34
- Column  2: V is MERIDIONAL VELOCITY (cm/sec)   BAD FLAG : -1.E+34
-           U,V
- ---- J:41 Y:   1.333S
-135W   / 95:41.597,-1.5366  
-134W   / 96:39.163,-1.7415  
- ---- J:42 Y:   1S
-135W   / 95:42.39,1.4695  
-134W   / 96:40.019,1.5182  
- 
-! abstract expression test
-set region/i=1:5/j=1:3
-LIST/FORMAT=comma/precision=5 10*j+i
-             VARIABLE : 10*J+I
-             BAD FLAG : -1.E+34       
-             SUBSET   : 5 by 3 points (X-Y)
-   1     ,2     ,3     ,4     ,5     
-1,11,12,13,14,15
-2,21,22,23,24,25
-3,31,32,33,34,35
- 
-GO bn_reset
-cancel mode verify
-GO bn_dynamic_grids	! added 9/27/95, V420 ->V491 4/98
-! bn420_dynamic_grids
-! 9/95-9/11/95 - test the creation, destruction, and use of dynamic grids
-! 2/96 - added GX=lo:hi:delta notation
-! 4/98 *sh* changes once again to confine_axis -- earlier trapped error is once
-!		again an error
-! V500beta1.1 5/26/99 *kob* - As of v500beta1.1, there is a modification to
-!			      tm_world_recur.c which fixes a previous problem
-!		 	      w/ implicit strides on an underlying irregular grid.
-!			      This caused numerical differences in the output benchmark
-!			      log files when compared to pre beta5001.1 logs.  The
-!			      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.
- 
-! deliberate dynamic grid errors
- 
-can mode diag
- 
-use gtsa056_1
- 
-set region/l=1/k=1/i=101:105/j=46:50
- 
-! what the implicit grids look like
-load temp[gx=u]
-show grid/dynamic
-Dynamic grids:
-    GRID (G003)                          use count:   1
- 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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
- 
- 
-set mode ignore_errors
- 
-list temp[gx=noexist]		! err during get_context_mods
-show grid/dynamic
-Dynamic grids:
-    no implicit grids
-Dynamic axes:
-    no implicit axes
- 
-list temp[gx=u,p=noexist]	! err during get_context_mods
-show grid/dynamic
-Dynamic grids:
-    no implicit grids
-Dynamic axes:
-    no implicit axes
- 
-! new error checks 2/96
-list temp[gx=130e:80w:10,x=160e:160w]	! err during get_context_mods
-list temp[gx=130e:80w:10,i=2:5]		! err during get_context_mods
-list temp[i=2:5,gx=130e:80w:10]		! err during get_context_mods
-list temp[gx=130e:80w]			! err during get_context_mods
- 
-list temp[gx=u]	+ noexist 	! err during is_algebra
-show grid/dynamic
-Dynamic grids:
-    no implicit grids
-Dynamic axes:
-    no implicit axes
- 
-list temp[gx=u,k=30]		! err during get_var_context
-show grid/dynamic
-Dynamic grids:
-    no implicit grids
-Dynamic axes:
-    no implicit axes
- 
-list temp[gx=u,k=20]		! err during read
-show grid/dynamic
-Dynamic grids:
-    GRID (G003)                          use count:   1
- 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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
- 
-list temp[gx=psyu]		! err during get_context_grid - axis mismatch
-show grid/dynamic
-Dynamic grids:
-    no implicit grids
-Dynamic axes:
-    no implicit axes
- 
-list/i=3:6 X[gx=PSYT]		! same err but on pseudo-variable
-show grid/dynamic
-Dynamic grids:
-    no implicit grids
-Dynamic axes:
-    no implicit axes
- 
-! now similar error tests but nested one level down on stack
- 
-let a = u
-list temp[gx=a]			! uvar for grid name
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: 1 deg on X
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-               129W     128W     127W     126W     125W    
-               101      102      103      104      105
- 1.5N  / 50:  24.4391  24.2803  24.2283  24.3266  24.6189
- 1.17N / 49:  24.2444  24.0991  24.0441  24.1235  24.3692
- 0.83N / 48:  24.0779  23.9440  23.8736  23.9176  24.1125
- 0.5N  / 47:  23.9588  23.8406  23.7576  23.7500  23.8696
- 0.17N / 46:  23.9009  23.7946  23.7029  23.6527  23.6934
-show grid/dynamic
-Dynamic grids:
-    GRID (G003)                          use count:   1
- 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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
- 
-let  tu = temp[gx=noexist]
-list tu				! err during get_context_mods
-show grid/dynamic
-Dynamic grids:
-    no implicit grids
-Dynamic axes:
-    no implicit axes
- 
-let  tu = temp[gx=u,p=noexist]
-list tu				! err during get_context_mods
-show grid/dynamic
-Dynamic grids:
-    no implicit grids
-Dynamic axes:
-    no implicit axes
- 
-let  tu = temp[gx=u] + noexist
-list tu			 	! err during is_algebra
-show grid/dynamic
-Dynamic grids:
-    no implicit grids
-Dynamic axes:
-    no implicit axes
- 
-let  tu = temp[gx=u,k=30]
-list tu				! err during get_var_context
-show grid/dynamic
-Dynamic grids:
-    no implicit grids
-Dynamic axes:
-    no implicit axes
- 
-let  tu = temp[gx=u,k=20]
-list tu				! err during read
-show grid/dynamic
-Dynamic grids:
-    GRID (G003)                          use count:   2
- name       axis              # pts   start                end
- PSXU      LONGITUDE          160mr   131E                 70W
- PSYT      LATITUDE           100 i   28.836S              48.568N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
- 
-let  tu = temp[gx=psyu]
-list tu				! err during get_context_grid - axis mismatch
-show grid/dynamic
-Dynamic grids:
-    no implicit grids
-Dynamic axes:
-    no implicit axes
- 
-define axis/z=5:15/npoints=999999/unit=meters/depth z999999
- 
-!    SET MEM smaller to make sure to get the intended error,
-!    else we list huge amount of adata
- 
-let save_mem = ($ferret_memory)
- !-> DEFINE VARIABLE save_mem = 25.6
-set mem/siz = 10
- 
-list temp[gz=z999999,z=5:15]	! err during regrid
-show grid/dynamic
-Dynamic grids:
-    GRID (G003)                          use count:   1
- name       axis              # pts   start                end
- PSXT      LONGITUDE          160mr   130.5E               70.5W
- PSYT      LATITUDE           100 i   28.836S              48.568N
- Z999999   DEPTH (m)       999999 r-  5                    15
- TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
-set mem/siz=`save_mem`
- !-> set mem/siz=25.6
- 
-shade 1/0 * temp[gx=u]		! err during plot
-show grid/dynamic
-Dynamic grids:
-    GRID (G003)                          use count:   1
- 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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
- 
-set mode/last ignore
- 
-! =================================
- 
-! basic implicit grid accesses
-list temp[gx=psxu]
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: 1 deg on X
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-               129W     128W     127W     126W     125W    
-               101      102      103      104      105
- 1.5N  / 50:  24.4391  24.2803  24.2283  24.3266  24.6189
- 1.17N / 49:  24.2444  24.0991  24.0441  24.1235  24.3692
- 0.83N / 48:  24.0779  23.9440  23.8736  23.9176  24.1125
- 0.5N  / 47:  23.9588  23.8406  23.7576  23.7500  23.8696
- 0.17N / 46:  23.9009  23.7946  23.7029  23.6527  23.6934
-show grid/dyn
-Dynamic grids:
-    GRID (G003)                          use count:   1
- 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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
- 
-list temp[gy=psyu]
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: on Y
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-               129.5W   128.5W   127.5W   126.5W   125.5W  
-               101      102      103      104      105
- 1.67N / 50:  24.6561  24.4277  24.3118  24.3162  24.5191
- 1.33N / 49:  24.4396  24.2439  24.1355  24.1369  24.3131
- 1N    / 48:  24.2464  24.0759  23.9672  23.9505  24.0906
- 0.67N / 47:  24.0904  23.9463  23.8383  23.7928  23.8749
- 0.33N / 46:  23.9899  23.8698  23.7654  23.6951  23.7076
- 
-list temp[gx=u]
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: 1 deg on X
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-               129W     128W     127W     126W     125W    
-               101      102      103      104      105
- 1.5N  / 50:  24.4391  24.2803  24.2283  24.3266  24.6189
- 1.17N / 49:  24.2444  24.0991  24.0441  24.1235  24.3692
- 0.83N / 48:  24.0779  23.9440  23.8736  23.9176  24.1125
- 0.5N  / 47:  23.9588  23.8406  23.7576  23.7500  23.8696
- 0.17N / 46:  23.9009  23.7946  23.7029  23.6527  23.6934
-show grid/dyn
-Dynamic grids:
-    GRID (G003)                          use count:   1
- 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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
- 
-list temp[gx=w]
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-               129.5W   128.5W   127.5W   126.5W   125.5W  
-               101      102      103      104      105
- 1.5N  / 50:  24.5431  24.3351  24.2254  24.2312  24.4219
- 1.17N / 49:  24.3362  24.1527  24.0455  24.0427  24.2042
- 0.83N / 48:  24.1567  23.9991  23.8888  23.8583  23.9770
- 0.5N  / 47:  24.0242  23.8934  23.7879  23.7273  23.7728
- 0.17N / 46:  23.9556  23.8461  23.7430  23.6629  23.6425
- 
-list  temp[gx=psxu] + 5
-             VARIABLE : TEMP[GX=PSXU] + 5
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-               129W     128W     127W     126W     125W    
-               101      102      103      104      105
- 1.5N  / 50:  29.4391  29.2803  29.2283  29.3266  29.6189
- 1.17N / 49:  29.2444  29.0991  29.0441  29.1235  29.3692
- 0.83N / 48:  29.0779  28.9440  28.8736  28.9176  29.1125
- 0.5N  / 47:  28.9588  28.8406  28.7576  28.7500  28.8696
- 0.17N / 46:  28.9009  28.7946  28.7029  28.6527  28.6934
-show grid/dyn
-Dynamic grids:
-    GRID (G003)                          use count:   1
- 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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
- 
-list  5 + temp[gx=psxu]
-             VARIABLE : 5 + TEMP[GX=PSXU]
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-               129W     128W     127W     126W     125W    
-               101      102      103      104      105
- 1.5N  / 50:  29.4391  29.2803  29.2283  29.3266  29.6189
- 1.17N / 49:  29.2444  29.0991  29.0441  29.1235  29.3692
- 0.83N / 48:  29.0779  28.9440  28.8736  28.9176  29.1125
- 0.5N  / 47:  28.9588  28.8406  28.7576  28.7500  28.8696
- 0.17N / 46:  28.9009  28.7946  28.7029  28.6527  28.6934
-show grid/dyn
-Dynamic grids:
-    GRID (G003)                          use count:   1
- 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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
- 
-let tu = temp[gx=psxu]
-list tu
-             VARIABLE : TEMP[GX=PSXU]
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-               129W     128W     127W     126W     125W    
-               101      102      103      104      105
- 1.5N  / 50:  24.4391  24.2803  24.2283  24.3266  24.6189
- 1.17N / 49:  24.2444  24.0991  24.0441  24.1235  24.3692
- 0.83N / 48:  24.0779  23.9440  23.8736  23.9176  24.1125
- 0.5N  / 47:  23.9588  23.8406  23.7576  23.7500  23.8696
- 0.17N / 46:  23.9009  23.7946  23.7029  23.6527  23.6934
-show grid/dyn
-Dynamic grids:
-    GRID (G003)                          use count:   2
- name       axis              # pts   start                end
- PSXU      LONGITUDE          160mr   131E                 70W
- PSYT      LATITUDE           100 i   28.836S              48.568N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
-show grid tu
-    GRID (G003)
- 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
- normal    E
- normal    F
- 
-let tu = temp[gx=psxu] + 5
-list tu
-             VARIABLE : TEMP[GX=PSXU] + 5
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-               129W     128W     127W     126W     125W    
-               101      102      103      104      105
- 1.5N  / 50:  29.4391  29.2803  29.2283  29.3266  29.6189
- 1.17N / 49:  29.2444  29.0991  29.0441  29.1235  29.3692
- 0.83N / 48:  29.0779  28.9440  28.8736  28.9176  29.1125
- 0.5N  / 47:  28.9588  28.8406  28.7576  28.7500  28.8696
- 0.17N / 46:  28.9009  28.7946  28.7029  28.6527  28.6934
-show grid/dyn
-Dynamic grids:
-    GRID (G003)                          use count:   2
- name       axis              # pts   start                end
- PSXU      LONGITUDE          160mr   131E                 70W
- PSYT      LATITUDE           100 i   28.836S              48.568N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
- 
- 
-! implicit grid conformability
-set reg/x=180:175w/y=0:2n/z=0/l=1
-list taux[g=temp]		! grid to temp w/out Z axis
-             VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
-                        regrid: 1 deg on X, on Y, 73 hour on T
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 7 points (LONGITUDE-LATITUDE)
-             TIME     : 15-JAN-1982 14:00
-                179.5W    178.5W    177.5W    176.5W    175.5W  
-                 51        52        53        54        55
- 1.83N / 51: -0.627987 -0.652220 -0.659763 -0.663230 -0.662623
- 1.5N  / 50: -0.631590 -0.653915 -0.653717 -0.650547 -0.644405
- 1.17N / 49: -0.635168 -0.655610 -0.647673 -0.637865 -0.626188
- 0.83N / 48: -0.627037 -0.647150 -0.637065 -0.626707 -0.616078
- 0.5N  / 47: -0.607180 -0.628495 -0.621847 -0.617047 -0.614073
- 0.17N / 46: -0.587298 -0.609840 -0.606630 -0.607388 -0.612068
- 0.17S / 45: -0.567438 -0.591208 -0.591415 -0.597708 -0.610065
-list temp[g=taux]		! grid to taux w/ Z axis (same grid as "U")
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: 1 deg on X, on Y, 73 hour on T
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 7 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 0 (interpolated)
-             TIME     : 15-JAN-1982 14:00
-                180E    179W     178W     177W     176W     175W    
-                50       51       52       53       54       55
- 2N    / 51:  27.5799  27.5356  27.4992  27.4507  27.3693  27.2712
- 1.67N / 50:  27.6149  27.5639  27.5186  27.4671  27.3903  27.2903
- 1.33N / 49:  27.6580  27.6003  27.5494  27.4926  27.4148  27.3150
- 1N    / 48:  27.7046  27.6371  27.5806  27.5195  27.4400  27.3410
- 0.67N / 47:  27.7530  27.6753  27.6127  27.5468  27.4642  27.3648
- 0.33N / 46:  27.8004  27.7159  27.6494  27.5789  27.4919  27.3900
- 0     / 45:  27.8480  27.7622  27.6962  27.6232  27.5320  27.4267
-list temp[gx=taux,gy=taux]
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: U
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 7 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 0 (interpolated)
-             TIME     : 15-JAN-1982 14:00
-                180E    179W     178W     177W     176W     175W    
-                50       51       52       53       54       55
- 2N    / 51:  27.5799  27.5356  27.4992  27.4507  27.3693  27.2712
- 1.67N / 50:  27.6149  27.5639  27.5186  27.4671  27.3903  27.2903
- 1.33N / 49:  27.6580  27.6003  27.5494  27.4926  27.4148  27.3150
- 1N    / 48:  27.7046  27.6371  27.5806  27.5195  27.4400  27.3410
- 0.67N / 47:  27.7530  27.6753  27.6127  27.5468  27.4642  27.3648
- 0.33N / 46:  27.8004  27.7159  27.6494  27.5789  27.4919  27.3900
- 0     / 45:  27.8480  27.7622  27.6962  27.6232  27.5320  27.4267
-list temp[gx=taux]		! X only
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: 1 deg on X
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 7 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 0 (interpolated)
-             TIME     : 15-JAN-1982 14:00
-                180E    179W     178W     177W     176W     175W    
-                50       51       52       53       54       55
- 1.83N / 51:  27.5946  27.5458  27.5038  27.4555  27.3787  27.2791
- 1.5N  / 50:  27.6353  27.5819  27.5333  27.4787  27.4018  27.3015
- 1.17N / 49:  27.6807  27.6187  27.5654  27.5064  27.4279  27.3285
- 0.83N / 48:  27.7285  27.6555  27.5958  27.5327  27.4522  27.3536
- 0.5N  / 47:  27.7775  27.6952  27.6296  27.5610  27.4762  27.3760
- 0.17N / 46:  27.8234  27.7366  27.6691  27.5969  27.5077  27.4040
- 0.17S / 45:  27.8727  27.7878  27.7232  27.6494  27.5563  27.4494
-show grid/dynamic
-Dynamic grids:
-    GRID (G003)                          use count:   2
- name       axis              # pts   start                end
- PSXU      LONGITUDE          160mr   131E                 70W
- PSYT      LATITUDE           100 i   28.836S              48.568N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
- 
-! regridding between grids with mutually exclusive axes
-cancel region
-define grid/y=ps3dt gy
-define grid/x=ps3dt 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
- Column  1: A is X[G=GX]
- Column  2: A is X[G=GX]
-                  A      A
-130.5E / 1:  130.500  130.500
-131.5E / 2:  131.500  131.500
-132.5E / 3:  132.500  132.500
-133.5E / 4:  133.500  133.500
- 
- 
-!!!!!!!!!!!!!!!!!!!!!!!!
-! pseudo-variables
-set data gtsa056_1
- 
-list/i=3:6 X		! abstract
-             VARIABLE : X
-                        axis ABSTRACT
-             SUBSET   : 4 points (X)
- 3   / 3:  3.00000
- 4   / 4:  4.00000
- 5   / 5:  5.00000
- 6   / 6:  6.00000
-list/i=3:6 X[g=u]	! PS3DU
-             VARIABLE : X
-                        axis PSXU
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 4 points (LONGITUDE)
- 133E   / 3:  133.000
- 134E   / 4:  134.000
- 135E   / 5:  135.000
- 136E   / 6:  136.000
-list/i=3:6 X[gx=u]	! PS3DU
-             VARIABLE : X
-                        axis PSXU
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 4 points (LONGITUDE)
- 133E   / 3:  133.000
- 134E   / 4:  134.000
- 135E   / 5:  135.000
- 136E   / 6:  136.000
-list/i=3:6 X[gx=PSXT]	! PS3DT
-             VARIABLE : X
-                        axis PSXT
-             SUBSET   : 4 points (LONGITUDE)
- 132.5E / 3:  132.500
- 133.5E / 4:  133.500
- 134.5E / 5:  134.500
- 135.5E / 6:  135.500
- 
-let ax = x
-list/i=3:6 ax		! abstract
-             VARIABLE : X
-             SUBSET   : 4 points (X)
- 3   / 3:  3.00000
- 4   / 4:  4.00000
- 5   / 5:  5.00000
- 6   / 6:  6.00000
-let ax = X[g=u]
-list/i=3:6 ax		! PS3DU
-             VARIABLE : X[G=U]
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 4 points (LONGITUDE)
- 133E   / 3:  133.000
- 134E   / 4:  134.000
- 135E   / 5:  135.000
- 136E   / 6:  136.000
-let ax = X[gx=u]
-list/i=3:6 ax		! PS3DU
-             VARIABLE : X[GX=U]
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 4 points (LONGITUDE)
- 133E   / 3:  133.000
- 134E   / 4:  134.000
- 135E   / 5:  135.000
- 136E   / 6:  136.000
-let ax = X[gx=PSXT]
-list/i=3:6 ax		! PS3DT
-             VARIABLE : X[GX=PSXT]
-             SUBSET   : 4 points (LONGITUDE)
- 132.5E / 3:  132.500
- 133.5E / 4:  133.500
- 134.5E / 5:  134.500
- 135.5E / 6:  135.500
-show grid/dyn
-Dynamic grids:
-    no implicit grids
-Dynamic axes:
-    no implicit axes
- 
-!!!!!!!!!!!!!!!!!!!!!!!!
-! dynamic axes
-! * * * dynamic generation of pseudo-variables * * *
-list x[x=.1:1:.1]			! dynamic abstract
-             VARIABLE : X
-                        axis (AX003)
-             SUBSET   : 10 points (X)
- 0.1  /  1:  0.10000
- 0.2  /  2:  0.20000
- 0.3  /  3:  0.30000
- 0.4  /  4:  0.40000
- 0.5  /  5:  0.50000
- 0.6  /  6:  0.60000
- 0.7  /  7:  0.70000
- 0.8  /  8:  0.80000
- 0.9  /  9:  0.90000
- 1    / 10:  1.00000
-list x[gx=psxu,x=130:150:2.5]		! dynamic based on named axis
-             VARIABLE : X
-                        axis (AX004)
-             SUBSET   : 9 points (LONGITUDE)
- 130E   / 1:  130.000
- 132.5E / 2:  132.500
- 135E   / 3:  135.000
- 137.5E / 4:  137.500
- 140E   / 5:  140.000
- 142.5E / 6:  142.500
- 145E   / 7:  145.000
- 147.5E / 8:  147.500
- 150E   / 9:  150.000
-! abstract variables
-cancel region
-LET/QUIET a = x[x=0.1:10:1.5] + y[y=101:110:1]
-list a
-             VARIABLE : X[X=0.1:10:1.5] + Y[Y=101:110:1]
-             SUBSET   : 7 by 10 points (X-Y)
-                 0.1      1.6      3.1      4.6      6.1      7.6      9.1   
-                 1        2        3        4        5        6        7
- 101   /  1:  101.100  102.600  104.100  105.600  107.100  108.600  110.100
- 102   /  2:  102.100  103.600  105.100  106.600  108.100  109.600  111.100
- 103   /  3:  103.100  104.600  106.100  107.600  109.100  110.600  112.100
- 104   /  4:  104.100  105.600  107.100  108.600  110.100  111.600  113.100
- 105   /  5:  105.100  106.600  108.100  109.600  111.100  112.600  114.100
- 106   /  6:  106.100  107.600  109.100  110.600  112.100  113.600  115.100
- 107   /  7:  107.100  108.600  110.100  111.600  113.100  114.600  116.100
- 108   /  8:  108.100  109.600  111.100  112.600  114.100  115.600  117.100
- 109   /  9:  109.100  110.600  112.100  113.600  115.100  116.600  118.100
- 110   / 10:  110.100  111.600  113.100  114.600  116.100  117.600  119.100
-list a[i=1:10:3]
-             VARIABLE : X[X=0.1:10:1.5] + Y[Y=101:110:1]
-                        regrid: 4.5 delta on X
-             SUBSET   : 3 by 10 points (X-Y)
-                 0.1      4.6      9.1   
-                 1        2        3
- 101   /  1:  101.100  105.600  110.100
- 102   /  2:  102.100  106.600  111.100
- 103   /  3:  103.100  107.600  112.100
- 104   /  4:  104.100  108.600  113.100
- 105   /  5:  105.100  109.600  114.100
- 106   /  6:  106.100  110.600  115.100
- 107   /  7:  107.100  111.600  116.100
- 108   /  8:  108.100  112.600  117.100
- 109   /  9:  109.100  113.600  118.100
- 110   / 10:  110.100  114.600  119.100
-list a[i=-1:20:5]		! clips to allowed limits
-             VARIABLE : X[X=0.1:10:1.5] + Y[Y=101:110:1]
-                        regrid: 7.5 delta on X
-             SUBSET   : 2 by 10 points (X-Y)
-                 0.1      7.6   
-                 1        2
- 101   /  1:  101.100  108.600
- 102   /  2:  102.100  109.600
- 103   /  3:  103.100  110.600
- 104   /  4:  104.100  111.600
- 105   /  5:  105.100  112.600
- 106   /  6:  106.100  113.600
- 107   /  7:  107.100  114.600
- 108   /  8:  108.100  115.600
- 109   /  9:  109.100  116.600
- 110   / 10:  110.100  117.600
-list a[y=102:105:.5]
-             VARIABLE : X[X=0.1:10:1.5] + Y[Y=101:110:1]
-                        regrid: 0.5 delta on Y
-             SUBSET   : 7 by 7 points (X-Y)
-                 0.1      1.6      3.1      4.6      6.1      7.6      9.1   
-                 1        2        3        4        5        6        7
- 102    / 1:  102.100  103.600  105.100  106.600  108.100  109.600  111.100
- 102.5  / 2:  102.600  104.100  105.600  107.100  108.600  110.100  111.600
- 103    / 3:  103.100  104.600  106.100  107.600  109.100  110.600  112.100
- 103.5  / 4:  103.600  105.100  106.600  108.100  109.600  111.100  112.600
- 104    / 5:  104.100  105.600  107.100  108.600  110.100  111.600  113.100
- 104.5  / 6:  104.600  106.100  107.600  109.100  110.600  112.100  113.600
- 105    / 7:  105.100  106.600  108.100  109.600  111.100  112.600  114.100
-list a[y=95:115:7]
-             VARIABLE : X[X=0.1:10:1.5] + Y[Y=101:110:1]
-                        regrid: 7 delta on Y
-             SUBSET   : 7 by 3 points (X-Y)
-                0.1      1.6      3.1      4.6      6.1      7.6      9.1   
-                1        2        3        4        5        6        7
- 95    / 1:     ....     ....     ....     ....     ....     ....     ....
- 102   / 2:  102.100  103.600  105.100  106.600  108.100  109.600  111.100
- 109   / 3:  109.100  110.600  112.100  113.600  115.100  116.600  118.100
-show grid/dyn
-Dynamic grids:
-    GRID (G006)                          use count:   1
- name       axis              # pts   start                end
- (AX002)   X                    7 r   0.1                  9.1
- (AX004)   Y                    3 r   95                   109
- normal    Z
- normal    T
- normal    E
- normal    F
-    GRID (G003)                          use count:   1
- name       axis              # pts   start                end
- (AX002)   X                    7 r   0.1                  9.1
- (AX003)   Y                   10 r   101                  110
- normal    Z
- normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX004)                         use count:   1
-    AXIS (AX002)                         use count:   2
-    AXIS (AX003)                         use count:   1
- 
-! ambiguous coordinate tests
-list/order=x  x[x=0.1:10:1.5] +  x[x=1.1:11:1.5]
-             VARIABLE : X[X=0.1:10:1.5] +  X[X=1.1:11:1.5]
-             SUBSET   : 7 points (X)
-             0.1      1.6      3.1      4.6      6.1      7.6      9.1   
-             1        2        3        4        5        6        7
-           1.2000   4.2000   7.2000  10.2000  13.2000  16.2000  19.2000
-LET/QUIET a = x[x=0.1:10:1.5] +  x[x=1.1:11:1.5]
-list/order=x a
-             VARIABLE : X[X=0.1:10:1.5] +  X[X=1.1:11:1.5]
-             SUBSET   : 7 points (X)
-             0.1      1.6      3.1      4.6      6.1      7.6      9.1   
-             1        2        3        4        5        6        7
-           1.2000   4.2000   7.2000  10.2000  13.2000  16.2000  19.2000
-show grid/dyn
-Dynamic grids:
-    GRID (G003)                          use count:   2
- name       axis              # pts   start                end
- (AX004)   X                    7 r   0.1                  9.1
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX004)                         use count:   1
- 
-! box size on dynamic axes
-cancel region
-define axis/from/x/name=xirreg x[x=1:100:10]^2
-define grid/x=xirreg girreg
-let/quiet a = xbox[gx=xirreg]
-list a    ! "normal" irregular axis
-             VARIABLE : XBOX[GX=XIRREG]
-             SUBSET   : 10 points (X)
- 1      /  1:   120.00
- 121    /  2:   220.00
- 441    /  3:   420.00
- 961    /  4:   620.00
- 1681   /  5:   820.00
- 2601   /  6:  1020.00
- 3721   /  7:  1220.00
- 5041   /  8:  1420.00
- 6561   /  9:  1620.00
- 8281   / 10:  1720.00
-let/quiet b = a[i=1:10:2]
-load b     ! "child" irregular axis
-show grid/x
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G003)
-    GRID (G003)
- name       axis              # pts   start                end
- (AX002)   X                    5 i   1                    6561
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
- 
-       I     X                   XBOX      XBOXLO
-       1>  1                     280        -59
-       2>  441                   840        221
-       3>  1681                  1640       1061
-       4>  3721                  2440       2701
-       5>  6561                  4000       5141
- 
-use gtsa056_1
-list/i=1:10 x[gx=temp]			! from named variable
-             VARIABLE : X
-                        axis PSXT
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 10 points (LONGITUDE)
- 130.5E /  1:  130.500
- 131.5E /  2:  131.500
- 132.5E /  3:  132.500
- 133.5E /  4:  133.500
- 134.5E /  5:  134.500
- 135.5E /  6:  135.500
- 136.5E /  7:  136.500
- 137.5E /  8:  137.500
- 138.5E /  9:  138.500
- 139.5E / 10:  139.500
-list x[g=temp,x=150w:130w:2.5]		! dynamic based on named variable
-             VARIABLE : X
-                        axis (AX005)
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 9 points (LONGITUDE)
- 150W   / 1:  210.000
- 147.5W / 2:  212.500
- 145W   / 3:  215.000
- 142.5W / 4:  217.500
- 140W   / 5:  220.000
- 137.5W / 6:  222.500
- 135W   / 7:  225.000
- 132.5W / 8:  227.500
- 130W   / 9:  230.000
-list x[gx=temp,x=150w:130w:2.5]		! dynamic based on named variable
-             VARIABLE : X
-                        axis (AX003)
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 9 points (LONGITUDE)
- 150W   / 1:  210.000
- 147.5W / 2:  212.500
- 145W   / 3:  215.000
- 142.5W / 4:  217.500
- 140W   / 5:  220.000
- 137.5W / 6:  222.500
- 135W   / 7:  225.000
- 132.5W / 8:  227.500
- 130W   / 9:  230.000
- 
-list/i=101:105/j=46:50/l=1/k=1 temp+x	! grid inherited from expression
-             VARIABLE : TEMP+X
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-               129.5W   128.5W   127.5W   126.5W   125.5W  
-               101      102      103      104      105
- 1.5N  / 50:  255.043  255.835  256.725  257.731  258.922
- 1.17N / 49:  254.836  255.653  256.546  257.543  258.704
- 0.83N / 48:  254.657  255.499  256.389  257.358  258.477
- 0.5N  / 47:  254.524  255.393  256.288  257.227  258.273
- 0.17N / 46:  254.456  255.346  256.243  257.163  258.142
-show grid/dyn
-Dynamic grids:
-    GRID (G003)                          use count:   1
- name       axis              # pts   start                end
- (AX002)   X                    5 i   1                    6561
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX002)                         use count:   1
- 
-! this expression does NOT inherit the X axis -- the result is
-!	i) ambiguous X axis coordinates
-!	ii) 2 dynamic axes are created in the course of processing
-list/j=46:50/l=1/k=1 temp[i=101:120:4]+x[i=101:120:4]	! NOT !!!
-             VARIABLE : TEMP[I=101:120:4]+X[I=101:120:4]
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-               129.5W   125.5W   121.5W   117.5W   113.5W  
-                 1        2        3        4        5
- 1.5N  / 50:  125.543  129.422  134.545  137.119  141.562
- 1.17N / 49:  125.336  129.204  134.163  136.896  141.270
- 0.83N / 48:  125.157  128.977  133.703  136.690  140.960
- 0.5N  / 47:  125.024  128.773  133.295  136.512  140.644
- 0.17N / 46:  124.956  128.642  132.987  136.380  140.376
-show grid/dynamic
-Dynamic grids:
-    GRID (G006)                          use count:   1
- name       axis              # pts   start                end
- (AX004)   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
- normal    E
- normal    F
-    GRID (G003)                          use count:   1
- name       axis              # pts   start                end
- (AX002)   X                    5 i   1                    6561
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX004)                         use count:   1
-    AXIS (AX002)                         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]
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-               129.5W   125.5W   121.5W   117.5W   113.5W  
-                 1        2        3        4        5
- 1.5N  / 50:  255.043  258.922  264.045  266.619  271.062
- 1.17N / 49:  254.836  258.704  263.663  266.396  270.770
- 0.83N / 48:  254.657  258.477  263.203  266.190  270.460
- 0.5N  / 47:  254.524  258.273  262.795  266.012  270.144
- 0.17N / 46:  254.456  258.142  262.487  265.880  269.876
- 
- 
-! * * * dynamic axis generation used to regrid variables * * *
-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 (AX004)
-             SUBSET   : 5 points (X)
- 1   / 1:  1.00000
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
- 5   / 5:  5.00000
-set mode ignore
-list x[i=1:5:-1]	! error: negative delta
-list x[i=1:5:0]		! error: delta=0
-list x[x=1:5:-1]	! error: negative delta
-list x[x=1:5:0]		! error: delta=0
-list temp[i=200:210:2]	! was: "completely out of range"  now: ok - subspan modulo 11/02
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: on X
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-               168.5E   170.5E   172.5E   174.5E   176.5E   178.5E  
-                 1        2        3        4        5        6
- 1.5N  / 50:  29.2186  29.1820  28.9284  28.6727  28.1158  27.7262
- 1.17N / 49:  29.2537  29.1794  28.9683  28.7060  28.2175  27.8045
- 0.83N / 48:  29.2747  29.1817  28.9842  28.7218  28.2984  27.8834
- 0.5N  / 47:  29.3025  29.1943  28.9819  28.7306  28.3551  27.9545
- 0.17N / 46:  29.3441  29.2219  28.9889  28.7493  28.3962  28.0105
-list temp[i=-200:-190:2]! was: "completely out of range"  now: ok - subspan modulo 11/0
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: on X
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-               108.5W   106.5W   104.5W   102.5W   100.5W   98.5W   
-                 1        2        3        4        5        6
- 1.5N  / 50:  25.4248  25.2404  25.0453  25.2349  25.4898  25.8063
- 1.17N / 49:  25.0178  24.8787  24.7362  24.9070  25.2015  25.5514
- 0.83N / 48:  24.6455  24.5412  24.4230  24.5627  24.8753  25.2469
- 0.5N  / 47:  24.2823  24.1999  24.1010  24.2162  24.5241  24.8980
- 0.17N / 46:  23.9664  23.8958  23.8185  23.9163  24.1945  24.5649
-canc mode ignore
-show grid/dyn
-Dynamic grids:
-    GRID (G006)                          use count:   1
- name       axis              # pts   start                end
- (AX004)   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
- normal    E
- normal    F
-    GRID (G003)                          use count:   1
- name       axis              # pts   start                end
- (AX002)   X                    5 i   1                    6561
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX004)                         use count:   1
-    AXIS (AX002)                         use count:   1
- 
-! regular dynamic axis
-! ... by subscript
-list temp[i=100:110:2]
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: 2 deg on X
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-               130.5W   128.5W   126.5W   124.5W   122.5W   120.5W  
-                 1        2        3        4        5        6
- 1.5N  / 50:  24.8629  24.3351  24.2312  24.8158  25.6044  25.2192
- 1.17N / 49:  24.5966  24.1527  24.0427  24.5341  25.2208  24.8153
- 0.83N / 48:  24.3667  23.9991  23.8583  24.2480  24.7736  24.4029
- 0.5N  / 47:  24.1928  23.8934  23.7273  23.9665  24.3603  24.0696
- 0.17N / 46:  24.0902  23.8461  23.6629  23.7442  24.0341  23.8270
-! ... by world coord
-list temp[x=130w:120W:3]
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: 3 deg on X
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 4 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-               130W     127W     124W     121W    
-                 1        2        3        4
- 1.5N  / 50:  24.7030  24.2283  25.0596  25.3824
- 1.17N / 49:  24.4664  24.0441  24.7395  24.9891
- 0.83N / 48:  24.2617  23.8736  24.4085  24.5531
- 0.5N  / 47:  24.1085  23.7576  24.0884  24.1823
- 0.17N / 46:  24.0229  23.7029  23.8301  23.9069
- 
-! irregular dynamic axis (Y axis of model grid)
-! ... by subscript
-list temp[j=45:55:3]
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: on Y
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 4 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-             129.5W   128.5W   127.5W   126.5W   125.5W  
-             101      102      103      104      105
- 2.8N / 4:  25.5051  25.1016  24.8243  24.7591  24.9401
- 1.8N / 3:  24.7692  24.5204  24.3981  24.4013  24.6163
- 0.8N / 2:  24.1567  23.9991  23.8888  23.8583  23.9770
- 0.2S / 1:  23.9783  23.8819  23.7796  23.6864  23.6174
-! ... by world coord
-list temp[y=0.5s:5n:1.5]
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: 1.5 deg on Y
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 4 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-             129.5W   128.5W   127.5W   126.5W   125.5W  
-             101      102      103      104      105
- 4N   / 4:  26.0703  25.7627  25.4253  25.1684  25.1772
- 2.5N / 3:  25.2743  24.9014  24.6921  24.6646  24.8801
- 1N   / 2:  24.2464  24.0759  23.9672  23.9505  24.0906
- 0.5S / 1:  24.0685  23.9855  23.8878  23.7919  23.7022
-show grid/dyn
-Dynamic grids:
-    GRID (G006)                          use count:   1
- name       axis              # pts   start                end
- PSXT      LONGITUDE          160mr   130.5E               70.5W
- (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 (G003)                          use count:   1
- name       axis              # pts   start                end
- (AX002)   X                    5 i   1                    6561
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX004)                         use count:   1
-    AXIS (AX002)                         use count:   1
- 
-! ========
-! 2/96: repeat the very same commands using GX=lo:hi:delta notation
-! regular dynamic axis
-! ... by subscript
-list temp[gi=100:110:2]
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: 2 deg on X
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-               130.5W   128.5W   126.5W   124.5W   122.5W   120.5W  
-                 1        2        3        4        5        6
- 1.5N  / 50:  24.8629  24.3351  24.2312  24.8158  25.6044  25.2192
- 1.17N / 49:  24.5966  24.1527  24.0427  24.5341  25.2208  24.8153
- 0.83N / 48:  24.3667  23.9991  23.8583  24.2480  24.7736  24.4029
- 0.5N  / 47:  24.1928  23.8934  23.7273  23.9665  24.3603  24.0696
- 0.17N / 46:  24.0902  23.8461  23.6629  23.7442  24.0341  23.8270
-! ... by world coord
-list temp[gx=130w:120W:3]
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: 3 deg on X
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 4 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-               130W     127W     124W     121W    
-                 1        2        3        4
- 1.5N  / 50:  24.7030  24.2283  25.0596  25.3824
- 1.17N / 49:  24.4664  24.0441  24.7395  24.9891
- 0.83N / 48:  24.2617  23.8736  24.4085  24.5531
- 0.5N  / 47:  24.1085  23.7576  24.0884  24.1823
- 0.17N / 46:  24.0229  23.7029  23.8301  23.9069
- 
-! irregular dynamic axis (Y axis of model grid)
-! ... by subscript
-list temp[gj=45:55:3]
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: on Y
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 4 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-             129.5W   128.5W   127.5W   126.5W   125.5W  
-             101      102      103      104      105
- 2.8N / 4:  25.5051  25.1016  24.8243  24.7591  24.9401
- 1.8N / 3:  24.7692  24.5204  24.3981  24.4013  24.6163
- 0.8N / 2:  24.1567  23.9991  23.8888  23.8583  23.9770
- 0.2S / 1:  23.9783  23.8819  23.7796  23.6864  23.6174
-! ... by world coord
-list temp[gy=0.5s:5n:1.5]
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: 1.5 deg on Y
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 4 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-             129.5W   128.5W   127.5W   126.5W   125.5W  
-             101      102      103      104      105
- 4N   / 4:  26.0703  25.7627  25.4253  25.1684  25.1772
- 2.5N / 3:  25.2743  24.9014  24.6921  24.6646  24.8801
- 1N   / 2:  24.2464  24.0759  23.9672  23.9505  24.0906
- 0.5S / 1:  24.0685  23.9855  23.8878  23.7919  23.7022
- 
-! and a few more for pseudo-variables
-list/nohead X[GX=130e:80w:40]
- 130E   / 1:  130.000
- 170E   / 2:  170.000
- 150W   / 3:  210.000
- 110W   / 4:  250.000
-list/nohead Y[GY=10s:10n:8]
- 6N    / 3:   6.0000
- 2S    / 2:  -2.0000
- 10S   / 1: -10.0000
-list/nohead Z[GZ=0:100:30]
- 0    / 1:   0.0000
- 30   / 2:  30.0000
- 60   / 3:  60.0000
- 90   / 4:  90.0000
-list/nohead T[GT=0:100:30]
- 0    / 1:   0.0000
- 30   / 2:  30.0000
- 60   / 3:  60.0000
- 90   / 4:  90.0000
-list/nohead i[gi=1:11:5]
- 1    / 1:  1.00000
- 6    / 2:  2.00000
- 11   / 3:  3.00000
-list/nohead j[gj=1:11:5]
- 1    / 1:  1.00000
- 6    / 2:  2.00000
- 11   / 3:  3.00000
-list/nohead k[gk=1:11:5]
- 1    / 1:  1.00000
- 6    / 2:  2.00000
- 11   / 3:  3.00000
-list/nohead l[gl=1:11:5]
- 1    / 1:  1.00000
- 6    / 2:  2.00000
- 11   / 3:  3.00000
- 
-! ========
- 
-! multiple axes, simultaneously
-list temp[i=100:110:2,j=45:55:3]
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: 2 deg on X, on Y
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 4 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-             130.5W   128.5W   126.5W   124.5W   122.5W   120.5W  
-               1        2        3        4        5        6
- 2.8N / 4:  25.8760  25.1016  24.7591  25.3616  25.9523  26.1052
- 1.8N / 3:  25.1492  24.5204  24.4013  25.0592  25.8372  25.5690
- 0.8N / 2:  24.3667  23.9991  23.8583  24.2480  24.7736  24.4029
- 0.2S / 1:  24.0844  23.8819  23.6864  23.6291  23.8094  23.6664
-list temp[i=100:110:2,y=0.5s:5n:1.5]
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: 2 deg on X, 1.5 deg on Y
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 4 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-             130.5W   128.5W   126.5W   124.5W   122.5W   120.5W  
-               1        2        3        4        5        6
- 4N   / 4:  26.3100  25.7627  25.1684  25.4169  26.0928  26.4324
- 2.5N / 3:  25.6892  24.9014  24.6646  25.3345  25.9631  26.0034
- 1N   / 2:  24.4816  24.0759  23.9505  24.3911  24.9972  24.6091
- 0.5S / 1:  24.1489  23.9855  23.7919  23.6520  23.7144  23.6009
-list temp[x=130w:120W:3,j=45:55:3]
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: 3 deg on X, on Y
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 4 by 4 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-             130W     127W     124W     121W    
-               1        2        3        4
- 2.8N / 4:  25.6905  24.7917  25.5507  26.0875
- 1.8N / 3:  24.9592  24.3997  25.3139  25.6838
- 0.8N / 2:  24.2617  23.8736  24.4085  24.5531
- 0.2S / 1:  24.0313  23.7330  23.6749  23.7233
-list temp[x=130w:120W:3,y=0.5s:5n:1.5]
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: 3 deg on X, 1.5 deg on Y
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 4 by 4 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-             130W     127W     124W     121W    
-               1        2        3        4
- 4N   / 4:  26.1901  25.2969  25.5832  26.3921
- 2.5N / 3:  25.4818  24.6784  25.5471  26.0151
- 1N   / 2:  24.3640  23.9588  24.5740  24.7711
- 0.5S / 1:  24.1087  23.8399  23.6597  23.6433
-show grid/dyn
-Dynamic grids:
-    GRID (G006)                          use count:   1
- name       axis              # pts   start                end
- (AX005)   LONGITUDE            4 r   130W                 121W
- (AX003)   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 (G003)                          use count:   1
- name       axis              # pts   start                end
- (AX002)   X                    5 i   1                    6561
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX003)                         use count:   1
-    AXIS (AX005)                         use count:   1
-    AXIS (AX002)                         use count:   1
- 
-! the same tests but now on a nested definition
-! regular dynamic axis
-! ... by subscript
-LET/QUIET a temp[i=90:110:2]
-! changes on 11/29 in CONFINE_AXIS this no longer an error ... a bit mysterious
-! changes on 4/98 in CONFINE_AXIS this is once again an error
-set mode ignore; list a; cancel mode ignore	! SET REGION mis-applied
-list a[i=1:6]
-             VARIABLE : TEMP[I=90:110:2]
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-               140.5W   138.5W   136.5W   134.5W   132.5W   130.5W  
-                 1        2        3        4        5        6
- 1.5N  / 50:  24.9330  24.4927  25.4749  25.9529  25.6235  24.8629
- 1.17N / 49:  24.8195  24.3658  25.1683  25.8306  25.3698  24.5966
- 0.83N / 48:  24.6946  24.2521  24.7974  25.6708  25.1391  24.3667
- 0.5N  / 47:  24.5726  24.1661  24.4685  25.4813  24.9214  24.1928
- 0.17N / 46:  24.4684  24.1208  24.2760  25.1658  24.7013  24.0902
-list a[i=1:6:2]
-             VARIABLE : TEMP[I=90:110:2]
-                        regrid: 4 deg on X
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 3 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-               140.5W   136.5W   132.5W  
-                 1        2        3
- 1.5N  / 50:  24.9330  25.4749  25.6235
- 1.17N / 49:  24.8195  25.1683  25.3698
- 0.83N / 48:  24.6946  24.7974  25.1391
- 0.5N  / 47:  24.5726  24.4685  24.9214
- 0.17N / 46:  24.4684  24.2760  24.7013
-list a[i=-2:8:2]		! clips to allowed limits
-             VARIABLE : TEMP[I=90:110:2]
-                        regrid: 4 deg on X
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 4 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-               140.5W   136.5W   132.5W   128.5W  
-                 1        2        3        4
- 1.5N  / 50:  24.9330  25.4749  25.6235  24.3351
- 1.17N / 49:  24.8195  25.1683  25.3698  24.1527
- 0.83N / 48:  24.6946  24.7974  25.1391  23.9991
- 0.5N  / 47:  24.5726  24.4685  24.9214  23.8934
- 0.17N / 46:  24.4684  24.2760  24.7013  23.8461
-list a[x=135w:125w]
-             VARIABLE : TEMP[I=90:110:2]
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-               134.5W   132.5W   130.5W   128.5W   126.5W   124.5W  
-                 4        5        6        7        8        9
- 1.5N  / 50:  25.9529  25.6235  24.8629  24.3351  24.2312  24.8158
- 1.17N / 49:  25.8306  25.3698  24.5966  24.1527  24.0427  24.5341
- 0.83N / 48:  25.6708  25.1391  24.3667  23.9991  23.8583  24.2480
- 0.5N  / 47:  25.4813  24.9214  24.1928  23.8934  23.7273  23.9665
- 0.17N / 46:  25.1658  24.7013  24.0902  23.8461  23.6629  23.7442
-list a[x=135w:125w:3]
-             VARIABLE : TEMP[I=90:110:2]
-                        regrid: 3 deg on X
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 4 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-               135W     132W     129W     126W    
-                 1        2        3        4
- 1.5N  / 50:  25.8334  25.4333  24.4671  24.3773
- 1.17N / 49:  25.6650  25.1765  24.2637  24.1656
- 0.83N / 48:  25.4524  24.9460  24.0910  23.9557
- 0.5N  / 47:  25.2281  24.7393  23.9683  23.7871
- 0.17N / 46:  24.9433  24.5486  23.9072  23.6832
-! ... by world coord
-LET/QUIET a = temp[x=130w:120W:3]
-! changes on 11/29 in CONFINE_AXIS this no longer an error ... a bit mysterious
-! changes on 4/98 in CONFINE_AXIS this is once again an error
-! Changes 5/2007 in GET_VAR_CONTEXT this is no longer an error (acm) !
-set mode ignore; list a; cancel mode ignore	! SET REGION mis-applied
-             VARIABLE : TEMP[X=130W:120W:3]
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 4 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-               130W     127W     124W     121W    
-                 1        2        3        4
- 1.5N  / 50:  24.7030  24.2283  25.0596  25.3824
- 1.17N / 49:  24.4664  24.0441  24.7395  24.9891
- 0.83N / 48:  24.2617  23.8736  24.4085  24.5531
- 0.5N  / 47:  24.1085  23.7576  24.0884  24.1823
- 0.17N / 46:  24.0229  23.7029  23.8301  23.9069
-list a[i=1:4]
-             VARIABLE : TEMP[X=130W:120W:3]
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 4 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-               130W     127W     124W     121W    
-                 1        2        3        4
- 1.5N  / 50:  24.7030  24.2283  25.0596  25.3824
- 1.17N / 49:  24.4664  24.0441  24.7395  24.9891
- 0.83N / 48:  24.2617  23.8736  24.4085  24.5531
- 0.5N  / 47:  24.1085  23.7576  24.0884  24.1823
- 0.17N / 46:  24.0229  23.7029  23.8301  23.9069
-list a[i=1:4:2]
-             VARIABLE : TEMP[X=130W:120W:3]
-                        regrid: 6 deg on X
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 2 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-               130W     124W    
-                 1        2
- 1.5N  / 50:  24.7030  25.0596
- 1.17N / 49:  24.4664  24.7395
- 0.83N / 48:  24.2617  24.4085
- 0.5N  / 47:  24.1085  24.0884
- 0.17N / 46:  24.0229  23.8301
-list a[i=-2:8:2]		! clips to allowed limits
-             VARIABLE : TEMP[X=130W:120W:3]
-                        regrid: 6 deg on X
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 2 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-               130W     124W    
-                 1        2
- 1.5N  / 50:  24.7030  25.0596
- 1.17N / 49:  24.4664  24.7395
- 0.83N / 48:  24.2617  24.4085
- 0.5N  / 47:  24.1085  24.0884
- 0.17N / 46:  24.0229  23.8301
-list a[x=129w:120w:2]
-             VARIABLE : TEMP[X=130W:120W:3]
-                        regrid: 2 deg on X
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-               129W     127W     125W     123W     121W    
-                 1        2        3        4        5
- 1.5N  / 50:  24.5447  24.2283  24.7825  25.1672  25.3824
- 1.17N / 49:  24.3256  24.0441  24.5077  24.8227  24.9891
- 0.83N / 48:  24.1323  23.8736  24.2302  24.4567  24.5531
- 0.5N  / 47:  23.9915  23.7576  23.9781  24.1197  24.1823
- 0.17N / 46:  23.9163  23.7029  23.7877  23.8557  23.9069
-list a[x=138w:110w:5]
-             VARIABLE : TEMP[X=130W:120W:3]
-                        regrid: 5 deg on X
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-               138W     133W     128W     123W     118W     113W    
-                 1        2        3        4        5        6
- 1.5N  / 50:     ....     ....  24.3865  25.1672     ....     ....
- 1.17N / 49:     ....     ....  24.1849  24.8227     ....     ....
- 0.83N / 48:     ....     ....  24.0029  24.4567     ....     ....
- 0.5N  / 47:     ....     ....  23.8746  24.1197     ....     ....
- 0.17N / 46:     ....     ....  23.8096  23.8557     ....     ....
-show grid/dyn
-Dynamic grids:
-    GRID (G006)                          use count:   1
- name       axis              # pts   start                end
- (AX003)   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
- normal    E
- normal    F
-    GRID (G003)                          use count:   1
- name       axis              # pts   start                end
- (AX005)   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 (AX003)                         use count:   1
-    AXIS (AX005)                         use count:   1
- 
-! irregular dynamic axis
-! ... by subscript
-LET/QUIET a = temp[j=45:65:3]
-! changes on 11/29 in CONFINE_AXIS this no longer an error ... a bit mysterious
-! changes on 4/98 in CONFINE_AXIS this is once again an error
-set mode ignore; list a; cancel mode ignore	! SET REGION mis-applied
-list a[j=1:6]
-             VARIABLE : TEMP[J=45:65:3]
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 6 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-             129.5W   128.5W   127.5W   126.5W   125.5W  
-             101      102      103      104      105
- 4.8N / 6:  26.3655  26.1878  26.0268  25.9290  25.9885
- 3.8N / 5:  26.0047  25.6791  25.3175  25.0630  25.0886
- 2.8N / 4:  25.5051  25.1016  24.8243  24.7591  24.9401
- 1.8N / 3:  24.7692  24.5204  24.3981  24.4013  24.6163
- 0.8N / 2:  24.1567  23.9991  23.8888  23.8583  23.9770
- 0.2S / 1:  23.9783  23.8819  23.7796  23.6864  23.6174
-list a[j=1:6:2]
-             VARIABLE : TEMP[J=45:65:3]
-                        regrid: on Y
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 3 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-             129.5W   128.5W   127.5W   126.5W   125.5W  
-             101      102      103      104      105
- 3.8N / 3:  26.0047  25.6791  25.3175  25.0630  25.0886
- 1.8N / 2:  24.7692  24.5204  24.3981  24.4013  24.6163
- 0.2S / 1:  23.9783  23.8819  23.7796  23.6864  23.6174
-list a[j=-2:8:2]		! clips to allowed limits
-             VARIABLE : TEMP[J=45:65:3]
-                        regrid: on Y
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 4 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-             129.5W   128.5W   127.5W   126.5W   125.5W  
-             101      102      103      104      105
- 5.8N / 4:  26.6294  26.5670  26.5361  26.5638  26.6554
- 3.8N / 3:  26.0047  25.6791  25.3175  25.0630  25.0886
- 1.8N / 2:  24.7692  24.5204  24.3981  24.4013  24.6163
- 0.2S / 1:  23.9783  23.8819  23.7796  23.6864  23.6174
-list a[y=1S:8N:2]
-             VARIABLE : TEMP[J=45:65:3]
-                        regrid: 2 deg on Y
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-             129.5W   128.5W   127.5W   126.5W   125.5W  
-             101      102      103      104      105
- 7N   / 5:     ....     ....     ....     ....     ....
- 5N   / 4:  26.4095  26.2510  26.1116  26.0348  26.0997
- 3N   / 3:  25.5883  25.1978  24.9065  24.8097  24.9649
- 1N   / 2:  24.2587  24.0860  23.9737  23.9488  24.0835
- 1S   / 1:     ....     ....     ....     ....     ....
-! ... by world coord
-LET/QUIET a = temp[y=3.5s:5n:1.5]
-list a[j=1:6:2]
-             VARIABLE : TEMP[Y=3.5S:5N:1.5]
-                        regrid: 3 deg on Y
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 3 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-             129.5W   128.5W   127.5W   126.5W   125.5W  
-             101      102      103      104      105
- 2.5N / 3:  25.2743  24.9014  24.6921  24.6646  24.8801
- 0.5S / 2:  24.0685  23.9855  23.8878  23.7919  23.7022
- 3.5S / 1:  25.1885  25.1493  25.0939  25.0408  25.0261
-list a[j=-2:8:2]
-             VARIABLE : TEMP[Y=3.5S:5N:1.5]
-                        regrid: 3 deg on Y
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 3 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-             129.5W   128.5W   127.5W   126.5W   125.5W  
-             101      102      103      104      105
- 2.5N / 3:  25.2743  24.9014  24.6921  24.6646  24.8801
- 0.5S / 2:  24.0685  23.9855  23.8878  23.7919  23.7022
- 3.5S / 1:  25.1885  25.1493  25.0939  25.0408  25.0261
-list a[y=1S:8N:2]
-             VARIABLE : TEMP[Y=3.5S:5N:1.5]
-                        regrid: 2 deg on Y
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-             129.5W   128.5W   127.5W   126.5W   125.5W  
-             101      102      103      104      105
- 7N   / 5:     ....     ....     ....     ....     ....
- 5N   / 4:     ....     ....     ....     ....     ....
- 3N   / 3:  25.5396  25.1885  24.9365  24.8326  24.9791
- 1N   / 2:  24.2464  24.0759  23.9672  23.9505  24.0906
- 1S   / 1:  24.2763  24.2177  24.1436  24.0651  23.9786
- 
-! modulo (regular) dynamic axis
-set axis/modulo psxt
-! ... by subscript
-list temp[i=155:170:2]
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: 2 deg on X
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 8 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-                75.5W    73.5W    71.5W    69.5W    67.5W    65.5W    63.5W    61.5W  
-                 1        2        3        4        5        6        7        8
- 1.5N  / 50:     ....     ....     ....     ....  29.5035  29.3966  29.4136  29.5107
- 1.17N / 49:     ....     ....     ....     ....  29.5373  29.4191  29.4462  29.5279
- 0.83N / 48:     ....     ....     ....     ....  29.6002  29.4689  29.4873  29.5544
- 0.5N  / 47:     ....     ....     ....     ....  29.6787  29.5330  29.5361  29.5888
- 0.17N / 46:     ....     ....     ....     ....  29.7929  29.5966  29.5858  29.6187
-! ... by world coord
-list temp[x=90w:60W:4]
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: 4 deg on X
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 8 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-                90W      86W      82W      78W      74W      70W      66W      62W    
-                 1        2        3        4        5        6        7        8
- 1.5N  / 50:  27.2194  27.5576  27.9470     ....     ....     ....  29.3528  29.4885
- 1.17N / 49:  27.1122  27.4131  27.8883     ....     ....     ....  29.3882  29.5084
- 0.83N / 48:  26.9645  27.2528  27.7639     ....     ....     ....  29.4644  29.5380
- 0.5N  / 47:  26.7776  27.0851  27.5584     ....     ....     ....  29.5482  29.5745
- 0.17N / 46:  26.5410  26.8980  27.2770     ....     ....     ....  29.6283  29.6082
-show grid/dyn
-Dynamic grids:
-    GRID (G006)                          use count:   1
- name       axis              # pts   start                end
- (AX005)   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
-    GRID (G003)                          use count:   1
- name       axis              # pts   start                end
- PSXT      LONGITUDE          160mr   130.5E               70.5W
- (AX002)   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 (AX002)                         use count:   1
- 
-! nested modulo (the dynamic axis is **NOT** modulo)
-! ... by subscript
-LET/QUIET a temp[i=155:170:2]
-! changes on 11/29 in CONFINE_AXIS this no longer an error ... a bit mysterious
-! changes on 4/98 in CONFINE_AXIS this is once again an error
-set mode ignore; list a; cancel mode ignore	! SET REGION mis-applied
-list a[i=1:6]
-             VARIABLE : TEMP[I=155:170:2]
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-                75.5W    73.5W    71.5W    69.5W    67.5W    65.5W  
-                 1        2        3        4        5        6
- 1.5N  / 50:     ....     ....     ....     ....  29.5035  29.3966
- 1.17N / 49:     ....     ....     ....     ....  29.5373  29.4191
- 0.83N / 48:     ....     ....     ....     ....  29.6002  29.4689
- 0.5N  / 47:     ....     ....     ....     ....  29.6787  29.5330
- 0.17N / 46:     ....     ....     ....     ....  29.7929  29.5966
-list a[i=1:6:2]
-             VARIABLE : TEMP[I=155:170:2]
-                        regrid: 4 deg on X
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 3 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-                75.5W    71.5W    67.5W  
-                 1        2        3
- 1.5N  / 50:     ....     ....  29.5035
- 1.17N / 49:     ....     ....  29.5373
- 0.83N / 48:     ....     ....  29.6002
- 0.5N  / 47:     ....     ....  29.6787
- 0.17N / 46:     ....     ....  29.7929
-list a[i=-2:8:2]		! clips to allowed limits
-             VARIABLE : TEMP[I=155:170:2]
-                        regrid: 4 deg on X
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 4 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-                75.5W    71.5W    67.5W    63.5W  
-                 1        2        3        4
- 1.5N  / 50:     ....     ....  29.5035  29.4136
- 1.17N / 49:     ....     ....  29.5373  29.4462
- 0.83N / 48:     ....     ....  29.6002  29.4873
- 0.5N  / 47:     ....     ....  29.6787  29.5361
- 0.17N / 46:     ....     ....  29.7929  29.5858
-list a[x=75w:65w]		! limits ignored --> behavior could be improved
-             VARIABLE : TEMP[I=155:170:2]
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-                75.5W    73.5W    71.5W    69.5W    67.5W    65.5W  
-                 1        2        3        4        5        6
- 1.5N  / 50:     ....     ....     ....     ....  29.5035  29.3966
- 1.17N / 49:     ....     ....     ....     ....  29.5373  29.4191
- 0.83N / 48:     ....     ....     ....     ....  29.6002  29.4689
- 0.5N  / 47:     ....     ....     ....     ....  29.6787  29.5330
- 0.17N / 46:     ....     ....     ....     ....  29.7929  29.5966
-list a[x=85w:45w:5]
-             VARIABLE : TEMP[I=155:170:2]
-                        regrid: 5 deg on X
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 9 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-                85W      80W      75W      70W      65W      60W      55W      50W      45W    
-                 1        2        3        4        5        6        7        8        9
- 1.5N  / 50:     ....     ....     ....     ....  29.4009     ....     ....     ....     ....
- 1.17N / 49:     ....     ....     ....     ....  29.4259     ....     ....     ....     ....
- 0.83N / 48:     ....     ....     ....     ....  29.4735     ....     ....     ....     ....
- 0.5N  / 47:     ....     ....     ....     ....  29.5338     ....     ....     ....     ....
- 0.17N / 46:     ....     ....     ....     ....  29.5939     ....     ....     ....     ....
-! ... by world coord
-LET/QUIET a = temp[x=90w:60W:4]
-! changes on 11/29 in CONFINE_AXIS this no longer an error ... a bit mysterious
-! changes on 4/98 in CONFINE_AXIS this is once again an error
-! Changes 5/2007 in GET_VAR_CONTEXT this is no longer an error (acm) !
-set mode ignore; list a; cancel mode ignore	! SET REGION mis-applied
-             VARIABLE : TEMP[X=90W:60W:4]
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 8 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-                90W      86W      82W      78W      74W      70W      66W      62W    
-                 1        2        3        4        5        6        7        8
- 1.5N  / 50:  27.2194  27.5576  27.9470     ....     ....     ....  29.3528  29.4885
- 1.17N / 49:  27.1122  27.4131  27.8883     ....     ....     ....  29.3882  29.5084
- 0.83N / 48:  26.9645  27.2528  27.7639     ....     ....     ....  29.4644  29.5380
- 0.5N  / 47:  26.7776  27.0851  27.5584     ....     ....     ....  29.5482  29.5745
- 0.17N / 46:  26.5410  26.8980  27.2770     ....     ....     ....  29.6283  29.6082
-list a[i=1:6]
-             VARIABLE : TEMP[X=90W:60W:4]
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-                90W      86W      82W      78W      74W      70W    
-                 1        2        3        4        5        6
- 1.5N  / 50:  27.2194  27.5576  27.9470     ....     ....     ....
- 1.17N / 49:  27.1122  27.4131  27.8883     ....     ....     ....
- 0.83N / 48:  26.9645  27.2528  27.7639     ....     ....     ....
- 0.5N  / 47:  26.7776  27.0851  27.5584     ....     ....     ....
- 0.17N / 46:  26.5410  26.8980  27.2770     ....     ....     ....
-list a[i=1:6:2]
-             VARIABLE : TEMP[X=90W:60W:4]
-                        regrid: 8 deg on X
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 3 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-                90W      82W      74W    
-                 1        2        3
- 1.5N  / 50:  27.2194  27.9470     ....
- 1.17N / 49:  27.1122  27.8883     ....
- 0.83N / 48:  26.9645  27.7639     ....
- 0.5N  / 47:  26.7776  27.5584     ....
- 0.17N / 46:  26.5410  27.2770     ....
-list a[i=-2:8:2]
-             VARIABLE : TEMP[X=90W:60W:4]
-                        regrid: 8 deg on X
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 4 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-                90W      82W      74W      66W    
-                 1        2        3        4
- 1.5N  / 50:  27.2194  27.9470     ....  29.3528
- 1.17N / 49:  27.1122  27.8883     ....  29.3882
- 0.83N / 48:  26.9645  27.7639     ....  29.4644
- 0.5N  / 47:  26.7776  27.5584     ....  29.5482
- 0.17N / 46:  26.5410  27.2770     ....  29.6283
-list a[x=129w:120w:2]		! no overlap
-             VARIABLE : TEMP[X=90W:60W:4]
-                        regrid: 2 deg on X
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-              129W127W125W123W121W
-               1   2   3   4   5
- 1.5N  / 50:....................
- 1.17N / 49:....................
- 0.83N / 48:....................
- 0.5N  / 47:....................
- 0.17N / 46:....................
-list a[x=92w:75w:3]
-             VARIABLE : TEMP[X=90W:60W:4]
-                        regrid: 3 deg on X
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-                92W      89W      86W      83W      80W      77W    
-                 1        2        3        4        5        6
- 1.5N  / 50:     ....  27.3039  27.5576  27.8497     ....     ....
- 1.17N / 49:     ....  27.1874  27.4131  27.7695     ....     ....
- 0.83N / 48:     ....  27.0366  27.2528  27.6362     ....     ....
- 0.5N  / 47:     ....  26.8545  27.0851  27.4401     ....     ....
- 0.17N / 46:     ....  26.6303  26.8980  27.1822     ....     ....
-list a[x=101w:50w:6]
-             VARIABLE : TEMP[X=90W:60W:4]
-                        regrid: 6 deg on X
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 9 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 14:00
-               101W      95W      89W      83W      77W      71W      65W      59W      53W    
-                 1        2        3        4        5        6        7        8        9
- 1.5N  / 50:     ....     ....  27.3039  27.8497     ....     ....  29.3867     ....     ....
- 1.17N / 49:     ....     ....  27.1874  27.7695     ....     ....  29.4183     ....     ....
- 0.83N / 48:     ....     ....  27.0366  27.6362     ....     ....  29.4828     ....     ....
- 0.5N  / 47:     ....     ....  26.8545  27.4401     ....     ....  29.5548     ....     ....
- 0.17N / 46:     ....     ....  26.6303  27.1822     ....     ....  29.6233     ....     ....
-cancel axis/modulo psxt
-show grid/dyn
-Dynamic grids:
-    GRID (G006)                          use count:   1
- name       axis              # pts   start                end
- (AX002)   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
- normal    E
- normal    F
-    GRID (G003)                          use count:   1
- name       axis              # pts   start                end
- (AX003)   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 (AX002)                         use count:   1
-    AXIS (AX003)                         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
- !-> list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:144 at ave]   ! 6-day ave
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: 144 hour on T at AVE
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 points (TIME)
-             LONGITUDE: 180E (interpolated)
-             LATITUDE : 0 (interpolated)
-             DEPTH (m): 5
- 15-JAN-1982 00 / 1:  27.7767
- 21-JAN-1982 00 / 2:  27.7818
- 27-JAN-1982 00 / 3:  27.6992
- 02-FEB-1982 00 / 4:  27.8253
- 08-FEB-1982 00 / 5:  27.7319
-! ... note that the "explicit limits" changes to Ferret V4.20 mean that
-! ... an explicit L=1 qualifying the command **WILL** apply
-list/k=1/y=0/x=180/l=1 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave]
- !-> list/k=1/y=0/x=180/l=1 temp[t=15-JAN-1982:11-FEB-1982:144 at ave]
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: 144 hour on T at AVE
-             FILENAME : gtsa056_1.cdf
-             LONGITUDE: 180E (interpolated)
-             LATITUDE : 0 (interpolated)
-             DEPTH (m): 5
-             TIME     : 15-JAN-1982 00:00
-          27.7767
-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]			! pseudo-var
-             VARIABLE : T
-                        axis (AX004)
-             SUBSET   : 3 points (TIME)
- 15-JAN-1982 00 / 1:  723925.
- 17-JAN-1982 00 / 2:  723927.
- 19-JAN-1982 00 / 3:  723929.
- 
-cancel var/all
-show grid/dyn
-Dynamic grids:
-    no implicit grids
-Dynamic axes:
-    no implicit axes
-set axis/modulo psxt
- 
-set mode/last diag
- 
-GO bn_reset
-cancel mode verify
-GO bn_cdf
-! bn320_cdf
-! benchmark to test netCDF input and output
-! requires version 3.20 or later
-! updated from version 2.3 1/26/95
-!      added reverse-axis tests 3/2/95
-! V5 *sh* 7/99 -- added /clobber
- 
-! test many simultaneous netCDF files
-GO bn_cdf.sub1
-! bn230_cdf.sub1
-! benchmark to test multiple netCDF simultaneous accesses
-! requires version 2.30 or later
-! 6/92
- 
-! V5 *sh* 7/99 -- clean up files before writing
- 
-cancel region
-canc var/all
-cancel data/all
- 
-! delete old ones
-sp rm -f test0[a-p].cdf
- 
-! write a bunch of em
-list/format=cdf/append/l=1:500/file=test0a.cdf l
-list/format=cdf/append/l=1:500/file=test0b.cdf/rigid l
-list/format=cdf/append/l=1:500/file=test0c.cdf/rigid l
-list/format=cdf/append/l=1:500/file=test0d.cdf/rigid l
-list/format=cdf/append/l=1:500/file=test0e.cdf/rigid l
-list/format=cdf/append/l=1:500/file=test0f.cdf/rigid l
-list/format=cdf/append/l=1:500/file=test0g.cdf/rigid l
-list/format=cdf/append/l=1:500/file=test0h.cdf/rigid l
-list/format=cdf/append/l=1:500/file=test0i.cdf/rigid l
-list/format=cdf/append/l=1:500/file=test0j.cdf/rigid l
-list/format=cdf/append/l=1:500/file=test0k.cdf/rigid l
-list/format=cdf/append/l=1:500/file=test0l.cdf/rigid l
-list/format=cdf/append/l=1:500/file=test0m.cdf/rigid l
-list/format=cdf/append/l=1:500/file=test0n.cdf/rigid l
-list/format=cdf/append/l=1:500/file=test0o.cdf/rigid l
-list/format=cdf/append/l=1:500/file=test0p.cdf/rigid l
- 
-! initialize all at once
-set data/format=cdf test0a, test0b, test0c, test0d, test0e, test0f, test0g, test0h, test0i, test0j, test0k, test0l, test0n, test0m, test0o, test0p
-show data 1
-     currently SET data sets:
-    1> ./test0a.cdf
- name     title                             I         J         K         L         M         N
- L_       L                                ...       ...       ...       1:500     ...       ...
-       (axis ABSTRACT)
- 
-show data/br
-     currently SET data sets:
-    1> ./test0a.cdf
-    2> ./test0b.cdf
-    3> ./test0c.cdf
-    4> ./test0d.cdf
-    5> ./test0e.cdf
-    6> ./test0f.cdf
-    7> ./test0g.cdf
-    8> ./test0h.cdf
-    9> ./test0i.cdf
-   10> ./test0j.cdf
-   11> ./test0k.cdf
-   12> ./test0l.cdf
-   13> ./test0n.cdf
-   14> ./test0m.cdf
-   15> ./test0o.cdf
-   16> ./test0p.cdf  (default)
- 
-! test access to one
-stat l_[d=1]
- 
-             L
-             axis ABSTRACT
-             X:  N/A
-             Y:  N/A
-             Z:  N/A
-             T: 0.5 to 500.5
-             E:  N/A
-             F:  N/A
-             DATA SET: ./test0a.cdf
- 
- Total # of data points: 500 (1*1*1*500*1*1)
- # flagged as bad  data: 0
- Minimum value: 1
- Maximum value: 500
- Mean    value: 250.5 (unweighted average)
- Standard deviation: 144.48
- 
-! test access to all
-stat l_[d=1]-l_[d=2]+l_[d=3]-l_[d=4]+l_[d=5]-l_[d=6]+l_[d=7]-l_[d=8]+l_[d=9]-l_[d=10]+l_[d=11]-l_[d=12]+l_[d=13]-l_[d=14]+l_[d=15]-l_[d=16]
- 
-             L_[D=test0a]-L_[D=test0b]+L_[D=test0c]-L_[D=test0d]+L_[D=test0e]-L_[D=test0f]+L_[D=test0g]-L_[D=test0h]+L_[D=test0i]-L_[D=test0j]+L_[D=test0k]-L_[D=test0l]+L_[D=test0n]-L_[D=test0m
-             X:  N/A
-             Y:  N/A
-             Z:  N/A
-             T: 0.5 to 500.5
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 500 (1*1*1*500*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
-cancel data/all
- 
-! test abstract variable io
-GO bn_cdf.sub2
-! bn230_cdf.sub2
-! benchmark to test abstract variable netCDF input and output
-! requires version 2.30 or later
-! 6/92
- 
-! V5 *sh* 7/99 added /CLOBBER
- 
-cancel region
-canc var/all
-cancel data/all
- 
-! define a realistic time series grid
-define axis/t="1-jan-1902":"1-jan-2010":1/unit=day tcentury
-define grid/like=abstract/t=tcentury gcentury
-let tlong = t[g=gcentury]
- 
-let i1 = i
-let j1 = j
-let k1 = k
-let l1 = l[g=gcentury]
-let l2 = l
-let ij = i+j
-let ik = i+k
-let il = i+l1
-let jk = j+k
-let jl = j+l1
-let kl = k+l1
-let ijk = i+j+k
-let ikl = i+k+l1
-let ijl = i+j+l1
-let jkl = j+k+l1
-let ijkl = i+j+k+l1
-let ijk2 = i+j+k
-let ikl2 = i+k+l1
-let ijl2 = i+j+l1
-let jkl2 = j+k+l1
-let iavejkl = ijkl[i=@ave]
-let ijavekl = ijkl[j=@ave]
-let ijkavel = ijkl[k=@ave]
-let ijklave = ijkl[l=@ave]
- 
-! a bunch of basic geometries
-! 1d
-list/format=cdf/i=1:10/clobber/file=test_abs.cdf i1   ! not /APPEND - must be new
-list/format=cdf/j=1:20/append/file=test_abs.cdf j1
-list/format=cdf/k=1:100/append/file=test_abs.cdf k1
-list/format=cdf/l=1:10/append/file=test_abs.cdf l1           ! record axis
-list/format=cdf/l=1:10/append/file=test_abs.cdf l2           ! rigid axis
- 
-! 2D
-list/format=cdf/i=1:10/j=1:20/append/file=test_abs.cdf ij
-list/format=cdf/i=1:10/k=1:100/append/file=test_abs.cdf ik
-list/format=cdf/i=1:10/l=5:10/append/file=test_abs.cdf il
-list/format=cdf/k=1:100/j=1:20/append/file=test_abs.cdf jk
- 
-!3D
-set region/i=1:10/j=1:20/k=1:100/l=4:8
-list/format=cdf/append/file=test_abs.cdf ijk
-list/format=cdf/append/file=test_abs.cdf ikl
-list/format=cdf/append/file=test_abs.cdf ijl
-list/format=cdf/append/file=test_abs.cdf jkl
- 
-!4D
-list/format=cdf/append/file=test_abs.cdf ijkl
- 
-! extend along time axis and write sub-regions
-! (note: this may leave undefined regions in other variables)
-list/format=cdf/append/file=test_abs.cdf/i=1:5 /j=1:5 /l=11:12 ijl
-list/format=cdf/append/file=test_abs.cdf/i=6:10/j=1:5 /l=11:12 ijl
-list/format=cdf/append/file=test_abs.cdf/i=1:5 /j=6:10/l=11:12 ijl
-list/format=cdf/append/file=test_abs.cdf/i=6:10/j=6:10/l=11:12 ijl
- 
-! rewrite a sub-region in the middle of the data
-list/format=cdf/append/file=test_abs.cdf/i=6:8/j=6:8/l=8:10/k=3:5 ijkl
- 
-! check documentation of transforms
-list/format=cdf/append/file=test_abs.cdf ijk2[i=@ave]
-list/format=cdf/append/file=test_abs.cdf ikl2[i=@ave,k=@sbx:3]
-list/format=cdf/append/file=test_abs.cdf ijl2[i=@ave,j=@ave]
-list/format=cdf/append/file=test_abs.cdf jkl2[k=@ave,l=@ave]
-list/format=cdf/append/file=test_abs.cdf iavejkl
-list/format=cdf/append/file=test_abs.cdf ijavekl
-list/format=cdf/append/file=test_abs.cdf ijkavel
-list/format=cdf/append/file=test_abs.cdf ijklave
- 
-! look at what we've created - time axis should be regular
-set data/format=cdf test_abs
-show data/full
-     currently SET data sets:
-    1> ./test_abs.cdf  (default)
- 
- name     title                             I         J         K         L         M         N
- I1       I                                1:10      ...       ...       ...       ...       ...
-               on grid GEU1 with -1.E+34 for missing data
-             X=0.5:10.5  
- J1       J                                ...       1:20      ...       ...       ...       ...
-               on grid GEU2 with -1.E+34 for missing data
-             Y=0.5:20.5  
- K1       K                                ...       ...       1:100     ...       ...       ...
-               on grid GEU3 with -1.E+34 for missing data
-             Z=0.5:100.5  
- L1       L[G=GCENTURY]                    ...       ...       ...       1:12      ...       ...
-               on grid GEU4 with -1.E+34 for missing data
-             
- L2       L                                ...       ...       ...       1:10      ...       ...
-               on grid GEU5 with -1.E+34 for missing data
-             
- IJ       I+J                              1:10      1:20      ...       ...       ...       ...
-               on grid GEU6 with -1.E+34 for missing data
-             X=0.5:10.5  Y=0.5:20.5  
- IK       I+K                              1:10      ...       1:100     ...       ...       ...
-               on grid GEU7 with -1.E+34 for missing data
-             X=0.5:10.5  Z=0.5:100.5  
- IL       I+L1                             1:10      ...       ...       1:12      ...       ...
-               on grid GEU8 with -1.E+34 for missing data
-             X=0.5:10.5  
- JK       J+K                              ...       1:20      1:100     ...       ...       ...
-               on grid GEU9 with -1.E+34 for missing data
-             Y=0.5:20.5  Z=0.5:100.5  
- IJK      I+J+K                            1:10      1:20      1:100     ...       ...       ...
-               on grid GEU10 with -1.E+34 for missing data
-             X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IKL      I+K+L1                           1:10      ...       1:100     1:12      ...       ...
-               on grid GEU11 with -1.E+34 for missing data
-             X=0.5:10.5  Z=0.5:100.5  
- IJL      I+J+L1                           1:10      1:20      ...       1:12      ...       ...
-               on grid GEU12 with -1.E+34 for missing data
-             X=0.5:10.5  Y=0.5:20.5  
- JKL      J+K+L1                           ...       1:20      1:100     1:12      ...       ...
-               on grid GEU13 with -1.E+34 for missing data
-             Y=0.5:20.5  Z=0.5:100.5  
- IJKL     I+J+K+L1                         1:10      1:20      1:100     1:12      ...       ...
-               on grid GEU14 with -1.E+34 for missing data
-             X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IJK2     I+J+K                            ...       1:20      1:100     ...       ...       ...
-       (X=0.5:10.5 at AVE)
-               on grid GEU9 with -1.E+34 for missing data
-             Y=0.5:20.5  Z=0.5:100.5  
- IKL2     I+K+L1                           ...       ...       1:100     1:12      ...       ...
-       (X=0.5:10.5 at AVE, box smoothed by 3 pts on Z)
-               on grid GEU15 with -1.E+34 for missing data
-             Z=0.5:100.5  
- IJL2     I+J+L1                           ...       ...       ...       1:12      ...       ...
-       (X=0.5:10.5 at AV4, Y=0.5:20.5 at AV4)
-               on grid GEU4 with -1.E+34 for missing data
-             
- JKL2     J+K+L1                           ...       1:20      ...       ...       ...       ...
-       (Z=0.5:100.5 at AV4, T=03-JAN-1902 12:00:08-JAN-1902 12:00 at AV4)
-               on grid GEU2 with -1.E+34 for missing data
-             Y=0.5:20.5  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:12      ...       ...
-       (X=0.5:10.5)
-               on grid GEU13 with -1.E+34 for missing data
-             Y=0.5:20.5  Z=0.5:100.5  
- IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:12      ...       ...
-       (Y=0.5:20.5)
-               on grid GEU11 with -1.E+34 for missing data
-             X=0.5:10.5  Z=0.5:100.5  
- IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:12      ...       ...
-       (Z=0.5:100.5)
-               on grid GEU12 with -1.E+34 for missing data
-             X=0.5:10.5  Y=0.5:20.5  
- IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...       ...       ...
-       (T=03-JAN-1902 12:00:08-JAN-1902 12:00)
-               on grid GEU10 with -1.E+34 for missing data
-             X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- 
-  time range: 01-JAN-1902 00:00 to 12-JAN-1902 00:00
- 
-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
- normal    E
- normal    F
-cancel data test_abs
- 
-! make the time axis irregular by leaving out l=13
-list/format=cdf/l=14:16/append/file=test_abs.cdf l1
-set data/format=cdf test_abs
-show data/full
-     currently SET data sets:
-    1> ./test_abs.cdf  (default)
- 
- name     title                             I         J         K         L         M         N
- I1       I                                1:10      ...       ...       ...       ...       ...
-               on grid GEU1 with -1.E+34 for missing data
-             X=0.5:10.5  
- J1       J                                ...       1:20      ...       ...       ...       ...
-               on grid GEU2 with -1.E+34 for missing data
-             Y=0.5:20.5  
- K1       K                                ...       ...       1:100     ...       ...       ...
-               on grid GEU3 with -1.E+34 for missing data
-             Z=0.5:100.5  
- L1       L[G=GCENTURY]                    ...       ...       ...       1:15      ...       ...
-               on grid GEU4 with -1.E+34 for missing data
-             
- L2       L                                ...       ...       ...       1:10      ...       ...
-               on grid GEU5 with -1.E+34 for missing data
-             
- IJ       I+J                              1:10      1:20      ...       ...       ...       ...
-               on grid GEU6 with -1.E+34 for missing data
-             X=0.5:10.5  Y=0.5:20.5  
- IK       I+K                              1:10      ...       1:100     ...       ...       ...
-               on grid GEU7 with -1.E+34 for missing data
-             X=0.5:10.5  Z=0.5:100.5  
- IL       I+L1                             1:10      ...       ...       1:15      ...       ...
-               on grid GEU8 with -1.E+34 for missing data
-             X=0.5:10.5  
- JK       J+K                              ...       1:20      1:100     ...       ...       ...
-               on grid GEU9 with -1.E+34 for missing data
-             Y=0.5:20.5  Z=0.5:100.5  
- IJK      I+J+K                            1:10      1:20      1:100     ...       ...       ...
-               on grid GEU10 with -1.E+34 for missing data
-             X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IKL      I+K+L1                           1:10      ...       1:100     1:15      ...       ...
-               on grid GEU11 with -1.E+34 for missing data
-             X=0.5:10.5  Z=0.5:100.5  
- IJL      I+J+L1                           1:10      1:20      ...       1:15      ...       ...
-               on grid GEU12 with -1.E+34 for missing data
-             X=0.5:10.5  Y=0.5:20.5  
- JKL      J+K+L1                           ...       1:20      1:100     1:15      ...       ...
-               on grid GEU13 with -1.E+34 for missing data
-             Y=0.5:20.5  Z=0.5:100.5  
- IJKL     I+J+K+L1                         1:10      1:20      1:100     1:15      ...       ...
-               on grid GEU14 with -1.E+34 for missing data
-             X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IJK2     I+J+K                            ...       1:20      1:100     ...       ...       ...
-       (X=0.5:10.5 at AVE)
-               on grid GEU9 with -1.E+34 for missing data
-             Y=0.5:20.5  Z=0.5:100.5  
- IKL2     I+K+L1                           ...       ...       1:100     1:15      ...       ...
-       (X=0.5:10.5 at AVE, box smoothed by 3 pts on Z)
-               on grid GEU15 with -1.E+34 for missing data
-             Z=0.5:100.5  
- IJL2     I+J+L1                           ...       ...       ...       1:15      ...       ...
-       (X=0.5:10.5 at AV4, Y=0.5:20.5 at AV4)
-               on grid GEU4 with -1.E+34 for missing data
-             
- JKL2     J+K+L1                           ...       1:20      ...       ...       ...       ...
-       (Z=0.5:100.5 at AV4, T=03-JAN-1902 12:00:08-JAN-1902 12:00 at AV4)
-               on grid GEU2 with -1.E+34 for missing data
-             Y=0.5:20.5  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:15      ...       ...
-       (X=0.5:10.5)
-               on grid GEU13 with -1.E+34 for missing data
-             Y=0.5:20.5  Z=0.5:100.5  
- IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:15      ...       ...
-       (Y=0.5:20.5)
-               on grid GEU11 with -1.E+34 for missing data
-             X=0.5:10.5  Z=0.5:100.5  
- IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:15      ...       ...
-       (Z=0.5:100.5)
-               on grid GEU12 with -1.E+34 for missing data
-             X=0.5:10.5  Y=0.5:20.5  
- IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...       ...       ...
-       (T=03-JAN-1902 12:00:08-JAN-1902 12:00)
-               on grid GEU10 with -1.E+34 for missing data
-             X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- 
-  time range: 01-JAN-1902 00:00 to 16-JAN-1902 00:00
- 
-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
- normal    E
- normal    F
- 
- 
-! list long time series using a rigid (non-record axis) time axis --> FAST
-list/clobber/format=cdf/l=1:300000/rigid/file=test2.cdf l  ! without record dimension
-! list time series using the record dimension --> SLOW (1/50th as long axis)
-list/clobber/format=cdf/l=1:5000 l                               ! auto-filename
-list/clobber/format=cdf/t="1-jan-1902":"1-jan-2010"/rigid tlong  ! auto-filename
- 
- 
-cancel data/all
-! deliberate errors
-set mode ignore
-list/format=cdf/l=1:10/file=test_abs.cdf l    ! file exists error
-list/format=cdf/i=5:15/l=5:10/append/file=test_abs.cdf il  ! inconsistent i limits
-list/format=cdf/i=1:10/j=20:25/append/file=test_abs.cdf ij ! inconsistent j limits
-list/format=cdf/append/file=test_abs.cdf ijl2              ! i and j not avg'd
-list/format=cdf/append/file=test_abs.cdf ijkl[k=@ave]      ! k axis averaged
-list/format=cdf/l=13/append/file=test_abs.cdf l1           ! inconsistent time pt
-set data/format=cdf test0a, test0b, test0c, test0d, test0e, test0f, test0g, test0h, test0i, test0j, test0k, test0l, test0n, test0m, test0o, test0p
-list/clobber/format=cdf/i=1:10 i                                ! too many netcdf files
-canc data/all
-cancel mode ignore
- 
-! show the grids created
-cancel variables/all
-set data/format=cdf test_abs
-show grid j1 jkl jkl2 iavejkl ijkl
-    GRID GEU2
- name       axis              # pts   start                end
- normal    X
- YAX1_20   Y                   20 r   1                    20
- normal    Z
- normal    T
- normal    E
- normal    F
-    GRID GEU13
- name       axis              # pts   start                end
- 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
- normal    E
- normal    F
-    GRID GEU2
- name       axis              # pts   start                end
- normal    X
- YAX1_20   Y                   20 r   1                    20
- normal    Z
- normal    T
- normal    E
- normal    F
-    GRID GEU13
- name       axis              # pts   start                end
- 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
- 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
- normal    E
- normal    F
-cancel data test_abs
- 
-! test TMAP data io
-GO bn_cdf.sub3 	! matches old outputs by using /HEADING=enhanced
-! bn320_cdf.sub3
-! benchmark to test netCDF input and output of TMAP data set variables
-! this routine added 1/26/95 to test the SAVE/HEADING=enhanced option
- 
-! V5 *sh* 7/99 added /CLOBBER
- 
-cancel data/all
-cancel variables/all
-cancel region
- 
-use gtbc011
- 
-let i1 = x[g=temp,i=1:10]
-let j1 = y[g=temp,j=5:10]
-let k1 = z[g=u,k=5:15]
-let l1 = l[g=u,l=1:3]
-let l2 = l
-let ij = taux[l=@ave]
-let ik = i1+k1
-let il = i1+l1
-let jk = j1+k1
-let jl = j1+l1
-let kl = k1+l1
-let ijk = temp[l=@ave]
-let ikl = temp[j=@ave]
-let ijl = temp[k=@ave]
-let jkl = temp[i=@ave]
-let ijkl = u
-let ijk2 = temp
-let iavejkl = ijkl[i=@ave]
-let ijavekl = ijkl[j=@ave]
-let ijkavel = ijkl[k=@ave]
-let ijklave = ijkl[l=@ave]
- 
-set region/l=1:2  ! i,j, and k unspecified
- 
-! a bunch of basic geometries
-! 1d
-list/format=cdf/clobber/file=test_fil0.cdf/heading="enh" i1      ! not /APPEND - must be new
-list/format=cdf/append/file=test_fil0.cdf/heading="enh" j1
-list/format=cdf/append/file=test_fil0.cdf/heading="enh" k1
-list/format=cdf/append/file=test_fil0.cdf/heading="enh" l1       ! record axis
-list/format=cdf/append/file=test_fil0.cdf/heading="enh" l2       ! rigid axis
- 
-! 2D
-list/format=cdf/append/file=test_fil0.cdf/heading="enh" ij
-list/format=cdf/append/file=test_fil0.cdf/heading="enh" ik
-list/format=cdf/append/file=test_fil0.cdf/heading="enh" il
-list/format=cdf/append/file=test_fil0.cdf/heading="enh" jk
- 
-!3D
-list/format=cdf/append/file=test_fil0.cdf/heading="enh" ijk
-list/format=cdf/append/file=test_fil0.cdf/heading="enh" ikl
-list/format=cdf/append/file=test_fil0.cdf/heading="enh" ijl
-list/format=cdf/append/file=test_fil0.cdf/heading="enh" jkl
- 
-!4D
-list/format=cdf/append/file=test_fil0.cdf/heading="enh" ijkl
- 
-! extend along time axis and write sub-regions
-! (note: this may leave undefined regions in other variables)
-list/format=cdf/append/file=test_fil0.cdf/heading="enh"/j=1:50/l=2:3 ijl
-list/format=cdf/append/file=test_fil0.cdf/heading="enh"/j=51:100/l=2:3 ijl
- 
-! rewrite a sub-region in the middle of the data
-list/format=cdf/append/file=test_fil0.cdf/heading="enh"/j=30:40/k=5/l=1:3 ijkl
- 
-! check documentation of transforms
-list/format=cdf/append/file=test_fil0.cdf/heading="enh" iavejkl
-list/format=cdf/append/file=test_fil0.cdf/heading="enh" ijavekl
-list/format=cdf/append/file=test_fil0.cdf/heading="enh" ijkavel
-list/format=cdf/append/file=test_fil0.cdf/heading="enh" ijklave
- 
-! look at what we've created - time axis should be regular
-set data/format=cdf test_fil0
-show data/full
-     currently SET data sets:
-    1> ./gtbc011.cdf
- 
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
-             deg. C on grid PS3DT1 with -1.E+34 for missing data
-             X=161W:158W  Y=30S:50N  Z=0:4149  
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
-             frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
-             X=161W:159W  Y=30S:50N  Z=0:4149  
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
-             cm/sec on grid PS3DU1 with -1.E+34 for missing data
-             X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
-             cm/sec on grid PS3DU1 with -1.E+34 for missing data
-             X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
-             cm/sec on grid PS3DW1 with -1.E+34 for missing data
-             X=161W:159W  Y=30S:50N  Z=5:4149  
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
-             dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
-             X=161.5W:158.5W  Y=28.84S:51.43N  
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
-             dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
-             X=161.5W:158.5W  Y=28.84S:51.43N  
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
-             cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
-             X=161.5W:156.5W  Y=28.84S:51.43N  
- 
-  time range: 15-MAR-1983 10:00 to 15-MAR-1983 12:00
- 
-    2> ./test_fil0.cdf  (default)
- 
- name     title                             I         J         K         L         M         N
- I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...       ...       ...
-               on grid PS3DT1_NYZT with -1.E+34 for missing data
-             X=130E:140E  
- J1       Y[G=TEMP,J=5:10]                 ...       5:10      ...       ...       ...       ...
-               on grid PS3DT1_NXZT with -1.E+34 for missing data
-             Y=21.11S:12.52S  
- K1       Z[G=U,K=5:15]                    ...       ...       5:15      ...       ...       ...
-               on grid PS3DU1_NXYT with -1.E+34 for missing data
-             Z=40:190  
- L1       L[G=U,L=1:3]                     ...       ...       ...       1:3       ...       ...
-               on grid GRH1 with -1.E+34 for missing data
-             
- L2       L                                ...       ...       ...       1:2       ...       ...
-               on grid GRH2 with -1.E+34 for missing data
-             
- IJ       TAUX[L=@AVE]                    69:71      1:100     ...       ...       ...       ...
-       (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
-               on grid PS2DU1_NT with -1.E+34 for missing data
-             X=161.5W:158.5W  Y=28.84S:51.43N  
- IK       I1+K1                            1:10      ...       5:15      ...       ...       ...
-               on grid G016_NYT with -1.E+34 for missing data
-             X=130E:140E  Z=40:190  
- IL       I1+L1                            1:10      ...       ...       1:3       ...       ...
-               on grid G016_NYZ with -1.E+34 for missing data
-             X=130E:140E  
- JK       J1+K1                            ...       5:10      5:15      ...       ...       ...
-               on grid G007_NXT with -1.E+34 for missing data
-             Y=21.11S:12.52S  Z=40:190  
- IJK      TEMP[L=@AVE]                    70:72      1:100     1:27      ...       ...       ...
-       (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
-               on grid PS3DT1_NT with -1.E+34 for missing data
-             X=161W:158W  Y=30S:50N  Z=0:4149  
- IKL      TEMP[J=@AVE]                    70:72      ...       1:27      1:3       ...       ...
-       (Y=30S:50N)
-               on grid PS3DT1_NY with -1.E+34 for missing data
-             X=161W:158W  Z=0:4149  
- IJL      TEMP[K=@AVE]                    70:72      1:100     ...       1:3       ...       ...
-       (Z=0:4149)
-               on grid PS3DT1_NZ with -1.E+34 for missing data
-             X=161W:158W  Y=30S:50N  
- JKL      TEMP[I=@AVE]                     ...       1:100     1:27      1:3       ...       ...
-       (X=161W:158W)
-               on grid GRH3 with -1.E+34 for missing data
-             Y=30S:50N  Z=0:4149  
- IJKL     U                               69:72      1:100     1:27      1:3       ...       ...
-               on grid PS3DU1 with -1.E+34 for missing data
-             X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:100     1:27      1:3       ...       ...
-       (X=161.5W:157.5W)
-               on grid GRH4 with -1.E+34 for missing data
-             Y=28.84S:51.43N  Z=0:4149  
- IJAVEKL  IJKL[J=@AVE]                    69:72      ...       1:27      1:3       ...       ...
-       (Y=28.84S:51.43N)
-               on grid PS3DU1_NY with -1.E+34 for missing data
-             X=161.5W:157.5W  Z=0:4149  
- IJKAVEL  IJKL[K=@AVE]                    69:72      1:100     ...       1:3       ...       ...
-       (Z=0:4149)
-               on grid PS3DU1_NZ with -1.E+34 for missing data
-             X=161.5W:157.5W  Y=28.84S:51.43N  
- IJKLAVE  IJKL[L=@AVE]                    69:72      1:100     1:27      ...       ...       ...
-       (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
-               on grid PS3DU1_NT with -1.E+34 for missing data
-             X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- 
-  time range: 15-MAR-1983 10:00 to 15-MAR-1983 12:00
- 
-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
- normal    E
- normal    F
-cancel data test_fil0
-! 5/99 moved old bn230_cdf.sub3 to bn_cdf.sub4 to stay inline w/ old benchmarks *kob*
-GO bn_cdf.sub4
-! bn230_cdf
-! benchmark to test netCDF input and output of TMAP data set variables
-! requires version 2.30 or later
-! 6/92
- 
-! V5 *sh* 7/99 -- added /CLOBBER
- 
-cancel data/all
-cancel variables/all
-cancel region
- 
-use gtbc011
- 
-let i1 = x[g=temp,i=1:10]
-let j1 = y[g=temp,j=5:10]
-let k1 = z[g=u,k=5:15]
-let l1 = l[g=u,l=1:3]
-let l2 = l
-let ij = taux[l=@ave]
-let ik = i1+k1
-let il = i1+l1
-let jk = j1+k1
-let jl = j1+l1
-let kl = k1+l1
-let ijk = temp[l=@ave]
-let ikl = temp[j=@ave]
-let ijl = temp[k=@ave]
-let jkl = temp[i=@ave]
-let ijkl = u
-let ijk2 = temp
-let iavejkl = ijkl[i=@ave]
-let ijavekl = ijkl[j=@ave]
-let ijkavel = ijkl[k=@ave]
-let ijklave = ijkl[l=@ave]
- 
-set region/l=1:2  ! i,j, and k unspecified
- 
-! a bunch of basic geometries
-! 1d
-list/format=cdf/clobber/file=test_fil.cdf i1      ! not /APPEND - must be new
-list/format=cdf/append/file=test_fil.cdf j1
-list/format=cdf/append/file=test_fil.cdf k1
-list/format=cdf/append/file=test_fil.cdf l1           ! record axis
-list/format=cdf/append/file=test_fil.cdf l2          ! rigid axis
- 
-! 2D
-list/format=cdf/append/file=test_fil.cdf ij
-list/format=cdf/append/file=test_fil.cdf ik
-list/format=cdf/append/file=test_fil.cdf il
-list/format=cdf/append/file=test_fil.cdf jk
- 
-!3D
-list/format=cdf/append/file=test_fil.cdf ijk
-list/format=cdf/append/file=test_fil.cdf ikl
-list/format=cdf/append/file=test_fil.cdf ijl
-list/format=cdf/append/file=test_fil.cdf jkl
- 
-!4D
-list/format=cdf/append/file=test_fil.cdf ijkl
- 
-! extend along time axis and write sub-regions
-! (note: this may leave undefined regions in other variables)
-list/format=cdf/append/file=test_fil.cdf/j=1:50/l=2:3 ijl
-list/format=cdf/append/file=test_fil.cdf/j=51:100/l=2:3 ijl
- 
-! rewrite a sub-region in the middle of the data
-list/format=cdf/append/file=test_fil.cdf/j=30:40/k=5/l=1:3 ijkl
- 
-! check documentation of transforms
-list/format=cdf/append/file=test_fil.cdf iavejkl
-list/format=cdf/append/file=test_fil.cdf ijavekl
-list/format=cdf/append/file=test_fil.cdf ijkavel
-list/format=cdf/append/file=test_fil.cdf ijklave
- 
-! look at what we've created - time axis should be regular
-set data/format=cdf test_fil
-show data/full
-     currently SET data sets:
-    1> ./gtbc011.cdf
- 
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
-             deg. C on grid PS3DT1 with -1.E+34 for missing data
-             X=161W:158W  Y=30S:50N  Z=0:4149  
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
-             frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
-             X=161W:159W  Y=30S:50N  Z=0:4149  
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
-             cm/sec on grid PS3DU1 with -1.E+34 for missing data
-             X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
-             cm/sec on grid PS3DU1 with -1.E+34 for missing data
-             X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
-             cm/sec on grid PS3DW1 with -1.E+34 for missing data
-             X=161W:159W  Y=30S:50N  Z=5:4149  
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
-             dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
-             X=161.5W:158.5W  Y=28.84S:51.43N  
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
-             dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
-             X=161.5W:158.5W  Y=28.84S:51.43N  
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
-             cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
-             X=161.5W:156.5W  Y=28.84S:51.43N  
- 
-  time range: 15-MAR-1983 10:00 to 15-MAR-1983 12:00
- 
-    2> ./test_fil.cdf  (default)
- 
- name     title                             I         J         K         L         M         N
- I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...       ...       ...
-               on grid GLZ1 with -1.E+34 for missing data
-             X=130E:140E  
- J1       Y[G=TEMP,J=5:10]                 ...       1:6       ...       ...       ...       ...
-               on grid GLZ2 with -1.E+34 for missing data
-             Y=21.11S:12.52S  
- K1       Z[G=U,K=5:15]                    ...       ...       1:11      ...       ...       ...
-               on grid GLZ3 with -1.E+34 for missing data
-             Z=40:190  
- L1       L[G=U,L=1:3]                     ...       ...       ...       1:3       ...       ...
-               on grid GLZ4 with -1.E+34 for missing data
-             
- L2       L                                ...       ...       ...       1:2       ...       ...
-               on grid GLZ5 with -1.E+34 for missing data
-             
- IJ       TAUX[L=@AVE]                     1:3       1:100     ...       ...       ...       ...
-       (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
-               on grid GLZ6 with -1.E+34 for missing data
-             X=161.5W:158.5W  Y=28.84S:51.43N  
- IK       I1+K1                            1:10      ...       1:11      ...       ...       ...
-               on grid GLZ7 with -1.E+34 for missing data
-             X=130E:140E  Z=40:190  
- IL       I1+L1                            1:10      ...       ...       1:3       ...       ...
-               on grid GLZ8 with -1.E+34 for missing data
-             X=130E:140E  
- JK       J1+K1                            ...       1:6       1:11      ...       ...       ...
-               on grid GLZ9 with -1.E+34 for missing data
-             Y=21.11S:12.52S  Z=40:190  
- IJK      TEMP[L=@AVE]                     1:3       1:100     1:27      ...       ...       ...
-       (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
-               on grid GLZ10 with -1.E+34 for missing data
-             X=161W:158W  Y=30S:50N  Z=0:4149  
- IKL      TEMP[J=@AVE]                     1:3       ...       1:27      1:3       ...       ...
-       (Y=30S:50N)
-               on grid GLZ11 with -1.E+34 for missing data
-             X=161W:158W  Z=0:4149  
- IJL      TEMP[K=@AVE]                     1:3       1:100     ...       1:3       ...       ...
-       (Z=0:4149)
-               on grid GLZ12 with -1.E+34 for missing data
-             X=161W:158W  Y=30S:50N  
- JKL      TEMP[I=@AVE]                     ...       1:100     1:27      1:3       ...       ...
-       (X=161W:158W)
-               on grid GLZ13 with -1.E+34 for missing data
-             Y=30S:50N  Z=0:4149  
- IJKL     U                                1:4       1:100     1:27      1:3       ...       ...
-               on grid GLZ14 with -1.E+34 for missing data
-             X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:100     1:27      1:3       ...       ...
-       (X=161.5W:157.5W)
-               on grid GLZ15 with -1.E+34 for missing data
-             Y=28.84S:51.43N  Z=0:4149  
- IJAVEKL  IJKL[J=@AVE]                     1:4       ...       1:27      1:3       ...       ...
-       (Y=28.84S:51.43N)
-               on grid GLZ16 with -1.E+34 for missing data
-             X=161.5W:157.5W  Z=0:4149  
- IJKAVEL  IJKL[K=@AVE]                     1:4       1:100     ...       1:3       ...       ...
-       (Z=0:4149)
-               on grid GLZ17 with -1.E+34 for missing data
-             X=161.5W:157.5W  Y=28.84S:51.43N  
- IJKLAVE  IJKL[L=@AVE]                     1:4       1:100     1:27      ...       ...       ...
-       (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
-               on grid GLZ18 with -1.E+34 for missing data
-             X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- 
-  time range: 15-MAR-1983 10:00 to 15-MAR-1983 12:00
- 
-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
- normal    E
- normal    F
-cancel data test_fil
-GO bn_cdf_reversed.sub
-! bn320_cdf_reversed.sub
-! benchmark to test netCDF input of reverse-coordinate axes
-! this routine added 3/2/95
- 
-cancel data/all
-cancel variables/all
-cancel region
- 
-set data reverse_axes
- 
-show data/var
-     currently SET data sets:
-    1> ./reverse_axes.cdf  (default)
- 
- name     title                             I         J         K         L         M         N
- FCN_NORM COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...       ...       ...
-               on grid GAF1 with -1.E+34 for missing data
-             X=129.5E:179.5W  Y=10.5S:10.5N  
- FCN_REV  COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...       ...       ...
-               on grid GAF2 with -1.E+34 for missing data
-             X=129.5E:179.5W  Y=10.5S:10.5N  
- FCN_REV_SUB
-          COS(X/10)*SIN(Y/2)               1:51     10:19      ...       ...       ...       ...
-               on grid GREV with -1.E+34 for missing data
-             X=129.5E:179.5W  Y=1.5S:8.5N  
- 
- 
-list/x=180 fcn_norm,fcn_rev
- WARNING: Listed variables have ambiguous coordinates on axes: Y
-             DATA SET: ./reverse_axes.cdf
-             LONGITUDE: 180E
- Column  1: FCN_NORM is COS(X/10)*SIN(Y/2)
- Column  2: FCN_REV is COS(X/10)*SIN(Y/2)
-         FCN_NOR   FCN_REV
-J /  1:  0.633194 -0.633194
-J /  2:  0.645479 -0.645479
-J /  3:  0.499729 -0.499729
-J /  4:  0.231628 -0.231628
-J /  5: -0.093184  0.093184
-J /  6: -0.395181  0.395181
-J /  7: -0.600424  0.600424
-J /  8: -0.658663  0.658663
-J /  9: -0.555637  0.555637
-J / 10: -0.316573  0.316573
-J / 11:  0.000000  0.000000
-J / 12:  0.316573 -0.316573
-J / 13:  0.555637 -0.555637
-J / 14:  0.658663 -0.658663
-J / 15:  0.600424 -0.600424
-J / 16:  0.395181 -0.395181
-J / 17:  0.093184 -0.093184
-J / 18: -0.231628  0.231628
-J / 19: -0.499729  0.499729
-J / 20: -0.645479  0.645479
-J / 21: -0.633194  0.633194
-list/x=180 fcn_rev_sub
-             VARIABLE : COS(X/10)*SIN(Y/2)
-             FILENAME : reverse_axes.cdf
-             SUBSET   : 10 points (LATITUDE)
-             LONGITUDE: 180E
-               180E    
-                51
- 8N   / 19:  0.499729
- 7N   / 18:  0.231628
- 6N   / 17: -0.093184
- 5N   / 16: -0.395181
- 4N   / 15: -0.600424
- 3N   / 14: -0.658663
- 2N   / 13: -0.555637
- 1N   / 12: -0.316573
- 0    / 11:  0.000000
- 1S   / 10:  0.316573
- 
-GO bn_reset
-cancel mode verify
-GO bn_regrid_transforms
-! bn500_regrid_transforms
-! benchmark to test regridding transformations and syntax
-! requires version 2.30 or later
-! 8/92
- 
-! 9/95 - modified reflecting the new interpretation of var[GX=u]
-!	 previously this meant to fully regrid to U
-! 	 Now it means to regrid only the X axis to U (other axes as in "var")
-!	 ==> this is an implicit grid creation
-! 2/99 *sh* - The behavior of regridding in cases where the region is
-!	unspecified has been changed in V.5 of Ferret. The behavior is now to
-!	attempt to obtain the full destination axis span. This means that
-!	an unspecified region regrid request applied to a sliced TMAP data
-!	set will error: Requested data range is outside of data set limits
-!	A "SET MODE IGNORE" has been added in this benchmark script fo rthese
-!	cases. (The proper fix to this is in tm_read ... to trim the region
-!	when a sliced data set is being read.
-! 1/00 *sh* @MIN and @MAX bugs corrected. @AVE, @SUM, @VAR to handle partial
-!       grid boxes
- 
-!set data gtsa056
-!use gtsa056
-use gtsa056_1
-use gtsa056_2
-set mode diag
- 
-define axis/t=15-jan-1982:15-mar-1984:120/unit=hour tax5day
-define axis/x=120e:60w:10/unit=degrees xax10
-define grid/like=u/t=tax5day g5day
- getgrid EX#1     C:  6 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
-define grid/like=u/x=xax10/z=w/t=tax5day g5_10
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- getgrid EX#1     C:  7 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- getgrid EX#1     C:  8 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DW11         PSXT1     PSYT      PSZW      TIME1     NORMAL    NORMAL
- 
-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
- 
-use gtsa056_1    	!kob 4/99
- 
-! deliberate errors
-set mode ignore
-load temp[g=@lin]    ! no target grid specified
- dealloc  dynamic grid PS3DW11         PSXT1     PSYT      PSZW      TIME1     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
-load temp[gx=@ave]   ! no target grid specified
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
-load temp[g=u,g=w]   ! more than 1 target grid
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
-load temp[g=x]       ! g=user-or-pseudo-var not allowed
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
-set mode/last ignore
- 
-! valid syntax tests
-load temp
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DT2          PSXT1     PSYT      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  101  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- reading TEMP     M: 57 dset:   1 I:  101  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
-load temp[g=u]
- dealloc  dynamic grid PS3DT2          PSXT1     PSYT      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M: 55 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: 45 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
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M: 43 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 39 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
-load temp[g=u at ave,gy=@asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU2           @AVE
- strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M: 36 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 34 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 33 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 34 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
-load temp[g=u at lin,gy=@asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU2           @LIN
- strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M: 34 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 31 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 30 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 31 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
-load temp[g=u,gx=@ave,gy=@asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU2           @AVE
- strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M: 31 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 28 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 25 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 28 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
-load temp[gx=u]  		! changed V4.20 --> implicit regrid
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2     NORMAL    NORMAL
- strip regrid on X: TEMP --> (G009)           @LIN
- reading TEMP     M: 28 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 22 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2     NORMAL    NORMAL
-stat temp[g=u] - temp[g=u at ave,gx=u at lin,gy=u at lin,gz=u at lin,gt=u at lin]  ! == 0
- dealloc  dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2     NORMAL    NORMAL
- -DELETE TEMP     M: 22 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M: 22 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: 21 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: 16 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 14 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- 
-             TEMP[G=U] - TEMP[G=U at AVE,GX=U at LIN,GY=U at LIN,GZ=U at LIN,GT=U at LIN]
-             LONGITUDE: 130W to 125W
-             LATITUDE: 0 to 1.5N
-             DEPTH (m): 0 to 15
-             TIME: 21-JAN-1982 00:00 to 24-JAN-1982 00:00
-             E:  N/A
-             F:  N/A
-             DATA SET: ./gtsa056_1.cdf
- 
- Total # of data points: 120 (6*5*2*2*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
-stat temp[g=u,gx=@ave] - temp[gx=@ave,g=u]    ! == 0
- -DELETE EX#1     M: 12 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU2           @AVE
- strip regrid on Y: TEMP --> XNTERMED         @LIN
- reading TEMP     M: 12 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 11 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 10 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 11 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU2           @AVE
- strip regrid on Y: TEMP --> XNTERMED         @LIN
- reading TEMP     M: 11 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  7 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 53 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  7 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- 
-             TEMP[G=U,GX=@AVE] - TEMP[GX=@AVE,G=U]
-             LONGITUDE: 130W to 125W
-             LATITUDE: 0 to 1.5N
-             DEPTH (m): 0 to 15
-             TIME: 21-JAN-1982 00:00 to 24-JAN-1982 00:00
-             E:  N/A
-             F:  N/A
-             DATA SET: ./gtsa056_1.cdf
- 
- Total # of data points: 120 (6*5*2*2*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-! basic regrid tests
-LIST temp[g=u at ave]
- -DELETE EX#1     M:  7 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU2           @AAV
- reading TEMP     M:  7 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 27 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: U on X at AAV, on Y at AAV
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
-               130W     129W     128W     127W     126W     125W    
-               100      101      102      103      104      105
- ---- L:3 T:   21-JAN-1982 16:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.2757  24.2696  24.3629  24.6373  25.0615  25.4410
- 1N    / 48:  24.1124  24.0973  24.1580  24.3776  24.7508  25.0998
- 0.67N / 47:  23.9930  23.9638  23.9801  24.1238  24.4241  24.7297
- 0.33N / 46:  23.9344  23.8880  23.8589  23.9144  24.1193  24.3743
- 0     / 45:  23.9566  23.8866  23.8159  23.7910  23.8916  24.0818
- ---- K:2 Z:   15
- 1.33N / 49:  24.0317  24.0211  24.1131  24.3923  24.8465  25.2791
- 1N    / 48:  23.8191  23.8041  23.8705  24.1001  24.5038  24.9069
- 0.67N / 47:  23.6398  23.6127  23.6381  23.7968  24.1294  24.4871
- 0.33N / 46:  23.5298  23.4863  23.4638  23.5312  23.7653  24.0683
- 0     / 45:  23.5312  23.4606  23.3902  23.3664  23.4839  23.7124
- ---- L:4 T:   24-JAN-1982 17:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.3180  24.4327  24.7033  25.1283  25.5109  25.6495
- 1N    / 48:  24.1494  24.2321  24.4464  24.8164  25.1767  25.3092
- 0.67N / 47:  24.0206  24.0575  24.1976  24.4870  24.8053  24.9316
- 0.33N / 46:  23.9510  23.9366  23.9929  24.1798  24.4380  24.5703
- 0     / 45:  23.9593  23.8939  23.8707  23.9498  24.1283  24.2608
- ---- K:2 Z:   15
- 1.33N / 49:  24.0658  24.1785  24.4540  24.9097  25.3460  25.5339
- 1N    / 48:  23.8539  23.9406  24.1631  24.5634  24.9781  25.1610
- 0.67N / 47:  23.6691  23.7132  23.8644  24.1827  24.5525  24.7281
- 0.33N / 46:  23.5511  23.5410  23.6056  23.8149  24.1179  24.2970
- 0     / 45:  23.5391  23.4697  23.4454  23.5341  23.7437  23.9152
-LIST temp[g=u,gx=u at ave]	! V4.20 mod
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip regrid on X: TEMP --> PS3DU2           @AVE
- strip regrid on Y: TEMP --> XNTERMED         @LIN
- reading TEMP     M: 24 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 49 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 18 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 49 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 AVE, on Y at LIN
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
-               130W     129W     128W     127W     126W     125W    
-               100      101      102      103      104      105
- ---- L:3 T:   21-JAN-1982 16:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.2757  24.2696  24.3629  24.6374  25.0615  25.4411
- 1N    / 48:  24.1124  24.0973  24.1580  24.3776  24.7508  25.0998
- 0.67N / 47:  23.9930  23.9638  23.9801  24.1238  24.4241  24.7297
- 0.33N / 46:  23.9344  23.8880  23.8589  23.9144  24.1193  24.3743
- 0     / 45:  23.9566  23.8866  23.8159  23.7910  23.8916  24.0818
- ---- K:2 Z:   15
- 1.33N / 49:  24.0317  24.0211  24.1131  24.3923  24.8465  25.2791
- 1N    / 48:  23.8191  23.8041  23.8706  24.1001  24.5038  24.9069
- 0.67N / 47:  23.6398  23.6127  23.6381  23.7968  24.1294  24.4871
- 0.33N / 46:  23.5298  23.4863  23.4638  23.5312  23.7653  24.0683
- 0     / 45:  23.5312  23.4606  23.3902  23.3664  23.4839  23.7124
- ---- L:4 T:   24-JAN-1982 17:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.3180  24.4327  24.7033  25.1283  25.5109  25.6496
- 1N    / 48:  24.1494  24.2321  24.4465  24.8165  25.1768  25.3092
- 0.67N / 47:  24.0206  24.0575  24.1976  24.4870  24.8053  24.9316
- 0.33N / 46:  23.9510  23.9366  23.9929  24.1798  24.4380  24.5703
- 0     / 45:  23.9593  23.8939  23.8707  23.9498  24.1283  24.2608
- ---- K:2 Z:   15
- 1.33N / 49:  24.0658  24.1785  24.4540  24.9097  25.3460  25.5339
- 1N    / 48:  23.8539  23.9406  24.1631  24.5634  24.9781  25.1610
- 0.67N / 47:  23.6692  23.7132  23.8644  24.1827  24.5525  24.7281
- 0.33N / 46:  23.5511  23.5410  23.6056  23.8149  24.1179  24.2970
- 0     / 45:  23.5391  23.4697  23.4454  23.5341  23.7437  23.9152
-LIST temp[g=u,gy=u at ave]	! V4.20 mod
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip regrid on X: TEMP --> PS3DU2           @LIN
- strip regrid on Y: TEMP --> XNTERMED         @AVE
- reading TEMP     M: 49 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 48 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 23 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 48 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: U on X at LIN, on Y at AVE
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
-               130W     129W     128W     127W     126W     125W    
-               100      101      102      103      104      105
- ---- L:3 T:   21-JAN-1982 16:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.2757  24.2696  24.3629  24.6374  25.0615  25.4411
- 1N    / 48:  24.1124  24.0973  24.1580  24.3776  24.7508  25.0998
- 0.67N / 47:  23.9930  23.9638  23.9801  24.1238  24.4241  24.7297
- 0.33N / 46:  23.9344  23.8880  23.8589  23.9144  24.1193  24.3743
- 0     / 45:  23.9566  23.8866  23.8159  23.7910  23.8916  24.0818
- ---- K:2 Z:   15
- 1.33N / 49:  24.0317  24.0211  24.1131  24.3923  24.8465  25.2791
- 1N    / 48:  23.8191  23.8041  23.8706  24.1001  24.5038  24.9069
- 0.67N / 47:  23.6398  23.6127  23.6381  23.7968  24.1294  24.4871
- 0.33N / 46:  23.5298  23.4863  23.4638  23.5312  23.7653  24.0683
- 0     / 45:  23.5312  23.4606  23.3902  23.3664  23.4839  23.7124
- ---- L:4 T:   24-JAN-1982 17:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.3180  24.4327  24.7033  25.1283  25.5109  25.6496
- 1N    / 48:  24.1494  24.2321  24.4465  24.8165  25.1768  25.3092
- 0.67N / 47:  24.0206  24.0575  24.1976  24.4870  24.8053  24.9316
- 0.33N / 46:  23.9510  23.9366  23.9929  24.1798  24.4380  24.5703
- 0     / 45:  23.9593  23.8939  23.8707  23.9498  24.1283  24.2608
- ---- K:2 Z:   15
- 1.33N / 49:  24.0658  24.1785  24.4540  24.9097  25.3460  25.5339
- 1N    / 48:  23.8539  23.9406  24.1631  24.5634  24.9781  25.1610
- 0.67N / 47:  23.6692  23.7132  23.8644  24.1827  24.5525  24.7281
- 0.33N / 46:  23.5511  23.5410  23.6056  23.8149  24.1179  24.2970
- 0     / 45:  23.5391  23.4697  23.4454  23.5341  23.7437  23.9152
-LIST temp[g=u,gz=u at ave]	! V4.20 mod
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M: 48 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:  6 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: U
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
-               130W     129W     128W     127W     126W     125W    
-               100      101      102      103      104      105
- ---- L:3 T:   21-JAN-1982 16:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.2757  24.2696  24.3629  24.6374  25.0615  25.4411
- 1N    / 48:  24.1124  24.0973  24.1580  24.3776  24.7508  25.0998
- 0.67N / 47:  23.9930  23.9638  23.9801  24.1238  24.4241  24.7297
- 0.33N / 46:  23.9344  23.8880  23.8589  23.9144  24.1193  24.3743
- 0     / 45:  23.9566  23.8866  23.8159  23.7910  23.8916  24.0818
- ---- K:2 Z:   15
- 1.33N / 49:  24.0317  24.0211  24.1131  24.3923  24.8465  25.2791
- 1N    / 48:  23.8191  23.8041  23.8706  24.1001  24.5038  24.9069
- 0.67N / 47:  23.6398  23.6127  23.6381  23.7968  24.1294  24.4871
- 0.33N / 46:  23.5298  23.4863  23.4638  23.5312  23.7653  24.0683
- 0     / 45:  23.5312  23.4606  23.3902  23.3664  23.4839  23.7124
- ---- L:4 T:   24-JAN-1982 17:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.3180  24.4327  24.7033  25.1283  25.5109  25.6496
- 1N    / 48:  24.1494  24.2321  24.4465  24.8165  25.1768  25.3092
- 0.67N / 47:  24.0206  24.0575  24.1976  24.4870  24.8053  24.9316
- 0.33N / 46:  23.9510  23.9366  23.9929  24.1798  24.4380  24.5703
- 0     / 45:  23.9593  23.8939  23.8707  23.9498  24.1283  24.2608
- ---- K:2 Z:   15
- 1.33N / 49:  24.0658  24.1785  24.4540  24.9097  25.3460  25.5339
- 1N    / 48:  23.8539  23.9406  24.1631  24.5634  24.9781  25.1610
- 0.67N / 47:  23.6692  23.7132  23.8644  24.1827  24.5525  24.7281
- 0.33N / 46:  23.5511  23.5410  23.6056  23.8149  24.1179  24.2970
- 0     / 45:  23.5391  23.4697  23.4454  23.5341  23.7437  23.9152
-LIST temp[g=u,gt=u at ave]	! V4.20 mod, etc --> many more similar syntax chgs
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M: 40 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 15 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: U
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
-               130W     129W     128W     127W     126W     125W    
-               100      101      102      103      104      105
- ---- L:3 T:   21-JAN-1982 16:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.2757  24.2696  24.3629  24.6374  25.0615  25.4411
- 1N    / 48:  24.1124  24.0973  24.1580  24.3776  24.7508  25.0998
- 0.67N / 47:  23.9930  23.9638  23.9801  24.1238  24.4241  24.7297
- 0.33N / 46:  23.9344  23.8880  23.8589  23.9144  24.1193  24.3743
- 0     / 45:  23.9566  23.8866  23.8159  23.7910  23.8916  24.0818
- ---- K:2 Z:   15
- 1.33N / 49:  24.0317  24.0211  24.1131  24.3923  24.8465  25.2791
- 1N    / 48:  23.8191  23.8041  23.8706  24.1001  24.5038  24.9069
- 0.67N / 47:  23.6398  23.6127  23.6381  23.7968  24.1294  24.4871
- 0.33N / 46:  23.5298  23.4863  23.4638  23.5312  23.7653  24.0683
- 0     / 45:  23.5312  23.4606  23.3902  23.3664  23.4839  23.7124
- ---- L:4 T:   24-JAN-1982 17:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.3180  24.4327  24.7033  25.1283  25.5109  25.6496
- 1N    / 48:  24.1494  24.2321  24.4465  24.8165  25.1768  25.3092
- 0.67N / 47:  24.0206  24.0575  24.1976  24.4870  24.8053  24.9316
- 0.33N / 46:  23.9510  23.9366  23.9929  24.1798  24.4380  24.5703
- 0     / 45:  23.9593  23.8939  23.8707  23.9498  24.1283  24.2608
- ---- K:2 Z:   15
- 1.33N / 49:  24.0658  24.1785  24.4540  24.9097  25.3460  25.5339
- 1N    / 48:  23.8539  23.9406  24.1631  24.5634  24.9781  25.1610
- 0.67N / 47:  23.6692  23.7132  23.8644  24.1827  24.5525  24.7281
- 0.33N / 46:  23.5511  23.5410  23.6056  23.8149  24.1179  24.2970
- 0     / 45:  23.5391  23.4697  23.4454  23.5341  23.7437  23.9152
- 
-LIST temp[g=u]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M: 37 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 32 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: U
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
-               130W     129W     128W     127W     126W     125W    
-               100      101      102      103      104      105
- ---- L:3 T:   21-JAN-1982 16:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.2757  24.2696  24.3629  24.6374  25.0615  25.4411
- 1N    / 48:  24.1124  24.0973  24.1580  24.3776  24.7508  25.0998
- 0.67N / 47:  23.9930  23.9638  23.9801  24.1238  24.4241  24.7297
- 0.33N / 46:  23.9344  23.8880  23.8589  23.9144  24.1193  24.3743
- 0     / 45:  23.9566  23.8866  23.8159  23.7910  23.8916  24.0818
- ---- K:2 Z:   15
- 1.33N / 49:  24.0317  24.0211  24.1131  24.3923  24.8465  25.2791
- 1N    / 48:  23.8191  23.8041  23.8706  24.1001  24.5038  24.9069
- 0.67N / 47:  23.6398  23.6127  23.6381  23.7968  24.1294  24.4871
- 0.33N / 46:  23.5298  23.4863  23.4638  23.5312  23.7653  24.0683
- 0     / 45:  23.5312  23.4606  23.3902  23.3664  23.4839  23.7124
- ---- L:4 T:   24-JAN-1982 17:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.3180  24.4327  24.7033  25.1283  25.5109  25.6496
- 1N    / 48:  24.1494  24.2321  24.4465  24.8165  25.1768  25.3092
- 0.67N / 47:  24.0206  24.0575  24.1976  24.4870  24.8053  24.9316
- 0.33N / 46:  23.9510  23.9366  23.9929  24.1798  24.4380  24.5703
- 0     / 45:  23.9593  23.8939  23.8707  23.9498  24.1283  24.2608
- ---- K:2 Z:   15
- 1.33N / 49:  24.0658  24.1785  24.4540  24.9097  25.3460  25.5339
- 1N    / 48:  23.8539  23.9406  24.1631  24.5634  24.9781  25.1610
- 0.67N / 47:  23.6692  23.7132  23.8644  24.1827  24.5525  24.7281
- 0.33N / 46:  23.5511  23.5410  23.6056  23.8149  24.1179  24.2970
- 0     / 45:  23.5391  23.4697  23.4454  23.5341  23.7437  23.9152
-LIST temp[g=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU2           @ASN
- strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M: 19 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 13 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  3 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE 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)
-                        regrid: U on X at ASN, on Y at ASN
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
-               130W     129W     128W     127W     126W     125W    
-               100      101      102      103      104      105
- ---- L:3 T:   21-JAN-1982 16:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.2023  24.1706  24.1868  24.3320  24.6889  25.1380
- 1N    / 48:  24.0570  24.0199  24.0121  24.1010  24.3886  24.7878
- 0.67N / 47:  23.9679  23.9272  23.8960  23.9112  24.0946  24.4255
- 0.33N / 46:  23.9500  23.8924  23.8363  23.7920  23.8598  24.0974
- 0     / 45:  24.0303  23.9535  23.8642  23.7713  23.7408  23.8683
- ---- K:2 Z:   15
- 1.33N / 49:  23.9413  23.9053  23.9237  24.0709  24.4373  24.9355
- 1N    / 48:  23.7355  23.6943  23.6933  23.7943  24.0980  24.5443
- 0.67N / 47:  23.5856  23.5436  23.5197  23.5450  23.7499  24.1251
- 0.33N / 46:  23.5242  23.4660  23.4157  23.3749  23.4550  23.7312
- 0     / 45:  23.6083  23.5263  23.4345  23.3357  23.3000  23.4491
- ---- L:4 T:   24-JAN-1982 17:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.2012  24.2556  24.4066  24.7485  25.2133  25.5037
- 1N    / 48:  24.0581  24.0827  24.1835  24.4473  24.8567  25.1333
- 0.67N / 47:  23.9772  23.9643  23.9994  24.1601  24.4838  24.7472
- 0.33N / 46:  23.9584  23.9040  23.8788  23.9333  24.1419  24.3790
- 0     / 45:  24.0357  23.9390  23.8536  23.8172  23.9069  24.0855
- ---- K:2 Z:   15
- 1.33N / 49:  23.9325  23.9890  24.1393  24.4928  25.0067  25.3582
- 1N    / 48:  23.7314  23.7626  23.8716  24.1488  24.6053  24.9421
- 0.67N / 47:  23.5951  23.5875  23.6312  23.8060  24.1706  24.4921
- 0.33N / 46:  23.5385  23.4834  23.4619  23.5233  23.7598  24.0491
- 0     / 45:  23.6210  23.5135  23.4199  23.3768  23.4767  23.6893
-LIST temp[g=u,gx=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip regrid on X: TEMP --> PS3DU2           @ASN
- strip regrid on Y: TEMP --> XNTERMED         @LIN
- reading TEMP     M: 13 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  1 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 26 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  1 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: U on X at ASN, on Y at LIN
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
-               130W     129W     128W     127W     126W     125W    
-               100      101      102      103      104      105
- ---- L:3 T:   21-JAN-1982 16:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.2921  24.2593  24.2798  24.4459  24.8288  25.2942
- 1N    / 48:  24.1296  24.0952  24.0995  24.2165  24.5387  24.9629
- 0.67N / 47:  24.0124  23.9735  23.9541  24.0061  24.2416  24.6067
- 0.33N / 46:  23.9590  23.9098  23.8662  23.8516  23.9772  24.2614
- 0     / 45:  23.9901  23.9230  23.8503  23.7816  23.8003  23.9828
- ---- K:2 Z:   15
- 1.33N / 49:  24.0517  24.0117  24.0305  24.1957  24.5888  25.1042
- 1N    / 48:  23.8384  23.7998  23.8085  23.9326  24.2677  24.7399
- 0.67N / 47:  23.6606  23.6190  23.6065  23.6697  23.9240  24.3347
- 0.33N / 46:  23.5549  23.5048  23.4677  23.4600  23.6025  23.9282
- 0     / 45:  23.5662  23.4962  23.4251  23.3553  23.3775  23.5902
- ---- L:4 T:   24-JAN-1982 17:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.2879  24.3481  24.5174  24.8892  25.3674  25.6544
- 1N    / 48:  24.1297  24.1691  24.2950  24.5979  25.0350  25.3185
- 0.67N / 47:  24.0177  24.0235  24.0914  24.3037  24.6703  24.9403
- 0.33N / 46:  23.9678  23.9342  23.9391  24.0467  24.3128  24.5631
- 0     / 45:  23.9971  23.9215  23.8662  23.8753  24.0244  24.2322
- ---- K:2 Z:   15
- 1.33N / 49:  24.0365  24.0951  24.2619  24.6460  25.1734  25.5187
- 1N    / 48:  23.8319  23.8758  24.0055  24.3208  24.8060  25.1502
- 0.67N / 47:  23.6632  23.6751  23.7514  23.9774  24.3880  24.7171
- 0.33N / 46:  23.5668  23.5355  23.5465  23.6647  23.9652  24.2706
- 0     / 45:  23.5798  23.4985  23.4409  23.4500  23.6182  23.8692
-LIST temp[g=u,gy=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip regrid on X: TEMP --> PS3DU2           @LIN
- strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M:  1 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  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: 29 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 52 dset:   1 I:  100  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
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
-               130W     129W     128W     127W     126W     125W    
-               100      101      102      103      104      105
- ---- L:3 T:   21-JAN-1982 16:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.1864  24.1787  24.2594  24.5105  24.9134  25.2830
- 1N    / 48:  24.0384  24.0160  24.0566  24.2448  24.5882  24.9167
- 0.67N / 47:  23.9476  23.9116  23.9036  24.0029  24.2600  24.5428
- 0.33N / 46:  23.9212  23.8644  23.8142  23.8259  23.9786  24.2058
- 0     / 45:  23.9919  23.9089  23.8177  23.7561  23.8046  23.9579
- ---- K:2 Z:   15
- 1.33N / 49:  23.9233  23.9145  23.9973  24.2541  24.6864  25.1105
- 1N    / 48:  23.7149  23.6938  23.7438  23.9462  24.3212  24.7033
- 0.67N / 47:  23.5646  23.5317  23.5324  23.6475  23.9375  24.2709
- 0.33N / 46:  23.4951  23.4409  23.3953  23.4150  23.5931  23.8658
- 0     / 45:  23.5673  23.4804  23.3851  23.3179  23.3746  23.5590
- ---- L:4 T:   24-JAN-1982 17:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.2284  24.3311  24.5775  24.9809  25.3585  25.4979
- 1N    / 48:  24.0704  24.1331  24.3154  24.6520  24.9950  25.1205
- 0.67N / 47:  23.9708  23.9819  24.0798  24.3220  24.6155  24.7426
- 0.33N / 46:  23.9312  23.8914  23.9061  24.0376  24.2605  24.3979
- 0     / 45:  23.9874  23.8963  23.8354  23.8620  23.9962  24.1237
- ---- K:2 Z:   15
- 1.33N / 49:  23.9608  24.0642  24.3160  24.7497  25.1824  25.3725
- 1N    / 48:  23.7470  23.8171  24.0102  24.3770  24.7737  24.9496
- 0.67N / 47:  23.5913  23.6093  23.7186  23.9883  24.3314  24.5067
- 0.33N / 46:  23.5110  23.4726  23.4926  23.6415  23.9044  24.0873
- 0     / 45:  23.5673  23.4667  23.3983  23.4267  23.5830  23.7431
-LIST temp[g=u,gz=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M: 52 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: 20 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
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: U
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
-               130W     129W     128W     127W     126W     125W    
-               100      101      102      103      104      105
- ---- L:3 T:   21-JAN-1982 16:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.2757  24.2696  24.3629  24.6374  25.0615  25.4411
- 1N    / 48:  24.1124  24.0973  24.1580  24.3776  24.7508  25.0998
- 0.67N / 47:  23.9930  23.9638  23.9801  24.1238  24.4241  24.7297
- 0.33N / 46:  23.9344  23.8880  23.8589  23.9144  24.1193  24.3743
- 0     / 45:  23.9566  23.8866  23.8159  23.7910  23.8916  24.0818
- ---- K:2 Z:   15
- 1.33N / 49:  24.0317  24.0211  24.1131  24.3923  24.8465  25.2791
- 1N    / 48:  23.8191  23.8041  23.8706  24.1001  24.5038  24.9069
- 0.67N / 47:  23.6398  23.6127  23.6381  23.7968  24.1294  24.4871
- 0.33N / 46:  23.5298  23.4863  23.4638  23.5312  23.7653  24.0683
- 0     / 45:  23.5312  23.4606  23.3902  23.3664  23.4839  23.7124
- ---- L:4 T:   24-JAN-1982 17:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.3180  24.4327  24.7033  25.1283  25.5109  25.6496
- 1N    / 48:  24.1494  24.2321  24.4465  24.8165  25.1768  25.3092
- 0.67N / 47:  24.0206  24.0575  24.1976  24.4870  24.8053  24.9316
- 0.33N / 46:  23.9510  23.9366  23.9929  24.1798  24.4380  24.5703
- 0     / 45:  23.9593  23.8939  23.8707  23.9498  24.1283  24.2608
- ---- K:2 Z:   15
- 1.33N / 49:  24.0658  24.1785  24.4540  24.9097  25.3460  25.5339
- 1N    / 48:  23.8539  23.9406  24.1631  24.5634  24.9781  25.1610
- 0.67N / 47:  23.6692  23.7132  23.8644  24.1827  24.5525  24.7281
- 0.33N / 46:  23.5511  23.5410  23.6056  23.8149  24.1179  24.2970
- 0     / 45:  23.5391  23.4697  23.4454  23.5341  23.7437  23.9152
-LIST temp[g=u,gt=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M: 56 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
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: U
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
-               130W     129W     128W     127W     126W     125W    
-               100      101      102      103      104      105
- ---- L:3 T:   21-JAN-1982 16:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.2757  24.2696  24.3629  24.6374  25.0615  25.4411
- 1N    / 48:  24.1124  24.0973  24.1580  24.3776  24.7508  25.0998
- 0.67N / 47:  23.9930  23.9638  23.9801  24.1238  24.4241  24.7297
- 0.33N / 46:  23.9344  23.8880  23.8589  23.9144  24.1193  24.3743
- 0     / 45:  23.9566  23.8866  23.8159  23.7910  23.8916  24.0818
- ---- K:2 Z:   15
- 1.33N / 49:  24.0317  24.0211  24.1131  24.3923  24.8465  25.2791
- 1N    / 48:  23.8191  23.8041  23.8706  24.1001  24.5038  24.9069
- 0.67N / 47:  23.6398  23.6127  23.6381  23.7968  24.1294  24.4871
- 0.33N / 46:  23.5298  23.4863  23.4638  23.5312  23.7653  24.0683
- 0     / 45:  23.5312  23.4606  23.3902  23.3664  23.4839  23.7124
- ---- L:4 T:   24-JAN-1982 17:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.3180  24.4327  24.7033  25.1283  25.5109  25.6496
- 1N    / 48:  24.1494  24.2321  24.4465  24.8165  25.1768  25.3092
- 0.67N / 47:  24.0206  24.0575  24.1976  24.4870  24.8053  24.9316
- 0.33N / 46:  23.9510  23.9366  23.9929  24.1798  24.4380  24.5703
- 0     / 45:  23.9593  23.8939  23.8707  23.9498  24.1283  24.2608
- ---- K:2 Z:   15
- 1.33N / 49:  24.0658  24.1785  24.4540  24.9097  25.3460  25.5339
- 1N    / 48:  23.8539  23.9406  24.1631  24.5634  24.9781  25.1610
- 0.67N / 47:  23.6692  23.7132  23.8644  24.1827  24.5525  24.7281
- 0.33N / 46:  23.5511  23.5410  23.6056  23.8149  24.1179  24.2970
- 0     / 45:  23.5391  23.4697  23.4454  23.5341  23.7437  23.9152
- 
-! Z and T axes different
-LIST temp[g=g5day at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5DAY            @AAV
- strip regrid on T: TEMP --> XNTERMED         @AVE
- reading TEMP     M: 44 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 42 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 41 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 42 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: G5DAY on X at AAV, on Y at AAV, on T at AVE
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
-               130W     129W     128W     127W     126W     125W    
-               100      101      102      103      104      105
- ---- L:2 T:   20-JAN-1982 00:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.3222  24.2574  24.2792  24.4559  24.8014  25.1989
- 1N    / 48:  24.1494  24.0886  24.0899  24.2231  24.5192  24.8735
- 0.67N / 47:  24.0194  23.9594  23.9338  24.0060  24.2309  24.5292
- 0.33N / 46:  23.9494  23.8865  23.8348  23.8403  23.9749  24.2056
- 0     / 45:  23.9610  23.8876  23.8101  23.7577  23.8012  23.9526
- ---- K:2 Z:   15
- 1.33N / 49:  24.0893  24.0128  24.0305  24.2093  24.5723  25.0111
- 1N    / 48:  23.8655  23.7966  23.7992  23.9411  24.2590  24.6558
- 0.67N / 47:  23.6732  23.6084  23.5863  23.6706  23.9224  24.2649
- 0.33N / 46:  23.5483  23.4836  23.4354  23.4489  23.6072  23.8806
- 0     / 45:  23.5360  23.4598  23.3824  23.3292  23.3833  23.5675
- ---- L:3 T:   25-JAN-1982 00:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.3572  24.4967  24.7799  25.1728  25.4968  25.5979
- 1N    / 48:  24.1819  24.2866  24.5172  24.8632  25.1660  25.2557
- 0.67N / 47:  24.0430  24.0993  24.2582  24.5330  24.7997  24.8843
- 0.33N / 46:  23.9617  23.9632  24.0394  24.2224  24.4405  24.5349
- 0     / 45:  23.9585  23.9048  23.9006  23.9848  24.1378  24.2396
- ---- K:2 Z:   15
- 1.33N / 49:  24.1046  24.2438  24.5379  24.9641  25.3385  25.4831
- 1N    / 48:  23.8866  23.9959  24.2403  24.6203  24.9739  25.1064
- 0.67N / 47:  23.6926  23.7557  23.9301  24.2379  24.5528  24.6786
- 0.33N / 46:  23.5623  23.5678  23.6554  23.8652  24.1261  24.2599
- 0     / 45:  23.5376  23.4796  23.4768  23.5746  23.7580  23.8929
-LIST temp[g=g5day,gx=g5day at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- -DELETE TEMP     M: 41 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5DAY            @AVE
- strip regrid on Y: TEMP --> XNTERMED         @LIN
- strip regrid on T: TEMP --> YNTERMED         @LIN
- reading TEMP     M: 41 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 42 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 38 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 42 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 42 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 38 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: G5DAY on X at AVE, on Y at LIN, on T at LIN
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
-               130W     129W     128W     127W     126W     125W    
-               100      101      102      103      104      105
- ---- L:2 T:   20-JAN-1982 00:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.3238  24.2570  24.2762  24.4494  24.7922  25.1903
- 1N    / 48:  24.1507  24.0883  24.0875  24.2176  24.5110  24.8654
- 0.67N / 47:  24.0203  23.9592  23.9321  24.0018  24.2240  24.5221
- 0.33N / 46:  23.9499  23.8864  23.8340  23.8376  23.9698  24.1996
- 0     / 45:  23.9612  23.8877  23.8099  23.7565  23.7980  23.9480
- ---- K:2 Z:   15
- 1.33N / 49:  24.0913  24.0125  24.0276  24.2028  24.5625  25.0016
- 1N    / 48:  23.8672  23.7964  23.7967  23.9354  24.2503  24.6469
- 0.67N / 47:  23.6744  23.6082  23.5844  23.6661  23.9151  24.2570
- 0.33N / 46:  23.5490  23.4835  23.4343  23.4459  23.6016  23.8740
- 0     / 45:  23.5362  23.4598  23.3821  23.3279  23.3797  23.5624
- ---- L:3 T:   25-JAN-1982 00:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.3350  24.4653  24.7499  25.1705  25.5289  25.6409
- 1N    / 48:  24.1636  24.2597  24.4881  24.8569  25.1948  25.2999
- 0.67N / 47:  24.0305  24.0781  24.2317  24.5232  24.8229  24.9242
- 0.33N / 46:  23.9559  23.9492  24.0174  24.2096  24.4555  24.5671
- 0     / 45:  23.9591  23.8984  23.8848  23.9713  24.1442  24.2621
- ---- K:2 Z:   15
- 1.33N / 49:  24.0822  24.2113  24.5033  24.9571  25.3691  25.5280
- 1N    / 48:  23.8680  23.9686  24.2074  24.6089  25.0011  25.1536
- 0.67N / 47:  23.6795  23.7345  23.9009  24.2235  24.5746  24.7220
- 0.33N / 46:  23.5565  23.5539  23.6318  23.8486  24.1393  24.2949
- 0     / 45:  23.5390  23.4739  23.4601  23.5581  23.7626  23.9173
-LIST temp[g=g5day,gy=g5day at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5DAY            @LIN
- strip regrid on Y: TEMP --> XNTERMED         @AVE
- strip regrid on T: TEMP --> YNTERMED         @LIN
- reading TEMP     M: 38 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 35 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  9 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 35 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 35 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  9 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: G5DAY on X at LIN, on Y at AVE, on T at LIN
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
-               130W     129W     128W     127W     126W     125W    
-               100      101      102      103      104      105
- ---- L:2 T:   20-JAN-1982 00:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.3238  24.2570  24.2762  24.4494  24.7922  25.1903
- 1N    / 48:  24.1507  24.0883  24.0875  24.2176  24.5110  24.8654
- 0.67N / 47:  24.0203  23.9592  23.9321  24.0018  24.2240  24.5221
- 0.33N / 46:  23.9499  23.8864  23.8340  23.8376  23.9698  24.1996
- 0     / 45:  23.9612  23.8877  23.8099  23.7565  23.7980  23.9480
- ---- K:2 Z:   15
- 1.33N / 49:  24.0913  24.0125  24.0276  24.2029  24.5625  25.0016
- 1N    / 48:  23.8672  23.7964  23.7967  23.9354  24.2503  24.6469
- 0.67N / 47:  23.6744  23.6082  23.5844  23.6661  23.9151  24.2570
- 0.33N / 46:  23.5490  23.4835  23.4343  23.4459  23.6016  23.8740
- 0     / 45:  23.5362  23.4598  23.3821  23.3279  23.3797  23.5624
- ---- L:3 T:   25-JAN-1982 00:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.3350  24.4653  24.7499  25.1705  25.5289  25.6409
- 1N    / 48:  24.1636  24.2597  24.4881  24.8569  25.1948  25.2999
- 0.67N / 47:  24.0305  24.0781  24.2317  24.5232  24.8229  24.9242
- 0.33N / 46:  23.9559  23.9492  24.0174  24.2096  24.4555  24.5671
- 0     / 45:  23.9591  23.8984  23.8848  23.9713  24.1442  24.2621
- ---- K:2 Z:   15
- 1.33N / 49:  24.0822  24.2113  24.5033  24.9571  25.3691  25.5280
- 1N    / 48:  23.8680  23.9686  24.2074  24.6089  25.0011  25.1536
- 0.67N / 47:  23.6795  23.7345  23.9009  24.2235  24.5746  24.7220
- 0.33N / 46:  23.5565  23.5539  23.6318  23.8486  24.1393  24.2949
- 0     / 45:  23.5390  23.4739  23.4601  23.5581  23.7626  23.9173
-LIST temp[g=g5day,gz=g5day at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5DAY            @LIN
- strip regrid on T: TEMP --> XNTERMED         @LIN
- reading TEMP     M:  9 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  8 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:  5 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  8 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: G5DAY
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
-               130W     129W     128W     127W     126W     125W    
-               100      101      102      103      104      105
- ---- L:2 T:   20-JAN-1982 00:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.3238  24.2570  24.2762  24.4494  24.7922  25.1903
- 1N    / 48:  24.1507  24.0883  24.0875  24.2176  24.5110  24.8654
- 0.67N / 47:  24.0203  23.9592  23.9321  24.0018  24.2240  24.5221
- 0.33N / 46:  23.9499  23.8864  23.8340  23.8376  23.9698  24.1996
- 0     / 45:  23.9612  23.8877  23.8099  23.7565  23.7980  23.9480
- ---- K:2 Z:   15
- 1.33N / 49:  24.0913  24.0125  24.0276  24.2028  24.5625  25.0016
- 1N    / 48:  23.8672  23.7964  23.7967  23.9354  24.2503  24.6469
- 0.67N / 47:  23.6744  23.6082  23.5844  23.6661  23.9151  24.2570
- 0.33N / 46:  23.5490  23.4835  23.4343  23.4459  23.6016  23.8740
- 0     / 45:  23.5362  23.4598  23.3821  23.3279  23.3797  23.5624
- ---- L:3 T:   25-JAN-1982 00:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.3350  24.4653  24.7499  25.1705  25.5289  25.6409
- 1N    / 48:  24.1636  24.2597  24.4881  24.8569  25.1948  25.2999
- 0.67N / 47:  24.0305  24.0781  24.2317  24.5232  24.8229  24.9242
- 0.33N / 46:  23.9559  23.9492  24.0174  24.2096  24.4555  24.5671
- 0     / 45:  23.9591  23.8984  23.8848  23.9713  24.1442  24.2621
- ---- K:2 Z:   15
- 1.33N / 49:  24.0822  24.2113  24.5033  24.9571  25.3691  25.5280
- 1N    / 48:  23.8680  23.9686  24.2074  24.6089  25.0011  25.1536
- 0.67N / 47:  23.6795  23.7345  23.9009  24.2235  24.5746  24.7220
- 0.33N / 46:  23.5565  23.5539  23.6318  23.8486  24.1393  24.2949
- 0     / 45:  23.5390  23.4739  23.4601  23.5581  23.7626  23.9173
-LIST temp[g=g5day,gt=g5day at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5DAY            @LIN
- strip regrid on T: TEMP --> XNTERMED         @AVE
- reading TEMP     M:  8 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  2 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 47 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  2 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: G5DAY on X at LIN, on Y at LIN, on T at AVE
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
-               130W     129W     128W     127W     126W     125W    
-               100      101      102      103      104      105
- ---- L:2 T:   20-JAN-1982 00:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.3222  24.2574  24.2792  24.4559  24.8014  25.1989
- 1N    / 48:  24.1494  24.0886  24.0899  24.2231  24.5192  24.8735
- 0.67N / 47:  24.0194  23.9594  23.9338  24.0060  24.2309  24.5292
- 0.33N / 46:  23.9494  23.8865  23.8348  23.8403  23.9749  24.2056
- 0     / 45:  23.9610  23.8876  23.8101  23.7577  23.8012  23.9526
- ---- K:2 Z:   15
- 1.33N / 49:  24.0893  24.0128  24.0305  24.2093  24.5723  25.0111
- 1N    / 48:  23.8655  23.7966  23.7992  23.9411  24.2590  24.6558
- 0.67N / 47:  23.6732  23.6084  23.5863  23.6706  23.9224  24.2649
- 0.33N / 46:  23.5483  23.4836  23.4354  23.4489  23.6072  23.8806
- 0     / 45:  23.5360  23.4598  23.3824  23.3292  23.3833  23.5675
- ---- L:3 T:   25-JAN-1982 00:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.3572  24.4967  24.7800  25.1728  25.4968  25.5979
- 1N    / 48:  24.1819  24.2866  24.5172  24.8632  25.1660  25.2557
- 0.67N / 47:  24.0430  24.0993  24.2582  24.5331  24.7997  24.8843
- 0.33N / 46:  23.9617  23.9632  24.0394  24.2224  24.4405  24.5349
- 0     / 45:  23.9585  23.9048  23.9006  23.9848  24.1378  24.2396
- ---- K:2 Z:   15
- 1.33N / 49:  24.1046  24.2439  24.5379  24.9641  25.3385  25.4831
- 1N    / 48:  23.8866  23.9959  24.2403  24.6203  24.9740  25.1065
- 0.67N / 47:  23.6926  23.7557  23.9301  24.2379  24.5528  24.6786
- 0.33N / 46:  23.5623  23.5678  23.6554  23.8652  24.1261  24.2599
- 0     / 45:  23.5376  23.4796  23.4768  23.5746  23.7580  23.8929
- 
-LIST temp[g=g5day]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5DAY            @LIN
- strip regrid on T: TEMP --> XNTERMED         @LIN
- reading TEMP     M:  2 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 17 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 17 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: G5DAY
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
-               130W     129W     128W     127W     126W     125W    
-               100      101      102      103      104      105
- ---- L:2 T:   20-JAN-1982 00:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.3238  24.2570  24.2762  24.4494  24.7922  25.1903
- 1N    / 48:  24.1507  24.0883  24.0875  24.2176  24.5110  24.8654
- 0.67N / 47:  24.0203  23.9592  23.9321  24.0018  24.2240  24.5221
- 0.33N / 46:  23.9499  23.8864  23.8340  23.8376  23.9698  24.1996
- 0     / 45:  23.9612  23.8877  23.8099  23.7565  23.7980  23.9480
- ---- K:2 Z:   15
- 1.33N / 49:  24.0913  24.0125  24.0276  24.2028  24.5625  25.0016
- 1N    / 48:  23.8672  23.7964  23.7967  23.9354  24.2503  24.6469
- 0.67N / 47:  23.6744  23.6082  23.5844  23.6661  23.9151  24.2570
- 0.33N / 46:  23.5490  23.4835  23.4343  23.4459  23.6016  23.8740
- 0     / 45:  23.5362  23.4598  23.3821  23.3279  23.3797  23.5624
- ---- L:3 T:   25-JAN-1982 00:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.3350  24.4653  24.7499  25.1705  25.5289  25.6409
- 1N    / 48:  24.1636  24.2597  24.4881  24.8569  25.1948  25.2999
- 0.67N / 47:  24.0305  24.0781  24.2317  24.5232  24.8229  24.9242
- 0.33N / 46:  23.9559  23.9492  24.0174  24.2096  24.4555  24.5671
- 0     / 45:  23.9591  23.8984  23.8848  23.9713  24.1442  24.2621
- ---- K:2 Z:   15
- 1.33N / 49:  24.0822  24.2113  24.5033  24.9571  25.3691  25.5280
- 1N    / 48:  23.8680  23.9686  24.2074  24.6089  25.0011  25.1536
- 0.67N / 47:  23.6795  23.7345  23.9009  24.2235  24.5746  24.7220
- 0.33N / 46:  23.5565  23.5539  23.6318  23.8486  24.1393  24.2949
- 0     / 45:  23.5390  23.4739  23.4601  23.5581  23.7626  23.9173
-LIST temp[g=g5day at asn]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5DAY            @ASN
- strip regrid on Y: TEMP --> XNTERMED         @ASN
- strip regrid on T: TEMP --> YNTERMED         @ASN
- reading TEMP     M: 17 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 46 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 50 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 46 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 46 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 50 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: G5DAY on X at ASN, on Y at ASN, on T at ASN
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
-               130W     129W     128W     127W     126W     125W    
-               100      101      102      103      104      105
- ---- L:2 T:   20-JAN-1982 00:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.3316  24.1982  24.1149  24.1101  24.2698  24.6194
- 1N    / 48:  24.1534  24.0459  23.9640  23.9283  24.0343  24.3289
- 0.67N / 47:  24.0296  23.9427  23.8693  23.8085  23.8334  24.0392
- 0.33N / 46:  23.9776  23.9013  23.8273  23.7484  23.7068  23.8063
- 0     / 45:  24.0264  23.9547  23.8708  23.7728  23.6845  23.6853
- ---- K:2 Z:   15
- 1.33N / 49:  24.0998  23.9419  23.8502  23.8473  24.0126  24.3725
- 1N    / 48:  23.8568  23.7289  23.6389  23.6068  23.7315  24.0484
- 0.67N / 47:  23.6628  23.5633  23.4870  23.4278  23.4670  23.7064
- 0.33N / 46:  23.5593  23.4735  23.4013  23.3239  23.2836  23.4092
- 0     / 45:  23.6053  23.5232  23.4384  23.3380  23.2391  23.2432
- ---- L:3 T:   25-JAN-1982 00:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.2023  24.1706  24.1868  24.3320  24.6889  25.1380
- 1N    / 48:  24.0570  24.0199  24.0121  24.1010  24.3886  24.7878
- 0.67N / 47:  23.9679  23.9272  23.8960  23.9112  24.0946  24.4255
- 0.33N / 46:  23.9500  23.8924  23.8363  23.7920  23.8598  24.0974
- 0     / 45:  24.0303  23.9535  23.8642  23.7713  23.7408  23.8683
- ---- K:2 Z:   15
- 1.33N / 49:  23.9413  23.9053  23.9237  24.0709  24.4373  24.9355
- 1N    / 48:  23.7355  23.6943  23.6933  23.7943  24.0980  24.5443
- 0.67N / 47:  23.5856  23.5436  23.5197  23.5450  23.7499  24.1251
- 0.33N / 46:  23.5242  23.4660  23.4157  23.3749  23.4550  23.7312
- 0     / 45:  23.6083  23.5263  23.4345  23.3357  23.3000  23.4491
-LIST temp[g=g5day,gx=g5day at asn]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5DAY            @ASN
- strip regrid on Y: TEMP --> XNTERMED         @LIN
- strip regrid on T: TEMP --> YNTERMED         @LIN
- reading TEMP     M: 50 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 54 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 58 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 54 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 54 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 58 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: G5DAY on X at ASN, on Y at LIN, on T at LIN
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
-               130W     129W     128W     127W     126W     125W    
-               100      101      102      103      104      105
- ---- L:2 T:   20-JAN-1982 00:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.3718  24.2759  24.2381  24.3143  24.5845  24.9998
- 1N    / 48:  24.1915  24.1099  24.0666  24.1084  24.3268  24.6951
- 0.67N / 47:  24.0557  23.9849  23.9336  23.9307  24.0730  24.3751
- 0.33N / 46:  23.9834  23.9165  23.8564  23.8115  23.8637  24.0759
- 0     / 45:  23.9966  23.9258  23.8496  23.7701  23.7430  23.8530
- ---- K:2 Z:   15
- 1.33N / 49:  24.1479  24.0348  23.9902  24.0651  24.3406  24.7844
- 1N    / 48:  23.9151  23.8193  23.7735  23.8199  24.0509  24.4498
- 0.67N / 47:  23.7150  23.6338  23.5826  23.5862  23.7461  24.0841
- 0.33N / 46:  23.5857  23.5123  23.4548  23.4139  23.4780  23.7252
- 0     / 45:  23.5750  23.4974  23.4222  23.3420  23.3139  23.4455
- ---- L:3 T:   25-JAN-1982 00:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.2986  24.3714  24.5593  24.9405  25.4006  25.6571
- 1N    / 48:  24.1387  24.1885  24.3309  24.6454  25.0684  25.3212
- 0.67N / 47:  24.0238  24.0371  24.1191  24.3444  24.7020  24.9439
- 0.33N / 46:  23.9705  23.9413  23.9571  24.0777  24.3415  24.5694
- 0     / 45:  23.9960  23.9223  23.8745  23.8951  24.0474  24.2410
- ---- K:2 Z:   15
- 1.33N / 49:  24.0465  24.1179  24.3048  24.7018  25.2123  25.5259
- 1N    / 48:  23.8411  23.8950  24.0422  24.3726  24.8452  25.1571
- 0.67N / 47:  23.6700  23.6890  23.7799  24.0219  24.4252  24.7240
- 0.33N / 46:  23.5701  23.5428  23.5650  23.6985  23.9987  24.2798
- 0     / 45:  23.5791  23.4988  23.4489  23.4714  23.6448  23.8804
-LIST temp[g=g5day,gy=g5day at asn]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5DAY            @LIN
- strip regrid on Y: TEMP --> XNTERMED         @ASN
- strip regrid on T: TEMP --> YNTERMED         @LIN
- reading TEMP     M: 58 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 59 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 60 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 59 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 59 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 60 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: G5DAY on X at LIN, on Y at ASN, on T at LIN
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
-               130W     129W     128W     127W     126W     125W    
-               100      101      102      103      104      105
- ---- L:2 T:   20-JAN-1982 00:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.2294  24.1666  24.1789  24.3348  24.6565  25.0363
- 1N    / 48:  24.0720  24.0100  23.9961  24.1004  24.3654  24.6946
- 0.67N / 47:  23.9687  23.9085  23.8682  23.9032  24.0827  24.3496
- 0.33N / 46:  23.9312  23.8643  23.7997  23.7720  23.8569  24.0495
- 0     / 45:  23.9912  23.9110  23.8200  23.7410  23.7390  23.8465
- ---- K:2 Z:   15
- 1.33N / 49:  23.9767  23.9044  23.9159  24.0764  24.4158  24.8366
- 1N    / 48:  23.7576  23.6884  23.6775  23.7944  24.0849  24.4571
- 0.67N / 47:  23.5912  23.5281  23.4913  23.5379  23.7453  24.0569
- 0.33N / 46:  23.5068  23.4390  23.3774  23.3540  23.4579  23.6911
- 0     / 45:  23.5656  23.4806  23.3868  23.3018  23.3015  23.4336
- ---- L:3 T:   25-JAN-1982 00:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.2444  24.3616  24.6223  25.0230  25.3769  25.4884
- 1N    / 48:  24.0827  24.1577  24.3539  24.6907  25.0127  25.1114
- 0.67N / 47:  23.9782  23.9985  24.1095  24.3557  24.6332  24.7370
- 0.33N / 46:  23.9336  23.8998  23.9253  24.0636  24.2777  24.3972
- 0     / 45:  23.9847  23.8969  23.8444  23.8789  24.0106  24.1269
- ---- K:2 Z:   15
- 1.33N / 49:  23.9764  24.0949  24.3635  24.7971  25.2062  25.3654
- 1N    / 48:  23.7597  23.8423  24.0513  24.4207  24.7960  24.9418
- 0.67N / 47:  23.5993  23.6266  23.7505  24.0264  24.3532  24.5021
- 0.33N / 46:  23.5136  23.4812  23.5130  23.6709  23.9254  24.0877
- 0     / 45:  23.5643  23.4665  23.4073  23.4453  23.5998  23.7470
-LIST temp[g=g5day,gz=g5day at asn]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5DAY            @LIN
- strip regrid on T: TEMP --> XNTERMED         @LIN
- reading TEMP     M: 60 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 61 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 62 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 61 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: G5DAY
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
-               130W     129W     128W     127W     126W     125W    
-               100      101      102      103      104      105
- ---- L:2 T:   20-JAN-1982 00:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.3238  24.2570  24.2762  24.4494  24.7922  25.1903
- 1N    / 48:  24.1507  24.0883  24.0875  24.2176  24.5110  24.8654
- 0.67N / 47:  24.0203  23.9592  23.9321  24.0018  24.2240  24.5221
- 0.33N / 46:  23.9499  23.8864  23.8340  23.8376  23.9698  24.1996
- 0     / 45:  23.9612  23.8877  23.8099  23.7565  23.7980  23.9480
- ---- K:2 Z:   15
- 1.33N / 49:  24.0913  24.0125  24.0276  24.2028  24.5625  25.0016
- 1N    / 48:  23.8672  23.7964  23.7967  23.9354  24.2503  24.6469
- 0.67N / 47:  23.6744  23.6082  23.5844  23.6661  23.9151  24.2570
- 0.33N / 46:  23.5490  23.4835  23.4343  23.4459  23.6016  23.8740
- 0     / 45:  23.5362  23.4598  23.3821  23.3279  23.3797  23.5624
- ---- L:3 T:   25-JAN-1982 00:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.3350  24.4653  24.7499  25.1705  25.5289  25.6409
- 1N    / 48:  24.1636  24.2597  24.4881  24.8569  25.1948  25.2999
- 0.67N / 47:  24.0305  24.0781  24.2317  24.5232  24.8229  24.9242
- 0.33N / 46:  23.9559  23.9492  24.0174  24.2096  24.4555  24.5671
- 0     / 45:  23.9591  23.8984  23.8848  23.9713  24.1442  24.2621
- ---- K:2 Z:   15
- 1.33N / 49:  24.0822  24.2113  24.5033  24.9571  25.3691  25.5280
- 1N    / 48:  23.8680  23.9686  24.2074  24.6089  25.0011  25.1536
- 0.67N / 47:  23.6795  23.7345  23.9009  24.2235  24.5746  24.7220
- 0.33N / 46:  23.5565  23.5539  23.6318  23.8486  24.1393  24.2949
- 0     / 45:  23.5390  23.4739  23.4601  23.5581  23.7626  23.9173
-LIST temp[g=g5day,gt=g5day at asn]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5DAY            @LIN
- strip regrid on T: TEMP --> XNTERMED         @ASN
- reading TEMP     M: 61 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 63 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 64 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 63 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: G5DAY on X at LIN, on Y at LIN, on T at ASN
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
-               130W     129W     128W     127W     126W     125W    
-               100      101      102      103      104      105
- ---- L:2 T:   20-JAN-1982 00:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.3636  24.2466  24.2047  24.2944  24.5700  24.9834
- 1N    / 48:  24.1823  24.0808  24.0293  24.0856  24.3131  24.6721
- 0.67N / 47:  24.0429  23.9555  23.8925  23.9012  24.0590  24.3508
- 0.33N / 46:  23.9628  23.8852  23.8134  23.7743  23.8464  24.0554
- 0     / 45:  23.9650  23.8885  23.8048  23.7281  23.7207  23.8377
- ---- K:2 Z:   15
- 1.33N / 49:  24.1405  24.0053  23.9571  24.0466  24.3282  24.7726
- 1N    / 48:  23.9068  23.7900  23.7358  23.7995  24.0412  24.4324
- 0.67N / 47:  23.7030  23.6045  23.5401  23.5583  23.7383  24.0672
- 0.33N / 46:  23.5647  23.4813  23.4100  23.3756  23.4665  23.7136
- 0     / 45:  23.5403  23.4591  23.3754  23.2961  23.2938  23.4386
- ---- L:3 T:   25-JAN-1982 00:00
- ---- K:1 Z:   5
- 1.33N / 49:  24.2757  24.2696  24.3629  24.6374  25.0615  25.4411
- 1N    / 48:  24.1124  24.0973  24.1580  24.3776  24.7508  25.0998
- 0.67N / 47:  23.9930  23.9638  23.9801  24.1238  24.4241  24.7297
- 0.33N / 46:  23.9344  23.8880  23.8589  23.9144  24.1193  24.3743
- 0     / 45:  23.9566  23.8866  23.8159  23.7910  23.8916  24.0818
- ---- K:2 Z:   15
- 1.33N / 49:  24.0317  24.0211  24.1131  24.3923  24.8465  25.2791
- 1N    / 48:  23.8191  23.8041  23.8706  24.1001  24.5038  24.9069
- 0.67N / 47:  23.6398  23.6127  23.6381  23.7968  24.1294  24.4871
- 0.33N / 46:  23.5298  23.4863  23.4638  23.5312  23.7653  24.0683
- 0     / 45:  23.5312  23.4606  23.3902  23.3664  23.4839  23.7124
- 
-! all 4 axes different
-LIST temp[g=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5_10            @AAV
- strip regrid on Z: TEMP --> XNTERMED         @AVE
- strip regrid on T: TEMP --> ZNTERMED         @AVE
- reading TEMP     M: 63 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 65 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 66 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 65 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 65 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 66 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: G5_10 on X at AAV, on Y at AAV, on Z at AVE, on T at AVE
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 2 points (LATITUDE-TIME)
-             LONGITUDE: 130W
-             DEPTH (m): 10
-                        0        0.33N    0.67N    1N       1.33N  
-                        45       46       47       48       49
- 20-JAN-1982 00 / 2:  23.8829  23.9742  24.1489  24.3750  24.6256
- 25-JAN-1982 00 / 3:  23.8850  23.9834  24.1657  24.3983  24.6503
-LIST temp[g=g5_10,gx=g5_10 at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- -DELETE TEMP     M: 65 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5_10            @AVE
- strip regrid on Y: TEMP --> XNTERMED         @LIN
- strip regrid on Z: TEMP --> YNTERMED         @LIN
- strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M: 65 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 66 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 67 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 66 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 66 dset:   1 I:   95  106  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 67 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 67 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 66 dset:   1 I:   95  106  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: G5_10 on X at AVE, on Y at LIN, on Z at LIN, on T at LIN
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 2 points (LATITUDE-TIME)
-             LONGITUDE: 130W
-             DEPTH (m): 10
-                        0        0.33N    0.67N    1N       1.33N  
-                        45       46       47       48       49
- 20-JAN-1982 00 / 2:  23.8838  23.9752  24.1501  24.3761  24.6265
- 25-JAN-1982 00 / 3:  23.8774  23.9728  24.1535  24.3857  24.6381
-LIST temp[g=g5_10,gy=g5_10 at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5_10            @LIN
- strip regrid on Y: TEMP --> XNTERMED         @AVE
- strip regrid on Z: TEMP --> YNTERMED         @LIN
- strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M: 66 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 68 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 69 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 68 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 68 dset:   1 I:  100  101  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 69 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 69 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 68 dset:   1 I:  100  101  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: G5_10 on X at LIN, on Y at AVE, on Z at LIN, on T at LIN
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 2 points (LATITUDE-TIME)
-             LONGITUDE: 130W
-             DEPTH (m): 10
-                        0        0.33N    0.67N    1N       1.33N  
-                        45       46       47       48       49
- 20-JAN-1982 00 / 2:  23.7487  23.7495  23.8474  24.0089  24.2076
- 25-JAN-1982 00 / 3:  23.7491  23.7562  23.8550  24.0158  24.2086
-LIST temp[g=g5_10,gz=g5_10 at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5_10            @LIN
- strip regrid on Z: TEMP --> XNTERMED         @AVE
- strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M: 68 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 70 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 71 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 70 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 70 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 71 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: G5_10 on X at LIN, on Y at LIN, on Z at AVE, on T at LIN
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 2 points (LATITUDE-TIME)
-             LONGITUDE: 130W
-             DEPTH (m): 10
-                        0        0.33N    0.67N    1N       1.33N  
-                        45       46       47       48       49
- 20-JAN-1982 00 / 2:  23.7487  23.7495  23.8474  24.0089  24.2076
- 25-JAN-1982 00 / 3:  23.7491  23.7562  23.8550  24.0158  24.2086
-LIST temp[g=g5_10,gt=g5_10 at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5_10            @LIN
- strip regrid on Z: TEMP --> XNTERMED         @LIN
- strip regrid on T: TEMP --> ZNTERMED         @AVE
- reading TEMP     M: 71 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 72 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 73 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 72 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 72 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 73 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: G5_10 on X at LIN, on Y at LIN, on Z at LIN, on T at AVE
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 2 points (LATITUDE-TIME)
-             LONGITUDE: 130W
-             DEPTH (m): 10
-                        0        0.33N    0.67N    1N       1.33N  
-                        45       46       47       48       49
- 20-JAN-1982 00 / 2:  23.7485  23.7489  23.8463  24.0075  24.2057
- 25-JAN-1982 00 / 3:  23.7481  23.7620  23.8678  24.0343  24.2309
- 
-LIST temp[g=g5_10 at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5_10            @ASN
- strip regrid on Y: TEMP --> XNTERMED         @ASN
- strip regrid on Z: TEMP --> YNTERMED         @ASN
- strip regrid on T: TEMP --> ZNTERMED         @ASN
- reading TEMP     M: 73 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 74 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 75 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 74 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 74 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 75 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 75 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 74 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: G5_10 on X at ASN, on Y at ASN, on Z at ASN, on T at ASN
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 2 points (LATITUDE-TIME)
-             LONGITUDE: 130W
-             DEPTH (m): 10
-                        0        0.33N    0.67N    1N       1.33N  
-                        45       46       47       48       49
- 20-JAN-1982 00 / 2:  29.5859  29.5797  29.5756  29.5662  29.5590
- 25-JAN-1982 00 / 3:  29.5787  29.5737  29.5698  29.5546  29.5421
-LIST temp[g=g5_10,gx=g5_10 at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5_10            @ASN
- strip regrid on Y: TEMP --> XNTERMED         @LIN
- strip regrid on Z: TEMP --> YNTERMED         @LIN
- strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M: 74 dset:   1 I:   12   12  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 76 dset:   1 I:   12   12  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 77 dset:   1 I:   12   12  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 76 dset:   1 I:   12   12  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 76 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 77 dset:   1 I:   12   12  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 77 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 76 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: G5_10 on X at ASN, on Y at LIN, on Z at LIN, on T at LIN
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 2 points (LATITUDE-TIME)
-             LONGITUDE: 130W
-             DEPTH (m): 10
-                        0        0.33N    0.67N    1N       1.33N  
-                        45       46       47       48       49
- 20-JAN-1982 00 / 2:  29.5747  29.5654  29.5513  29.5344  29.5265
- 25-JAN-1982 00 / 3:  29.5636  29.5536  29.5355  29.5146  29.5054
-LIST temp[g=g5_10,gy=g5_10 at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5_10            @LIN
- strip regrid on Y: TEMP --> XNTERMED         @ASN
- strip regrid on Z: TEMP --> YNTERMED         @LIN
- strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M: 76 dset:   1 I:  100  101  J:   45   49  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 78 dset:   1 I:  100  101  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 79 dset:   1 I:  100  101  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 78 dset:   1 I:  100  101  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 78 dset:   1 I:  100  101  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 79 dset:   1 I:  100  101  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 79 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 78 dset:   1 I:  100  101  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: G5_10 on X at LIN, on Y at ASN, on Z at LIN, on T at LIN
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 2 points (LATITUDE-TIME)
-             LONGITUDE: 130W
-             DEPTH (m): 10
-                        0        0.33N    0.67N    1N       1.33N  
-                        45       46       47       48       49
- 20-JAN-1982 00 / 2:  23.7784  23.7190  23.7799  23.9148  24.1031
- 25-JAN-1982 00 / 3:  23.7745  23.7236  23.7888  23.9212  24.1104
-LIST temp[g=g5_10,gz=g5_10 at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5_10            @LIN
- strip regrid on Z: TEMP --> XNTERMED         @ASN
- strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M: 78 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 80 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 81 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 80 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 80 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 81 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: G5_10 on X at LIN, on Y at LIN, on Z at ASN, on T at LIN
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 2 points (LATITUDE-TIME)
-             LONGITUDE: 130W
-             DEPTH (m): 10
-                        0        0.33N    0.67N    1N       1.33N  
-                        45       46       47       48       49
- 20-JAN-1982 00 / 2:  23.9612  23.9499  24.0203  24.1507  24.3238
- 25-JAN-1982 00 / 3:  23.9591  23.9559  24.0305  24.1636  24.3350
-LIST temp[g=g5_10,gt=g5_10 at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5_10            @LIN
- strip regrid on Z: TEMP --> XNTERMED         @LIN
- strip regrid on T: TEMP --> ZNTERMED         @ASN
- reading TEMP     M: 81 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 82 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 83 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 82 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 82 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 83 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: G5_10 on X at LIN, on Y at LIN, on Z at LIN, on T at ASN
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 2 points (LATITUDE-TIME)
-             LONGITUDE: 130W
-             DEPTH (m): 10
-                        0        0.33N    0.67N    1N       1.33N  
-                        45       46       47       48       49
- 20-JAN-1982 00 / 2:  23.7527  23.7638  23.8729  24.0446  24.2520
- 25-JAN-1982 00 / 3:  23.7439  23.7321  23.8164  23.9658  24.1537
- 
-! unspecified regions
-SET MODE IGNORE	! V.5 change
-canc reg
-set reg/l=1:3  ! x,y,z unspecified
-load temp
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DT2          PSXT1     PSYT      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    3  M: -999 -999  N: -999 -999
- reading TEMP     M: 83 dset:   1 I:    1  160  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
-load temp[g=u]
- dealloc  dynamic grid PS3DT2          PSXT1     PSYT      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU2           @LIN
- strip modulo-void-filling TEMP on X axis:     1   161 dset:   1
- reading TEMP     M: 84 dset:   1 I:    1  160  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing modulo-void-filling TEMP on X axis:     1   160 dset:   1
- regrid XY
- regrid  TEMP     M: 86 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  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
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU2           @LIN
- strip modulo-void-filling TEMP on X axis:     1   161 dset:   1
- reading TEMP     M: 87 dset:   1 I:    1  160  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing modulo-void-filling TEMP on X axis:     1   160 dset:   1
- regrid XY
- regrid  TEMP     M: 89 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- 
-load temp[g=u at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU2           @AAV
- strip modulo-void-filling TEMP on X axis:     1   161 dset:   1
- reading TEMP     M: 90 dset:   1 I:    1  160  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing modulo-void-filling TEMP on X axis:     1   160 dset:   1
- regrid XY
- regrid  TEMP     M: 92 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
-load temp[g=u,gx=u at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    3  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip regrid on X: TEMP --> PS3DU2           @AVE
- strip modulo-void-filling TEMP on X axis:     1   161 dset:   1
- strip regrid on Y: TEMP --> XNTERMED         @LIN
- reading TEMP     M: 93 dset:   1 I:    1  160  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 94 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing modulo-void-filling TEMP on X axis:     1   160 dset:   1
- regrid  TEMP     M: 96 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 95 dset:   1 I:    1  161  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
-load temp[g=u,gy=u at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    3  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip regrid on X: TEMP --> PS3DU2           @LIN
- strip modulo-void-filling TEMP on X axis:     1   161 dset:   1
- strip regrid on Y: TEMP --> XNTERMED         @AVE
- reading TEMP     M: 95 dset:   1 I:    1  160  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 97 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing modulo-void-filling TEMP on X axis:     1   160 dset:   1
- regrid  TEMP     M: 99 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 98 dset:   1 I:    1  161  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- 
-load temp[g=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU2           @ASN
- strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M: 98 dset:   1 I:    1  160  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:100 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:101 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:100 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
-load temp[g=u,gx=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    3  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip regrid on X: TEMP --> PS3DU2           @ASN
- strip regrid on Y: TEMP --> XNTERMED         @LIN
- reading TEMP     M:100 dset:   1 I:    1  160  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:102 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:103 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:102 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
-load temp[g=u,gy=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    3  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip regrid on X: TEMP --> PS3DU2           @LIN
- strip modulo-void-filling TEMP on X axis:     1   161 dset:   1
- strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M:102 dset:   1 I:    1  160  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:104 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing modulo-void-filling TEMP on X axis:     1   160 dset:   1
- regrid  TEMP     M:106 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:105 dset:   1 I:    1  161  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- 
-canc reg
-use gtsa056_2		!kob 4/99
-set reg/i=101:105/j=41:42  ! z,t unspecified
-load temp[g=u]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU1           @LIN
- reading TEMP     M:105 dset:   2 I:  101  106  J:   41   43  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:107 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- 
-load temp[g=u at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU1           @AAV
- reading TEMP     M:108 dset:   2 I:  101  106  J:   41   43  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:109 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
-load temp[g=u,gz=u at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- strip regrid on X: TEMP --> PS3DU1           @LIN
- reading TEMP     M:110 dset:   2 I:  101  106  J:   41   43  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:111 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
-load temp[g=u,gt=u at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- strip regrid on X: TEMP --> PS3DU1           @LIN
- reading TEMP     M:112 dset:   2 I:  101  106  J:   41   43  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:113 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 
-load temp[g=u at asn]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU1           @ASN
- strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M:114 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- regrid  TEMP     M:115 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- regrid  TEMP     M:116 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:115 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
-load temp[g=u,gz=u at asn]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- strip regrid on X: TEMP --> PS3DU1           @LIN
- reading TEMP     M:115 dset:   2 I:  101  106  J:   41   43  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:117 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
-load temp[g=u,gt=u at asn]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- strip regrid on X: TEMP --> PS3DU1           @LIN
- reading TEMP     M:118 dset:   2 I:  101  106  J:   41   43  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:119 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
-SET MODE/LAST IGNORE	! V.5 change
- 
-! plot verifications
-set mode interp    ! regridding is also an interpolation
-cancel viewports
-set window/size=.5/aspect=.4 1
- 
-! X axis
-use gtsa056_1 		!kob 4/99
-set region/x=130E:90W/y=0/z=5/t=21-JAN-1982
-plot temp
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DT2          PSXT1     PSYT      PSZT      TIME2     NORMAL    NORMAL
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    1  140  J:   45   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- reading TEMP     M:120 dset:   1 I:    1  140  J:   45   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 76   complete
-plot/over temp[g=u]
- dealloc  dynamic grid PS3DT2          PSXT1     PSYT      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
- strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M:123 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:124 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
- doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 77   complete
-plot/over temp[g=g5day]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
- strip regrid on X: TEMP --> G5DAY            @LIN
- strip regrid on T: TEMP --> XNTERMED         @LIN
- reading TEMP     M:128 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:129 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:130 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:129 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
- doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 78   complete
-plot/over temp[g=g5_10]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Z=5 at ITP,D=1]
- strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5_10            @LIN
- strip moduloing TEMP on X axis:     0   141 dset:   1
- strip regrid on Z: TEMP --> XNTERMED         @LIN
- strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M:133 dset:   1 I:    1  141  J:   44   46  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:134 dset:   1 I:    1  141  J:   44   46  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:135 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:134 dset:   1 I:    1  141  J:   44   46  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   141 dset:   1
- regrid XY
- regrid  TEMP     M:136 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:134 dset:   1 I:    0  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[Z=5 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 79   complete
-plot/over temp[g=u at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
- strip regrid on X: TEMP --> PS3DU2           @AAV
- reading TEMP     M:139 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:140 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
- doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 80   complete
-plot/over temp[g=g5day at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
- strip regrid on X: TEMP --> G5DAY            @AAV
- strip regrid on T: TEMP --> XNTERMED         @AVE
- reading TEMP     M:144 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:145 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:146 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:145 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
- doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 81   complete
-plot/over temp[g=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Z=5 at ITP,D=1]
- strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5_10            @AAV
- strip moduloing TEMP on X axis:     0   146 dset:   1
- strip regrid on Z: TEMP --> XNTERMED         @AVE
- strip regrid on T: TEMP --> ZNTERMED         @AVE
- reading TEMP     M:149 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:150 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:151 dset:   1 I:    1  146  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:150 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   146 dset:   1
- regrid XY
- regrid  TEMP     M:152 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:150 dset:   1 I:    0  146  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[Z=5 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 82   complete
-plot/over temp[g=u at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
- strip regrid on X: TEMP --> PS3DU2           @ASN
- strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M:155 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:156 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:157 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:156 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
- doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 83   complete
-plot/over temp[g=g5day at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
- strip regrid on X: TEMP --> G5DAY            @ASN
- strip regrid on Y: TEMP --> XNTERMED         @ASN
- strip regrid on T: TEMP --> YNTERMED         @ASN
- reading TEMP     M:160 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:161 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:162 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:161 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:161 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:162 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
- doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 84   complete
-plot/over temp[g=u,gx=u at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip moduloing TEMP on X axis:     0   140 dset:   1
- strip regrid on X: TEMP --> PS3DU2           @AVE
- strip regrid on Y: TEMP --> XNTERMED         @LIN
- reading TEMP     M:165 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:166 dset:   1 I:    1  141  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:167 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:166 dset:   1 I:    1  141  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 85   complete
-plot/over temp[g=g5day,gx=g5day at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
- strip regrid on X: TEMP --> G5DAY            @AVE
- strip regrid on Y: TEMP --> XNTERMED         @LIN
- strip regrid on T: TEMP --> YNTERMED         @LIN
- reading TEMP     M:170 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:171 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:172 dset:   1 I:    1  141  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:171 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:171 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:172 dset:   1 I:    1  141  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
- doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 86   complete
-plot/over temp[g=g5_10,gx=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Z=5 at ITP,D=1]
- strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5_10            @AVE
- strip moduloing TEMP on X axis:     0   146 dset:   1
- strip regrid on Y: TEMP --> XNTERMED         @LIN
- strip regrid on Z: TEMP --> YNTERMED         @LIN
- strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M:175 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:176 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:177 dset:   1 I:    1  146  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:176 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:176 dset:   1 I:    1  146  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:177 dset:   1 I:    1  146  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   146 dset:   1
- regrid  TEMP     M:178 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:177 dset:   1 I:    0  146  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[Z=5 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 87   complete
-plot/over temp[g=g5_10 at asn]   ! invalid interpretation of data
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Z=5 at ITP,D=1]
- strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5_10            @ASN
- strip regrid on Y: TEMP --> XNTERMED         @ASN
- strip regrid on Z: TEMP --> YNTERMED         @ASN
- strip regrid on T: TEMP --> ZNTERMED         @ASN
- reading TEMP     M:181 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:182 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:183 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:182 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:182 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:183 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:183 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:182 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[Z=5 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 88   complete
- 
-! Y axis
-set region/x=180/y=20s:20n/z=5/t=21-JAN-1982
-plot temp
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DT2          PSXT1     PSYT      PSZT      TIME2     NORMAL    NORMAL
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:   50   51  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- reading TEMP     M:186 dset:   1 I:   50   51  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing --> TEMP[X=180E at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 89   complete
-plot/over temp[g=u]
- dealloc  dynamic grid PS3DT2          PSXT1     PSYT      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M:189 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:190 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 90   complete
-plot/over temp[g=g5day]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5DAY            @LIN
- strip regrid on T: TEMP --> XNTERMED         @LIN
- reading TEMP     M:192 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:193 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:194 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:193 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 91   complete
-plot/over temp[g=g5_10]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Z=5 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5_10            @LIN
- strip regrid on Z: TEMP --> XNTERMED         @LIN
- strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M:195 dset:   1 I:   50   51  J:    5   89  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:196 dset:   1 I:   50   51  J:    5   89  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:197 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:196 dset:   1 I:   50   51  J:    5   89  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:196 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:197 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing --> TEMP[Z=5 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 92   complete
-plot/over temp[g=u at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU2           @AAV
- reading TEMP     M:199 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:200 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 93   complete
-plot/over temp[g=g5day at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5DAY            @AAV
- strip regrid on T: TEMP --> XNTERMED         @AVE
- reading TEMP     M:202 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:203 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:204 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:203 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 94   complete
-plot/over temp[g=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Z=5 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5_10            @AAV
- strip regrid on Z: TEMP --> XNTERMED         @AVE
- strip regrid on T: TEMP --> ZNTERMED         @AVE
- reading TEMP     M:205 dset:   1 I:   45   56  J:    5   89  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:206 dset:   1 I:   45   56  J:    5   89  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:207 dset:   1 I:   45   56  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:206 dset:   1 I:   45   56  J:    5   89  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:206 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:207 dset:   1 I:   45   56  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing --> TEMP[Z=5 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 95   complete
-plot/over temp[g=u at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU2           @ASN
- strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M:209 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:210 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:211 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:210 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 96   complete
-plot/over temp[g=g5day at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5DAY            @ASN
- strip regrid on Y: TEMP --> XNTERMED         @ASN
- strip regrid on T: TEMP --> YNTERMED         @ASN
- reading TEMP     M:212 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:213 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:214 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:213 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:213 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:214 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 97   complete
-plot/over temp[g=u,gy=u at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip regrid on X: TEMP --> PS3DU2           @LIN
- strip regrid on Y: TEMP --> XNTERMED         @AVE
- reading TEMP     M:215 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:216 dset:   1 I:   50   51  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:217 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:216 dset:   1 I:   50   51  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 98   complete
-plot/over temp[g=g5day,gy=g5day at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5DAY            @LIN
- strip regrid on Y: TEMP --> XNTERMED         @AVE
- strip regrid on T: TEMP --> YNTERMED         @LIN
- reading TEMP     M:218 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:219 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:220 dset:   1 I:   50   51  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:219 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:219 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:220 dset:   1 I:   50   51  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 99   complete
-plot/over temp[g=g5_10,gy=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Z=5 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5_10            @LIN
- strip regrid on Y: TEMP --> XNTERMED         @AVE
- strip regrid on Z: TEMP --> YNTERMED         @LIN
- strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M:221 dset:   1 I:   50   51  J:    5   89  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:222 dset:   1 I:   50   51  J:    5   89  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:223 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:222 dset:   1 I:   50   51  J:    5   89  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:222 dset:   1 I:   50   51  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:223 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:223 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:222 dset:   1 I:   50   51  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing --> TEMP[Z=5 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 100  complete
-plot/over temp[g=g5_10 at asn]  ! invalid interpretation of data
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Z=5 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5_10            @ASN
- strip regrid on Y: TEMP --> XNTERMED         @ASN
- strip regrid on Z: TEMP --> YNTERMED         @ASN
- strip regrid on T: TEMP --> ZNTERMED         @ASN
- reading TEMP     M:225 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:226 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:227 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:226 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:226 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:227 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:227 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:226 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing --> TEMP[Z=5 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 101  complete
- 
-! T axis
-use gtsa056_2	!kob  4/99
-set region/x=180W/y=0/z=5/t=21-JAN-1982:13-JUN-1983
-load temp[i=50:51,j=45:56,k=1:2,l=1:172]  ! preload to save time
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DT1          PSXT1     PSYT      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     1   172 dset:   2
- reading TEMP     M:229 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     PSYT      PSZT      TIME1     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DT1          PSXT1     PSYT      PSZT      TIME1     NORMAL    NORMAL
- strip --> EX#1[Y=0 at ITP,D=2]
- strip --> EX#1[X=180E at ITP,D=2]
- eval    EX#1     C:  6 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     3   170 dset:   2
- reading TEMP     M:231 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
- reading TEMP     M:233 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
- doing --> TEMP[X=180E at ITP,D=2]
- doing --> TEMP[Y=0 at ITP,D=2]
-setting up plot
-PPL plot 102  complete
-plot/over temp[g=u]
- dealloc  dynamic grid PS3DT1          PSXT1     PSYT      PSZT      TIME1     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     3   170 dset:   2
- strip regrid on X: TEMP --> PS3DU1           @LIN
- reading TEMP     M:236 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:237 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
- strip regrid on X: TEMP --> PS3DU1           @LIN
- reading TEMP     M:239 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:240 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
- doing --> TEMP[Y=0 at ITP,D=2]
-setting up plot
-PPL plot 103  complete
-plot/over temp[g=g5day]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5DAY            @LIN
- strip regrid on T: TEMP --> XNTERMED         @LIN
- strip moduloing TEMP on T axis:     2   171 dset:   2
- reading TEMP     M:242 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
- regrid  TEMP     M:244 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:245 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:244 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- doing --> TEMP[Y=0 at ITP,D=2]
-setting up plot
-PPL plot 104  complete
-plot/over temp[g=g5_10]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[Z=5 at ITP,D=2]
- strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  6 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5_10            @LIN
- strip regrid on Z: TEMP --> XNTERMED         @LIN
- strip regrid on T: TEMP --> ZNTERMED         @LIN
- strip moduloing TEMP on T axis:     2   171 dset:   2
- reading TEMP     M:246 dset:   2 I:   50   51  J:   44   46  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
- regrid  TEMP     M:248 dset:   2 I:   50   51  J:   44   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:249 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:248 dset:   2 I:   50   51  J:   44   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:248 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:249 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- doing --> TEMP[Y=0 at ITP,D=2]
- doing --> TEMP[Z=5 at ITP,D=2]
-setting up plot
-PPL plot 105  complete
-plot/over temp[g=u at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     3   170 dset:   2
- strip regrid on X: TEMP --> PS3DU1           @AAV
- reading TEMP     M:251 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:252 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
- strip regrid on X: TEMP --> PS3DU1           @AAV
- reading TEMP     M:254 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:255 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
- doing --> TEMP[Y=0 at ITP,D=2]
-setting up plot
-PPL plot 106  complete
-plot/over temp[g=g5day at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5DAY            @AAV
- strip regrid on T: TEMP --> XNTERMED         @AVE
- strip moduloing TEMP on T axis:     2   171 dset:   2
- reading TEMP     M:257 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
- regrid  TEMP     M:259 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:260 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:259 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- doing --> TEMP[Y=0 at ITP,D=2]
-setting up plot
-PPL plot 107  complete
-plot/over temp[g=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[Z=5 at ITP,D=2]
- strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  6 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5_10            @AAV
- strip regrid on Z: TEMP --> XNTERMED         @AVE
- strip regrid on T: TEMP --> ZNTERMED         @AVE
- strip moduloing TEMP on T axis:     2   171 dset:   2
- reading TEMP     M:261 dset:   2 I:   45   56  J:   44   46  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
- regrid  TEMP     M:263 dset:   2 I:   45   56  J:   44   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:264 dset:   2 I:   45   56  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:263 dset:   2 I:   45   56  J:   44   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:263 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:264 dset:   2 I:   45   56  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- doing --> TEMP[Y=0 at ITP,D=2]
- doing --> TEMP[Z=5 at ITP,D=2]
-setting up plot
-PPL plot 108  complete
-plot/over temp[g=u at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     3   170 dset:   2
- strip regrid on X: TEMP --> PS3DU1           @ASN
- strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M:266 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- regrid  TEMP     M:267 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- regrid  TEMP     M:268 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:267 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
- strip regrid on X: TEMP --> PS3DU1           @ASN
- strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M:269 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- regrid  TEMP     M:270 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- regrid  TEMP     M:271 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:270 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
- doing --> TEMP[Y=0 at ITP,D=2]
-setting up plot
-PPL plot 109  complete
-plot/over temp[g=g5_10 at asn]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[Z=5 at ITP,D=2]
- strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  6 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5_10            @ASN
- strip regrid on Y: TEMP --> XNTERMED         @ASN
- strip regrid on Z: TEMP --> YNTERMED         @ASN
- strip regrid on T: TEMP --> ZNTERMED         @ASN
- reading TEMP     M:272 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:273 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:274 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:273 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:273 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:274 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:274 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:273 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- doing --> TEMP[Y=0 at ITP,D=2]
- doing --> TEMP[Z=5 at ITP,D=2]
-setting up plot
-PPL plot 110  complete
-plot/over temp[g=u,gt=u at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- strip moduloing TEMP on T axis:     3   170 dset:   2
- strip regrid on X: TEMP --> PS3DU1           @LIN
- reading TEMP     M:276 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:277 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
- strip regrid on X: TEMP --> PS3DU1           @LIN
- reading TEMP     M:279 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:280 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- doing --> TEMP[Y=0 at ITP,D=2]
-setting up plot
-PPL plot 111  complete
-plot/over temp[g=g5day,gt=g5day at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5DAY            @LIN
- strip regrid on T: TEMP --> XNTERMED         @AVE
- strip moduloing TEMP on T axis:     2   171 dset:   2
- reading TEMP     M:282 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
- regrid  TEMP     M:284 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:285 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:284 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- doing --> TEMP[Y=0 at ITP,D=2]
-setting up plot
-PPL plot 112  complete
-plot/over temp[g=g5_10,gt=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[Z=5 at ITP,D=2]
- strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  6 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5_10            @LIN
- strip regrid on Z: TEMP --> XNTERMED         @LIN
- strip regrid on T: TEMP --> ZNTERMED         @AVE
- strip moduloing TEMP on T axis:     2   171 dset:   2
- reading TEMP     M:286 dset:   2 I:   50   51  J:   44   46  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
- regrid  TEMP     M:288 dset:   2 I:   50   51  J:   44   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:289 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:288 dset:   2 I:   50   51  J:   44   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:288 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:289 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- doing --> TEMP[Y=0 at ITP,D=2]
- doing --> TEMP[Z=5 at ITP,D=2]
-setting up plot
-PPL plot 113  complete
-plot/over temp[g=g5day,gt=g5day at asn]  ! invalid interpretation of data
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5DAY            @LIN
- strip regrid on T: TEMP --> XNTERMED         @ASN
- reading TEMP     M:291 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:292 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:293 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:292 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- doing --> TEMP[Y=0 at ITP,D=2]
-setting up plot
-PPL plot 114  complete
- 
-set mode/last interp
-cancel region
- 
-! 1/00 additions to check details of @AVE bevavior
-define axis/x=1.1:7.1:1 xoffset
-define axis/x=5/npoints=1 x1pt
-define axis/x=5:6:1 x2pt
- 
-! test 1D regrid
-let a1 = x[gx=x1pt]	! single point
-let a2 = x[gx=x2pt]
- 
-list a1[gx=xoffset at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid A1       C:  7 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: A1 --> (G011)           @AVE
- eval    A1       C:  7 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:294 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A1       M:296 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
-             VARIABLE : X[GX=X1PT]
-                        regrid: 1 delta on X at AVE
-             SUBSET   : 7 points (X)
- 1.1 / 1:     ....
- 2.1 / 2:     ....
- 3.1 / 3:     ....
- 4.1 / 4:  5.00000
- 5.1 / 5:  5.00000
- 6.1 / 6:     ....
- 7.1 / 7:     ....
-list a1[gx=xoffset at sum] ! should sum to 5
- -DELETE X        M:294 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:296 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: A1 --> (G011)           @SUM
- eval    A1       C:  7 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:296 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A1       M:297 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
-             VARIABLE : X[GX=X1PT]
-                        regrid: 1 delta on X at SUM
-             SUBSET   : 7 points (X)
- 1.1 / 1:     ....
- 2.1 / 2:     ....
- 3.1 / 3:     ....
- 4.1 / 4:  0.50000
- 5.1 / 5:  4.50000
- 6.1 / 6:     ....
- 7.1 / 7:     ....
-list a1[gx=xoffset at var] ! should be all missing
- -DELETE X        M:296 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:297 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: A1 --> (G011)           @VAR
- eval    A1       C:  7 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:297 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A1       M:298 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
-             VARIABLE : Variance of X[GX=X1PT]
-                        regrid: 1 delta on X at VAR
-             SUBSET   : 7 points (X)
- 1.1 / 1:....
- 2.1 / 2:....
- 3.1 / 3:....
- 4.1 / 4:....
- 5.1 / 5:....
- 6.1 / 6:....
- 7.1 / 7:....
- 
-list a2[gx=xoffset at ave]
- -DELETE X        M:297 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:298 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid A2       C:  7 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: A2 --> (G006)           @AVE
- eval    A2       C:  7 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:298 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A2       M:299 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
-             VARIABLE : X[GX=X2PT]
-                        regrid: 1 delta on X at AVE
-             SUBSET   : 7 points (X)
- 1.1 / 1:     ....
- 2.1 / 2:     ....
- 3.1 / 3:     ....
- 4.1 / 4:  5.00000
- 5.1 / 5:  5.10000
- 6.1 / 6:  6.00000
- 7.1 / 7:     ....
-list a2[gx=xoffset at sum] ! should sum to 5+6=11
- -DELETE X        M:298 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:299 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: A2 --> (G006)           @SUM
- eval    A2       C:  7 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:299 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A2       M:300 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
-             VARIABLE : X[GX=X2PT]
-                        regrid: 1 delta on X at SUM
-             SUBSET   : 7 points (X)
- 1.1 / 1:     ....
- 2.1 / 2:     ....
- 3.1 / 3:     ....
- 4.1 / 4:  0.50000
- 5.1 / 5:  5.10000
- 6.1 / 6:  5.40000
- 7.1 / 7:     ....
-list a2[gx=xoffset at var]
- -DELETE X        M:299 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:300 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: A2 --> (G006)           @VAR
- eval    A2       C:  7 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:300 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A2       M:301 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
-             VARIABLE : Variance of X[GX=X2PT]
-                        regrid: 1 delta on X at VAR
-             SUBSET   : 7 points (X)
- 1.1 / 1:       ....
- 2.1 / 2:       ....
- 3.1 / 3:       ....
- 4.1 / 4:       ....
- 5.1 / 5:  0.0900000
- 6.1 / 6:       ....
- 7.1 / 7:       ....
- 
-! test 2D regrid
-define axis/y=1.1:7.1:1 yoffset
-define axis/y=5/npoints=1 y1pt
-define axis/y=5:6:1 y2pt
- 
-let a1 = x[gx=x1pt]+y[gy=y1pt]
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:301 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:297 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:298 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:299 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:300 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A1       M:294 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A1       M:295 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A1       M:296 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
-let a2 = x[gx=x2pt]+y[gy=y2pt]
- 
-list a1[gx=xoffset at ave, gy=yoffset at ave]
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid A1       C:  7 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G009)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X1PT      Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: A1 --> (G011)           @AVE
- strip regrid on Y: A1 --> XNTERMED         @AVE
- eval    A1       C:  8 dset:   0 I:    1    1  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:296 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  Y        M:295 dset:   0 I: -999 -999  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE Y        M:295 dset:   0 I: -999 -999  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:296 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A1       M:296 dset:   0 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A1       M:295 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A1       M:296 dset:   0 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
-             VARIABLE : X[GX=X1PT]+Y[GY=Y1PT]
-                        regrid: 1 delta on X at AVE, 1 delta on Y at AVE
-             SUBSET   : 7 by 7 points (X-Y)
-              1.1      2.1      3.1      4.1      5.1      6.1      7.1   
-              1        2        3        4        5        6        7
- 1.1 / 1:     ....     ....     ....     ....     ....     ....     ....
- 2.1 / 2:     ....     ....     ....     ....     ....     ....     ....
- 3.1 / 3:     ....     ....     ....     ....     ....     ....     ....
- 4.1 / 4:     ....     ....     ....  10.0000  10.0000     ....     ....
- 5.1 / 5:     ....     ....     ....  10.0000  10.0000     ....     ....
- 6.1 / 6:     ....     ....     ....     ....     ....     ....     ....
- 7.1 / 7:     ....     ....     ....     ....     ....     ....     ....
-list a1[gx=xoffset at sum, gy=yoffset at sum] ! should sum to 10
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:295 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: A1 --> (G011)           @SUM
- strip regrid on Y: A1 --> XNTERMED         @SUM
- eval    A1       C:  8 dset:   0 I:    1    1  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:295 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  Y        M:296 dset:   0 I: -999 -999  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE Y        M:296 dset:   0 I: -999 -999  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:295 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A1       M:295 dset:   0 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A1       M:296 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A1       M:295 dset:   0 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
-             VARIABLE : X[GX=X1PT]+Y[GY=Y1PT]
-                        regrid: 1 delta on X at SUM, 1 delta on Y at SUM
-             SUBSET   : 7 by 7 points (X-Y)
-              1.1      2.1      3.1      4.1      5.1      6.1      7.1   
-              1        2        3        4        5        6        7
- 1.1 / 1:     ....     ....     ....     ....     ....     ....     ....
- 2.1 / 2:     ....     ....     ....     ....     ....     ....     ....
- 3.1 / 3:     ....     ....     ....     ....     ....     ....     ....
- 4.1 / 4:     ....     ....     ....  0.10000  0.90000     ....     ....
- 5.1 / 5:     ....     ....     ....  0.90000  8.10000     ....     ....
- 6.1 / 6:     ....     ....     ....     ....     ....     ....     ....
- 7.1 / 7:     ....     ....     ....     ....     ....     ....     ....
-list a1[gx=xoffset at var, gy=yoffset at var] ! should be all missing
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:296 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: A1 --> (G011)           @VAR
- strip regrid on Y: A1 --> XNTERMED         @VAR
- eval    A1       C:  8 dset:   0 I:    1    1  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:296 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  Y        M:295 dset:   0 I: -999 -999  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE Y        M:295 dset:   0 I: -999 -999  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:296 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A1       M:296 dset:   0 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A1       M:295 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A1       M:296 dset:   0 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
-             VARIABLE : Variance of X[GX=X1PT]+Y[GY=Y1PT]
-                        regrid: 1 delta on X at VAR, 1 delta on Y at VAR
-             SUBSET   : 7 by 7 points (X-Y)
-           1.1 2.1 3.1 4.1 5.1 6.1 7.1 
-            1   2   3   4   5   6   7
- 1.1 / 1:............................
- 2.1 / 2:............................
- 3.1 / 3:............................
- 4.1 / 4:............................
- 5.1 / 5:............................
- 6.1 / 6:............................
- 7.1 / 7:............................
- 
-list a2[gx=xoffset at ave, gy=yoffset at ave]
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:295 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid A2       C:  7 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G011)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X2PT      Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: A2 --> (G006)           @AVE
- strip regrid on Y: A2 --> XNTERMED         @AVE
- eval    A2       C:  8 dset:   0 I:    1    2  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:295 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G008)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  Y        M:296 dset:   0 I: -999 -999  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE Y        M:296 dset:   0 I: -999 -999  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G008)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:295 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A2       M:295 dset:   0 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A2       M:296 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:295 dset:   0 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
-             VARIABLE : X[GX=X2PT]+Y[GY=Y2PT]
-                        regrid: 1 delta on X at AVE, 1 delta on Y at AVE
-             SUBSET   : 7 by 7 points (X-Y)
-              1.1      2.1      3.1      4.1      5.1      6.1      7.1   
-              1        2        3        4        5        6        7
- 1.1 / 1:     ....     ....     ....     ....     ....     ....     ....
- 2.1 / 2:     ....     ....     ....     ....     ....     ....     ....
- 3.1 / 3:     ....     ....     ....     ....     ....     ....     ....
- 4.1 / 4:     ....     ....     ....  10.0000  10.1000  11.0000     ....
- 5.1 / 5:     ....     ....     ....  10.1000  10.2000  11.1000     ....
- 6.1 / 6:     ....     ....     ....  11.0000  11.1000  12.0000     ....
- 7.1 / 7:     ....     ....     ....     ....     ....     ....     ....
-list a2[gx=xoffset at sum, gy=yoffset at sum] ! should sum to 10+11+11+12=44
- dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:296 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: A2 --> (G006)           @SUM
- strip regrid on Y: A2 --> XNTERMED         @SUM
- eval    A2       C:  8 dset:   0 I:    1    2  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:296 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G008)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  Y        M:295 dset:   0 I: -999 -999  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE Y        M:295 dset:   0 I: -999 -999  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G008)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:296 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A2       M:296 dset:   0 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A2       M:295 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:296 dset:   0 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
-             VARIABLE : X[GX=X2PT]+Y[GY=Y2PT]
-                        regrid: 1 delta on X at SUM, 1 delta on Y at SUM
-             SUBSET   : 7 by 7 points (X-Y)
-              1.1      2.1      3.1      4.1      5.1      6.1      7.1   
-              1        2        3        4        5        6        7
- 1.1 / 1:     ....     ....     ....     ....     ....     ....     ....
- 2.1 / 2:     ....     ....     ....     ....     ....     ....     ....
- 3.1 / 3:     ....     ....     ....     ....     ....     ....     ....
- 4.1 / 4:     ....     ....     ....   0.1000   1.0100   0.9900     ....
- 5.1 / 5:     ....     ....     ....   1.0100  10.2000   9.9900     ....
- 6.1 / 6:     ....     ....     ....   0.9900   9.9900   9.7200     ....
- 7.1 / 7:     ....     ....     ....     ....     ....     ....     ....
- ! NOTE: as of V5.1 NO xy_var trans exists.  Need it to be complete ...!
-list a2[gx=xoffset at var, gy=yoffset at var]
- dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:295 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: A2 --> (G006)           @VAR
- strip regrid on Y: A2 --> XNTERMED         @VAR
- eval    A2       C:  8 dset:   0 I:    1    2  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:295 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G008)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  Y        M:296 dset:   0 I: -999 -999  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE Y        M:296 dset:   0 I: -999 -999  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G008)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:295 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A2       M:295 dset:   0 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A2       M:296 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:295 dset:   0 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
-             VARIABLE : Variance of X[GX=X2PT]+Y[GY=Y2PT]
-                        regrid: 1 delta on X at VAR, 1 delta on Y at VAR
-             SUBSET   : 7 by 7 points (X-Y)
-              1.1       2.1       3.1       4.1       5.1       6.1       7.1    
-               1         2         3         4         5         6         7
- 1.1 / 1:      ....      ....      ....      ....      ....      ....      ....
- 2.1 / 2:      ....      ....      ....      ....      ....      ....      ....
- 3.1 / 3:      ....      ....      ....      ....      ....      ....      ....
- 4.1 / 4:      ....      ....      ....      ....      ....      ....      ....
- 5.1 / 5:      ....      ....      ....      ....  0.000000      ....      ....
- 6.1 / 6:      ....      ....      ....      ....      ....      ....      ....
- 7.1 / 7:      ....      ....      ....      ....      ....      ....      ....
- 
-! 1/00 additions to check details of @MIN, at MAX bevavior
-define axis/x=1.1:7.1:1 xoffset
-define axis/x=5/npoints=1 x1pt
-define axis/x=5:6:1 x2pt
-define axis/x=5:6.5:.5 x4pt
- 
-let a1 = x[gx=x1pt]
- dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:296 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:297 dset:   0 I:    1    2  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:298 dset:   0 I:    1    2  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:301 dset:   0 I:    1    2  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X2PT      Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:294 dset:   0 I:    1    1  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A1       M:299 dset:   0 I:    1    1  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A1       M:300 dset:   0 I:    1    1  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
-let a2 = x[gx=x2pt]
-let a4 = x[gx=x4pt]
- 
-list a1[gx=xoffset at max]
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid A1       C:  7 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: A1 --> (G011)           @MAX
- eval    A1       C:  7 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:300 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A1       M:294 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
-             VARIABLE : X[GX=X1PT]
-                        regrid: 1 delta on X at MAX
-             SUBSET   : 7 points (X)
- 1.1 / 1:     ....
- 2.1 / 2:     ....
- 3.1 / 3:     ....
- 4.1 / 4:     ....
- 5.1 / 5:  5.00000
- 6.1 / 6:     ....
- 7.1 / 7:     ....
-list a2[gx=xoffset at max]
- -DELETE X        M:300 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:294 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid A2       C:  7 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: A2 --> (G006)           @MAX
- eval    A2       C:  7 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:294 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A2       M:301 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
-             VARIABLE : X[GX=X2PT]
-                        regrid: 1 delta on X at MAX
-             SUBSET   : 7 points (X)
- 1.1 / 1:     ....
- 2.1 / 2:     ....
- 3.1 / 3:     ....
- 4.1 / 4:     ....
- 5.1 / 5:  5.00000
- 6.1 / 6:  6.00000
- 7.1 / 7:     ....
-list a4[gx=xoffset at max]
- -DELETE X        M:294 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:301 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid A4       C:  7 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: A4 --> (G010)           @MAX
- eval    A4       C:  7 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:301 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A4       M:298 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
-             VARIABLE : X[GX=X4PT]
-                        regrid: 1 delta on X at MAX
-             SUBSET   : 7 points (X)
- 1.1 / 1:     ....
- 2.1 / 2:     ....
- 3.1 / 3:     ....
- 4.1 / 4:     ....
- 5.1 / 5:  5.50000
- 6.1 / 6:  6.50000
- 7.1 / 7:     ....
-list a4[gx=xoffset at min]
- -DELETE X        M:301 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A4       M:298 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: A4 --> (G010)           @MIN
- eval    A4       C:  7 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:298 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A4       M:297 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
-             VARIABLE : X[GX=X4PT]
-                        regrid: 1 delta on X at MIN
-             SUBSET   : 7 points (X)
- 1.1 / 1:     ....
- 2.1 / 2:     ....
- 3.1 / 3:     ....
- 4.1 / 4:     ....
- 5.1 / 5:  5.00000
- 6.1 / 6:  6.00000
- 7.1 / 7:     ....
-list a4[gx=xoffset at sum] ! 5+5.5+6+6.5=23
- -DELETE X        M:298 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A4       M:297 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: A4 --> (G010)           @SUM
- eval    A4       C:  7 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:297 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A4       M:296 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
-             VARIABLE : X[GX=X4PT]
-                        regrid: 1 delta on X at SUM
-             SUBSET   : 7 points (X)
- 1.1 / 1:     ....
- 2.1 / 2:     ....
- 3.1 / 3:     ....
- 4.1 / 4:     ....
- 5.1 / 5:   8.8500
- 6.1 / 6:  12.2000
- 7.1 / 7:   1.9500
- 
-! round-off issues when source points lie on destination cell boundaries
-define axis/x=1:5:1 x5
-define axis/x=0.5:5.5:1 x5_edges
-let a5 = x[gx=x5_edges]
-list a5[gx=x5 at max]   ! note: top dest axis point, only, looks at point above
- -DELETE X        M:297 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A4       M:296 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid A5       C:  7 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G008)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G008)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G008)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G008)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: A5 --> (G008)           @MAX
- eval    A5       C:  7 dset:   0 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:296 dset:   0 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A5       M:295 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G008)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
-             VARIABLE : X[GX=X5_EDGES]
-                        regrid: 1 delta on X at MAX
-             SUBSET   : 5 points (X)
- 1   / 1:  0.50000
- 2   / 2:  1.50000
- 3   / 3:  2.50000
- 4   / 4:  3.50000
- 5   / 5:  5.50000
-let a5 = x[gx=x5_edges, i=3]
- dealloc  dynamic grid (G008)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A5       M:295 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A5       M:297 dset:   0 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:296 dset:   0 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A4       M:294 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A4       M:298 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A4       M:301 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:300 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:299 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
-list a5[gx=x5 at max]
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid A5       C:  7 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: A5 --> (G011)           @MAX
- eval    A5       C:  7 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:299 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A5       M:301 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
-             VARIABLE : X[GX=X5_EDGES, I=3]
-                        regrid: 1 delta on X at MAX
-             SUBSET   : 5 points (X)
- 1   / 1:     ....
- 2   / 2:     ....
- 3   / 3:  2.50000
- 4   / 4:     ....
- 5   / 5:     ....
-list a5[gx=x5 at max,i=3]
- -DELETE X        M:299 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A5       M:301 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: A5 --> (G011)           @MAX
- eval    A5       C:  7 dset:   0 I:    3    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:301 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A5       M:298 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
-             VARIABLE : X[GX=X5_EDGES, I=3]
-                        regrid: 1 delta on X at MAX
-             X        : 3
-          2.50000
-list a5[gx=x5 at max,i=4]
- -DELETE X        M:301 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A5       M:298 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: A5 --> (G011)           @MAX
- eval    A5       C:  7 dset:   0 I:    4    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:298 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
-             VARIABLE : X[GX=X5_EDGES, I=3]
-                        regrid: 1 delta on X at MAX
-             X        : 4
-        ....
- 
-! time axes with different encodings
-define axis/t=1-jan-1990:5-jan-1990:1/units=days tday
-define axis/t=1-jan-1990:5-jan-1990:24/units=hours thour
-let atime = T[gt=tday]
-list atime
- -DELETE X        M:298 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A5       M:294 dset:   0 I:    4    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid ATIME    C:  7 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- dealloc  dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- allocate dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- allocate dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    ATIME    C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- pseudo  T        M:294 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
-             VARIABLE : T[GT=TDAY]
-             SUBSET   : 5 points (TIME)
- 01-JAN-1990 00 / 1:  32493.0
- 02-JAN-1990 00 / 2:  32494.0
- 03-JAN-1990 00 / 3:  32495.0
- 04-JAN-1990 00 / 4:  32496.0
- 05-JAN-1990 00 / 5:  32497.0
-show grid
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G011)
-    GRID (G011)
- name       axis              # pts   start                end
- normal    X
- normal    Y
- normal    Z
- TDAY      TIME                 5 r   01-JAN-1990 00:00    05-JAN-1990 00:00
- normal    E
- normal    F
-list atime[gt=thour at max]
- -DELETE T        M:294 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          NORMAL    NORMAL    NORMAL    THOUR     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          NORMAL    NORMAL    NORMAL    THOUR     NORMAL    NORMAL
- allocate dynamic grid (G006)          NORMAL    NORMAL    NORMAL    THOUR     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          NORMAL    NORMAL    NORMAL    THOUR     NORMAL    NORMAL
- strip regrid on T: ATIME --> (G006)           @MAX
- eval    ATIME    C:  7 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- pseudo  T        M:294 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- regrid  ATIME    M:297 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          NORMAL    NORMAL    NORMAL    THOUR     NORMAL    NORMAL
-             VARIABLE : T[GT=TDAY]
-                        regrid: 24 hour on T at MAX
-             SUBSET   : 5 points (TIME)
- 01-JAN-1990 00 / 1:  32493.0
- 02-JAN-1990 00 / 2:  32494.0
- 03-JAN-1990 00 / 3:  32495.0
- 04-JAN-1990 00 / 4:  32496.0
- 05-JAN-1990 00 / 5:  32497.0
-show grid
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G006)
-    GRID (G006)
- name       axis              # pts   start                end
- normal    X
- normal    Y
- normal    Z
- THOUR     TIME                 5 r   01-JAN-1990 00:00    05-JAN-1990 00:00
- normal    E
- normal    F
- 
-set mode/last diag
- 
- 
- 
- 
- 
- 
-GO bn_reset		! reordered reset before next test: 2/94
-cancel mode verify
-GO bn_axis_limits	! added 10/27/93
-!bn301_axis_limits.jnl
-! exercise the new-V301 /XLIMITS and /YLIMITS qualifiers
- 
-define axis/x=20e:10w:10/unit=degree xax
-define axis/y=60s:60n/unit=degree/npoints=41 yax
-define axis/z=0:1000:40/unit=meter/depth zax
-define axis/t=1-jan-1960:15-dec-1999:5/unit=days tax
-define grid/x=xax/y=yax/z=zax/t=tax gformat
- 
-set wind/asp=1:ax/size=1 1
- 
-define view/x=0.00,0.25/y=0.00,0.25 v11
-define view/x=0.25,0.50/y=0.00,0.25 v12
-define view/x=0.50,0.75/y=0.00,0.25 v13
-define view/x=0.75,1.00/y=0.00,0.25 v14
-define view/x=0.00,0.25/y=0.25,0.50 v21
-define view/x=0.25,0.50/y=0.25,0.50 v22
-define view/x=0.50,0.75/y=0.25,0.50 v23
-define view/x=0.75,1.00/y=0.25,0.50 v24
-define view/x=0.00,0.25/y=0.50,0.75 v31
-define view/x=0.25,0.50/y=0.50,0.75 v32
-define view/x=0.50,0.75/y=0.50,0.75 v33
-define view/x=0.75,1.00/y=0.50,0.75 v34
-define view/x=0.00,0.25/y=0.75,1.00 v41
-define view/x=0.25,0.50/y=0.75,1.00 v42
-define view/x=0.50,0.75/y=0.75,1.00 v43
-define view/x=0.75,1.00/y=0.75,1.00 v44
- 
-* error checks
-set grid abstract
-set region/i=1:5
-set mode ignore_errors
-plot/xlimits i
-plot/xlimits= i
-plot/xlimits=text i
-plot/xlimits=1 i
-plot/xlimits=1: i
-plot/xlimits=1:: i
-plot/xlimits=1:2: i
-plot/xlimits=5:5 i
-set mode/last ignore_errors
- 
-GO bn_axis_limits.sub1   ! lines
-!bn301_axis_limits.sub1
-! exercise the new-V301 /XLIMITS and /YLIMITS qualifiers
-! this file to exercise the PLOT command
- 
-set window/clear
- 
-* abstract X line plots
-set grid abstract
-set view v11
-plot/x=1:100 sin(x/6)
-set view v12
-plot/x=1:100/xlimits=-100:200 sin(x/6)
-set view v13
-plot/x=1:100/xlimits=-100:200:-30/ylimits=-2:2:-0.2 sin(x/6)
-set view v14
-plot/x=1:100/xlimits=-100:200:-30/ylimits=-2:2:-0.2/trans sin(x/6)
- 
-* formatted Y line plots
-set grid gformat
-set view v21
-plot/y=30s:30n/xlimits=50s:40n:-8 sin(y/10)
-set view v22
-plot/y=30s:30n/xlimits=50s:40n:-8/ylimits=0:2:-0.2 sin(y/10)
- 
-* plot/vs
-set view v23
-set grid abstract
-plot/vs/x=1:100/y=101:200/xlim=1:-1:.1/ylim=-3:0:.5 sin(x/5),cos(y/9)
-set view v24
-set grid gformat
-plot/vs/t=1-jan-1980:1-jan-1990/xlim=1:-1:-.1/ylim=-3:3:-.5 sin(t/100),cos(t/300)
- 
-* formatted T line plots
-set grid gformat
-set mode calendar
-set view v31
-plot/t=1-jan-1980:1-jan-1990 sin(t/500)
-set view v32
-plot/t=1-jan-1980:1-jan-1990/xlimits=1-mar-1977:15-jun-1994 sin(t/500)
-set view v33
-plot/t=1-jan-1980:1-jan-1990/xlimits=1-mar-1977:15-jun-1994:-5 sin(t/500)
-set view v34
-plot/t=1-jan-1980:1-jan-1990/xlimits=1-mar-1977:15-jun-1994:-5/ylimits=-2:0:-0.2 sin(t/500)
- 
-* unformatted T line plots
-set grid gformat
-cancel mode calendar
-set view v41
-plot/t=1-jan-1980:1-jan-1990/xlimits=1-mar-1977:15-jun-1994 sin(t/500)
-set view v42
-plot/t=1-jan-1980:1-jan-1990/xlimits=29400:31800/ylimits=-2:0:-0.2 sin(t/500)
-set view v43
-plot/t=1-jan-1980:1-jan-1990/xlimits=29400:31800:-200/ylimits=-2:0:-0.2 sin(t/500)
-set view v44
-plot/t=1-jan-1980:1-jan-1990/xlimits=29400:31800:-200/ylimits=-2:0:-0.2/trans sin(t/500)
-GO bn_axis_limits.sub2   ! 2D graphics
-! bn301_axis_limits.sub2
-! exercise the new-V301 /XLIMITS and /YLIMITS qualifiers
-! this file to exercise 2D graphics
- 
-set window/clear
- 
-* abstract XY contours
-set grid abstract
-set view v11
-contour/x=1:100/y=101:200/lev=(-1,1,.5) sin(x/6)*cos(y/9)
-set view v12
-contour/x=1:100/y=101:200/lev=(-1,1,.5)/xlimits=-100:200 sin(x/6)*cos(y/9)
-set view v13
-contour/x=1:100/y=101:200/lev=(-1,1,.5)/xlimits=-100:200:-30/ylimits=250:150 sin(x/6)*cos(y/9)
-set view v14
-contour/x=1:100/y=101:200/lev=(-1,1,.5)/xlimits=-100:200:-30/ylimits=250:150/trans sin(x/6)*cos(y/9)
- 
-* formatted XY contours
-set grid gformat
-set view v21
-contour/x=160E:160W/y=15s:25n/lev=(-1,1,.5) sin(x/3)*ABS(Y)^1.5
-set view v22
-contour/x=160E:160W/y=15s:25n/lev=(-1,1,.5)/xlimits=140e:110W:10 sin(x/3)*ABS(Y)^1.5
-set view v23
-contour/x=160E:160W/y=15s:25n/lev=(-1,1,.5)/xlimits=140e:110w:-9/ylimits=0:30N sin(x/3)*ABS(Y)^1.5
-set view v24
-contour/x=160E:160W/y=15s:25n/lev=(-1,1,.5)/xlimits=140e:110w:-9/ylimits=0:30N/trans sin(x/3)*ABS(Y)^1.5
- 
-* calendar axis contours involving T
-set grid gformat
-set mode calendar
-set view v31
-contour/x=160E:160W/t=1-jan-1980:1-jan-1982/lev=(-1,1,.25)/xlimits=140e:110w:-9/ylimits=1-jan-1978:1-jan-1984 sin(x/3)*sin(t/100)
-set view v32
-contour/x=160E:160W/t=1-jan-1980:1-jan-1982/lev=(-1,1,.25)/xlimits=140e:110w:-9/ylimits=28110:29115 sin(x/3)*sin(t/100)
-set view v33
-contour/x=160E:160W/t=1-jan-1980:1-jan-1982/lev=(-1,1,.25)/xlimits=140e:110w:-9/ylimits=28110:29115:-200 sin(x/3)*sin(t/100)   ! delta ignored
-set view v34
-contour/x=160E:160W/t=1-jan-1980:1-jan-1982/lev=(-1,1,.25)/xlimits=140e:110w:-9/ylimits=1-jan-1978:1-jan-1984/trans sin(x/3)*sin(t/100)
- 
-* non-calendar axis contours involving T
-set grid gformat
-cancel mode calendar
-set view v41
-contour/x=160E:160W/t=1-jan-1980:1-jan-1982/lev=(-1,1,.25)/xlimits=140e:110w:-9/ylimits=1-jan-1978:1-jan-1984 sin(x/3)*sin(t/100)
-set view v42
-contour/x=160E:160W/t=1-jan-1980:1-jan-1982/lev=(-1,1,.25)/xlimits=140e:110w:-9/ylimits=28110:29115 sin(x/3)*sin(t/100)
-set view v43  ! intentionally blank
-contour/x=160E:160W/t=28000:29000/lev=(-1,1,.25)/xlimits=140e:110w:-9/ylimits=1-jan-1975:1-jan-1978 sin(x/3)*sin(t/100)
-set view v44
-contour/x=160E:160W/t=1-jan-1980:1-jan-1982/lev=(-1,1,.25)/xlimits=140e:110w:-9/ylimits=28000:29000:-400/trans sin(x/3)*sin(t/100)
- 
-SET WINDOW/CLEAR/SIZE=0.2 ! added 2/94
- 
-!GO bn_reset
-!GO bn301_mem_mgmt
-MESSAGE/CONTINUE  ***** bn301_mem_mgmt has been removed from run_all.
-***** bn301_mem_mgmt has been removed from run_all.
-MESSAGE/CONTINUE  ***** Its too slow!!!
-***** Its too slow
-MESSAGE/CONTINUE  ***** Remember to run it separately
-***** Remember to run it separately
- 
-GO bn_reset
-cancel mode verify
-GO bn_movie
-! bn301_movie.JNL
-! - test on-HDF movie creation by Program FERRET
-! - FERRET ver 3.10 10/93
- 
-! ===> NOTE:  This may fail with an X error if the movie window is iconified
- 
-! Dont run this script - fails with hdf5 libraries
-exit/script
- 
-! added in bn311
-GO bn_reset
-cancel mode verify
-GO bn_ez_order	! was bn311 until 9/95
-! bn420_ez_order
-! updated from bn311_ez_order 9/95 - improved testing of /FORMAT=STREAM
- 
-! create test files
-sp rm -f test_perm*.dat
-list/i=1:10/nohead/form=(f4.0)/file=test_perm10.dat i
-list/i=1:24/nohead/form=(f4.0)/file=test_perm24.dat i
-list/i=1:48/nohead/form=(f4.0)/file=test_perm48.dat i
-list/i=1:48/nohead/form=(10f8.0)/file=test_perm48_10.dat i*1000,i*500,i*200,i*100,i*50,i*20,i*10,i*5,i*2,i
- 
-! create test axes
-define axis/x=1:2:1 x2
-define axis/x=1:3:1 x3
-define axis/x=1:4:1 x4
-define grid/x=x2/y=x3 g6
-define grid/y=x2/t=x3 g6yt
-define grid/x=x2/y=x3/z=x2 g12
-define grid/x=x2/y=x3/z=x2/t=x2 g24
- 
-! basic permutations, single variable
-! *** 2D
-file/grid=g6 test_perm48.dat
-list v1
-             VARIABLE : V1
-             FILENAME : test_perm48.dat
-             SUBSET   : 2 by 3 points (X-Y)
-              1        2     
-              1        2
- 1   / 1:  1.00000  2.00000
- 2   / 2:  3.00000  4.00000
- 3   / 3:  5.00000  6.00000
-file/grid=g6/order=yx test_perm48.dat
-list v1
-             VARIABLE : V1
-             FILENAME : test_perm48.dat
-             SUBSET   : 2 by 3 points (X-Y)
-              1        2     
-              1        2
- 1   / 1:  1.00000  4.00000
- 2   / 2:  2.00000  5.00000
- 3   / 3:  3.00000  6.00000
-file/grid=g6yt test_perm48.dat
-list v1
-             VARIABLE : V1
-             FILENAME : test_perm48.dat
-             SUBSET   : 2 by 3 points (Y-T)
-              1        2     
-              1        2
- 1   / 1:  1.00000  2.00000
- 2   / 2:  3.00000  4.00000
- 3   / 3:  5.00000  6.00000
-file/grid=g6yt/order=ty test_perm48.dat
-list v1
-             VARIABLE : V1
-             FILENAME : test_perm48.dat
-             SUBSET   : 2 by 3 points (Y-T)
-              1        2     
-              1        2
- 1   / 1:  1.00000  4.00000
- 2   / 2:  2.00000  5.00000
- 3   / 3:  3.00000  6.00000
-file/grid=g6yt/order=xtyz test_perm48.dat
-list v1  ! should be just the same as the last
-             VARIABLE : V1
-             FILENAME : test_perm48.dat
-             SUBSET   : 2 by 3 points (Y-T)
-              1        2     
-              1        2
- 1   / 1:  1.00000  4.00000
- 2   / 2:  2.00000  5.00000
- 3   / 3:  3.00000  6.00000
- 
-! *** 3D
-file/grid=g12 test_perm48.dat
-list v1
-             VARIABLE : V1
-             FILENAME : test_perm48.dat
-             SUBSET   : 2 by 3 by 2 points (X-Y-Z)
-              1        2     
-              1        2
- ---- K:1 Z:   1
- 1   / 1:   1.0000   2.0000
- 2   / 2:   3.0000   4.0000
- 3   / 3:   5.0000   6.0000
- ---- K:2 Z:   2
- 1   / 1:   7.0000   8.0000
- 2   / 2:   9.0000  10.0000
- 3   / 3:  11.0000  12.0000
-file/grid=g12/order=xzy test_perm48.dat
-list v1
-             VARIABLE : V1
-             FILENAME : test_perm48.dat
-             SUBSET   : 2 by 3 by 2 points (X-Y-Z)
-              1        2     
-              1        2
- ---- K:1 Z:   1
- 1   / 1:   1.0000   2.0000
- 2   / 2:   5.0000   6.0000
- 3   / 3:   9.0000  10.0000
- ---- K:2 Z:   2
- 1   / 1:   3.0000   4.0000
- 2   / 2:   7.0000   8.0000
- 3   / 3:  11.0000  12.0000
-file/grid=g12/order=yxz test_perm48.dat
-list v1
-             VARIABLE : V1
-             FILENAME : test_perm48.dat
-             SUBSET   : 2 by 3 by 2 points (X-Y-Z)
-              1        2     
-              1        2
- ---- K:1 Z:   1
- 1   / 1:   1.0000   4.0000
- 2   / 2:   2.0000   5.0000
- 3   / 3:   3.0000   6.0000
- ---- K:2 Z:   2
- 1   / 1:   7.0000  10.0000
- 2   / 2:   8.0000  11.0000
- 3   / 3:   9.0000  12.0000
-file/grid=g12/order=yzx test_perm48.dat
-list v1
-             VARIABLE : V1
-             FILENAME : test_perm48.dat
-             SUBSET   : 2 by 3 by 2 points (X-Y-Z)
-              1        2     
-              1        2
- ---- K:1 Z:   1
- 1   / 1:   1.0000   7.0000
- 2   / 2:   2.0000   8.0000
- 3   / 3:   3.0000   9.0000
- ---- K:2 Z:   2
- 1   / 1:   4.0000  10.0000
- 2   / 2:   5.0000  11.0000
- 3   / 3:   6.0000  12.0000
-file/grid=g12/order=zxy test_perm48.dat
-list v1
-             VARIABLE : V1
-             FILENAME : test_perm48.dat
-             SUBSET   : 2 by 3 by 2 points (X-Y-Z)
-              1        2     
-              1        2
- ---- K:1 Z:   1
- 1   / 1:   1.0000   3.0000
- 2   / 2:   5.0000   7.0000
- 3   / 3:   9.0000  11.0000
- ---- K:2 Z:   2
- 1   / 1:   2.0000   4.0000
- 2   / 2:   6.0000   8.0000
- 3   / 3:  10.0000  12.0000
-file/grid=g12/order=zyx test_perm48.dat
-list v1
-             VARIABLE : V1
-             FILENAME : test_perm48.dat
-             SUBSET   : 2 by 3 by 2 points (X-Y-Z)
-              1        2     
-              1        2
- ---- K:1 Z:   1
- 1   / 1:   1.0000   7.0000
- 2   / 2:   3.0000   9.0000
- 3   / 3:   5.0000  11.0000
- ---- K:2 Z:   2
- 1   / 1:   2.0000   8.0000
- 2   / 2:   4.0000  10.0000
- 3   / 3:   6.0000  12.0000
- 
- 
-! *** 4D  (incomplete - 24 in all)
-file/grid=g24 test_perm48.dat
-list v1
-             VARIABLE : V1
-             FILENAME : test_perm48.dat
-             SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
-              1        2     
-              1        2
- ---- L:1 T:   1
- ---- K:1 Z:   1
- 1   / 1:   1.0000   2.0000
- 2   / 2:   3.0000   4.0000
- 3   / 3:   5.0000   6.0000
- ---- K:2 Z:   2
- 1   / 1:   7.0000   8.0000
- 2   / 2:   9.0000  10.0000
- 3   / 3:  11.0000  12.0000
- ---- L:2 T:   2
- ---- K:1 Z:   1
- 1   / 1:  13.0000  14.0000
- 2   / 2:  15.0000  16.0000
- 3   / 3:  17.0000  18.0000
- ---- K:2 Z:   2
- 1   / 1:  19.0000  20.0000
- 2   / 2:  21.0000  22.0000
- 3   / 3:  23.0000  24.0000
-file/grid=g24/order=xytz test_perm48.dat
-list v1
-             VARIABLE : V1
-             FILENAME : test_perm48.dat
-             SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
-              1        2     
-              1        2
- ---- L:1 T:   1
- ---- K:1 Z:   1
- 1   / 1:   1.0000   2.0000
- 2   / 2:   3.0000   4.0000
- 3   / 3:   5.0000   6.0000
- ---- K:2 Z:   2
- 1   / 1:  13.0000  14.0000
- 2   / 2:  15.0000  16.0000
- 3   / 3:  17.0000  18.0000
- ---- L:2 T:   2
- ---- K:1 Z:   1
- 1   / 1:   7.0000   8.0000
- 2   / 2:   9.0000  10.0000
- 3   / 3:  11.0000  12.0000
- ---- K:2 Z:   2
- 1   / 1:  19.0000  20.0000
- 2   / 2:  21.0000  22.0000
- 3   / 3:  23.0000  24.0000
-file/grid=g24/order=xzyt test_perm48.dat
-list v1
-             VARIABLE : V1
-             FILENAME : test_perm48.dat
-             SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
-              1        2     
-              1        2
- ---- L:1 T:   1
- ---- K:1 Z:   1
- 1   / 1:   1.0000   2.0000
- 2   / 2:   5.0000   6.0000
- 3   / 3:   9.0000  10.0000
- ---- K:2 Z:   2
- 1   / 1:   3.0000   4.0000
- 2   / 2:   7.0000   8.0000
- 3   / 3:  11.0000  12.0000
- ---- L:2 T:   2
- ---- K:1 Z:   1
- 1   / 1:  13.0000  14.0000
- 2   / 2:  17.0000  18.0000
- 3   / 3:  21.0000  22.0000
- ---- K:2 Z:   2
- 1   / 1:  15.0000  16.0000
- 2   / 2:  19.0000  20.0000
- 3   / 3:  23.0000  24.0000
-file/grid=g24/order=xtyz test_perm48.dat
-list v1
-             VARIABLE : V1
-             FILENAME : test_perm48.dat
-             SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
-              1        2     
-              1        2
- ---- L:1 T:   1
- ---- K:1 Z:   1
- 1   / 1:   1.0000   2.0000
- 2   / 2:   5.0000   6.0000
- 3   / 3:   9.0000  10.0000
- ---- K:2 Z:   2
- 1   / 1:  13.0000  14.0000
- 2   / 2:  17.0000  18.0000
- 3   / 3:  21.0000  22.0000
- ---- L:2 T:   2
- ---- K:1 Z:   1
- 1   / 1:   3.0000   4.0000
- 2   / 2:   7.0000   8.0000
- 3   / 3:  11.0000  12.0000
- ---- K:2 Z:   2
- 1   / 1:  15.0000  16.0000
- 2   / 2:  19.0000  20.0000
- 3   / 3:  23.0000  24.0000
-file/grid=g24/order=xtzy test_perm48.dat
-list v1
-             VARIABLE : V1
-             FILENAME : test_perm48.dat
-             SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
-              1        2     
-              1        2
- ---- L:1 T:   1
- ---- K:1 Z:   1
- 1   / 1:   1.0000   2.0000
- 2   / 2:   9.0000  10.0000
- 3   / 3:  17.0000  18.0000
- ---- K:2 Z:   2
- 1   / 1:   5.0000   6.0000
- 2   / 2:  13.0000  14.0000
- 3   / 3:  21.0000  22.0000
- ---- L:2 T:   2
- ---- K:1 Z:   1
- 1   / 1:   3.0000   4.0000
- 2   / 2:  11.0000  12.0000
- 3   / 3:  19.0000  20.0000
- ---- K:2 Z:   2
- 1   / 1:   7.0000   8.0000
- 2   / 2:  15.0000  16.0000
- 3   / 3:  23.0000  24.0000
-file/grid=g24/order=ytzx test_perm48.dat
-list v1
-             VARIABLE : V1
-             FILENAME : test_perm48.dat
-             SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
-              1        2     
-              1        2
- ---- L:1 T:   1
- ---- K:1 Z:   1
- 1   / 1:   1.0000  13.0000
- 2   / 2:   2.0000  14.0000
- 3   / 3:   3.0000  15.0000
- ---- K:2 Z:   2
- 1   / 1:   7.0000  19.0000
- 2   / 2:   8.0000  20.0000
- 3   / 3:   9.0000  21.0000
- ---- L:2 T:   2
- ---- K:1 Z:   1
- 1   / 1:   4.0000  16.0000
- 2   / 2:   5.0000  17.0000
- 3   / 3:   6.0000  18.0000
- ---- K:2 Z:   2
- 1   / 1:  10.0000  22.0000
- 2   / 2:  11.0000  23.0000
- 3   / 3:  12.0000  24.0000
-file/grid=g24/order=zytx test_perm48.dat
-list v1
-             VARIABLE : V1
-             FILENAME : test_perm48.dat
-             SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
-              1        2     
-              1        2
- ---- L:1 T:   1
- ---- K:1 Z:   1
- 1   / 1:   1.0000  13.0000
- 2   / 2:   3.0000  15.0000
- 3   / 3:   5.0000  17.0000
- ---- K:2 Z:   2
- 1   / 1:   2.0000  14.0000
- 2   / 2:   4.0000  16.0000
- 3   / 3:   6.0000  18.0000
- ---- L:2 T:   2
- ---- K:1 Z:   1
- 1   / 1:   7.0000  19.0000
- 2   / 2:   9.0000  21.0000
- 3   / 3:  11.0000  23.0000
- ---- K:2 Z:   2
- 1   / 1:   8.0000  20.0000
- 2   / 2:  10.0000  22.0000
- 3   / 3:  12.0000  24.0000
-file/grid=g24/order=tyzx test_perm48.dat
-list v1
-             VARIABLE : V1
-             FILENAME : test_perm48.dat
-             SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
-              1        2     
-              1        2
- ---- L:1 T:   1
- ---- K:1 Z:   1
- 1   / 1:   1.0000  13.0000
- 2   / 2:   3.0000  15.0000
- 3   / 3:   5.0000  17.0000
- ---- K:2 Z:   2
- 1   / 1:   7.0000  19.0000
- 2   / 2:   9.0000  21.0000
- 3   / 3:  11.0000  23.0000
- ---- L:2 T:   2
- ---- K:1 Z:   1
- 1   / 1:   2.0000  14.0000
- 2   / 2:   4.0000  16.0000
- 3   / 3:   6.0000  18.0000
- ---- K:2 Z:   2
- 1   / 1:   8.0000  20.0000
- 2   / 2:  10.0000  22.0000
- 3   / 3:  12.0000  24.0000
-file/grid=g24/order=tzyx test_perm48.dat
-list v1
-             VARIABLE : V1
-             FILENAME : test_perm48.dat
-             SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
-              1        2     
-              1        2
- ---- L:1 T:   1
- ---- K:1 Z:   1
- 1   / 1:   1.0000  13.0000
- 2   / 2:   5.0000  17.0000
- 3   / 3:   9.0000  21.0000
- ---- K:2 Z:   2
- 1   / 1:   3.0000  15.0000
- 2   / 2:   7.0000  19.0000
- 3   / 3:  11.0000  23.0000
- ---- L:2 T:   2
- ---- K:1 Z:   1
- 1   / 1:   2.0000  14.0000
- 2   / 2:   6.0000  18.0000
- 3   / 3:  10.0000  22.0000
- ---- K:2 Z:   2
- 1   / 1:   4.0000  16.0000
- 2   / 2:   8.0000  20.0000
- 3   / 3:  12.0000  24.0000
- 
- 
-! basic permutations, 10 variables
-! *** 2D
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g6 test_perm48_10.dat
-list v10
-             VARIABLE : V10
-             FILENAME : test_perm48_10.dat
-             SUBSET   : 2 by 3 points (X-Y)
-              1        2     
-              1        2
- 1   / 1:  1.00000  2.00000
- 2   / 2:  3.00000  4.00000
- 3   / 3:  5.00000  6.00000
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g6/order=yx test_perm48_10.dat
-list v10
-             VARIABLE : V10
-             FILENAME : test_perm48_10.dat
-             SUBSET   : 2 by 3 points (X-Y)
-              1        2     
-              1        2
- 1   / 1:  1.00000  4.00000
- 2   / 2:  2.00000  5.00000
- 3   / 3:  3.00000  6.00000
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g6yt test_perm48_10.dat
-list v10
-             VARIABLE : V10
-             FILENAME : test_perm48_10.dat
-             SUBSET   : 2 by 3 points (Y-T)
-              1        2     
-              1        2
- 1   / 1:  1.00000  2.00000
- 2   / 2:  3.00000  4.00000
- 3   / 3:  5.00000  6.00000
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g6yt/order=ty test_perm48_10.dat
-list v10
-             VARIABLE : V10
-             FILENAME : test_perm48_10.dat
-             SUBSET   : 2 by 3 points (Y-T)
-              1        2     
-              1        2
- 1   / 1:  1.00000  4.00000
- 2   / 2:  2.00000  5.00000
- 3   / 3:  3.00000  6.00000
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g6yt/order=xtyz test_perm48_10.dat
-list v10 ! should be just the same as the last
-             VARIABLE : V10
-             FILENAME : test_perm48_10.dat
-             SUBSET   : 2 by 3 points (Y-T)
-              1        2     
-              1        2
- 1   / 1:  1.00000  4.00000
- 2   / 2:  2.00000  5.00000
- 3   / 3:  3.00000  6.00000
- 
-! *** 3D
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12 test_perm48_10.dat
-list v10
-             VARIABLE : V10
-             FILENAME : test_perm48_10.dat
-             SUBSET   : 2 by 3 by 2 points (X-Y-Z)
-              1        2     
-              1        2
- ---- K:1 Z:   1
- 1   / 1:   1.0000   2.0000
- 2   / 2:   3.0000   4.0000
- 3   / 3:   5.0000   6.0000
- ---- K:2 Z:   2
- 1   / 1:   7.0000   8.0000
- 2   / 2:   9.0000  10.0000
- 3   / 3:  11.0000  12.0000
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12/order=xzy test_perm48_10.dat
-list v10
-             VARIABLE : V10
-             FILENAME : test_perm48_10.dat
-             SUBSET   : 2 by 3 by 2 points (X-Y-Z)
-              1        2     
-              1        2
- ---- K:1 Z:   1
- 1   / 1:   1.0000   2.0000
- 2   / 2:   5.0000   6.0000
- 3   / 3:   9.0000  10.0000
- ---- K:2 Z:   2
- 1   / 1:   3.0000   4.0000
- 2   / 2:   7.0000   8.0000
- 3   / 3:  11.0000  12.0000
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12/order=yxz test_perm48_10.dat
-list v10
-             VARIABLE : V10
-             FILENAME : test_perm48_10.dat
-             SUBSET   : 2 by 3 by 2 points (X-Y-Z)
-              1        2     
-              1        2
- ---- K:1 Z:   1
- 1   / 1:   1.0000   4.0000
- 2   / 2:   2.0000   5.0000
- 3   / 3:   3.0000   6.0000
- ---- K:2 Z:   2
- 1   / 1:   7.0000  10.0000
- 2   / 2:   8.0000  11.0000
- 3   / 3:   9.0000  12.0000
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12/order=yzx test_perm48_10.dat
-list v10
-             VARIABLE : V10
-             FILENAME : test_perm48_10.dat
-             SUBSET   : 2 by 3 by 2 points (X-Y-Z)
-              1        2     
-              1        2
- ---- K:1 Z:   1
- 1   / 1:   1.0000   7.0000
- 2   / 2:   2.0000   8.0000
- 3   / 3:   3.0000   9.0000
- ---- K:2 Z:   2
- 1   / 1:   4.0000  10.0000
- 2   / 2:   5.0000  11.0000
- 3   / 3:   6.0000  12.0000
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12/order=zxy test_perm48_10.dat
-list v10
-             VARIABLE : V10
-             FILENAME : test_perm48_10.dat
-             SUBSET   : 2 by 3 by 2 points (X-Y-Z)
-              1        2     
-              1        2
- ---- K:1 Z:   1
- 1   / 1:   1.0000   3.0000
- 2   / 2:   5.0000   7.0000
- 3   / 3:   9.0000  11.0000
- ---- K:2 Z:   2
- 1   / 1:   2.0000   4.0000
- 2   / 2:   6.0000   8.0000
- 3   / 3:  10.0000  12.0000
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12/order=zyx test_perm48_10.dat
-list v10
-             VARIABLE : V10
-             FILENAME : test_perm48_10.dat
-             SUBSET   : 2 by 3 by 2 points (X-Y-Z)
-              1        2     
-              1        2
- ---- K:1 Z:   1
- 1   / 1:   1.0000   7.0000
- 2   / 2:   3.0000   9.0000
- 3   / 3:   5.0000  11.0000
- ---- K:2 Z:   2
- 1   / 1:   2.0000   8.0000
- 2   / 2:   4.0000  10.0000
- 3   / 3:   6.0000  12.0000
-! *** 4D  (incomplete - 24 in all)
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24 test_perm48_10.dat
-list v10
-             VARIABLE : V10
-             FILENAME : test_perm48_10.dat
-             SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
-              1        2     
-              1        2
- ---- L:1 T:   1
- ---- K:1 Z:   1
- 1   / 1:   1.0000   2.0000
- 2   / 2:   3.0000   4.0000
- 3   / 3:   5.0000   6.0000
- ---- K:2 Z:   2
- 1   / 1:   7.0000   8.0000
- 2   / 2:   9.0000  10.0000
- 3   / 3:  11.0000  12.0000
- ---- L:2 T:   2
- ---- K:1 Z:   1
- 1   / 1:  13.0000  14.0000
- 2   / 2:  15.0000  16.0000
- 3   / 3:  17.0000  18.0000
- ---- K:2 Z:   2
- 1   / 1:  19.0000  20.0000
- 2   / 2:  21.0000  22.0000
- 3   / 3:  23.0000  24.0000
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=xytz test_perm48_10.dat
-list v10
-             VARIABLE : V10
-             FILENAME : test_perm48_10.dat
-             SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
-              1        2     
-              1        2
- ---- L:1 T:   1
- ---- K:1 Z:   1
- 1   / 1:   1.0000   2.0000
- 2   / 2:   3.0000   4.0000
- 3   / 3:   5.0000   6.0000
- ---- K:2 Z:   2
- 1   / 1:  13.0000  14.0000
- 2   / 2:  15.0000  16.0000
- 3   / 3:  17.0000  18.0000
- ---- L:2 T:   2
- ---- K:1 Z:   1
- 1   / 1:   7.0000   8.0000
- 2   / 2:   9.0000  10.0000
- 3   / 3:  11.0000  12.0000
- ---- K:2 Z:   2
- 1   / 1:  19.0000  20.0000
- 2   / 2:  21.0000  22.0000
- 3   / 3:  23.0000  24.0000
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=xzyt test_perm48_10.dat
-list v10
-             VARIABLE : V10
-             FILENAME : test_perm48_10.dat
-             SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
-              1        2     
-              1        2
- ---- L:1 T:   1
- ---- K:1 Z:   1
- 1   / 1:   1.0000   2.0000
- 2   / 2:   5.0000   6.0000
- 3   / 3:   9.0000  10.0000
- ---- K:2 Z:   2
- 1   / 1:   3.0000   4.0000
- 2   / 2:   7.0000   8.0000
- 3   / 3:  11.0000  12.0000
- ---- L:2 T:   2
- ---- K:1 Z:   1
- 1   / 1:  13.0000  14.0000
- 2   / 2:  17.0000  18.0000
- 3   / 3:  21.0000  22.0000
- ---- K:2 Z:   2
- 1   / 1:  15.0000  16.0000
- 2   / 2:  19.0000  20.0000
- 3   / 3:  23.0000  24.0000
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=xtyz test_perm48_10.dat
-list v10
-             VARIABLE : V10
-             FILENAME : test_perm48_10.dat
-             SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
-              1        2     
-              1        2
- ---- L:1 T:   1
- ---- K:1 Z:   1
- 1   / 1:   1.0000   2.0000
- 2   / 2:   5.0000   6.0000
- 3   / 3:   9.0000  10.0000
- ---- K:2 Z:   2
- 1   / 1:  13.0000  14.0000
- 2   / 2:  17.0000  18.0000
- 3   / 3:  21.0000  22.0000
- ---- L:2 T:   2
- ---- K:1 Z:   1
- 1   / 1:   3.0000   4.0000
- 2   / 2:   7.0000   8.0000
- 3   / 3:  11.0000  12.0000
- ---- K:2 Z:   2
- 1   / 1:  15.0000  16.0000
- 2   / 2:  19.0000  20.0000
- 3   / 3:  23.0000  24.0000
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=xtzy test_perm48_10.dat
-list v10
-             VARIABLE : V10
-             FILENAME : test_perm48_10.dat
-             SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
-              1        2     
-              1        2
- ---- L:1 T:   1
- ---- K:1 Z:   1
- 1   / 1:   1.0000   2.0000
- 2   / 2:   9.0000  10.0000
- 3   / 3:  17.0000  18.0000
- ---- K:2 Z:   2
- 1   / 1:   5.0000   6.0000
- 2   / 2:  13.0000  14.0000
- 3   / 3:  21.0000  22.0000
- ---- L:2 T:   2
- ---- K:1 Z:   1
- 1   / 1:   3.0000   4.0000
- 2   / 2:  11.0000  12.0000
- 3   / 3:  19.0000  20.0000
- ---- K:2 Z:   2
- 1   / 1:   7.0000   8.0000
- 2   / 2:  15.0000  16.0000
- 3   / 3:  23.0000  24.0000
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=ytzx test_perm48_10.dat
-list v10
-             VARIABLE : V10
-             FILENAME : test_perm48_10.dat
-             SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
-              1        2     
-              1        2
- ---- L:1 T:   1
- ---- K:1 Z:   1
- 1   / 1:   1.0000  13.0000
- 2   / 2:   2.0000  14.0000
- 3   / 3:   3.0000  15.0000
- ---- K:2 Z:   2
- 1   / 1:   7.0000  19.0000
- 2   / 2:   8.0000  20.0000
- 3   / 3:   9.0000  21.0000
- ---- L:2 T:   2
- ---- K:1 Z:   1
- 1   / 1:   4.0000  16.0000
- 2   / 2:   5.0000  17.0000
- 3   / 3:   6.0000  18.0000
- ---- K:2 Z:   2
- 1   / 1:  10.0000  22.0000
- 2   / 2:  11.0000  23.0000
- 3   / 3:  12.0000  24.0000
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=zytx test_perm48_10.dat
-list v10
-             VARIABLE : V10
-             FILENAME : test_perm48_10.dat
-             SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
-              1        2     
-              1        2
- ---- L:1 T:   1
- ---- K:1 Z:   1
- 1   / 1:   1.0000  13.0000
- 2   / 2:   3.0000  15.0000
- 3   / 3:   5.0000  17.0000
- ---- K:2 Z:   2
- 1   / 1:   2.0000  14.0000
- 2   / 2:   4.0000  16.0000
- 3   / 3:   6.0000  18.0000
- ---- L:2 T:   2
- ---- K:1 Z:   1
- 1   / 1:   7.0000  19.0000
- 2   / 2:   9.0000  21.0000
- 3   / 3:  11.0000  23.0000
- ---- K:2 Z:   2
- 1   / 1:   8.0000  20.0000
- 2   / 2:  10.0000  22.0000
- 3   / 3:  12.0000  24.0000
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=tyzx test_perm48_10.dat
-list v10
-             VARIABLE : V10
-             FILENAME : test_perm48_10.dat
-             SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
-              1        2     
-              1        2
- ---- L:1 T:   1
- ---- K:1 Z:   1
- 1   / 1:   1.0000  13.0000
- 2   / 2:   3.0000  15.0000
- 3   / 3:   5.0000  17.0000
- ---- K:2 Z:   2
- 1   / 1:   7.0000  19.0000
- 2   / 2:   9.0000  21.0000
- 3   / 3:  11.0000  23.0000
- ---- L:2 T:   2
- ---- K:1 Z:   1
- 1   / 1:   2.0000  14.0000
- 2   / 2:   4.0000  16.0000
- 3   / 3:   6.0000  18.0000
- ---- K:2 Z:   2
- 1   / 1:   8.0000  20.0000
- 2   / 2:  10.0000  22.0000
- 3   / 3:  12.0000  24.0000
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=tzyx test_perm48_10.dat
-list v10
-             VARIABLE : V10
-             FILENAME : test_perm48_10.dat
-             SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
-              1        2     
-              1        2
- ---- L:1 T:   1
- ---- K:1 Z:   1
- 1   / 1:   1.0000  13.0000
- 2   / 2:   5.0000  17.0000
- 3   / 3:   9.0000  21.0000
- ---- K:2 Z:   2
- 1   / 1:   3.0000  15.0000
- 2   / 2:   7.0000  19.0000
- 3   / 3:  11.0000  23.0000
- ---- L:2 T:   2
- ---- K:1 Z:   1
- 1   / 1:   2.0000  14.0000
- 2   / 2:   6.0000  18.0000
- 3   / 3:  10.0000  22.0000
- ---- K:2 Z:   2
- 1   / 1:   4.0000  16.0000
- 2   / 2:   8.0000  20.0000
- 3   / 3:  12.0000  24.0000
- 
- 
-! test grids that have more points than the data
-cancel data/all
-file/grid=g12/order=xzy test_perm10.dat
-list v1
-             VARIABLE : V1
-             FILENAME : test_perm10.dat
-             SUBSET   : 2 by 3 points (X-Y)
-             Z        : 1
-              1        2     
-              1        2
- 1   / 1:   1.0000   2.0000
- 2   / 2:   5.0000   6.0000
- 3   / 3:   9.0000  10.0000
-show data
-     currently SET data sets:
-    1> ./test_perm10.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:2       1:3       1:1       ...       ...       ...
- 
- 
-file/grid=g24/order=xytz test_perm10.dat
-list v1
-             VARIABLE : V1
-             FILENAME : test_perm10.dat
-             SUBSET   : 2 by 3 by 2 points (X-Y-Z)
-             T        : 1
-              1        2     
-              1        2
- ---- K:1 Z:   1
- 1   / 1:  1.00000  2.00000
- 2   / 2:  3.00000  4.00000
- 3   / 3:  5.00000  6.00000
- ---- K:2 Z:   2
- 1   / 1:     ....     ....
- 2   / 2:     ....     ....
- 3   / 3:     ....     ....
-show data
-     currently SET data sets:
-    1> ./test_perm10.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:2       1:3       1:2       1:1       ...       ...
- 
- 
-file/grid=g24/order=xzyt test_perm10.dat
-list v1
-             VARIABLE : V1
-             FILENAME : test_perm10.dat
-             SUBSET   : 2 by 3 by 2 points (X-Y-Z)
-             T        : 1
-              1        2     
-              1        2
- ---- K:1 Z:   1
- 1   / 1:   1.0000   2.0000
- 2   / 2:   5.0000   6.0000
- 3   / 3:   9.0000  10.0000
- ---- K:2 Z:   2
- 1   / 1:   3.0000   4.0000
- 2   / 2:   7.0000   8.0000
- 3   / 3:     ....     ....
-show data
-     currently SET data sets:
-    1> ./test_perm10.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:2       1:3       1:2       1:1       ...       ...
- 
- 
- 
- 
-! limited testing of /FORMAT=STREAM
-! note that as of 5/16/94 this is a fragile capability that will blow up
-! NO ==> 1) on attempt to read more data than the file has
-!	("BACKSPACE error" not trapped by ERR= branch)
-! (This behavior was fixed 9/7/95 in ez_read.F)
-! 2) on many attempts to process record length information (contained
-!	at the start and end of each variable length record) as data
-!	(?? illegal floating point value - formats as zero but computes as
-!	something else)
- 
-! simple test - write a single record of 16 floating point values (encased
-!	in record length information) and read it back as a 2x2x2x2 grid
- 
-define grid/x=x2/y=x2/z=x2/t=x2 g2222
- 
-! Unformatted files have a count value before and after which may be four or
-! eight bytes depending on the system (gfortran version), so only verify a
-! list/format=unf can then be read using file/format=unf
-sp rm -f test_stream.unf
-list/file=test_stream.unf/format=unf/order=x/i=1:16 i/10
-file/grid=g2222/form=unf/col=16 test_stream.unf
-list v1
-             VARIABLE : V1
-             FILENAME : test_stream.unf
-             SUBSET   : 2 by 2 by 2 by 2 points (X-Y-Z-T)
-              1        2     
-              1        2
- ---- L:1 T:   1
- ---- K:1 Z:   1
- 1   / 1:  0.10000  0.20000
- 2   / 2:  0.30000  0.40000
- ---- K:2 Z:   2
- 1   / 1:  0.50000  0.60000
- 2   / 2:  0.70000  0.80000
- ---- L:2 T:   2
- ---- K:1 Z:   1
- 1   / 1:  0.90000  1.00000
- 2   / 2:  1.10000  1.20000
- ---- K:2 Z:   2
- 1   / 1:  1.30000  1.40000
- 2   / 2:  1.50000  1.60000
-! /ORDER= applies here, too
-file/grid=g2222/form=unf/order=yzxt/col=16 test_stream.unf
-list v1
-             VARIABLE : V1
-             FILENAME : test_stream.unf
-             SUBSET   : 2 by 2 by 2 by 2 points (X-Y-Z-T)
-              1        2     
-              1        2
- ---- L:1 T:   1
- ---- K:1 Z:   1
- 1   / 1:  0.10000  0.50000
- 2   / 2:  0.20000  0.60000
- ---- K:2 Z:   2
- 1   / 1:  0.30000  0.70000
- 2   / 2:  0.40000  0.80000
- ---- L:2 T:   2
- ---- K:1 Z:   1
- 1   / 1:  0.90000  1.30000
- 2   / 2:  1.00000  1.40000
- ---- K:2 Z:   2
- 1   / 1:  1.10000  1.50000
- 2   / 2:  1.20000  1.60000
- 
-! 9/95 - also test the **WRITING** of STREAM-formatted files (added 12/28/94)
-sp rm -f test_stream.unf
-list/file=test_stream.unf/format=stream/order=x/i=1:16 i/100
-file/grid=g2222/form=stream test_stream.unf
-list v1
-             VARIABLE : V1
-             FILENAME : test_stream.unf
-             SUBSET   : 2 by 2 by 2 by 2 points (X-Y-Z-T)
-              1         2      
-               1         2
- ---- L:1 T:   1
- ---- K:1 Z:   1
- 1   / 1:  0.010000  0.020000
- 2   / 2:  0.030000  0.040000
- ---- K:2 Z:   2
- 1   / 1:  0.050000  0.060000
- 2   / 2:  0.070000  0.080000
- ---- L:2 T:   2
- ---- K:1 Z:   1
- 1   / 1:  0.090000  0.100000
- 2   / 2:  0.110000  0.120000
- ---- K:2 Z:   2
- 1   / 1:  0.130000  0.140000
- 2   / 2:  0.150000  0.160000
-! /ORDER= applies here, too
-file/grid=g2222/form=stream/order=yzxt test_stream.unf
-list v1
-             VARIABLE : V1
-             FILENAME : test_stream.unf
-             SUBSET   : 2 by 2 by 2 by 2 points (X-Y-Z-T)
-              1         2      
-               1         2
- ---- L:1 T:   1
- ---- K:1 Z:   1
- 1   / 1:  0.010000  0.050000
- 2   / 2:  0.020000  0.060000
- ---- K:2 Z:   2
- 1   / 1:  0.030000  0.070000
- 2   / 2:  0.040000  0.080000
- ---- L:2 T:   2
- ---- K:1 Z:   1
- 1   / 1:  0.090000  0.130000
- 2   / 2:  0.100000  0.140000
- ---- K:2 Z:   2
- 1   / 1:  0.110000  0.150000
- 2   / 2:  0.120000  0.160000
- 
-! and test /ORDER on the STREAM output listing
-! ... first the default order
-sp rm -f test_stream.unf
-list/file=test_stream.unf/format=stream/i=1:2/j=3:4/k=5:6/l=7:8 (((((i*10)+j)*10)+k)*10)+l
-file/grid=g2222/form=stream test_stream.unf
-list v1
-             VARIABLE : V1
-             FILENAME : test_stream.unf
-             SUBSET   : 2 by 2 by 2 by 2 points (X-Y-Z-T)
-              1        2     
-              1        2
- ---- L:1 T:   1
- ---- K:1 Z:   1
- 1   / 1:  1357.00  2357.00
- 2   / 2:  1457.00  2457.00
- ---- K:2 Z:   2
- 1   / 1:  1367.00  2367.00
- 2   / 2:  1467.00  2467.00
- ---- L:2 T:   2
- ---- K:1 Z:   1
- 1   / 1:  1358.00  2358.00
- 2   / 2:  1458.00  2458.00
- ---- K:2 Z:   2
- 1   / 1:  1368.00  2368.00
- 2   / 2:  1468.00  2468.00
-file/grid=g2222/form=stream/order=yzxt test_stream.unf
-list v1
-             VARIABLE : V1
-             FILENAME : test_stream.unf
-             SUBSET   : 2 by 2 by 2 by 2 points (X-Y-Z-T)
-              1        2     
-              1        2
- ---- L:1 T:   1
- ---- K:1 Z:   1
- 1   / 1:  1357.00  1367.00
- 2   / 2:  2357.00  2367.00
- ---- K:2 Z:   2
- 1   / 1:  1457.00  1467.00
- 2   / 2:  2457.00  2467.00
- ---- L:2 T:   2
- ---- K:1 Z:   1
- 1   / 1:  1358.00  1368.00
- 2   / 2:  2358.00  2368.00
- ---- K:2 Z:   2
- 1   / 1:  1458.00  1468.00
- 2   / 2:  2458.00  2468.00
-! ... then re-order on write and reverse the re-ordering on read
-sp rm -f test_stream.unf
-list/file=test_stream.unf/format=stream/order=yzxt/i=1:2/j=3:4/k=5:6/l=7:8 (((((i*10)+j)*10)+k)*10)+l
-file/grid=g2222/form=stream/order=yzxt test_stream.unf
-list v1
-             VARIABLE : V1
-             FILENAME : test_stream.unf
-             SUBSET   : 2 by 2 by 2 by 2 points (X-Y-Z-T)
-              1        2     
-              1        2
- ---- L:1 T:   1
- ---- K:1 Z:   1
- 1   / 1:  1357.00  2357.00
- 2   / 2:  1457.00  2457.00
- ---- K:2 Z:   2
- 1   / 1:  1367.00  2367.00
- 2   / 2:  1467.00  2467.00
- ---- L:2 T:   2
- ---- K:1 Z:   1
- 1   / 1:  1358.00  2358.00
- 2   / 2:  1458.00  2458.00
- ---- K:2 Z:   2
- 1   / 1:  1368.00  2368.00
- 2   / 2:  1468.00  2468.00
- 
-! clean up
-set grid abstract
-CANCEL DATA/ALL
-cancel grid g2222
-cancel grid g24
-cancel grid g12
-cancel grid g6yt
-cancel grid g6
-cancel axis x4
-cancel axis x3
-cancel axis x2
-sp rm -f test_stream.unf
-sp rm -f test_perm10.dat
-sp rm -f test_perm24.dat
-sp rm -f test_perm48.dat
-sp rm -f test_perm48_10.dat
- 
- 
-! added in bn312  6/3/94
-GO bn_reset
-cancel mode verify
-! cancel mode metafile   ! needed temporarily 6/94: PLOT+/XGKS interaction bug
-GO bn_user
-! bn312_user.jnl
- 
-! test the USER command options
- 
-! test the SAMPLE command using the polar plotting scripts
- 
-! Skip for 6D: USER command not implemented
- 
-! These are the windows that have always been set after bn_user.jn
-set window/size=.5/aspect=.75:ax 1
-set window/size=.5/aspect=.75 2
- 
-exit/script
-set window 1		! clean up
- 
-! added in bn420  1/96
-GO bn_reset
-cancel mode verify
-GO bn_stream
-! bn420_stream.jnl
- 
-! jan 96
-! note that although this benchmark was added only in 1/96 the STREAM
-! reading capabilities have been available much longer
- 
-! read the file stream_data_link.unf as a single 10 by 5 variable
-define axis/x=1:10:1 x10
-define axis/y=1:5:1 y5
-define grid/x=x10/y=y5 g10x5
-file/var=myvar/grid=g10x5/format=stream stream_data_link.unf
-list myvar
-             VARIABLE : MYVAR
-             FILENAME : stream_data_link.unf
-             SUBSET   : 10 by 5 points (X-Y)
-              1        2        3        4        5        6        7        8        9       10     
-              1        2        3        4        5        6        7        8        9       10
- 1   / 1:   1.0000   2.0000   3.0000   4.0000   5.0000   6.0000   7.0000   8.0000   9.0000  10.0000
- 2   / 2:  11.0000  12.0000  13.0000  14.0000  15.0000  16.0000  17.0000  18.0000  19.0000  20.0000
- 3   / 3:  21.0000  22.0000  23.0000  24.0000  25.0000  26.0000  27.0000  28.0000  29.0000  30.0000
- 4   / 4:  31.0000  32.0000  33.0000  34.0000  35.0000  36.0000  37.0000  38.0000  39.0000  40.0000
- 5   / 5:  41.0000  42.0000  43.0000  44.0000  45.0000  46.0000  47.0000  48.0000  49.0000  50.0000
-cancel data stream_data_link.unf
- 
-! read the same file as two 10 by 2 variables skipping the first line
-define axis/x=1:10:1 x10
-define axis/y=1:2:1 y2
-define grid/x=x10/y=y2 g10x2
-file/skip=10/columns=20/grid=g10x2/var=myv1,myv2/format=stream stream_data_link.unf
-list myv1,myv2
-             DATA SET: ./stream_data_link.unf
-             X: 0.5 to 10.5
-             Y: 0.5 to 2.5
- Column  1: MYV1
- Column  2: MYV2
-              MYV1    MYV2
- ---- J:1 Y:   1
-1    /  1:  11.0000  31.0000
-2    /  2:  12.0000  32.0000
-3    /  3:  13.0000  33.0000
-4    /  4:  14.0000  34.0000
-5    /  5:  15.0000  35.0000
-6    /  6:  16.0000  36.0000
-7    /  7:  17.0000  37.0000
-8    /  8:  18.0000  38.0000
-9    /  9:  19.0000  39.0000
-10   / 10:  20.0000  40.0000
- ---- J:2 Y:   2
-1    /  1:  21.0000  41.0000
-2    /  2:  22.0000  42.0000
-3    /  3:  23.0000  43.0000
-4    /  4:  24.0000  44.0000
-5    /  5:  25.0000  45.0000
-6    /  6:  26.0000  46.0000
-7    /  7:  27.0000  47.0000
-8    /  8:  28.0000  48.0000
-9    /  9:  29.0000  49.0000
-10   / 10:  30.0000  50.0000
-cancel data stream_data_link.unf
- 
- 
-!added in bn430 9/96 *kob*
-GO bn_reset
-cancel mode verify
-GO bn_mc
-!bn430_mc.jnl
-! kob - 9/5/96
-!     - simple test of mc data access for both irregular and regular time
-!       axis
-!     - 9/6/96 - add tests for bad delta, out of order stepfiles, missing first step file
-!		 and missing step file other than the first
-!     - 11/06/97 - added a set mode/last verify
-CAN MODE VERIFY
-     currently SET data sets:
-    1> ./coads_clim.des  (default)
-     COAD
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:6       ...       ...
-             Deg C on grid GHB1 with -1.E+34 for missing data
-             X=20E:20E(380)  Y=90S:90N  
- 
-  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
- normal    Z
- TIME1     T (hour)             6 r   366                  4018.4
- normal    E
- normal    F
- 
-       L     T                   TBOX      TBOXLO
-       1>  366                   730.485    0.7575
-       2>  1096.485              730.485    731.2425
-       3>  1826.97               730.485    1461.727
-       4>  2557.455              730.485    2192.213
-       5>  3287.94               730.485    2922.698
-       6>  4018.425              730.485    3653.182
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             DATA SET : COAD
-             FILENAME : coads_clim.des
-             SUBSET   : 8 by 6 points (LATITUDE-T (hour))
-             LONGITUDE: 140W (interpolated)
-                7S       5S       3S       1S       1N       3N       5N       7N     
-                42       43       44       45       46       47       48       49
- 366    / 1:  27.4922  27.0790  26.2177  25.8117  25.8974  26.4319  26.8698  26.9781
- 1096.5 / 2:  27.5431  27.4416  26.6992  26.3360  26.4503  26.8090  27.0577  26.9103
- 1827   / 3:  28.2710  28.1010  27.1568  26.6065  26.5793  27.1318  27.1135  27.1007
- 2557.5 / 4:  28.3570  28.5412  27.6643  27.2819  27.1998  27.4282  27.5459  27.4002
- 3287.9 / 5:  28.2175  28.1635  27.4141  26.7167  26.9325  27.7459  27.7151  27.4877
- 4018.4 / 6:  28.0824  27.9723  27.7204  26.8768  26.9810  27.7220  28.0643  27.8845
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             DATA SET : COAD
-             FILENAME : coads_clim.des
-             SUBSET   : 20 by 6 points (LONGITUDE-T (hour))
-             LATITUDE : 0 (interpolated)
-      ... listing every   2th point
-               179W     175W     171W     167W     163W     159W     155W     151W     147W     143W    
-                81       83       85       87       89       91       93       95       97       99
- 366    / 1:  28.5733  27.8591  27.7604  27.6391  27.4060  26.8263  26.5254  26.2984  26.0875  25.9927
- 1096.5 / 2:  28.3556  28.1094  27.6296  27.2492  27.1351  26.6124  26.6061  26.5371  26.0686  26.4401
- 1827   / 3:  27.9375  27.9731  27.8331  27.5333  27.0461  27.2091  27.2154  27.0734  26.8618  26.6585
- 2557.5 / 4:  27.9532  27.8072  27.9180  27.9515  27.7807  27.6695  27.5253  27.3922  27.3396  27.2409
- 3287.9 / 5:  28.3764  27.9455  28.2888  28.1323  27.9742  27.6899  27.5363  27.5056  26.9876  27.0593
- 4018.4 / 6:  28.1912  28.2880  28.4249  28.1785  27.8359  27.8262  27.5394  27.3811  27.1444  27.0317
- 
-             SEA SURFACE TEMPERATURE
-             LONGITUDE: 20E to 20E(380)
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             T (hour): 0.7575 to 4383.7
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_clim.des
- 
- Total # of data points: 97200 (180*90*1*6*1*1)
- # flagged as bad  data: 44263
- Minimum value: -2.3
- Maximum value: 32
- Mean    value: 17.806 (unweighted average)
- Standard deviation: 9.6933
-     currently SET data sets:
-    1> ./coads_clim.des
-     COAD
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:6       ...       ...
-             Deg C on grid GHB1 with -1.E+34 for missing data
-             X=20E:20E(380)  Y=90S:90N  
- 
-  time range: 366 to 4018.4
- 
-    2> ./coads_clim_irreg.des  (default)
-     COAD
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
-             Deg C on grid GJR1 with -1.E+34 for missing data
-             X=20E:20E(380)  Y=90S:90N  
- 
-  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
- normal    Z
- TIME2     T (hour)             3 i   366                  3287.9
- normal    E
- normal    F
- 
-       L     T                   TBOX      TBOXLO
-       1>  366                   730.485    0.7575
-       2>  1096.485              1460.97    731.2425
-       3>  3287.94               2191.455   2192.213
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             DATA SET : COAD
-             FILENAME : coads_clim_irreg.des
-             SUBSET   : 8 by 3 points (LATITUDE-T (hour))
-             LONGITUDE: 140W (interpolated)
-                7S       5S       3S       1S       1N       3N       5N       7N     
-                42       43       44       45       46       47       48       49
- 366    / 1:  27.4922  27.0790  26.2177  25.8117  25.8974  26.4319  26.8698  26.9781
- 1096.5 / 2:  27.5431  27.4416  26.6992  26.3360  26.4503  26.8090  27.0577  26.9103
- 3287.9 / 3:  28.2175  28.1635  27.4141  26.7167  26.9325  27.7459  27.7151  27.4877
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             DATA SET : COAD
-             FILENAME : coads_clim_irreg.des
-             SUBSET   : 20 by 3 points (LONGITUDE-T (hour))
-             LATITUDE : 0 (interpolated)
-      ... listing every   2th point
-               179W     175W     171W     167W     163W     159W     155W     151W     147W     143W    
-                81       83       85       87       89       91       93       95       97       99
- 366    / 1:  28.5733  27.8591  27.7604  27.6391  27.4060  26.8263  26.5254  26.2984  26.0875  25.9927
- 1096.5 / 2:  28.3556  28.1094  27.6296  27.2492  27.1351  26.6124  26.6061  26.5371  26.0686  26.4401
- 3287.9 / 3:  28.3764  27.9455  28.2888  28.1323  27.9742  27.6899  27.5363  27.5056  26.9876  27.0593
- 
-             SEA SURFACE TEMPERATURE
-             LONGITUDE: 20E to 20E(380)
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             T (hour): 0.7575 to 4383.7
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_clim_irreg.des
- 
- Total # of data points: 48600 (180*90*1*3*1*1)
- # flagged as bad  data: 21459
- Minimum value: -2.2
- Maximum value: 31
- Mean    value: 17.359 (unweighted average)
- Standard deviation: 9.8799
-     currently SET data sets:
-    1> ./coads_clim_missing_step1.des  (default)
-     COAD
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
-             Deg C on grid GQO1 with -1.E+34 for missing data
-             X=20E:20E(380)  Y=90S:90N  
- 
-  time range: 366 to 3287.9
- 
-     currently SET data sets:
-    1> ./coads_clim_missing_stepN.des  (default)
-     COAD
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
-             Deg C on grid GCQ1 with -1.E+34 for missing data
-             X=20E:20E(380)  Y=90S:90N  
- 
-  time range: 366 to 3287.9
- 
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             DATA SET : COAD
-             FILENAME : coads_clim_missing_stepN.des
-             SUBSET   : 180 by 90 by 3 points (LONGITUDE-LATITUDE-T (hour))
-      ... listing every  14th point
-                21E      49E      77E     105E     133E     161E     171W     143W     115W      87W      59W      31W      3W     
-                 1       15       29       43       57       71       85       99      113      127      141      155      169
- ---- L:1 T:   366
- 89N   / 90:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 87N   / 89:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 85N   / 88:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 83N   / 87:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 81N   / 86:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 79N   / 85:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 77N   / 84:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 75N   / 83:   1.5550     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 73N   / 82:   3.7205   0.5871     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....   6.0000
- 71N   / 81:   5.0934   0.6186     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....   4.1287
- 69N   / 80:   5.4500   0.4500     ....     ....     ....     ....     ....     ....     ....     ....     ....   3.0000   4.8885
- 67N   / 79:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....   1.6000   4.3120   4.5952
- 65N   / 78:   0.0718     ....     ....     ....     ....     ....     ....     ....     ....     ....   0.8767   5.0952   5.2194
- 63N   / 77:   0.5111     ....     ....     ....     ....     ....  -0.8467     ....     ....     ....   0.8500   5.9579   6.4264
- 61N   / 76:   1.2269     ....     ....     ....     ....   0.3500   0.1214   6.0000     ....     ....   0.8000   6.2213   8.1800
- 59N   / 75:   2.9000     ....     ....     ....     ....   1.1500   1.6321   5.7458     ....     ....   2.7033   7.3962   7.6307
- 57N   / 74:   3.0388     ....     ....     ....     ....   1.1250   2.8750   5.2914     ....     ....   0.5308   7.5317   6.4543
- 55N   / 73:   3.2013     ....     ....     ....     ....   0.6459   3.6936   5.2583     ....     ....  -0.4622   7.4551   6.5806
- 53N   / 72:     ....     ....     ....     ....     ....   1.1996   4.2880   5.7998     ....     ....   1.2333   7.7514   7.1047
- 51N   / 71:     ....     ....     ....     ....     ....   2.1893   4.2290   6.2278     ....     ....  -0.2905  10.2702   9.3957
- 49N   / 70:     ....     ....     ....     ....     ....   2.5412   4.6069   6.6250     ....   3.0125   0.6527  11.6186  10.2970
- 47N   / 69:     ....     ....     ....     ....     ....   2.9602   5.5956   7.6881     ....   3.1794   1.2426  12.6823  11.3385
- 45N   / 68:     ....   3.3167     ....     ....     ....   4.4480   7.0744   8.9556     ....   3.4525   2.2314  13.7819  12.2254
- 43N   / 67:     ....   4.7221     ....     ....   2.4068   6.9255   8.9646  10.3486     ....   3.1277   6.3709  14.7211  13.0557
- 41N   / 66:     ....   4.8365     ....     ....   4.3635   9.6898  10.9751  11.9288     ....     ....  15.5498  15.4318     ....
- 39N   / 65:  15.4366   8.6262     ....     ....   8.8837  12.8097  12.5484  13.4077     ....     ....  18.6870  16.2119     ....
- 37N   / 64:  16.0318   8.0667     ....     ....  12.3600  15.0324  13.9800  15.0021     ....     ....  19.2616  17.1874  15.1152
- 35N   / 63:  16.2507     ....     ....     ....  13.3810  16.7364  15.4538  16.4689     ....     ....  19.5398  18.1828  15.5754
- 33N   / 62:  16.7783     ....     ....     ....  18.5491  18.0244  16.8419  17.7790     ....     ....  20.1041  19.2886     ....
- 31N   / 61:  17.9786     ....     ....     ....  19.9407  19.3074  18.5523  19.1648  17.8500  17.4183  20.8400  20.0450     ....
- 29N   / 60:     ....  18.9119     ....     ....  20.5019  20.6291  20.1257  20.1026  16.8274  20.6176  22.0740  20.6790     ....
- 27N   / 59:     ....  20.8300     ....     ....  21.3326  22.0026  21.6086  20.9032  17.8323  23.7582  23.1533  21.5070     ....
- 25N   / 58:     ....     ....     ....     ....  22.3495  23.8248  23.2779  21.5841  18.8269  24.8593  24.0919  22.3336     ....
- 23N   / 57:     ....     ....     ....     ....  23.6807  25.0783  24.0186  22.3034  20.2700  25.5195  24.7930  22.7905     ....
- 21N   / 56:     ....     ....     ....     ....  24.7072  25.9688  24.7256  22.9079  22.0270  26.4860  25.3493  22.9386     ....
- 19N   / 55:     ....     ....     ....  22.6383  25.9015  26.6802  25.6078  23.5313  23.8074  27.0339  25.8612  23.4342     ....
- 17N   / 54:     ....     ....     ....     ....  26.8579  27.0091  25.9585  24.1694  25.2841  27.0695  26.1928  23.8282     ....
- 15N   / 53:     ....  25.4074     ....     ....  27.4243  27.0312  26.1212  24.8069  26.3029  26.9280  26.3665  24.2289     ....
- 13N   / 52:     ....  25.3684     ....     ....  27.7591  27.2962  26.4994  25.1181  26.6522  26.8229  26.6502  24.8118     ....
- 11N   / 51:     ....  25.8188  27.8253  27.8789  27.8781  27.9126  26.8606  25.7058  27.0455  26.2577  26.8927  25.3867     ....
- 9N    / 50:     ....  27.2000  27.8411  26.3897  28.1118  28.0045  27.4964  26.6136  26.7775  26.8093  27.0323  25.9038     ....
- 7N    / 49:     ....  26.1127  27.5677  26.0238  28.0494  28.7383  27.8221  27.0807  26.9304  27.5097  26.8869  26.5924     ....
- 5N    / 48:     ....  26.1020  27.8127  26.5939  28.3079  28.7465  28.1379  27.1305  27.5967  27.5257     ....  26.9872  27.8152
- 3N    / 47:     ....  26.2525  27.9241  26.8579  28.5464  28.9967  27.6071  26.2341  25.5129  27.0847     ....  27.0516  28.3003
- 1N    / 46:     ....  26.4437  28.2462  27.2532  28.7823  28.7893  27.5856  25.9683  24.2075  25.8155     ....  27.0482  27.9197
- 1S    / 45:     ....  27.0068  28.1397  27.7957  28.9633  29.1200  27.9352  26.0170  24.4768  24.9226     ....  27.0957  27.0229
- 3S    / 44:     ....  27.6137  28.2304  27.5868  28.9390  29.4694  27.9904  26.2519  24.6900  24.9094     ....  27.1568  26.8912
- 5S    / 43:     ....  28.2419  28.1710  28.0148  28.8535  29.6225  28.6900  26.6985  24.8254  25.1700     ....  27.1489  26.2070
- 7S    / 42:     ....  28.7080  28.1502  28.3020  28.9045  29.3650  29.1496  27.0025  25.1069  24.9153     ....  27.3142  25.4034
- 9S    / 41:     ....  28.4648  28.3721  28.3145  28.9483  29.3450  28.9944  28.0900  25.3219  24.4950     ....  27.2335  24.8536
- 11S   / 40:     ....  28.0725  28.3709  28.1023  29.6033  29.3462  29.1837  28.2076  25.4194  24.1157     ....  27.2170  24.0960
- 13S   / 39:     ....  28.1510  28.0187  27.8073  30.0000  29.1755  29.0507  28.1889  25.3569  23.7371     ....  27.3476  23.4967
- 15S   / 38:     ....  28.0800  27.7714  27.2320     ....  28.6954  28.8358  28.2165  25.5737  22.9877     ....  27.0100  23.0127
- 17S   / 37:     ....  28.2857  26.9409  26.4882     ....  28.2425  28.1673  27.9296  25.5046  22.3944     ....  26.7405  22.9133
- 19S   / 36:     ....  27.6122  26.1967  25.0514     ....  27.7552  27.8560  27.5000  25.4854  21.0467     ....  26.6053  22.7264
- 21S   / 35:     ....  27.5942  25.6929  24.4583     ....  26.3083  26.9939  27.2162  25.5969  21.8550     ....  26.4333  22.5890
- 23S   / 34:     ....  27.0610  25.3542  23.6893     ....  26.0250  26.0238  26.6869  25.5377  21.5647     ....  26.5500  22.9482
- 25S   / 33:     ....  26.6974  25.2817  22.6691     ....  25.5528  25.4389  25.4775  25.2041  21.3664     ....  25.4338  23.1510
- 27S   / 32:     ....  25.8897  24.5000  22.1500     ....  24.8603  24.1297  24.3742  24.8067  21.0300     ....  24.8628  22.9100
- 29S   / 31:     ....  24.6453  23.8583  21.1592     ....  24.0408  23.2608  23.1950  24.4300  21.1500     ....  23.4096  22.5004
- 31S   / 30:     ....  23.8611  22.6739  20.5028     ....  23.2794  21.8597  21.8462  22.7130  21.3700     ....  22.5936  22.0041
- 33S   / 29:     ....  22.1584  21.2131  19.2542  18.8470  22.4742  20.8053  20.6944  22.4667  20.3670     ....  20.5743  20.8167
- 35S   / 28:  21.0773  20.5794  19.8725  18.4359  18.1523  22.1463  20.1823  19.6000  20.4500  19.2450  21.7333  19.9441  19.5977
- 37S   / 27:  21.2868  19.1969  17.8018  16.7463  16.9175  20.0833  19.0935  18.1643  18.1575  18.4543     ....  18.6379  17.6856
- 39S   / 26:  20.7459  17.5123  15.9600  14.8400  16.3010  18.3956  18.3997  16.9135  16.9625  17.0514  18.6879  16.7446  15.4764
- 41S   / 25:  16.4473  14.4439  14.4573  13.5944  14.4030  17.4141  17.2206  15.2329     ....  15.7317  16.7885  14.7942  12.6567
- 43S   / 24:  14.3660   8.5494  12.8214  11.9753  13.3524  15.0229  16.4218  13.6950     ....  13.6375  13.9769  12.5075  10.4100
- 45S   / 23:   8.4925   7.5150  11.1860  10.5093  11.8445  13.9774  14.9780  13.0112     ....  12.0000  12.2990  10.5100   7.9967
- 47S   / 22:   6.0621   5.7733   7.4400   9.0110  10.8888  13.2065  13.4630  11.6550     ....  10.2400  11.1783   8.6200   6.4500
- 49S   / 21:   4.4209   4.2067   6.0325   6.1945   9.7129  10.8775  12.9344     ....     ....   9.3675  10.3435   5.2987   4.5450
- 51S   / 20:   1.8375   3.6387   3.1564   5.7656   8.0480  10.0143  11.0070  10.9750     ....   9.2000   9.8156   3.6350   2.5350
- 53S   / 19:   1.0891   2.8667   2.1950   4.1600   6.5630   9.4455   9.7660     ....     ....   8.5500   8.5604   2.1900   1.0550
- 55S   / 18:   0.6469   2.6750   2.3478   4.1000   5.1560   6.5700   8.0000     ....   7.8000   7.8786   6.9458   1.3933   0.5425
- 57S   / 17:   0.4114   2.0529   1.8425   2.4260   4.2929   4.7383   7.0125   3.9825     ....   6.8667   5.7852   0.7771   0.5529
- 59S   / 16:   0.6236   1.3700   1.4776   2.0189   3.2000   4.0325   4.4000   1.8360     ....   6.5150   2.7940   0.0694   0.0558
- 61S   / 15:   0.8438   1.3312   1.2144   1.2400   1.9900   2.2237   3.2143   0.8080   3.6867     ....   1.6781   0.0830   0.6620
- 63S   / 14:   0.8813   0.7700   1.1575   0.4750   1.2344   1.1619   1.6000   0.5280   2.3275   3.4000   1.1667  -0.3333   0.4050
- 65S   / 13:   0.3667  -0.0356   0.8123   0.0871   0.1521   0.3286   0.5200   0.4550   0.5067   1.8325  -0.9000  -0.5500   0.2060
- 67S   / 12:  -0.6667  -0.9250   0.5317     ....     ....  -0.3906  -0.0233  -1.2000  -0.1537   0.8722     ....  -0.2533   0.2300
- 69S   / 11:   0.0425     ....   1.2033     ....     ....  -0.6200  -0.1364     ....  -0.4150   0.1786     ....   0.5000   0.0700
- 71S   / 10:     ....     ....     ....     ....     ....     ....  -0.7040   0.0000     ....     ....     ....  -1.0167  -1.0100
- 73S   /  9:     ....     ....     ....     ....     ....     ....  -0.3500     ....     ....     ....     ....  -1.2000     ....
- 75S   /  8:     ....     ....     ....     ....     ....     ....  -1.1750     ....     ....     ....     ....  -0.4233     ....
- 77S   /  7:     ....     ....     ....     ....     ....     ....  -0.6250     ....     ....     ....     ....  -0.8678     ....
- 79S   /  6:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 81S   /  5:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 83S   /  4:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 85S   /  3:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 87S   /  2:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 89S   /  1:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- ---- L:2 T:   1096.5
- 89N   / 90:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 87N   / 89:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 85N   / 88:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 83N   / 87:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 81N   / 86:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 79N   / 85:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 77N   / 84:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....   1.0000
- 75N   / 83:   2.5283     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....  -1.5500
- 73N   / 82:   4.0984   0.3050     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....  -0.1087
- 71N   / 81:   4.6724   0.1046     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....   2.7960
- 69N   / 80:   4.1971   0.0000     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....   3.8097
- 67N   / 79:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....   1.6000   3.7596   4.3979
- 65N   / 78:  -0.0625     ....     ....     ....     ....     ....  -0.2000     ....     ....     ....   0.4221   4.4633   4.8655
- 63N   / 77:   0.0745     ....     ....     ....     ....     ....  -1.7560     ....     ....     ....  -0.2712   5.8617   6.3740
- 61N   / 76:   0.4814     ....     ....     ....     ....   2.4947  -1.5404   4.7000     ....     ....   2.1750   6.4468   7.9008
- 59N   / 75:   1.6399     ....     ....     ....     ....   2.0000   0.0008   5.2586     ....     ....   1.3824   7.0788   6.9452
- 57N   / 74:   2.0350     ....     ....     ....     ....   1.0500   2.0321   4.7989     ....     ....   1.5986   7.2850   5.6111
- 55N   / 73:   2.0609     ....     ....     ....     ....   0.2492   3.3744   4.9032     ....     ....   1.1250   7.1357   5.8718
- 53N   / 72:     ....     ....     ....     ....     ....   0.6807   3.7572   5.4648     ....     ....  -2.2000   7.5902   6.5032
- 51N   / 71:     ....     ....     ....     ....     ....   1.6469   3.7090   5.7799     ....     ....  -1.1807  10.0328   8.4741
- 49N   / 70:     ....     ....     ....     ....     ....   1.8588   4.3120   6.2452     ....     ....  -0.3648  11.3871   9.5089
- 47N   / 69:     ....     ....     ....     ....     ....   2.3163   5.1206   7.3744     ....   1.9691  -0.0062  12.2219  10.1338
- 45N   / 68:     ....   3.6500     ....     ....     ....   3.6392   6.7455   8.6209     ....   2.8224   0.9671  13.4022  11.7268
- 43N   / 67:     ....   4.6473     ....     ....   1.3648   5.8679   8.5111   9.8453     ....   2.4835   5.0119  14.2248  12.1942
- 41N   / 66:     ....   4.7861     ....     ....   3.0570   8.4719  10.3051  11.4213     ....     ....  14.7565  15.0002     ....
- 39N   / 65:  15.0270   8.4385     ....     ....   7.3566  11.4912  12.1752  12.8504     ....     ....  18.0116  15.7098     ....
- 37N   / 64:  15.3211     ....     ....     ....  10.8839  13.7783  13.3446  14.3616     ....     ....  18.5301  16.5598  14.7798
- 35N   / 63:  15.5386     ....     ....     ....  11.5113  15.5093  14.6245  15.8741     ....     ....  18.7629  17.4589  15.1510
- 33N   / 62:  16.0085     ....     ....     ....  18.0727  16.9360  16.0912  17.1296     ....     ....  19.2839  18.5539     ....
- 31N   / 61:  15.5003     ....     ....     ....  19.3688  18.1290  17.7404  18.4996  16.6805  17.1886  20.0995  19.3186     ....
- 29N   / 60:     ....  17.9540     ....     ....  19.6179  19.5035  19.2114  19.5065  16.2029  20.0335  21.3973  20.0384     ....
- 27N   / 59:     ....  19.2895     ....     ....  20.5089  21.1212  20.6266  20.3709  17.2076  23.4895  22.6302  20.8561     ....
- 25N   / 58:     ....     ....     ....     ....  21.6717  22.9821  22.7977  21.2932  18.4958  24.6577  23.6045  21.6921     ....
- 23N   / 57:     ....     ....     ....     ....  23.0715  24.4551  23.5951  22.2253  19.8338  25.2474  24.2970  22.1740     ....
- 21N   / 56:     ....     ....     ....     ....  24.4908  25.3921  24.3804  22.7672  21.2780  25.9320  24.9042  22.6199     ....
- 19N   / 55:     ....     ....     ....  21.9809  25.6218  26.2087  25.0433  23.4827  23.0766  26.7496  25.4450  22.7637     ....
- 17N   / 54:     ....     ....     ....     ....  26.5571  26.5915  25.7194  24.1352  24.9649  26.7912  25.7799  22.9853     ....
- 15N   / 53:     ....  25.4092     ....     ....  27.2200  26.8560  25.9733  24.7324  26.0247  26.0114  26.0969  23.6629     ....
- 13N   / 52:     ....  25.4771     ....     ....  27.5037  27.5150  26.1672  25.1314  26.5769  26.9127  26.4016  24.1635     ....
- 11N   / 51:     ....  25.9857  28.0015  26.7764  27.5853  27.5652  26.8019  25.7690  27.0738  26.0525  26.6473  24.7404     ....
- 9N    / 50:     ....  26.4544  28.2288  26.5501  27.7983  28.1491  27.4758  26.8996  26.9893  26.8687  26.7045  25.5850     ....
- 7N    / 49:     ....  26.2609  27.8816  26.4870  27.6868  28.5162  27.7850  27.0898  27.0539  28.0777  26.7957  26.6243     ....
- 5N    / 48:     ....  26.4131  27.9713  26.8734  27.7794  28.6949  27.8279  26.7964  26.6060  28.0647     ....  26.8913  28.0427
- 3N    / 47:     ....  26.5913  28.1749  26.9865  28.4875  29.1712  27.8616  26.6257  26.2312  27.7434     ....  27.1225  28.5353
- 1N    / 46:     ....  26.8491  28.6115  27.3775  28.2466  28.9555  27.5331  26.4050  26.4266  26.5208     ....  27.2455  28.5152
- 1S    / 45:     ....  27.3064  28.4080  27.9040  28.4680  29.2010  27.7261  26.4751  24.6569  26.0235     ....  27.4196  27.9833
- 3S    / 44:     ....  27.9602  28.2742  28.3296  28.8893  29.5794  28.3834  26.5213  25.4925  26.6125     ....  27.6638  27.3859
- 5S    / 43:     ....  28.2396  28.0572  28.3176  28.7901  29.3721  28.2957  26.7982  25.7981  26.6252     ....  27.6334  27.2052
- 7S    / 42:     ....  28.6815  28.2612  28.2786  28.7463  29.4168  28.8967  27.4410  26.1729  26.5534     ....  27.7374  26.6993
- 9S    / 41:     ....  28.4790  28.3137  28.5841  28.7040  29.4256  29.1270  28.3372  25.9400  25.9795     ....  27.6607  26.1480
- 11S   / 40:     ....  28.2829  28.6414  28.3339  29.3503  29.1771  29.1492  28.2032  25.9871  25.9624     ....  27.5419  25.5310
- 13S   / 39:     ....  28.3226  28.3738  28.5679     ....  29.0269  29.1852  28.3130  25.7940  25.0490     ....  27.3347  25.0641
- 15S   / 38:     ....  27.6600  28.2896  27.7713     ....  28.8387  29.0820  28.4626  25.9384  24.0311     ....  27.4378  24.5993
- 17S   / 37:     ....  28.0370  27.5108  27.3368     ....  28.5764  28.4527  27.9555  26.0744  23.1143     ....  27.5051  24.0454
- 19S   / 36:     ....  27.7741  27.0157  26.4074     ....  28.0387  28.2036  28.0002  26.1485  23.5125     ....  27.4665  23.8172
- 21S   / 35:     ....  27.5781  26.3341  25.2805     ....  26.9356  27.5820  27.6097  26.0473  22.5984     ....  27.0379  23.6919
- 23S   / 34:     ....  27.4302  26.2267  24.4780     ....  26.2735  26.9770  26.9149  25.9504  22.6780     ....  27.2712  23.6569
- 25S   / 33:     ....  27.1106  25.3692  23.3572     ....  25.8933  25.9116  26.4028  25.5674  21.8153     ....  26.4321  23.8424
- 27S   / 32:     ....  26.2136  25.2324  22.5225     ....  25.1302  24.7613  25.0533  25.4781  22.3270     ....  26.0936  23.3768
- 29S   / 31:     ....  25.1187  23.9464  21.6124     ....  24.6507  24.1035  24.0470  24.7712  21.6070     ....  25.1327  23.1977
- 31S   / 30:     ....  24.1655  22.8869  20.9082     ....  23.9437  22.8024  22.8395  23.8185  21.6885     ....  23.6302  22.7434
- 33S   / 29:     ....  23.0193  21.8809  19.7883  19.8276  23.0018  21.7527  21.3169  21.5627  21.0475     ....  22.6172  21.4319
- 35S   / 28:  20.9734  21.1547  20.7043  18.8851  18.9300  22.5357  20.8505  20.5353  22.0240  20.2323  22.8700  20.8750  20.1989
- 37S   / 27:  21.7237  19.9086  18.4469  17.2227  17.7141  20.7386  19.8244  18.3687  19.8411  19.7704     ....  19.5269  18.6070
- 39S   / 26:  22.0397  18.3765  16.5437  15.5140  17.0989  19.0830  18.8514  17.5866     ....  18.7405  19.1255  18.2102  15.7730
- 41S   / 25:  17.8526  16.3651  15.5023  14.2290  15.4274  17.6752  17.4792  15.9576  18.1650  17.1268  17.4312  16.4894  13.9250
- 43S   / 24:  13.4949   9.2836  13.3727  12.3420  13.9432  16.1595  17.0221  14.6650  16.3947  14.2424  14.2672  14.1820  10.6937
- 45S   / 23:   8.3840   7.6307  11.6679  11.2457  12.8452  14.4788  15.0178  13.5082     ....  12.0600  12.7115  10.9652   8.1250
- 47S   / 22:   6.7167   6.0540   8.2500   9.1190  10.9825  12.8255  13.8707  12.4650     ....  10.8575  11.1699   8.5767   5.5000
- 49S   / 21:   4.8858   5.4150   5.9088   6.2255  10.1339  11.2443  12.5930  11.4167     ....  10.0842  10.6338   7.4442   4.9572
- 51S   / 20:   2.3210   3.9822   3.9846   5.7576   7.7675   9.9738  10.8426  10.1840     ....  10.0000  10.2138   5.1999   3.5755
- 53S   / 19:   1.6715   3.2515   2.9610   4.1500   6.9224   8.5819   9.1357     ....     ....   8.1500   8.4738   3.8071   2.1017
- 55S   / 18:   1.3318   3.1000   2.6454   3.0000   5.7914   6.1994   7.9489   6.6000     ....   7.7692   7.2001   1.8440   1.0135
- 57S   / 17:   0.9767   1.9018   1.9953   2.7540   5.2543   4.5237   6.5740   3.7000     ....   7.5635   6.0275   1.7052   1.1491
- 59S   / 16:   1.1588   2.1100   1.9107   2.7212   3.8002   3.8360   4.9089   1.7892     ....   6.7092   3.6242   1.2592   0.7025
- 61S   / 15:   0.9937   1.7382   1.5836   2.3000   3.0766   2.3196   3.4012   1.9993     ....   4.4088   2.4941   0.0903   0.4673
- 63S   / 14:   1.0650   1.2982   1.6343   1.2108   1.5136   1.6090   1.8151   1.2050     ....   3.1150   1.2840   0.3114   0.9075
- 65S   / 13:   0.6686   0.1303   0.8185   0.2022   0.5104   0.3644   1.0079   0.2598   1.8500   1.8860   0.7000   0.0021   0.9191
- 67S   / 12:   0.4623  -0.5492   0.0874     ....     ....  -0.0052  -0.2830  -0.0203   1.1982   0.4323  -0.5000   0.2120  -0.0205
- 69S   / 11:  -0.3438     ....  -0.2335     ....     ....  -1.3365  -0.1277     ....  -0.2716  -0.3135     ....  -0.7000  -0.2723
- 71S   / 10:     ....     ....     ....     ....     ....  -1.6000  -1.0248     ....  -1.0000     ....     ....  -1.5633  -0.9349
- 73S   /  9:     ....     ....     ....     ....     ....     ....  -1.0216     ....     ....     ....     ....  -1.4771     ....
- 75S   /  8:     ....     ....     ....     ....     ....     ....  -0.6115     ....     ....     ....  -1.6061  -1.2224     ....
- 77S   /  7:     ....     ....     ....     ....     ....     ....  -0.6974     ....     ....     ....     ....  -1.3728     ....
- 79S   /  6:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 81S   /  5:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 83S   /  4:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 85S   /  3:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 87S   /  2:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 89S   /  1:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- ---- L:3 T:   3287.9
- 89N   / 90:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 87N   / 89:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 85N   / 88:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 83N   / 87:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 81N   / 86:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 79N   / 85:   2.5000     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....   0.3750
- 77N   / 84:   3.4400     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....  -0.6250
- 75N   / 83:   2.6000     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....  -0.8460
- 73N   / 82:   4.4409   0.5100     ....     ....     ....     ....     ....     ....     ....     ....  -1.3667     ....  -0.8225
- 71N   / 81:   5.4388   0.3400     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....   3.6240
- 69N   / 80:   5.9773     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....   7.0333   5.7596
- 67N   / 79:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....  -0.6000   6.2775   5.0971
- 65N   / 78:   1.4558     ....     ....     ....     ....     ....  -0.2350     ....     ....     ....  -0.0333   5.5736   5.9673
- 63N   / 77:   3.4200     ....     ....     ....     ....     ....   0.6400     ....     ....     ....  -1.6700   6.6186   7.9123
- 61N   / 76:   3.4160     ....     ....     ....     ....   2.5655   0.7717   6.6667     ....     ....   1.8667   7.0529   8.8649
- 59N   / 75:   5.6405     ....     ....     ....     ....   2.0611   0.9867   6.9750     ....     ....   2.0100   7.4621   8.4868
- 57N   / 74:   5.9800     ....     ....     ....     ....   3.0850   2.7321   6.8916     ....     ....   0.9500   8.2306   8.5784
- 55N   / 73:   8.0252     ....     ....     ....     ....   2.3115   4.5506   6.4479     ....     ....   3.7000   8.3973   9.5559
- 53N   / 72:     ....     ....     ....     ....     ....   2.6937   4.8088   6.7680     ....     ....   2.8900   9.2218  10.4003
- 51N   / 71:     ....     ....     ....     ....     ....   3.2503   4.9117   6.8015     ....     ....   2.5529  11.3034  10.8005
- 49N   / 70:     ....     ....     ....     ....     ....   3.0545   5.1517   7.2869     ....   2.7152   3.2139  12.3364  11.3225
- 47N   / 69:     ....   2.7000     ....     ....     ....   3.3659   5.8927   8.3193     ....   2.7223   3.4114  13.6252  13.5042
- 45N   / 68:     ....  10.0571     ....     ....     ....   4.8410   7.4161   9.4102     ....   3.6258   3.8275  14.6266  14.1615
- 43N   / 67:     ....  12.7416     ....     ....   6.7189   6.9232   9.1093  10.6638     ....   4.2112   7.7514  15.5934  14.2717
- 41N   / 66:     ....  12.2736     ....     ....   9.4889  10.0966  11.2221  12.2000     ....   7.4752  17.0025  16.5220     ....
- 39N   / 65:  18.3061  17.6344     ....     ....  13.1272  13.1707  13.2898  13.6927     ....     ....  20.0227  17.1398     ....
- 37N   / 64:  18.5141  17.9063     ....     ....  15.3549  15.3983  15.0444  15.3707     ....     ....  20.4579  18.0923  17.5707
- 35N   / 63:  18.7384     ....     ....     ....  16.8426  17.6000  16.7552  16.7829     ....     ....  20.4300  19.0107  17.7344
- 33N   / 62:  18.9508     ....     ....     ....  21.5277  18.7307  18.1471  17.9534     ....     ....  21.0125  20.0088     ....
- 31N   / 61:  18.7025     ....     ....     ....  22.5800  20.5256  20.0583  19.4733  17.4200  24.2768  21.8716  20.6057     ....
- 29N   / 60:     ....  25.7695     ....     ....  22.5733  22.5723  21.6635  20.2684  16.2180  24.9511  23.1845  21.2752     ....
- 27N   / 59:     ....  25.4122     ....     ....  23.6602  24.0498  22.5812  21.2723  16.7570  26.3925  24.2020  21.7641     ....
- 25N   / 58:     ....     ....     ....     ....  25.2143  25.5321  24.3246  21.9995  17.9540  26.9720  24.9484  22.4602     ....
- 23N   / 57:     ....     ....     ....     ....  26.6917  26.0579  24.8529  22.5776  20.2795  27.1909  25.5700  22.9362     ....
- 21N   / 56:     ....     ....     ....     ....  27.8576  26.6563  25.3957  23.1102  22.1345  27.7200  26.0730  23.0700     ....
- 19N   / 55:     ....     ....     ....  26.8300  28.4227  27.1402  25.9305  23.6595  23.7516  28.1905  26.6716  23.3293     ....
- 17N   / 54:     ....     ....     ....     ....  28.8737  27.3141  26.3835  24.2809  25.2149  28.3251  27.0405  23.5656     ....
- 15N   / 53:     ....  29.6770     ....     ....  29.0020  27.5648  26.8352  25.0370  26.4873  28.2522  27.1788  24.0619     ....
- 13N   / 52:     ....  29.7957     ....     ....  29.0452  27.9505  26.9712  25.7979  27.9270  29.0510  27.4940  24.9544     ....
- 11N   / 51:     ....  29.9600  29.6100  29.9485  29.1975  28.5281  27.2419  26.2275  28.2569  28.6935  27.4943  25.4832     ....
- 9N    / 50:     ....  29.0000  29.2055  29.9940  29.1339  28.5629  28.0300  26.8865  28.1333  28.7602  27.5655  26.2932     ....
- 7N    / 49:     ....  28.0975  29.2157  29.8208  29.1260  28.9489  28.3765  27.6896  27.9185  28.6481  27.8075  26.9731     ....
- 5N    / 48:     ....  28.5837  28.9960  29.6031  29.2848  28.8200  28.2841  28.0367  28.0050  28.1459     ....  27.4683  28.6742
- 3N    / 47:     ....  28.8228  28.8738  29.6720  29.1708  29.1114  27.9356  27.4223  27.0792  27.4624     ....  27.7005  28.7616
- 1N    / 46:     ....  28.9241  28.9488  29.6711  29.2204  29.2053  27.9759  26.7708  26.2331  24.6843     ....  27.7243  28.5300
- 1S    / 45:     ....  28.8412  28.8305  29.7569  29.3532  29.1575  28.6016  27.3479  26.1727  23.7911     ....  27.7941  27.3629
- 3S    / 44:     ....  28.7131  28.7504  29.7065  28.8744  29.3853  29.0300  27.7041  26.2321  24.2555     ....  27.9582  27.0115
- 5S    / 43:     ....  28.2603  28.5437  29.3988  28.6953  29.4181  29.4700  28.0004  26.6977  25.2607     ....  28.0911  26.9673
- 7S    / 42:     ....  28.4590  28.1998  29.0577  28.3900  29.3039  29.4132  28.1829  26.9186  25.5194     ....  28.0741  26.4868
- 9S    / 41:     ....  27.4126  27.8088  28.6505  28.0595  29.3987  29.4488  28.6235  26.8222  25.9759     ....  27.9426  25.9048
- 11S   / 40:     ....  27.3103  27.5905  28.4839  28.4948  28.7670  29.4367  28.7400  26.7212  25.1000     ....  27.5707  25.3691
- 13S   / 39:     ....  27.6357  27.1885  28.1500  29.0750  28.2963  29.0007  28.3957  26.0152  23.9237     ....  27.2888  23.9450
- 15S   / 38:     ....  27.4167  26.8054  27.3040     ....  27.6349  28.8591  28.2997  25.6416  22.9757     ....  26.8832  23.2593
- 17S   / 37:     ....  26.5750  26.3315  26.3547     ....  26.9741  27.8112  27.7504  25.2758  22.2731     ....  26.9240  22.9660
- 19S   / 36:     ....  26.3800  25.6018  25.5118     ....  26.2589  26.8355  27.3067  25.1597  21.8636     ....  26.4242  22.7498
- 21S   / 35:     ....  26.3962  24.9433  24.4010     ....  25.0882  26.0626  26.7074  25.1090  21.2900     ....  26.0265  22.2924
- 23S   / 34:     ....  25.5153  23.9938  23.6290     ....  23.7930  24.8873  25.7890  24.6791  21.6500     ....  25.0545  22.3546
- 25S   / 33:     ....  25.0498  23.4605  22.4263     ....  23.5336  23.1886  24.5767  23.8922  21.0542     ....  24.0368  22.0510
- 27S   / 32:     ....  24.0579  22.4800  21.3337     ....  22.9638  22.6794  22.9685  23.3845  20.5250     ....  23.4248  21.4712
- 29S   / 31:     ....  22.2597  20.8924  20.4105     ....  22.1940  21.7986  21.7838  22.1056  20.3556     ....  22.2542  20.3204
- 31S   / 30:     ....  21.4554  20.1326  19.0221     ....  21.7333  20.2379  20.6162  21.0963  19.7514     ....  21.3928  19.9943
- 33S   / 29:     ....  20.1174  18.7177  17.8882  17.9775  20.9526  18.9529  18.9267  19.8433  18.7275     ....  19.5163  19.1597
- 35S   / 28:  17.4848  19.0512  17.2736  16.4823  17.0525  20.2329  17.9626  17.6227  19.3250  17.7730  18.5000  18.2119  17.9181
- 37S   / 27:  19.0393  18.4096  15.7970  14.9422  15.5643  18.4488  16.9900  16.4614  16.4140  16.1780     ....  17.4080  16.3346
- 39S   / 26:  19.3745  17.0241  15.1964  13.3975  14.9817  16.2655  15.9971  15.1350  15.1000  15.0855  13.9982  15.9207  14.3391
- 41S   / 25:  17.5125  14.8843  13.7848  11.6755  13.7962  15.6597  15.2020  13.3413     ....  13.7836  12.0222  14.1123  13.4425
- 43S   / 24:  14.8667   8.6540  13.1967  10.4214  12.3867  14.4790  14.1935  12.8180     ....  12.5791   9.4489  13.2311  12.1000
- 45S   / 23:  14.8333     ....  10.7300  10.0000  10.7150  12.2380  12.7589  11.4000     ....  11.8200   8.4016     ....     ....
- 47S   / 22:     ....     ....   6.0500     ....     ....  11.8750  11.9511  10.9667     ....   9.6250   7.7883   7.6600     ....
- 49S   / 21:     ....     ....   5.4000     ....     ....  10.7667  11.0757   9.8500     ....   8.9767   7.4821   6.6840     ....
- 51S   / 20:     ....     ....   2.5333     ....     ....   8.8000     ....   9.2571     ....   7.6900   7.7200   3.7350     ....
- 53S   / 19:     ....   3.4133     ....     ....     ....   8.4600     ....     ....   5.0000   6.6850   7.1267   1.1217     ....
- 55S   / 18:     ....     ....     ....     ....     ....     ....     ....     ....     ....   6.5000   6.0667   1.4680     ....
- 57S   / 17:     ....     ....     ....     ....     ....     ....     ....     ....     ....   5.2000   5.2657   1.0000     ....
- 59S   / 16:     ....     ....  -0.4400     ....     ....     ....     ....     ....     ....     ....   1.5000  -0.8000     ....
- 61S   / 15:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....  -0.4500     ....     ....
- 63S   / 14:     ....     ....     ....     ....     ....     ....     ....     ....     ....   2.0700     ....     ....     ....
- 65S   / 13:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 67S   / 12:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 69S   / 11:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 71S   / 10:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 73S   /  9:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 75S   /  8:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 77S   /  7:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 79S   /  6:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 81S   /  5:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 83S   /  4:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 85S   /  3:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 87S   /  2:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 89S   /  1:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 
- 
- 
-!added in bn450 10/97 *kob*
-GO bn_reset
-cancel mode verify
-GO bn_negative_t
-! bn450_negative_t - 10/97
- 
-! test behavior of negative time step values (unsupported except as absolute
-! dates prior to Ferret version 4.5)
- 
- 
-! define an axis of negative and positive time steps and test all
-! transformation on it over various ranges
- 
-DEFINE AXIS/T=-10:10:2 tax
-LET tvar = t[gt=tax]
-LET tgap = IF MOD(T,4) eq 0 then  tvar
- 
-! ****** test transformations ********
- 
-GO bn_negative_t.sub tvar ave  ! like var and din
-! bn450_neg_t_trans.sub
- 
-! support routine for bn450_negative_t.jnl
- 
-! call as
-!   GO bn450_neg_t_sub  varname  transform
- 
-! tvar axis runs from -10 to 10 by 1's
- 
-LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ave]	! neg/pos t endpoints
-             VARIABLE : T[GT=TAX]
-             T        : -5 to 5 (averaged)
-          0.000000
-LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ave]	! neg/neq t endpoints
-             VARIABLE : T[GT=TAX]
-             T        : -8 to -5 (averaged)
-         -6.66667
-LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ave]	! neg/pos l endpoints
-             VARIABLE : T[GT=TAX]
-             T        : -9 to 3 (averaged)
-         -3.00000
-LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ave]	! neg/neg l endpoints
-             VARIABLE : T[GT=TAX]
-             T        : -9 to -3 (averaged)
-         -6.00000
-LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ave]	! unspecified limits (neg/pos)
-             VARIABLE : T[GT=TAX]
-             T        : -11 to 11 (averaged)
-          0.000000
- 
-GO bn_negative_t.sub tvar iin
-! bn450_neg_t_trans.sub
- 
-! support routine for bn450_negative_t.jnl
- 
-! call as
-!   GO bn450_neg_t_sub  varname  transform
- 
-! tvar axis runs from -10 to 10 by 1's
- 
-LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at iin]	! neg/pos t endpoints
-             VARIABLE : T[GT=TAX]
-                        indef. integ. on T
-             SUBSET   : 5 points (T)
- -4   / 4:  -8.0000
- -2   / 5: -12.0000
- 0    / 6: -12.0000
- 2    / 7:  -8.0000
- 4    / 8:   0.0000
-LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at iin]	! neg/neq t endpoints
-             VARIABLE : T[GT=TAX]
-                        indef. integ. on T
-             SUBSET   : 2 points (T)
- -8   / 2:  -8.0000
- -6   / 3: -20.0000
-LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at iin]	! neg/pos l endpoints
-             VARIABLE : T[GT=TAX]
-                        indef. integ. on T
-             SUBSET   : 6 points (T)
- -8   / 2: -16.0000
- -6   / 3: -28.0000
- -4   / 4: -36.0000
- -2   / 5: -40.0000
- 0    / 6: -40.0000
- 2    / 7: -36.0000
-LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at iin]	! neg/neg l endpoints
-             VARIABLE : T[GT=TAX]
-                        indef. integ. on T
-             SUBSET   : 3 points (T)
- -8   / 2: -16.0000
- -6   / 3: -28.0000
- -4   / 4: -36.0000
-LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@iin]	! unspecified limits (neg/pos)
-             VARIABLE : T[GT=TAX]
-                        indef. integ. on T
-             SUBSET   : 11 points (T)
- -10   /  1: -20.0000
- -8    /  2: -36.0000
- -6    /  3: -48.0000
- -4    /  4: -56.0000
- -2    /  5: -60.0000
- 0     /  6: -60.0000
- 2     /  7: -56.0000
- 4     /  8: -48.0000
- 6     /  9: -36.0000
- 8     / 10: -20.0000
- 10    / 11:   0.0000
- 
-GO bn_negative_t.sub tvar sum
-! bn450_neg_t_trans.sub
- 
-! support routine for bn450_negative_t.jnl
- 
-! call as
-!   GO bn450_neg_t_sub  varname  transform
- 
-! tvar axis runs from -10 to 10 by 1's
- 
-LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at sum]	! neg/pos t endpoints
-             VARIABLE : T[GT=TAX]
-             T        : -5 to 5 (summed)
-          0.000000
-LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at sum]	! neg/neq t endpoints
-             VARIABLE : T[GT=TAX]
-             T        : -8 to -5 (summed)
-         -14.0000
-LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at sum]	! neg/pos l endpoints
-             VARIABLE : T[GT=TAX]
-             T        : -9 to 3 (summed)
-         -18.0000
-LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at sum]	! neg/neg l endpoints
-             VARIABLE : T[GT=TAX]
-             T        : -9 to -3 (summed)
-         -18.0000
-LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@sum]	! unspecified limits (neg/pos)
-             VARIABLE : T[GT=TAX]
-             T        : -11 to 11 (summed)
-          0.000000
- 
-GO bn_negative_t.sub tvar rsu
-! bn450_neg_t_trans.sub
- 
-! support routine for bn450_negative_t.jnl
- 
-! call as
-!   GO bn450_neg_t_sub  varname  transform
- 
-! tvar axis runs from -10 to 10 by 1's
- 
-LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at rsu]	! neg/pos t endpoints
-             VARIABLE : T[GT=TAX]
-                        running sum on T
-             SUBSET   : 5 points (T)
- -4   / 4: -4.00000
- -2   / 5: -6.00000
- 0    / 6: -6.00000
- 2    / 7: -4.00000
- 4    / 8:  0.00000
-LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at rsu]	! neg/neq t endpoints
-             VARIABLE : T[GT=TAX]
-                        running sum on T
-             SUBSET   : 2 points (T)
- -8   / 2:  -8.0000
- -6   / 3: -14.0000
-LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at rsu]	! neg/pos l endpoints
-             VARIABLE : T[GT=TAX]
-                        running sum on T
-             SUBSET   : 6 points (T)
- -8   / 2:  -8.0000
- -6   / 3: -14.0000
- -4   / 4: -18.0000
- -2   / 5: -20.0000
- 0    / 6: -20.0000
- 2    / 7: -18.0000
-LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at rsu]	! neg/neg l endpoints
-             VARIABLE : T[GT=TAX]
-                        running sum on T
-             SUBSET   : 3 points (T)
- -8   / 2:  -8.0000
- -6   / 3: -14.0000
- -4   / 4: -18.0000
-LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@rsu]	! unspecified limits (neg/pos)
-             VARIABLE : T[GT=TAX]
-                        running sum on T
-             SUBSET   : 11 points (T)
- -10   /  1: -10.0000
- -8    /  2: -18.0000
- -6    /  3: -24.0000
- -4    /  4: -28.0000
- -2    /  5: -30.0000
- 0     /  6: -30.0000
- 2     /  7: -28.0000
- 4     /  8: -24.0000
- 6     /  9: -18.0000
- 8     / 10: -10.0000
- 10    / 11:   0.0000
- 
-GO bn_negative_t.sub tvar shf
-! bn450_neg_t_trans.sub
- 
-! support routine for bn450_negative_t.jnl
- 
-! call as
-!   GO bn450_neg_t_sub  varname  transform
- 
-! tvar axis runs from -10 to 10 by 1's
- 
-LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at shf]	! neg/pos t endpoints
-             VARIABLE : T[GT=TAX]
-                        shifted by 1 pts on T
-             SUBSET   : 5 points (T)
- -4   / 4: -2.00000
- -2   / 5:  0.00000
- 0    / 6:  2.00000
- 2    / 7:  4.00000
- 4    / 8:  6.00000
-LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at shf]	! neg/neq t endpoints
-             VARIABLE : T[GT=TAX]
-                        shifted by 1 pts on T
-             SUBSET   : 2 points (T)
- -8   / 2: -6.00000
- -6   / 3: -4.00000
-LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at shf]	! neg/pos l endpoints
-             VARIABLE : T[GT=TAX]
-                        shifted by 1 pts on T
-             SUBSET   : 6 points (T)
- -8   / 2: -6.00000
- -6   / 3: -4.00000
- -4   / 4: -2.00000
- -2   / 5:  0.00000
- 0    / 6:  2.00000
- 2    / 7:  4.00000
-LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at shf]	! neg/neg l endpoints
-             VARIABLE : T[GT=TAX]
-                        shifted by 1 pts on T
-             SUBSET   : 3 points (T)
- -8   / 2: -6.00000
- -6   / 3: -4.00000
- -4   / 4: -2.00000
-LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@shf]	! unspecified limits (neg/pos)
-             VARIABLE : T[GT=TAX]
-                        shifted by 1 pts on T
-             SUBSET   : 11 points (T)
- -10   /  1:  -8.0000
- -8    /  2:  -6.0000
- -6    /  3:  -4.0000
- -4    /  4:  -2.0000
- -2    /  5:   0.0000
- 0     /  6:   2.0000
- 2     /  7:   4.0000
- 4     /  8:   6.0000
- 6     /  9:   8.0000
- 8     / 10:  10.0000
- 10    / 11:     ....
- 
-GO bn_negative_t.sub tvar min   ! like @max
-! bn450_neg_t_trans.sub
- 
-! support routine for bn450_negative_t.jnl
- 
-! call as
-!   GO bn450_neg_t_sub  varname  transform
- 
-! tvar axis runs from -10 to 10 by 1's
- 
-LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at min]	! neg/pos t endpoints
-             VARIABLE : T[GT=TAX]
-             T        : -5 to 5 (minimum)
-         -4.00000
-LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at min]	! neg/neq t endpoints
-             VARIABLE : T[GT=TAX]
-             T        : -8 to -5 (minimum)
-         -8.00000
-LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at min]	! neg/pos l endpoints
-             VARIABLE : T[GT=TAX]
-             T        : -9 to 3 (minimum)
-         -8.00000
-LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at min]	! neg/neg l endpoints
-             VARIABLE : T[GT=TAX]
-             T        : -9 to -3 (minimum)
-         -8.00000
-LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@min]	! unspecified limits (neg/pos)
-             VARIABLE : T[GT=TAX]
-             T        : -11 to 11 (minimum)
-         -10.0000
- 
-GO bn_negative_t.sub tvar ddf
-! bn450_neg_t_trans.sub
- 
-! support routine for bn450_negative_t.jnl
- 
-! call as
-!   GO bn450_neg_t_sub  varname  transform
- 
-! tvar axis runs from -10 to 10 by 1's
- 
-LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ddf]	! neg/pos t endpoints
-             VARIABLE : T[GT=TAX]
-                        forward derivative on T
-             SUBSET   : 5 points (T)
- -4   / 4:  1.00000
- -2   / 5:  1.00000
- 0    / 6:  1.00000
- 2    / 7:  1.00000
- 4    / 8:  1.00000
-LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ddf]	! neg/neq t endpoints
-             VARIABLE : T[GT=TAX]
-                        forward derivative on T
-             SUBSET   : 2 points (T)
- -8   / 2:  1.00000
- -6   / 3:  1.00000
-LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ddf]	! neg/pos l endpoints
-             VARIABLE : T[GT=TAX]
-                        forward derivative on T
-             SUBSET   : 6 points (T)
- -8   / 2:  1.00000
- -6   / 3:  1.00000
- -4   / 4:  1.00000
- -2   / 5:  1.00000
- 0    / 6:  1.00000
- 2    / 7:  1.00000
-LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ddf]	! neg/neg l endpoints
-             VARIABLE : T[GT=TAX]
-                        forward derivative on T
-             SUBSET   : 3 points (T)
- -8   / 2:  1.00000
- -6   / 3:  1.00000
- -4   / 4:  1.00000
-LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ddf]	! unspecified limits (neg/pos)
-             VARIABLE : T[GT=TAX]
-                        forward derivative on T
-             SUBSET   : 11 points (T)
- -10   /  1:  1.00000
- -8    /  2:  1.00000
- -6    /  3:  1.00000
- -4    /  4:  1.00000
- -2    /  5:  1.00000
- 0     /  6:  1.00000
- 2     /  7:  1.00000
- 4     /  8:  1.00000
- 6     /  9:  1.00000
- 8     / 10:  1.00000
- 10    / 11:     ....
- 
-GO bn_negative_t.sub tvar ddb   ! @ddc like ddf and ddb
-! bn450_neg_t_trans.sub
- 
-! support routine for bn450_negative_t.jnl
- 
-! call as
-!   GO bn450_neg_t_sub  varname  transform
- 
-! tvar axis runs from -10 to 10 by 1's
- 
-LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ddb]	! neg/pos t endpoints
-             VARIABLE : T[GT=TAX]
-                        backwards derivative on T
-             SUBSET   : 5 points (T)
- -4   / 4:  1.00000
- -2   / 5:  1.00000
- 0    / 6:  1.00000
- 2    / 7:  1.00000
- 4    / 8:  1.00000
-LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ddb]	! neg/neq t endpoints
-             VARIABLE : T[GT=TAX]
-                        backwards derivative on T
-             SUBSET   : 2 points (T)
- -8   / 2:  1.00000
- -6   / 3:  1.00000
-LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ddb]	! neg/pos l endpoints
-             VARIABLE : T[GT=TAX]
-                        backwards derivative on T
-             SUBSET   : 6 points (T)
- -8   / 2:  1.00000
- -6   / 3:  1.00000
- -4   / 4:  1.00000
- -2   / 5:  1.00000
- 0    / 6:  1.00000
- 2    / 7:  1.00000
-LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ddb]	! neg/neg l endpoints
-             VARIABLE : T[GT=TAX]
-                        backwards derivative on T
-             SUBSET   : 3 points (T)
- -8   / 2:  1.00000
- -6   / 3:  1.00000
- -4   / 4:  1.00000
-LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ddb]	! unspecified limits (neg/pos)
-             VARIABLE : T[GT=TAX]
-                        backwards derivative on T
-             SUBSET   : 11 points (T)
- -10   /  1:     ....
- -8    /  2:  1.00000
- -6    /  3:  1.00000
- -4    /  4:  1.00000
- -2    /  5:  1.00000
- 0     /  6:  1.00000
- 2     /  7:  1.00000
- 4     /  8:  1.00000
- 6     /  9:  1.00000
- 8     / 10:  1.00000
- 10    / 11:  1.00000
- 
-GO bn_negative_t.sub tvar sbx  ! like sbn, swl, shn, spz
-! bn450_neg_t_trans.sub
- 
-! support routine for bn450_negative_t.jnl
- 
-! call as
-!   GO bn450_neg_t_sub  varname  transform
- 
-! tvar axis runs from -10 to 10 by 1's
- 
-LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at sbx]	! neg/pos t endpoints
-             VARIABLE : T[GT=TAX]
-                        box smoothed by 3 pts on T
-             SUBSET   : 5 points (T)
- -4   / 4: -4.00000
- -2   / 5: -2.00000
- 0    / 6:  0.00000
- 2    / 7:  2.00000
- 4    / 8:  4.00000
-LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at sbx]	! neg/neq t endpoints
-             VARIABLE : T[GT=TAX]
-                        box smoothed by 3 pts on T
-             SUBSET   : 2 points (T)
- -8   / 2: -8.00000
- -6   / 3: -6.00000
-LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at sbx]	! neg/pos l endpoints
-             VARIABLE : T[GT=TAX]
-                        box smoothed by 3 pts on T
-             SUBSET   : 6 points (T)
- -8   / 2: -8.00000
- -6   / 3: -6.00000
- -4   / 4: -4.00000
- -2   / 5: -2.00000
- 0    / 6:  0.00000
- 2    / 7:  2.00000
-LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at sbx]	! neg/neg l endpoints
-             VARIABLE : T[GT=TAX]
-                        box smoothed by 3 pts on T
-             SUBSET   : 3 points (T)
- -8   / 2: -8.00000
- -6   / 3: -6.00000
- -4   / 4: -4.00000
-LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@sbx]	! unspecified limits (neg/pos)
-             VARIABLE : T[GT=TAX]
-                        box smoothed by 3 pts on T
-             SUBSET   : 11 points (T)
- -10   /  1:     ....
- -8    /  2: -8.00000
- -6    /  3: -6.00000
- -4    /  4: -4.00000
- -2    /  5: -2.00000
- 0     /  6:  0.00000
- 2     /  7:  2.00000
- 4     /  8:  4.00000
- 6     /  9:  6.00000
- 8     / 10:  8.00000
- 10    / 11:     ....
- 
-GO bn_negative_t.sub tvar loc:-2.2
-! bn450_neg_t_trans.sub
- 
-! support routine for bn450_negative_t.jnl
- 
-! call as
-!   GO bn450_neg_t_sub  varname  transform
- 
-! tvar axis runs from -10 to 10 by 1's
- 
-LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at loc:-2.2]	! neg/pos t endpoints
-             VARIABLE : T of -2.2 in T[GT=TAX]
-             T        : -5 to 5 (location of -2.2)
-         -2.20000
-LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at loc:-2.2]	! neg/neq t endpoints
-             VARIABLE : T of -2.2 in T[GT=TAX]
-             T        : -8 to -5 (location of -2.2)
-        ....
-LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at loc:-2.2]	! neg/pos l endpoints
-             VARIABLE : T of -2.2 in T[GT=TAX]
-             T        : -9 to 3 (location of -2.2)
-         -2.20000
-LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at loc:-2.2]	! neg/neg l endpoints
-             VARIABLE : T of -2.2 in T[GT=TAX]
-             T        : -9 to -3 (location of -2.2)
-        ....
-LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@loc:-2.2]	! unspecified limits (neg/pos)
-             VARIABLE : T of -2.2 in T[GT=TAX]
-             T        : -11 to 11 (location of -2.2)
-         -2.20000
- 
-GO bn_negative_t.sub tvar weq:-2.2
-! bn450_neg_t_trans.sub
- 
-! support routine for bn450_negative_t.jnl
- 
-! call as
-!   GO bn450_neg_t_sub  varname  transform
- 
-! tvar axis runs from -10 to 10 by 1's
- 
-LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at weq:-2.2]	! neg/pos t endpoints
-             VARIABLE : T[GT=TAX]
-                        weighted equal of -2.2 on T
-             SUBSET   : 5 points (T)
- -4   / 4:  0.100000
- -2   / 5:  0.900000
- 0    / 6:      ....
- 2    / 7:      ....
- 4    / 8:      ....
-LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at weq:-2.2]	! neg/neq t endpoints
-             VARIABLE : T[GT=TAX]
-                        weighted equal of -2.2 on T
-             SUBSET   : 2 points (T)
- -8   / 2:....
- -6   / 3:....
-LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at weq:-2.2]	! neg/pos l endpoints
-             VARIABLE : T[GT=TAX]
-                        weighted equal of -2.2 on T
-             SUBSET   : 6 points (T)
- -8   / 2:      ....
- -6   / 3:      ....
- -4   / 4:  0.100000
- -2   / 5:  0.900000
- 0    / 6:      ....
- 2    / 7:      ....
-LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at weq:-2.2]	! neg/neg l endpoints
-             VARIABLE : T[GT=TAX]
-                        weighted equal of -2.2 on T
-             SUBSET   : 3 points (T)
- -8   / 2:....
- -6   / 3:....
- -4   / 4:....
-LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@weq:-2.2]	! unspecified limits (neg/pos)
-             VARIABLE : T[GT=TAX]
-                        weighted equal of -2.2 on T
-             SUBSET   : 11 points (T)
- -10   /  1:      ....
- -8    /  2:      ....
- -6    /  3:      ....
- -4    /  4:  0.100000
- -2    /  5:  0.900000
- 0     /  6:      ....
- 2     /  7:      ....
- 4     /  8:      ....
- 6     /  9:      ....
- 8     / 10:      ....
- 10    / 11:      ....
- 
- 
-! transformations requiring gappy data to test
-LIST tgap
-             VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR
-             SUBSET   : 11 points (T)
- -10   /  1:     ....
- -8    /  2: -8.00000
- -6    /  3:     ....
- -4    /  4: -4.00000
- -2    /  5:     ....
- 0     /  6:  0.00000
- 2     /  7:     ....
- 4     /  8:  4.00000
- 6     /  9:     ....
- 8     / 10:  8.00000
- 10    / 11:     ....
-GO bn_negative_t.sub tgap ngd   ! like @nbd
-! bn450_neg_t_trans.sub
- 
-! support routine for bn450_negative_t.jnl
- 
-! call as
-!   GO bn450_neg_t_sub  varname  transform
- 
-! tvar axis runs from -10 to 10 by 1's
- 
-LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tgap[t=-5:5 at ngd]	! neg/pos t endpoints
-             VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR (# of points)
-             T        : -5 to 5 (number of valid)
-          3.00000
-LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tgap[t=-5:-8 at ngd]	! neg/neq t endpoints
-             VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR (# of points)
-             T        : -8 to -5 (number of valid)
-          1.00000
-LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tgap[l=2:7 at ngd]	! neg/pos l endpoints
-             VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR (# of points)
-             T        : -9 to 3 (number of valid)
-          3.00000
-LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tgap[l=2:4 at ngd]	! neg/neg l endpoints
-             VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR (# of points)
-             T        : -9 to -3 (number of valid)
-          2.00000
-LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tgap[l=@ngd]	! unspecified limits (neg/pos)
-             VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR (# of points)
-             T        : -11 to 11 (number of valid)
-          5.00000
- 
-GO bn_negative_t.sub tgap fav  ! like fln (fnr not implemented)
-! bn450_neg_t_trans.sub
- 
-! support routine for bn450_negative_t.jnl
- 
-! call as
-!   GO bn450_neg_t_sub  varname  transform
- 
-! tvar axis runs from -10 to 10 by 1's
- 
-LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tgap[t=-5:5 at fav]	! neg/pos t endpoints
-             VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR
-                        ave-filled by 3 pts on T
-             SUBSET   : 5 points (T)
- -4   / 4: -4.00000
- -2   / 5: -2.00000
- 0    / 6:  0.00000
- 2    / 7:  2.00000
- 4    / 8:  4.00000
-LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tgap[t=-5:-8 at fav]	! neg/neq t endpoints
-             VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR
-                        ave-filled by 3 pts on T
-             SUBSET   : 2 points (T)
- -8   / 2: -8.00000
- -6   / 3: -6.00000
-LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tgap[l=2:7 at fav]	! neg/pos l endpoints
-             VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR
-                        ave-filled by 3 pts on T
-             SUBSET   : 6 points (T)
- -8   / 2: -8.00000
- -6   / 3: -6.00000
- -4   / 4: -4.00000
- -2   / 5: -2.00000
- 0    / 6:  0.00000
- 2    / 7:  2.00000
-LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tgap[l=2:4 at fav]	! neg/neg l endpoints
-             VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR
-                        ave-filled by 3 pts on T
-             SUBSET   : 3 points (T)
- -8   / 2: -8.00000
- -6   / 3: -6.00000
- -4   / 4: -4.00000
-LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tgap[l=@fav]	! unspecified limits (neg/pos)
-             VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR
-                        ave-filled by 3 pts on T
-             SUBSET   : 11 points (T)
- -10   /  1: -8.00000
- -8    /  2: -8.00000
- -6    /  3: -6.00000
- -4    /  4: -4.00000
- -2    /  5: -2.00000
- 0     /  6:  0.00000
- 2     /  7:  2.00000
- 4     /  8:  4.00000
- 6     /  9:  6.00000
- 8     / 10:  8.00000
- 10    / 11:  8.00000
- 
- 
-LIST tvar[t=-2.2 at itp]	! test "@itp"
-             VARIABLE : T[GT=TAX]
-             T        : -2.2 (interpolated)
-         -2.20000
- 
- 
-! ****** test regridding ********
- 
-! source axis
-DEFINE AXIS/t=-9:9:1 tsrc
-LET a  = t[gt=tsrc]
- 
-! destination axis
-DEFINE AXIS/t=-10:10:2 tdst
- 
-! regrid by various means
-LET blin = a[gt=tdst at lin]
-LET bave = a[gt=tdst at ave]
-LET basn = a[gt=tdst at asn]
- 
-! test each of these over various ranges
-GO bn_negative_t.sub blin nul
-! bn450_neg_t_trans.sub
- 
-! support routine for bn450_negative_t.jnl
- 
-! call as
-!   GO bn450_neg_t_sub  varname  transform
- 
-! tvar axis runs from -10 to 10 by 1's
- 
-LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST blin[t=-5:5 at nul]	! neg/pos t endpoints
-             VARIABLE : A[GT=TDST at LIN]
-             SUBSET   : 5 points (T)
- -4   / 4: -4.00000
- -2   / 5: -2.00000
- 0    / 6:  0.00000
- 2    / 7:  2.00000
- 4    / 8:  4.00000
-LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST blin[t=-5:-8 at nul]	! neg/neq t endpoints
-             VARIABLE : A[GT=TDST at LIN]
-             SUBSET   : 2 points (T)
- -8   / 2: -8.00000
- -6   / 3: -6.00000
-LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST blin[l=2:7 at nul]	! neg/pos l endpoints
-             VARIABLE : A[GT=TDST at LIN]
-             SUBSET   : 6 points (T)
- -8   / 2: -8.00000
- -6   / 3: -6.00000
- -4   / 4: -4.00000
- -2   / 5: -2.00000
- 0    / 6:  0.00000
- 2    / 7:  2.00000
-LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST blin[l=2:4 at nul]	! neg/neg l endpoints
-             VARIABLE : A[GT=TDST at LIN]
-             SUBSET   : 3 points (T)
- -8   / 2: -8.00000
- -6   / 3: -6.00000
- -4   / 4: -4.00000
-LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST blin[l=@nul]	! unspecified limits (neg/pos)
-             VARIABLE : A[GT=TDST at LIN]
-             SUBSET   : 11 points (T)
- -10   /  1:     ....
- -8    /  2: -8.00000
- -6    /  3: -6.00000
- -4    /  4: -4.00000
- -2    /  5: -2.00000
- 0     /  6:  0.00000
- 2     /  7:  2.00000
- 4     /  8:  4.00000
- 6     /  9:  6.00000
- 8     / 10:  8.00000
- 10    / 11:     ....
- 
-GO bn_negative_t.sub bave nul
-! bn450_neg_t_trans.sub
- 
-! support routine for bn450_negative_t.jnl
- 
-! call as
-!   GO bn450_neg_t_sub  varname  transform
- 
-! tvar axis runs from -10 to 10 by 1's
- 
-LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST bave[t=-5:5 at nul]	! neg/pos t endpoints
-             VARIABLE : A[GT=TDST at AVE]
-             SUBSET   : 5 points (T)
- -4   / 4: -4.00000
- -2   / 5: -2.00000
- 0    / 6:  0.00000
- 2    / 7:  2.00000
- 4    / 8:  4.00000
-LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST bave[t=-5:-8 at nul]	! neg/neq t endpoints
-             VARIABLE : A[GT=TDST at AVE]
-             SUBSET   : 2 points (T)
- -8   / 2: -8.00000
- -6   / 3: -6.00000
-LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST bave[l=2:7 at nul]	! neg/pos l endpoints
-             VARIABLE : A[GT=TDST at AVE]
-             SUBSET   : 6 points (T)
- -8   / 2: -8.00000
- -6   / 3: -6.00000
- -4   / 4: -4.00000
- -2   / 5: -2.00000
- 0    / 6:  0.00000
- 2    / 7:  2.00000
-LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST bave[l=2:4 at nul]	! neg/neg l endpoints
-             VARIABLE : A[GT=TDST at AVE]
-             SUBSET   : 3 points (T)
- -8   / 2: -8.00000
- -6   / 3: -6.00000
- -4   / 4: -4.00000
-LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST bave[l=@nul]	! unspecified limits (neg/pos)
-             VARIABLE : A[GT=TDST at AVE]
-             SUBSET   : 11 points (T)
- -10   /  1: -9.00000
- -8    /  2: -8.00000
- -6    /  3: -6.00000
- -4    /  4: -4.00000
- -2    /  5: -2.00000
- 0     /  6:  0.00000
- 2     /  7:  2.00000
- 4     /  8:  4.00000
- 6     /  9:  6.00000
- 8     / 10:  8.00000
- 10    / 11:  9.00000
- 
-GO bn_negative_t.sub basn nul
-! bn450_neg_t_trans.sub
- 
-! support routine for bn450_negative_t.jnl
- 
-! call as
-!   GO bn450_neg_t_sub  varname  transform
- 
-! tvar axis runs from -10 to 10 by 1's
- 
-LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST basn[t=-5:5 at nul]	! neg/pos t endpoints
-             VARIABLE : A[GT=TDST at ASN]
-             SUBSET   : 5 points (T)
- -4   / 4: -6.00000
- -2   / 5: -5.00000
- 0    / 6: -4.00000
- 2    / 7: -3.00000
- 4    / 8: -2.00000
-LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST basn[t=-5:-8 at nul]	! neg/neq t endpoints
-             VARIABLE : A[GT=TDST at ASN]
-             SUBSET   : 2 points (T)
- -8   / 2: -8.00000
- -6   / 3: -7.00000
-LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST basn[l=2:7 at nul]	! neg/pos l endpoints
-             VARIABLE : A[GT=TDST at ASN]
-             SUBSET   : 6 points (T)
- -8   / 2: -8.00000
- -6   / 3: -7.00000
- -4   / 4: -6.00000
- -2   / 5: -5.00000
- 0    / 6: -4.00000
- 2    / 7: -3.00000
-LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST basn[l=2:4 at nul]	! neg/neg l endpoints
-             VARIABLE : A[GT=TDST at ASN]
-             SUBSET   : 3 points (T)
- -8   / 2: -8.00000
- -6   / 3: -7.00000
- -4   / 4: -6.00000
-LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST basn[l=@nul]	! unspecified limits (neg/pos)
-             VARIABLE : A[GT=TDST at ASN]
-             SUBSET   : 11 points (T)
- -10   /  1: -9.00000
- -8    /  2: -8.00000
- -6    /  3: -7.00000
- -4    /  4: -6.00000
- -2    /  5: -5.00000
- 0     /  6: -4.00000
- 2     /  7: -3.00000
- 4     /  8: -2.00000
- 6     /  9: -1.00000
- 8     / 10:  0.00000
- 10    / 11:  1.00000
- 
- 
-! true calendar axis
-DEFINE AXIS/t=1-jan-1980:30-jan-1980:24/UNITS=hours tcal
-! we can regrid by association
-LIST a[gt=tcal at asn]
-             VARIABLE : T[GT=TSRC]
-                        regrid: 24 hour on T at ASN
-             SUBSET   : 30 points (T (HOURS))
- 692160   /  1: -9.00000
- 692184   /  2: -8.00000
- 692208   /  3: -7.00000
- 692232   /  4: -6.00000
- 692256   /  5: -5.00000
- 692280   /  6: -4.00000
- 692304   /  7: -3.00000
- 692328   /  8: -2.00000
- 692352   /  9: -1.00000
- 692376   / 10:  0.00000
- 692400   / 11:  1.00000
- 692424   / 12:  2.00000
- 692448   / 13:  3.00000
- 692472   / 14:  4.00000
- 692496   / 15:  5.00000
- 692520   / 16:  6.00000
- 692544   / 17:  7.00000
- 692568   / 18:  8.00000
- 692592   / 19:  9.00000
- 692616   / 20:     ....
- 692640   / 21:     ....
- 692664   / 22:     ....
- 692688   / 23:     ....
- 692712   / 24:     ....
- 692736   / 25:     ....
- 692760   / 26:     ....
- 692784   / 27:     ....
- 692808   / 28:     ....
- 692832   / 29:     ....
- 692856   / 30:     ....
-LIST/t=1-jan-1980:30-jan-1980 a[gt=tcal at asn]
-             VARIABLE : T[GT=TSRC]
-                        regrid: 24 hour on T at ASN
-             SUBSET   : 30 points (T (HOURS))
- 692160   /  1: -9.00000
- 692184   /  2: -8.00000
- 692208   /  3: -7.00000
- 692232   /  4: -6.00000
- 692256   /  5: -5.00000
- 692280   /  6: -4.00000
- 692304   /  7: -3.00000
- 692328   /  8: -2.00000
- 692352   /  9: -1.00000
- 692376   / 10:  0.00000
- 692400   / 11:  1.00000
- 692424   / 12:  2.00000
- 692448   / 13:  3.00000
- 692472   / 14:  4.00000
- 692496   / 15:  5.00000
- 692520   / 16:  6.00000
- 692544   / 17:  7.00000
- 692568   / 18:  8.00000
- 692592   / 19:  9.00000
- 692616   / 20:     ....
- 692640   / 21:     ....
- 692664   / 22:     ....
- 692688   / 23:     ....
- 692712   / 24:     ....
- 692736   / 25:     ....
- 692760   / 26:     ....
- 692784   / 27:     ....
- 692808   / 28:     ....
- 692832   / 29:     ....
- 692856   / 30:     ....
-! but any other regridding operation is nonsense
-SET MODE ignore_error
-LIST a[gt=tcal]		! deliberate error
-             VARIABLE : T[GT=TSRC]
-                        regrid: 24 hour on T
-             SUBSET   : 30 points (T (HOURS))
- 692160   /  1:....
- 692184   /  2:....
- 692208   /  3:....
- 692232   /  4:....
- 692256   /  5:....
- 692280   /  6:....
- 692304   /  7:....
- 692328   /  8:....
- 692352   /  9:....
- 692376   / 10:....
- 692400   / 11:....
- 692424   / 12:....
- 692448   / 13:....
- 692472   / 14:....
- 692496   / 15:....
- 692520   / 16:....
- 692544   / 17:....
- 692568   / 18:....
- 692592   / 19:....
- 692616   / 20:....
- 692640   / 21:....
- 692664   / 22:....
- 692688   / 23:....
- 692712   / 24:....
- 692736   / 25:....
- 692760   / 26:....
- 692784   / 27:....
- 692808   / 28:....
- 692832   / 29:....
- 692856   / 30:....
-CANCEL MODE ignore_error
- 
- 
-!added in bn450 10/97 *kob*
-GO bn_reset
-cancel mode verify
-GO bn_xact_regrid
-! BN450_xact_regrid.jnl
- 
-! 10/97 - test "exact match" regridding
-! wherein destination points are filled only if they exactly match
-! the coordinate of the cooesponding point on the source grid
- 
-! X axis tests
-CANCEL REGION
-GO bn_xact_regrid.sub X
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
-             VARIABLE : X[GX=XSCOARSE]
-                        regrid: 1 delta on X at XACT
-             SUBSET   : 5 points (X)
- 1   / 1:  1.00000
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
- 5   / 5:  5.00000
-LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT]	! coarse data onto fine grid
-             VARIABLE : X[GX=XSCOARSE]
-                        regrid: 0.5 delta on X at XACT
-             SUBSET   : 9 points (X)
- 1    / 1:  1.00000
- 1.5  / 2:     ....
- 2    / 3:  2.00000
- 2.5  / 4:     ....
- 3    / 5:  3.00000
- 3.5  / 6:     ....
- 4    / 7:  4.00000
- 4.5  / 8:     ....
- 5    / 9:  5.00000
-LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT]	! fine data onto coarse grid
-             VARIABLE : X[GX=XSFINE]
-                        regrid: 1 delta on X at XACT
-             SUBSET   : 5 points (X)
- 1   / 1:  1.00000
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
- 5   / 5:  5.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT]   ! non-aligning grid points coarse to fine
-             VARIABLE : X[GX=XSOFFSETBIG]
-                        regrid: 0.5 delta on X at XACT
-             SUBSET   : 9 points (X)
- 1    / 1:     ....
- 1.5  / 2:  1.50000
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
- 4.5  / 8:  4.50000
- 5    / 9:     ....
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
-             VARIABLE : X[GX=XSOFFSETSMALL]
-                        regrid: 0.5 delta on X at XACT
-             SUBSET   : 9 points (X)
- 1    / 1:     ....
- 1.5  / 2:  1.50000
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
- 4.5  / 8:  4.50000
- 5    / 9:     ....
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
-             VARIABLE : X[GX=XSFINEOFFSET]
-                        regrid: 1 delta on X at XACT
-             SUBSET   : 5 points (X)
- 1   / 1:....
- 2   / 2:....
- 3   / 3:....
- 4   / 4:....
- 5   / 5:....
-SET REGION/X=2:4
-GO bn_xact_regrid.sub X
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
-             VARIABLE : X[GX=XSCOARSE]
-                        regrid: 1 delta on X at XACT
-             SUBSET   : 3 points (X)
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
-LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT]	! coarse data onto fine grid
-             VARIABLE : X[GX=XSCOARSE]
-                        regrid: 0.5 delta on X at XACT
-             SUBSET   : 5 points (X)
- 2    / 3:  2.00000
- 2.5  / 4:     ....
- 3    / 5:  3.00000
- 3.5  / 6:     ....
- 4    / 7:  4.00000
-LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT]	! fine data onto coarse grid
-             VARIABLE : X[GX=XSFINE]
-                        regrid: 1 delta on X at XACT
-             SUBSET   : 3 points (X)
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT]   ! non-aligning grid points coarse to fine
-             VARIABLE : X[GX=XSOFFSETBIG]
-                        regrid: 0.5 delta on X at XACT
-             SUBSET   : 5 points (X)
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
-             VARIABLE : X[GX=XSOFFSETSMALL]
-                        regrid: 0.5 delta on X at XACT
-             SUBSET   : 5 points (X)
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
-             VARIABLE : X[GX=XSFINEOFFSET]
-                        regrid: 1 delta on X at XACT
-             SUBSET   : 3 points (X)
- 2   / 2:....
- 3   / 3:....
- 4   / 4:....
-SET REGION/X=1:5
-GO bn_xact_regrid.sub X
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
-             VARIABLE : X[GX=XSCOARSE]
-                        regrid: 1 delta on X at XACT
-             SUBSET   : 5 points (X)
- 1   / 1:  1.00000
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
- 5   / 5:  5.00000
-LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT]	! coarse data onto fine grid
-             VARIABLE : X[GX=XSCOARSE]
-                        regrid: 0.5 delta on X at XACT
-             SUBSET   : 9 points (X)
- 1    / 1:  1.00000
- 1.5  / 2:     ....
- 2    / 3:  2.00000
- 2.5  / 4:     ....
- 3    / 5:  3.00000
- 3.5  / 6:     ....
- 4    / 7:  4.00000
- 4.5  / 8:     ....
- 5    / 9:  5.00000
-LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT]	! fine data onto coarse grid
-             VARIABLE : X[GX=XSFINE]
-                        regrid: 1 delta on X at XACT
-             SUBSET   : 5 points (X)
- 1   / 1:  1.00000
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
- 5   / 5:  5.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT]   ! non-aligning grid points coarse to fine
-             VARIABLE : X[GX=XSOFFSETBIG]
-                        regrid: 0.5 delta on X at XACT
-             SUBSET   : 9 points (X)
- 1    / 1:     ....
- 1.5  / 2:  1.50000
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
- 4.5  / 8:  4.50000
- 5    / 9:     ....
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
-             VARIABLE : X[GX=XSOFFSETSMALL]
-                        regrid: 0.5 delta on X at XACT
-             SUBSET   : 9 points (X)
- 1    / 1:     ....
- 1.5  / 2:  1.50000
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
- 4.5  / 8:  4.50000
- 5    / 9:     ....
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
-             VARIABLE : X[GX=XSFINEOFFSET]
-                        regrid: 1 delta on X at XACT
-             SUBSET   : 5 points (X)
- 1   / 1:....
- 2   / 2:....
- 3   / 3:....
- 4   / 4:....
- 5   / 5:....
-SET REGION/X=1.5:4.5
-GO bn_xact_regrid.sub X
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
-             VARIABLE : X[GX=XSCOARSE]
-                        regrid: 1 delta on X at XACT
-             SUBSET   : 3 points (X)
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
-LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT]	! coarse data onto fine grid
-             VARIABLE : X[GX=XSCOARSE]
-                        regrid: 0.5 delta on X at XACT
-             SUBSET   : 7 points (X)
- 1.5  / 2:     ....
- 2    / 3:  2.00000
- 2.5  / 4:     ....
- 3    / 5:  3.00000
- 3.5  / 6:     ....
- 4    / 7:  4.00000
- 4.5  / 8:     ....
-LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT]	! fine data onto coarse grid
-             VARIABLE : X[GX=XSFINE]
-                        regrid: 1 delta on X at XACT
-             SUBSET   : 3 points (X)
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT]   ! non-aligning grid points coarse to fine
-             VARIABLE : X[GX=XSOFFSETBIG]
-                        regrid: 0.5 delta on X at XACT
-             SUBSET   : 7 points (X)
- 1.5  / 2:  1.50000
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
- 4.5  / 8:  4.50000
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
-             VARIABLE : X[GX=XSOFFSETSMALL]
-                        regrid: 0.5 delta on X at XACT
-             SUBSET   : 7 points (X)
- 1.5  / 2:  1.50000
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
- 4.5  / 8:  4.50000
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
-             VARIABLE : X[GX=XSFINEOFFSET]
-                        regrid: 1 delta on X at XACT
-             SUBSET   : 3 points (X)
- 2   / 2:....
- 3   / 3:....
- 4   / 4:....
-SET REGION/X=0:6
-GO bn_xact_regrid.sub X
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
-             VARIABLE : X[GX=XSCOARSE]
-                        regrid: 1 delta on X at XACT
-             SUBSET   : 5 points (X)
- 1   / 1:  1.00000
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
- 5   / 5:  5.00000
-LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT]	! coarse data onto fine grid
-             VARIABLE : X[GX=XSCOARSE]
-                        regrid: 0.5 delta on X at XACT
-             SUBSET   : 9 points (X)
- 1    / 1:  1.00000
- 1.5  / 2:     ....
- 2    / 3:  2.00000
- 2.5  / 4:     ....
- 3    / 5:  3.00000
- 3.5  / 6:     ....
- 4    / 7:  4.00000
- 4.5  / 8:     ....
- 5    / 9:  5.00000
-LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT]	! fine data onto coarse grid
-             VARIABLE : X[GX=XSFINE]
-                        regrid: 1 delta on X at XACT
-             SUBSET   : 5 points (X)
- 1   / 1:  1.00000
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
- 5   / 5:  5.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT]   ! non-aligning grid points coarse to fine
-             VARIABLE : X[GX=XSOFFSETBIG]
-                        regrid: 0.5 delta on X at XACT
-             SUBSET   : 9 points (X)
- 1    / 1:     ....
- 1.5  / 2:  1.50000
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
- 4.5  / 8:  4.50000
- 5    / 9:     ....
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
-             VARIABLE : X[GX=XSOFFSETSMALL]
-                        regrid: 0.5 delta on X at XACT
-             SUBSET   : 9 points (X)
- 1    / 1:     ....
- 1.5  / 2:  1.50000
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
- 4.5  / 8:  4.50000
- 5    / 9:     ....
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
-             VARIABLE : X[GX=XSFINEOFFSET]
-                        regrid: 1 delta on X at XACT
-             SUBSET   : 5 points (X)
- 1   / 1:....
- 2   / 2:....
- 3   / 3:....
- 4   / 4:....
- 5   / 5:....
- 
-! Y axis tests
-CANCEL REGION
-GO bn_xact_regrid.sub Y
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
-             VARIABLE : Y[GY=YSCOARSE]
-                        regrid: 1 delta on Y at XACT
-             SUBSET   : 5 points (Y)
- 1   / 1:  1.00000
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
- 5   / 5:  5.00000
-LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT]	! coarse data onto fine grid
-             VARIABLE : Y[GY=YSCOARSE]
-                        regrid: 0.5 delta on Y at XACT
-             SUBSET   : 9 points (Y)
- 1    / 1:  1.00000
- 1.5  / 2:     ....
- 2    / 3:  2.00000
- 2.5  / 4:     ....
- 3    / 5:  3.00000
- 3.5  / 6:     ....
- 4    / 7:  4.00000
- 4.5  / 8:     ....
- 5    / 9:  5.00000
-LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT]	! fine data onto coarse grid
-             VARIABLE : Y[GY=YSFINE]
-                        regrid: 1 delta on Y at XACT
-             SUBSET   : 5 points (Y)
- 1   / 1:  1.00000
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
- 5   / 5:  5.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT]   ! non-aligning grid points coarse to fine
-             VARIABLE : Y[GY=YSOFFSETBIG]
-                        regrid: 0.5 delta on Y at XACT
-             SUBSET   : 9 points (Y)
- 1    / 1:     ....
- 1.5  / 2:  1.50000
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
- 4.5  / 8:  4.50000
- 5    / 9:     ....
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
-             VARIABLE : Y[GY=YSOFFSETSMALL]
-                        regrid: 0.5 delta on Y at XACT
-             SUBSET   : 9 points (Y)
- 1    / 1:     ....
- 1.5  / 2:  1.50000
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
- 4.5  / 8:  4.50000
- 5    / 9:     ....
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
-             VARIABLE : Y[GY=YSFINEOFFSET]
-                        regrid: 1 delta on Y at XACT
-             SUBSET   : 5 points (Y)
- 1   / 1:....
- 2   / 2:....
- 3   / 3:....
- 4   / 4:....
- 5   / 5:....
-SET REGION/Y=2:4
-GO bn_xact_regrid.sub Y
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
-             VARIABLE : Y[GY=YSCOARSE]
-                        regrid: 1 delta on Y at XACT
-             SUBSET   : 3 points (Y)
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
-LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT]	! coarse data onto fine grid
-             VARIABLE : Y[GY=YSCOARSE]
-                        regrid: 0.5 delta on Y at XACT
-             SUBSET   : 5 points (Y)
- 2    / 3:  2.00000
- 2.5  / 4:     ....
- 3    / 5:  3.00000
- 3.5  / 6:     ....
- 4    / 7:  4.00000
-LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT]	! fine data onto coarse grid
-             VARIABLE : Y[GY=YSFINE]
-                        regrid: 1 delta on Y at XACT
-             SUBSET   : 3 points (Y)
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT]   ! non-aligning grid points coarse to fine
-             VARIABLE : Y[GY=YSOFFSETBIG]
-                        regrid: 0.5 delta on Y at XACT
-             SUBSET   : 5 points (Y)
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
-             VARIABLE : Y[GY=YSOFFSETSMALL]
-                        regrid: 0.5 delta on Y at XACT
-             SUBSET   : 5 points (Y)
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
-             VARIABLE : Y[GY=YSFINEOFFSET]
-                        regrid: 1 delta on Y at XACT
-             SUBSET   : 3 points (Y)
- 2   / 2:....
- 3   / 3:....
- 4   / 4:....
-SET REGION/Y=1:5
-GO bn_xact_regrid.sub Y
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
-             VARIABLE : Y[GY=YSCOARSE]
-                        regrid: 1 delta on Y at XACT
-             SUBSET   : 5 points (Y)
- 1   / 1:  1.00000
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
- 5   / 5:  5.00000
-LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT]	! coarse data onto fine grid
-             VARIABLE : Y[GY=YSCOARSE]
-                        regrid: 0.5 delta on Y at XACT
-             SUBSET   : 9 points (Y)
- 1    / 1:  1.00000
- 1.5  / 2:     ....
- 2    / 3:  2.00000
- 2.5  / 4:     ....
- 3    / 5:  3.00000
- 3.5  / 6:     ....
- 4    / 7:  4.00000
- 4.5  / 8:     ....
- 5    / 9:  5.00000
-LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT]	! fine data onto coarse grid
-             VARIABLE : Y[GY=YSFINE]
-                        regrid: 1 delta on Y at XACT
-             SUBSET   : 5 points (Y)
- 1   / 1:  1.00000
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
- 5   / 5:  5.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT]   ! non-aligning grid points coarse to fine
-             VARIABLE : Y[GY=YSOFFSETBIG]
-                        regrid: 0.5 delta on Y at XACT
-             SUBSET   : 9 points (Y)
- 1    / 1:     ....
- 1.5  / 2:  1.50000
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
- 4.5  / 8:  4.50000
- 5    / 9:     ....
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
-             VARIABLE : Y[GY=YSOFFSETSMALL]
-                        regrid: 0.5 delta on Y at XACT
-             SUBSET   : 9 points (Y)
- 1    / 1:     ....
- 1.5  / 2:  1.50000
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
- 4.5  / 8:  4.50000
- 5    / 9:     ....
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
-             VARIABLE : Y[GY=YSFINEOFFSET]
-                        regrid: 1 delta on Y at XACT
-             SUBSET   : 5 points (Y)
- 1   / 1:....
- 2   / 2:....
- 3   / 3:....
- 4   / 4:....
- 5   / 5:....
-SET REGION/Y=1.5:4.5
-GO bn_xact_regrid.sub Y
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
-             VARIABLE : Y[GY=YSCOARSE]
-                        regrid: 1 delta on Y at XACT
-             SUBSET   : 3 points (Y)
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
-LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT]	! coarse data onto fine grid
-             VARIABLE : Y[GY=YSCOARSE]
-                        regrid: 0.5 delta on Y at XACT
-             SUBSET   : 7 points (Y)
- 1.5  / 2:     ....
- 2    / 3:  2.00000
- 2.5  / 4:     ....
- 3    / 5:  3.00000
- 3.5  / 6:     ....
- 4    / 7:  4.00000
- 4.5  / 8:     ....
-LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT]	! fine data onto coarse grid
-             VARIABLE : Y[GY=YSFINE]
-                        regrid: 1 delta on Y at XACT
-             SUBSET   : 3 points (Y)
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT]   ! non-aligning grid points coarse to fine
-             VARIABLE : Y[GY=YSOFFSETBIG]
-                        regrid: 0.5 delta on Y at XACT
-             SUBSET   : 7 points (Y)
- 1.5  / 2:  1.50000
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
- 4.5  / 8:  4.50000
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
-             VARIABLE : Y[GY=YSOFFSETSMALL]
-                        regrid: 0.5 delta on Y at XACT
-             SUBSET   : 7 points (Y)
- 1.5  / 2:  1.50000
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
- 4.5  / 8:  4.50000
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
-             VARIABLE : Y[GY=YSFINEOFFSET]
-                        regrid: 1 delta on Y at XACT
-             SUBSET   : 3 points (Y)
- 2   / 2:....
- 3   / 3:....
- 4   / 4:....
-SET REGION/Y=0:6
-GO bn_xact_regrid.sub Y
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
-             VARIABLE : Y[GY=YSCOARSE]
-                        regrid: 1 delta on Y at XACT
-             SUBSET   : 5 points (Y)
- 1   / 1:  1.00000
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
- 5   / 5:  5.00000
-LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT]	! coarse data onto fine grid
-             VARIABLE : Y[GY=YSCOARSE]
-                        regrid: 0.5 delta on Y at XACT
-             SUBSET   : 9 points (Y)
- 1    / 1:  1.00000
- 1.5  / 2:     ....
- 2    / 3:  2.00000
- 2.5  / 4:     ....
- 3    / 5:  3.00000
- 3.5  / 6:     ....
- 4    / 7:  4.00000
- 4.5  / 8:     ....
- 5    / 9:  5.00000
-LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT]	! fine data onto coarse grid
-             VARIABLE : Y[GY=YSFINE]
-                        regrid: 1 delta on Y at XACT
-             SUBSET   : 5 points (Y)
- 1   / 1:  1.00000
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
- 5   / 5:  5.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT]   ! non-aligning grid points coarse to fine
-             VARIABLE : Y[GY=YSOFFSETBIG]
-                        regrid: 0.5 delta on Y at XACT
-             SUBSET   : 9 points (Y)
- 1    / 1:     ....
- 1.5  / 2:  1.50000
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
- 4.5  / 8:  4.50000
- 5    / 9:     ....
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
-             VARIABLE : Y[GY=YSOFFSETSMALL]
-                        regrid: 0.5 delta on Y at XACT
-             SUBSET   : 9 points (Y)
- 1    / 1:     ....
- 1.5  / 2:  1.50000
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
- 4.5  / 8:  4.50000
- 5    / 9:     ....
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
-             VARIABLE : Y[GY=YSFINEOFFSET]
-                        regrid: 1 delta on Y at XACT
-             SUBSET   : 5 points (Y)
- 1   / 1:....
- 2   / 2:....
- 3   / 3:....
- 4   / 4:....
- 5   / 5:....
- 
-! Z axis tests
-CANCEL REGION
-GO bn_xact_regrid.sub Z
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
-             VARIABLE : Z[GZ=ZSCOARSE]
-                        regrid: 1 delta on Z at XACT
-             SUBSET   : 5 points (Z)
- 1   / 1:  1.00000
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
- 5   / 5:  5.00000
-LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT]	! coarse data onto fine grid
-             VARIABLE : Z[GZ=ZSCOARSE]
-                        regrid: 0.5 delta on Z at XACT
-             SUBSET   : 9 points (Z)
- 1    / 1:  1.00000
- 1.5  / 2:     ....
- 2    / 3:  2.00000
- 2.5  / 4:     ....
- 3    / 5:  3.00000
- 3.5  / 6:     ....
- 4    / 7:  4.00000
- 4.5  / 8:     ....
- 5    / 9:  5.00000
-LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT]	! fine data onto coarse grid
-             VARIABLE : Z[GZ=ZSFINE]
-                        regrid: 1 delta on Z at XACT
-             SUBSET   : 5 points (Z)
- 1   / 1:  1.00000
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
- 5   / 5:  5.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT]   ! non-aligning grid points coarse to fine
-             VARIABLE : Z[GZ=ZSOFFSETBIG]
-                        regrid: 0.5 delta on Z at XACT
-             SUBSET   : 9 points (Z)
- 1    / 1:     ....
- 1.5  / 2:  1.50000
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
- 4.5  / 8:  4.50000
- 5    / 9:     ....
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
-             VARIABLE : Z[GZ=ZSOFFSETSMALL]
-                        regrid: 0.5 delta on Z at XACT
-             SUBSET   : 9 points (Z)
- 1    / 1:     ....
- 1.5  / 2:  1.50000
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
- 4.5  / 8:  4.50000
- 5    / 9:     ....
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
-             VARIABLE : Z[GZ=ZSFINEOFFSET]
-                        regrid: 1 delta on Z at XACT
-             SUBSET   : 5 points (Z)
- 1   / 1:....
- 2   / 2:....
- 3   / 3:....
- 4   / 4:....
- 5   / 5:....
-SET REGION/Z=2:4
-GO bn_xact_regrid.sub Z
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
-             VARIABLE : Z[GZ=ZSCOARSE]
-                        regrid: 1 delta on Z at XACT
-             SUBSET   : 3 points (Z)
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
-LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT]	! coarse data onto fine grid
-             VARIABLE : Z[GZ=ZSCOARSE]
-                        regrid: 0.5 delta on Z at XACT
-             SUBSET   : 5 points (Z)
- 2    / 3:  2.00000
- 2.5  / 4:     ....
- 3    / 5:  3.00000
- 3.5  / 6:     ....
- 4    / 7:  4.00000
-LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT]	! fine data onto coarse grid
-             VARIABLE : Z[GZ=ZSFINE]
-                        regrid: 1 delta on Z at XACT
-             SUBSET   : 3 points (Z)
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT]   ! non-aligning grid points coarse to fine
-             VARIABLE : Z[GZ=ZSOFFSETBIG]
-                        regrid: 0.5 delta on Z at XACT
-             SUBSET   : 5 points (Z)
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
-             VARIABLE : Z[GZ=ZSOFFSETSMALL]
-                        regrid: 0.5 delta on Z at XACT
-             SUBSET   : 5 points (Z)
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
-             VARIABLE : Z[GZ=ZSFINEOFFSET]
-                        regrid: 1 delta on Z at XACT
-             SUBSET   : 3 points (Z)
- 2   / 2:....
- 3   / 3:....
- 4   / 4:....
-SET REGION/Z=1:5
-GO bn_xact_regrid.sub Z
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
-             VARIABLE : Z[GZ=ZSCOARSE]
-                        regrid: 1 delta on Z at XACT
-             SUBSET   : 5 points (Z)
- 1   / 1:  1.00000
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
- 5   / 5:  5.00000
-LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT]	! coarse data onto fine grid
-             VARIABLE : Z[GZ=ZSCOARSE]
-                        regrid: 0.5 delta on Z at XACT
-             SUBSET   : 9 points (Z)
- 1    / 1:  1.00000
- 1.5  / 2:     ....
- 2    / 3:  2.00000
- 2.5  / 4:     ....
- 3    / 5:  3.00000
- 3.5  / 6:     ....
- 4    / 7:  4.00000
- 4.5  / 8:     ....
- 5    / 9:  5.00000
-LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT]	! fine data onto coarse grid
-             VARIABLE : Z[GZ=ZSFINE]
-                        regrid: 1 delta on Z at XACT
-             SUBSET   : 5 points (Z)
- 1   / 1:  1.00000
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
- 5   / 5:  5.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT]   ! non-aligning grid points coarse to fine
-             VARIABLE : Z[GZ=ZSOFFSETBIG]
-                        regrid: 0.5 delta on Z at XACT
-             SUBSET   : 9 points (Z)
- 1    / 1:     ....
- 1.5  / 2:  1.50000
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
- 4.5  / 8:  4.50000
- 5    / 9:     ....
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
-             VARIABLE : Z[GZ=ZSOFFSETSMALL]
-                        regrid: 0.5 delta on Z at XACT
-             SUBSET   : 9 points (Z)
- 1    / 1:     ....
- 1.5  / 2:  1.50000
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
- 4.5  / 8:  4.50000
- 5    / 9:     ....
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
-             VARIABLE : Z[GZ=ZSFINEOFFSET]
-                        regrid: 1 delta on Z at XACT
-             SUBSET   : 5 points (Z)
- 1   / 1:....
- 2   / 2:....
- 3   / 3:....
- 4   / 4:....
- 5   / 5:....
-SET REGION/Z=1.5:4.5
-GO bn_xact_regrid.sub Z
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
-             VARIABLE : Z[GZ=ZSCOARSE]
-                        regrid: 1 delta on Z at XACT
-             SUBSET   : 3 points (Z)
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
-LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT]	! coarse data onto fine grid
-             VARIABLE : Z[GZ=ZSCOARSE]
-                        regrid: 0.5 delta on Z at XACT
-             SUBSET   : 7 points (Z)
- 1.5  / 2:     ....
- 2    / 3:  2.00000
- 2.5  / 4:     ....
- 3    / 5:  3.00000
- 3.5  / 6:     ....
- 4    / 7:  4.00000
- 4.5  / 8:     ....
-LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT]	! fine data onto coarse grid
-             VARIABLE : Z[GZ=ZSFINE]
-                        regrid: 1 delta on Z at XACT
-             SUBSET   : 3 points (Z)
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT]   ! non-aligning grid points coarse to fine
-             VARIABLE : Z[GZ=ZSOFFSETBIG]
-                        regrid: 0.5 delta on Z at XACT
-             SUBSET   : 7 points (Z)
- 1.5  / 2:  1.50000
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
- 4.5  / 8:  4.50000
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
-             VARIABLE : Z[GZ=ZSOFFSETSMALL]
-                        regrid: 0.5 delta on Z at XACT
-             SUBSET   : 7 points (Z)
- 1.5  / 2:  1.50000
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
- 4.5  / 8:  4.50000
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
-             VARIABLE : Z[GZ=ZSFINEOFFSET]
-                        regrid: 1 delta on Z at XACT
-             SUBSET   : 3 points (Z)
- 2   / 2:....
- 3   / 3:....
- 4   / 4:....
-SET REGION/Z=0:6
-GO bn_xact_regrid.sub Z
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
-             VARIABLE : Z[GZ=ZSCOARSE]
-                        regrid: 1 delta on Z at XACT
-             SUBSET   : 5 points (Z)
- 1   / 1:  1.00000
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
- 5   / 5:  5.00000
-LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT]	! coarse data onto fine grid
-             VARIABLE : Z[GZ=ZSCOARSE]
-                        regrid: 0.5 delta on Z at XACT
-             SUBSET   : 9 points (Z)
- 1    / 1:  1.00000
- 1.5  / 2:     ....
- 2    / 3:  2.00000
- 2.5  / 4:     ....
- 3    / 5:  3.00000
- 3.5  / 6:     ....
- 4    / 7:  4.00000
- 4.5  / 8:     ....
- 5    / 9:  5.00000
-LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT]	! fine data onto coarse grid
-             VARIABLE : Z[GZ=ZSFINE]
-                        regrid: 1 delta on Z at XACT
-             SUBSET   : 5 points (Z)
- 1   / 1:  1.00000
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
- 5   / 5:  5.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT]   ! non-aligning grid points coarse to fine
-             VARIABLE : Z[GZ=ZSOFFSETBIG]
-                        regrid: 0.5 delta on Z at XACT
-             SUBSET   : 9 points (Z)
- 1    / 1:     ....
- 1.5  / 2:  1.50000
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
- 4.5  / 8:  4.50000
- 5    / 9:     ....
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
-             VARIABLE : Z[GZ=ZSOFFSETSMALL]
-                        regrid: 0.5 delta on Z at XACT
-             SUBSET   : 9 points (Z)
- 1    / 1:     ....
- 1.5  / 2:  1.50000
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
- 4.5  / 8:  4.50000
- 5    / 9:     ....
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
-             VARIABLE : Z[GZ=ZSFINEOFFSET]
-                        regrid: 1 delta on Z at XACT
-             SUBSET   : 5 points (Z)
- 1   / 1:....
- 2   / 2:....
- 3   / 3:....
- 4   / 4:....
- 5   / 5:....
- 
-! T axis tests
-CANCEL REGION
-GO bn_xact_regrid.sub T
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
-             VARIABLE : T[GT=TSCOARSE]
-                        regrid: 1 delta on T at XACT
-             SUBSET   : 5 points (T)
- 1   / 1:  1.00000
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
- 5   / 5:  5.00000
-LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT]	! coarse data onto fine grid
-             VARIABLE : T[GT=TSCOARSE]
-                        regrid: 0.5 delta on T at XACT
-             SUBSET   : 9 points (T)
- 1    / 1:  1.00000
- 1.5  / 2:     ....
- 2    / 3:  2.00000
- 2.5  / 4:     ....
- 3    / 5:  3.00000
- 3.5  / 6:     ....
- 4    / 7:  4.00000
- 4.5  / 8:     ....
- 5    / 9:  5.00000
-LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT]	! fine data onto coarse grid
-             VARIABLE : T[GT=TSFINE]
-                        regrid: 1 delta on T at XACT
-             SUBSET   : 5 points (T)
- 1   / 1:  1.00000
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
- 5   / 5:  5.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT]   ! non-aligning grid points coarse to fine
-             VARIABLE : T[GT=TSOFFSETBIG]
-                        regrid: 0.5 delta on T at XACT
-             SUBSET   : 9 points (T)
- 1    / 1:     ....
- 1.5  / 2:  1.50000
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
- 4.5  / 8:  4.50000
- 5    / 9:     ....
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
-             VARIABLE : T[GT=TSOFFSETSMALL]
-                        regrid: 0.5 delta on T at XACT
-             SUBSET   : 9 points (T)
- 1    / 1:     ....
- 1.5  / 2:  1.50000
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
- 4.5  / 8:  4.50000
- 5    / 9:     ....
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
-             VARIABLE : T[GT=TSFINEOFFSET]
-                        regrid: 1 delta on T at XACT
-             SUBSET   : 5 points (T)
- 1   / 1:....
- 2   / 2:....
- 3   / 3:....
- 4   / 4:....
- 5   / 5:....
-SET REGION/T=2:4
-GO bn_xact_regrid.sub T
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
-             VARIABLE : T[GT=TSCOARSE]
-                        regrid: 1 delta on T at XACT
-             SUBSET   : 3 points (T)
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
-LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT]	! coarse data onto fine grid
-             VARIABLE : T[GT=TSCOARSE]
-                        regrid: 0.5 delta on T at XACT
-             SUBSET   : 5 points (T)
- 2    / 3:  2.00000
- 2.5  / 4:     ....
- 3    / 5:  3.00000
- 3.5  / 6:     ....
- 4    / 7:  4.00000
-LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT]	! fine data onto coarse grid
-             VARIABLE : T[GT=TSFINE]
-                        regrid: 1 delta on T at XACT
-             SUBSET   : 3 points (T)
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT]   ! non-aligning grid points coarse to fine
-             VARIABLE : T[GT=TSOFFSETBIG]
-                        regrid: 0.5 delta on T at XACT
-             SUBSET   : 5 points (T)
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
-             VARIABLE : T[GT=TSOFFSETSMALL]
-                        regrid: 0.5 delta on T at XACT
-             SUBSET   : 5 points (T)
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
-             VARIABLE : T[GT=TSFINEOFFSET]
-                        regrid: 1 delta on T at XACT
-             SUBSET   : 3 points (T)
- 2   / 2:....
- 3   / 3:....
- 4   / 4:....
-SET REGION/T=1:5
-GO bn_xact_regrid.sub T
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
-             VARIABLE : T[GT=TSCOARSE]
-                        regrid: 1 delta on T at XACT
-             SUBSET   : 5 points (T)
- 1   / 1:  1.00000
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
- 5   / 5:  5.00000
-LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT]	! coarse data onto fine grid
-             VARIABLE : T[GT=TSCOARSE]
-                        regrid: 0.5 delta on T at XACT
-             SUBSET   : 9 points (T)
- 1    / 1:  1.00000
- 1.5  / 2:     ....
- 2    / 3:  2.00000
- 2.5  / 4:     ....
- 3    / 5:  3.00000
- 3.5  / 6:     ....
- 4    / 7:  4.00000
- 4.5  / 8:     ....
- 5    / 9:  5.00000
-LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT]	! fine data onto coarse grid
-             VARIABLE : T[GT=TSFINE]
-                        regrid: 1 delta on T at XACT
-             SUBSET   : 5 points (T)
- 1   / 1:  1.00000
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
- 5   / 5:  5.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT]   ! non-aligning grid points coarse to fine
-             VARIABLE : T[GT=TSOFFSETBIG]
-                        regrid: 0.5 delta on T at XACT
-             SUBSET   : 9 points (T)
- 1    / 1:     ....
- 1.5  / 2:  1.50000
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
- 4.5  / 8:  4.50000
- 5    / 9:     ....
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
-             VARIABLE : T[GT=TSOFFSETSMALL]
-                        regrid: 0.5 delta on T at XACT
-             SUBSET   : 9 points (T)
- 1    / 1:     ....
- 1.5  / 2:  1.50000
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
- 4.5  / 8:  4.50000
- 5    / 9:     ....
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
-             VARIABLE : T[GT=TSFINEOFFSET]
-                        regrid: 1 delta on T at XACT
-             SUBSET   : 5 points (T)
- 1   / 1:....
- 2   / 2:....
- 3   / 3:....
- 4   / 4:....
- 5   / 5:....
-SET REGION/T=1.5:4.5
-GO bn_xact_regrid.sub T
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
-             VARIABLE : T[GT=TSCOARSE]
-                        regrid: 1 delta on T at XACT
-             SUBSET   : 3 points (T)
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
-LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT]	! coarse data onto fine grid
-             VARIABLE : T[GT=TSCOARSE]
-                        regrid: 0.5 delta on T at XACT
-             SUBSET   : 7 points (T)
- 1.5  / 2:     ....
- 2    / 3:  2.00000
- 2.5  / 4:     ....
- 3    / 5:  3.00000
- 3.5  / 6:     ....
- 4    / 7:  4.00000
- 4.5  / 8:     ....
-LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT]	! fine data onto coarse grid
-             VARIABLE : T[GT=TSFINE]
-                        regrid: 1 delta on T at XACT
-             SUBSET   : 3 points (T)
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT]   ! non-aligning grid points coarse to fine
-             VARIABLE : T[GT=TSOFFSETBIG]
-                        regrid: 0.5 delta on T at XACT
-             SUBSET   : 7 points (T)
- 1.5  / 2:  1.50000
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
- 4.5  / 8:  4.50000
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
-             VARIABLE : T[GT=TSOFFSETSMALL]
-                        regrid: 0.5 delta on T at XACT
-             SUBSET   : 7 points (T)
- 1.5  / 2:  1.50000
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
- 4.5  / 8:  4.50000
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
-             VARIABLE : T[GT=TSFINEOFFSET]
-                        regrid: 1 delta on T at XACT
-             SUBSET   : 3 points (T)
- 2   / 2:....
- 3   / 3:....
- 4   / 4:....
-SET REGION/T=0:6
-GO bn_xact_regrid.sub T
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
-             VARIABLE : T[GT=TSCOARSE]
-                        regrid: 1 delta on T at XACT
-             SUBSET   : 5 points (T)
- 1   / 1:  1.00000
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
- 5   / 5:  5.00000
-LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT]	! coarse data onto fine grid
-             VARIABLE : T[GT=TSCOARSE]
-                        regrid: 0.5 delta on T at XACT
-             SUBSET   : 9 points (T)
- 1    / 1:  1.00000
- 1.5  / 2:     ....
- 2    / 3:  2.00000
- 2.5  / 4:     ....
- 3    / 5:  3.00000
- 3.5  / 6:     ....
- 4    / 7:  4.00000
- 4.5  / 8:     ....
- 5    / 9:  5.00000
-LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT]	! fine data onto coarse grid
-             VARIABLE : T[GT=TSFINE]
-                        regrid: 1 delta on T at XACT
-             SUBSET   : 5 points (T)
- 1   / 1:  1.00000
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
- 5   / 5:  5.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT]   ! non-aligning grid points coarse to fine
-             VARIABLE : T[GT=TSOFFSETBIG]
-                        regrid: 0.5 delta on T at XACT
-             SUBSET   : 9 points (T)
- 1    / 1:     ....
- 1.5  / 2:  1.50000
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
- 4.5  / 8:  4.50000
- 5    / 9:     ....
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
-             VARIABLE : T[GT=TSOFFSETSMALL]
-                        regrid: 0.5 delta on T at XACT
-             SUBSET   : 9 points (T)
- 1    / 1:     ....
- 1.5  / 2:  1.50000
- 2    / 3:     ....
- 2.5  / 4:  2.50000
- 3    / 5:     ....
- 3.5  / 6:  3.50000
- 4    / 7:     ....
- 4.5  / 8:  4.50000
- 5    / 9:     ....
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
-             VARIABLE : T[GT=TSFINEOFFSET]
-                        regrid: 1 delta on T at XACT
-             SUBSET   : 5 points (T)
- 1   / 1:....
- 2   / 2:....
- 3   / 3:....
- 4   / 4:....
- 5   / 5:....
- 
- 
- 
-!added in bn450 11/97 *kob*
-! replace w/ bn500 *kob* 5/99
-GO bn_reset
-cancel mode verify
-GO bn_gc_functions
-! bn500_gc_functions.jnl
- 
-! 10/97 - first version - test GC functions released in V4.9
-! 3/98 - added single test of a dynamic axis passed to GC fcn
-! Note: OFFSET VALUES NOT YET TESTED
- 
-! 2/99 "UNRAVEL" renamed to XSEQUENCE
-! 1/00 changes to RESHAPE tests ==> "K=1" removed
- 
-CANCEL REGION
-CANCEL VIEWPORTS
- 
-! XSEQUENCE function
-LET v = X[x=1:4:1] + Y[Y=.1:.4:.1]
-LIST v
-             VARIABLE : X[X=1:4:1] + Y[Y=.1:.4:.1]
-             SUBSET   : 4 by 4 points (X-Y)
-               1        2        3        4     
-               1        2        3        4
- 0.1  / 1:  1.10000  2.10000  3.10000  4.10000
- 0.2  / 2:  1.20000  2.20000  3.20000  4.20000
- 0.3  / 3:  1.30000  2.30000  3.30000  4.30000
- 0.4  / 4:  1.40000  2.40000  3.40000  4.40000
-LIST SIN(v)	! preserves source grid
-             VARIABLE : SIN(V)
-             SUBSET   : 4 by 4 points (X-Y)
-               1         2         3         4      
-                1         2         3         4
- 0.1  / 1:  0.891207  0.863209  0.041581 -0.818277
- 0.2  / 2:  0.932039  0.808496 -0.058374 -0.871576
- 0.3  / 3:  0.963558  0.745705 -0.157746 -0.916166
- 0.4  / 4:  0.985450  0.675463 -0.255541 -0.951602
-LIST XSEQUENCE(v)	! replaces source grid
-             VARIABLE : XSEQUENCE(V)
-             SUBSET   : 16 points (X)
- 1    /  1:  1.10000
- 2    /  2:  2.10000
- 3    /  3:  3.10000
- 4    /  4:  4.10000
- 5    /  5:  1.20000
- 6    /  6:  2.20000
- 7    /  7:  3.20000
- 8    /  8:  4.20000
- 9    /  9:  1.30000
- 10   / 10:  2.30000
- 11   / 11:  3.30000
- 12   / 12:  4.30000
- 13   / 13:  1.40000
- 14   / 14:  2.40000
- 15   / 15:  3.40000
- 16   / 16:  4.40000
-STAT v, XSEQUENCE(v)
- 
-             X[X=1:4:1] + Y[Y=.1:.4:.1]
-             X: 0.5 to 4.5
-             Y: 0.05 to 0.45
-             Z:  N/A
-             T:  N/A
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 16 (4*4*1*1*1*1)
- # flagged as bad  data: 0
- Minimum value: 1.1
- Maximum value: 4.4
- Mean    value: 2.75 (unweighted average)
- Standard deviation: 1.1605
- 
-             XSEQUENCE(V)
-             X: 0.5 to 16.5
-             Y:  N/A
-             Z:  N/A
-             T:  N/A
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 16 (16*1*1*1*1*1)
- # flagged as bad  data: 0
- Minimum value: 1.1
- Maximum value: 4.4
- Mean    value: 2.75 (unweighted average)
- Standard deviation: 1.1605
- 
-! check regions specified on source and on destination
-LIST/I=3:5 XSEQUENCE(v)	! destination region
-             VARIABLE : XSEQUENCE(V)
-             SUBSET   : 3 points (X)
- 3   / 3:  3.10000
- 4   / 4:  4.10000
- 5   / 5:  1.20000
- 
-LIST v[I=2:3,J=2:3]
-             VARIABLE : X[X=1:4:1] + Y[Y=.1:.4:.1]
-             SUBSET   : 2 by 2 points (X-Y)
-               2        3     
-               2        3
- 0.2  / 2:  2.20000  3.20000
- 0.3  / 3:  2.30000  3.30000
-LIST XSEQUENCE( v[I=2:3,J=2:3] )
-             VARIABLE : XSEQUENCE( V[I=2:3,J=2:3] )
-             SUBSET   : 4 points (X)
- 1   / 1:  2.20000
- 2   / 2:  3.20000
- 3   / 3:  2.30000
- 4   / 4:  3.30000
-LIST/I=2:3 XSEQUENCE( v[I=2:3,J=2:3] )
-             VARIABLE : XSEQUENCE( V[I=2:3,J=2:3] )
-             SUBSET   : 2 points (X)
- 2   / 2:  3.20000
- 3   / 3:  2.30000
- 
-! check grid interactions where XSEQUENCE is inside of expression
-LET a = XSEQUENCE( v[I=2:3,J=2:3] ) + Z[Z=.01:.02:.01]
-LIST a
-             VARIABLE : XSEQUENCE( V[I=2:3,J=2:3] ) + Z[Z=.01:.02:.01]
-             SUBSET   : 4 by 2 points (X-Z)
-                1        2        3        4     
-                1        2        3        4
- 0.01  / 1:  2.21000  3.21000  2.31000  3.31000
- 0.02  / 2:  2.22000  3.22000  2.32000  3.32000
- 
-! RESHAPE function
-DEFINE AXIS/X=1:4:1 x4
-DEFINE AXIS/Y=.1:.4:.1 y4
-DEFINE AXIS/Z=.01:.04:.01 z4
-DEFINE AXIS/T=.001:.004:.001 T4
-DEFINE GRID/X=x4/Y=y4/Z=z4/T=t4 g4d
-LET v4d = X[x=1:3:1] + Y[Y=.1:.3:.1] + Z[Z=.01:.03:.01] + T[T=.001:.003:.001]
-LIST v4d
-             VARIABLE : X[X=1:3:1] + Y[Y=.1:.3:.1] + Z[Z=.01:.03:.01] + T[T=.001:.003:.001]
-             SUBSET   : 3 by 3 by 3 by 3 points (X-Y-Z-T)
-               1        2        3     
-               1        2        3
- ---- L:1 T:   0.001
- ---- K:1 Z:   0.01
- 0.1  / 1:  1.11100  2.11100  3.11100
- 0.2  / 2:  1.21100  2.21100  3.21100
- 0.3  / 3:  1.31100  2.31100  3.31100
- ---- K:2 Z:   0.02
- 0.1  / 1:  1.12100  2.12100  3.12100
- 0.2  / 2:  1.22100  2.22100  3.22100
- 0.3  / 3:  1.32100  2.32100  3.32100
- ---- K:3 Z:   0.03
- 0.1  / 1:  1.13100  2.13100  3.13100
- 0.2  / 2:  1.23100  2.23100  3.23100
- 0.3  / 3:  1.33100  2.33100  3.33100
- ---- L:2 T:   0.002
- ---- K:1 Z:   0.01
- 0.1  / 1:  1.11200  2.11200  3.11200
- 0.2  / 2:  1.21200  2.21200  3.21200
- 0.3  / 3:  1.31200  2.31200  3.31200
- ---- K:2 Z:   0.02
- 0.1  / 1:  1.12200  2.12200  3.12200
- 0.2  / 2:  1.22200  2.22200  3.22200
- 0.3  / 3:  1.32200  2.32200  3.32200
- ---- K:3 Z:   0.03
- 0.1  / 1:  1.13200  2.13200  3.13200
- 0.2  / 2:  1.23200  2.23200  3.23200
- 0.3  / 3:  1.33200  2.33200  3.33200
- ---- L:3 T:   0.003
- ---- K:1 Z:   0.01
- 0.1  / 1:  1.11300  2.11300  3.11300
- 0.2  / 2:  1.21300  2.21300  3.21300
- 0.3  / 3:  1.31300  2.31300  3.31300
- ---- K:2 Z:   0.02
- 0.1  / 1:  1.12300  2.12300  3.12300
- 0.2  / 2:  1.22300  2.22300  3.22300
- 0.3  / 3:  1.32300  2.32300  3.32300
- ---- K:3 Z:   0.03
- 0.1  / 1:  1.13300  2.13300  3.13300
- 0.2  / 2:  1.23300  2.23300  3.23300
- 0.3  / 3:  1.33300  2.33300  3.33300
-LET V3d =  X[x=1:3:1] + Y[Y=.1:.3:.1] + Z[Z=.01:.09:.01]	! same size
-LIST v3d
-             VARIABLE : X[X=1:3:1] + Y[Y=.1:.3:.1] + Z[Z=.01:.09:.01]
-             SUBSET   : 3 by 3 by 9 points (X-Y-Z)
-               1        2        3     
-               1        2        3
- ---- K:1 Z:   0.01
- 0.1  / 1:  1.11000  2.11000  3.11000
- 0.2  / 2:  1.21000  2.21000  3.21000
- 0.3  / 3:  1.31000  2.31000  3.31000
- ---- K:2 Z:   0.02
- 0.1  / 1:  1.12000  2.12000  3.12000
- 0.2  / 2:  1.22000  2.22000  3.22000
- 0.3  / 3:  1.32000  2.32000  3.32000
- ---- K:3 Z:   0.03
- 0.1  / 1:  1.13000  2.13000  3.13000
- 0.2  / 2:  1.23000  2.23000  3.23000
- 0.3  / 3:  1.33000  2.33000  3.33000
- ---- K:4 Z:   0.04
- 0.1  / 1:  1.14000  2.14000  3.14000
- 0.2  / 2:  1.24000  2.24000  3.24000
- 0.3  / 3:  1.34000  2.34000  3.34000
- ---- K:5 Z:   0.05
- 0.1  / 1:  1.15000  2.15000  3.15000
- 0.2  / 2:  1.25000  2.25000  3.25000
- 0.3  / 3:  1.35000  2.35000  3.35000
- ---- K:6 Z:   0.06
- 0.1  / 1:  1.16000  2.16000  3.16000
- 0.2  / 2:  1.26000  2.26000  3.26000
- 0.3  / 3:  1.36000  2.36000  3.36000
- ---- K:7 Z:   0.07
- 0.1  / 1:  1.17000  2.17000  3.17000
- 0.2  / 2:  1.27000  2.27000  3.27000
- 0.3  / 3:  1.37000  2.37000  3.37000
- ---- K:8 Z:   0.08
- 0.1  / 1:  1.18000  2.18000  3.18000
- 0.2  / 2:  1.28000  2.28000  3.28000
- 0.3  / 3:  1.38000  2.38000  3.38000
- ---- K:9 Z:   0.09
- 0.1  / 1:  1.19000  2.19000  3.19000
- 0.2  / 2:  1.29000  2.29000  3.29000
- 0.3  / 3:  1.39000  2.39000  3.39000
-LIST RESHAPE(v4d, v3d)
-             VARIABLE : RESHAPE(V4D, V3D)
-             SUBSET   : 3 by 3 by 9 points (X-Y-Z)
-               1        2        3     
-               1        2        3
- ---- K:1 Z:   0.01
- 0.1  / 1:  1.11100  2.11100  3.11100
- 0.2  / 2:  1.21100  2.21100  3.21100
- 0.3  / 3:  1.31100  2.31100  3.31100
- ---- K:2 Z:   0.02
- 0.1  / 1:  1.12100  2.12100  3.12100
- 0.2  / 2:  1.22100  2.22100  3.22100
- 0.3  / 3:  1.32100  2.32100  3.32100
- ---- K:3 Z:   0.03
- 0.1  / 1:  1.13100  2.13100  3.13100
- 0.2  / 2:  1.23100  2.23100  3.23100
- 0.3  / 3:  1.33100  2.33100  3.33100
- ---- K:4 Z:   0.04
- 0.1  / 1:  1.11200  2.11200  3.11200
- 0.2  / 2:  1.21200  2.21200  3.21200
- 0.3  / 3:  1.31200  2.31200  3.31200
- ---- K:5 Z:   0.05
- 0.1  / 1:  1.12200  2.12200  3.12200
- 0.2  / 2:  1.22200  2.22200  3.22200
- 0.3  / 3:  1.32200  2.32200  3.32200
- ---- K:6 Z:   0.06
- 0.1  / 1:  1.13200  2.13200  3.13200
- 0.2  / 2:  1.23200  2.23200  3.23200
- 0.3  / 3:  1.33200  2.33200  3.33200
- ---- K:7 Z:   0.07
- 0.1  / 1:  1.11300  2.11300  3.11300
- 0.2  / 2:  1.21300  2.21300  3.21300
- 0.3  / 3:  1.31300  2.31300  3.31300
- ---- K:8 Z:   0.08
- 0.1  / 1:  1.12300  2.12300  3.12300
- 0.2  / 2:  1.22300  2.22300  3.22300
- 0.3  / 3:  1.32300  2.32300  3.32300
- ---- K:9 Z:   0.09
- 0.1  / 1:  1.13300  2.13300  3.13300
- 0.2  / 2:  1.23300  2.23300  3.23300
- 0.3  / 3:  1.33300  2.33300  3.33300
-! if source and dest grid share an axis then the region is passed to the arg
-LIST RESHAPE(v4d[i=2:3,j=2:3], v3d)		! I,J preserved
-             VARIABLE : RESHAPE(V4D[I=2:3,J=2:3], V3D)
-             SUBSET   : 2 by 2 by 9 points (X-Y-Z)
-               2        3     
-               2        3
- ---- K:1 Z:   0.01
- 0.2  / 2:  2.21100  3.21100
- 0.3  / 3:  2.31100  3.31100
- ---- K:2 Z:   0.02
- 0.2  / 2:  2.22100  3.22100
- 0.3  / 3:  2.32100  3.32100
- ---- K:3 Z:   0.03
- 0.2  / 2:  2.23100  3.23100
- 0.3  / 3:  2.33100  3.33100
- ---- K:4 Z:   0.04
- 0.2  / 2:  2.21200  3.21200
- 0.3  / 3:  2.31200  3.31200
- ---- K:5 Z:   0.05
- 0.2  / 2:  2.22200  3.22200
- 0.3  / 3:  2.32200  3.32200
- ---- K:6 Z:   0.06
- 0.2  / 2:  2.23200  3.23200
- 0.3  / 3:  2.33200  3.33200
- ---- K:7 Z:   0.07
- 0.2  / 2:  2.21300  3.21300
- 0.3  / 3:  2.31300  3.31300
- ---- K:8 Z:   0.08
- 0.2  / 2:  2.22300  3.22300
- 0.3  / 3:  2.32300  3.32300
- ---- K:9 Z:   0.09
- 0.2  / 2:  2.23300  3.23300
- 0.3  / 3:  2.33300  3.33300
-LIST/k=2:3 RESHAPE(v4d[i=2:3,j=2:3,k=2:3], v3d)	! K,L not preserved
-             VARIABLE : RESHAPE(V4D[I=2:3,J=2:3,K=2:3], V3D)
-             SUBSET   : 2 by 2 by 2 points (X-Y-Z)
-               2        3     
-               2        3
- ---- K:2 Z:   0.02
- 0.2  / 2:  2.23100  3.23100
- 0.3  / 3:  2.33100  3.33100
- ---- K:3 Z:   0.03
- 0.2  / 2:  2.22200  3.22200
- 0.3  / 3:  2.32200  3.32200
-LIST/I=2:3/J=2:3  RESHAPE(v4d, v3d)
-             VARIABLE : RESHAPE(V4D, V3D)
-             SUBSET   : 2 by 2 by 9 points (X-Y-Z)
-               2        3     
-               2        3
- ---- K:1 Z:   0.01
- 0.2  / 2:  2.21100  3.21100
- 0.3  / 3:  2.31100  3.31100
- ---- K:2 Z:   0.02
- 0.2  / 2:  2.22100  3.22100
- 0.3  / 3:  2.32100  3.32100
- ---- K:3 Z:   0.03
- 0.2  / 2:  2.23100  3.23100
- 0.3  / 3:  2.33100  3.33100
- ---- K:4 Z:   0.04
- 0.2  / 2:  2.21200  3.21200
- 0.3  / 3:  2.31200  3.31200
- ---- K:5 Z:   0.05
- 0.2  / 2:  2.22200  3.22200
- 0.3  / 3:  2.32200  3.32200
- ---- K:6 Z:   0.06
- 0.2  / 2:  2.23200  3.23200
- 0.3  / 3:  2.33200  3.33200
- ---- K:7 Z:   0.07
- 0.2  / 2:  2.21300  3.21300
- 0.3  / 3:  2.31300  3.31300
- ---- K:8 Z:   0.08
- 0.2  / 2:  2.22300  3.22300
- 0.3  / 3:  2.32300  3.32300
- ---- K:9 Z:   0.09
- 0.2  / 2:  2.23300  3.23300
- 0.3  / 3:  2.33300  3.33300
-LIST/I=2:3/J=2:3/K=2:3  RESHAPE(v4d, v3d)	! K refers to result, only
-             VARIABLE : RESHAPE(V4D, V3D)
-             SUBSET   : 2 by 2 by 2 points (X-Y-Z)
-               2        3     
-               2        3
- ---- K:2 Z:   0.02
- 0.2  / 2:  2.22100  3.22100
- 0.3  / 3:  2.32100  3.32100
- ---- K:3 Z:   0.03
- 0.2  / 2:  2.23100  3.23100
- 0.3  / 3:  2.33100  3.33100
-LIST/I=2:3/J=2:3  RESHAPE(v4d[k=1:3], v3d[k=2:5])	! output to a subregion in K
-             VARIABLE : RESHAPE(V4D[K=1:3], V3D[K=2:5])
-             SUBSET   : 2 by 2 by 4 points (X-Y-Z)
-               2        3     
-               2        3
- ---- K:2 Z:   0.02
- 0.2  / 2:  2.21100  3.21100
- 0.3  / 3:  2.31100  3.31100
- ---- K:3 Z:   0.03
- 0.2  / 2:  2.22100  3.22100
- 0.3  / 3:  2.32100  3.32100
- ---- K:4 Z:   0.04
- 0.2  / 2:  2.23100  3.23100
- 0.3  / 3:  2.33100  3.33100
- ---- K:5 Z:   0.05
- 0.2  / 2:  2.21200  3.21200
- 0.3  / 3:  2.31200  3.31200
-LIST/I=2:3/J=2:3/K=4:5  RESHAPE(v4d[k=1:3], v3d[k=2:5])	! "conflicting" K specs
-             VARIABLE : RESHAPE(V4D[K=1:3], V3D[K=2:5])
-             SUBSET   : 2 by 2 by 2 points (X-Y-Z)
-               2        3     
-               2        3
- ---- K:4 Z:   0.04
- 0.2  / 2:  2.23100  3.23100
- 0.3  / 3:  2.33100  3.33100
- ---- K:5 Z:   0.05
- 0.2  / 2:  2.21200  3.21200
- 0.3  / 3:  2.31200  3.31200
- 
-! ZAXREPLACE function
-! definitions taken from sigma_coordinate_demo.jnl 9/96 *sh*
-! 1) CREATE AN ARTIFICIAL SIGMA COORDINATE MODEL OUTPUT
-define axis/x=-50:50:10/unit=km xchannel
-define axis/y=-30:30:10/unit=km yrise
-define axis/z=1:10:2/unit=layer/depth zlayer
-define axis/T=1:20:1/unit=hours time
-define grid/x=xchannel/y=yrise/z=zlayer/t=time gsigma
- 
-! bathymetry: a channel with a rise along the axis of the channel
-let pi = 3.14159
-let nominal_depth = 100
-let cross_channel_size = nominal_depth * (1 + COS(X[g=gsigma]/60*pi))
-let xchannel = -1 * cross_channel_size
-let rise_shape = (1 + COS(Y[g=gsigma]/40*pi))/6
-let bathymetry = xchannel + rise_shape*CROSS_CHANNEL_SIZE
-set variable/title="Channel Bathymetry"/unit=meters bathymetry
- 
-! sigma layer thickness: varies in X, Y, Z, and T in this example
-let time_evolve = 0 + L[g=gsigma]/100
-let h0 = EXP(time_evolve*K[g=gsigma])
-let h_normalized = h0/h0[k=1:10 at sum]
-let h = h_normalized * (-1 * bathymetry)
-set variable/title="layer thickness"/unit=meters h
- 
-! fictitious flow field:
-let flow_profile = LOG((11-K[g=gsigma]))
-let time_ramp = 1 + L[g=gsigma]/20 + 0.2*SIN((L[g=gsigma]-1)/2)
-let flow = time_ramp * flow_profile * cross_channel_size / (1-rise_shape)
-set variable/title="non-physical flow field" flow
- 
-! ----------------------
-! "DEPTH" --  THE VERTICAL INTEGRAL OF LAYER THICKNESS
-let depth = h[k=@rsum]-h/2
-set variable/title="DEPTH function"/unit=meters depth
- 
-! Desired result axes - depth in meters
-define axis/depth/z=0:200:50/units=meters z50m
-define axis/depth/z=0:200:20/units=meters z20m
-define axis/depth/z=0:200:2/units=meters z2m
- 
-LIST/x=0/l=1 flow
-             VARIABLE : non-physical flow field
-             SUBSET   : 7 by 6 points (Y (KM)-Z (LAYER))
-             X (KM)   : 0
-             T (HOURS): 1
-              -30      -20      -10       0       10       20       30     
-               1        2        3        4        5        6        7
- 1    / 1:  220.777  252.000  293.508  315.000  293.508  252.000  220.777
- 3    / 2:  210.675  240.469  280.078  300.586  280.078  240.469  210.675
- 5    / 3:  199.382  227.579  265.064  284.473  265.064  227.579  199.382
- 7    / 4:  186.579  212.965  248.043  266.206  248.043  212.965  186.579
- 9    / 5:  171.798  196.094  228.394  245.118  228.394  196.094  171.798
- 11   / 6:  154.317  176.140  205.154  220.176  205.154  176.140  154.317
-LIST/x=0/l=1 depth
-             VARIABLE : DEPTH function (meters)
-             SUBSET   : 7 by 6 points (Y (KM)-Z (LAYER))
-             X (KM)   : 0
-             T (HOURS): 1
-              -30      -20      -10       0       10       20       30     
-               1        2        3        4        5        6        7
- 1    / 1:   15.459   13.544   11.629   10.835   11.629   13.544   15.459
- 3    / 2:   46.534   40.768   35.003   32.614   35.003   40.768   46.534
- 5    / 3:   77.920   68.266   58.612   54.613   58.612   68.266   77.920
- 7    / 4:  109.622   96.040   82.458   76.832   82.458   96.040  109.622
- 9    / 5:  141.642  124.093  106.544   99.274  106.544  124.093  141.642
- 11   / 6:  173.985  152.428  130.872  121.943  130.872  152.428  173.985
-set view ul
-shade/x=0/l=1/lev=30 flow
-!LIST/x=0/l=1 ZAXREPLACE(flow,depth,z[gz=z50m])
-!LIST/x=0/l=1 ZAXREPLACE(flow,depth,z[gz=z20m])
-LIST/x=0/l=1 ZAXREPLACE(flow[z=0:200],depth[z=0:200],z[gz=z50m])
-             VARIABLE : ZAXREPLACE(FLOW[Z=0:200],DEPTH[Z=0:200],Z[GZ=Z50M])
-             SUBSET   : 7 by 5 points (Y (KM)-DEPTH (m))
-             X (KM)   : 0
-             T (HOURS): 1
-                -30      -20      -10       0       10       20       30     
-                 1        2        3        4        5        6        7
- 0      / 1:     ....     ....     ....     ....     ....     ....     ....
- 50     / 2:  209.428  236.141  270.541  287.852  270.541  236.141  209.428
- 100    / 3:  190.465  210.583  233.732  244.319  233.732  210.583  190.465
- 150    / 4:  167.281  177.850     ....     ....     ....  177.850  167.281
- 200    / 5:     ....     ....     ....     ....     ....     ....     ....
-LIST/x=0/l=1 ZAXREPLACE(flow[z=0:200],depth[z=0:200],z[gz=z20m])
-             VARIABLE : ZAXREPLACE(FLOW[Z=0:200],DEPTH[Z=0:200],Z[GZ=Z20M])
-             SUBSET   : 7 by 11 points (Y (KM)-DEPTH (m))
-             X (KM)   : 0
-             T (HOURS): 1
-                 -30      -20      -10       0       10       20       30     
-                  1        2        3        4        5        6        7
- 0      /  1:     ....     ....     ....     ....     ....     ....     ....
- 20     /  2:  219.301  249.266  288.698  308.935  288.698  249.266  219.301
- 40     /  3:  212.799  240.795  276.900  295.177  276.900  240.795  212.799
- 60     /  4:  205.830  231.454  264.073  280.044  264.073  231.454  205.830
- 80     /  5:  198.542  221.405  249.798  263.229  249.798  221.405  198.542
- 100    /  6:  190.465  210.583  233.732  244.319  233.732  210.583  190.465
- 120    /  7:  181.788  198.556  215.539  222.313  215.539  198.556  181.788
- 140    /  8:  172.556  184.892     ....     ....     ....  184.892  172.556
- 160    /  9:  161.876     ....     ....     ....     ....     ....  161.876
- 180    / 10:     ....     ....     ....     ....     ....     ....     ....
- 200    / 11:     ....     ....     ....     ....     ....     ....     ....
- 
-set view ur
-shade/x=0/l=1/lev ZAXREPLACE(flow[z=0:200],depth[z=0:200],z[gz=z20m])
- 
-! how do the layers get distributed?
-!LET Kflow  = ZAXREPLACE(flow,depth,z[gz=z20m])
-!LET Kdepth = ZAXREPLACE(k[g=gsigma],depth,z[gz=z20m])
-LET Kflow  = ZAXREPLACE(flow[z=0:200],depth[z=0:200],z[gz=z20m])
-LET Kdepth = ZAXREPLACE(k[z=0:200,g=gsigma],depth[z=0:200],z[gz=z20m])
-LIST/x=0/l=1 Kdepth
-             VARIABLE : ZAXREPLACE(K[Z=0:200,G=GSIGMA],DEPTH[Z=0:200],Z[GZ=Z20M])
-             SUBSET   : 7 by 11 points (Y (KM)-DEPTH (m))
-             X (KM)   : 0
-             T (HOURS): 1
-                 -30      -20      -10       0       10       20       30     
-                  1        2        3        4        5        6        7
- 0      /  1:     ....     ....     ....     ....     ....     ....     ....
- 20     /  2:  1.14612  1.23714  1.35815  1.42080  1.35815  1.23714  1.14612
- 40     /  3:  1.78974  1.97179  2.21167  2.33573  2.21167  1.97179  1.78974
- 60     /  4:  2.42905  2.69940  3.05822  3.24246  3.05822  2.69940  2.42905
- 80     /  5:  3.06561  3.42249  3.89693  4.14116  3.89693  3.42249  3.06561
- 100    /  6:  3.69649  4.14116  4.72832  5.03201  4.72832  4.14116  3.69649
- 120    /  7:  4.32411  4.85410  5.55312  5.91430  5.55312  4.85410  4.32411
- 140    /  8:  4.94871  5.56139     ....     ....     ....  5.56139  4.94871
- 160    /  9:  5.56760     ....     ....     ....     ....     ....  5.56760
- 180    / 10:     ....     ....     ....     ....     ....     ....     ....
- 200    / 11:     ....     ....     ....     ....     ....     ....     ....
-LIST/x=0/l=1 Kdepth[k=@max]
-             VARIABLE : ZAXREPLACE(K[Z=0:200,G=GSIGMA],DEPTH[Z=0:200],Z[GZ=Z20M])
-             SUBSET   : 7 points (Y (KM))
-             X (KM)   : 0
-             DEPTH (m): -10 to 210 (maximum)
-             T (HOURS): 1
-                0     
-                6
- -30   / 1:  5.56760
- -20   / 2:  5.56139
- -10   / 3:  5.55312
- 0     / 4:  5.91430
- 10    / 5:  5.55312
- 20    / 6:  5.56139
- 30    / 7:  5.56760
- 
-! mark deepest layer with a zero
-LET K0 = Kdepth - Kdepth[K=@max]
-LET Kkernel = K0[K=@WEQ] * Kflow
- 
-! compare flow at bottom
-LET Z10_flow = flow[Z=10]
-LIST/x=0/l=1 Z10_flow		! bottom layer in layered version
-             VARIABLE : FLOW[Z=10]
-             SUBSET   : 7 points (Y (KM))
-             X (KM)   : 0
-             Z (LAYER): 10
-             T (HOURS): 1
-                0     
-                6
- -30   / 1:  163.058
- -20   / 2:  186.117
- -10   / 3:  216.774
- 0     / 4:  232.647
- 10    / 5:  216.774
- 20    / 6:  186.117
- 30    / 7:  163.058
- 
-LET bottom_flow = Kkernel[z=0:200 at sum]
-!message LIST/x=0/l=1 Kkernel[z=0:200]	! crash!!!
-!message LIST/x=0/l=1 bottom_flow	! deepest flow in depth version
-!message
- 
-! error using 20 meter depth resolution
-LIST/x=0/l=1 Z10_flow - bottom_flow
-             VARIABLE : Z10_FLOW - BOTTOM_FLOW
-             SUBSET   : 7 points (Y (KM))
-             X (KM)   : 0
-             Z (LAYER): 10
-             T (HOURS): 1
-                0     
-                6
- -30   / 1:   1.1817
- -20   / 2:   1.2249
- -10   / 3:   1.2346
- 0     / 4:  10.3336
- 10    / 5:   1.2346
- 20    / 6:   1.2249
- 30    / 7:   1.1817
- 
-! reduced error using 2 meter depth resolution
-set view ll
-shade/x=0/l=1/lev ZAXREPLACE(flow[z=0:200],depth[z=0:200],z[gz=z2m])
-LET Kflow  = ZAXREPLACE(flow[z=0:200],depth[z=0:200],z[gz=z2m])
-LET Kdepth = ZAXREPLACE(k[g=gsigma,z=0:200],depth[z=0:200],z[gz=z2m])
-LIST/x=0/l=1 Z10_flow - bottom_flow
-             VARIABLE : Z10_FLOW - BOTTOM_FLOW
-             SUBSET   : 7 points (Y (KM))
-             X (KM)   : 0
-             Z (LAYER): 10
-             T (HOURS): 1
-                0     
-                6
- -30   / 1:   7.6679
- -20   / 2:   9.6753
- -10   / 3:  10.7875
- 0     / 4:  10.3336
- 10    / 5:  10.7875
- 20    / 6:   9.6753
- 30    / 7:   7.6679
- 
-! 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])
- 
-!added in bn491 - originally had this in run_all, but moved it here to
-! properly echo commands  *kob*
-GO bn_reset
-cancel mode verify
-set mode verify  ! somehow this was off
- 
-GO bn491_bug_fixes.jnl
-! bn491_bug_fixes.jnl
-! test various fixes that went into version 4.91
-! 2/98 *kob*
-!
-! 3/98 - replaced err490_repeat w/ err490_repeat_first_echo - simpler test
-! 3/98 - *kob* removed err490_tilde because it was a silly test.  some systems
-!         allowed use of go "~/xx" and others didnt.
-! 4/98 - added err491_asn.jnl - regrid by association problem
-! 4/98 - added err491_attrib_dp.jnl - problem w/ double precision attributes
- 
-set mode/last verify
-can viewport
-can win/all
-set window 1
- 
-!netcdf write error
-GO err490_cdf_childax
-!err490_cdf_childax  *kob*  12/10/97 - initial crash reported by jerry
- 
-! ERROR Fixed: listing a netcdf file w/ an extended child axis caused OSF
-!              core dump
-!
-!  routines modified:    fmt/src/cd_childax_name.F
-!			 fmt/src/cd_write_axis.F
-!                        fmt/src/cd_make_var.F
-! 3.4.98 *kob* add define region statement - needed to include the
-!              bn491_bug_fixes.jnl in w/ bn491_all
- 
- 
-define region/x=130:290/y=-23.5:23.5 t
-set data ocean_atlas_temp
-set reg/@t/z=0/l=1
-save/file=test.cdf/clobber temp
- 
-message/continue ********File successfully written******
-********File successfully written******
- 
- 
-! command parser
-GO bn_reset
-cancel mode verify
-GO err490_command_parser
-! err490_command_parser.jnl 12/1/98 - reported by billy kessler
- 
-! ERROR Fixed:  command parser fix
-! the following caused an abort of ferret to occur
-!
-! routines modifed:  gnl/parse_command.F
-!	     	     rpn/init_uvar_sub.F
-!                    common/xvariables.cmn
- 
-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)
- 
-label/nou `($ppl$xlen)-.3`  -1.1 0 0 .16 a b c d e f g h i j k l m n o p
- !-> PPL %LABEL/nou 8.44  -1.1 0 0 .16 a b c d e f g h i j k l m n o p
- 
-! the following also caused an abort of ferret
-let sstb = if ( (i eq 172 and j eq 36) or (i ge 173 and i le 175 and j eq 35) or (i ge 176 and i le 178 and j eq 36) or (i eq 178 and j eq 35) ) then 1.e35 else sst
-message/continue ****Variable defined successfully******
-****Variable defined successfully******
- 
- 
-! tilde error
-!GO bn_reset
-!GO err490_tilde
- 
- 
-!repeat error
-GO bn_reset
-cancel mode verify
-GO err490_repeat_first_echo
-! err490_repeat_first_echo (created later 23/98)
- 
-! for the first REPEAT loop on T the formatting of the "verify" output
-! is based on the last previous command given
- 
-! fixed 1/98 sh&kob
-!  relevant routines (bug not yet fixed)
-!		       gnl/cs_command.F
-!                      xeq/xeq_repeat.F
-!                      ctx/cs_set_context.F
- 
-set mode calendar
-can mode interp
- 
-! cause the "last" command to be non-calendar
-stat t[t=15]
- 
-             T
-             axis ABSTRACT
-             X:  N/A
-             Y:  N/A
-             Z:  N/A
-             T: 15
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 1 (1*1*1*1*1*1)
- # flagged as bad  data: 0
- Minimum value: 15
- Maximum value: 15
- Mean    value: 15 (unweighted average)
- 
-! now note the first loop echo
-set mode verify
-define axis/t=1-jan-1980:1-jan-1981:1/units=days tax
-repeat/t=1-jan-1980:2-jan-1980:24 stat t[gt=tax]
-!-> REPEAT: T=-6.2483E+10
- 
-             T
-             axis TAX
-             X:  N/A
-             Y:  N/A
-             Z:  N/A
-             TIME: 01-JAN-1980 00:00
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 1 (1*1*1*1*1*1)
- # flagged as bad  data: 0
- Minimum value: 28840
- Maximum value: 28840
- Mean    value: 28840 (unweighted average)
-!-> REPEAT: T=02-JAN-1980 00:00:00
- 
-             T
-             axis TAX
-             X:  N/A
-             Y:  N/A
-             Z:  N/A
-             TIME: 02-JAN-1980 00:00
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 1 (1*1*1*1*1*1)
- # flagged as bad  data: 0
- Minimum value: 28841
- Maximum value: 28841
- Mean    value: 28841 (unweighted average)
- 
-message/cont Note: THE ECHO-ONE REPEAT BUG HAS NOT BEEN FIXED
-Note: THE ECHO-ONE REPEAT BUG HAS NOT BEEN FIXED
- 
-! fixed variable size
-!GO bn_reset
-GO err490_fixed_var_size
-! 1/2/98 *sh*
- 
-! Situation: the component (variable) size is fixed in the definition.
-! The requested result size is separately specified
-! by a command qualifier. Leads to a crash.
- 
-! The "doo" transformations (convolve.F, do_run_sum_sub.F, etc. ) are guided
-! by the size of the component rather than the size of the result.
-! (Under other circumstances this is to allow "bad edges" to be filled in
-! when the component is too small for the result.)
- 
-! In IS_TRANS we need to catch this problem and avoid it ...
-! but it is fraught with pitfalls as it involves changing the apparent
-! component (cx) size passed into IS_TRANS (normally considered read-only)
-! Further, Ferret regards the result as self-describing on this axis
-! (uvar_gvn<uvlim_gvn_xact) so exact limits are not checked when looking in
-! cache. Since we are violating the assumption of self-describing we need to
-! un-cache the result.
-!  ==> THE FIX IS IS A KLUDGE: The "right" solution is that the full limits
-!	of the variable should be computed and the requested limits used to
-!	clip the result. But this would be costly in memory xxxxx
-!	should never get applied to cx ... but this is too difficult to
-!	implement in GET_VAR_CONTEXT and PARSE_VAR_NAME
- 
- 
-!set mode diag - removed *sh* 10/99
- 
-let vx = SIN(X[X=1:60:1])
-stat vx
- 
-             SIN(X[X=1:60:1])
-             X: 0.5 to 60.5
-             Y:  N/A
-             Z:  N/A
-             T:  N/A
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 60 (60*1*1*1*1*1)
- # flagged as bad  data: 0
- Minimum value: -0.99999
- Maximum value: 0.99991
- Mean    value: 0.027242 (unweighted average)
- Standard deviation: 0.71199
-list/i=13:18 vx[x=@sbx:3]	! CRASH in V4.90
-             VARIABLE : SIN(X[X=1:60:1])
-                        box smoothed by 3 pts on X
-             SUBSET   : 6 points (X)
- 13   / 13:  0.291400
- 14   / 14:  0.687021
- 15   / 15:  0.450997
- 16   / 16: -0.199671
- 17   / 17: -0.666763
- 18   / 18: -0.520836
-list/i=13:18 vx[x=@rsum]	! CRASH in V4.90
-             VARIABLE : SIN(X[X=1:60:1])
-                        running sum on X
-             SUBSET   : 6 points (X)
- 13   / 13:  0.42017
- 14   / 14:  1.41077
- 15   / 15:  2.06106
- 16   / 16:  1.77316
- 17   / 17:  0.81176
- 18   / 18:  0.06077
- 
-list/i=11:20 vx[x=@sbx:3]	! wrong result if pulled from cache
-             VARIABLE : SIN(X[X=1:60:1])
-                        box smoothed by 3 pts on X
-             SUBSET   : 10 points (X)
- 11   / 11: -0.693528
- 12   / 12: -0.372132
- 13   / 13:  0.291400
- 14   / 14:  0.687021
- 15   / 15:  0.450997
- 16   / 16: -0.199671
- 17   / 17: -0.666763
- 18   / 18: -0.520836
- 19   / 19:  0.103945
- 20   / 20:  0.633159
-list/i=11:20 vx[x=@rsum]	! wrong result if pulled from cache
-             VARIABLE : SIN(X[X=1:60:1])
-                        running sum on X
-             SUBSET   : 10 points (X)
- 11   / 11: -0.99999
- 12   / 12: -1.53656
- 13   / 13: -1.11640
- 14   / 14: -0.12579
- 15   / 15:  0.52450
- 16   / 16:  0.23660
- 17   / 17: -0.72480
- 18   / 18: -1.47579
- 19   / 19: -1.32591
- 20   / 20: -0.41297
- 
-! now test a special problem that can occur with filling transforms --
-! special because in IS_TRANS they require OFFSETS but do not require filling
-! "bad edges" in the result
- 
-DEFINE AXIS/T=-10:10:2 tax
-LET tvar = t[gt=tax]
-LET tgap = IF MOD(T,4) eq 0 then  tvar
-list tgap
-             VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR
-             SUBSET   : 11 points (T)
- -10   /  1:     ....
- -8    /  2: -8.00000
- -6    /  3:     ....
- -4    /  4: -4.00000
- -2    /  5:     ....
- 0     /  6:  0.00000
- 2     /  7:     ....
- 4     /  8:  4.00000
- 6     /  9:     ....
- 8     / 10:  8.00000
- 10    / 11:     ....
-list tgap[l=2:7 at fav]    ! value at L=7 should be 2
-             VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR
-                        ave-filled by 3 pts on T
-             SUBSET   : 6 points (T)
- -8   / 2: -8.00000
- -6   / 3: -6.00000
- -4   / 4: -4.00000
- -2   / 5: -2.00000
- 0    / 6:  0.00000
- 2    / 7:  2.00000
-list tgap[t=-5:-8 at fav]  ! value at T=-6 should be -6
-             VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR
-                        ave-filled by 3 pts on T
-             SUBSET   : 2 points (T)
- -8   / 2: -8.00000
- -6   / 3: -6.00000
- 
-! l=@ave compression failure
-GO bn_reset
-cancel mode verify
-GO err490_l_ave.jnl
-! err490_lave.jnl 12/1/97 - *sh* (reported by Weimin Wang)
-! L=@AVE is failing to compress to a point
- 
-! 2/28/97:
-! bug from this script re-emerged 2/98 after change to MERGE_GRID
-! (see err491_explicit_limits.jnl)
-! This time it was fixed in MERGE_GRID by correcting inconsistent use of
-! the variable expl_com_lim
- 
-! 12/97: ---------------------
-! ==> fixed  in IS_GRID_MODE with more thorough initialization
-!  probably was introduced with changes to is-uvar_grid and merge_grid
-! when GCF functions were introduced
- 
-! the bug was introduced between ferret_c_pre_10jan (created Dec. 19 '96)
-! and ferret_c_passed_bench (created Jan 22  1997). This is when the GCF
-! changes were made
- 
-! tracing the problem (axis T):
-!  in IS_TRANS the bad case enters with cx_hi_ww(cx=6)=91369
-!	       the successful case with it set BAD
-!			==> result is that T axis doesn't get fleshed out
- 
-! IS_TRANS gets the cx=6 value from IS_ALGEBRA's call to GET_VAR_CONTEXT
- 
-! In turn this gets it from cx=4 which is set early in INTERP_STACK (dflt_cx)
- 
-! INTERP_STACK works correctly when uvar_given(4,ex#1)=-1 ("uvlim_irrelevant")
-! ==> for some reason uvar_given(4,ex#1) is 7 (uvlim_needed) in the bad case
- 
-! ... need to look in is_uvar_grid and esp. merge_grid
-! ---------------------------
-! *kob* 3/98 - modifed to use coads_vwnd.cdf data set.  this is a local data
-!              set (ie, it resides in the bench area).  this was important for
-!	        benchmarking the sgi version (on cyborg and vikenty) because
-!		not all tmap disks were available.
- 
-cancel memory/all
-!set mode diag ! removed *sh* 10/99
- 
-! *kob* set data coads
-set data coads_vwnd
- 
-set region/x=160w/y=40n
-set region/l=1:50
- 
-! 12/97: this works OK -- a single point ... with value of zero!
-! 2/98: now it gets a list of values, where the first one, only is correct
-let tseries =  vwnd[l=1:50]
-list tseries[l=@ave]
-             VARIABLE : VWND[L=1:50]
-             FILENAME : coads_vwnd.cdf
-             LONGITUDE: 161W
-             LATITUDE : 39N
-             TIME     : 01-JAN-1946 00:00 to 01-MAR-1950 00:00 (averaged)
-          2.19333
- 
-! this gets a list of values!
-cancel memory/all
-load tseries
-list tseries[l=@ave]
-             VARIABLE : VWND[L=1:50]
-             FILENAME : coads_vwnd.cdf
-             LONGITUDE: 161W
-             LATITUDE : 39N
-             TIME     : 01-JAN-1946 00:00 to 01-MAR-1950 00:00 (averaged)
-          2.19333
- 
-! and finally a crash ...
-list/l=1 tseries[l=1:50 at ave]
-             VARIABLE : VWND[L=1:50]
-             FILENAME : coads_vwnd.cdf
-             LONGITUDE: 161W
-             LATITUDE : 39N
-             TIME     : 01-JAN-1946 00:00 to 01-MAR-1950 00:00 (averaged)
-          2.19333
- 
-quit
- 
-! neg time axis grid failure
-GO bn_reset
-cancel mode verify
-GO err490_neg_time_show_grid.jnl
-! err490_neg_time_show_grid
- 
-! V4.9 fails to show the invividual grid points, so the below request would
-! only show column headings, but no data.  make sure data is there
- 
-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
- normal    E
- normal    F
- 
-       L     T                   TBOX      TBOXLO                TSTEP (hour)
-       1>  15-JAN-1982 14:00:00  73         14-JAN-1982 01:30:00    52632
-       2>  18-JAN-1982 15:00:00  73         17-JAN-1982 02:30:00    52705
-       3>  21-JAN-1982 16:00:00  73         20-JAN-1982 03:30:00    52778
-       4>  24-JAN-1982 17:00:00  73         23-JAN-1982 04:30:00    52851
-       5>  27-JAN-1982 18:00:00  73         26-JAN-1982 05:30:00    52924
-       6>  30-JAN-1982 19:00:00  73         29-JAN-1982 06:30:00    52997
-       7>  02-FEB-1982 20:00:00  73         01-FEB-1982 07:30:00    53070
-       8>  05-FEB-1982 21:00:00  73         04-FEB-1982 08:30:00    53143
-       9>  08-FEB-1982 22:00:00  73         07-FEB-1982 09:30:00    53216
-      10>  11-FEB-1982 23:00:00  73         10-FEB-1982 10:30:00    53289
-      11>  15-FEB-1982 00:00:00  73         13-FEB-1982 11:30:00    53362
-      12>  18-FEB-1982 01:00:00  73         16-FEB-1982 12:30:00    53435
-      13>  21-FEB-1982 02:00:00  73         19-FEB-1982 13:30:00    53508
-      14>  24-FEB-1982 03:00:00  73         22-FEB-1982 14:30:00    53581
-      15>  27-FEB-1982 04:00:00  73         25-FEB-1982 15:30:00    53654
-      16>  02-MAR-1982 05:00:00  73         28-FEB-1982 16:30:00    53727
-      17>  05-MAR-1982 06:00:00  73         03-MAR-1982 17:30:00    53800
-      18>  08-MAR-1982 07:00:00  73         06-MAR-1982 18:30:00    53873
-      19>  11-MAR-1982 08:00:00  73         09-MAR-1982 19:30:00    53946
-      20>  14-MAR-1982 09:00:00  73         12-MAR-1982 20:30:00    54019
-      21>  17-MAR-1982 10:00:00  73         15-MAR-1982 21:30:00    54092
-      22>  20-MAR-1982 11:00:00  73         18-MAR-1982 22:30:00    54165
-      23>  23-MAR-1982 12:00:00  73         21-MAR-1982 23:30:00    54238
-      24>  26-MAR-1982 13:00:00  73         25-MAR-1982 00:30:00    54311
-      25>  29-MAR-1982 14:00:00  73         28-MAR-1982 01:30:00    54384
-      26>  01-APR-1982 15:00:00  73         31-MAR-1982 02:30:00    54457
-      27>  04-APR-1982 16:00:00  73         03-APR-1982 03:30:00    54530
-      28>  07-APR-1982 17:00:00  73         06-APR-1982 04:30:00    54603
-      29>  10-APR-1982 18:00:00  73         09-APR-1982 05:30:00    54676
-      30>  13-APR-1982 19:00:00  73         12-APR-1982 06:30:00    54749
-      31>  16-APR-1982 20:00:00  73         15-APR-1982 07:30:00    54822
-      32>  19-APR-1982 21:00:00  73         18-APR-1982 08:30:00    54895
-      33>  22-APR-1982 22:00:00  73         21-APR-1982 09:30:00    54968
-      34>  25-APR-1982 23:00:00  73         24-APR-1982 10:30:00    55041
-      35>  29-APR-1982 00:00:00  73         27-APR-1982 11:30:00    55114
-      36>  02-MAY-1982 01:00:00  73         30-APR-1982 12:30:00    55187
-      37>  05-MAY-1982 02:00:00  73         03-MAY-1982 13:30:00    55260
-      38>  08-MAY-1982 03:00:00  73         06-MAY-1982 14:30:00    55333
-      39>  11-MAY-1982 04:00:00  73         09-MAY-1982 15:30:00    55406
-      40>  14-MAY-1982 05:00:00  73         12-MAY-1982 16:30:00    55479
-      41>  17-MAY-1982 06:00:00  73         15-MAY-1982 17:30:00    55552
-      42>  20-MAY-1982 07:00:00  73         18-MAY-1982 18:30:00    55625
-      43>  23-MAY-1982 08:00:00  73         21-MAY-1982 19:30:00    55698
-      44>  26-MAY-1982 09:00:00  73         24-MAY-1982 20:30:00    55771
-      45>  29-MAY-1982 10:00:00  73         27-MAY-1982 21:30:00    55844
-      46>  01-JUN-1982 11:00:00  73         30-MAY-1982 22:30:00    55917
-      47>  04-JUN-1982 12:00:00  73         02-JUN-1982 23:30:00    55990
-      48>  07-JUN-1982 13:00:00  73         06-JUN-1982 00:30:00    56063
-      49>  10-JUN-1982 14:00:00  73         09-JUN-1982 01:30:00    56136
-      50>  13-JUN-1982 15:00:00  73         12-JUN-1982 02:30:00    56209
-      51>  16-JUN-1982 16:00:00  73         15-JUN-1982 03:30:00    56282
-      52>  19-JUN-1982 17:00:00  73         18-JUN-1982 04:30:00    56355
-      53>  22-JUN-1982 18:00:00  73         21-JUN-1982 05:30:00    56428
-      54>  25-JUN-1982 19:00:00  73         24-JUN-1982 06:30:00    56501
-      55>  28-JUN-1982 20:00:00  73         27-JUN-1982 07:30:00    56574
-      56>  01-JUL-1982 21:00:00  73         30-JUN-1982 08:30:00    56647
-      57>  04-JUL-1982 22:00:00  73         03-JUL-1982 09:30:00    56720
-      58>  07-JUL-1982 23:00:00  73         06-JUL-1982 10:30:00    56793
-      59>  11-JUL-1982 00:00:00  73         09-JUL-1982 11:30:00    56866
-      60>  14-JUL-1982 01:00:00  73         12-JUL-1982 12:30:00    56939
-      61>  17-JUL-1982 02:00:00  73         15-JUL-1982 13:30:00    57012
-      62>  20-JUL-1982 03:00:00  73         18-JUL-1982 14:30:00    57085
-      63>  23-JUL-1982 04:00:00  73         21-JUL-1982 15:30:00    57158
-      64>  26-JUL-1982 05:00:00  73         24-JUL-1982 16:30:00    57231
-      65>  29-JUL-1982 06:00:00  73         27-JUL-1982 17:30:00    57304
-      66>  01-AUG-1982 07:00:00  73         30-JUL-1982 18:30:00    57377
-      67>  04-AUG-1982 08:00:00  73         02-AUG-1982 19:30:00    57450
-      68>  07-AUG-1982 09:00:00  73         05-AUG-1982 20:30:00    57523
-      69>  10-AUG-1982 10:00:00  73         08-AUG-1982 21:30:00    57596
-      70>  13-AUG-1982 11:00:00  73         11-AUG-1982 22:30:00    57669
-      71>  16-AUG-1982 12:00:00  73         14-AUG-1982 23:30:00    57742
-      72>  19-AUG-1982 13:00:00  73         18-AUG-1982 00:30:00    57815
-      73>  22-AUG-1982 14:00:00  73         21-AUG-1982 01:30:00    57888
-      74>  25-AUG-1982 15:00:00  73         24-AUG-1982 02:30:00    57961
-      75>  28-AUG-1982 16:00:00  73         27-AUG-1982 03:30:00    58034
-      76>  31-AUG-1982 17:00:00  73         30-AUG-1982 04:30:00    58107
-      77>  03-SEP-1982 18:00:00  73         02-SEP-1982 05:30:00    58180
-      78>  06-SEP-1982 19:00:00  73         05-SEP-1982 06:30:00    58253
-      79>  09-SEP-1982 20:00:00  73         08-SEP-1982 07:30:00    58326
-      80>  12-SEP-1982 21:00:00  73         11-SEP-1982 08:30:00    58399
-      81>  15-SEP-1982 22:00:00  73         14-SEP-1982 09:30:00    58472
-      82>  18-SEP-1982 23:00:00  73         17-SEP-1982 10:30:00    58545
-      83>  22-SEP-1982 00:00:00  73         20-SEP-1982 11:30:00    58618
-      84>  25-SEP-1982 01:00:00  73         23-SEP-1982 12:30:00    58691
-      85>  28-SEP-1982 02:00:00  73         26-SEP-1982 13:30:00    58764
-      86>  01-OCT-1982 03:00:00  73         29-SEP-1982 14:30:00    58837
-      87>  04-OCT-1982 04:00:00  73         02-OCT-1982 15:30:00    58910
-      88>  07-OCT-1982 05:00:00  73         05-OCT-1982 16:30:00    58983
-      89>  10-OCT-1982 06:00:00  73         08-OCT-1982 17:30:00    59056
-      90>  13-OCT-1982 07:00:00  73         11-OCT-1982 18:30:00    59129
-      91>  16-OCT-1982 08:00:00  73         14-OCT-1982 19:30:00    59202
-      92>  19-OCT-1982 09:00:00  73         17-OCT-1982 20:30:00    59275
-      93>  22-OCT-1982 10:00:00  73         20-OCT-1982 21:30:00    59348
-      94>  25-OCT-1982 11:00:00  73         23-OCT-1982 22:30:00    59421
-      95>  28-OCT-1982 12:00:00  73         26-OCT-1982 23:30:00    59494
-      96>  31-OCT-1982 13:00:00  73         30-OCT-1982 00:30:00    59567
-      97>  03-NOV-1982 14:00:00  73         02-NOV-1982 01:30:00    59640
-      98>  06-NOV-1982 15:00:00  73         05-NOV-1982 02:30:00    59713
-      99>  09-NOV-1982 16:00:00  73         08-NOV-1982 03:30:00    59786
-     100>  12-NOV-1982 17:00:00  73         11-NOV-1982 04:30:00    59859
-     101>  15-NOV-1982 18:00:00  73         14-NOV-1982 05:30:00    59932
-     102>  18-NOV-1982 19:00:00  73         17-NOV-1982 06:30:00    60005
-     103>  21-NOV-1982 20:00:00  73         20-NOV-1982 07:30:00    60078
-     104>  24-NOV-1982 21:00:00  73         23-NOV-1982 08:30:00    60151
-     105>  27-NOV-1982 22:00:00  73         26-NOV-1982 09:30:00    60224
-     106>  30-NOV-1982 23:00:00  73         29-NOV-1982 10:30:00    60297
-     107>  04-DEC-1982 00:00:00  73         02-DEC-1982 11:30:00    60370
-     108>  07-DEC-1982 01:00:00  73         05-DEC-1982 12:30:00    60443
-     109>  10-DEC-1982 02:00:00  73         08-DEC-1982 13:30:00    60516
-     110>  13-DEC-1982 03:00:00  73         11-DEC-1982 14:30:00    60589
-     111>  16-DEC-1982 04:00:00  73         14-DEC-1982 15:30:00    60662
-     112>  19-DEC-1982 05:00:00  73         17-DEC-1982 16:30:00    60735
-     113>  22-DEC-1982 06:00:00  73         20-DEC-1982 17:30:00    60808
-     114>  25-DEC-1982 07:00:00  73         23-DEC-1982 18:30:00    60881
-     115>  28-DEC-1982 08:00:00  73         26-DEC-1982 19:30:00    60954
-     116>  31-DEC-1982 09:00:00  73         29-DEC-1982 20:30:00    61027
-     117>  03-JAN-1983 10:00:00  73         01-JAN-1983 21:30:00    61100
-     118>  06-JAN-1983 11:00:00  73         04-JAN-1983 22:30:00    61173
-     119>  09-JAN-1983 12:00:00  73         07-JAN-1983 23:30:00    61246
-     120>  12-JAN-1983 13:00:00  73         11-JAN-1983 00:30:00    61319
-     121>  15-JAN-1983 14:00:00  73         14-JAN-1983 01:30:00    61392
- 
- 
-!explicit limit problem
-GO bn_reset
-cancel mode verify
-GO err491_explicit_limits.jnl
-! err491_explicit_limits
-! 2/98 *sh*
-! bugs reported by Mark Wetzler and Mike Knezevitch
- 
-! ferret was assigning uvar_given = uvlim_irrelevant to axes of uvars where
-! the limits were given in square brackets.
- 
-! fixed by change in MERGE_GRID (2/23/98)
- 
-! Note that the repair caused a bug in err490_l_ave to re-emerge. That bug
-! was fixed through a further repair to MERGE_GRID (2/28/98)
- 
-!SET MODE DIAGNOSTIC - removed *sh* 10/99
- 
-! Wetzler bug
-! @AVE is ignored -- size of result on X is 5 points instead of 1
-let p = i[i=1:5]
-let q = i[i=1:5]
-let pq = p*q
-stat pq[i=@ave]
- 
-             P*Q
-             X: 0.5 to 5.5 (averaged)
-             Y:  N/A
-             Z:  N/A
-             T:  N/A
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 1 (1*1*1*1*1*1)
- # flagged as bad  data: 0
- Minimum value: 11
- Maximum value: 11
- Mean    value: 11 (unweighted average)
- 
-! Knezevitch bug
-! causes crash in nest_region_class.F
-let timestamp = DAYS1900(1998,02,23) - DAYS1900(1998,02,1)
-list timestamp[i=1:1]
-             VARIABLE : DAYS1900(1998,02,23) - DAYS1900(1998,02,1)
-          22.0000
- 
- 
- 
- 
-!regridding by association problem  *kob* 4/98
-GO bn_reset
-cancel mode verify
-GO err491_asn.jnl
-! err491_asn.jnl 4/98 *sh* (extracted from bug reported by Jennifer Adams)
-! Ferret crashes on regridding by association where destination
-! axis does not overlap the input subscript range at all
- 
-! fixed with repair to RECVD_REGRID
- 
-!set mode diag - removed *sh* 10/99
-set mode ignore	! added for benchmark suite...
- 
-let test = y[y=101:200:1]
-let test2 = test[y=151:200]	! defined on 151:200
- 
-define axis/y=1:50:1 y50
-list test2[gy=y50 at asn]		! request association onto 1:50
-             VARIABLE : TEST[Y=151:200]
-                        regrid: 1 delta on Y at ASN
-             SUBSET   : 50 points (Y)
- 1    /  1:....
- 2    /  2:....
- 3    /  3:....
- 4    /  4:....
- 5    /  5:....
- 6    /  6:....
- 7    /  7:....
- 8    /  8:....
- 9    /  9:....
- 10   / 10:....
- 11   / 11:....
- 12   / 12:....
- 13   / 13:....
- 14   / 14:....
- 15   / 15:....
- 16   / 16:....
- 17   / 17:....
- 18   / 18:....
- 19   / 19:....
- 20   / 20:....
- 21   / 21:....
- 22   / 22:....
- 23   / 23:....
- 24   / 24:....
- 25   / 25:....
- 26   / 26:....
- 27   / 27:....
- 28   / 28:....
- 29   / 29:....
- 30   / 30:....
- 31   / 31:....
- 32   / 32:....
- 33   / 33:....
- 34   / 34:....
- 35   / 35:....
- 36   / 36:....
- 37   / 37:....
- 38   / 38:....
- 39   / 39:....
- 40   / 40:....
- 41   / 41:....
- 42   / 42:....
- 43   / 43:....
- 44   / 44:....
- 45   / 45:....
- 46   / 46:....
- 47   / 47:....
- 48   / 48:....
- 49   / 49:....
- 50   / 50:....
- 
-!list/y=1:50 test2[gy=y50 at asn]		! same misbehavior and crash
- 
-cancel mode ignore	! added for benchmark suite...
- 
-! v5.4 *kob* 10/01 - need to add exit/script - new exit command qualifiers
-exit/script
- 
-!double precision attribute problem *kob* 4/98
-GO bn_reset
-cancel mode verify
-GO err491_attrib_dp.jnl
-! err491_attrib_dp.jnl
-! kob  4/23/98
- 
-! bug reported by  Donald S. Dunbar 4/21/98
-!
-! there was a difference in behavior between v445 and v491.  the problem was
-! that between the versions, a bug was introduced into cd_get_attval.F
-! which caused invalid values to be used if an attribute contained double
-! precision values.  the lines below read in a small sample of DD's cdf file
-! and list the variable elev. values should be around 2-3.
-!
-! routine modifed:  fmt/src/cd_get_attval.F
- 
- 
-use err491_attval.cdf
-list elev
-             VARIABLE : Surface elevation (meter)
-             DATA SET : K-Bay OAR3d model (200m)
-             FILENAME : err491_attval.cdf
-             SUBSET   : 35 by 127 points (LONGITUDE-LATITUDE)
-             T (day)  : 1.7837
-      ... listing every   3th point
-                  135.51W  135.469W 135.429W 135.389W 135.348W 135.308W 135.267W 135.227W 135.187W 135.146W 135.106W 135.066W 
-                     1        4        7       10       13       16       19       22       25       28       31       34
- 59.4667N / 127:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 59.4599N / 126:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 59.453N  / 125:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 59.4462N / 124:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....  2.97638     ....
- 59.4394N / 123:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 59.4325N / 122:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 59.4257N / 121:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 59.4189N / 120:     ....     ....     ....     ....     ....     ....     ....     ....     ....  2.97500     ....     ....
- 59.412N  / 119:     ....     ....     ....     ....     ....     ....     ....     ....     ....  2.97500     ....     ....
- 59.4052N / 118:     ....     ....     ....     ....     ....     ....     ....     ....     ....  2.97528     ....     ....
- 59.3983N / 117:     ....     ....     ....     ....     ....     ....     ....     ....     ....  2.97500     ....     ....
- 59.3915N / 116:     ....     ....     ....     ....     ....     ....     ....     ....     ....  2.97528     ....     ....
- 59.3846N / 115:     ....     ....     ....     ....     ....     ....     ....     ....     ....  2.97555     ....     ....
- 59.3778N / 114:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 59.3709N / 113:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 59.3641N / 112:     ....     ....     ....     ....     ....     ....     ....     ....  2.98572     ....     ....     ....
- 59.3572N / 111:     ....     ....     ....     ....     ....     ....     ....     ....  2.98764     ....     ....     ....
- 59.3504N / 110:     ....     ....     ....     ....     ....     ....     ....     ....  2.98791     ....     ....     ....
- 59.3435N / 109:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 59.3366N / 108:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 59.3298N / 107:     ....     ....     ....     ....     ....     ....     ....  2.98599     ....     ....     ....     ....
- 59.3229N / 106:     ....     ....     ....     ....  2.98956     ....     ....  2.98709     ....     ....     ....     ....
- 59.3161N / 105:     ....     ....     ....     ....  2.98901     ....     ....  2.98627     ....     ....     ....     ....
- 59.3092N / 104:     ....     ....     ....     ....  2.98846     ....  2.98379  2.98517     ....     ....     ....     ....
- 59.3023N / 103:     ....     ....     ....     ....     ....  2.98379  2.98297  2.98407     ....     ....     ....     ....
- 59.2955N / 102:     ....     ....     ....     ....     ....  2.98297     ....  2.98270     ....     ....     ....     ....
- 59.2886N / 101:     ....  2.99863     ....     ....     ....  2.98297  2.98077  2.98105     ....     ....     ....     ....
- 59.2817N / 100:     ....     ....  2.98956     ....     ....     ....  2.98132     ....     ....     ....     ....     ....
- 59.2748N /  99:     ....     ....  2.99149     ....     ....  2.98462  2.98050     ....     ....     ....     ....     ....
- 59.268N  /  98:     ....     ....  2.99341     ....     ....  2.98462  2.97967     ....     ....     ....     ....     ....
- 59.2611N /  97:     ....     ....  2.99561     ....     ....     ....  2.97967     ....     ....     ....     ....     ....
- 59.2542N /  96:     ....     ....  2.99615  3.00055     ....     ....  2.98132     ....     ....     ....     ....     ....
- 59.2473N /  95:     ....     ....  2.99643  2.99945     ....  2.98434  2.98709     ....     ....     ....     ....     ....
- 59.2405N /  94:     ....     ....     ....  2.99753     ....  2.98572  2.99286     ....     ....     ....     ....     ....
- 59.2336N /  93:     ....     ....     ....  2.99561  2.99588  2.98627  2.99313     ....     ....     ....     ....     ....
- 59.2267N /  92:     ....     ....     ....  2.99396  2.99451     ....  2.99588  2.99588     ....     ....     ....     ....
- 59.2198N /  91:     ....     ....     ....  2.99231  2.99341     ....  2.99643  2.99698     ....     ....     ....     ....
- 59.2129N /  90:     ....     ....     ....  2.99039  2.99176     ....  2.99561  2.99780     ....     ....     ....     ....
- 59.2061N /  89:     ....     ....     ....  2.98984  2.99231     ....  2.99396  2.99725     ....     ....     ....     ....
- 59.1992N /  88:     ....     ....     ....  2.98984  2.99176     ....     ....  2.99368     ....     ....     ....     ....
- 59.1923N /  87:     ....     ....     ....     ....  2.99203     ....     ....  2.99039     ....     ....     ....     ....
- 59.1854N /  86:     ....     ....     ....     ....  2.99451     ....     ....  2.98956     ....     ....     ....     ....
- 59.1785N /  85:     ....     ....     ....  2.99313  2.99670  2.99918     ....  2.98956     ....     ....     ....     ....
- 59.1716N /  84:     ....     ....     ....  2.99423  2.99808     ....     ....  2.99066     ....     ....     ....     ....
- 59.1647N /  83:     ....     ....     ....  2.99561  2.99780  3.00494     ....  2.99149     ....     ....     ....     ....
- 59.1578N /  82:     ....     ....     ....  2.99588  2.99835     ....     ....  2.99286     ....     ....     ....     ....
- 59.1509N /  81:     ....     ....     ....  2.99588  2.99945     ....  2.99506  2.99423     ....     ....     ....     ....
- 59.144N  /  80:     ....     ....     ....     ....  2.99973     ....  2.99561  2.99396     ....     ....     ....     ....
- 59.1371N /  79:     ....     ....     ....     ....  2.99973     ....  2.99643  2.99396     ....     ....     ....     ....
- 59.1302N /  78:     ....     ....     ....     ....  3.00055     ....  2.99808  2.99451     ....     ....     ....     ....
- 59.1233N /  77:     ....     ....     ....     ....  3.00247     ....  3.00027  2.99561     ....     ....     ....     ....
- 59.1164N /  76:     ....     ....     ....     ....  3.00385     ....  3.00110  2.99670     ....     ....     ....     ....
- 59.1095N /  75:     ....     ....     ....     ....     ....  3.00330  3.00275  2.99753     ....     ....     ....     ....
- 59.1026N /  74:     ....     ....     ....     ....     ....  3.00192     ....  2.99808     ....     ....     ....     ....
- 59.0957N /  73:     ....     ....     ....     ....  2.99643  3.00027     ....  2.99973     ....     ....     ....     ....
- 59.0888N /  72:     ....     ....     ....     ....  2.99615  3.00000     ....  3.00082     ....     ....     ....     ....
- 59.0819N /  71:     ....     ....     ....     ....  2.99670  3.00055  3.00412  3.00110     ....     ....     ....     ....
- 59.075N  /  70:     ....     ....     ....     ....  2.99780  3.00137  3.00302  3.00137     ....     ....     ....     ....
- 59.0681N /  69:     ....     ....     ....     ....  2.99890  3.00137  3.00082  3.00055     ....     ....     ....     ....
- 59.0612N /  68:     ....     ....     ....     ....  2.99863  3.00000     ....  2.99780     ....     ....     ....     ....
- 59.0542N /  67:     ....     ....     ....     ....  2.99835  2.99780     ....  2.99533     ....     ....     ....     ....
- 59.0473N /  66:     ....     ....     ....     ....  2.99808  2.99615     ....  2.99341     ....     ....     ....     ....
- 59.0404N /  65:     ....     ....     ....     ....  2.99780  2.99588  2.99368  2.99094     ....     ....     ....     ....
- 59.0335N /  64:     ....     ....     ....  2.99835  2.99753  2.99506  2.99286  2.98791     ....     ....     ....     ....
- 59.0266N /  63:     ....     ....     ....  2.99780     ....  2.99396  2.99039  2.98599     ....     ....     ....     ....
- 59.0196N /  62:     ....     ....     ....  2.99698     ....  2.99258     ....  2.98324     ....     ....     ....     ....
- 59.0127N /  61:     ....     ....     ....  2.99561     ....  2.99203  2.98572  2.97995     ....     ....     ....     ....
- 59.0058N /  60:     ....     ....     ....  2.99423     ....  2.99121  2.98572  2.97748     ....     ....     ....     ....
- 58.9989N /  59:     ....     ....     ....  2.99506     ....  2.99094  2.98572  2.97748     ....     ....     ....     ....
- 58.9919N /  58:     ....     ....     ....  2.99808     ....  2.99066  2.98489  2.97748     ....     ....     ....     ....
- 58.985N  /  57:     ....     ....     ....  3.00027     ....  2.99011  2.98407  2.97720     ....     ....     ....     ....
- 58.9781N /  56:     ....     ....     ....  3.00055     ....  2.98929  2.98160  2.97720     ....     ....     ....     ....
- 58.9711N /  55:     ....     ....     ....  3.00000     ....  2.98819  2.97693  2.97638     ....     ....     ....     ....
- 58.9642N /  54:     ....     ....     ....  2.99863     ....  2.98736  2.97775  2.97198     ....     ....     ....     ....
- 58.9573N /  53:     ....     ....     ....  2.99670     ....  2.98682  2.97803  2.96512     ....     ....     ....     ....
- 58.9503N /  52:     ....     ....     ....  2.99588  2.99203  2.98654  2.97830  2.96676     ....     ....     ....     ....
- 58.9434N /  51:     ....     ....     ....  2.99588  2.99231  2.98654  2.97748  2.96814     ....     ....     ....     ....
- 58.9365N /  50:     ....     ....     ....  2.99780  2.99258  2.98627  2.97665     ....     ....     ....     ....     ....
- 58.9295N /  49:     ....     ....     ....     ....  2.99231  2.98572  2.97638     ....     ....     ....     ....     ....
- 58.9226N /  48:     ....     ....     ....     ....  2.99286  2.98544  2.97610     ....     ....     ....     ....     ....
- 58.9156N /  47:     ....     ....     ....  2.99478  2.99423  2.98544  2.97528     ....     ....     ....     ....     ....
- 58.9087N /  46:     ....     ....     ....  2.99533  2.99368  2.98517  2.97500     ....     ....     ....     ....     ....
- 58.9017N /  45:     ....     ....     ....  2.99506  2.99286  2.98489  2.97528     ....     ....     ....     ....     ....
- 58.8948N /  44:     ....     ....     ....  2.99533  2.99231  2.98489  2.97528     ....     ....     ....     ....     ....
- 58.8878N /  43:     ....     ....     ....  2.99615  2.99176  2.98462  2.97555     ....     ....     ....     ....     ....
- 58.8809N /  42:     ....     ....     ....  2.99698  2.99258  2.98489  2.97638     ....     ....     ....     ....     ....
- 58.8739N /  41:     ....     ....     ....  2.99698  2.99341  2.98544  2.97555     ....     ....     ....     ....     ....
- 58.867N  /  40:     ....     ....     ....  2.99698  2.99341  2.98544  2.97418     ....     ....     ....     ....     ....
- 58.86N   /  39:     ....     ....     ....  2.99753  2.99368  2.98544  2.97171     ....     ....     ....     ....     ....
- 58.8531N /  38:     ....     ....     ....  2.99835  2.99368  2.98572  2.96786     ....     ....     ....     ....     ....
- 58.8461N /  37:     ....     ....     ....  2.99863  2.99368  2.98572  2.96621     ....     ....     ....     ....     ....
- 58.8392N /  36:     ....     ....     ....  2.99890  2.99368  2.98517  2.96814     ....     ....     ....     ....     ....
- 58.8322N /  35:     ....     ....     ....     ....  2.99313  2.98379  2.97061     ....     ....     ....     ....     ....
- 58.8252N /  34:     ....     ....     ....     ....  2.99258  2.98215  2.96896     ....     ....     ....     ....     ....
- 58.8183N /  33:     ....     ....     ....     ....  2.99121  2.98160  2.96814     ....     ....     ....     ....     ....
- 58.8113N /  32:     ....     ....     ....     ....  2.99094  2.98242  2.96869     ....     ....     ....  2.93408  2.92254
- 58.8043N /  31:     ....     ....     ....     ....  2.99341  2.98297  2.96759     ....     ....     ....  2.93463     ....
- 58.7974N /  30:     ....     ....     ....  3.00247  2.99286  2.98242  2.96621  2.94754     ....     ....  2.93545     ....
- 58.7904N /  29:     ....     ....     ....     ....  2.99149  2.98105  2.96567  2.94809     ....     ....     ....     ....
- 58.7834N /  28:     ....     ....     ....     ....  2.99094  2.97967  2.96512  2.94644     ....     ....  2.96374     ....
- 58.7765N /  27:     ....     ....     ....     ....  2.98956  2.97748  2.96347  2.94864     ....     ....  2.95880     ....
- 58.7695N /  26:     ....     ....     ....     ....  2.98874  2.97940  2.96484  2.95440     ....  2.94781  2.95660     ....
- 58.7625N /  25:     ....     ....     ....     ....  2.98846  2.98187  2.96869  2.95990     ....  2.95166  2.95495     ....
- 58.7555N /  24:     ....     ....     ....     ....  2.98791  2.98160  2.96896  2.96264     ....  2.95358  2.95303     ....
- 58.7486N /  23:     ....     ....     ....  2.98682  2.98627  2.97940  2.96841  2.96127     ....  2.95440  2.95056     ....
- 58.7416N /  22:     ....     ....     ....  2.98544  2.98462  2.97693  2.96731  2.95935     ....  2.95276  2.94616     ....
- 58.7346N /  21:     ....     ....     ....  2.98352  2.98297  2.97500  2.96484  2.95797  2.95166  2.94919  2.94507     ....
- 58.7276N /  20:     ....     ....     ....     ....  2.98160  2.97226  2.96292  2.95605  2.95138  2.94644  2.94232     ....
- 58.7206N /  19:     ....     ....     ....     ....  2.97995  2.96896  2.96209  2.95578  2.95056  2.94452     ....     ....
- 58.7137N /  18:     ....     ....     ....     ....  2.97858  2.97088  2.96292  2.95440  2.94891  2.94424     ....     ....
- 58.7067N /  17:     ....     ....     ....     ....  2.97775  2.97391  2.96402  2.95331  2.94699  2.94561     ....     ....
- 58.6997N /  16:     ....     ....     ....     ....  2.97748  2.97446  2.96457  2.95248  2.94507  2.94616     ....     ....
- 58.6927N /  15:     ....     ....     ....     ....  2.97803  2.97446  2.96457  2.95056  2.94424  2.94699     ....     ....
- 58.6857N /  14:     ....     ....     ....     ....  2.97967  2.97446  2.96567  2.94836  2.94397  2.94726     ....     ....
- 58.6787N /  13:     ....     ....     ....     ....  2.98050  2.97500  2.96924  2.95193  2.94534  2.94864     ....     ....
- 58.6717N /  12:     ....     ....     ....     ....  2.98215  2.97638  2.96814  2.95550  2.94424  2.95193     ....     ....
- 58.6647N /  11:     ....     ....     ....     ....  2.98270  2.97830  2.96539  2.94919     ....  2.95248     ....     ....
- 58.6577N /  10:     ....     ....     ....     ....  2.98215  2.97885  2.96594  2.94534     ....     ....     ....     ....
- 58.6507N /   9:     ....     ....     ....  2.98160  2.97995  2.97500  2.97088  2.95331     ....     ....     ....     ....
- 58.6437N /   8:     ....     ....     ....     ....  2.97967  2.97116  2.97198  2.95852     ....     ....     ....     ....
- 58.6367N /   7:     ....     ....     ....     ....  2.98160  2.97500  2.96841  2.96017     ....     ....     ....     ....
- 58.6297N /   6:     ....     ....     ....     ....  2.98132  2.97693  2.96896  2.96292  2.94946     ....     ....     ....
- 58.6227N /   5:     ....     ....     ....     ....  2.98160  2.97665  2.97143  2.96155  2.95221     ....     ....     ....
- 58.6157N /   4:     ....     ....     ....     ....  2.96951  2.96814  2.96484  2.95660  2.95138     ....     ....     ....
- 58.6087N /   3:     ....     ....     ....     ....  2.95276  2.95138  2.94397  2.96127  2.94644     ....     ....     ....
- 58.6017N /   2:     ....     ....     ....     ....  2.93957  2.93957  2.93957  2.93957  2.93957     ....     ....     ....
- 58.5947N /   1:     ....     ....     ....     ....  2.93957  2.93957  2.93957  2.93957  2.93957     ....     ....     ....
- 
- 
-! ******** V500 Additions below ***********
- 
-GO bn_reset
-cancel mode verify
-GO bn_odd_variable_name
-! make sure memory is limited; otherwise the abstract axis will list
-let save_mem = ($ferret_memory)
- !-> DEFINE VARIABLE save_mem = 25.6
-set mem /size=10
-use weird_name1.cdf
-sh data
-     currently SET data sets:
-    1> ./weird_name1.cdf  (default)
- name     title                             I         J         K         L         M         N
- v1       lower case v1                    1:20      ...       ...       ...       ...       ...
- v2-and-minus
-          SIN(2+I/10)                      1:20      ...       ...       ...       ...       ...
- V1       Upper case V1                    1:20      ...       ...       ...       ...       ...
- I        SIN(4+I/10)                      1:20      ...       ...       ...       ...       ...
- X        SIN(5+I/10)                      1:20      ...       ...       ...       ...       ...
- 
-set mode ignore
-list v1
-             VARIABLE : Upper case V1
-             FILENAME : weird_name1.cdf
-             SUBSET   : 20 points (X)
- 1    /  1:  0.041581
- 2    /  2: -0.058374
- 3    /  3: -0.157746
- 4    /  4: -0.255541
- 5    /  5: -0.350783
- 6    /  6: -0.442520
- 7    /  7: -0.529836
- 8    /  8: -0.611858
- 9    /  9: -0.687766
- 10   / 10: -0.756802
- 11   / 11: -0.818277
- 12   / 12: -0.871576
- 13   / 13: -0.916166
- 14   / 14: -0.951602
- 15   / 15: -0.977530
- 16   / 16: -0.993691
- 17   / 17: -0.999923
- 18   / 18: -0.996165
- 19   / 19: -0.982453
- 20   / 20: -0.958924
-list 'v1'
-             VARIABLE : lower case v1
-             FILENAME : weird_name1.cdf
-             SUBSET   : 20 points (X)
- 1    /  1:  0.891207
- 2    /  2:  0.932039
- 3    /  3:  0.963558
- 4    /  4:  0.985450
- 5    /  5:  0.997495
- 6    /  6:  0.999574
- 7    /  7:  0.991665
- 8    /  8:  0.973848
- 9    /  9:  0.946300
- 10   / 10:  0.909297
- 11   / 11:  0.863209
- 12   / 12:  0.808496
- 13   / 13:  0.745705
- 14   / 14:  0.675463
- 15   / 15:  0.598472
- 16   / 16:  0.515501
- 17   / 17:  0.427380
- 18   / 18:  0.334988
- 19   / 19:  0.239249
- 20   / 20:  0.141120
-list v2-and-minus    		! Deliberate error
-list 'v2-and-minus'  		! Now the proper syntax
-             VARIABLE : SIN(2+I/10)
-             FILENAME : weird_name1.cdf
-             SUBSET   : 20 points (X)
- 1    /  1:  0.863209
- 2    /  2:  0.808496
- 3    /  3:  0.745705
- 4    /  4:  0.675463
- 5    /  5:  0.598472
- 6    /  6:  0.515501
- 7    /  7:  0.427380
- 8    /  8:  0.334988
- 9    /  9:  0.239249
- 10   / 10:  0.141120
- 11   / 11:  0.041581
- 12   / 12: -0.058374
- 13   / 13: -0.157746
- 14   / 14: -0.255541
- 15   / 15: -0.350783
- 16   / 16: -0.442520
- 17   / 17: -0.529836
- 18   / 18: -0.611858
- 19   / 19: -0.687766
- 20   / 20: -0.756802
-list x 				! Deliberate error
-list 'X'			! Now the proper syntax
-             VARIABLE : SIN(5+I/10)
-             FILENAME : weird_name1.cdf
-             SUBSET   : 20 points (X)
- 1    /  1: -0.925815
- 2    /  2: -0.883455
- 3    /  3: -0.832267
- 4    /  4: -0.772764
- 5    /  5: -0.705540
- 6    /  6: -0.631267
- 7    /  7: -0.550686
- 8    /  8: -0.464602
- 9    /  9: -0.373877
- 10   / 10: -0.279415
- 11   / 11: -0.182163
- 12   / 12: -0.083090
- 13   / 13:  0.016814
- 14   / 14:  0.116549
- 15   / 15:  0.215120
- 16   / 16:  0.311541
- 17   / 17:  0.404850
- 18   / 18:  0.494114
- 19   / 19:  0.578440
- 20   / 20:  0.656987
-list i  			! Deliberate error
-list 'i'  			! Deliberate error
-list 'I'			! Now the proper syntax
-             VARIABLE : SIN(4+I/10)
-             FILENAME : weird_name1.cdf
-             SUBSET   : 20 points (X)
- 1    /  1: -0.818277
- 2    /  2: -0.871576
- 3    /  3: -0.916166
- 4    /  4: -0.951602
- 5    /  5: -0.977530
- 6    /  6: -0.993691
- 7    /  7: -0.999923
- 8    /  8: -0.996165
- 9    /  9: -0.982453
- 10   / 10: -0.958924
- 11   / 11: -0.925815
- 12   / 12: -0.883455
- 13   / 13: -0.832267
- 14   / 14: -0.772764
- 15   / 15: -0.705540
- 16   / 16: -0.631267
- 17   / 17: -0.550686
- 18   / 18: -0.464602
- 19   / 19: -0.373877
- 20   / 20: -0.279415
-list 'V1' - 'v1'
-             VARIABLE : 'V1' - 'v1'
-             FILENAME : weird_name1.cdf
-             SUBSET   : 20 points (X)
- 1    /  1: -0.84963
- 2    /  2: -0.99041
- 3    /  3: -1.12130
- 4    /  4: -1.24099
- 5    /  5: -1.34828
- 6    /  6: -1.44209
- 7    /  7: -1.52150
- 8    /  8: -1.58571
- 9    /  9: -1.63407
- 10   / 10: -1.66610
- 11   / 11: -1.68149
- 12   / 12: -1.68007
- 13   / 13: -1.66187
- 14   / 14: -1.62707
- 15   / 15: -1.57600
- 16   / 16: -1.50919
- 17   / 17: -1.42730
- 18   / 18: -1.33115
- 19   / 19: -1.22170
- 20   / 20: -1.10004
-list 'I'[i=6:15 at sbx:10] - 'X'[i=6:15 at ave]
-             VARIABLE : 'I'[I=6:15 at SBX:10] - 'X'[I=6:15 at AVE]
-             FILENAME : weird_name1.cdf
-             SUBSET   : 10 points (X)
- 6    /  6: -0.730346
- 7    /  7: -0.736317
- 8    /  8: -0.732716
- 9    /  9: -0.719579
- 10   / 10: -0.697038
- 11   / 11: -0.665317
- 12   / 12: -0.624734
- 13   / 13: -0.575694
- 14   / 14: -0.518687
- 15   / 15: -0.454283
-list v1[i=6:15 at sbx:3]
-             VARIABLE : Upper case V1
-                        box smoothed by 3 pts on X
-             FILENAME : weird_name1.cdf
-             SUBSET   : 10 points (X)
- 6    /  6: -0.441047
- 7    /  7: -0.528071
- 8    /  8: -0.609820
- 9    /  9: -0.685476
- 10   / 10: -0.754282
- 11   / 11: -0.815552
- 12   / 12: -0.868673
- 13   / 13: -0.913115
- 14   / 14: -0.948433
- 15   / 15: -0.974274
-list 'v1'[i=6:15 at sbx:3]
-             VARIABLE : lower case v1
-                        box smoothed by 3 pts on X
-             FILENAME : weird_name1.cdf
-             SUBSET   : 10 points (X)
- 6    /  6:  0.996244
- 7    /  7:  0.988362
- 8    /  8:  0.970604
- 9    /  9:  0.943148
- 10   / 10:  0.906269
- 11   / 11:  0.860334
- 12   / 12:  0.805804
- 13   / 13:  0.743222
- 14   / 14:  0.673213
- 15   / 15:  0.596479
-list 'I'-'X'/'v2-and-minus'
-             VARIABLE : 'I'-'X'/'v2-and-minus'
-             FILENAME : weird_name1.cdf
-             SUBSET   : 20 points (X)
- 1    /  1:  0.25425
- 2    /  2:  0.22114
- 3    /  3:  0.19991
- 4    /  4:  0.19245
- 5    /  5:  0.20137
- 6    /  6:  0.23088
- 7    /  7:  0.28859
- 8    /  8:  0.39076
- 9    /  9:  0.58026
- 10   / 10:  1.02106
- 11   / 11:  3.45512
- 12   / 12: -2.30685
- 13   / 13: -0.72568
- 14   / 14: -0.31668
- 15   / 15: -0.09228
- 16   / 16:  0.07275
- 17   / 17:  0.21342
- 18   / 18:  0.34296
- 19   / 19:  0.46716
- 20   / 20:  0.58869
-list v1[i=@max]
-             VARIABLE : Upper case V1
-             FILENAME : weird_name1.cdf
-             X        : 0.5 to 20.5 (maximum)
-          0.0415808
-list 'v1'[i=@max]
-             VARIABLE : lower case v1
-             FILENAME : weird_name1.cdf
-             X        : 0.5 to 20.5 (maximum)
-          0.999574
-list v2-and-minus[i=5:15 at ddc] 	! Deliberate error
-list 'v2-and-minus'[i=5:15 at ddc] ! Now the proper syntax
-             VARIABLE : SIN(2+I/10)
-                        centered derivative on X
-             FILENAME : weird_name1.cdf
-             SUBSET   : 11 points (X)
- 5    /  5: -0.0799809
- 6    /  6: -0.0855462
- 7    /  7: -0.0902566
- 8    /  8: -0.0940653
- 9    /  9: -0.0969341
- 10   / 10: -0.0988342
- 11   / 11: -0.0997471
- 12   / 12: -0.0996632
- 13   / 13: -0.0985835
- 14   / 14: -0.0965188
- 15   / 15: -0.0934896
-! restore orginal memory size
-set mem /size=`save_mem`
- !-> set mem /size=25.6
- 
-GO bn_reset
-cancel mode verify
-GO bn_test_stream
- 
-canc data/all
- 
-sp rm -f permutedBinaryTest.dat
-list/i=1:48/form=stream/file=permutedBinaryTest.dat i
-sp rm -f junk.dat
-list/i=1:5/form=stream/file=junk.dat i
- 
- 
- 
-!
-! Following are intentional errors...
-!
-set mode ignore
- 
-!
-! Ultra large grid
- 
-canc data/all
- 
-def axis/x=1:1000000000:1 xax
-def axis/y=1:2:1 yax
-def axis/z=1:3:1 zax
-def axis/t=1:4:1 tax
-def grid/x=xax/y=yax/z=zax/t=tax mygrid
- 
-file/format=stream/var=num/grid=mygrid junk.dat
-load num
- 
-!
-! Semilarge grid
-!
- 
-canc data/all
- 
-def axis/x=1:1000000000:1 xax
-def axis/y=1:1:1 yax
-def axis/z=1:1:1 zax
-def axis/t=1:1:1 tax
-def grid/x=xax/y=yax/z=zax/t=tax mygrid
- 
-file/format=stream/var=num/grid=mygrid junk.dat
-load num
- 
-canc data/all
- 
-def axis/x=1:1:1 xax
-def axis/y=1:2:1 yax
-def axis/z=1:3:1 zax
-def axis/t=1:4:1 tax
-def grid/x=xax/y=yax/z=zax/t=tax mygrid
- 
- 
- 
-! Non-existent file
-file/format=stream/var=num/grid=mygrid NoSuchFile.dat
- 
-! File that doesn't match specified size
-file/format=stream/var=num/grid=mygrid junk.dat
-load num
- 
-! Try listing with V permutation (disable: hangs Ferret)
-!list/clobber/file=foobar.dat/form=str/order=badsyntax/i=1:100 i
- 
-! Try reading in with V permutation for non-stream data
-file/var=num/order=vxyzt/grid=mygrid junk.dat
- 
-! Try /type flag with non-stream data
-file/type=i2/grid=mygrid junk.dat
- 
-! Try /swap flag with non-stream data
-file/type=i2/grid=mygrid junk.dat
- 
-! Try bad type flag
-file/var=num/type=i3/grid=mygrid/form=stream junk.dat
- 
-! Try list of types that is smaller than list of variables
-file/var=num,num1,num2/type=i2,i1/form=stream junk.dat
- 
-canc dat/all
-canc mode ignore
- 
-!!OK, load file in 'normal order'
-file/format=str/var=num,num1/grid=mygrid/order=xyztv permutedBinaryTest.dat
-list num
-             VARIABLE : NUM
-             FILENAME : permutedBinaryTest.dat
-             SUBSET   : 2 by 3 by 4 points (Y-Z-T)
-             X        : 1
-              1        2     
-              1        2
- ---- L:1 T:   1
- 1   / 1:   1.0000   2.0000
- 2   / 2:   3.0000   4.0000
- 3   / 3:   5.0000   6.0000
- ---- L:2 T:   2
- 1   / 1:   7.0000   8.0000
- 2   / 2:   9.0000  10.0000
- 3   / 3:  11.0000  12.0000
- ---- L:3 T:   3
- 1   / 1:  13.0000  14.0000
- 2   / 2:  15.0000  16.0000
- 3   / 3:  17.0000  18.0000
- ---- L:4 T:   4
- 1   / 1:  19.0000  20.0000
- 2   / 2:  21.0000  22.0000
- 3   / 3:  23.0000  24.0000
-list num1
-             VARIABLE : NUM1
-             FILENAME : permutedBinaryTest.dat
-             SUBSET   : 2 by 3 by 4 points (Y-Z-T)
-             X        : 1
-              1        2     
-              1        2
- ---- L:1 T:   1
- 1   / 1:  25.0000  26.0000
- 2   / 2:  27.0000  28.0000
- 3   / 3:  29.0000  30.0000
- ---- L:2 T:   2
- 1   / 1:  31.0000  32.0000
- 2   / 2:  33.0000  34.0000
- 3   / 3:  35.0000  36.0000
- ---- L:3 T:   3
- 1   / 1:  37.0000  38.0000
- 2   / 2:  39.0000  40.0000
- 3   / 3:  41.0000  42.0000
- ---- L:4 T:   4
- 1   / 1:  43.0000  44.0000
- 2   / 2:  45.0000  46.0000
- 3   / 3:  47.0000  48.0000
- 
-!! Load file w/o order qualifier (should be same as above)
-file/format=str/var=num,num1/grid=mygrid/order=xyztv permutedBinaryTest.dat
-list num
-             VARIABLE : NUM
-             FILENAME : permutedBinaryTest.dat
-             SUBSET   : 2 by 3 by 4 points (Y-Z-T)
-             X        : 1
-              1        2     
-              1        2
- ---- L:1 T:   1
- 1   / 1:   1.0000   2.0000
- 2   / 2:   3.0000   4.0000
- 3   / 3:   5.0000   6.0000
- ---- L:2 T:   2
- 1   / 1:   7.0000   8.0000
- 2   / 2:   9.0000  10.0000
- 3   / 3:  11.0000  12.0000
- ---- L:3 T:   3
- 1   / 1:  13.0000  14.0000
- 2   / 2:  15.0000  16.0000
- 3   / 3:  17.0000  18.0000
- ---- L:4 T:   4
- 1   / 1:  19.0000  20.0000
- 2   / 2:  21.0000  22.0000
- 3   / 3:  23.0000  24.0000
-list num1
-             VARIABLE : NUM1
-             FILENAME : permutedBinaryTest.dat
-             SUBSET   : 2 by 3 by 4 points (Y-Z-T)
-             X        : 1
-              1        2     
-              1        2
- ---- L:1 T:   1
- 1   / 1:  25.0000  26.0000
- 2   / 2:  27.0000  28.0000
- 3   / 3:  29.0000  30.0000
- ---- L:2 T:   2
- 1   / 1:  31.0000  32.0000
- 2   / 2:  33.0000  34.0000
- 3   / 3:  35.0000  36.0000
- ---- L:3 T:   3
- 1   / 1:  37.0000  38.0000
- 2   / 2:  39.0000  40.0000
- 3   / 3:  41.0000  42.0000
- ---- L:4 T:   4
- 1   / 1:  43.0000  44.0000
- 2   / 2:  45.0000  46.0000
- 3   / 3:  47.0000  48.0000
- 
- 
-!! Permute tzyxv
-file/format=str/var=num,num1/grid=mygrid/order=tzyxv permutedBinaryTest.dat
-list num
-             VARIABLE : NUM
-             FILENAME : permutedBinaryTest.dat
-             SUBSET   : 2 by 3 by 4 points (Y-Z-T)
-             X        : 1
-              1        2     
-              1        2
- ---- L:1 T:   1
- 1   / 1:   1.0000  13.0000
- 2   / 2:   5.0000  17.0000
- 3   / 3:   9.0000  21.0000
- ---- L:2 T:   2
- 1   / 1:   2.0000  14.0000
- 2   / 2:   6.0000  18.0000
- 3   / 3:  10.0000  22.0000
- ---- L:3 T:   3
- 1   / 1:   3.0000  15.0000
- 2   / 2:   7.0000  19.0000
- 3   / 3:  11.0000  23.0000
- ---- L:4 T:   4
- 1   / 1:   4.0000  16.0000
- 2   / 2:   8.0000  20.0000
- 3   / 3:  12.0000  24.0000
-list num1
-             VARIABLE : NUM1
-             FILENAME : permutedBinaryTest.dat
-             SUBSET   : 2 by 3 by 4 points (Y-Z-T)
-             X        : 1
-              1        2     
-              1        2
- ---- L:1 T:   1
- 1   / 1:  25.0000  37.0000
- 2   / 2:  29.0000  41.0000
- 3   / 3:  33.0000  45.0000
- ---- L:2 T:   2
- 1   / 1:  26.0000  38.0000
- 2   / 2:  30.0000  42.0000
- 3   / 3:  34.0000  46.0000
- ---- L:3 T:   3
- 1   / 1:  27.0000  39.0000
- 2   / 2:  31.0000  43.0000
- 3   / 3:  35.0000  47.0000
- ---- L:4 T:   4
- 1   / 1:  28.0000  40.0000
- 2   / 2:  32.0000  44.0000
- 3   / 3:  36.0000  48.0000
- 
-!!Try permuted v
-file/format=str/var=num,num1/grid=mygrid/order=vxyzt permutedBinaryTest.dat
-list num
-             VARIABLE : NUM
-             FILENAME : permutedBinaryTest.dat
-             SUBSET   : 2 by 3 by 4 points (Y-Z-T)
-             X        : 1
-              1        2     
-              1        2
- ---- L:1 T:   1
- 1   / 1:   1.0000   3.0000
- 2   / 2:   5.0000   7.0000
- 3   / 3:   9.0000  11.0000
- ---- L:2 T:   2
- 1   / 1:  13.0000  15.0000
- 2   / 2:  17.0000  19.0000
- 3   / 3:  21.0000  23.0000
- ---- L:3 T:   3
- 1   / 1:  25.0000  27.0000
- 2   / 2:  29.0000  31.0000
- 3   / 3:  33.0000  35.0000
- ---- L:4 T:   4
- 1   / 1:  37.0000  39.0000
- 2   / 2:  41.0000  43.0000
- 3   / 3:  45.0000  47.0000
-list num1
-             VARIABLE : NUM1
-             FILENAME : permutedBinaryTest.dat
-             SUBSET   : 2 by 3 by 4 points (Y-Z-T)
-             X        : 1
-              1        2     
-              1        2
- ---- L:1 T:   1
- 1   / 1:   2.0000   4.0000
- 2   / 2:   6.0000   8.0000
- 3   / 3:  10.0000  12.0000
- ---- L:2 T:   2
- 1   / 1:  14.0000  16.0000
- 2   / 2:  18.0000  20.0000
- 3   / 3:  22.0000  24.0000
- ---- L:3 T:   3
- 1   / 1:  26.0000  28.0000
- 2   / 2:  30.0000  32.0000
- 3   / 3:  34.0000  36.0000
- ---- L:4 T:   4
- 1   / 1:  38.0000  40.0000
- 2   / 2:  42.0000  44.0000
- 3   / 3:  46.0000  48.0000
- 
-!! Test stuff for different data types (files previously generated by matlab
-!! for big endian architecture)
-file/format=str/var=num,num1/grid=mygrid/type=i1 byte.dat
-list num1
-             VARIABLE : NUM1
-             FILENAME : byte.dat
-             SUBSET   : 2 by 3 by 4 points (Y-Z-T)
-             X        : 1
-              1        2     
-              1        2
- ---- L:1 T:   1
- 1   / 1:  24.0000  25.0000
- 2   / 2:  26.0000  27.0000
- 3   / 3:  28.0000  29.0000
- ---- L:2 T:   2
- 1   / 1:  30.0000  31.0000
- 2   / 2:  32.0000  33.0000
- 3   / 3:  34.0000  35.0000
- ---- L:3 T:   3
- 1   / 1:  36.0000  37.0000
- 2   / 2:  38.0000  39.0000
- 3   / 3:  40.0000  41.0000
- ---- L:4 T:   4
- 1   / 1:  42.0000  43.0000
- 2   / 2:  44.0000  45.0000
- 3   / 3:  46.0000  47.0000
- 
-file/format=str/var=num,num1/grid=mygrid/type=i2/swap short.dat
-list num1
-             VARIABLE : NUM1
-             FILENAME : short.dat
-             SUBSET   : 2 by 3 by 4 points (Y-Z-T)
-             X        : 1
-              1        2     
-              1        2
- ---- L:1 T:   1
- 1   / 1:  24.0000  25.0000
- 2   / 2:  26.0000  27.0000
- 3   / 3:  28.0000  29.0000
- ---- L:2 T:   2
- 1   / 1:  30.0000  31.0000
- 2   / 2:  32.0000  33.0000
- 3   / 3:  34.0000  35.0000
- ---- L:3 T:   3
- 1   / 1:  36.0000  37.0000
- 2   / 2:  38.0000  39.0000
- 3   / 3:  40.0000  41.0000
- ---- L:4 T:   4
- 1   / 1:  42.0000  43.0000
- 2   / 2:  44.0000  45.0000
- 3   / 3:  46.0000  47.0000
- 
-file/format=str/var=num,num1/grid=mygrid/type=i4/swap int.dat
-list num1
-             VARIABLE : NUM1
-             FILENAME : int.dat
-             SUBSET   : 2 by 3 by 4 points (Y-Z-T)
-             X        : 1
-              1        2     
-              1        2
- ---- L:1 T:   1
- 1   / 1:  24.0000  25.0000
- 2   / 2:  26.0000  27.0000
- 3   / 3:  28.0000  29.0000
- ---- L:2 T:   2
- 1   / 1:  30.0000  31.0000
- 2   / 2:  32.0000  33.0000
- 3   / 3:  34.0000  35.0000
- ---- L:3 T:   3
- 1   / 1:  36.0000  37.0000
- 2   / 2:  38.0000  39.0000
- 3   / 3:  40.0000  41.0000
- ---- L:4 T:   4
- 1   / 1:  42.0000  43.0000
- 2   / 2:  44.0000  45.0000
- 3   / 3:  46.0000  47.0000
- 
-file/format=str/var=num,num1/grid=mygrid/type=r4/swap float.dat
-list num1
-             VARIABLE : NUM1
-             FILENAME : float.dat
-             SUBSET   : 2 by 3 by 4 points (Y-Z-T)
-             X        : 1
-              1        2     
-              1        2
- ---- L:1 T:   1
- 1   / 1:  24.0000  25.0000
- 2   / 2:  26.0000  27.0000
- 3   / 3:  28.0000  29.0000
- ---- L:2 T:   2
- 1   / 1:  30.0000  31.0000
- 2   / 2:  32.0000  33.0000
- 3   / 3:  34.0000  35.0000
- ---- L:3 T:   3
- 1   / 1:  36.0000  37.0000
- 2   / 2:  38.0000  39.0000
- 3   / 3:  40.0000  41.0000
- ---- L:4 T:   4
- 1   / 1:  42.0000  43.0000
- 2   / 2:  44.0000  45.0000
- 3   / 3:  46.0000  47.0000
- 
-file/format=str/var=num,num1/grid=mygrid/type=r8/swap double.dat
-list num1
-             VARIABLE : NUM1
-             FILENAME : double.dat
-             SUBSET   : 2 by 3 by 4 points (Y-Z-T)
-             X        : 1
-              1        2     
-              1        2
- ---- L:1 T:   1
- 1   / 1:  24.0000  25.0000
- 2   / 2:  26.0000  27.0000
- 3   / 3:  28.0000  29.0000
- ---- L:2 T:   2
- 1   / 1:  30.0000  31.0000
- 2   / 2:  32.0000  33.0000
- 3   / 3:  34.0000  35.0000
- ---- L:3 T:   3
- 1   / 1:  36.0000  37.0000
- 2   / 2:  38.0000  39.0000
- 3   / 3:  40.0000  41.0000
- ---- L:4 T:   4
- 1   / 1:  42.0000  43.0000
- 2   / 2:  44.0000  45.0000
- 3   / 3:  46.0000  47.0000
- 
- 
-!! Test swapped
-file/format=str/var=num,num1/grid=mygrid/type=i1 byteSwapped.dat
-list num1
-             VARIABLE : NUM1
-             FILENAME : byteSwapped.dat
-             SUBSET   : 2 by 3 by 4 points (Y-Z-T)
-             X        : 1
-              1        2     
-              1        2
- ---- L:1 T:   1
- 1   / 1:  24.0000  25.0000
- 2   / 2:  26.0000  27.0000
- 3   / 3:  28.0000  29.0000
- ---- L:2 T:   2
- 1   / 1:  30.0000  31.0000
- 2   / 2:  32.0000  33.0000
- 3   / 3:  34.0000  35.0000
- ---- L:3 T:   3
- 1   / 1:  36.0000  37.0000
- 2   / 2:  38.0000  39.0000
- 3   / 3:  40.0000  41.0000
- ---- L:4 T:   4
- 1   / 1:  42.0000  43.0000
- 2   / 2:  44.0000  45.0000
- 3   / 3:  46.0000  47.0000
- 
-file/format=str/var=num,num1/grid=mygrid/type=i2 shortSwapped.dat
-list num1
-             VARIABLE : NUM1
-             FILENAME : shortSwapped.dat
-             SUBSET   : 2 by 3 by 4 points (Y-Z-T)
-             X        : 1
-              1        2     
-              1        2
- ---- L:1 T:   1
- 1   / 1:  24.0000  25.0000
- 2   / 2:  26.0000  27.0000
- 3   / 3:  28.0000  29.0000
- ---- L:2 T:   2
- 1   / 1:  30.0000  31.0000
- 2   / 2:  32.0000  33.0000
- 3   / 3:  34.0000  35.0000
- ---- L:3 T:   3
- 1   / 1:  36.0000  37.0000
- 2   / 2:  38.0000  39.0000
- 3   / 3:  40.0000  41.0000
- ---- L:4 T:   4
- 1   / 1:  42.0000  43.0000
- 2   / 2:  44.0000  45.0000
- 3   / 3:  46.0000  47.0000
- 
-file/format=str/var=num,num1/grid=mygrid/type=i4 intSwapped.dat
-list num1
-             VARIABLE : NUM1
-             FILENAME : intSwapped.dat
-             SUBSET   : 2 by 3 by 4 points (Y-Z-T)
-             X        : 1
-              1        2     
-              1        2
- ---- L:1 T:   1
- 1   / 1:  24.0000  25.0000
- 2   / 2:  26.0000  27.0000
- 3   / 3:  28.0000  29.0000
- ---- L:2 T:   2
- 1   / 1:  30.0000  31.0000
- 2   / 2:  32.0000  33.0000
- 3   / 3:  34.0000  35.0000
- ---- L:3 T:   3
- 1   / 1:  36.0000  37.0000
- 2   / 2:  38.0000  39.0000
- 3   / 3:  40.0000  41.0000
- ---- L:4 T:   4
- 1   / 1:  42.0000  43.0000
- 2   / 2:  44.0000  45.0000
- 3   / 3:  46.0000  47.0000
- 
-file/format=str/var=num,num1/grid=mygrid/type=r4 floatSwapped.dat
-list num1
-             VARIABLE : NUM1
-             FILENAME : floatSwapped.dat
-             SUBSET   : 2 by 3 by 4 points (Y-Z-T)
-             X        : 1
-              1        2     
-              1        2
- ---- L:1 T:   1
- 1   / 1:  24.0000  25.0000
- 2   / 2:  26.0000  27.0000
- 3   / 3:  28.0000  29.0000
- ---- L:2 T:   2
- 1   / 1:  30.0000  31.0000
- 2   / 2:  32.0000  33.0000
- 3   / 3:  34.0000  35.0000
- ---- L:3 T:   3
- 1   / 1:  36.0000  37.0000
- 2   / 2:  38.0000  39.0000
- 3   / 3:  40.0000  41.0000
- ---- L:4 T:   4
- 1   / 1:  42.0000  43.0000
- 2   / 2:  44.0000  45.0000
- 3   / 3:  46.0000  47.0000
- 
-file/format=str/var=num,num1/grid=mygrid/type=r8 doubleSwapped.dat
-list num1
-             VARIABLE : NUM1
-             FILENAME : doubleSwapped.dat
-             SUBSET   : 2 by 3 by 4 points (Y-Z-T)
-             X        : 1
-              1        2     
-              1        2
- ---- L:1 T:   1
- 1   / 1:  24.0000  25.0000
- 2   / 2:  26.0000  27.0000
- 3   / 3:  28.0000  29.0000
- ---- L:2 T:   2
- 1   / 1:  30.0000  31.0000
- 2   / 2:  32.0000  33.0000
- 3   / 3:  34.0000  35.0000
- ---- L:3 T:   3
- 1   / 1:  36.0000  37.0000
- 2   / 2:  38.0000  39.0000
- 3   / 3:  40.0000  41.0000
- ---- L:4 T:   4
- 1   / 1:  42.0000  43.0000
- 2   / 2:  44.0000  45.0000
- 3   / 3:  46.0000  47.0000
- 
-! Test skip
-!file/format=str/var=num,num1/grid=mygrid/type=r8/skip=4/swap skip.dat
-! For double-precision Ferret, /skip=4 stops with error,
-! get correct result with /skip=2 (??)
-file/format=str/var=num,num1/grid=mygrid/type=r8/skip=2/swap skip.dat
-list num1
-             VARIABLE : NUM1
-             FILENAME : skip.dat
-             SUBSET   : 2 by 3 by 4 points (Y-Z-T)
-             X        : 1
-              1        2     
-              1        2
- ---- L:1 T:   1
- 1   / 1:  24.0000  25.0000
- 2   / 2:  26.0000  27.0000
- 3   / 3:  28.0000  29.0000
- ---- L:2 T:   2
- 1   / 1:  30.0000  31.0000
- 2   / 2:  32.0000  33.0000
- 3   / 3:  34.0000  35.0000
- ---- L:3 T:   3
- 1   / 1:  36.0000  37.0000
- 2   / 2:  38.0000  39.0000
- 3   / 3:  40.0000  41.0000
- ---- L:4 T:   4
- 1   / 1:  42.0000  43.0000
- 2   / 2:  44.0000  45.0000
- 3   / 3:  46.0000  47.0000
- 
- 
-! Try list of types
-file/format=str/var=num,num1/grid=mygrid/type=r8,i1/swap twoType.dat
-list num
-             VARIABLE : NUM
-             FILENAME : twoType.dat
-             SUBSET   : 2 by 3 by 4 points (Y-Z-T)
-             X        : 1
-              1        2     
-              1        2
- ---- L:1 T:   1
- 1   / 1:   0.0000   1.0000
- 2   / 2:   2.0000   3.0000
- 3   / 3:   4.0000   5.0000
- ---- L:2 T:   2
- 1   / 1:   6.0000   7.0000
- 2   / 2:   8.0000   9.0000
- 3   / 3:  10.0000  11.0000
- ---- L:3 T:   3
- 1   / 1:  12.0000  13.0000
- 2   / 2:  14.0000  15.0000
- 3   / 3:  16.0000  17.0000
- ---- L:4 T:   4
- 1   / 1:  18.0000  19.0000
- 2   / 2:  20.0000  21.0000
- 3   / 3:  22.0000  23.0000
-list num1
-             VARIABLE : NUM1
-             FILENAME : twoType.dat
-             SUBSET   : 2 by 3 by 4 points (Y-Z-T)
-             X        : 1
-              1        2     
-              1        2
- ---- L:1 T:   1
- 1   / 1:  24.0000  25.0000
- 2   / 2:  26.0000  27.0000
- 3   / 3:  28.0000  29.0000
- ---- L:2 T:   2
- 1   / 1:  30.0000  31.0000
- 2   / 2:  32.0000  33.0000
- 3   / 3:  34.0000  35.0000
- ---- L:3 T:   3
- 1   / 1:  36.0000  37.0000
- 2   / 2:  38.0000  39.0000
- 3   / 3:  40.0000  41.0000
- ---- L:4 T:   4
- 1   / 1:  42.0000  43.0000
- 2   / 2:  44.0000  45.0000
- 3   / 3:  46.0000  47.0000
- 
-! Grand finale of xyvzt permutation with r4,i2 types
-file/format=str/var=num,num1/grid=mygrid/type=r4,i2/order=xyvzt/swap finale.dat
-list num
-             VARIABLE : NUM
-             FILENAME : finale.dat
-             SUBSET   : 2 by 3 by 4 points (Y-Z-T)
-             X        : 1
-              1        2     
-              1        2
- ---- L:1 T:   1
- 1   / 1:   0.0000   1.0000
- 2   / 2:   2.0000   3.0000
- 3   / 3:   4.0000   5.0000
- ---- L:2 T:   2
- 1   / 1:   6.0000   7.0000
- 2   / 2:   8.0000   9.0000
- 3   / 3:  10.0000  11.0000
- ---- L:3 T:   3
- 1   / 1:  12.0000  13.0000
- 2   / 2:  14.0000  15.0000
- 3   / 3:  16.0000  17.0000
- ---- L:4 T:   4
- 1   / 1:  18.0000  19.0000
- 2   / 2:  20.0000  21.0000
- 3   / 3:  22.0000  23.0000
-list num1
-             VARIABLE : NUM1
-             FILENAME : finale.dat
-             SUBSET   : 2 by 3 by 4 points (Y-Z-T)
-             X        : 1
-              1        2     
-              1        2
- ---- L:1 T:   1
- 1   / 1:   0.0000   1.0000
- 2   / 2:   2.0000   3.0000
- 3   / 3:   4.0000   5.0000
- ---- L:2 T:   2
- 1   / 1:   6.0000   7.0000
- 2   / 2:   8.0000   9.0000
- 3   / 3:  10.0000  11.0000
- ---- L:3 T:   3
- 1   / 1:  12.0000  13.0000
- 2   / 2:  14.0000  15.0000
- 3   / 3:  16.0000  17.0000
- ---- L:4 T:   4
- 1   / 1:  18.0000  19.0000
- 2   / 2:  20.0000  21.0000
- 3   / 3:  22.0000  23.0000
- 
-GO bn_reset
-cancel mode verify
-GO bn_define_axes
-! bn_define_axes.jnl
-! *sh* 5/99
-! *sh* 12/99 - with streamlined syntax
- 
-! exercise the DEFINE AXIS command
- 
- 
-! ====================== REGULAR ==================
-! lo:hi:delta
-define axis/x=1:5:1 xax
-show axis/x xax
- name       axis              # pts   start                end
- XAX       X                    5 r   1                    5
-   Axis span (to cell edges) = 5
- 
-       I     X                   XBOX      XBOXLO
-       1>  1                     1          0.5
-       2>  2                     1          1.5
-       3>  3                     1          2.5
-       4>  4                     1          3.5
-       5>  5                     1          4.5
-define axis/x=1:5:1/edges xax
-show axis/x xax
- name       axis              # pts   start                end
- XAX       X                    4 r   1.5                  4.5
-   Axis span (to cell edges) = 4
- 
-       I     X                   XBOX      XBOXLO
-       1>  1.5                   1          1
-       2>  2.5                   1          2
-       3>  3.5                   1          3
-       4>  4.5                   1          4
- 
-! lo:hi /NPOINTS>1
-define axis/x=1:5/npoints=5 xax
-show axis/x xax
- name       axis              # pts   start                end
- XAX       X                    5 r   1                    5
-   Axis span (to cell edges) = 5
- 
-       I     X                   XBOX      XBOXLO
-       1>  1                     1          0.5
-       2>  2                     1          1.5
-       3>  3                     1          2.5
-       4>  4                     1          3.5
-       5>  5                     1          4.5
-define axis/x=1:5/npoints=4/edges xax
-show axis/x xax
- name       axis              # pts   start                end
- XAX       X                    4 r   1.5                  4.5
-   Axis span (to cell edges) = 4
- 
-       I     X                   XBOX      XBOXLO
-       1>  1.5                   1          1
-       2>  2.5                   1          2
-       3>  3.5                   1          3
-       4>  4.5                   1          4
- 
-! lo:hi /NPOINTS=1
-set mode ignore; define axis/x=1:5/npoints=1 xax; cancel mode ignore
-define axis/x=5/npoints=1 xax
-show axis/x xax
- name       axis              # pts   start                end
- XAX       X                    1 r   5                    5
-   Axis span (to cell edges) = 1
- 
-       I     X                   XBOX      XBOXLO
-       1>  5                     1          4.5
-set mode ignore; define axis/x=5/npoints=1/edges xax; cancel mode ignore
-define axis/x=1:5/npoints=1/edges xax
-show axis/x xax
- name       axis              # pts   start                end
- XAX       X                    1 r   3                    3
-   Axis span (to cell edges) = 4
- 
-       I     X                   XBOX      XBOXLO
-       1>  3                     4          1
- 
-!======= calendar
-! lo:hi:delta
-define axis/t=15-jan-1980:25-jan-1980:1/unit=days tax
-show axis/t tax
- name       axis              # pts   start                end
- TAX       TIME                11 r   15-JAN-1980 00:00    25-JAN-1980 00:00
-T0 = 15-JAN-1901
-   Axis span (to cell edges) = 11
- 
-       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
-       1>  15-JAN-1980 00:00:00  1          14-JAN-1980 12:00:00    28854
-       2>  16-JAN-1980 00:00:00  1          15-JAN-1980 12:00:00    28855
-       3>  17-JAN-1980 00:00:00  1          16-JAN-1980 12:00:00    28856
-       4>  18-JAN-1980 00:00:00  1          17-JAN-1980 12:00:00    28857
-       5>  19-JAN-1980 00:00:00  1          18-JAN-1980 12:00:00    28858
-       6>  20-JAN-1980 00:00:00  1          19-JAN-1980 12:00:00    28859
-       7>  21-JAN-1980 00:00:00  1          20-JAN-1980 12:00:00    28860
-       8>  22-JAN-1980 00:00:00  1          21-JAN-1980 12:00:00    28861
-       9>  23-JAN-1980 00:00:00  1          22-JAN-1980 12:00:00    28862
-      10>  24-JAN-1980 00:00:00  1          23-JAN-1980 12:00:00    28863
-      11>  25-JAN-1980 00:00:00  1          24-JAN-1980 12:00:00    28864
-define axis/t=15-jan-1980:25-jan-1980:1/unit=days/edges tax
-show axis/t tax
- name       axis              # pts   start                end
- TAX       TIME                10 r   15-JAN-1980 12:00    24-JAN-1980 12:00
-T0 = 15-JAN-1901
-   Axis span (to cell edges) = 10
- 
-       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
-       1>  15-JAN-1980 12:00:00  1          15-JAN-1980 00:00:00    28854.5
-       2>  16-JAN-1980 12:00:00  1          16-JAN-1980 00:00:00    28855.5
-       3>  17-JAN-1980 12:00:00  1          17-JAN-1980 00:00:00    28856.5
-       4>  18-JAN-1980 12:00:00  1          18-JAN-1980 00:00:00    28857.5
-       5>  19-JAN-1980 12:00:00  1          19-JAN-1980 00:00:00    28858.5
-       6>  20-JAN-1980 12:00:00  1          20-JAN-1980 00:00:00    28859.5
-       7>  21-JAN-1980 12:00:00  1          21-JAN-1980 00:00:00    28860.5
-       8>  22-JAN-1980 12:00:00  1          22-JAN-1980 00:00:00    28861.5
-       9>  23-JAN-1980 12:00:00  1          23-JAN-1980 00:00:00    28862.5
-      10>  24-JAN-1980 12:00:00  1          24-JAN-1980 00:00:00    28863.5
- 
-! lo:hi /NPOINTS>1
-define axis/t=15-jan-1980:25-jan-1980/npoints=11/unit=days tax
-show axis/t tax
- name       axis              # pts   start                end
- TAX       TIME                11 r   15-JAN-1980 00:00    25-JAN-1980 00:00
-T0 = 15-JAN-1901
-   Axis span (to cell edges) = 11
- 
-       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
-       1>  15-JAN-1980 00:00:00  1          14-JAN-1980 12:00:00    28854
-       2>  16-JAN-1980 00:00:00  1          15-JAN-1980 12:00:00    28855
-       3>  17-JAN-1980 00:00:00  1          16-JAN-1980 12:00:00    28856
-       4>  18-JAN-1980 00:00:00  1          17-JAN-1980 12:00:00    28857
-       5>  19-JAN-1980 00:00:00  1          18-JAN-1980 12:00:00    28858
-       6>  20-JAN-1980 00:00:00  1          19-JAN-1980 12:00:00    28859
-       7>  21-JAN-1980 00:00:00  1          20-JAN-1980 12:00:00    28860
-       8>  22-JAN-1980 00:00:00  1          21-JAN-1980 12:00:00    28861
-       9>  23-JAN-1980 00:00:00  1          22-JAN-1980 12:00:00    28862
-      10>  24-JAN-1980 00:00:00  1          23-JAN-1980 12:00:00    28863
-      11>  25-JAN-1980 00:00:00  1          24-JAN-1980 12:00:00    28864
-define axis/t=15-jan-1980:25-jan-1980/npoints=10/unit=days/edges tax
-show axis/t tax
- name       axis              # pts   start                end
- TAX       TIME                10 r   15-JAN-1980 12:00    24-JAN-1980 12:00
-T0 = 15-JAN-1901
-   Axis span (to cell edges) = 10
- 
-       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
-       1>  15-JAN-1980 12:00:00  1          15-JAN-1980 00:00:00    28854.5
-       2>  16-JAN-1980 12:00:00  1          16-JAN-1980 00:00:00    28855.5
-       3>  17-JAN-1980 12:00:00  1          17-JAN-1980 00:00:00    28856.5
-       4>  18-JAN-1980 12:00:00  1          18-JAN-1980 00:00:00    28857.5
-       5>  19-JAN-1980 12:00:00  1          19-JAN-1980 00:00:00    28858.5
-       6>  20-JAN-1980 12:00:00  1          20-JAN-1980 00:00:00    28859.5
-       7>  21-JAN-1980 12:00:00  1          21-JAN-1980 00:00:00    28860.5
-       8>  22-JAN-1980 12:00:00  1          22-JAN-1980 00:00:00    28861.5
-       9>  23-JAN-1980 12:00:00  1          23-JAN-1980 00:00:00    28862.5
-      10>  24-JAN-1980 12:00:00  1          24-JAN-1980 00:00:00    28863.5
- 
- 
-! lo:hi /NPOINTS=1
-set mode ignore; define axis/t=15-jan-1980:25-jan-1980/npoints=1/unit=days tax; cancel mode ignore
-define axis/t=15-jan-1980/npoints=1/unit=days tax
-show axis/t tax
- name       axis              # pts   start                end
- TAX       TIME                 1 r   15-JAN-1980 00:00    15-JAN-1980 00:00
-T0 = 15-JAN-1901
-   Axis span (to cell edges) = 1
- 
-       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
-       1>  15-JAN-1980 00:00:00  1          14-JAN-1980 12:00:00    28854
-set mode ignore; define axis/t=15-jan-1980/npoints=1/unit=days/edges tax; cancel mode ignore
-define axis/t=15-jan-1980:25-jan-1980/npoints=1/unit=days/edges tax
-show axis/t tax
- name       axis              # pts   start                end
- TAX       TIME                 1 r   20-JAN-1980 00:00    20-JAN-1980 00:00
-T0 = 15-JAN-1901
-   Axis span (to cell edges) = 10
- 
-       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
-       1>  20-JAN-1980 00:00:00  10         15-JAN-1980 00:00:00    28859
- 
-! =============== IRREGULAR ===================
-define axis/x/from_data/name=xax {1,2,5}
-show axis/x xax
- name       axis              # pts   start                end
- XAX       X                    3 i   1                    5
-   Axis span (to cell edges) = 6
- 
-       I     X                   XBOX      XBOXLO
-       1>  1                     1          0.5
-       2>  2                     2          1.5
-       3>  5                     3          3.5
-define axis/x/from_data/name=xax/edges {1,2,5}
-show axis/x xax
- name       axis              # pts   start                end
- XAX       X                    2 i   1.5                  3.5
-   Axis span (to cell edges) = 4
- 
-       I     X                   XBOX      XBOXLO
-       1>  1.5                   1          1
-       2>  3.5                   3          2
- 
-!======= calendar
-define axis/t/from_data/name=tax/unit=days/t0=1-jan-1990 {1,2,5}
-show axis/t tax
- name       axis              # pts   start                end
- TAX       TIME                 3 i   02-JAN-1990 00:00    06-JAN-1990 00:00
-T0 = 1-JAN-1990
-   Axis span (to cell edges) = 6
- 
-       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
-       1>  02-JAN-1990 00:00:00  1          01-JAN-1990 12:00:00    1
-       2>  03-JAN-1990 00:00:00  2          02-JAN-1990 12:00:00    2
-       3>  06-JAN-1990 00:00:00  3          04-JAN-1990 12:00:00    5
-define axis/t/from_data/name=tax/unit=days/t0=1-jan-1990/edges {1,2,5}
-show axis/t tax
- name       axis              # pts   start                end
- TAX       TIME                 2 i   02-JAN-1990 12:00    04-JAN-1990 12:00
-T0 = 1-JAN-1990
-   Axis span (to cell edges) = 4
- 
-       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
-       1>  02-JAN-1990 12:00:00  1          02-JAN-1990 00:00:00    1.5
-       2>  04-JAN-1990 12:00:00  3          03-JAN-1990 00:00:00    3.5
- 
-! real monthly calendar
-let month = MOD(l-1,12)+1
-let add_year = INT((l-1)/12)
-let tstep = DAYS1900(1980+add_year,month,1)
-define axis/from_data/T/units=days/name=tax/t0=1-jan-1900/edges tstep[l=1:`20*12+1`]
- !-> define axis/from_data/T/units=days/name=tax/t0=1-jan-1900/edges tstep[l=1:241]
-show axis/l=1:20 tax
- name       axis              # pts   start                end
- TAX       TIME               240 i   16-JAN-1980 12:00    16-DEC-1999 12:00
-T0 = 1-JAN-1900
-   Axis span (to cell edges) = 7305
- 
-       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
-       1>  16-JAN-1980 12:00:00  31         01-JAN-1980 00:00:00    29234.5
-       2>  15-FEB-1980 12:00:00  29         01-FEB-1980 00:00:00    29264.5
-       3>  16-MAR-1980 12:00:00  31         01-MAR-1980 00:00:00    29294.5
-       4>  16-APR-1980 00:00:00  30         01-APR-1980 00:00:00    29325
-       5>  16-MAY-1980 12:00:00  31         01-MAY-1980 00:00:00    29355.5
-       6>  16-JUN-1980 00:00:00  30         01-JUN-1980 00:00:00    29386
-       7>  16-JUL-1980 12:00:00  31         01-JUL-1980 00:00:00    29416.5
-       8>  16-AUG-1980 12:00:00  31         01-AUG-1980 00:00:00    29447.5
-       9>  16-SEP-1980 00:00:00  30         01-SEP-1980 00:00:00    29478
-      10>  16-OCT-1980 12:00:00  31         01-OCT-1980 00:00:00    29508.5
-      11>  16-NOV-1980 00:00:00  30         01-NOV-1980 00:00:00    29539
-      12>  16-DEC-1980 12:00:00  31         01-DEC-1980 00:00:00    29569.5
-      13>  16-JAN-1981 12:00:00  31         01-JAN-1981 00:00:00    29600.5
-      14>  15-FEB-1981 00:00:00  28         01-FEB-1981 00:00:00    29630
-      15>  16-MAR-1981 12:00:00  31         01-MAR-1981 00:00:00    29659.5
-      16>  16-APR-1981 00:00:00  30         01-APR-1981 00:00:00    29690
-      17>  16-MAY-1981 12:00:00  31         01-MAY-1981 00:00:00    29720.5
-      18>  16-JUN-1981 00:00:00  30         01-JUN-1981 00:00:00    29751
-      19>  16-JUL-1981 12:00:00  31         01-JUL-1981 00:00:00    29781.5
-      20>  16-AUG-1981 12:00:00  31         01-AUG-1981 00:00:00    29812.5
-show axis/l=1:240:12 tax
- name       axis              # pts   start                end
- TAX       TIME               240 i   16-JAN-1980 12:00    16-DEC-1999 12:00
-T0 = 1-JAN-1900
-   Axis span (to cell edges) = 7305
- 
-       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
-       1>  16-JAN-1980 12:00:00  31         01-JAN-1980 00:00:00    29234.5
-      13>  16-JAN-1981 12:00:00  31         01-JAN-1981 00:00:00    29600.5
-      25>  16-JAN-1982 12:00:00  31         01-JAN-1982 00:00:00    29965.5
-      37>  16-JAN-1983 12:00:00  31         01-JAN-1983 00:00:00    30330.5
-      49>  16-JAN-1984 12:00:00  31         01-JAN-1984 00:00:00    30695.5
-      61>  16-JAN-1985 12:00:00  31         01-JAN-1985 00:00:00    31061.5
-      73>  16-JAN-1986 12:00:00  31         01-JAN-1986 00:00:00    31426.5
-      85>  16-JAN-1987 12:00:00  31         01-JAN-1987 00:00:00    31791.5
-      97>  16-JAN-1988 12:00:00  31         01-JAN-1988 00:00:00    32156.5
-     109>  16-JAN-1989 12:00:00  31         01-JAN-1989 00:00:00    32522.5
-     121>  16-JAN-1990 12:00:00  31         01-JAN-1990 00:00:00    32887.5
-     133>  16-JAN-1991 12:00:00  31         01-JAN-1991 00:00:00    33252.5
-     145>  16-JAN-1992 12:00:00  31         01-JAN-1992 00:00:00    33617.5
-     157>  16-JAN-1993 12:00:00  31         01-JAN-1993 00:00:00    33983.5
-     169>  16-JAN-1994 12:00:00  31         01-JAN-1994 00:00:00    34348.5
-     181>  16-JAN-1995 12:00:00  31         01-JAN-1995 00:00:00    34713.5
-     193>  16-JAN-1996 12:00:00  31         01-JAN-1996 00:00:00    35078.5
-     205>  16-JAN-1997 12:00:00  31         01-JAN-1997 00:00:00    35444.5
-     217>  16-JAN-1998 12:00:00  31         01-JAN-1998 00:00:00    35809.5
-     229>  16-JAN-1999 12:00:00  31         01-JAN-1999 00:00:00    36174.5
- 
-! modulo axis for arbitrary time interval
-define axis/t=1-jan-0001:1-jan-0002:1/unit=days/t0=1-jan-0000 tencoding
-let tstep = t[gt=tencoding]
-let start_date = tstep[t=15-mar-0001]
-let end_date = tstep[t=27-may-0001]
-define axis/from_data/T/units=days/name=tax/t0=1-jan-0000/edges/modulo {`start_date,p=7`,`end_date,p=7`,`start_date+365.2425,p=7`}
- !-> define axis/from_data/T/units=days/name=tax/t0=1-jan-0000/edges/modulo {439,512,804.2425}
-show axis/l=1:6 tax
- name       axis              # pts   start                end
- TAX       TIME                 2mi   20-APR 12:00         20-OCT 02:54
-T0 = 1-JAN-0000
-   Axis span (to cell edges) = 365.2425 (modulo length = axis span)
- 
-       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
-       1>  20-APR 12:00:00       73         15-MAR 00:00:00         475.5
-       2>  20-OCT 02:54:35       292.2425   27-MAY 00:00:00         658.1212
-       3>  20-APR-0002 17:49:12  73         15-MAR-0002 05:49:12    840.7425
-       4>  20-OCT-0002 08:43:47  292.2425   27-MAY-0002 05:49:12    1023.364
-       5>  20-APR-0003 23:38:23  73         15-MAR-0003 11:38:23    1205.985
-       6>  20-OCT-0003 14:32:59  292.2425   27-MAY-0003 11:38:23    1388.606
-show axis/l=1:6000:1200 tax
- name       axis              # pts   start                end
- TAX       TIME                 2mi   20-APR 12:00         20-OCT 02:54
-T0 = 1-JAN-0000
-   Axis span (to cell edges) = 365.2425 (modulo length = axis span)
- 
-       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
-       1>  20-APR 12:00:00       73         15-MAR 00:00:00         475.5
-    1201>  20-APR-0601 23:59:59  73         15-MAR-0601 11:59:59    219621
-    2401>  20-APR-1201 11:59:59  73         14-MAR-1201 23:59:59    438766.5
-    3601>  20-APR-1801 23:59:59  73         15-MAR-1801 11:59:59    657912
-    4801>  20-APR-2401 11:59:59  73         14-MAR-2401 23:59:59    877057.5
- 
-! ================ REPEATED VALUES ====================
-! points
-define axis/from/x/name=xax {5,6,6,7}
-show axis/x xax
- name       axis              # pts   start                end
- XAX       X                    4 i   5                    7
-   Axis span (to cell edges) = 2.999999
- 
-       I     X                   XBOX      XBOXLO
-       1>  5                     1          4.5
-       2>  6                     0.500001   5.5
-       3>  6.000002              0.5        6.000001
-       4>  7                     0.999998   6.500001
-define axis/from/x/name=xax {5,6,6,6,7}
-show axis/x xax
- name       axis              # pts   start                end
- XAX       X                    5 i   5                    7
-   Axis span (to cell edges) = 2.999998
- 
-       I     X                   XBOX      XBOXLO
-       1>  5                     1          4.5
-       2>  6                     0.500001   5.5
-       3>  6.000002              2.E-06     6.000001
-       4>  6.000004              0.499999   6.000003
-       5>  7                     0.999996   6.500002
-define axis/from/x/name=xax {5,6,6,6}
-show axis/x xax
- name       axis              # pts   start                end
- XAX       X                    4 i   5                    6
-   Axis span (to cell edges) = 1.500003
- 
-       I     X                   XBOX      XBOXLO
-       1>  5                     1          4.5
-       2>  6                     0.5000005  5.5
-       3>  6.000001              1.E-06     6.000001
-       4>  6.000002              1.E-06     6.000001
-define axis/from/x/name=xax {6,6,7}
-show axis/x xax
- name       axis              # pts   start                end
- XAX       X                    3 i   6                    7
-   Axis span (to cell edges) = 1.5
- 
-       I     X                   XBOX      XBOXLO
-       1>  6                     1.E-06     5.999999
-       2>  6.000001              0.5        6.000001
-       3>  7                     0.999999   6.500001
-! edges
-define axis/from/x/name=xax/edges {5,6,6,7}
-show axis/x xax
- name       axis              # pts   start                end
- XAX       X                    3 i   5.5                  6.5
-   Axis span (to cell edges) = 2
- 
-       I     X                   XBOX      XBOXLO
-       1>  5.5                   1          5
-       2>  6.000001              2.E-06     6
-       3>  6.500001              0.999998   6.000002
-define axis/from/x/name=xax/edges {5,6,6,6,7}
-show axis/x xax
- name       axis              # pts   start                end
- XAX       X                    4 i   5.5                  6.5
-   Axis span (to cell edges) = 2
- 
-       I     X                   XBOX      XBOXLO
-       1>  5.5                   1          5
-       2>  6.000001              2.E-06     6
-       3>  6.000003              2.E-06     6.000002
-       4>  6.500002              0.999996   6.000004
-define axis/from/x/name=xax/edges {5,6,6}
-show axis/x xax
- name       axis              # pts   start                end
- XAX       X                    2 i   5.5                  6
-   Axis span (to cell edges) = 1.000001
- 
-       I     X                   XBOX      XBOXLO
-       1>  5.5                   1          5
-       2>  6.000001              1.E-06     6
-define axis/from/x/name=xax/edges {6,6,7}
-show axis/x xax
- name       axis              # pts   start                end
- XAX       X                    2 i   6                    6.5
-   Axis span (to cell edges) = 1
- 
-       I     X                   XBOX      XBOXLO
-       1>  6.000001              1.E-06     6
-       2>  6.500001              0.999999   6.000001
- 
-! unresolvable repeated points
-set mode ignore
-define axis/from/x/name=xax {6,6}
-define axis/from/x/name=xax/edges {6,6}
-define axis/from/x/name=xax/edges {6,6,6}
-define axis/from/x/name=xax {6,6,6.000001,7}
-define axis/from/x/name=xax/edges {6,6,6.000001,7}
- 
-! ================= STREAMLINED SYNTAX ================
-! name=expression syntax
-define axis/x XAX2 = {1,2,5}
-show axis/x xax2
- name       axis              # pts   start                end
- XAX2      X                    3 i   1                    5
-   Axis span (to cell edges) = 6
- 
-       I     X                   XBOX      XBOXLO
-       1>  1                     1          0.5
-       2>  2                     2          1.5
-       3>  5                     3          3.5
-define axis/unit=days/t0=1-jan-1990 TAX2 = {1,2,5}	! inferred /T
-show axis/t tax2
- name       axis              # pts   start                end
- TAX2      TIME                 3 i   02-JAN-1990 00:00    06-JAN-1990 00:00
-T0 = 1-JAN-1990
-   Axis span (to cell edges) = 6
- 
-       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
-       1>  02-JAN-1990 00:00:00  1          01-JAN-1990 12:00:00    1
-       2>  03-JAN-1990 00:00:00  2          02-JAN-1990 12:00:00    2
-       3>  06-JAN-1990 00:00:00  3          04-JAN-1990 12:00:00    5
-define axis/depth ZAX2 = {1,2,5}			! inferred /Z
-show axis/z zax2
- name       axis              # pts   start                end
- ZAX2      Z                    3 i-  1                    5
-   Axis span (to cell edges) = 6
- 
-       K     Z                   ZBOX      ZBOXLO
-       1>  1                     1          0.5
-       2>  2                     2          1.5
-       3>  5                     3          3.5
- 
-! units inferred from formatting
-define axis/X=130e:180:5 xax2
-show axis xax2
- name       axis              # pts   start                end
- XAX2      LONGITUDE           11mr   130E                 180E
-   Axis span (to cell edges) = 55 (modulo length = 360)
-define axis/Y=0:80n:5 yax2
-show axis yax2
- name       axis              # pts   start                end
- YAX2      LATITUDE            17 r   0                    80N
-   Axis span (to cell edges) = 85
-define axis/X=130e:80w:5/units=blahs xax2
-show axis xax2
- name       axis              # pts   start                end
- XAX2      X (BLAHS)           31 r   130                  280
-   Axis span (to cell edges) = 155
- 
-! cleanup
-set mode/last ignore
- 
-GO bn_reset
-cancel mode verify
-! GO bn_external_functions  ! move to tests of shared-obj efs.
- 
-GO bn_reset
-cancel mode verify
-GO bn_pattern
-! 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
- 
-GO bn_reset
-cancel mode verify
-GO bn_polygon
-! Demo of new POLYGON command
-! *jd * 3.99
- 
-let xsqr = YSEQUENCE({0,.1,.1,0})
-let ysqr = YSEQUENCE({0,0,.1,.1})
- 
-let ypts = x/10
-let xpts = cos(x/10)
- 
-set win/asp=.4
- 
-set mode meta polygon_plot.plt
-polygon/trans/i=1:100/nolable xpts+xsqr, ypts+ysqr, x*x/10
- 
-polygon/trans/line=6/fill/over/lev/i=1:100/pattern=ball_bearings/nolabel xpts+xsqr, ypts+ysqr+.5, x*x/10
- 
-polygon/trans/line=4/over/i=1:100/nolabel xpts+xsqr-.25, ypts+ysqr, x*x/10
- 
-can mode meta
- 
-GO bn_reset
-cancel mode verify
-GO bn500_bug_fixes
-! bn500_bug_fixes.jnl
-! test various fixes that went into version 5.00
-! 5/99 *kob*
- 
-GO bn_reset
-cancel mode verify
-GO err491_RESHAPE_ctx.jnl
-! err491_RESHAPE_ctx
- 
-! modified 3/2000 to reflect new significance of context limits
-! on arg 2
- 
-! 3/99 *sh* (bug reported by Jennifer Adams)
-! Ferret fails to recognize that source and dest T axes are different
-! so it erroneously passes T context to src argument
- 
-! fixed 3/99 with change to GCF_IMPOSE_ARG_LIM_DFLT
-!  (and consequent bug fixes to PARSE_NAM_DSET_GRD and GRID_FROM_NAME)
- 
-! source data in X,TCAL
-define axis/x=1:5:1 x5
-define axis/y=1:1:1 y1
-define axis/t=15-jan-1951:15-dec-1952/npoints=24 tcal
-define grid/x=x5/y=y1/t=tcal gsrc
-LET src = x[g=gsrc] + t[g=gsrc]
- 
-list src
-             VARIABLE : X[G=GSRC] + T[G=GSRC]
-             SUBSET   : 5 by 24 points (X-TIME)
-                       1        2        3        4        5     
-                       1        2        3        4        5
- 15-JAN-1951 /  1:  438289.  438290.  438291.  438292.  438293.
- 14-FEB-1951 /  2:  439019.  439020.  439021.  439022.  439023.
- 16-MAR-1951 /  3:  439750.  439751.  439752.  439753.  439754.
- 16-APR-1951 /  4:  440480.  440481.  440482.  440483.  440484.
- 16-MAY-1951 /  5:  441211.  441212.  441213.  441214.  441215.
- 16-JUN-1951 /  6:  441941.  441942.  441943.  441944.  441945.
- 16-JUL-1951 /  7:  442672.  442673.  442674.  442675.  442676.
- 16-AUG-1951 /  8:  443402.  443403.  443404.  443405.  443406.
- 15-SEP-1951 /  9:  444132.  444133.  444134.  444135.  444136.
- 15-OCT-1951 / 10:  444863.  444864.  444865.  444866.  444867.
- 15-NOV-1951 / 11:  445593.  445594.  445595.  445596.  445597.
- 15-DEC-1951 / 12:  446324.  446325.  446326.  446327.  446328.
- 15-JAN-1952 / 13:  447054.  447055.  447056.  447057.  447058.
- 14-FEB-1952 / 14:  447785.  447786.  447787.  447788.  447789.
- 16-MAR-1952 / 15:  448515.  448516.  448517.  448518.  448519.
- 15-APR-1952 / 16:  449246.  449247.  449248.  449249.  449250.
- 15-MAY-1952 / 17:  449976.  449977.  449978.  449979.  449980.
- 15-JUN-1952 / 18:  450706.  450707.  450708.  450709.  450710.
- 15-JUL-1952 / 19:  451437.  451438.  451439.  451440.  451441.
- 15-AUG-1952 / 20:  452167.  452168.  452169.  452170.  452171.
- 14-SEP-1952 / 21:  452898.  452899.  452900.  452901.  452902.
- 15-OCT-1952 / 22:  453628.  453629.  453630.  453631.  453632.
- 14-NOV-1952 / 23:  454359.  454360.  454361.  454362.  454363.
- 15-DEC-1952 / 24:  455089.  455090.  455091.  455092.  455093.
- 
-! reshaping grid - TCAL ==> 12 month by years
-def axis/t=1951:1952:1 tyear
-def axis/z=1:12:1 zmonth
-!let out_grid = x[g=gsrc,i=1] + y[g=gsrc,j=1] + z[gz=zmonth,k=1] + t[gt=tyear,l=1]  ! pre 3/00
-let out_grid = x[g=gsrc] + y[g=gsrc] + z[gz=zmonth] + t[gt=tyear]
- 
-! reshape the source data -- OK
-let out = reshape(src,out_grid)
-list out
-             VARIABLE : RESHAPE(SRC,OUT_GRID)
-             SUBSET   : 5 by 12 by 2 points (X-Z-T)
-             Y        : 0.5 to 1.5
-                1        2        3        4        5     
-                1        2        3        4        5
- ---- L:1 T:   1951
- 1    /  1:  438289.  438290.  438291.  438292.  438293.
- 2    /  2:  439019.  439020.  439021.  439022.  439023.
- 3    /  3:  439750.  439751.  439752.  439753.  439754.
- 4    /  4:  440480.  440481.  440482.  440483.  440484.
- 5    /  5:  441211.  441212.  441213.  441214.  441215.
- 6    /  6:  441941.  441942.  441943.  441944.  441945.
- 7    /  7:  442672.  442673.  442674.  442675.  442676.
- 8    /  8:  443402.  443403.  443404.  443405.  443406.
- 9    /  9:  444132.  444133.  444134.  444135.  444136.
- 10   / 10:  444863.  444864.  444865.  444866.  444867.
- 11   / 11:  445593.  445594.  445595.  445596.  445597.
- 12   / 12:  446324.  446325.  446326.  446327.  446328.
- ---- L:2 T:   1952
- 1    /  1:  447054.  447055.  447056.  447057.  447058.
- 2    /  2:  447785.  447786.  447787.  447788.  447789.
- 3    /  3:  448515.  448516.  448517.  448518.  448519.
- 4    /  4:  449246.  449247.  449248.  449249.  449250.
- 5    /  5:  449976.  449977.  449978.  449979.  449980.
- 6    /  6:  450706.  450707.  450708.  450709.  450710.
- 7    /  7:  451437.  451438.  451439.  451440.  451441.
- 8    /  8:  452167.  452168.  452169.  452170.  452171.
- 9    /  9:  452898.  452899.  452900.  452901.  452902.
- 10   / 10:  453628.  453629.  453630.  453631.  453632.
- 11   / 11:  454359.  454360.  454361.  454362.  454363.
- 12   / 12:  455089.  455090.  455091.  455092.  455093.
- 
-! NOW THE ERROR: L LIMITS PASSED INCORRECTLY(ERRONEOUSLY) TO SRC
-list/l=1 out
-             VARIABLE : RESHAPE(SRC,OUT_GRID)
-             SUBSET   : 5 by 12 points (X-Z)
-             Y        : 0.5 to 1.5
-             T        : 1951
-                1        2        3        4        5     
-                1        2        3        4        5
- 1    /  1:  438289.  438290.  438291.  438292.  438293.
- 2    /  2:  439019.  439020.  439021.  439022.  439023.
- 3    /  3:  439750.  439751.  439752.  439753.  439754.
- 4    /  4:  440480.  440481.  440482.  440483.  440484.
- 5    /  5:  441211.  441212.  441213.  441214.  441215.
- 6    /  6:  441941.  441942.  441943.  441944.  441945.
- 7    /  7:  442672.  442673.  442674.  442675.  442676.
- 8    /  8:  443402.  443403.  443404.  443405.  443406.
- 9    /  9:  444132.  444133.  444134.  444135.  444136.
- 10   / 10:  444863.  444864.  444865.  444866.  444867.
- 11   / 11:  445593.  445594.  445595.  445596.  445597.
- 12   / 12:  446324.  446325.  446326.  446327.  446328.
- 
- 
-GO bn_reset
-cancel mode verify
-GO err491_delete_child_var.jnl
-! err491_delete_child_var.jnl
-! *sh* 4/99
- 
-! when a grid-changing variable definition was redefined (replaced)
-! Its child variables were not removed, leading to wrong results
- 
-! fixed with mod to XEQ_DEFINE
- 
-! why does ypolymark depend on xpolyshape ??
-let xpolyshape = X[X=1:3:1]
-let ypolyshape = X[X=10:30:10]
- 
-! THE ACT OF DEFINING XPOLYMARK CHANGES THE OUTCOME ...
-LET xpolymark = XSEQUENCE(xpolyshape) * 1
-LET ypolymark = XSEQUENCE(ypolyshape) * 1
- 
-list  ypolymark  ! correct values: 1,2,3
-             VARIABLE : XSEQUENCE(YPOLYSHAPE) * 1
-             SUBSET   : 3 points (X)
- 1   / 1:  10.0000
- 2   / 2:  20.0000
- 3   / 3:  30.0000
- 
-! THE ACT OF DEFINING XPOLYMARK CHANGES THE OUTCOME ...
-LET xpolymark = XSEQUENCE(xpolyshape) * 1
-LET ypolymark = XSEQUENCE(ypolyshape) * 1
- 
-list  ypolymark	! incorrect values: 10, 20, 30
-             VARIABLE : XSEQUENCE(YPOLYSHAPE) * 1
-             SUBSET   : 3 points (X)
- 1   / 1:  10.0000
- 2   / 2:  20.0000
- 3   / 3:  30.0000
- 
-GO bn_reset
-cancel mode verify
-GO err491_dp_time_write.jnl
-! err491_dp_time_write.jnl
-! *sh* 10/98
- 
- 
-! when appending ("synchronizing") a new output time to an existing
-! netCDF file, Ferret fails to do a valid double precision comparison
- 
- 
-define axis/t="18-jul-1997:14:09":"20-jul-1997:00:09":5/units=min t5
-LET my_var = t[gt=t5]
- 
-save/clobber/file=out.cdf my_var[l=1]
-sp echo "err491_dp_time_write.jnl --- 1 original file" >> all_ncdump.out
-sp ncdump out.cdf >> all_ncdump.out
- 
-save/append/file=out.cdf my_var[l=2]
-sp echo "err491_dp_time_write.jnl --- 2 after append" >> all_ncdump.out
-sp ncdump out.cdf >> all_ncdump.out
- 
-GO bn_reset
-cancel mode verify
-GO err491_gmax.jnl
-! err491_gmax.jnl
-! 9 Dec. 1998 *sh*
- 
-! .. crash when attempting a time regridding with g=@MAX
- 
-let ts = RANDU(T[T=1-jan-1990:15-jan-1990:1])
-plot ts
-define axis/t="1-jan-1990:12:00":"15-jan-1990:12:00":24/unit=hours t24
-plot/over ts[gt=t24 at ave]
- 
-! crash when attempting an @MAX regridding
-load ts[gt=t24 at max]
- 
-GO bn_reset
-cancel mode verify
-GO err491_grid_from_name.jnl
-! err491_grid_from_name.jnl
-! *sh* 3/99
- 
-! implicit grid, such as "Z[gz=zax]", are allowed in places they shouldn't be
- 
-! fixed with change to GRID_FROM_NAME (and PARSE_NAM_DSET_GRD)
- 
-set mode ignore
-define axis/z=1:10:1 z10
-set grid z[gz=z10]
-show grid
- Default grid for DEFINE VARIABLE is (G012)
- Last successful data access was on grid (G012)
-    GRID (G012)
- name       axis              # pts   start                end
- normal    X
- normal    Y
- Z10       Z                   10 r   1                    10
- normal    T
- normal    E
- normal    F
-can mode ignore
- 
-GO bn_reset
-cancel mode verify
-GO err491_let_d.jnl
-! err491_let_d.jnl
-! *sh* 10/98
- 
-! using /d in the definition of a data-set independent variable causes a crash
- 
-let/d a = x+y
-stat/i=1:3/j=1:3 a
- 
-             X+Y
-             X: 0.5 to 3.5
-             Y: 0.5 to 3.5
-             Z:  N/A
-             T:  N/A
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 9 (3*3*1*1*1*1)
- # flagged as bad  data: 0
- Minimum value: 2
- Maximum value: 6
- Mean    value: 4 (unweighted average)
- Standard deviation: 1.2247
- 
-! 3/01 *kob* uncomment the below - seems to run on all systems
-! GO err491_long_gif_name.jnl ! moved to bn_gif.jnl
- 
-GO bn_reset
-cancel mode verify
-GO err491_sh_var_templates.jnl
-! SHOW VARIABLE templates are not robust
- 
-let mld5dec = 1
- 
-sho var m*dec		! no response ??
-sho var ml*dec		! no response ??
-sho var mld*dec		! works
- MLD5DEC = 1
- 
- 
- 
-GO bn_reset
-cancel mode verify
-GO err491_single_char_replace.jnl
-! err491_single_char_replace.jnl
- 
-! 4/99 *sh*
- 
-! erroneous error trap for single character symbol replacement
-!  **ERROR: command syntax: empty argument replacement string: ($undefined|"h")
-SAY ($undefined|"h")
- !-> MESSAGE/CONTINUE h
-h
- 
-! but OK in this case
-SAY ($undefined|"hh")
- !-> MESSAGE/CONTINUE hh
-hh
- 
-GO bn_reset
-cancel mode verify
-GO err491_spawn_quotes.jnl
-! err491_spawn_quotes.jnl
- 
-! fixed in xeq_spawn 1/99 *sh*
- 
-! this should be a valid command
-SPAWN "date"
-Tue Nov 12 15:12:30 PST 2013
- 
-GO bn_reset
-cancel mode verify
-GO err491_time_regridding.jnl
-! err491_time_regridding.jnl
-! from Jon 10/16/98
- 
-! this core dumps ... it is unable to reconcile the
-! l=13:48 in the current region with the t=15-jan-1995:15-jan-1998
-! (which corresponds to L=1:37) in the definition of "bad"
- 
-!set mode diag
-set wind/siz=.3
- 
-set data TAO_SST_clim.cdf
- 
-define axis/t=15-jan-1995:15-dec-1999:1/unit=mon my_t_axis
- 
-let good = sst_clim[gt=my_t_axis]
-let bad  = sst_clim[gt=my_t_axis,t=15-jan-1995:15-jan-1998]
- 
-set region/x=125w/y=0n/l=13:48
- 
-plot     good[x=@sbx:3]
-plot/over     good[y=@sbx:3]
-plot/over     good[z=@sbx:3]
-plot/over     good[t=@sbx:3]
- 
- 
-cancel memory/all
-plot/over bad[x=@sbx:3]
-plot/over bad[y=@sbx:3]
-plot/over bad[z=@sbx:3]
-plot/over bad[t=@sbx:3]
- 
-! 3/01 *kob* uncomment the below - seems to run on all systems
-GO bn_reset
-cancel mode verify
-GO err491_unknown_function.jnl
-! err491_unknown_function
-! 3/99 *sh*
- 
-! when unknown function occurs in the 2nd (or higher) expression in a line
-! a crash occurs
- 
-! crash occurs processing error message in subroutine RPN.
-! Cause is incorrect string limits passed from INIT_UVAR_SUB.
- 
-set mode ignore
-stat i, noname(i)
-can mode ignore
- 
-! *kob* added 6/11/1999
-GO bn_reset
-cancel mode verify
-GO err500_IF_THEN_ELSE_quote.jnl
-! err500_IF_THEN_ELSE_quote.jnl
- 
-! 6/9/99 - final quotation mark is lost by parser resulting in error.
- 
-! solved 6/11/99 in xeq_if.F
- 
- 
-IF 1 THEN SAY "I is too big" ENDIF
-I is too big
- 
-! ******** V510 Additions below ***********
- 
-GO bn_reset
-cancel mode verify
-GO bn_sample			! internal (optimized) SAMPLE* functions
-! bn_sample.jnl
-! 10/99 *sh*
-! V550 *sh* 11/02 - documentation change only, reflecting subspan modulo
- 
-! test the internally optimized version of the SAMPLE* commands
- 
-! basic file variable access
-use coads_climatology
-let/quiet a = sst
-list sst[I=30:50:10,l=1,y=-2:2]		! reference listing
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-                        regrid: 20 deg on X
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 by 2 points (LONGITUDE-LATITUDE)
-             TIME     : JAN
-               79E      99E     119E    
-                1        2        3
- 1N   / 46:  28.2222  28.1992  28.4514
- 1S   / 45:  28.1514  28.5607  28.8326
-list SAMPLEI(sst[l=1,y=0],{30,40,50})
-             VARIABLE : SAMPLEI(SST[L=1,Y=0],{30,40,50})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 points (X)
-             LATITUDE : 1S
-             TIME     : JAN
-             1S     
-             45
- 1   / 1:  28.1514
- 2   / 2:  28.5607
- 3   / 3:  28.8326
-list SAMPLEI(sst[l=1,y=-2:2],{30,40,50})
-             VARIABLE : SAMPLEI(SST[L=1,Y=-2:2],{30,40,50})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 by 2 points (X-LATITUDE)
-             TIME     : JAN
-                1        2        3     
-                1        2        3
- 1N   / 46:  28.2222  28.1992  28.4514
- 1S   / 45:  28.1514  28.5607  28.8326
-list SAMPLEI(sst[l=1:3,y=-2:2],{30,40,50})
-             VARIABLE : SAMPLEI(SST[L=1:3,Y=-2:2],{30,40,50})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 by 2 by 3 points (X-LATITUDE-TIME)
-                1        2        3     
-                1        2        3
- ---- L:1 T:   JAN
- 1N   / 46:  28.2222  28.1992  28.4514
- 1S   / 45:  28.1514  28.5607  28.8326
- ---- L:2 T:   FEB
- 1N   / 46:  28.5769  28.5925  28.1495
- 1S   / 45:  28.3343  28.7146  28.4674
- ---- L:3 T:   MAR
- 1N   / 46:  29.1373  28.9243  28.3264
- 1S   / 45:  28.8965  28.8240  28.5357
-SHOW MEM/FREE
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 4 bytes)
-            total memory table slots: 500
-            total memory blocks: 2000
-            memory block size: 12800
- 
-            number of free memory blocks: 1987
-            largest free region: 1984
-            number of free regions: 4
-            free memory table slots: 487
-            number of UN-CACHED variables: 0
- 
-! these should break sampling up into separate reads
-cancel memory/all
-set mode diagnostic
-list/i=2 SAMPLEI(sst[l=1,y=-2:2],{30,40,50})	! only I=2 from result
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid (C01,V02 C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid (C09,V02 C: 10 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V02 C:  7 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 34 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- eval    (C09,V02 C: 11 dset:   1 I:   30   30  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading SST      M: 31 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
- 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 (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
-             VARIABLE : SAMPLEI(SST[L=1,Y=-2:2],{30,40,50})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 2 points (LATITUDE)
-             X        : 2
-             TIME     : JAN
-                2     
-                2
- 1N   / 46:  28.1992
- 1S   / 45:  28.5607
- -DELETE (C01,V02 M: 34 dset:   1 I:    2    2  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
-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: 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: 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 (C01,V02 M: 33 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
-list/l=1/y=-2:2  SAMPLEI(sst,{30,40,50})
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 33 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- reading SST      M: 26 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
- -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 {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
-             SUBSET   : 3 by 2 points (X-LATITUDE)
-             TIME     : JAN
-                1        2        3     
-                1        2        3
- 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: 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
-list/l=1/y=-2:2  SAMPLEI(a  ,{30,40,50})
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid A        C:  8 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- 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
- 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
- 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
-             VARIABLE : SAMPLEI(A  ,{30,40,50})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 by 2 points (X-LATITUDE)
-             TIME     : JAN
-                1        2        3     
-                1        2        3
- 1N   / 46:  28.2222  28.1992  28.4514
- 1S   / 45:  28.1514  28.5607  28.8326
- 
-! 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: 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: 33 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 34 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
-list/l=1/y=-2:2  SAMPLEI(sst[i=30:40],{30,40,50})
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid (C01,V02 C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid (C09,V02 C: 10 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C01,V02 C:  7 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 34 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- eval    (C09,V02 C: 11 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 28 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 32 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 {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
-             SUBSET   : 3 by 2 points (X-LATITUDE)
-             TIME     : JAN
-                1        2        3     
-                1        2        3
- 1N   / 46:  28.2222  28.1992     ....
- 1S   / 45:  28.1514  28.5607     ....
-let/quiet a = sst[i=30:40]
- -DELETE (C09,V02 M: 27 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE (C01,V02 M: 33 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
-cancel memory/all
- -DELETE SST      M: 28 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
-list/l=1/y=-2:2  SAMPLEI(a,{30,40,50})
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid A        C:  8 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 28 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- eval    A        C:  9 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 34 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE          M: 27 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE          M: 33 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 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: 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)
-             TIME     : JAN
-                1        2        3     
-                1        2        3
- 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 EX#1     M: 33 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 34 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
-list/l=1/y=-2:2  SAMPLEI(a,{30})		! sample at just 1 point
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30}     M: 34 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     1 dset:   1
- eval    A        C:  9 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 28 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 26 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
-             VARIABLE : SAMPLEI(A,{30})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 2 points (LATITUDE)
-             X        : 1
-             TIME     : JAN
-                1     
-                1
- 1N   / 46:  28.2222
- 1S   / 45:  28.1514
-cancel memory/all
- -DELETE SST      M: 28 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 32 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 33 dset:   1 I:    1    1  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
-list/l=1/y=-2:2  SAMPLEI(a,30)			! sample at just 1 point
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid (C01,V02 C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid (C11,V02 C:  9 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C01,V02 C:  7 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C11,V02 C:  9 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- constan cnst     M: 33 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 33 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     1 dset:   1
- eval    A        C: 11 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 34 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 28 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 33 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 26 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)
-             X        : 1
-             TIME     : JAN
-                1     
-                1
- 1N   / 46:  28.2222
- 1S   / 45:  28.1514
-cancel memory/all
- -DELETE A        M: 27 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE (C11,V02 M: 32 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
-let/quiet a = fsst[i=@iin]		! @iin forces all-at-once
- dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
-list/l=1/y=-2:2  SAMPLEI(a,{30,40,50})
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid A        C:  8 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid FSST     C: 10 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 34 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- eval    A        C:  9 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> FSST[X=???@IIN,D=1]
- eval    FSST     C: 12 dset:   1 I: -999 -999  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: 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[I=1:180 at 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: 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
-             VARIABLE : SAMPLEI(A,{30,40,50})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 by 2 points (X-LATITUDE)
-             TIME     : JAN
-                 1           2           3       
-                  1           2           3
- 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 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 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
-cancel memory/all
-load/l=1/y=0 sst[I=30:50]
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 33 dset:   1 I:   30   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
-list/l=1/y=0  SAMPLEI(sst,{30,40,50})
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- 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
- 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: 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
-             VARIABLE : SAMPLEI(SST,{30,40,50})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 points (X)
-             LATITUDE : 1S
-             TIME     : JAN
-             1S     
-             45
- 1   / 1:  28.1514
- 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: 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]
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 34 dset:   1 I:   30   39  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
-list/l=1/y=0  SAMPLEI(sst,{30,40,50})
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 33 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- reading SST      M: 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: 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 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 {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
-             SUBSET   : 3 points (X)
-             LATITUDE : 1S
-             TIME     : JAN
-             1S     
-             45
- 1   / 1:  28.1514
- 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: 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
- getgrid EX#1     C:  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
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 34 dset:   1 I:   30   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
-list/l=1/y=0  SAMPLEI(sst,{30,40,50})
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 28 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- reading SST      M: 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
- -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
-             VARIABLE : SAMPLEI(SST,{30,40,50})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 points (X)
-             LATITUDE : 1S
-             TIME     : JAN
-             1S     
-             45
- 1   / 1:  28.1514
- 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: 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: 34 dset:   1 I:   30   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
-load/l=1/y=0 sst[I=30:41]
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 34 dset:   1 I:   30   41  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
-list/l=1/y=0  SAMPLEI(sst,{30,40,50})
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- 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
- 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: 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: 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
-             VARIABLE : SAMPLEI(SST,{30,40,50})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 points (X)
-             LATITUDE : 1S
-             TIME     : JAN
-             1S     
-             45
- 1   / 1:  28.1514
- 2   / 2:  28.5607
- 3   / 3:  28.8326
-set mode/last diagnostic
- 
-! sampling a user var
-let/quiet a = sst + 1
-list SAMPLEI(a[l=1:3,y=-2:2],{30,40,50})
-             VARIABLE : SAMPLEI(A[L=1:3,Y=-2:2],{30,40,50})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 by 2 by 3 points (X-LATITUDE-TIME)
-                1        2        3     
-                1        2        3
- ---- L:1 T:   JAN
- 1N   / 46:  29.2222  29.1992  29.4514
- 1S   / 45:  29.1514  29.5607  29.8326
- ---- L:2 T:   FEB
- 1N   / 46:  29.5769  29.5925  29.1495
- 1S   / 45:  29.3343  29.7146  29.4674
- ---- L:3 T:   MAR
- 1N   / 46:  30.1373  29.9243  29.3264
- 1S   / 45:  29.8965  29.8240  29.5357
-let/quiet a = sst[l=1:3,y=-2:2] + 1		! same result, different syntax
-list SAMPLEI(a, {30,40,50})
-             VARIABLE : SAMPLEI(A, {30,40,50})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 by 2 by 3 points (X-LATITUDE-TIME)
-                1        2        3     
-                1        2        3
- ---- L:1 T:   JAN
- 1N   / 46:  29.2222  29.1992  29.4514
- 1S   / 45:  29.1514  29.5607  29.8326
- ---- L:2 T:   FEB
- 1N   / 46:  29.5769  29.5925  29.1495
- 1S   / 45:  29.3343  29.7146  29.4674
- ---- L:3 T:   MAR
- 1N   / 46:  30.1373  29.9243  29.3264
- 1S   / 45:  29.8965  29.8240  29.5357
- 
-! combined with a dynamic axis
-list SAMPLEI(sst[l=1,y=1s:1n:.5],{30,40,50})
-             VARIABLE : SAMPLEI(SST[L=1,Y=1S:1N:.5],{30,40,50})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 by 5 points (X-LATITUDE)
-             TIME     : JAN
-                1        2        3     
-                1        2        3
- 1N    / 5:  28.2222  28.1992  28.4514
- 0.5N  / 4:  28.2045  28.2896  28.5467
- 0     / 3:  28.1868  28.3800  28.6420
- 0.5S  / 2:  28.1691  28.4703  28.7373
- 1S    / 1:  28.1514  28.5607  28.8326
-show grid/dyn
-Dynamic grids:
-    GRID (G017)                          use count:   2
- name       axis              # pts   start                end
- ABSTRACT  X             99999999 r   1                    1.E+08
- (AX001)   LATITUDE             5 r   1S                   1N
- normal    Z
- TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-    GRID (G006)                          use count:   1
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX001)   LATITUDE             5 r   1S                   1N
- normal    Z
- TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX001)                         use count:   2
-cancel memory/all
-let/quiet a = sst[l=1,y=1s:1n:.5]
-list SAMPLEI(a,{30,40,50})
-             VARIABLE : SAMPLEI(A,{30,40,50})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 by 5 points (X-LATITUDE)
-             TIME     : JAN
-                1        2        3     
-                1        2        3
- 1N    / 5:  28.2222  28.1992  28.4514
- 0.5N  / 4:  28.2045  28.2896  28.5467
- 0     / 3:  28.1868  28.3800  28.6420
- 0.5S  / 2:  28.1691  28.4703  28.7373
- 1S    / 1:  28.1514  28.5607  28.8326
-show grid/dyn
-Dynamic grids:
-    GRID (G006)                          use count:   1
- name       axis              # pts   start                end
- ABSTRACT  X             99999999 r   1                    1.E+08
- (AX005)   LATITUDE             5 r   1S                   1N
- normal    Z
- TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-    GRID (G017)                          use count:   1
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX005)   LATITUDE             5 r   1S                   1N
- normal    Z
- TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX005)                         use count:   2
- 
-! sampling a pseudo-variable
-list SAMPLEI(X[x=1:12],{3,4,7,15})
-             VARIABLE : SAMPLEI(X[X=1:12],{3,4,7,15})
-             SUBSET   : 4 points (X)
- 1   / 1:  3.00000
- 2   / 2:  4.00000
- 3   / 3:  7.00000
- 4   / 4:     ....
-list SAMPLEI(X[x=111:120],{3,4,7})	! indices out of range
-             VARIABLE : SAMPLEI(X[X=111:120],{3,4,7})
-             SUBSET   : 3 points (X)
- 1   / 1:....
- 2   / 2:....
- 3   / 3:....
-list SAMPLEI(X[x=111:120:1],{3,4,7})	! now OK
-             VARIABLE : SAMPLEI(X[X=111:120:1],{3,4,7})
-             SUBSET   : 3 points (X)
- 1   / 1:  113.000
- 2   / 2:  114.000
- 3   / 3:  117.000
-list SAMPLEI(X[x=110:200:10],{3,4,7})
-             VARIABLE : SAMPLEI(X[X=110:200:10],{3,4,7})
-             SUBSET   : 3 points (X)
- 1   / 1:  130.000
- 2   / 2:  140.000
- 3   / 3:  170.000
-cancel memory/all
-let/quiet a = X[x=110:200:10]
-list SAMPLEI(a,{3,4,7})
-             VARIABLE : SAMPLEI(A,{3,4,7})
-             SUBSET   : 3 points (X)
- 1   / 1:  130.000
- 2   / 2:  140.000
- 3   / 3:  170.000
- 
-! sampling a constant !!??!
-list SAMPLEI(5,{3,,1})
-             VARIABLE : SAMPLEI(5,{3,,1})
-             SUBSET   : 3 points (X)
- 1   / 1:     ....
- 2   / 2:     ....
- 3   / 3:  5.00000
-let/quiet a = 5
-list SAMPLEI(a,{3,,1})
-             VARIABLE : SAMPLEI(A,{3,,1})
-             SUBSET   : 3 points (X)
- 1   / 1:     ....
- 2   / 2:     ....
- 3   / 3:  5.00000
- 
-! sampling a constant list
-list SAMPLEI({1,2,3,4,5},{3,,7})
-             VARIABLE : SAMPLEI({1,2,3,4,5},{3,,7})
-             SUBSET   : 3 points (X)
- 1   / 1:  3.00000
- 2   / 2:     ....
- 3   / 3:     ....
- 
-! over-defined X axis limits
-cancel memory/all
-list SAMPLEI(sst[l=1,y=0,i=30:50],{30,40,50})
-             VARIABLE : SAMPLEI(SST[L=1,Y=0,I=30:50],{30,40,50})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 points (X)
-             LATITUDE : 1S
-             TIME     : JAN
-             1S     
-             45
- 1   / 1:  28.1514
- 2   / 2:  28.5607
- 3   / 3:  28.8326
-cancel memory/all
-list SAMPLEI(sst[l=1,y=0,i=35:38],{30,40,50})
-             VARIABLE : SAMPLEI(SST[L=1,Y=0,I=35:38],{30,40,50})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 points (X)
-             LATITUDE : 1S
-             TIME     : JAN
-           1S  
-           45
- 1   / 1:....
- 2   / 2:....
- 3   / 3:....
- 
-! sampling with disordered and missing values in the index list
-list SAMPLEI(sst[l=1,y=-2:2],{30,40,,50})
-             VARIABLE : SAMPLEI(SST[L=1,Y=-2:2],{30,40,,50})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 4 by 2 points (X-LATITUDE)
-             TIME     : JAN
-                1        2        3        4     
-                1        2        3        4
- 1N   / 46:  28.2222  28.1992     ....  28.4514
- 1S   / 45:  28.1514  28.5607     ....  28.8326
-list SAMPLEI(sst[l=1,y=-2:2],{40,,50,30})
-             VARIABLE : SAMPLEI(SST[L=1,Y=-2:2],{40,,50,30})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 4 by 2 points (X-LATITUDE)
-             TIME     : JAN
-                1        2        3        4     
-                1        2        3        4
- 1N   / 46:  28.1992     ....  28.4514  28.2222
- 1S   / 45:  28.5607     ....  28.8326  28.1514
- 
-! out of bounds indices
-list SAMPLEI(sst[l=1,y=0,i=30:50],{30 ,400,500})
-             VARIABLE : SAMPLEI(SST[L=1,Y=0,I=30:50],{30 ,400,500})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 points (X)
-             LATITUDE : 1S
-             TIME     : JAN
-             1S     
-             45
- 1   / 1:  28.1514
- 2   / 2:     ....
- 3   / 3:     ....
-list SAMPLEI(sst[l=1,y=0,i=30:50],{-300,400,500})
-             VARIABLE : SAMPLEI(SST[L=1,Y=0,I=30:50],{-300,400,500})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 points (X)
-             LATITUDE : 1S
-             TIME     : JAN
-           1S  
-           45
- 1   / 1:....
- 2   / 2:....
- 3   / 3:....
-list SAMPLEI(X[x=110:200:10],{3,40,7})
-             VARIABLE : SAMPLEI(X[X=110:200:10],{3,40,7})
-             SUBSET   : 3 points (X)
- 1   / 1:  130.000
- 2   / 2:     ....
- 3   / 3:  170.000
- 
-! sampling along a normal axis
-list SAMPLEI(Y[y=110:200:10],{3,4,7})
-             VARIABLE : SAMPLEI(Y[Y=110:200:10],{3,4,7})
-             SUBSET   : 3 by 10 points (X-Y)
-              1   2   3   
-               1   2   3
- 110   /  1:............
- 120   /  2:............
- 130   /  3:............
- 140   /  4:............
- 150   /  5:............
- 160   /  6:............
- 170   /  7:............
- 180   /  8:............
- 190   /  9:............
- 200   / 10:............
- 
-! test sampling optimization
-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    (AX001)   NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  (AX001)   NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  (AX001)   NORMAL    NORMAL    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid (C01,V02 C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid (C09,V02 C: 10 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V02 C:  6 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- const_v {31-,48} M: 34 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     7 dset:   1
- eval    (C09,V02 C: 10 dset:   1 I:   31   35  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading SST      M: 29 dset:   1 I:   31   35  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C09,V02 C: 10 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 25 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C09,V02 C: 10 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 20 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE Y        M: 31 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L:    7    7  M: -999 -999  N: -999 -999
- -DELETE SST      M: 32 dset:   1 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 26 dset:   1 I:    1    7  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {31-,48} M: 34 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
-             VARIABLE : SAMPLEI(SST[L=1,Y=5N],{31,33,35,37,44,46,48})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 7 points (X)
-             LATITUDE : 5N
-             TIME     : JAN
-             5N     
-             48
- 1   / 1:  27.5245
- 2   / 2:  27.8502
- 3   / 3:  27.9891
- 4   / 4:  28.0330
- 5   / 5:  26.2343
- 6   / 6:  27.0648
- 7   / 7:  27.2798
- 
-! test cache hits
-list SAMPLEI(sst[l=1,y=5N],{31,33,35,37,44,46,48}) !   <-- CACHE HIT FAILS!!!
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V02 C:  6 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- const_v {31-,48} M: 34 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     7 dset:   1
- eval    (C09,V02 C: 10 dset:   1 I:   31   35  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading SST      M: 18 dset:   1 I:   31   35  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C09,V02 C: 10 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 33 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C09,V02 C: 10 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 16 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE Y        M: 31 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L:    7    7  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 26 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})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 7 points (X)
-             LATITUDE : 5N
-             TIME     : JAN
-             5N     
-             48
- 1   / 1:  27.5245
- 2   / 2:  27.8502
- 3   / 3:  27.9891
- 4   / 4:  28.0330
- 5   / 5:  26.2343
- 6   / 6:  27.0648
- 7   / 7:  27.2798
-set mode/last diagnostic
-let a = SAMPLEI(sst[l=1,y=5N],{31,33,35,37,44,46,48})
-load a
-set mode diagnostic
-list a 			!   <-- CACHE HIT FAILS!!!
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V01 C:  8 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- const_v {31-,48} M: 19 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     7 dset:   1
- eval    (C09,V01 C: 12 dset:   1 I:   31   35  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading SST      M: 14 dset:   1 I:   31   35  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C09,V01 C: 12 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 11 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C09,V01 C: 12 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M:  9 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE Y        M: 31 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L:    7    7  M: -999 -999  N: -999 -999
- -DELETE          M: 27 dset:   1 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 12 dset:   1 I:    1    7  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {31-,48} M: 19 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
-             VARIABLE : SAMPLEI(SST[L=1,Y=5N],{31,33,35,37,44,46,48})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 7 points (X)
-             LATITUDE : 5N
-             TIME     : JAN
-             5N     
-             48
- 1   / 1:  27.5245
- 2   / 2:  27.8502
- 3   / 3:  27.9891
- 4   / 4:  28.0330
- 5   / 5:  26.2343
- 6   / 6:  27.0648
- 7   / 7:  27.2798
-set mode/last diagnostic
- 
-SHOW MEM/FREE
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 4 bytes)
-            total memory table slots: 500
-            total memory blocks: 2000
-            memory block size: 12800
- 
-            number of free memory blocks: 1978
-            largest free region: 1976
-            number of free regions: 3
-            free memory table slots: 478
-            number of UN-CACHED variables: 0
- 
-! test SAMPLEJ
-let/quiet a = sst + Z[z=0:500:5]
-list SAMPLEJ(a[l=1,k=1:2,x=180],30)
-             VARIABLE : SAMPLEJ(A[L=1,K=1:2,X=180],30)
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 2 points (Z)
-             LONGITUDE: 179E
-             Y        : 1
-             TIME     : JAN
-            179E    
-             80
- 0   / 1:  22.6389
- 5   / 2:  27.6389
-list SAMPLEJ(a[l=1,k=1:2,x=180],{30,31,35, 40})
-             VARIABLE : SAMPLEJ(A[L=1,K=1:2,X=180],{30,31,35, 40})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 4 by 2 points (Y-Z)
-             LONGITUDE: 179E
-             TIME     : JAN
-              1        2        3        4     
-              1        2        3        4
- 0   / 1:  22.6389  23.5251  26.9131  29.2606
- 5   / 2:  27.6389  28.5251  31.9131  34.2606
-list SAMPLEJ(a[l=1,k=1,x=180],{30,40,50})
-             VARIABLE : SAMPLEJ(A[L=1,K=1,X=180],{30,40,50})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 points (Y)
-             LONGITUDE: 179E
-             Z        : 0
-             TIME     : JAN
-            179E    
-             80
- 1   / 1:  22.6389
- 2   / 2:  29.2606
- 3   / 3:  27.7269
-list SAMPLEJ(a[l=1,k=1,x=160e:160w:5],{30,40,50})
-             VARIABLE : SAMPLEJ(A[L=1,K=1,X=160E:160W:5],{30,40,50})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 9 by 3 points (LONGITUDE-Y)
-             Z        : 0
-             TIME     : JAN
-            160E     165E     170E     175E      180E    175W     170W     165W     160W    
-              1        2        3        4        5        6        7        8        9
- 1   / 1:  23.5649  22.6150  21.9434  22.5531  22.5856  22.4436  21.9629  22.2754  21.6575
- 2   / 2:  29.3521  29.1692  29.2257  29.4440  29.0923  29.3430  29.1310  28.6520  28.9082
- 3   / 3:  27.9696  28.0578  27.8618  27.9059  27.4280  27.4100  27.3646  27.3974  27.1177
-list SAMPLEJ(Y[y=110:200:10],{3,4,7})
-             VARIABLE : SAMPLEJ(Y[Y=110:200:10],{3,4,7})
-             SUBSET   : 3 points (Y)
- 1   / 1:  130.000
- 2   / 2:  140.000
- 3   / 3:  170.000
-list SAMPLEJ(YSEQUENCE({1,2,3,4,5}),{5,2,3,,7,2})
-             VARIABLE : SAMPLEJ(YSEQUENCE({1,2,3,4,5}),{5,2,3,,7,2})
-             SUBSET   : 6 points (Y)
- 1   / 1:  5.00000
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:     ....
- 5   / 5:     ....
- 6   / 6:  2.00000
-list SAMPLEJ(X[x=110:200:10],{3,4,7})	! normal axis
-             VARIABLE : SAMPLEJ(X[X=110:200:10],{3,4,7})
-             SUBSET   : 10 by 3 points (X-Y)
-           110 120 130 140 150 160 170 180 190 200 
-            1   2   3   4   5   6   7   8   9  10
- 1   / 1:........................................
- 2   / 2:........................................
- 3   / 3:........................................
- 
-! test SAMPLEK
-let/quiet a = sst + Z[z=0:500:5]
-list SAMPLEK(a[l=1,y=0,x=180],30)
-             VARIABLE : SAMPLEK(A[L=1,Y=0,X=180],30)
-             FILENAME : coads_climatology.cdf
-             LONGITUDE: 179E
-             LATITUDE : 1S
-             Z        : 1
-             TIME     : JAN
-          173.202
-list SAMPLEK(a[l=1,y=0,x=180],{30,31,35, 40})
-             VARIABLE : SAMPLEK(A[L=1,Y=0,X=180],{30,31,35, 40})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 4 points (Z)
-             LONGITUDE: 179E
-             LATITUDE : 1S
-             TIME     : JAN
-            179E    
-             80
- 1   / 1:  173.202
- 2   / 2:  178.202
- 3   / 3:  198.202
- 4   / 4:  223.202
-list SAMPLEK(a[l=1,y=0,x=180],{30,40,50})
-             VARIABLE : SAMPLEK(A[L=1,Y=0,X=180],{30,40,50})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 points (Z)
-             LONGITUDE: 179E
-             LATITUDE : 1S
-             TIME     : JAN
-            179E    
-             80
- 1   / 1:  173.202
- 2   / 2:  223.202
- 3   / 3:  273.202
-list SAMPLEK(a[l=1,y=0,x=160e:160w:5],{30,40,50})
-             VARIABLE : SAMPLEK(A[L=1,Y=0,X=160E:160W:5],{30,40,50})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 9 by 3 points (LONGITUDE-Z)
-             LATITUDE : 1S
-             TIME     : JAN
-            160E     165E     170E     175E      180E    175W     170W     165W     160W    
-              1        2        3        4        5        6        7        8        9
- 1   / 1:  174.169  174.225  173.963  173.313  173.532  172.803  172.991  172.548  171.929
- 2   / 2:  224.169  224.225  223.963  223.313  223.532  222.803  222.991  222.548  221.929
- 3   / 3:  274.169  274.225  273.963  273.313  273.532  272.803  272.991  272.548  271.929
-list SAMPLEK(Z[z=110:200:10],{3,4,7})
-             VARIABLE : SAMPLEK(Z[Z=110:200:10],{3,4,7})
-             SUBSET   : 3 points (Z)
- 1   / 1:  130.000
- 2   / 2:  140.000
- 3   / 3:  170.000
-list SAMPLEK(ZSEQUENCE({1,2,3,4,5}),{5,2,3,,7,2})
-             VARIABLE : SAMPLEK(ZSEQUENCE({1,2,3,4,5}),{5,2,3,,7,2})
-             SUBSET   : 6 points (Z)
- 1   / 1:  5.00000
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:     ....
- 5   / 5:     ....
- 6   / 6:  2.00000
-list SAMPLEK(X[x=110:200:10],{3,4,7})	! normal axis
-             VARIABLE : SAMPLEK(X[X=110:200:10],{3,4,7})
-             SUBSET   : 10 by 3 points (X-Z)
-           110 120 130 140 150 160 170 180 190 200 
-            1   2   3   4   5   6   7   8   9  10
- 1   / 1:........................................
- 2   / 2:........................................
- 3   / 3:........................................
- 
-! test SAMPLEL
-let/quiet a = sst + Z[z=0:500:5]
-! Note: (V550) In the SAMPLEL examples which follow the L index values
-! which exceed L=3 lie outside of the time axis range.  As of V550 this
-! triggers a subspan modulo operation (3 months from the full year of 12)
-list SAMPLEL(a[y=0,k=1:2,x=180],5)
-             VARIABLE : SAMPLEL(A[Y=0,K=1:2,X=180],5)
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 2 points (Z)
-             LONGITUDE: 179E
-             LATITUDE : 1S
-             T        : 1
-            179E    
-             80
- 0   / 1:  28.2022
- 5   / 2:  33.2022
-list SAMPLEL(a[y=0,k=1:2,x=180],{2,3,5, 10})
-             VARIABLE : SAMPLEL(A[Y=0,K=1:2,X=180],{2,3,5, 10})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 2 by 4 points (Z-T)
-             LONGITUDE: 179E
-             LATITUDE : 1S
-              0        5     
-              1        2
- 1   / 1:  28.3646  33.3646
- 2   / 2:  28.3538  33.3538
- 3   / 3:  28.2022  33.2022
- 4   / 4:  28.3646  33.3646
-list SAMPLEL(a[y=0,k=1,x=180],{1,5,10})
-             VARIABLE : SAMPLEL(A[Y=0,K=1,X=180],{1,5,10})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 points (T)
-             LONGITUDE: 179E
-             LATITUDE : 1S
-             Z        : 0
-            179E    
-             80
- 1   / 1:  28.2022
- 2   / 2:  28.2022
- 3   / 3:  28.3646
-list SAMPLEL(a[y=0,k=1,x=160e:160w:5],{1,5,10})
-             VARIABLE : SAMPLEL(A[Y=0,K=1,X=160E:160W:5],{1,5,10})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 9 by 3 points (LONGITUDE-T)
-             LATITUDE : 1S
-             Z        : 0
-            160E     165E     170E     175E      180E    175W     170W     165W     160W    
-              1        2        3        4        5        6        7        8        9
- 1   / 1:  29.1694  29.2247  28.9631  28.3130  28.5324  27.8029  27.9907  27.5481  26.9291
- 2   / 2:  29.1694  29.2247  28.9631  28.3130  28.5324  27.8029  27.9907  27.5481  26.9291
- 3   / 3:  29.0509  29.1878  28.7239  29.5150  28.3287  28.1944  27.4815  27.4749  26.7886
-list SAMPLEL(T[t=110:200:10],{3,4,7})
-             VARIABLE : SAMPLEL(T[T=110:200:10],{3,4,7})
-             SUBSET   : 3 points (T)
- 1   / 1:  130.000
- 2   / 2:  140.000
- 3   / 3:  170.000
-list SAMPLEL(TSEQUENCE({1,2,3,4,5}),{5,2,3,,7,2})
-             VARIABLE : SAMPLEL(TSEQUENCE({1,2,3,4,5}),{5,2,3,,7,2})
-             SUBSET   : 6 points (T)
- 1   / 1:  5.00000
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:     ....
- 5   / 5:     ....
- 6   / 6:  2.00000
-list SAMPLEL(X[x=110:200:10],{3,4,7})	! normal axis
-             VARIABLE : SAMPLEL(X[X=110:200:10],{3,4,7})
-             SUBSET   : 10 by 3 points (X-T)
-           110 120 130 140 150 160 170 180 190 200 
-            1   2   3   4   5   6   7   8   9  10
- 1   / 1:........................................
- 2   / 2:........................................
- 3   / 3:........................................
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_strides_revs_perms	! netCDF fancy reads
-! bn_strides_revs_perms.jnl
-! *sh* 6/99
- 
-! exercise special netCDF performance and robustness enhancements to allow
-! reading with strides and permuting and reversing axes
- 
-! * * * * * PERMUTATIONS * * * * *
-! How to evaluate the correct ordering:
-! The data in bn_strides.cdf is ordered with the 1's digit
-! moving fastert, then the 10's, then 100's, etc.
- 
-! If (say) /ORDER=ZXY is given we should see the 100's digit
-! moving fastest (left to right on each line), the 1's next
-! (vertically within each block of output), and the 10's next
-! advancing from block to block
- 
-canc data/all
-cancel mode diagnostic
- 
-! first with an XYZT variable
-set region/i=3:6/j=2:4/k=1:2/l=1
-use bn_strides
-list bigvar
-             VARIABLE : VAR
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (X-Y-Z)
-             T        : 1
-              3        4        5        6     
-              3        4        5        6
- ---- K:1 Z:   1
- 2   / 2:  1123.00  1124.00  1125.00  1126.00
- 3   / 3:  1133.00  1134.00  1135.00  1136.00
- 4   / 4:  1143.00  1144.00  1145.00  1146.00
- ---- K:2 Z:   2
- 2   / 2:  1223.00  1224.00  1225.00  1226.00
- 3   / 3:  1233.00  1234.00  1235.00  1236.00
- 4   / 4:  1243.00  1244.00  1245.00  1246.00
-canc data/all
- 
-use/order=yx bn_strides
-list bigvar
-             VARIABLE : VAR
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (X-Y-Z)
-             T        : 1
-              3        4        5        6     
-              3        4        5        6
- ---- K:1 Z:   1
- 2   / 2:  1132.00  1142.00  1152.00  1162.00
- 3   / 3:  1133.00  1143.00  1153.00  1163.00
- 4   / 4:  1134.00  1144.00  1154.00  1164.00
- ---- K:2 Z:   2
- 2   / 2:  1232.00  1242.00  1252.00  1262.00
- 3   / 3:  1233.00  1243.00  1253.00  1263.00
- 4   / 4:  1234.00  1244.00  1254.00  1264.00
-canc data/all
- 
-use/order=zyx bn_strides
-list bigvar
-             VARIABLE : VAR
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (X-Y-Z)
-             T        : 1
-              3        4        5        6     
-              3        4        5        6
- ---- K:1 Z:   1
- 2   / 2:  1321.00  1421.00  1521.00  1621.00
- 3   / 3:  1331.00  1431.00  1531.00  1631.00
- 4   / 4:  1341.00  1441.00  1541.00  1641.00
- ---- K:2 Z:   2
- 2   / 2:  1322.00  1422.00  1522.00  1622.00
- 3   / 3:  1332.00  1432.00  1532.00  1632.00
- 4   / 4:  1342.00  1442.00  1542.00  1642.00
-canc data/all
- 
-use/order=zxy bn_strides
-list bigvar
-             VARIABLE : VAR
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (X-Y-Z)
-             T        : 1
-              3        4        5        6     
-              3        4        5        6
- ---- K:1 Z:   1
- 2   / 2:  1312.00  1412.00  1512.00  1612.00
- 3   / 3:  1313.00  1413.00  1513.00  1613.00
- 4   / 4:  1314.00  1414.00  1514.00  1614.00
- ---- K:2 Z:   2
- 2   / 2:  1322.00  1422.00  1522.00  1622.00
- 3   / 3:  1323.00  1423.00  1523.00  1623.00
- 4   / 4:  1324.00  1424.00  1524.00  1624.00
-canc data/all
- 
-! now with an XYT variable
-cancel region
-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
- normal    Z
- TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00
- normal    E
- normal    F
-list xytvar
-             VARIABLE : L*1000 + J*10 + I
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (LONGITUDE-LATITUDE-TIME)
-             141E     142E     143E     144E    
-               1        2        3        4
- ---- L:1 T:   JAN-1995
- 3N   / 3:  1031.00  1032.00  1033.00  1034.00
- 2N   / 2:  1021.00  1022.00  1023.00  1024.00
- 1N   / 1:  1011.00  1012.00  1013.00  1014.00
- ---- L:2 T:   JAN-1995
- 3N   / 3:  2031.00  2032.00  2033.00  2034.00
- 2N   / 2:  2021.00  2022.00  2023.00  2024.00
- 1N   / 1:  2011.00  2012.00  2013.00  2014.00
-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
- normal    Z
- TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00
- normal    E
- normal    F
-list xytvar
-             VARIABLE : L*1000 + J*10 + I
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (X (degrees_north)-Y (degrees_east)-TIME)
-                1        2        3        4     
-                1        2        3        4
- ---- L:1 T:   JAN-1995
- 141   / 1:  1011.00  1021.00  1031.00  1041.00
- 142   / 2:  1012.00  1022.00  1032.00  1042.00
- 143   / 3:  1013.00  1023.00  1033.00  1043.00
- ---- L:2 T:   JAN-1995
- 141   / 1:  2011.00  2021.00  2031.00  2041.00
- 142   / 2:  2012.00  2022.00  2032.00  2042.00
- 143   / 3:  2013.00  2023.00  2033.00  2043.00
-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
- normal    Z
- XLON      T (degrees_east)    40mr   141                  180
- normal    E
- normal    F
-list xytvar
-             VARIABLE : L*1000 + J*10 + I
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (X (DAYS)-LATITUDE-T (degrees_east))
-             34319    34320    34321    34322   
-               1        2        3        4
- ---- L:1 T:   141
- 3N   / 3:  1031.00  2031.00  3031.00  4031.00
- 2N   / 2:  1021.00  2021.00  3021.00  4021.00
- 1N   / 1:  1011.00  2011.00  3011.00  4011.00
- ---- L:2 T:   142
- 3N   / 3:  1032.00  2032.00  3032.00  4032.00
- 2N   / 2:  1022.00  2022.00  3022.00  4022.00
- 1N   / 1:  1012.00  2012.00  3012.00  4012.00
-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
- normal    Z
- YLAT      T (degrees_north)   30 r   1                    30
- normal    E
- normal    F
-list xytvar
-             VARIABLE : L*1000 + J*10 + I
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (X (DAYS)-Y (degrees_east)-T (degrees_north))
-              34319    34320    34321    34322   
-                1        2        3        4
- ---- L:1 T:   1
- 141   / 1:  1011.00  2011.00  3011.00  4011.00
- 142   / 2:  1012.00  2012.00  3012.00  4012.00
- 143   / 3:  1013.00  2013.00  3013.00  4013.00
- ---- L:2 T:   2
- 141   / 1:  1021.00  2021.00  3021.00  4021.00
- 142   / 2:  1022.00  2022.00  3022.00  4022.00
- 143   / 3:  1023.00  2023.00  3023.00  4023.00
-canc data/all
- 
-! map into Z instead of T
-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
- normal    T
- normal    E
- normal    F
-list/k=1:2 xytvar
-             VARIABLE : L*1000 + J*10 + I
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (X (DAYS)-Y (degrees_east)-Z (degrees_north))
-              34319    34320    34321    34322   
-                1        2        3        4
- ---- K:1 Z:   1
- 141   / 1:  1011.00  2011.00  3011.00  4011.00
- 142   / 2:  1012.00  2012.00  3012.00  4012.00
- 143   / 3:  1013.00  2013.00  3013.00  4013.00
- ---- K:2 Z:   2
- 141   / 1:  1021.00  2021.00  3021.00  4021.00
- 142   / 2:  1022.00  2022.00  3022.00  4022.00
- 143   / 3:  1023.00  2023.00  3023.00  4023.00
-canc data/all
- 
-! ambiguous mapping
-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
- normal    Z
- YLAT      T (degrees_north)   30 r   1                    30
- normal    E
- normal    F
-list xytvar
-             VARIABLE : L*1000 + J*10 + I
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (X (DAYS)-Y (degrees_east)-T (degrees_north))
-              34319    34320    34321    34322   
-                1        2        3        4
- ---- L:1 T:   1
- 141   / 1:  1011.00  2011.00  3011.00  4011.00
- 142   / 2:  1012.00  2012.00  3012.00  4012.00
- 143   / 3:  1013.00  2013.00  3013.00  4013.00
- ---- L:2 T:   2
- 141   / 1:  1021.00  2021.00  3021.00  4021.00
- 142   / 2:  1022.00  2022.00  3022.00  4022.00
- 143   / 3:  1023.00  2023.00  3023.00  4023.00
-canc data/all
- 
-! final "z" goes beyond the 3D -- no effect
-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
- normal    Z
- YLAT      T (degrees_north)   30 r   1                    30
- 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
- normal    E
- normal    F
-canc data/all
- 
-! * * * * * STRIDES * * * * *
-use bn_strides
-set mode diag
-cancel memory/all
- 
-SHOW DATA
-     currently SET data sets:
-    1> ./bn_strides.cdf  (default)
- name     title                             I         J         K         L         M         N
- VAR      L*1000 + K*100 + J*10 + I        1:4       1:3       1:2       1:1       ...       ...
- MIDVAR   VAR                              1:9       1:8       1:7       1:6       ...       ...
- BIGVAR   VAR                              1:40      1:30      1:20      1:10      ...       ...
- UNEVENVAR
-          L*1000 + K*100 + J[GY=YUNEVEN]*  1:10      1:8       1:6       1:4       ...       ...
- XYTVAR   L*1000 + J*10 + I                1:40      1:30      ...       1:20      ...       ...
- 
- 
-! basic strides
-LIST VAR[i=2:4:2]
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G018)           @XACT
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 47 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 55 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
-             VARIABLE : L*1000 + K*100 + J*10 + I
-                        regrid: 2 delta on X
-             FILENAME : bn_strides.cdf
-             SUBSET   : 2 by 3 by 2 points (X-Y-Z)
-             T        : 1
-              2        4     
-              1        2
- ---- K:1 Z:   1
- 1   / 1:  1112.00  1114.00
- 2   / 2:  1122.00  1124.00
- 3   / 3:  1132.00  1134.00
- ---- K:2 Z:   2
- 1   / 1:  1212.00  1214.00
- 2   / 2:  1222.00  1224.00
- 3   / 3:  1232.00  1234.00
- 
-! 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: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G018)           @XACT
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 27 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 55 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
-             VARIABLE : L*1000 + K*100 + J*10 + I
-                        regrid: 2 delta on X
-             FILENAME : bn_strides.cdf
-             SUBSET   : 2 by 3 by 2 points (X-Y-Z)
-             T        : 1
-              2        4     
-              1        2
- ---- K:1 Z:   1
- 1   / 1:  1112.00  1114.00
- 2   / 2:  1122.00  1124.00
- 3   / 3:  1132.00  1134.00
- ---- K:2 Z:   2
- 1   / 1:  1212.00  1214.00
- 2   / 2:  1222.00  1224.00
- 3   / 3:  1232.00  1234.00
- 
-! cache hit through non-file variable
-let a = VAR[i=2:4:2]
-list a
- dealloc  dynamic grid (G018)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- -DELETE VAR      M: 27 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 47 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   1 I:    1    2  J:    1    3  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G018)           @XACT
- rdstride VAR      C:  9 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 27 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 47 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
-             VARIABLE : VAR[I=2:4:2]
-             FILENAME : bn_strides.cdf
-             SUBSET   : 2 by 3 by 2 points (X-Y-Z)
-             T        : 1
-              2        4     
-              1        2
- ---- K:1 Z:   1
- 1   / 1:  1112.00  1114.00
- 2   / 2:  1122.00  1124.00
- 3   / 3:  1132.00  1134.00
- ---- K:2 Z:   2
- 1   / 1:  1212.00  1214.00
- 2   / 2:  1222.00  1224.00
- 3   / 3:  1232.00  1234.00
-list a		! from cache ...
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   1 I:    1    2  J:    1    3  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G018)           @XACT
- rdstride VAR      C:  9 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 54 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 55 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
-             VARIABLE : VAR[I=2:4:2]
-             FILENAME : bn_strides.cdf
-             SUBSET   : 2 by 3 by 2 points (X-Y-Z)
-             T        : 1
-              2        4     
-              1        2
- ---- K:1 Z:   1
- 1   / 1:  1112.00  1114.00
- 2   / 2:  1122.00  1124.00
- 3   / 3:  1132.00  1134.00
- ---- K:2 Z:   2
- 1   / 1:  1212.00  1214.00
- 2   / 2:  1222.00  1224.00
- 3   / 3:  1232.00  1234.00
- 
-! 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
-load var
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  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
-LIST VAR[i=2:4:2]
- dealloc  dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G018)           @XACT
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 47 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 54 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
-             VARIABLE : L*1000 + K*100 + J*10 + I
-                        regrid: 2 delta on X
-             FILENAME : bn_strides.cdf
-             SUBSET   : 2 by 3 by 2 points (X-Y-Z)
-             T        : 1
-              2        4     
-              1        2
- ---- K:1 Z:   1
- 1   / 1:  1112.00  1114.00
- 2   / 2:  1122.00  1124.00
- 3   / 3:  1132.00  1134.00
- ---- K:2 Z:   2
- 1   / 1:  1212.00  1214.00
- 2   / 2:  1222.00  1224.00
- 3   / 3:  1232.00  1234.00
-LIST VAR[i=2:4:2,j=1:3:2]
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G010)           @XACT
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 27 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 54 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
-             VARIABLE : L*1000 + K*100 + J*10 + I
-                        regrid: 2 delta on X, 2 delta on Y
-             FILENAME : bn_strides.cdf
-             SUBSET   : 2 by 2 by 2 points (X-Y-Z)
-             T        : 1
-              2        4     
-              1        2
- ---- K:1 Z:   1
- 1   / 1:  1112.00  1114.00
- 3   / 2:  1132.00  1134.00
- ---- K:2 Z:   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
- 
-! modulo requests cannot use strides (as this example shows)
-set axis/modulo XAX1_4
-LIST VAR[I=1:10:3,j=1,k=1,l=1]    ! 1, 4, 7(3), 10(2)
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G010)           @XACT
- strip moduloing VAR on X axis:     1    10 dset:   1
- reading VAR      M: 55 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- doing moduloing VAR on X axis:     1     4 dset:   1
- regrid  VAR      M: 27 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
-             VARIABLE : L*1000 + K*100 + J*10 + I
-                        regrid: 3 delta on X
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 points (X)
-             Y        : 1
-             Z        : 1
-             T        : 1
-               1     
-               1
- 1    / 1:  1111.00
- 4    / 2:  1114.00
- 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
- 
-! strides applied to more than one axis need special attention in IS_REGRID
-LIST VAR[i=2:4:2,j=1:3:2]
- dealloc  dynamic grid (G010)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G010)           @XACT
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 47 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 55 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
-             VARIABLE : L*1000 + K*100 + J*10 + I
-                        regrid: 2 delta on X, 2 delta on Y
-             FILENAME : bn_strides.cdf
-             SUBSET   : 2 by 2 by 2 points (X-Y-Z)
-             T        : 1
-              2        4     
-              1        2
- ---- K:1 Z:   1
- 1   / 1:  1112.00  1114.00
- 3   / 2:  1132.00  1134.00
- ---- K:2 Z:   2
- 1   / 1:  1212.00  1214.00
- 3   / 2:  1232.00  1234.00
-LIST VAR[i=2:6:2,j=1:5:2]
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- -DELETE VAR      M: 47 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX023)   (AX024)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX023)   (AX024)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX023)   (AX024)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX023)   (AX024)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G010)           @XACT
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 55 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 47 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX023)   (AX024)   ZAX1_2    TAX1_1    NORMAL    NORMAL
-             VARIABLE : L*1000 + K*100 + J*10 + I
-                        regrid: 2 delta on X, 2 delta on Y
-             FILENAME : bn_strides.cdf
-             SUBSET   : 2 by 2 by 2 points (X-Y-Z)
-             T        : 1
-              2        4     
-              1        2
- ---- K:1 Z:   1
- 1   / 1:  1112.00  1114.00
- 3   / 2:  1132.00  1134.00
- ---- K:2 Z:   2
- 1   / 1:  1212.00  1214.00
- 3   / 2:  1232.00  1234.00
- 
-! deliberate error
-set mode ignore; LIST/i=2:4:2 VAR; cancel mode ignore
- dealloc  dynamic grid (G010)          (AX023)   (AX024)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- -DELETE VAR      M: 55 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- 
-! averaging causes bypass of strides
-LIST VAR[i=2:4:2 at ave]
- dealloc  dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G018)           @AVE
- reading VAR      M: 55 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- regrid  VAR      M: 47 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
-             VARIABLE : L*1000 + K*100 + J*10 + I
-                        regrid: 2 delta on X at AVE
-             FILENAME : bn_strides.cdf
-             SUBSET   : 2 by 3 by 2 points (X-Y-Z)
-             T        : 1
-              2        4     
-              1        2
- ---- K:1 Z:   1
- 1   / 1:  1112.00  1113.67
- 2   / 2:  1122.00  1123.67
- 3   / 3:  1132.00  1133.67
- ---- K:2 Z:   2
- 1   / 1:  1212.00  1213.67
- 2   / 2:  1222.00  1223.67
- 3   / 3:  1232.00  1233.67
- 
-! 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
-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
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  7 dset:   1 I:    3    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- strip regrid on X: BIGVAR --> (G018)           @XACT
- rdstride BIGVAR   C: 10 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 27 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 47 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
-             VARIABLE : BIGVAR[I=1:40:5]
-             FILENAME : bn_strides.cdf
-             SUBSET   : 3 points (X)
-             Y        : 1
-             Z        : 1
-             T        : 1
-               1     
-               1
- 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
-list/k=1/l=1 a[i=3:5,j=1:8:2]
- dealloc  dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX024)   (AX025)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX024)   (AX025)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX024)   (AX025)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX024)   (AX025)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- strip regrid on Y: A --> (G010)           @XACT
- eval    A        C:  8 dset:   1 I:    3    5  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- strip regrid on X: BIGVAR --> (G018)           @XACT
- rdstride BIGVAR   C: 11 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 52 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 54 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- regrid  A        M: 49 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX024)   (AX025)   ZAX1_20   TAX1_10   NORMAL    NORMAL
-             VARIABLE : BIGVAR[I=1:40:5]
-                        regrid: 2 delta on Y
-             FILENAME : bn_strides.cdf
-             SUBSET   : 3 by 4 points (X-Y)
-             Z        : 1
-             T        : 1
-             11       16       21     
-              3        4        5
- 1   / 1:  1121.00  1126.00  1131.00
- 3   / 2:  1141.00  1146.00  1151.00
- 5   / 3:  1161.00  1166.00  1171.00
- 7   / 4:  1181.00  1186.00  1191.00
- 
-! ****** unequally spaced points on parent axis
-! reference data
-LIST/order=x/j=1/k=1/l=1 UNEVENVAR
- dealloc  dynamic grid (G010)          (AX024)   (AX025)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- -DELETE A        M: 49 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- 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
-             VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 points (X)
-             Y        : 0
-             Z        : 1
-             T        : 1
-            0        0.3      0.48     0.6    
-             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
- 
-! 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
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip regrid on X: UNEVENVAR --> (G010)           @XACT
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 54 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 55 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
-             VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
-                        regrid: on X
-             FILENAME : bn_strides.cdf
-             SUBSET   : 2 points (X)
-             Y        : 0
-             Z        : 1
-             T        : 1
-            0.3      0.6    
-             1        2
-          1112.00  1114.00
- 
-! cache hit after changes to COMPLETE_MISSING_LIMS and FLESH_OUT_AXIS
-LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip regrid on X: UNEVENVAR --> (G010)           @XACT
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 52 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 55 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
-             VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
-                        regrid: on X
-             FILENAME : bn_strides.cdf
-             SUBSET   : 2 points (X)
-             Y        : 0
-             Z        : 1
-             T        : 1
-            0.3      0.6    
-             1        2
-          1112.00  1114.00
- 
-! 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
-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
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  7 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip regrid on X: UNEVENVAR --> (G018)           @XACT
- rdstride UNE-NVAR C: 10 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 52 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 54 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
-             VARIABLE : UNEVENVAR[I=2:4:2]
-             FILENAME : bn_strides.cdf
-             SUBSET   : 2 points (X)
-             Y        : 0
-             Z        : 1
-             T        : 1
-            0.3      0.6    
-             1        2
-          1112.00  1114.00
-list/order=x/j=1/k=1/l=1 a		! from cache ...
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  7 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip regrid on X: UNEVENVAR --> (G018)           @XACT
- rdstride UNE-NVAR C: 10 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 49 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 55 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
-             VARIABLE : UNEVENVAR[I=2:4:2]
-             FILENAME : bn_strides.cdf
-             SUBSET   : 2 points (X)
-             Y        : 0
-             Z        : 1
-             T        : 1
-            0.3      0.6    
-             1        2
-          1112.00  1114.00
- 
-! 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
-load/k=1/l=1 UNEVENVAR
- dealloc  dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- reading UNE-NVAR M: 55 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
-LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
- dealloc  dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip regrid on X: UNEVENVAR --> (G018)           @XACT
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 52 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 54 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
-             VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
-                        regrid: on X
-             FILENAME : bn_strides.cdf
-             SUBSET   : 2 points (X)
-             Y        : 0
-             Z        : 1
-             T        : 1
-              0      
-               1
- 0.3  / 1:  1112.00
- 0.6  / 2:  1114.00
-LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2,j=1:5:2]
- dealloc  dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip regrid on X: UNEVENVAR --> (G010)           @XACT
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 49 dset:   1 I:    1    2  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 54 dset:   1 I:    2    4  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- doing limits reconciliation on Y axis: UNEVENVAR
-             VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
-                        regrid: on X, on Y
-             FILENAME : bn_strides.cdf
-             SUBSET   : 2 points (X)
-             Y        : 0
-             Z        : 1
-             T        : 1
-              0      
-               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
-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
- 
-! modulo requests cannot use strides (as this example shows)
-set axis/modulo XUNEVEN
-LIST/order=x UNEVENVAR[I=1:30:7,j=1,k=1,l=1]    ! 1, 8, 15(5), 22(2)
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip regrid on X: UNEVENVAR --> (G010)           @XACT
- strip moduloing UNEVENVAR on X axis:     1    29 dset:   1
- reading UNE-NVAR M: 55 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- doing moduloing UNEVENVAR on X axis:     1    10 dset:   1
- regrid  UNE-NVAR M: 49 dset:   1 I:    1    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
-             VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
-                        regrid: on X
-             FILENAME : bn_strides.cdf
-             SUBSET   : 5 points (X)
-             Y        : 0
-             Z        : 1
-             T        : 1
-            0        0.9      1.87     2.65     3.3    
-             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
- 
-! strides applied to more than one axis need special attention in IS_REGRID
-LIST/k=1/l=1 UNEVENVAR[i=2:4:2,j=1:3:2]
- dealloc  dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip regrid on X: UNEVENVAR --> (G010)           @XACT
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 55 dset:   1 I:    2    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
-             VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
-                        regrid: on X, on Y
-             FILENAME : bn_strides.cdf
-             SUBSET   : 2 by 2 points (X-Y)
-             Z        : 1
-             T        : 1
-              0.3      0.6    
-               1        2
- 0    / 1:  1112.00  1114.00
- 0.95 / 2:  1132.00  1134.00
-LIST/k=1/l=1 UNEVENVAR[i=2:6:2,j=1:5:2]
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- -DELETE UNE-NVAR M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX024)   (AX026)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX024)   (AX026)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX024)   (AX026)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX024)   (AX026)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip regrid on X: UNEVENVAR --> (G010)           @XACT
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    6  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 55 dset:   1 I:    1    3  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 52 dset:   1 I:    2    6  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX024)   (AX026)   ZAX1_6    TAX1_4    NORMAL    NORMAL
-             VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
-                        regrid: on X, on Y
-             FILENAME : bn_strides.cdf
-             SUBSET   : 3 by 3 points (X-Y)
-             Z        : 1
-             T        : 1
-              0.3      0.6      0.78   
-               1        2        3
- 0    / 1:  1112.00  1114.00  1116.00
- 0.95 / 2:  1132.00  1134.00  1136.00
- 1.4  / 3:  1152.00  1154.00  1156.00
- 
-! averaging causes bypass of strides
-LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=2:8:2 at ave]
- dealloc  dynamic grid (G010)          (AX024)   (AX026)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- -DELETE UNE-NVAR M: 55 dset:   1 I:    1    3  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip regrid on X: UNEVENVAR --> (G010)           @AVE
- reading UNE-NVAR M: 55 dset:   1 I:    1    9  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- regrid  UNE-NVAR M: 52 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
-             VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
-                        regrid: on X at AVE
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 points (X)
-             Y        : 0
-             Z        : 1
-             T        : 1
-                0       
-                 1
- 0.3  / 1:  1111.60376
- 0.6  / 2:  1113.79689
- 0.78 / 3:  1115.87072
- 0.9  / 4:  1117.90449
-LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=2:8:2]		! for comparison
- dealloc  dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- -DELETE UNE-NVAR M: 52 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX026)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX026)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX026)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX026)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip regrid on X: UNEVENVAR --> (G010)           @XACT
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 49 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 52 dset:   1 I:    2    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX026)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
-             VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
-                        regrid: on X
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 points (X)
-             Y        : 0
-             Z        : 1
-             T        : 1
-                0       
-                 1
- 0.3  / 1:  1112.00000
- 0.6  / 2:  1114.00000
- 0.78 / 3:  1116.00000
- 0.9  / 4:  1118.00000
- 
-! test special logic in tm_world_recur for endpoints of strides on irreg axis
-LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=1:10:2 at ave]
- dealloc  dynamic grid (G010)          (AX026)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- -DELETE UNE-NVAR M: 49 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip regrid on X: UNEVENVAR --> (G010)           @AVE
- reading UNE-NVAR M: 49 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- regrid  UNE-NVAR M: 52 dset:   1 I:    1    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
-             VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
-                        regrid: on X at AVE
-             FILENAME : bn_strides.cdf
-             SUBSET   : 5 points (X)
-             Y        : 0
-             Z        : 1
-             T        : 1
-                0       
-                 1
- 0    / 1:  1111.22629
- 0.48 / 2:  1112.70797
- 0.7  / 3:  1114.84240
- 0.85 / 4:  1116.89020
- 0.95 / 5:  1119.13604
- 
- 
-! * * * * * MIXED STRIDES and PERMUTATIONS * * * * *
- 
-set region/i=3:6/j=2:4/k=1:2/l=1
- 
-use/order=yx bn_strides
-list bigvar[i=3:9:2]
- dealloc  dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- -DELETE UNE-NVAR M: 52 dset:   1 I:    1    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX026)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX026)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX026)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX026)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- strip regrid on X: BIGVAR --> (G010)           @XACT
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 54 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 52 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX026)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
-             VARIABLE : VAR
-                        regrid: 2 delta on X
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (X-Y-Z)
-             T        : 1
-              3        5        7        9     
-              1        2        3        4
- ---- K:1 Z:   1
- 2   / 2:  1123.00  1125.00  1127.00  1129.00
- 3   / 3:  1133.00  1135.00  1137.00  1139.00
- 4   / 4:  1143.00  1145.00  1147.00  1149.00
- ---- K:2 Z:   2
- 2   / 2:  1223.00  1225.00  1227.00  1229.00
- 3   / 3:  1233.00  1235.00  1237.00  1239.00
- 4   / 4:  1243.00  1245.00  1247.00  1249.00
-list bigvar[j=2:6:2]
- dealloc  dynamic grid (G010)          (AX026)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- -DELETE BIGVAR   M: 54 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          XAX1_40   (AX024)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XAX1_40   (AX024)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G010)          XAX1_40   (AX024)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          XAX1_40   (AX024)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- strip regrid on Y: BIGVAR --> (G010)           @XACT
- rdstride BIGVAR   C:  7 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 52 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 54 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XAX1_40   (AX024)   ZAX1_20   TAX1_10   NORMAL    NORMAL
-             VARIABLE : VAR
-                        regrid: 2 delta on Y
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (X-Y-Z)
-             T        : 1
-              3        4        5        6     
-              3        4        5        6
- ---- K:1 Z:   1
- 2   / 1:  1123.00  1124.00  1125.00  1126.00
- 4   / 2:  1143.00  1144.00  1145.00  1146.00
- 6   / 3:  1163.00  1164.00  1165.00  1166.00
- ---- K:2 Z:   2
- 2   / 1:  1223.00  1224.00  1225.00  1226.00
- 4   / 2:  1243.00  1244.00  1245.00  1246.00
- 6   / 3:  1263.00  1264.00  1265.00  1266.00
-list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
- dealloc  dynamic grid (G010)          XAX1_40   (AX024)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- -DELETE BIGVAR   M: 52 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX026)   (AX025)   (AX027)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX026)   (AX025)   (AX027)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX026)   (AX025)   (AX027)   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX026)   (AX025)   (AX027)   TAX1_10   NORMAL    NORMAL
- strip regrid on X: BIGVAR --> (G010)           @XACT
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 52 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX026)   (AX025)   (AX027)   TAX1_10   NORMAL    NORMAL
-             VARIABLE : VAR
-                        regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (X-Y-Z)
-             T        : 1
-              3        5        7        9     
-              1        2        3        4
- ---- K:1 Z:   1
- 2   / 1:  1123.00  1125.00  1127.00  1129.00
- 4   / 2:  1143.00  1145.00  1147.00  1149.00
- 6   / 3:  1163.00  1165.00  1167.00  1169.00
- ---- K:2 Z:   3
- 2   / 1:  1323.00  1325.00  1327.00  1329.00
- 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
- 
-use/order=zyx bn_strides
-list bigvar[i=3:9:2]
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX027)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
- strip regrid on X: BIGVAR --> (G018)           @XACT
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 54 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 55 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
-             VARIABLE : VAR
-                        regrid: 2 delta on X
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (X-Y-Z)
-             T        : 1
-              3        5        7        9     
-              1        2        3        4
- ---- K:1 Z:   1
- 2   / 2:  1321.00  1521.00  1721.00  1921.00
- 3   / 3:  1331.00  1531.00  1731.00  1931.00
- 4   / 4:  1341.00  1541.00  1741.00  1941.00
- ---- K:2 Z:   2
- 2   / 2:  1322.00  1522.00  1722.00  1922.00
- 3   / 3:  1332.00  1532.00  1732.00  1932.00
- 4   / 4:  1342.00  1542.00  1742.00  1942.00
-list bigvar[j=2:6:2]
- dealloc  dynamic grid (G018)          (AX027)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
- -DELETE BIGVAR   M: 54 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          ZAX1_20   (AX023)   XAX1_40   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          ZAX1_20   (AX023)   XAX1_40   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          ZAX1_20   (AX023)   XAX1_40   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          ZAX1_20   (AX023)   XAX1_40   TAX1_10   NORMAL    NORMAL
- strip regrid on Y: BIGVAR --> (G018)           @XACT
- rdstride BIGVAR   C:  7 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 55 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 54 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          ZAX1_20   (AX023)   XAX1_40   TAX1_10   NORMAL    NORMAL
-             VARIABLE : VAR
-                        regrid: 2 delta on Y
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (X-Y-Z)
-             T        : 1
-              3        4        5        6     
-              3        4        5        6
- ---- K:1 Z:   1
- 2   / 1:  1321.00  1421.00  1521.00  1621.00
- 4   / 2:  1341.00  1441.00  1541.00  1641.00
- 6   / 3:  1361.00  1461.00  1561.00  1661.00
- ---- K:2 Z:   2
- 2   / 1:  1322.00  1422.00  1522.00  1622.00
- 4   / 2:  1342.00  1442.00  1542.00  1642.00
- 6   / 3:  1362.00  1462.00  1562.00  1662.00
-list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
- dealloc  dynamic grid (G018)          ZAX1_20   (AX023)   XAX1_40   TAX1_10   NORMAL    NORMAL
- -DELETE BIGVAR   M: 55 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_10   NORMAL    NORMAL
- strip regrid on X: BIGVAR --> (G018)           @XACT
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 55 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_10   NORMAL    NORMAL
-             VARIABLE : VAR
-                        regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (X-Y-Z)
-             T        : 1
-              3        5        7        9     
-              1        2        3        4
- ---- K:1 Z:   1
- 2   / 1:  1321.00  1521.00  1721.00  1921.00
- 4   / 2:  1341.00  1541.00  1741.00  1941.00
- 6   / 3:  1361.00  1561.00  1761.00  1961.00
- ---- K:2 Z:   3
- 2   / 1:  1323.00  1523.00  1723.00  1923.00
- 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
- 
-use/order=zxy bn_strides
-list bigvar[i=3:9:2]
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX025)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
- strip regrid on X: BIGVAR --> (G018)           @XACT
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 55 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 54 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
-             VARIABLE : VAR
-                        regrid: 2 delta on X
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (X-Y-Z)
-             T        : 1
-              3        5        7        9     
-              1        2        3        4
- ---- K:1 Z:   1
- 2   / 2:  1312.00  1512.00  1712.00  1912.00
- 3   / 3:  1313.00  1513.00  1713.00  1913.00
- 4   / 4:  1314.00  1514.00  1714.00  1914.00
- ---- K:2 Z:   2
- 2   / 2:  1322.00  1522.00  1722.00  1922.00
- 3   / 3:  1323.00  1523.00  1723.00  1923.00
- 4   / 4:  1324.00  1524.00  1724.00  1924.00
-list bigvar[j=2:6:2]
- dealloc  dynamic grid (G018)          (AX025)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
- -DELETE BIGVAR   M: 55 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          ZAX1_20   (AX026)   YAX1_30   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          ZAX1_20   (AX026)   YAX1_30   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          ZAX1_20   (AX026)   YAX1_30   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          ZAX1_20   (AX026)   YAX1_30   TAX1_10   NORMAL    NORMAL
- strip regrid on Y: BIGVAR --> (G018)           @XACT
- rdstride BIGVAR   C:  7 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 54 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 55 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          ZAX1_20   (AX026)   YAX1_30   TAX1_10   NORMAL    NORMAL
-             VARIABLE : VAR
-                        regrid: 2 delta on Y
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (X-Y-Z)
-             T        : 1
-              3        4        5        6     
-              3        4        5        6
- ---- K:1 Z:   1
- 2   / 1:  1312.00  1412.00  1512.00  1612.00
- 4   / 2:  1314.00  1414.00  1514.00  1614.00
- 6   / 3:  1316.00  1416.00  1516.00  1616.00
- ---- K:2 Z:   2
- 2   / 1:  1322.00  1422.00  1522.00  1622.00
- 4   / 2:  1324.00  1424.00  1524.00  1624.00
- 6   / 3:  1326.00  1426.00  1526.00  1626.00
-list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
- dealloc  dynamic grid (G018)          ZAX1_20   (AX026)   YAX1_30   TAX1_10   NORMAL    NORMAL
- -DELETE BIGVAR   M: 54 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_10   NORMAL    NORMAL
- strip regrid on X: BIGVAR --> (G018)           @XACT
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 54 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_10   NORMAL    NORMAL
-             VARIABLE : VAR
-                        regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (X-Y-Z)
-             T        : 1
-              3        5        7        9     
-              1        2        3        4
- ---- K:1 Z:   1
- 2   / 1:  1312.00  1512.00  1712.00  1912.00
- 4   / 2:  1314.00  1514.00  1714.00  1914.00
- 6   / 3:  1316.00  1516.00  1716.00  1916.00
- ---- K:2 Z:   3
- 2   / 1:  1332.00  1532.00  1732.00  1932.00
- 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
- 
-! now with xytvar
-cancel region
-set region/i=1:4/j=1:3/l=1:2
-use bn_strides
-show grid xytvar
- getgrid EX#1     C:  6 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
-    GRID GPC5
- name       axis              # pts   start                end
- XLON      LONGITUDE           40mr   141E                 180E
- YLAT      LATITUDE            30 r   1N                   30N
- normal    Z
- TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00
- normal    E
- normal    F
-list xytvar[i=1:7:2]
- dealloc  dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX027)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
- strip regrid on X: XYTVAR --> (G018)           @XACT
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
-             VARIABLE : L*1000 + J*10 + I
-                        regrid: 2 deg on X
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (LONGITUDE-LATITUDE-TIME)
-             141E     143E     145E     147E    
-               1        2        3        4
- ---- L:1 T:   JAN-1995
- 3N   / 3:  1031.00  1033.00  1035.00  1037.00
- 2N   / 2:  1021.00  1023.00  1025.00  1027.00
- 1N   / 1:  1011.00  1013.00  1015.00  1017.00
- ---- L:2 T:   JAN-1995
- 3N   / 3:  2031.00  2033.00  2035.00  2037.00
- 2N   / 2:  2021.00  2023.00  2025.00  2027.00
- 1N   / 1:  2011.00  2013.00  2015.00  2017.00
-list xytvar[j=2:6:2]
- dealloc  dynamic grid (G018)          (AX027)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          XLON      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
- dealloc  dynamic grid (G018)          XLON      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
- allocate dynamic grid (G018)          XLON      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          XLON      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
- strip regrid on Y: XYTVAR --> (G018)           @XACT
- rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          XLON      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
-             VARIABLE : L*1000 + J*10 + I
-                        regrid: 2 deg on Y
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (LONGITUDE-LATITUDE-TIME)
-             141E     142E     143E     144E    
-               1        2        3        4
- ---- L:1 T:   JAN-1995
- 6N   / 3:  1061.00  1062.00  1063.00  1064.00
- 4N   / 2:  1041.00  1042.00  1043.00  1044.00
- 2N   / 1:  1021.00  1022.00  1023.00  1024.00
- ---- L:2 T:   JAN-1995
- 6N   / 3:  2061.00  2062.00  2063.00  2064.00
- 4N   / 2:  2041.00  2042.00  2043.00  2044.00
- 2N   / 1:  2021.00  2022.00  2023.00  2024.00
-list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- dealloc  dynamic grid (G018)          XLON      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
- strip regrid on X: XYTVAR --> (G018)           @XACT
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
-             VARIABLE : L*1000 + J*10 + I
-                        regrid: 2 deg on X, 2 deg on Y, 2 day on T
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (LONGITUDE-LATITUDE-TIME)
-             141E     143E     145E     147E    
-               1        2        3        4
- ---- L:1 T:   JAN-1995
- 6N   / 3:  3061.00  3063.00  3065.00  3067.00
- 4N   / 2:  3041.00  3043.00  3045.00  3047.00
- 2N   / 1:  3021.00  3023.00  3025.00  3027.00
- ---- L:2 T:   JAN-1995
- 6N   / 3:  5061.00  5063.00  5065.00  5067.00
- 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
- 
-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
- normal    Z
- TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00
- normal    E
- normal    F
-list xytvar[i=1:7:2]
- dealloc  dynamic grid GPC5            YLAT      XLON      NORMAL    TTIME     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX025)   XLON      NORMAL    TTIME     NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   XLON      NORMAL    TTIME     NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   XLON      NORMAL    TTIME     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   XLON      NORMAL    TTIME     NORMAL    NORMAL
- strip regrid on X: XYTVAR --> (G018)           @XACT
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   XLON      NORMAL    TTIME     NORMAL    NORMAL
-             VARIABLE : L*1000 + J*10 + I
-                        regrid: 2 deg on X
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (X (degrees_north)-Y (degrees_east)-TIME)
-                1        3        5        7     
-                1        2        3        4
- ---- L:1 T:   JAN-1995
- 141   / 1:  1011.00  1031.00  1051.00  1071.00
- 142   / 2:  1012.00  1032.00  1052.00  1072.00
- 143   / 3:  1013.00  1033.00  1053.00  1073.00
- ---- L:2 T:   JAN-1995
- 141   / 1:  2011.00  2031.00  2051.00  2071.00
- 142   / 2:  2012.00  2032.00  2052.00  2072.00
- 143   / 3:  2013.00  2033.00  2053.00  2073.00
-list xytvar[j=2:6:2]
- dealloc  dynamic grid (G018)          (AX025)   XLON      NORMAL    TTIME     NORMAL    NORMAL
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          YLAT      (AX026)   NORMAL    TTIME     NORMAL    NORMAL
- dealloc  dynamic grid (G018)          YLAT      (AX026)   NORMAL    TTIME     NORMAL    NORMAL
- allocate dynamic grid (G018)          YLAT      (AX026)   NORMAL    TTIME     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          YLAT      (AX026)   NORMAL    TTIME     NORMAL    NORMAL
- strip regrid on Y: XYTVAR --> (G018)           @XACT
- rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          YLAT      (AX026)   NORMAL    TTIME     NORMAL    NORMAL
-             VARIABLE : L*1000 + J*10 + I
-                        regrid: 2 deg on Y
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (X (degrees_north)-Y (degrees_east)-TIME)
-                1        2        3        4     
-                1        2        3        4
- ---- L:1 T:   JAN-1995
- 142   / 1:  1012.00  1022.00  1032.00  1042.00
- 144   / 2:  1014.00  1024.00  1034.00  1044.00
- 146   / 3:  1016.00  1026.00  1036.00  1046.00
- ---- L:2 T:   JAN-1995
- 142   / 1:  2012.00  2022.00  2032.00  2042.00
- 144   / 2:  2014.00  2024.00  2034.00  2044.00
- 146   / 3:  2016.00  2026.00  2036.00  2046.00
-list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- dealloc  dynamic grid (G018)          YLAT      (AX026)   NORMAL    TTIME     NORMAL    NORMAL
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
- strip regrid on X: XYTVAR --> (G018)           @XACT
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
-             VARIABLE : L*1000 + J*10 + I
-                        regrid: 2 deg on X, 2 deg on Y, 2 day on T
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (X (degrees_north)-Y (degrees_east)-TIME)
-                1        3        5        7     
-                1        2        3        4
- ---- L:1 T:   JAN-1995
- 142   / 1:  3012.00  3032.00  3052.00  3072.00
- 144   / 2:  3014.00  3034.00  3054.00  3074.00
- 146   / 3:  3016.00  3036.00  3056.00  3076.00
- ---- L:2 T:   JAN-1995
- 142   / 1:  5012.00  5032.00  5052.00  5072.00
- 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
- 
-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
- normal    Z
- XLON      T (degrees_east)    40mr   141                  180
- normal    E
- normal    F
-list xytvar[i=1:7:2]
- dealloc  dynamic grid GPC5            TTIME     YLAT      NORMAL    XLON      NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX027)   YLAT      NORMAL    XLON      NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   YLAT      NORMAL    XLON      NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   YLAT      NORMAL    XLON      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   YLAT      NORMAL    XLON      NORMAL    NORMAL
- strip regrid on X: XYTVAR --> (G018)           @XACT
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   YLAT      NORMAL    XLON      NORMAL    NORMAL
-             VARIABLE : L*1000 + J*10 + I
-                        regrid: 2 day on X
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (X (DAYS)-LATITUDE-T (degrees_east))
-             34319    34321    34323    34325   
-               1        2        3        4
- ---- L:1 T:   141
- 3N   / 3:  1031.00  3031.00  5031.00  7031.00
- 2N   / 2:  1021.00  3021.00  5021.00  7021.00
- 1N   / 1:  1011.00  3011.00  5011.00  7011.00
- ---- L:2 T:   142
- 3N   / 3:  1032.00  3032.00  5032.00  7032.00
- 2N   / 2:  1022.00  3022.00  5022.00  7022.00
- 1N   / 1:  1012.00  3012.00  5012.00  7012.00
-list xytvar[j=2:6:2]
- dealloc  dynamic grid (G018)          (AX027)   YLAT      NORMAL    XLON      NORMAL    NORMAL
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          TTIME     (AX023)   NORMAL    XLON      NORMAL    NORMAL
- dealloc  dynamic grid (G018)          TTIME     (AX023)   NORMAL    XLON      NORMAL    NORMAL
- allocate dynamic grid (G018)          TTIME     (AX023)   NORMAL    XLON      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          TTIME     (AX023)   NORMAL    XLON      NORMAL    NORMAL
- strip regrid on Y: XYTVAR --> (G018)           @XACT
- rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          TTIME     (AX023)   NORMAL    XLON      NORMAL    NORMAL
-             VARIABLE : L*1000 + J*10 + I
-                        regrid: 2 deg on Y
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (X (DAYS)-LATITUDE-T (degrees_east))
-             34319    34320    34321    34322   
-               1        2        3        4
- ---- L:1 T:   141
- 6N   / 3:  1061.00  2061.00  3061.00  4061.00
- 4N   / 2:  1041.00  2041.00  3041.00  4041.00
- 2N   / 1:  1021.00  2021.00  3021.00  4021.00
- ---- L:2 T:   142
- 6N   / 3:  1062.00  2062.00  3062.00  4062.00
- 4N   / 2:  1042.00  2042.00  3042.00  4042.00
- 2N   / 1:  1022.00  2022.00  3022.00  4022.00
-list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- dealloc  dynamic grid (G018)          TTIME     (AX023)   NORMAL    XLON      NORMAL    NORMAL
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
- strip regrid on X: XYTVAR --> (G018)           @XACT
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
-             VARIABLE : L*1000 + J*10 + I
-                        regrid: 2 day on X, 2 deg on Y, 2 deg on T
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (X (DAYS)-LATITUDE-T (degrees_east))
-             34319    34321    34323    34325   
-               1        2        3        4
- ---- L:1 T:   143
- 6N   / 3:  1063.00  3063.00  5063.00  7063.00
- 4N   / 2:  1043.00  3043.00  5043.00  7043.00
- 2N   / 1:  1023.00  3023.00  5023.00  7023.00
- ---- L:2 T:   145
- 6N   / 3:  1065.00  3065.00  5065.00  7065.00
- 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
- 
-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
- normal    Z
- YLAT      T (degrees_north)   30 r   1                    30
- normal    E
- normal    F
-list xytvar[i=1:7:2]
- dealloc  dynamic grid GPC5            TTIME     XLON      NORMAL    YLAT      NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX025)   XLON      NORMAL    YLAT      NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   XLON      NORMAL    YLAT      NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   XLON      NORMAL    YLAT      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   XLON      NORMAL    YLAT      NORMAL    NORMAL
- strip regrid on X: XYTVAR --> (G018)           @XACT
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   XLON      NORMAL    YLAT      NORMAL    NORMAL
-             VARIABLE : L*1000 + J*10 + I
-                        regrid: 2 day on X
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (X (DAYS)-Y (degrees_east)-T (degrees_north))
-              34319    34321    34323    34325   
-                1        2        3        4
- ---- L:1 T:   1
- 141   / 1:  1011.00  3011.00  5011.00  7011.00
- 142   / 2:  1012.00  3012.00  5012.00  7012.00
- 143   / 3:  1013.00  3013.00  5013.00  7013.00
- ---- L:2 T:   2
- 141   / 1:  1021.00  3021.00  5021.00  7021.00
- 142   / 2:  1022.00  3022.00  5022.00  7022.00
- 143   / 3:  1023.00  3023.00  5023.00  7023.00
-list xytvar[j=2:6:2]
- dealloc  dynamic grid (G018)          (AX025)   XLON      NORMAL    YLAT      NORMAL    NORMAL
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          TTIME     (AX026)   NORMAL    YLAT      NORMAL    NORMAL
- dealloc  dynamic grid (G018)          TTIME     (AX026)   NORMAL    YLAT      NORMAL    NORMAL
- allocate dynamic grid (G018)          TTIME     (AX026)   NORMAL    YLAT      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          TTIME     (AX026)   NORMAL    YLAT      NORMAL    NORMAL
- strip regrid on Y: XYTVAR --> (G018)           @XACT
- rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          TTIME     (AX026)   NORMAL    YLAT      NORMAL    NORMAL
-             VARIABLE : L*1000 + J*10 + I
-                        regrid: 2 deg on Y
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (X (DAYS)-Y (degrees_east)-T (degrees_north))
-              34319    34320    34321    34322   
-                1        2        3        4
- ---- L:1 T:   1
- 142   / 1:  1012.00  2012.00  3012.00  4012.00
- 144   / 2:  1014.00  2014.00  3014.00  4014.00
- 146   / 3:  1016.00  2016.00  3016.00  4016.00
- ---- L:2 T:   2
- 142   / 1:  1022.00  2022.00  3022.00  4022.00
- 144   / 2:  1024.00  2024.00  3024.00  4024.00
- 146   / 3:  1026.00  2026.00  3026.00  4026.00
-list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- dealloc  dynamic grid (G018)          TTIME     (AX026)   NORMAL    YLAT      NORMAL    NORMAL
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
- strip regrid on X: XYTVAR --> (G018)           @XACT
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
-             VARIABLE : L*1000 + J*10 + I
-                        regrid: 2 day on X, 2 deg on Y, 2 deg on T
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (X (DAYS)-Y (degrees_east)-T (degrees_north))
-              34319    34321    34323    34325   
-                1        2        3        4
- ---- L:1 T:   3
- 142   / 1:  1032.00  3032.00  5032.00  7032.00
- 144   / 2:  1034.00  3034.00  5034.00  7034.00
- 146   / 3:  1036.00  3036.00  5036.00  7036.00
- ---- L:2 T:   5
- 142   / 1:  1052.00  3052.00  5052.00  7052.00
- 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
- 
-! map into Z instead of T
-use/order=zxy bn_strides
-show grid xytvar
- getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GPC5            TTIME     XLON      YLAT      NORMAL    NORMAL    NORMAL
-    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
- 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
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   XLON      YLAT      NORMAL    NORMAL    NORMAL
- strip regrid on X: XYTVAR --> (G018)           @XACT
- rdstride XYTVAR   C:  8 dset:   1 I:    1    7  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    7  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   XLON      YLAT      NORMAL    NORMAL    NORMAL
-             VARIABLE : L*1000 + J*10 + I
-                        regrid: 2 day on X
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (X (DAYS)-Y (degrees_east)-Z (degrees_north))
-              34319    34321    34323    34325   
-                1        2        3        4
- ---- K:1 Z:   1
- 141   / 1:  1011.00  3011.00  5011.00  7011.00
- 142   / 2:  1012.00  3012.00  5012.00  7012.00
- 143   / 3:  1013.00  3013.00  5013.00  7013.00
- ---- K:2 Z:   2
- 141   / 1:  1021.00  3021.00  5021.00  7021.00
- 142   / 2:  1022.00  3022.00  5022.00  7022.00
- 143   / 3:  1023.00  3023.00  5023.00  7023.00
-list/k=1:2 xytvar[j=2:6:2]
- dealloc  dynamic grid (G018)          (AX027)   XLON      YLAT      NORMAL    NORMAL    NORMAL
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          TTIME     (AX023)   YLAT      NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          TTIME     (AX023)   YLAT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G018)          TTIME     (AX023)   YLAT      NORMAL    NORMAL    NORMAL
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          TTIME     (AX023)   YLAT      NORMAL    NORMAL    NORMAL
- strip regrid on Y: XYTVAR --> (G018)           @XACT
- rdstride XYTVAR   C:  8 dset:   1 I:    1    4  J:    2    6  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    4  J:    2    6  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          TTIME     (AX023)   YLAT      NORMAL    NORMAL    NORMAL
-             VARIABLE : L*1000 + J*10 + I
-                        regrid: 2 deg on Y
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (X (DAYS)-Y (degrees_east)-Z (degrees_north))
-              34319    34320    34321    34322   
-                1        2        3        4
- ---- K:1 Z:   1
- 142   / 1:  1012.00  2012.00  3012.00  4012.00
- 144   / 2:  1014.00  2014.00  3014.00  4014.00
- 146   / 3:  1016.00  2016.00  3016.00  4016.00
- ---- K:2 Z:   2
- 142   / 1:  1022.00  2022.00  3022.00  4022.00
- 144   / 2:  1024.00  2024.00  3024.00  4024.00
- 146   / 3:  1026.00  2026.00  3026.00  4026.00
-list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
- dealloc  dynamic grid (G018)          TTIME     (AX023)   YLAT      NORMAL    NORMAL    NORMAL
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   NORMAL    NORMAL    NORMAL
- strip regrid on X: XYTVAR --> (G018)           @XACT
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   NORMAL    NORMAL    NORMAL
-             VARIABLE : L*1000 + J*10 + I
-                        regrid: 2 day on X, 2 deg on Y, 2 deg on Z
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (X (DAYS)-Y (degrees_east)-Z (degrees_north))
-              34319    34321    34323    34325   
-                1        2        3        4
- ---- K:1 Z:   3
- 142   / 1:  1032.00  3032.00  5032.00  7032.00
- 144   / 2:  1034.00  3034.00  5034.00  7034.00
- 146   / 3:  1036.00  3036.00  5036.00  7036.00
- ---- K:2 Z:   5
- 142   / 1:  1052.00  3052.00  5052.00  7052.00
- 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
- 
- 
-! * * * * * MIXED STRIDES, PERMUTATIONS and REVERSALS * * * * *
-! to evaluate the output remember
-!  1) the axis lengths on disk are 9,8,7,6 for X,Y,Z,T, respectively
-!  2) the negatives apply to the axis in memory (after permutation)
-! Thus, with /ORDER=y-x we expect the 2nd disk axis (the 10's place) to
-! be reversed and the values 1:5:4 to be replaced by 9-(1:5:4) => 8:4:4
- 
-! Note that the logic of the /ORDER syntax when BOTH permutations and
-! reversals are aplied would be more natural if the reversal were applied
-! BEFORE the permutation. This should occur in routine TM_AXIS_ORDER.
-! However, the logic changes needed were messay compared to the rare
-! usage of complex combinations of reversals and permutations, so it was
-! left as-is.
- 
-cancel region; set region/l=1
- 
-! reference output
-use/order=yx bn_strides
-list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G018)           @XACT
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 55 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 54 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
-             VARIABLE : VAR
-                        regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
-             FILENAME : bn_strides.cdf
-             SUBSET   : 2 by 2 by 2 points (X-Y-Z)
-             T        : 1
-              1        5     
-              1        2
- ---- K:1 Z:   3
- 2   / 1:  1312.00  1352.00
- 5   / 2:  1315.00  1355.00
- ---- K:2 Z:   5
- 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
- 
-use/order=-yx bn_strides
-list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_6    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_6    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_6    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G018)           @XACT
- strip reversing MIDVAR on Y axis:     2     5 dset:   1
- rdstride MIDVAR   C:  8 dset:   1 I:    1    5  J:    5    8  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- doing reversing MIDVAR on Y axis:     2     5 dset:   1
- -DELETE MIDVAR   M: 55 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 55 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 54 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_6    NORMAL    NORMAL
-             VARIABLE : VAR
-                        regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
-             FILENAME : bn_strides.cdf
-             SUBSET   : 2 by 2 by 2 points (X-Y-Z)
-             T        : 1
-              1        5     
-              1        2
- ---- K:1 Z:   3
- 2   / 1:  1318.00  1358.00
- 5   / 2:  1315.00  1355.00
- ---- K:2 Z:   5
- 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
- 
-use/order=y-x bn_strides
-list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G018)           @XACT
- strip reversing MIDVAR on X axis:     1     5 dset:   1
- rdstride MIDVAR   C:  8 dset:   1 I:    4    8  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- doing reversing MIDVAR on X axis:     1     5 dset:   1
- -DELETE MIDVAR   M: 55 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 55 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 54 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
-             VARIABLE : VAR
-                        regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
-             FILENAME : bn_strides.cdf
-             SUBSET   : 2 by 2 by 2 points (X-Y-Z)
-             T        : 1
-              1        5     
-              1        2
- ---- K:1 Z:   3
- 2   / 1:  1382.00  1342.00
- 5   / 2:  1385.00  1345.00
- ---- K:2 Z:   5
- 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
- 
-! reference output
-use/order=tyx bn_strides
-list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G018)           @XACT
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 54 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 55 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
-             VARIABLE : VAR
-                        regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
-             FILENAME : bn_strides.cdf
-             SUBSET   : 2 by 2 by 2 points (X-Y-Z)
-             T        : 1
-              1        5     
-              1        2
- ---- K:1 Z:   3
- 2   / 1:  1123.00  5123.00
- 5   / 2:  1153.00  5153.00
- ---- K:2 Z:   5
- 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
- 
-! note the reversal on axes 1,2 and 3 (X,Y,Z in memory -- NOT T)
-use/order=-t-y-x bn_strides
-list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G018)           @XACT
- strip reversing MIDVAR on X axis:     1     5 dset:   1
- rdstride MIDVAR   C:  8 dset:   1 I:    2    6  J:    4    7  K:    3    5  L:    7    7  M: -999 -999  N: -999 -999
- doing reversing MIDVAR on X axis:     1     5 dset:   1
- -DELETE MIDVAR   M: 54 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 54 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 55 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
-             VARIABLE : VAR
-                        regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
-             FILENAME : bn_strides.cdf
-             SUBSET   : 2 by 2 by 2 points (X-Y-Z)
-             T        : 1
-              1        5     
-              1        2
- ---- K:1 Z:   3
- 2   / 1:  6773.00  2773.00
- 5   / 2:  6743.00  2743.00
- ---- K:2 Z:   5
- 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
- 
-! reference output
-use/order=txy bn_strides
-list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G018)           @XACT
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 55 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 54 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
-             VARIABLE : VAR
-                        regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
-             FILENAME : bn_strides.cdf
-             SUBSET   : 2 by 2 by 2 points (X-Y-Z)
-             T        : 1
-              1        5     
-              1        2
- ---- K:1 Z:   3
- 2   / 1:  1132.00  5132.00
- 5   / 2:  1135.00  5135.00
- ---- K:2 Z:   5
- 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
- 
-use/order=-t-x-y bn_strides
-list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G018)           @XACT
- strip reversing MIDVAR on Y axis:     2     5 dset:   1
- rdstride MIDVAR   C:  8 dset:   1 I:    2    6  J:    5    8  K:    3    5  L:    7    7  M: -999 -999  N: -999 -999
- doing reversing MIDVAR on Y axis:     2     5 dset:   1
- -DELETE MIDVAR   M: 55 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 55 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 54 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
-             VARIABLE : VAR
-                        regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
-             FILENAME : bn_strides.cdf
-             SUBSET   : 2 by 2 by 2 points (X-Y-Z)
-             T        : 1
-              1        5     
-              1        2
- ---- K:1 Z:   3
- 2   / 1:  6738.00  2738.00
- 5   / 2:  6735.00  2735.00
- ---- K:2 Z:   5
- 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
- 
-GO bn_reset
-cancel mode verify
-GO bn_non_COARDS_netCDF		! non-standard netCDF files
-! bn_non_COARDS_netCDF.jnl
-! *sh* 3/99
-! *sh* 6/00 -- added true scalar variable, TRUE_SCALAR
- 
-! test robust treatment of non-standard netCDF files
- 
-use non_COARDS
- 
-show data
-     currently SET data sets:
-    1> ./non_COARDS.cdf  (default)
- name     title                             I         J         K         L         M         N
- UNORDERED_AXIS
-          disordered axis                  1:5       ...       ...       ...       ...       ...
-       (invalid coordinate axis)
- GAPPY_AXIS
-          gappy axis                       1:5       ...       ...       ...       ...       ...
-       (invalid coordinate axis)
- SCALAR_VAR
-          a good way to encode model parm  1:1       ...       ...       ...       ...       ...
- TRUE_SCALAR
-          with no dims at all              ...       ...       ...       ...       ...       ...
- MASKED_SST
-          SST * MP_MASK                    1:180     1:90      ...       1:1       ...       ...
- COADSX   Longitude page positions         1:180     1:90      ...       ...       ...       ...
- COADSY   Latitude page positions          1:180     1:90      ...       ...       ...       ...
- HAS_NO_AXIS
-          variable with no axis            1:5       ...       ...       ...       ...       ...
- HAS_UNORDERED_AXIS
-          variable with disordered axis    1:5       ...       ...       ...       ...       ...
- HAS_GAPPY_AXIS
-          variable with gappy axis         1:5       ...       ...       ...       ...       ...
- HAS_BACKWARDS_AXIS
-          variable with backwards axis     1:5       ...       ...       ...       ...       ...
- USES_BIG_IRREG
-          variable defined on too-long ir  ...       ...       ...       1:200000  ...       ...
- 
-show grid/x HAS_NO_AXIS
-    GRID GAB7
- name       axis              # pts   start                end
- NO_AXIS   X                    5 r   1                    5
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
- 
-       I     X                   XBOX      XBOXLO
-       1>  1                     1          0.5
-       2>  2                     1          1.5
-       3>  3                     1          2.5
-       4>  4                     1          3.5
-       5>  5                     1          4.5
-show grid/x HAS_UNORDERED_AXIS
-    GRID GAB1
- name       axis              # pts   start                end
- UNORDERED_AXIS X               5 r   1                    5
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
- 
-       I     X                   XBOX      XBOXLO
-       1>  1                     1          0.5
-       2>  2                     1          1.5
-       3>  3                     1          2.5
-       4>  4                     1          3.5
-       5>  5                     1          4.5
-show grid/x HAS_GAPPY_AXIS
-    GRID GAB2
- name       axis              # pts   start                end
- GAPPY_AXIS X                   5 r   1                    5
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
- 
-       I     X                   XBOX      XBOXLO
-       1>  1                     1          0.5
-       2>  2                     1          1.5
-       3>  3                     1          2.5
-       4>  4                     1          3.5
-       5>  5                     1          4.5
-show grid/x HAS_BACKWARDS_AXIS
-    GRID GAB8
- name       axis              # pts   start                end
- BACKWARDS_AXIS X               5 r   1                    5
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
- 
-       I     X                   XBOX      XBOXLO
-       1>  1                     1          0.5
-       2>  2                     1          1.5
-       3>  3                     1          2.5
-       4>  4                     1          3.5
-       5>  5                     1          4.5
-show grid/x SCALAR_VAR
-    GRID GAB3
- name       axis              # pts   start                end
- SCALAR    X                    1 r   1                    1
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
- 
-       I     X                   XBOX      XBOXLO
-       1>  1                     1          0.5
- 
-show grid/i=1:5 USES_BIG_IRREG
-    GRID GAB9
- name       axis              # pts   start                end
- normal    X
- normal    Y
- normal    Z
- BIG_IRREG T (hours)       200000 i   1                    200000
- 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
- normal    Z
- TIME4     TIME                 1mr   16-JAN 06:00         16-JAN 06:00
- 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
- 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
- normal    Z
- normal    T
- normal    E
- normal    F
- 
-show data
-     currently SET data sets:
-    1> ./non_COARDS.cdf  (default)
- name     title                             I         J         K         L         M         N
- UNORDERED_AXIS
-          disordered axis                  1:5       ...       ...       ...       ...       ...
-       (invalid coordinate axis)
- GAPPY_AXIS
-          gappy axis                       1:5       ...       ...       ...       ...       ...
-       (invalid coordinate axis)
- SCALAR_VAR
-          a good way to encode model parm  1:1       ...       ...       ...       ...       ...
- TRUE_SCALAR
-          with no dims at all              ...       ...       ...       ...       ...       ...
- MASKED_SST
-          SST * MP_MASK                    1:180     1:90      ...       1:1       ...       ...
- COADSX   Longitude page positions         1:180     1:90      ...       ...       ...       ...
- COADSY   Latitude page positions          1:180     1:90      ...       ...       ...       ...
- HAS_NO_AXIS
-          variable with no axis            1:5       ...       ...       ...       ...       ...
- HAS_UNORDERED_AXIS
-          variable with disordered axis    1:5       ...       ...       ...       ...       ...
- HAS_GAPPY_AXIS
-          variable with gappy axis         1:5       ...       ...       ...       ...       ...
- HAS_BACKWARDS_AXIS
-          variable with backwards axis     1:5       ...       ...       ...       ...       ...
- USES_BIG_IRREG
-          variable defined on too-long ir  ...       ...       ...       1:200000  ...       ...
- 
-list UNORDERED_AXIS
-             VARIABLE : disordered axis
-                        invalid coordinate axis
-             FILENAME : non_COARDS.cdf
-             SUBSET   : 5 points (X)
- 1   / 1:  1.00000
- 2   / 2:  3.00000
- 3   / 3:  5.00000
- 4   / 4:  2.00000
- 5   / 5:  4.00000
-list GAPPY_AXIS
-             VARIABLE : gappy axis
-                        invalid coordinate axis
-             FILENAME : non_COARDS.cdf
-             SUBSET   : 5 points (X)
- 1   / 1:  1.00000
- 2   / 2:  2.00000
- 3   / 3:     ....
- 4   / 4:  4.00000
- 5   / 5:  5.00000
-list SCALAR_VAR
-             VARIABLE : a good way to encode model parms
-             FILENAME : non_COARDS.cdf
-             X        : 1
-          99.0000
-list TRUE_SCALAR
-             VARIABLE : with no dims at all
-             FILENAME : non_COARDS.cdf
-        ....
-list HAS_BACKWARDS_AXIS
-             VARIABLE : variable with backwards axis
-             FILENAME : non_COARDS.cdf
-             SUBSET   : 5 points (X)
- 1   / 1:  50.0000
- 2   / 2:  40.0000
- 3   / 3:  30.0000
- 4   / 4:  20.0000
- 5   / 5:  10.0000
- 
-! With 250000 irregular coordinate storage locations, the variable BIG_IRREG
-! is not created; if irreg axis too long for coord storage, a variable
-! is generated with its values.
- 
-! list/i=1:5 BIG_IRREG
- 
-GO bn_reset
-cancel mode verify
-GO bn_cache_hits		! cache hits on unspecified (full) regions
-! bn_cache_hits.jnl
- 
-! 3/99 *sh*
-! Test the success of Ferret in recalling past results
- 
-! 7/01 -- added bn_cache_hits_gcfcn.sub
- 
-define alias CONFUSE load/i=1:5 i
- 
-set mode diag
-use coads_climatology
-set region/l=1
- 
-GO bn_cache_hits.sub sst
-! bn_cache_hits.sub
-! *sh* 3/99
-! usage:	GO bn_cache_hits.sub variable
- 
-stat $1
- !-> stat sst
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  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
- 
-             SEA SURFACE TEMPERATURE
-             LONGITUDE: 20E to 20E(380)
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 16200 (180*90*1*1*1*1)
- # flagged as bad  data: 6694
- Minimum value: -1.8
- Maximum value: 31
- Mean    value: 16.52 (unweighted average)
- Standard deviation: 10.139
-CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid 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: 54 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
- 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: -999 -999  J: -999 -999  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
- 
-             SEA SURFACE TEMPERATURE
-             LONGITUDE: 20E to 20E(380)
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 16200 (180*90*1*1*1*1)
- # flagged as bad  data: 6694
- Minimum value: -1.8
- Maximum value: 31
- Mean    value: 16.52 (unweighted average)
- Standard deviation: 10.139
- 
-define axis/x=130e:80w:1 xtrop
-stat $1[gx=xtrop]
- !-> stat sst[gx=xtrop]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- 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
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST --> (G008)           @LIN
- reading SST      M: 52 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M: 49 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- 
-             SEA SURFACE TEMPERATURE
-             regrid: 1 deg on X
-             LONGITUDE: 129.5E to 79.5W
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 13590 (151*90*1*1*1*1)
- # flagged as bad  data: 4962
- Minimum value: -1.7
- Maximum value: 31
- Mean    value: 17.605 (unweighted average)
- Standard deviation: 9.8848
-CONFUSE
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST      M: 49 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
- pass #2 EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 49 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
-stat $1[gx=xtrop]
- !-> stat sst[gx=xtrop]
- -DELETE I        M: 49 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- 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
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST --> (G008)           @LIN
- reading SST      M: 49 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M: 27 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- 
-             SEA SURFACE TEMPERATURE
-             regrid: 1 deg on X
-             LONGITUDE: 129.5E to 79.5W
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 13590 (151*90*1*1*1*1)
- # flagged as bad  data: 4962
- Minimum value: -1.7
- Maximum value: 31
- Mean    value: 17.605 (unweighted average)
- Standard deviation: 9.8848
- 
-let $1x = $1[gx=xtrop]
- !-> DEFINE VARIABLE sstx = sst[gx=xtrop]
-stat $1x
- !-> stat sstx
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST      M: 27 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid SSTX     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTX     C:  6 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST --> (G008)           @LIN
- reading SST      M: 27 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M: 47 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- 
-             SST[GX=XTROP]
-             LONGITUDE: 129.5E to 79.5W
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 13590 (151*90*1*1*1*1)
- # flagged as bad  data: 4962
- Minimum value: -1.7
- Maximum value: 31
- Mean    value: 17.605 (unweighted average)
- Standard deviation: 9.8848
-CONFUSE
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
- pass #2 EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 44 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
-stat $1x
- !-> stat sstx
- -DELETE I        M: 44 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTX     C:  6 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST --> (G008)           @LIN
- reading SST      M: 44 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M: 43 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- 
-             SST[GX=XTROP]
-             LONGITUDE: 129.5E to 79.5W
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 13590 (151*90*1*1*1*1)
- # flagged as bad  data: 4962
- Minimum value: -1.7
- Maximum value: 31
- Mean    value: 17.605 (unweighted average)
- Standard deviation: 9.8848
- 
-define grid/x=xtrop gx
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SSTX     M: 40 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SSTX     M: 46 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G008)          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
-stat $1[g=gx]
- !-> stat sst[g=gx]
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- 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
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST --> (G008)           @LIN
- reading SST      M: 47 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M: 43 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- 
-             SEA SURFACE TEMPERATURE
-             regrid: 1 deg on X
-             LONGITUDE: 129.5E to 79.5W
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 13590 (151*90*1*1*1*1)
- # flagged as bad  data: 4962
- Minimum value: -1.7
- Maximum value: 31
- Mean    value: 17.605 (unweighted average)
- Standard deviation: 9.8848
-CONFUSE
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST      M: 43 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
- pass #2 EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 43 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
-stat $1[g=gx]
- !-> stat sst[g=gx]
- -DELETE I        M: 43 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- 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
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST --> (G008)           @LIN
- reading SST      M: 43 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M: 46 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- 
-             SEA SURFACE TEMPERATURE
-             regrid: 1 deg on X
-             LONGITUDE: 129.5E to 79.5W
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 13590 (151*90*1*1*1*1)
- # flagged as bad  data: 4962
- Minimum value: -1.7
- Maximum value: 31
- Mean    value: 17.605 (unweighted average)
- Standard deviation: 9.8848
- 
-define axis/y=20s:20n:1 ytrop
-stat $1[gx=xtrop,gy=ytrop]
- !-> stat sst[gx=xtrop,gy=ytrop]
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST      M: 46 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G008)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid (G008)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G008)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- 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
- allocate dynamic grid (G008)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST --> (G008)           @LIN
- reading SST      M: 46 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid XY
- regrid  SST      M: 40 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G008)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- 
-             SEA SURFACE TEMPERATURE
-             regrid: 1 deg on X, 1 deg on Y
-             LONGITUDE: 129.5E to 79.5W
-             LATITUDE: 20.5S to 20.5N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 6191 (151*41*1*1*1*1)
- # flagged as bad  data: 151
- Minimum value: 20.428
- Maximum value: 31
- Mean    value: 26.908 (unweighted average)
- Standard deviation: 1.778
-CONFUSE
- dealloc  dynamic grid (G008)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST      M: 40 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
- pass #2 EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 40 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
-stat $1[gx=xtrop,gy=ytrop]
- !-> stat sst[gx=xtrop,gy=ytrop]
- -DELETE I        M: 40 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G008)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid (G008)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G008)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- 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
- allocate dynamic grid (G008)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST --> (G008)           @LIN
- reading SST      M: 40 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid XY
- regrid  SST      M: 39 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G008)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- 
-             SEA SURFACE TEMPERATURE
-             regrid: 1 deg on X, 1 deg on Y
-             LONGITUDE: 129.5E to 79.5W
-             LATITUDE: 20.5S to 20.5N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 6191 (151*41*1*1*1*1)
- # flagged as bad  data: 151
- Minimum value: 20.428
- Maximum value: 31
- Mean    value: 26.908 (unweighted average)
- Standard deviation: 1.778
- 
-define grid/like=$1/x=xtrop/y=ytrop gxyt
- !-> define grid/like=sst/x=xtrop/y=ytrop gxyt
- dealloc  dynamic grid (G008)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST      M: 39 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  6 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
-stat $1[g=gxyt]
- !-> stat sst[g=gxyt]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  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
- 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
- 
-             SEA SURFACE TEMPERATURE
-             regrid: GXYT
-             LONGITUDE: 129.5E to 79.5W
-             LATITUDE: 20.5S to 20.5N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 6191 (151*41*1*1*1*1)
- # flagged as bad  data: 151
- Minimum value: 20.428
- Maximum value: 31
- Mean    value: 26.908 (unweighted average)
- Standard deviation: 1.778
-CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid 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: 37 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
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- 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
- 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
- 
-             SEA SURFACE TEMPERATURE
-             regrid: GXYT
-             LONGITUDE: 129.5E to 79.5W
-             LATITUDE: 20.5S to 20.5N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 6191 (151*41*1*1*1*1)
- # flagged as bad  data: 151
- Minimum value: 20.428
- Maximum value: 31
- Mean    value: 26.908 (unweighted average)
- Standard deviation: 1.778
- 
-let $1xyt = $1[g=gxyt]
- !-> DEFINE VARIABLE sstxyt = sst[g=gxyt]
-stat $1xyt
- !-> stat sstxyt
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid SSTXYT   C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTXYT   C:  6 dset:   1 I: -999 -999  J: -999 -999  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
- 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
- 
-             SST[G=GXYT]
-             LONGITUDE: 129.5E to 79.5W
-             LATITUDE: 20.5S to 20.5N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 6191 (151*41*1*1*1*1)
- # flagged as bad  data: 151
- Minimum value: 20.428
- Maximum value: 31
- Mean    value: 26.908 (unweighted average)
- Standard deviation: 1.778
-CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid 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: 32 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
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTXYT   C:  6 dset:   1 I: -999 -999  J: -999 -999  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
- 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
- 
-             SST[G=GXYT]
-             LONGITUDE: 129.5E to 79.5W
-             LATITUDE: 20.5S to 20.5N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 6191 (151*41*1*1*1*1)
- # flagged as bad  data: 151
- Minimum value: 20.428
- Maximum value: 31
- Mean    value: 26.908 (unweighted average)
- Standard deviation: 1.778
- 
-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
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
-stat $1xyt
- !-> stat sstxyt
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid SSTXYT   C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTXYT   C:  6 dset:   1 I: -999 -999  J: -999 -999  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
- 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
- 
-             SST[G=GXYT]
-             LONGITUDE: 129.5E to 79.5W
-             LATITUDE: 20.5S to 20.5N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 6191 (151*41*1*1*1*1)
- # flagged as bad  data: 151
- Minimum value: 20.428
- Maximum value: 31
- Mean    value: 26.908 (unweighted average)
- Standard deviation: 1.778
-CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid 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: 26 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
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTXYT   C:  6 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip regrid on X: SST --> GXYT             @LIN
- reading SST      M: 26 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid XY
- regrid  SST      M: 25 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- 
-             SST[G=GXYT]
-             LONGITUDE: 129.5E to 79.5W
-             LATITUDE: 20.5S to 20.5N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 6191 (151*41*1*1*1*1)
- # flagged as bad  data: 151
- Minimum value: 20.428
- Maximum value: 31
- Mean    value: 26.908 (unweighted average)
- Standard deviation: 1.778
- 
-stat $1[x=@ave]
- !-> stat sst[x=@ave]
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  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
- doing --> SST[X=20E:20E(380)@AVE,D=1]
- 
-             SEA SURFACE TEMPERATURE
-             LONGITUDE: 20E to 20E(380) (averaged)
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 90 (1*90*1*1*1*1)
- # flagged as bad  data: 12
- Minimum value: -0.69743
- Maximum value: 27.612
- Mean    value: 14.429 (unweighted average)
- Standard deviation: 10.445
-CONFUSE	
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid 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: 21 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
- 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: -999 -999  J: -999 -999  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
- doing --> SST[X=20E:20E(380)@AVE,D=1]
- 
-             SEA SURFACE TEMPERATURE
-             LONGITUDE: 20E to 20E(380) (averaged)
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 90 (1*90*1*1*1*1)
- # flagged as bad  data: 12
- Minimum value: -0.69743
- Maximum value: 27.612
- Mean    value: 14.429 (unweighted average)
- Standard deviation: 10.445
- 
-let $1xave = $1[x=@ave]
- !-> DEFINE VARIABLE sstxave = sst[x=@ave]
-stat $1xave
- !-> stat sstxave
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid SSTXAVE  C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTXAVE  C:  6 dset:   1 I: -999 -999  J: -999 -999  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
- doing --> SST[X=20E:20E(380)@AVE,D=1]
- 
-             SST[X=@AVE]
-             LONGITUDE: 20E to 20E(380)
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 90 (1*90*1*1*1*1)
- # flagged as bad  data: 12
- Minimum value: -0.69743
- Maximum value: 27.612
- Mean    value: 14.429 (unweighted average)
- Standard deviation: 10.445
-CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid 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: 16 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
- 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: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTXAVE  C:  6 dset:   1 I: -999 -999  J: -999 -999  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
- doing --> SST[X=20E:20E(380)@AVE,D=1]
- 
-             SST[X=@AVE]
-             LONGITUDE: 20E to 20E(380)
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 90 (1*90*1*1*1*1)
- # flagged as bad  data: 12
- Minimum value: -0.69743
- Maximum value: 27.612
- Mean    value: 14.429 (unweighted average)
- Standard deviation: 10.445
- 
-stat $1[x=@sbx]
- !-> stat sst[x=@sbx]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST[I=1:180 at 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
- doing moduloing SST on X axis:     1   180 dset:   1
- doing --> SST[I=1:180 at SBX:3,D=1]
- 
-             SEA SURFACE TEMPERATURE
-             box smoothed by 3 pts on X
-             LONGITUDE: 20E to 20E(380) (box smoothed by 3 pts)
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 16200 (180*90*1*1*1*1)
- # flagged as bad  data: 7173
- Minimum value: -1.3854
- Maximum value: 30.382
- Mean    value: 16.633 (unweighted average)
- Standard deviation: 10.112
-CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid 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: 10 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
- 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: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST[I=1:180 at 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
- doing moduloing SST on X axis:     1   180 dset:   1
- doing --> SST[I=1:180 at SBX:3,D=1]
- 
-             SEA SURFACE TEMPERATURE
-             box smoothed by 3 pts on X
-             LONGITUDE: 20E to 20E(380) (box smoothed by 3 pts)
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 16200 (180*90*1*1*1*1)
- # flagged as bad  data: 7173
- Minimum value: -1.3854
- Maximum value: 30.382
- Mean    value: 16.633 (unweighted average)
- Standard deviation: 10.112
- 
-let $1sbx = $1[x=@sbx]
- !-> DEFINE VARIABLE sstsbx = sst[x=@sbx]
-stat $1sbx
- !-> stat sstsbx
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid SSTSBX   C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTSBX   C:  6 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST[I=1:180 at 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
- doing moduloing SST on X axis:     1   180 dset:   1
- doing --> SST[I=1:180 at SBX:3,D=1]
- 
-             SST[X=@SBX]
-             LONGITUDE: 20E to 20E(380)
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 16200 (180*90*1*1*1*1)
- # flagged as bad  data: 7173
- Minimum value: -1.3854
- Maximum value: 30.382
- Mean    value: 16.633 (unweighted average)
- Standard deviation: 10.112
-CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid 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:  3 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
- 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: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTSBX   C:  6 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST[I=1:180 at 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
- doing moduloing SST on X axis:     1   180 dset:   1
- doing --> SST[I=1:180 at SBX:3,D=1]
- 
-             SST[X=@SBX]
-             LONGITUDE: 20E to 20E(380)
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 16200 (180*90*1*1*1*1)
- # flagged as bad  data: 7173
- Minimum value: -1.3854
- Maximum value: 30.382
- Mean    value: 16.633 (unweighted average)
- Standard deviation: 10.112
- 
- 
- 
-LET sst5 = sst+5
-GO bn_cache_hits.sub sst5
-! bn_cache_hits.sub
-! *sh* 3/99
-! usage:	GO bn_cache_hits.sub variable
- 
-stat $1
- !-> stat sst5
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid SST5     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5     C:  6 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 48 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 53 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 53 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- 
-             SST+5
-             LONGITUDE: 20E to 20E(380)
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 16200 (180*90*1*1*1*1)
- # flagged as bad  data: 6694
- Minimum value: 3.2
- Maximum value: 36
- Mean    value: 21.52 (unweighted average)
- Standard deviation: 10.139
-CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid 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: 53 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
-stat $1
- !-> stat sst5
- -DELETE I        M: 53 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5     C:  6 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 53 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 50 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 50 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- 
-             SST+5
-             LONGITUDE: 20E to 20E(380)
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 16200 (180*90*1*1*1*1)
- # flagged as bad  data: 6694
- Minimum value: 3.2
- Maximum value: 36
- Mean    value: 21.52 (unweighted average)
- Standard deviation: 10.139
- 
-define axis/x=130e:80w:1 xtrop
-stat $1[gx=xtrop]
- !-> stat sst5[gx=xtrop]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- 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
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST5 --> (G008)           @LIN
- eval    SST5     C:  7 dset:   1 I:   55  131  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 50 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 42 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 42 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  SST5     M: 42 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- 
-             SST+5
-             regrid: 1 deg on X
-             LONGITUDE: 129.5E to 79.5W
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 13590 (151*90*1*1*1*1)
- # flagged as bad  data: 4962
- Minimum value: 3.3
- Maximum value: 36
- Mean    value: 22.605 (unweighted average)
- Standard deviation: 9.8848
-CONFUSE
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST5     M: 42 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
- pass #2 EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 42 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
-stat $1[gx=xtrop]
- !-> stat sst5[gx=xtrop]
- -DELETE I        M: 42 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- 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
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST5 --> (G008)           @LIN
- eval    SST5     C:  7 dset:   1 I:   55  131  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 42 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 45 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 45 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  SST5     M: 45 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- 
-             SST+5
-             regrid: 1 deg on X
-             LONGITUDE: 129.5E to 79.5W
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 13590 (151*90*1*1*1*1)
- # flagged as bad  data: 4962
- Minimum value: 3.3
- Maximum value: 36
- Mean    value: 22.605 (unweighted average)
- Standard deviation: 9.8848
- 
-let $1x = $1[gx=xtrop]
- !-> DEFINE VARIABLE sst5x = sst5[gx=xtrop]
-stat $1x
- !-> stat sst5x
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST5     M: 45 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid SST5X    C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5X    C:  6 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST5 --> (G008)           @LIN
- eval    SST5     C:  9 dset:   1 I:   55  131  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 45 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 58 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 58 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  SST5     M: 58 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- 
-             SST5[GX=XTROP]
-             LONGITUDE: 129.5E to 79.5W
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 13590 (151*90*1*1*1*1)
- # flagged as bad  data: 4962
- Minimum value: 3.3
- Maximum value: 36
- Mean    value: 22.605 (unweighted average)
- Standard deviation: 9.8848
-CONFUSE
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
- pass #2 EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 61 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
-stat $1x
- !-> stat sst5x
- -DELETE I        M: 61 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5X    C:  6 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST5 --> (G008)           @LIN
- eval    SST5     C:  9 dset:   1 I:   55  131  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 61 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 62 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 62 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  SST5     M: 62 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- 
-             SST5[GX=XTROP]
-             LONGITUDE: 129.5E to 79.5W
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 13590 (151*90*1*1*1*1)
- # flagged as bad  data: 4962
- Minimum value: 3.3
- Maximum value: 36
- Mean    value: 22.605 (unweighted average)
- Standard deviation: 9.8848
- 
-define grid/x=xtrop gx
-stat $1[g=gx]
- !-> stat sst5[g=gx]
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- 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
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST5 --> (G008)           @LIN
- eval    SST5     C:  7 dset:   1 I:   55  131  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 65 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  SST5     M: 66 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- 
-             SST+5
-             regrid: 1 deg on X
-             LONGITUDE: 129.5E to 79.5W
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 13590 (151*90*1*1*1*1)
- # flagged as bad  data: 4962
- Minimum value: 3.3
- Maximum value: 36
- Mean    value: 22.605 (unweighted average)
- Standard deviation: 9.8848
-CONFUSE
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
- pass #2 EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 68 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
-stat $1[g=gx]
- !-> stat sst5[g=gx]
- -DELETE I        M: 68 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- 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
- allocate dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST5 --> (G008)           @LIN
- eval    SST5     C:  7 dset:   1 I:   55  131  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 68 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 69 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 69 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  SST5     M: 69 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- 
-             SST+5
-             regrid: 1 deg on X
-             LONGITUDE: 129.5E to 79.5W
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 13590 (151*90*1*1*1*1)
- # flagged as bad  data: 4962
- Minimum value: 3.3
- Maximum value: 36
- Mean    value: 22.605 (unweighted average)
- Standard deviation: 9.8848
- 
-define axis/y=20s:20n:1 ytrop
-stat $1[gx=xtrop,gy=ytrop]
- !-> stat sst5[gx=xtrop,gy=ytrop]
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip regrid on X: SST5 --> GXYT             @LIN
- eval    SST5     C:  7 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 71 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 72 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 72 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid XY
- regrid  SST5     M: 72 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- 
-             SST+5
-             regrid: GXYT
-             LONGITUDE: 129.5E to 79.5W
-             LATITUDE: 20.5S to 20.5N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 6191 (151*41*1*1*1*1)
- # flagged as bad  data: 151
- Minimum value: 25.428
- Maximum value: 36
- Mean    value: 31.908 (unweighted average)
- Standard deviation: 1.778
-CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid 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: 74 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 sst5[gx=xtrop,gy=ytrop]
- -DELETE I        M: 74 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip regrid on X: SST5 --> GXYT             @LIN
- eval    SST5     C:  7 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 74 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 75 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 75 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid XY
- regrid  SST5     M: 75 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- 
-             SST+5
-             regrid: GXYT
-             LONGITUDE: 129.5E to 79.5W
-             LATITUDE: 20.5S to 20.5N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 6191 (151*41*1*1*1*1)
- # flagged as bad  data: 151
- Minimum value: 25.428
- Maximum value: 36
- Mean    value: 31.908 (unweighted average)
- Standard deviation: 1.778
- 
-define grid/like=$1/x=xtrop/y=ytrop gxyt
- !-> define grid/like=sst5/x=xtrop/y=ytrop gxyt
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  6 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
-stat $1[g=gxyt]
- !-> stat sst5[g=gxyt]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip regrid on X: SST5 --> GXYT             @LIN
- eval    SST5     C:  7 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 77 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 78 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 78 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid XY
- regrid  SST5     M: 78 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- 
-             SST+5
-             regrid: GXYT
-             LONGITUDE: 129.5E to 79.5W
-             LATITUDE: 20.5S to 20.5N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 6191 (151*41*1*1*1*1)
- # flagged as bad  data: 151
- Minimum value: 25.428
- Maximum value: 36
- Mean    value: 31.908 (unweighted average)
- Standard deviation: 1.778
-CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid 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: 80 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 sst5[g=gxyt]
- -DELETE I        M: 80 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip regrid on X: SST5 --> GXYT             @LIN
- eval    SST5     C:  7 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 80 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 81 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 81 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid XY
- regrid  SST5     M: 81 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- 
-             SST+5
-             regrid: GXYT
-             LONGITUDE: 129.5E to 79.5W
-             LATITUDE: 20.5S to 20.5N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 6191 (151*41*1*1*1*1)
- # flagged as bad  data: 151
- Minimum value: 25.428
- Maximum value: 36
- Mean    value: 31.908 (unweighted average)
- Standard deviation: 1.778
- 
-let $1xyt = $1[g=gxyt]
- !-> DEFINE VARIABLE sst5xyt = sst5[g=gxyt]
-stat $1xyt
- !-> stat sst5xyt
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid SST5XYT  C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5XYT  C:  6 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip regrid on X: SST5 --> GXYT             @LIN
- eval    SST5     C:  9 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 83 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 84 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 84 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid XY
- regrid  SST5     M: 84 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- 
-             SST5[G=GXYT]
-             LONGITUDE: 129.5E to 79.5W
-             LATITUDE: 20.5S to 20.5N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 6191 (151*41*1*1*1*1)
- # flagged as bad  data: 151
- Minimum value: 25.428
- Maximum value: 36
- Mean    value: 31.908 (unweighted average)
- Standard deviation: 1.778
-CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid 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: 87 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
-stat $1xyt
- !-> stat sst5xyt
- -DELETE I        M: 87 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5XYT  C:  6 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip regrid on X: SST5 --> GXYT             @LIN
- eval    SST5     C:  9 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 87 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 88 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 88 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid XY
- regrid  SST5     M: 88 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- 
-             SST5[G=GXYT]
-             LONGITUDE: 129.5E to 79.5W
-             LATITUDE: 20.5S to 20.5N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 6191 (151*41*1*1*1*1)
- # flagged as bad  data: 151
- Minimum value: 25.428
- Maximum value: 36
- Mean    value: 31.908 (unweighted average)
- Standard deviation: 1.778
- 
-let $1xyt = $1[g=gxyt]
- !-> DEFINE VARIABLE sst5xyt = sst5[g=gxyt]
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST5XYT  M: 86 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5XYT  M: 90 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST5X    M: 60 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5X    M: 64 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G008)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST5     M: 58 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 62 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 66 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 69 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 31 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 41 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 51 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 57 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 59 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 63 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 67 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 70 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 72 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 73 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 75 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 76 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 78 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 79 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 81 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 82 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 84 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 85 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 88 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 89 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SSTSBX   M:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SSTSBX   M: 56 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SSTXAVE  M: 14 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SSTXAVE  M: 17 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SSTXYT   M: 24 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SSTXYT   M: 28 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
-stat $1xyt
- !-> stat sst5xyt
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid SST5XYT  C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid SST5     C:  9 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5XYT  C:  6 dset:   1 I: -999 -999  J: -999 -999  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
- 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
- 
-             SST5[G=GXYT]
-             LONGITUDE: 129.5E to 79.5W
-             LATITUDE: 20.5S to 20.5N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 6191 (151*41*1*1*1*1)
- # flagged as bad  data: 151
- Minimum value: 25.428
- Maximum value: 36
- Mean    value: 31.908 (unweighted average)
- Standard deviation: 1.778
-CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid 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: 56 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
-stat $1xyt
- !-> stat sst5xyt
- -DELETE I        M: 56 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5XYT  C:  6 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip regrid on X: SST5 --> GXYT             @LIN
- eval    SST5     C:  9 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 56 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M:  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
- 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
- 
-             SST5[G=GXYT]
-             LONGITUDE: 129.5E to 79.5W
-             LATITUDE: 20.5S to 20.5N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 6191 (151*41*1*1*1*1)
- # flagged as bad  data: 151
- Minimum value: 25.428
- Maximum value: 36
- Mean    value: 31.908 (unweighted average)
- Standard deviation: 1.778
- 
-stat $1[x=@ave]
- !-> stat sst5[x=@ave]
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST5[X=???@AVE,D=1]
- eval    SST5     C:  7 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 85 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 84 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 84 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing --> SST5[X=20E:20E(380)@AVE,D=1]
- 
-             SST+5
-             LONGITUDE: 20E to 20E(380) (averaged)
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 90 (1*90*1*1*1*1)
- # flagged as bad  data: 12
- Minimum value: 4.3026
- Maximum value: 32.612
- Mean    value: 19.429 (unweighted average)
- Standard deviation: 10.445
-CONFUSE	
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid 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: 81 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 sst5[x=@ave]
- -DELETE I        M: 81 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST5[X=???@AVE,D=1]
- eval    SST5     C:  7 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 81 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 79 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 79 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing --> SST5[X=20E:20E(380)@AVE,D=1]
- 
-             SST+5
-             LONGITUDE: 20E to 20E(380) (averaged)
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 90 (1*90*1*1*1*1)
- # flagged as bad  data: 12
- Minimum value: 4.3026
- Maximum value: 32.612
- Mean    value: 19.429 (unweighted average)
- Standard deviation: 10.445
- 
-let $1xave = $1[x=@ave]
- !-> DEFINE VARIABLE sst5xave = sst5[x=@ave]
-stat $1xave
- !-> stat sst5xave
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid SST5XAVE C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5XAVE C:  6 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST5[X=???@AVE,D=1]
- eval    SST5     C:  9 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 76 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 75 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 75 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing --> SST5[X=20E:20E(380)@AVE,D=1]
- 
-             SST5[X=@AVE]
-             LONGITUDE: 20E to 20E(380)
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 90 (1*90*1*1*1*1)
- # flagged as bad  data: 12
- Minimum value: 4.3026
- Maximum value: 32.612
- Mean    value: 19.429 (unweighted average)
- Standard deviation: 10.445
-CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid 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: 70 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
-stat $1xave
- !-> stat sst5xave
- -DELETE I        M: 70 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5XAVE C:  6 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST5[X=???@AVE,D=1]
- eval    SST5     C:  9 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 70 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 67 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 67 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing --> SST5[X=20E:20E(380)@AVE,D=1]
- 
-             SST5[X=@AVE]
-             LONGITUDE: 20E to 20E(380)
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 90 (1*90*1*1*1*1)
- # flagged as bad  data: 12
- Minimum value: 4.3026
- Maximum value: 32.612
- Mean    value: 19.429 (unweighted average)
- Standard deviation: 10.445
- 
-stat $1[x=@sbx]
- !-> stat sst5[x=@sbx]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST5[X=???@SBX:3,D=1]
- eval    SST5     C:  7 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 57 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 51 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 51 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing --> SST5[I=1:180 at SBX:3,D=1]
- 
-             SST+5
-             box smoothed by 3 pts on X
-             LONGITUDE: 20E to 20E(380) (box smoothed by 3 pts)
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 16200 (180*90*1*1*1*1)
- # flagged as bad  data: 7234
- Minimum value: 3.6146
- Maximum value: 35.382
- Mean    value: 21.698 (unweighted average)
- Standard deviation: 10.097
-CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid 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: 31 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 sst5[x=@sbx]
- -DELETE I        M: 31 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: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST5[X=???@SBX:3,D=1]
- eval    SST5     C:  7 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 31 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 69 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 69 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing --> SST5[I=1:180 at SBX:3,D=1]
- 
-             SST+5
-             box smoothed by 3 pts on X
-             LONGITUDE: 20E to 20E(380) (box smoothed by 3 pts)
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 16200 (180*90*1*1*1*1)
- # flagged as bad  data: 7234
- Minimum value: 3.6146
- Maximum value: 35.382
- Mean    value: 21.698 (unweighted average)
- Standard deviation: 10.097
- 
-let $1sbx = $1[x=@sbx]
- !-> DEFINE VARIABLE sst5sbx = sst5[x=@sbx]
-stat $1sbx
- !-> stat sst5sbx
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid SST5SBX  C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5SBX  C:  6 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST5[X=???@SBX:3,D=1]
- eval    SST5     C:  9 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 62 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 58 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 58 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing --> SST5[I=1:180 at SBX:3,D=1]
- 
-             SST5[X=@SBX]
-             LONGITUDE: 20E to 20E(380)
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 16200 (180*90*1*1*1*1)
- # flagged as bad  data: 7234
- Minimum value: 3.6146
- Maximum value: 35.382
- Mean    value: 21.698 (unweighted average)
- Standard deviation: 10.097
-CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid 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: 90 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
-stat $1sbx
- !-> stat sst5sbx
- -DELETE I        M: 90 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- getgrid EX#1     C:  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: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5SBX  C:  6 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST5[X=???@SBX:3,D=1]
- eval    SST5     C:  9 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 90 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 86 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 86 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing --> SST5[I=1:180 at SBX:3,D=1]
- 
-             SST5[X=@SBX]
-             LONGITUDE: 20E to 20E(380)
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 16200 (180*90*1*1*1*1)
- # flagged as bad  data: 7234
- Minimum value: 3.6146
- Maximum value: 35.382
- Mean    value: 21.698 (unweighted average)
- Standard deviation: 10.097
- 
- 
- 
-GO bn_cache_hits_gcfcn.sub
-! bn_cache_hits_gcfcn.sub
-! 7/01 *sh*
- 
-! test cache hits on grid-changing functions
- 
-! caching that happens because gcf_impose_axes sets uvlim_hidden
-set mode diag
- 
-let a = i[i=1:10]
-say `a,return=isize`     ! no evaluation of a required -- just context
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
- pass #2 A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- !-> MESSAGE/CONTINUE 10
-10
-list/nohead a            ! evaluate it now
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 93 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- 1    /  1:   1.0000
- 2    /  2:   2.0000
- 3    /  3:   3.0000
- 4    /  4:   4.0000
- 5    /  5:   5.0000
- 6    /  6:   6.0000
- 7    /  7:   7.0000
- 8    /  8:   8.0000
- 9    /  9:   9.0000
- 10   / 10:  10.0000
- 
-let a = XSEQUENCE(j[j=1:5])
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M: 94 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE I        M: 93 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE SST5SBX  M: 60 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5SBX  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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST5XAVE M: 59 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5XAVE M: 72 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST5XYT  M: 14 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: 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:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 58 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 63 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 64 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 66 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 67 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 69 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 73 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 75 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 78 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 79 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 82 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 84 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 86 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 89 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 91 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
-say `a,return=isize`     ! evaluate it now
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid (C01,V11 C:  9 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid (C11,V11 C: 11 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
- pass #2 (C11,V11 C: 11 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V11 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C11,V11 C: 10 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  J        M: 91 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- !-> MESSAGE/CONTINUE 5
-5
-list/nohead a            ! cache hit
- -DELETE J        M: 91 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V11 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C11,V11 C: 10 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  J        M: 91 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- 1   / 1:  1.00000
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
- 5   / 5:  5.00000
- 
-let a = SAMPLEI(I[i=1:100], {8,5,3})
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE (C11,V11 M: 82 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C11,V11 M: 89 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid YABSTRACT       NORMAL    ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE J        M: 91 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C01,V11 M: 79 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C01,V11 M: 86 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M: 78 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M: 84 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
-say `a,return=isize`     ! evaluate it now
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid (C01,V11 C:  9 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid (C09,V11 C: 12 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
- pass #2 (C09,V11 C: 12 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V11 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- const_v {8,5,3}  M: 84 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   0
- eval    (C09,V11 C: 12 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 79 dset:   0 I:    1  100  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C01,V11 M: 86 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE A        M: 78 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 89 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE {8,5,3}  M: 84 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- !-> MESSAGE/CONTINUE 3
-3
-list/nohead a            ! cache hit
- -DELETE I        M: 79 dset:   0 I:    1  100  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V11 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- const_v {8,5,3}  M: 79 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   0
- eval    (C09,V11 C: 12 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 82 dset:   0 I:    1  100  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C01,V11 M: 86 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 89 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 73 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE {8,5,3}  M: 79 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- 1   / 1:  8.00000
- 2   / 2:  5.00000
- 3   / 3:  3.00000
- 
-spawn rm -f foo.bar*
-spawn touch foo.bar1 foo.bar2 foo.bar3
-let a = SPAWN("ls foo.bar*")
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE (C09,V11 M: 75 dset:   0 I:    1  100  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C09,V11 M: 91 dset:   0 I:    1  100  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE (C01,V11 M: 78 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C01,V11 M: 89 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M: 79 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M: 84 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE I        M: 82 dset:   0 I:    1  100  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
-say `a,return=isize`     ! evaluate it now
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- string str      M: 82 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- !-> MESSAGE/CONTINUE 3
-3
-list/nohead a            ! cache hit
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- string str      M: 79 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- 1   / 1:"foo.bar1"
- 2   / 2:"foo.bar2"
- 3   / 3:"foo.bar3"
- 
-! RESHAPE, alone, is set to require matched limits in order to make a cache hit
-let a = RESHAPE(I[I=1:3]+10*j[j=1:3], I[i=1:9])
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M: 84 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M: 89 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
-say `a,return=isize`
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid (C01,V11 C:  9 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid (C31,V11 C: 11 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
- pass #2 (C31,V11 C: 11 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid (C09,V11 C: 12 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
- pass #2 (C09,V11 C: 12 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G008)          ABSTRACT  ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V11 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C09,V11 C: 10 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 89 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- constan cnst     M: 84 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  J        M: 78 dset:   0 I: -999 -999  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE J        M: 78 dset:   0 I: -999 -999  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 84 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 91 dset:   0 I: -999 -999  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE I        M: 89 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C31,V11 C: 11 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 89 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- !-> MESSAGE/CONTINUE 9
-9
-list/nohead a            ! no cache hit
- -DELETE I        M: 89 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V11 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C09,V11 C: 10 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 89 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- constan cnst     M: 73 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  J        M: 86 dset:   0 I: -999 -999  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE J        M: 86 dset:   0 I: -999 -999  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 73 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 69 dset:   0 I: -999 -999  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE I        M: 89 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C31,V11 C: 11 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 89 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- 1   / 1:  11.0000
- 2   / 2:  12.0000
- 3   / 3:  13.0000
- 4   / 4:  21.0000
- 5   / 5:  22.0000
- 6   / 6:  23.0000
- 7   / 7:  31.0000
- 8   / 8:  32.0000
- 9   / 9:  33.0000
- 
-set mode/last diag
- 
-! v5.4 *kob* 10/01 - need to add exit/script - new exit command qualifiers
-EXIT/SCRIPT
- 
-GO bn_reset
-cancel mode verify
- -DELETE SST      M:  1 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  2 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  3 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  5 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  6 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  7 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  8 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  9 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 10 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 11 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 12 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 13 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 15 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 16 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 18 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 19 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 20 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 21 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 22 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 23 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 25 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 26 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 27 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 28 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 29 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 30 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 31 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 32 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 33 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 34 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 35 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 36 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 37 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 38 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 39 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 40 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 42 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 43 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 44 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 45 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 46 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 47 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 48 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 49 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 50 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 52 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 53 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 54 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 55 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 56 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 57 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 61 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 62 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 65 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 68 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 70 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 71 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 74 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 76 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 77 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 80 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 81 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 83 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 85 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 87 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 90 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: 69 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C31,V11 M: 91 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: 73 dset:   0 I:    1    3  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C09,V11 M: 84 dset:   0 I:    1    3  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G008)          ABSTRACT  ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE (C01,V11 M: 78 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C01,V11 M: 86 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: 67 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M: 75 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: 89 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE str      M: 79 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE str      M: 82 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
-! bn_regrid_to_user
-! 8/99 *sh*
-! 5/01 *sh* - changes to accomodate truncated levitus_climatology.cdf
-!           - additions to test use of expressions in SET/SHOW/DEFINE grid
- 
-! test various regridding combos that involve user-defined variables
-! for the target grids
- 
-use coads_climatology
-use levitus_climatology
- 
-! define test objects
-let a = sst[d=coads_climatology] + 1
-let b = sst + 1		! data set unspecified
-DEFINE AXIS/Y=20s:20n:.5/units=degrees yax
-DEFINE GRID/like=sst[d=coads_climatology]/y=yax gg
- 
-! reference data
-list/x=158e:161e/y=6s:4s temp[d=2,k=1]
-             VARIABLE : TEMPERATURE (DEG C)
-             FILENAME : levitus_climatology.cdf
-             SUBSET   : 3 by 2 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 0
-              158.5E   159.5E   160.5E  
-              139      140      141
- 4.5S / 86:  29.5110  29.4430  29.3800
- 5.5S / 85:  29.5890  29.5250  29.4570
- 
-! basic regrid (implicit grid -- sst and temp geometries are mismatched)
-list/x=160e/y=5s temp[d=2,k=1,g=a[d=1]]
-             VARIABLE : TEMPERATURE (DEG C)
-                        regrid: 2 deg on X, 2 deg on Y
-             FILENAME : levitus_climatology.cdf
-             LONGITUDE: 159E
-             LATITUDE : 5S
-             DEPTH (m): 0
-          29.5170
-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
- normal    T
- normal    E
- normal    F
- 
-! per axis regrid
-! 5/01 note: changed from y=0 yo y=5s to accomodate Y-truncated
-! levitus_climatology.cdf
-list/x=160e/y=5s temp[d=2,k=1,gx=a[d=1],gy=yax]
-             VARIABLE : TEMPERATURE (DEG C)
-                        regrid: 2 deg on X, 0.5 deg on Y
-             FILENAME : levitus_climatology.cdf
-             LONGITUDE: 159E
-             LATITUDE : 5S
-             DEPTH (m): 0
-          29.5170
-list/x=160e/y=5s temp[d=2,k=1,gy=yax,gx=a[d=1]]
-             VARIABLE : TEMPERATURE (DEG C)
-                        regrid: 2 deg on X, 0.5 deg on Y
-             FILENAME : levitus_climatology.cdf
-             LONGITUDE: 159E
-             LATITUDE : 5S
-             DEPTH (m): 0
-          29.5170
-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
- normal    T
- normal    E
- normal    F
- 
-! combined full grid and per-axis
-list/x=160e/y=5s temp[d=2,k=1,g=gg,gx=a[d=1]]
-             VARIABLE : TEMPERATURE (DEG C)
-                        regrid: 2 deg on X, 0.5 deg on Y
-             FILENAME : levitus_climatology.cdf
-             LONGITUDE: 159E
-             LATITUDE : 5S
-             DEPTH (m): 0
-          29.5170
-list/x=160e/y=5s temp[d=2,k=1,gx=a[d=1],g=gg]
-             VARIABLE : TEMPERATURE (DEG C)
-                        regrid: 2 deg on X, 0.5 deg on Y
-             FILENAME : levitus_climatology.cdf
-             LONGITUDE: 159E
-             LATITUDE : 5S
-             DEPTH (m): 0
-          29.5170
-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
- normal    T
- normal    E
- normal    F
- 
-! pseudo-variable access
-list/i=1:4 i[g=a]		! a is previously loaded
-             VARIABLE : I
-                        axis COADSX
-             SUBSET   : 4 points (LONGITUDE)
- 21E   / 1:  1.00000
- 23E   / 2:  2.00000
- 25E   / 3:  3.00000
- 27E   / 4:  4.00000
-let c = a
-list/i=1:4 i[g=c]		! c is not previously loaded
-             VARIABLE : I
-                        axis COADSX
-             SUBSET   : 4 points (LONGITUDE)
- 21E   / 1:  1.00000
- 23E   / 2:  2.00000
- 25E   / 3:  3.00000
- 27E   / 4:  4.00000
-let d = c
-list/i=1:4 x[gx=d]
-             VARIABLE : X
-                        axis COADSX
-             SUBSET   : 4 points (LONGITUDE)
- 21E   / 1:  21.0000
- 23E   / 2:  23.0000
- 25E   / 3:  25.0000
- 27E   / 4:  27.0000
- 
-! DEFINE GRID based on a user-defined variable
-let e = d
-DEFINE GRID/LIKE=e/x=temp[d=levitus_climatology] gg1
-show grid gg1
-    GRID GG1
- name       axis              # pts   start                end
- XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- COADSY    LATITUDE            90 r   89S                  89N
- normal    Z
- TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-let f = sst[y=20s:20n:.1,d=coads_climatology]
-DEFINE GRID/LIKE=f/x=temp[d=levitus_climatology] gg2
-cancel variable f
-show grid gg2
-    GRID GG2
- name       axis              # pts   start                end
- XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX020)   LATITUDE           401 r   20S                  20N
- normal    Z
- TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-show grid/dynamic
-Dynamic grids:
-    no implicit grids
-Dynamic axes:
-    AXIS (AX020)                         use count:   1
- 
-! demonstrate proper management of dynamic axes
-DEFINE GRID/LIKE=gg2 gg3
-show grid/dynamic
-Dynamic grids:
-    no implicit grids
-Dynamic axes:
-    AXIS (AX020)                         use count:   2
-DEFINE GRID/like=temp[d=levitus_climatology] gg2
-show 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
- normal    T
- normal    E
- normal    F
-show grid/dynamic
-Dynamic grids:
-    no implicit grids
-Dynamic axes:
-    AXIS (AX020)                         use count:   1
- 
-! SET GRID using a user-defined variable
-let g = sst[x=0:30:.1,d=coads_climatology]
-set grid g
-show grid
- Default grid for DEFINE VARIABLE is (G006)
- Last successful data access was on grid (G006)
-    GRID (G006)
- name       axis              # pts   start                end
- (AX012)   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
- 
-! The SET GRID (default) definition should be protected -- not altered
-load/d=coads_climatology sst[y=-10:10:.1,l=1,x=160e]
-show grid
- Default grid for DEFINE VARIABLE is (G006)
- Last successful data access was on grid (G012)
-    GRID (G012)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX005)   LATITUDE           201 r   10S                  10N
- normal    Z
- TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-show grid/dynamic
-Dynamic grids:
-    GRID (G012)                          use count:   1
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX005)   LATITUDE           201 r   10S                  10N
- normal    Z
- TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-    GRID (G006)                          use count:   1
- name       axis              # pts   start                end
- (AX012)   LONGITUDE          301 r   0E                   30E
- 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 (AX005)                         use count:   1
-    AXIS (AX012)                         use count:   1
-    AXIS (AX020)                         use count:   1
- 
-! deliberate errors
-set mode ignore
-load/x=160e/y=5s temp[d=2,k=1,g=no_exist]	! non-existent target variable
-let v2 = temp[d=2,k=1,gx=a[d=1],gy=yax]
-load/x=160e/y=5s v2
-cancel variable a
-load/x=160e/y=5s v2		! non-existent target grid
-set mode/last ignore
- 
-! 12/99
-! bug fix: g=abstract now works
-! new multiple axis syntax: GXY=gg
-define axis/x=1:6:1 x1
-define axis/y=1:4:1 y1
-define axis/z=1:3:1 z1
-define axis/x=1:6:2 x2
-define axis/y=1:4:2 y2
-define axis/z=1:3:2 z2
-let a1 = x[gx=x1]+y[gy=y1]+z[gz=z1]
-let a2 = x[gx=x2]+y[gy=y2]+z[gz=z2]
-list a1
-             VARIABLE : X[GX=X1]+Y[GY=Y1]+Z[GZ=Z1]
-             SUBSET   : 6 by 4 by 3 points (X-Y-Z)
-              1        2        3        4        5        6     
-              1        2        3        4        5        6
- ---- K:1 Z:   1
- 1   / 1:   3.0000   4.0000   5.0000   6.0000   7.0000   8.0000
- 2   / 2:   4.0000   5.0000   6.0000   7.0000   8.0000   9.0000
- 3   / 3:   5.0000   6.0000   7.0000   8.0000   9.0000  10.0000
- 4   / 4:   6.0000   7.0000   8.0000   9.0000  10.0000  11.0000
- ---- K:2 Z:   2
- 1   / 1:   4.0000   5.0000   6.0000   7.0000   8.0000   9.0000
- 2   / 2:   5.0000   6.0000   7.0000   8.0000   9.0000  10.0000
- 3   / 3:   6.0000   7.0000   8.0000   9.0000  10.0000  11.0000
- 4   / 4:   7.0000   8.0000   9.0000  10.0000  11.0000  12.0000
- ---- K:3 Z:   3
- 1   / 1:   5.0000   6.0000   7.0000   8.0000   9.0000  10.0000
- 2   / 2:   6.0000   7.0000   8.0000   9.0000  10.0000  11.0000
- 3   / 3:   7.0000   8.0000   9.0000  10.0000  11.0000  12.0000
- 4   / 4:   8.0000   9.0000  10.0000  11.0000  12.0000  13.0000
-list a1[gx=a2]
-             VARIABLE : X[GX=X1]+Y[GY=Y1]+Z[GZ=Z1]
-                        regrid: 2 delta on X
-             SUBSET   : 4 by 4 by 3 points (X-Y-Z)
-              1        3        5        7     
-              1        2        3        4
- ---- K:1 Z:   1
- 1   / 1:   3.0000   5.0000   7.0000     ....
- 2   / 2:   4.0000   6.0000   8.0000     ....
- 3   / 3:   5.0000   7.0000   9.0000     ....
- 4   / 4:   6.0000   8.0000  10.0000     ....
- ---- K:2 Z:   2
- 1   / 1:   4.0000   6.0000   8.0000     ....
- 2   / 2:   5.0000   7.0000   9.0000     ....
- 3   / 3:   6.0000   8.0000  10.0000     ....
- 4   / 4:   7.0000   9.0000  11.0000     ....
- ---- K:3 Z:   3
- 1   / 1:   5.0000   7.0000   9.0000     ....
- 2   / 2:   6.0000   8.0000  10.0000     ....
- 3   / 3:   7.0000   9.0000  11.0000     ....
- 4   / 4:   8.0000  10.0000  12.0000     ....
-list a1[gxy=a2]
-             VARIABLE : X[GX=X1]+Y[GY=Y1]+Z[GZ=Z1]
-                        regrid: 2 delta on X, 2 delta on Y
-             SUBSET   : 4 by 3 by 3 points (X-Y-Z)
-              1        3        5        7     
-              1        2        3        4
- ---- K:1 Z:   1
- 1   / 1:   3.0000   5.0000   7.0000     ....
- 3   / 2:   5.0000   7.0000   9.0000     ....
- 5   / 3:     ....     ....     ....     ....
- ---- K:2 Z:   2
- 1   / 1:   4.0000   6.0000   8.0000     ....
- 3   / 2:   6.0000   8.0000  10.0000     ....
- 5   / 3:     ....     ....     ....     ....
- ---- K:3 Z:   3
- 1   / 1:   5.0000   7.0000   9.0000     ....
- 3   / 2:   7.0000   9.0000  11.0000     ....
- 5   / 3:     ....     ....     ....     ....
-list a1[gzxy=a2]
-             VARIABLE : X[GX=X1]+Y[GY=Y1]+Z[GZ=Z1]
-                        regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
-             SUBSET   : 4 by 3 by 2 points (X-Y-Z)
-              1        3        5        7     
-              1        2        3        4
- ---- K:1 Z:   1
- 1   / 1:   3.0000   5.0000   7.0000     ....
- 3   / 2:   5.0000   7.0000   9.0000     ....
- 5   / 3:     ....     ....     ....     ....
- ---- K:2 Z:   3
- 1   / 1:   5.0000   7.0000   9.0000     ....
- 3   / 2:   7.0000   9.0000  11.0000     ....
- 5   / 3:     ....     ....     ....     ....
-list a1[gxz=a2]
-             VARIABLE : X[GX=X1]+Y[GY=Y1]+Z[GZ=Z1]
-                        regrid: 2 delta on X, 2 delta on Z
-             SUBSET   : 4 by 4 by 2 points (X-Y-Z)
-              1        3        5        7     
-              1        2        3        4
- ---- K:1 Z:   1
- 1   / 1:   3.0000   5.0000   7.0000     ....
- 2   / 2:   4.0000   6.0000   8.0000     ....
- 3   / 3:   5.0000   7.0000   9.0000     ....
- 4   / 4:   6.0000   8.0000  10.0000     ....
- ---- K:2 Z:   3
- 1   / 1:   5.0000   7.0000   9.0000     ....
- 2   / 2:   6.0000   8.0000  10.0000     ....
- 3   / 3:   7.0000   9.0000  11.0000     ....
- 4   / 4:   8.0000  10.0000  12.0000     ....
- 
-! 6/01
-! test use of expressions in dynamic grid commands
-SHOW GRID temp[d=2,gx=sst[d=1],y=10s:2s:.2]             ! implicit Y axis
-    GRID (G018)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX002)   LATITUDE            41 r   10S                  2S
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
- normal    T
- normal    E
- normal    F
-SHOW GRID "temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5"
-    GRID (G018)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX005)   LATITUDE            41 r   10S                  2S
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
- normal    T
- normal    E
- normal    F
-SHOW GRID FFTA(sst[d=1,gx=temp[d=2],y=10s:2s:.2,l=1:5]) ! imposed T axis
-    GRID (G011)
- name       axis              # pts   start                end
- XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX002)   LATITUDE            41 r   10S                  2S
- normal    Z
- (AX011)   T (CYC/hour)         2 r   0.00034224           0.00068448
- normal    E
- normal    F
-SHOW GRID SORTI(temp[d=2,gx=sst[d=1],y=10s:2s:.2])      ! abstract X axis
-    GRID (G018)
- name       axis              # pts   start                end
- ABSTRACT  X             99999999 r   1                    1.E+08
- (AX002)   LATITUDE            41 r   10S                  2S
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
- normal    T
- normal    E
- normal    F
-SHOW GRID "temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5",FFTA(sst[d=1,gx=temp[d=2],y=10s:2s:.2,l=1:5]),SORTI(temp[d=2,gx=sst[d=1],y=10s:2s:.2])
-    GRID (G018)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX011)   LATITUDE            41 r   10S                  2S
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
- normal    T
- normal    E
- normal    F
-    GRID (G011)
- name       axis              # pts   start                end
- XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX002)   LATITUDE            41 r   10S                  2S
- normal    Z
- (AX005)   T (CYC/hour)         2 r   0.00034224           0.00068448
- normal    E
- normal    F
-    GRID (G018)
- name       axis              # pts   start                end
- ABSTRACT  X             99999999 r   1                    1.E+08
- (AX002)   LATITUDE            41 r   10S                  2S
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
- normal    T
- normal    E
- normal    F
- 
-load/x=160e/y=5s temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5
-SHOW GRID
- 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)
- (AX005)   LATITUDE            41 r   10S                  2S
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
- normal    T
- normal    E
- normal    F
-SET GRID  FFTA(sst[d=1,gx=temp[d=2],y=10s:2s:.2,l=1:5]) + 5
-SHOW GRID
- Default grid for DEFINE VARIABLE is (G011)
- Last successful data access was on grid (G011)
-    GRID (G011)
- name       axis              # pts   start                end
- XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX002)   LATITUDE            41 r   10S                  2S
- normal    Z
- (AX011)   T (CYC/hour)         2 r   0.00034224           0.00068448
- normal    E
- normal    F
-list/j=1:5 j
-             VARIABLE : J
-                        axis (AX002)
-             SUBSET   : 5 points (LATITUDE)
- 9.2S   / 5:  5.00000
- 9.4S   / 4:  4.00000
- 9.6S   / 3:  3.00000
- 9.8S   / 2:  2.00000
- 10S    / 1:  1.00000
-DEFINE GRID/LIKE="temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5" mygrid
-SHOW GRID MYGRID
-    GRID MYGRID
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX002)   LATITUDE            41 r   10S                  2S
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
- normal    T
- normal    E
- normal    F
-SHOW GRID/DYNAMIC
-Dynamic grids:
-    GRID (G011)                          use count:   1
- name       axis              # pts   start                end
- XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX002)   LATITUDE            41 r   10S                  2S
- normal    Z
- (AX011)   T (CYC/hour)         2 r   0.00034224           0.00068448
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX011)                         use count:   1
-    AXIS (AX002)                         use count:   2
-    AXIS (AX020)                         use count:   1
- 
- 
-! ******** V53 Additions below ***********
- 
-GO bn_reset
-cancel mode verify
-GO bn_calendar
-! bn_calendar.jnl
-! Version 5.3
-! Add definitions of calendar axes as a NetCDF attribute of the time axis
-! DEFINE AXIS/CALENDAR
-! regridding between different calendar axes
-! write and read NetCDF files with the new attribute.
- 
-define axis/t="1-jan-1988":"1-jan-1990":1/units=days/calendar=360DAY tdays
-define grid/t=tdays tgrid
-let my_data = sin(l[g=tgrid])
-list my_data[t="27-feb-1988":"1-mar-1988"]
-             VARIABLE : SIN(L[G=TGRID])
-             SUBSET   : 5 points (TIME)
-             CALENDAR : 360DAY
- 27-FEB-1988 00 / 57:  0.436165
- 28-FEB-1988 00 / 58:  0.992873
- 29-FEB-1988 00 / 59:  0.636738
- 30-FEB-1988 00 / 60: -0.304811
- 01-MAR-1988 00 / 61: -0.966118
- 
-define axis/t="1-jan-1988":"1-jan-1990":1/units=days/calendar=noleap tdays
-define grid/t=tdays tgrid
-let my_data = sin(l[g=tgrid])
-list my_data[t="27-feb-1988":"1-mar-1988"]
-             VARIABLE : SIN(L[G=TGRID])
-             SUBSET   : 3 points (TIME)
-             CALENDAR : NOLEAP
- 27-FEB-1988 00 / 58:  0.992873
- 28-FEB-1988 00 / 59:  0.636738
- 01-MAR-1988 00 / 60: -0.304811
- 
- 
- 
-define axis/t="1-jan-1988":"1-jan-1990":1/units=days/calendar=julian tdays
-define grid/t=tdays tgrid
-let my_data = sin(l[g=tgrid])
-list my_data[t="27-feb-1988":"1-mar-1988"]
-             VARIABLE : SIN(L[G=TGRID])
-             SUBSET   : 4 points (TIME)
-             CALENDAR : JULIAN
- 27-FEB-1988 00 / 58:  0.992873
- 28-FEB-1988 00 / 59:  0.636738
- 29-FEB-1988 00 / 60: -0.304811
- 01-MAR-1988 00 / 61: -0.966118
- 
-define axis/t="1-jan-1988":"1-jan-1990":1/units=days/calendar=gregorian tdays
-define grid/t=tdays tgrid
-let my_data = sin(l[g=tgrid])
-list my_data[t="27-feb-1988":"1-mar-1988"]
-             VARIABLE : SIN(L[G=TGRID])
-             SUBSET   : 4 points (TIME)
- 27-FEB-1988 00 / 58:  0.992873
- 28-FEB-1988 00 / 59:  0.636738
- 29-FEB-1988 00 / 60: -0.304811
- 01-MAR-1988 00 / 61: -0.966118
- 
- 
- 
-! Regrid between different calendar axes using @lin(default) @asn and @nrst
-use gt4d011
- 
-set region/x=132w/y=2n/k=1
-define axis/t="20-aug-1982":"1-jan-1983":7/units=days/calendar=noleap tweeks
-define grid/t=tweeks tgrid
-let ndata = temp[gt=tgrid]
-list/l=15:18 ndata
-             VARIABLE : TEMP[GT=TGRID]
-             FILENAME : gt4d011.cdf
-             SUBSET   : 4 points (TIME)
-             CALENDAR : NOLEAP
-             LONGITUDE: 132.5W
-             LATITUDE : 1.833N
-             DEPTH (m): 5
-                        132.5W  
-                         98
- 26-NOV-1982 00 / 15:  32.8979
- 03-DEC-1982 00 / 16:  32.9221
- 10-DEC-1982 00 / 17:  32.9583
- 17-DEC-1982 00 / 18:  32.9707
- 
-define axis/t="20-aug-1982":"1-jan-1983":7/units=days/calendar=360day tweeks
-let ndata = temp[gt=tgrid at asn]
-list/l=15:18 ndata
-             VARIABLE : TEMP[GT=TGRID at ASN]
-             FILENAME : gt4d011.cdf
-             SUBSET   : 4 points (TIME)
-             CALENDAR : 360DAY
-             LONGITUDE: 132.5W
-             LATITUDE : 1.833N
-             DEPTH (m): 5
-                        132.5W  
-                         98
- 28-NOV-1982 00 / 15:  32.9508
- 05-DEC-1982 00 / 16:  32.9011
- 12-DEC-1982 00 / 17:  32.8862
- 19-DEC-1982 00 / 18:  32.9099
- 
- 
-define axis/t="20-aug-1982":"1-jan-1983":7/units=days/calendar=julian tweeks
-let ndata = temp[gt=tgrid at nrst]
-list/t="25-nov-1982":"18-dec-1982" ndata
-             VARIABLE : TEMP[GT=TGRID at NRST]
-             FILENAME : gt4d011.cdf
-             SUBSET   : 4 points (TIME)
-             CALENDAR : JULIAN
-             LONGITUDE: 132.5W
-             LATITUDE : 1.833N
-             DEPTH (m): 5
-                        132.5W  
-                         98
- 26-NOV-1982 00 / 15:  32.9099
- 03-DEC-1982 00 / 16:  32.9287
- 10-DEC-1982 00 / 17:  32.9658
- 17-DEC-1982 00 / 18:  32.9710
- 
- 
- 
- 
-! Regrid to a new calendar, write to NetCDF file and read back in.
-can data/all
-can region
-can var/all
- 
-use gt4d011
- 
-set region/k=1
-define axis/t="20-aug-1982":"1-jan-1983":7/units=days/calendar=noleap tweeks
-define grid/t=tweeks tgrid
-let ndata = temp[gt=tgrid]
- 
-save/clobber/file=calsst.cdf/x=140w:130w/y=2s:2n ndata
- 
-can data/all
-can var/all
-can region
- 
-use calsst
-sh data
-     currently SET data sets:
-    1> ./calsst.cdf  (default)
- name     title                             I         J         K         L         M         N
- NDATA    TEMP[GT=TGRID]                   1:10      1:13      1:1       1:21      ...       ...
- 
-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
- normal    E
- normal    F
-sh axis tweeks
- name       axis              # pts   start                end
- TWEEKS    TIME                21 r   20-AUG-1982 00:00    07-JAN-1983 00:00
-T0 = 15-JAN-1901
-CALENDAR = NOLEAP
-   Axis span (to cell edges) = 147
- 
-stat/x=135w/y=0 ndata
- 
-             TEMP[GT=TGRID]
-             LONGITUDE: 135.5W
-             LATITUDE: 0.167S
-             DEPTH (m): 5
-             TIME: AUG-1982 to JAN-1983 NOLEAP
-             E:  N/A
-             F:  N/A
-             DATA SET: ./calsst.cdf
- 
- Total # of data points: 21 (1*1*1*21*1*1)
- # flagged as bad  data: 0
- Minimum value: 26.228
- Maximum value: 32.608
- Mean    value: 30.454 (unweighted average)
- Standard deviation: 2.4414
- 
-sp rm -f calsst.cdf
- 
- 
-can data/all
-can var/all
-can region
- 
-! regrid between weekly, daily, monthly axes.
-use gt4d011
-set region/x=132w/y=2n/k=1
- 
-define axis/t="18-aug-1982":"1-jan-1983":1/units=months/calendar=360day tmonths
-define grid/t=tmonths tgrid
-let ndata = temp[gt=tgrid at nrst]
-list/t="25-sep-1982":"18-dec-1982" ndata
-             VARIABLE : TEMP[GT=TGRID at NRST]
-             FILENAME : gt4d011.cdf
-             SUBSET   : 4 points (TIME)
-             CALENDAR : 360DAY
-             LONGITUDE: 132.5W
-             LATITUDE : 1.833N
-             DEPTH (m): 5
-                    132.5W  
-                     98
- 18-SEP-1982 / 2:  27.2694
- 18-OCT-1982 / 3:  31.3241
- 18-NOV-1982 / 4:  32.9011
- 18-DEC-1982 / 5:  32.9710
- 
- 
-define axis/t="20-aug-1982":"1-jan-1983":1/units=days/calendar=noleap tdays
-define grid/t=tdays tgrid
-let ndata = temp[gt=tgrid]
-list/t="5-dec-1982":"8-dec-1982" ndata
-             VARIABLE : TEMP[GT=TGRID]
-             FILENAME : gt4d011.cdf
-             SUBSET   : 4 points (TIME)
-             CALENDAR : NOLEAP
-             LONGITUDE: 132.5W
-             LATITUDE : 1.833N
-             DEPTH (m): 5
-                         132.5W  
-                          98
- 05-DEC-1982 00 / 108:     ....
- 06-DEC-1982 00 / 109:  32.9340
- 07-DEC-1982 00 / 110:  32.9401
- 08-DEC-1982 00 / 111:  32.9462
- 
- 
- 
-! Regrid to a modulo calendar axis.
- 
-can data/all
-can var/all
-can region
- 
-use coads_climatology
-set region/x=180/y=0
- 
-define axis/t="1-jan-0000":"1-dec-0000":1/units=months/calendar=julian/modulo jmonths
-define grid/t=jmonths jgrid
-let jsst = sst[gt=jgrid]
-let nsst = sst[gt=jgrid at nrst]
- 
-list/l=1:4 sst
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 4 points (TIME)
-             LONGITUDE: 179E
-             LATITUDE : 1S
-                    179E    
-                     80
- 16-JAN      / 1:  28.2022
- 15-FEB      / 2:  28.3646
- 17-MAR      / 3:  28.3538
- 16-AUG      / 4:     ....
-list/l=1:4 jsst, nsst
-             DATA SET: ./coads_climatology.cdf
-             TIME: JAN to APR JULIAN
-             LONGITUDE: 179E
-             LATITUDE: 1S
- Column  1: JSST is SST[GT=JGRID]
- Column  2: NSST is SST[GT=JGRID at NRST]
-                    JSST    NSST
-01-JAN      / 1:     ....  28.2022
-31-JAN      / 2:  28.2832  28.2022
-01-MAR      / 3:  28.3592  28.3646
-01-APR      / 4:     ....  28.3538
- 
-! test negative time step formatting -- added 7/01 *sh*
-! this is not specifically a calendar test, but it is a change in V5.3x
-define axis/units=days/t/t0=1-jan-1980 tax_neg = {-3,-2,-1}
-show axis/l tax_neg
- name       axis              # pts   start                end
- TAX_NEG   TIME                 3 r   29-DEC-1979 00:00    31-DEC-1979 00:00
-T0 = 1-JAN-1980
-   Axis span (to cell edges) = 3
- 
-       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
-       1>  29-DEC-1979 00:00:00  1          28-DEC-1979 12:00:00    -3
-       2>  30-DEC-1979 00:00:00  1          29-DEC-1979 12:00:00    -2
-       3>  31-DEC-1979 00:00:00  1          30-DEC-1979 12:00:00    -1
- 
-! also see bn_all_leap.jnl, 6/2004
-! Added ALL_LEAP, or 366_DAY calendar (which is in the CF conventions).
- 
-GO bn_reset
-cancel mode verify
-GO bn_dash_dot
-! new PLOT/DASH and PLOT/SYMBOL=DOT  qualifiers
-! *acm* 5/01
-! *acm* 8/02 Remove calls to SYMBOL=DOT until postscript issues are resolved.
- 
-plot/dash/i=1:1000 sin(62.8*i)
-plot/over/dash=(0.4,0.1,0.4,0.1)/color=red/thick/i=1:1000 sin(62.8*(i+10) )
-plot/over/dash=(0.1,0.1,0.04,0.05)/color=blue/thick=1/i=1:1000 sin(62.8*(i+20) )
- 
-!plot/symbol=dot/i=1:1000 sin(62.8*i)
-!plot/symbol=dot/color=red/over/i=1:1000 sin(62.8*(i+20))
- 
-! test warnings
-!plot/symbol=dot/thick/over/i=1:1000 sin(62.8*(i+10) )
-!plot/symbol=dot/size=0.5/over/i=1:1000 sin(62.8*(i+10) )
- 
-! intentional errors
-set mode ignore
-plot/dash=(1., 2.)/color=red/thick/i=1:1000 sin(62.8*(i+10) )
-plot/dash=(-1., 2., 3., 4.)/i=1:1000 sin(62.8*(i+20) )
- 
-GO bn_reset
-cancel mode verify
-GO bn_flowlines
-! bn_flowlines.jnl
-! VECTOR/FLOW
-! 6/2001
-! ACM 4/2005 set mode meta to save one of the plots for the metafile checks.
-!            and cancel mode logo, so that .plt files are comparable.
-! ACM 4/2006 new qualifier /LENGTH sets the length of the arrow heads
- 
-set window/asp=1/siz=0.5
-use gtbc011
-set reg/k=1/l=1/y=0:20
-vector/aspect u,v
-vector/flow/over  u,v
- 
-! /LEN= for setting size of arrow heads
-vector/aspect u,v
-vector/flow/over/len=10  u,v
- 
-GO bn_reset
-cancel mode verify
-set mode meta flowlines.plt
-can mode logo
- 
-can region
-vector/i=1:50/j=1:50/length=50/aspect/nolabel sin(i/20)*10+j-20,-1*cos(j/10)*10+i-20
-flow/i=1:50/j=1:50/over/color=blue/thick/den=1 sin(i/20)*10+j-20,-1*cos(j/10)*10+i-20
-flow/i=1:50/j=1:50/over/color=green/den=4/len=20 sin(i/20)*10+j-20,-1*cos(j/10)*10+i-20
- 
-can mode meta
-! curvilinear flowline plots
-go bn_reset
-cancel mode verify
- 
-use coads_climatology
-go mp_sinusoidal
-set grid sst
- 
- 
-let fsst = missing(sst,5)
-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
- 
-set mode logo
- 
-! ******** V533 Additions below ***********
- 
-GO bn_reset
-cancel mode verify
-GO bn_logaxes
-!  Test the qualifiers /HLOG and /VLOG for setting
-!  log axes.  On a depth axis, inverse log plot.
- 
-! use /VLOG
-def axis/z zlog=exp(k[k=1:10])
-let fcn = k[gz=zlog]
-set view lower
-plot/vlog/vlimits=1:100000 fcn
-! The same plot, calling axtype using old syntax
-set view upper
-plot/vlimits=0:5/set fcn
-ppl axtype,1,3
-ppl plot
- 
-! use /HLOG, and then /VLOG/HLOG both
-def axis/x dlog = exp(-1*(10-i[i=1:10]))
-let fcn = (i[gx=dlog])^2
-set view upper
-plot/vlog fcn
-set view lower
-plot/vlog/hlog fcn
-can view
- 
-! transpose axes for /HLOG on depth axis
-def axis/z/depth dlog=exp(k[k=1:10])
-let fcnd = k[gz=dlog]
-plot/trans/hlog fcnd
- 
-! add test for /VLOG on depth axis
-! (prev to v6.3+ the right-hand axis had incorrect tic marks)
-def axis/z/depth dlog=exp(k[k=1:10])
-let fcnd = k[gz=dlog]
-plot/vlog fcnd
- 
-! intentional error
-! This wont work - no log of negative values on axis
- 
-set mode ignore
-def axis/x dlog = -1*(10-i[i=1:10])
-let fcn = (i[gx=dlog])^2
-plot/hlog fcn
- 
-! *kob* same tests for internal external functions but moved out of
-!       the bn_external_function jnl file.
-GO bn_reset
-cancel mode verify
-GO bn_internal_external_functions
-! test internal external functions.  These moved from bn_external_functions
-!  6/01 because on systems w/out external functions support, the internal
-!  functions were not being tested - most notably win32   *kob*
- 
-!  8/02/01 *acm* add bench_eof; now internally-linked.
-! 10/22/01 *acm* add bench_compress_by (compressi_by, compressj_by, ...)
-! 06/02 *kob* add bench_internal_string_functions (strlen, strcat, strindex, etc)
-! 05/05 *acm* move bench_compress here; internally linked.
-! 05/07 *acm* move tax_* functions and fill_xy here; internally linked.
-!  3/12 *acm* new script bn_scat2grid tests scat2grid functions in all directions
-!  4/12 *kms* new scripts bn_scat2grid_gl, bn_scat2gridlaplace_tarasoff,
-!             bn_scat2grid_nobs, bn_scat2grid_t, bn_transpose, bn_unique_str2int
- 
-GO bn_reset
-cancel mode verify
-go bench_fft
-! Benchmark Ferret script for FFT.  Uses analytic function of time.
- 
-! 5/99  ACM
-!   FFTA function computes the FFT amplitude spectrum.
-!   FFTP function computes the FFT phase
-!
-!  The script bench_fft_visual.jnl plots the results
- 
-SET MODE IGNORE_ERRORS
-SAY The message *** NOTE: unknown axis units: FREQ  is informational.  fcn still works.
-The message *** NOTE: unknown axis units: FREQ  is informational.  fcn still works.
- 
-! Note, previously the time axis was defined as follows. When the
-! function is defined in terms of the time coordinate data, tpts,
-! tpts is  single-precision and so its use has precision problems.
-! (Saw this when changing to double-precision Ferret)
- 
-DEFINE AXIS/t=1-Jan-1990:31-Dec-1990:24 dayt
- 
- 
- 
-DEFINE AXIS/t=1-Jan-1990:31-Dec-1990:24/t0=1-jan-1980 dayt
- 
- 
-DEFINE GRID/T=dayt  tgrid
-SH GRID tgrid
-    GRID TGRID
- name       axis              # pts   start                end
- normal    X
- normal    Y
- normal    Z
- DAYT      TIME               365 r   01-JAN-1990 00:00    31-DEC-1990 00:00
- normal    E
- normal    F
-SET GRID tgrid
- 
-LET fcn1 = sin(kt*tpts - phase) /2.
-LET fcn2 = cos(pt*tpts)
-LET phase = 6.
-LET kt = 0.5
-LET pt = 0.3
- 
-!  Use an analytic function.
- 
-LET sample_function = fcn1 - fcn2
-LET tpts = t
-LET days_fft = ffta(sample_function[l=1:365])
- 
-LIST/L=30:35 days_fft
-             VARIABLE : FFTA(SAMPLE_FUNCTION[L=1:365])
-             SUBSET   : 6 points (T (CYC/HOURS))
- 0.00343 / 30:  0.013664
- 0.00355 / 31:  0.021183
- 0.00366 / 32:  0.048189
- 0.00378 / 33:  0.498982
- 0.00389 / 34:  0.052353
- 0.00401 / 35:  0.032474
-LIST/L=50:55 days_fft
-             VARIABLE : FFTA(SAMPLE_FUNCTION[L=1:365])
-             SUBSET   : 6 points (T (CYC/HOURS))
- 0.00572 / 50:  0.072791
- 0.00584 / 51:  0.104108
- 0.00595 / 52:  0.185372
- 0.00607 / 53:  0.894540
- 0.00618 / 54:  0.311122
- 0.0063  / 55:  0.131705
- 
-!  Compute the phase spectrum
- 
-LET days_fftp = fftp(sample_function[l=1:365])
- 
-LIST/l=1:20 days_fftp
-             VARIABLE : FFTP(SAMPLE_FUNCTION[L=1:365])
-             SUBSET   : 20 points (T (CYC/HOURS))
- 0       /  1: -178.057
- 0       /  2: -176.112
- 0       /  3: -174.161
- 0       /  4: -172.203
- 0       /  5: -170.234
- 0       /  6: -168.251
- 0       /  7: -166.250
- 0       /  8: -164.228
- 0.00103 /  9: -162.179
- 0.00114 / 10: -160.100
- 0.00126 / 11: -157.983
- 0.00137 / 12: -155.821
- 0.00149 / 13: -153.606
- 0.0016  / 14: -151.326
- 0.00172 / 15: -148.970
- 0.00183 / 16: -146.520
- 0.00195 / 17: -143.957
- 0.00206 / 18: -141.255
- 0.00217 / 19: -138.381
- 0.00229 / 20: -135.294
- 
- 
-!PAUSE
- 
- 
-USE coads_vwnd.cdf
-SET REGION/I=90/J=65
- 
-SAY This should bail out with error msg about Time axis must be regular
-This should bail out with error msg about Time axis must be regular
- 
-LET vw_fft = ffta(vwnd[l=37:60])
-LIST vw_fft
- 
-DEFINE AXIS/T=16-Jan-1949:16-Dec-1950:730.5 at ave montht
-DEFINE GRID/T=montht  tgrid
-LET vw_tim = vwnd[gt=tgrid]
-LET vw_fft = ffta(vw_tim[l=2:23])
- 
-SAY This one is ok
-This one is ok
-LIST vw_fft
-             VARIABLE : FFTA(VW_TIM[L=2:23])
-             FILENAME : coads_vwnd.cdf
-             SUBSET   : 11 points (T (CYC/HOURS))
-             LONGITUDE: 161W
-             LATITUDE : 39N
-                  161W    
-                   90
- 0        /  1:  1.99605
- 0        /  2:  2.16839
- 0        /  3:  0.17387
- 0        /  4:  2.01530
- 0        /  5:  0.35361
- 0        /  6:  1.72488
- 0        /  7:  1.25348
- 0        /  8:  0.30416
- 0        /  9:  1.65059
- 0        / 10:  0.81359
- 0        / 11:  0.15377
- 
-CANCEL MODE IGNORE_ERRORS
- 
-GO bn_reset
-cancel mode verify
-go bench_gridding
-! bench_gridding.jnl
-! *acm* 8/99
- 
-! Call scat2gridlaplace_xy  and scat2gridgauss_xy
-! to put scattered data onto a regularly spaced grid.
- 
-! function definition from objective_analysis_demo.jnl
- 
-! 2/2005 changed number of arguments to the Gaussing gridding functions
- 
- 
-define axis/x=0:10:0.05 x10
-define axis/y=0:10:0.05 y10
-define grid/x=x10/y=y10 g10x10
-set grid g10x10
- 
-let WAVE = SIN(KX*XPTS + KY*YPTS - PHASE) / 3
-let PHASE = 0
-let KAPPA = 0.4
-let KX = 0.4
-let KY = 0.7
-let FCN1 = SIN(R)/(R+1)
-let R = ((XPTS-X0)^2+ 5*(YPTS-Y0)^2)^0.5
-let X0 = 3
-let Y0 = 8
- 
-LET sample_function = fcn1 + wave
- 
-let xpts = x; let ypts = y
- 
-list/x=4:5/y=1 sample_function
-             VARIABLE : FCN1 + WAVE
-             SUBSET   : 21 points (X)
-             Y        : 1
-                 1       
-                  21
- 4     /  81:  0.249981
- 4.05  /  82:  0.245294
- 4.1   /  83:  0.240500
- 4.15  /  84:  0.235600
- 4.2   /  85:  0.230597
- 4.25  /  86:  0.225493
- 4.3   /  87:  0.220289
- 4.35  /  88:  0.214988
- 4.4   /  89:  0.209592
- 4.45  /  90:  0.204102
- 4.5   /  91:  0.198521
- 4.55  /  92:  0.192851
- 4.6   /  93:  0.187094
- 4.65  /  94:  0.181253
- 4.7   /  95:  0.175329
- 4.75  /  96:  0.169325
- 4.8   /  97:  0.163243
- 4.85  /  98:  0.157086
- 4.9   /  99:  0.150856
- 4.95  / 100:  0.144555
- 5     / 101:  0.138186
- 
-can mem /all
- 
-let xpts = 10*randu(i); let ypts = 10*randu(i+2)
- 
-set region/i=1:200
-define axis/x=1:10:.5 xax5
-define axis/y=1:10:.5 yax5
- 
-let sgrid = scat2gridlaplace_xy (xpts, ypts, sample_function, x[gx=xax5], y[gy=yax5], 5., 5)
-! the following in now needed since the result grid axes are no longer extended
-! load sgrid
-! otherwise the following would use a 3-element X axis and 1-element Y axis
-! list/x=4:5/y=1 sgrid
-list /order=yx sgrid
-             VARIABLE : SCAT2GRIDLAPLACE_XY (XPTS, YPTS, SAMPLE_FUNCTION, X[GX=XAX5], Y[GY=YAX5], 5., 5)
-             SUBSET   : 19 by 19 points (Y-X)
-      ... listing every   2th point
-                 1         2         3         4         5         6         7         8         9        10      
-                  1         3         5         7         9        11        13        15        17        19
- 1     /  1:  0.308984  0.361972  0.109085 -0.004967 -0.136744 -0.408450 -0.225496  0.151670  0.225024  0.073150
- 1.5   /  2:  0.315638  0.371230  0.093750 -0.037386 -0.201756 -0.452435 -0.150009  0.278155  0.330914  0.069854
- 2     /  3:  0.378812  0.315634  0.037083 -0.088708 -0.253832 -0.492242 -0.073700  0.374786  0.450968  0.081332
- 2.5   /  4:  0.420045  0.252191 -0.063598 -0.144131 -0.252740 -0.466614  0.019391  0.439631  0.491399  0.089314
- 3     /  5:  0.406392  0.198397 -0.139974 -0.197140 -0.279040 -0.425529  0.118978  0.432969  0.545303  0.085462
- 3.5   /  6:  0.351014  0.169762 -0.201579 -0.257493 -0.283843 -0.357982  0.185850  0.585861  0.530755  0.058808
- 4     /  7:  0.277107  0.096747 -0.246534 -0.289021 -0.258951 -0.329342  0.312474  0.641602  0.518714  0.021205
- 4.5   /  8:  0.188951  0.044707 -0.312641 -0.319182 -0.213513 -0.222475  0.302121  0.626625  0.412068 -0.008475
- 5     /  9:  0.139939 -0.037119 -0.323878 -0.333812 -0.199768 -0.134206  0.265570  0.577839  0.312094 -0.056718
- 5.5   / 10:  0.078577 -0.096394 -0.338922 -0.312885 -0.172743 -0.085023  0.206702  0.482419  0.235803 -0.079778
- 6     / 11:  0.007372 -0.135345 -0.377702 -0.274110 -0.121663 -0.019270  0.173802  0.354012  0.148779 -0.122582
- 6.5   / 12: -0.071091 -0.209142 -0.370362 -0.249289 -0.041035  0.069505  0.148512  0.236838  0.045584 -0.173237
- 7     / 13: -0.137482 -0.254334 -0.378632 -0.228148  0.063018  0.183000  0.135520  0.132174 -0.050976 -0.215292
- 7.5   / 14: -0.202760 -0.266868 -0.346402 -0.210460  0.168372  0.279647  0.178541  0.064025 -0.115153 -0.228150
- 8     / 15: -0.275191 -0.259180 -0.300179 -0.155421  0.233304  0.351951  0.219702  0.033928 -0.135697 -0.218938
- 8.5   / 16: -0.326812 -0.273253 -0.245151 -0.113795  0.264889  0.402452  0.253275  0.029382 -0.138544 -0.200463
- 9     / 17: -0.351551 -0.266762 -0.164899 -0.032110  0.276385  0.437033  0.281707  0.036426 -0.134209 -0.191118
- 9.5   / 18: -0.364215 -0.240170 -0.093384  0.038122  0.276072  0.442607  0.294658  0.049712 -0.140883 -0.217410
- 10    / 19: -0.369196 -0.210353 -0.040323  0.103110  0.280278  0.405237  0.298599  0.066760 -0.138644 -0.252572
- 
-let sgrid = scat2gridlaplace_xy (xpts, ypts, sample_function, x[gx=xax5], y[gy=yax5], 1.,1)
-! the following in now needed since the result grid axes are no longer extended
-! load sgrid
-! otherwise the following would use a 3-element X axis and 1-element Y axis
-! list/x=4:5/y=1 sgrid
-list /order=yx sgrid
-             VARIABLE : SCAT2GRIDLAPLACE_XY (XPTS, YPTS, SAMPLE_FUNCTION, X[GX=XAX5], Y[GY=YAX5], 1.,1)
-             SUBSET   : 19 by 19 points (Y-X)
-      ... listing every   2th point
-                 1         2         3         4         5         6         7         8         9        10      
-                  1         3         5         7         9        11        13        15        17        19
- 1     /  1:  0.290994  0.424162  0.097006  0.003143 -0.136744 -0.412297 -0.207808      ....  0.241076      ....
- 1.5   /  2:  0.314929  0.373640  0.124083 -0.001456 -0.201756 -0.441151 -0.189145  0.331034  0.333491  0.005624
- 2     /  3:  0.337643  0.312076  0.046130 -0.011788 -0.267158 -0.486359 -0.073700      ....  0.461555      ....
- 2.5   /  4:  0.359734  0.242399 -0.066085      .... -0.243857 -0.457333 -0.031104  0.417939  0.473995  0.200894
- 3     /  5:      ....  0.198698 -0.131262 -0.203700 -0.277160 -0.388506  0.065758  0.434211  0.539378      ....
- 3.5   /  6:  0.310287  0.169976 -0.216298 -0.249436 -0.282498 -0.336468  0.156727  0.537358  0.505391  0.142444
- 4     /  7:  0.274766  0.091884 -0.274252 -0.239529 -0.262206 -0.333969  0.312474  0.580377  0.520608  0.093618
- 4.5   /  8:  0.184044  0.041657 -0.304953      .... -0.210582 -0.196012  0.326227  0.576412  0.366262  0.059061
- 5     /  9:  0.146796 -0.044536 -0.353323 -0.375483 -0.190888 -0.106617  0.284743  0.521940  0.278387 -0.035055
- 5.5   / 10:  0.041582 -0.109698 -0.335399 -0.325452      .... -0.088590  0.221990  0.438637  0.235803  0.041225
- 6     / 11: -0.012273 -0.174380 -0.371063 -0.263403      ....      ....  0.172629  0.346297  0.219052      ....
- 6.5   / 12: -0.064809 -0.127226 -0.366128 -0.245270      ....  0.104409  0.165680  0.242858  0.095140      ....
- 7     / 13: -0.138619      .... -0.379843 -0.230018      ....  0.181947  0.135892  0.164309 -0.026041 -0.204659
- 7.5   / 14: -0.203907 -0.289087 -0.346009 -0.209873  0.169451  0.272161  0.184553  0.103343 -0.114248      ....
- 8     / 15: -0.285911 -0.258721 -0.300520 -0.170515  0.240968  0.352162  0.229361  0.066151 -0.135985      ....
- 8.5   / 16: -0.329428 -0.279209 -0.236667 -0.125716  0.292407  0.388989  0.256564      .... -0.139683 -0.183944
- 9     / 17: -0.341597 -0.268585 -0.177502 -0.064298  0.277369  0.431662  0.288204  0.023055 -0.139178 -0.195303
- 9.5   / 18: -0.343919 -0.225702 -0.093580  0.013191  0.253357  0.442399  0.294693  0.034103 -0.137639 -0.211783
- 10    / 19:      .... -0.204222 -0.021547      ....      ....  0.421118  0.287954      .... -0.144731 -0.203650
- 
-let sgrid = scat2gridgauss_xy (xpts, ypts, sample_function, x[gx=xax5], y[gy=yax5], 0.5, 0.5, 2, 2)
-! list/x=4:5/y=1 sgrid
-list /order=yx sgrid
-             VARIABLE : SCAT2GRIDGAUSS_XY (XPTS, YPTS, SAMPLE_FUNCTION, X[GX=XAX5], Y[GY=YAX5], 0.5, 0.5, 2, 2)
-             SUBSET   : 19 by 19 points (Y-X)
-      ... listing every   2th point
-                 1         2         3         4         5         6         7         8         9        10      
-                  1         3         5         7         9        11        13        15        17        19
- 1     /  1:  0.274901  0.351990  0.125870  0.000547 -0.130676 -0.409444 -0.196473  0.113026  0.291807  0.128390
- 1.5   /  2:  0.299222  0.340543  0.124519 -0.061100 -0.263759 -0.435083 -0.176723  0.348424  0.372371  0.128390
- 2     /  3:  0.281567  0.320514  0.026296 -0.110384 -0.295665 -0.434870 -0.190697  0.460511  0.445156  0.191902
- 2.5   /  4:  0.290517  0.274621 -0.063970 -0.166628 -0.264776 -0.417589 -0.116164  0.537969  0.442169  0.264943
- 3     /  5:  0.291464  0.248219 -0.125567 -0.223844 -0.256285 -0.371561  0.247717  0.497526  0.452304  0.276328
- 3.5   /  6:  0.267037  0.177128 -0.170576 -0.230988 -0.274809 -0.281194  0.254637  0.510104  0.422794  0.248322
- 4     /  7:  0.225394  0.114379 -0.176660 -0.227903 -0.272403 -0.244676  0.280180  0.544886  0.397193  0.212214
- 4.5   /  8:  0.189285  0.081180 -0.332907 -0.343445 -0.230804 -0.244260  0.339829  0.530983  0.335082  0.061286
- 5     /  9:  0.127042  0.039043 -0.356226 -0.369075 -0.177935 -0.153186  0.253590  0.499044  0.303545  0.025609
- 5.5   / 10:  0.048635 -0.126901 -0.331398 -0.289789 -0.162591 -0.082396  0.192227  0.401098  0.303746  0.055576
- 6     / 11: -0.037713 -0.136552 -0.336681 -0.268753 -0.197051  0.016254  0.209390  0.295370  0.263940 -0.135684
- 6.5   / 12: -0.064917 -0.134912 -0.359398 -0.220212 -0.011644  0.110802  0.164667  0.259319  0.078530 -0.137706
- 7     / 13: -0.103972 -0.140560 -0.362975 -0.166853  0.066535  0.193231  0.149487  0.141794 -0.113016 -0.143405
- 7.5   / 14: -0.199710 -0.279592 -0.339043 -0.191829  0.185240  0.262158  0.152165  0.039367 -0.115781 -0.151274
- 8     / 15: -0.235285 -0.278212 -0.283035 -0.157240  0.250258  0.333134  0.204490  0.017943 -0.115931 -0.171603
- 8.5   / 16: -0.306008 -0.278546 -0.240470 -0.100659  0.251651  0.363846  0.251194  0.080410 -0.130532 -0.187823
- 9     / 17: -0.335648 -0.266336 -0.213641  0.013456  0.288406  0.405273  0.272644  0.141238 -0.142601 -0.193561
- 9.5   / 18: -0.349458 -0.212960 -0.108340  0.097657  0.205467  0.422547  0.294706  0.116317 -0.143410 -0.195569
- 10    / 19: -0.353035 -0.181573 -0.086119  0.078837  0.108731  0.420380  0.321587  0.036216 -0.151253 -0.191472
- 
-let sgrid = scat2gridgauss_xy (xpts, ypts, sample_function, x[gx=xax5], y[gy=yax5], 1., 1., 6, 6)
-! list/x=4:5/y=1 sgrid
-list /order=yx sgrid
-             VARIABLE : SCAT2GRIDGAUSS_XY (XPTS, YPTS, SAMPLE_FUNCTION, X[GX=XAX5], Y[GY=YAX5], 1., 1., 6, 6)
-             SUBSET   : 19 by 19 points (Y-X)
-      ... listing every   2th point
-                 1         2         3         4         5         6         7         8         9        10      
-                  1         3         5         7         9        11        13        15        17        19
- 1     /  1:  0.281552  0.312213  0.193558 -0.030592 -0.206961 -0.317374 -0.200235  0.035776  0.251615  0.217897
- 1.5   /  2:  0.275271  0.296173  0.155526 -0.085149 -0.266966 -0.350539 -0.202341  0.168678  0.341517  0.274690
- 2     /  3:  0.267170  0.260868  0.085385 -0.139671 -0.296632 -0.356898 -0.159219  0.302176  0.393862  0.319020
- 2.5   /  4:  0.256878  0.203678  0.000735 -0.176300 -0.300338 -0.332200 -0.037496  0.393557  0.416391  0.336288
- 3     /  5:  0.242290  0.152878 -0.057424 -0.197874 -0.288975 -0.265744  0.103144  0.430207  0.412825  0.327333
- 3.5   /  6:  0.222556  0.121831 -0.090666 -0.216330 -0.271362 -0.184480  0.187704  0.436022  0.391648  0.301597
- 4     /  7:  0.199438  0.094153 -0.126981 -0.240001 -0.252964 -0.137926  0.223192  0.431619  0.360695  0.262091
- 4.5   /  8:  0.165055  0.052904 -0.183379 -0.267119 -0.231965 -0.117235  0.236822  0.416791  0.325354  0.213933
- 5     /  9:  0.103166 -0.013463 -0.234016 -0.283000 -0.207964 -0.093414  0.234809  0.379625  0.299928  0.181999
- 5.5   / 10:  0.019557 -0.082190 -0.253614 -0.280357 -0.179994 -0.046106  0.219394  0.327974  0.276824  0.165491
- 6     / 11: -0.043123 -0.124439 -0.262702 -0.257404 -0.115678  0.036003  0.200459  0.273757  0.219858  0.088693
- 6.5   / 12: -0.080238 -0.159570 -0.282392 -0.216326  0.011196  0.126375  0.181603  0.207992  0.109108 -0.036546
- 7     / 13: -0.125137 -0.215907 -0.293904 -0.180571  0.098961  0.191463  0.171154  0.130122 -0.005575 -0.104958
- 7.5   / 14: -0.186850 -0.262803 -0.283642 -0.149158  0.150674  0.242358  0.181345  0.073483 -0.066151 -0.129099
- 8     / 15: -0.238052 -0.273211 -0.262614 -0.116643  0.191858  0.284230  0.210919  0.059208 -0.090155 -0.143986
- 8.5   / 16: -0.274654 -0.269613 -0.239107 -0.087178  0.223535  0.315867  0.242668  0.071672 -0.107088 -0.159422
- 9     / 17: -0.300031 -0.259464 -0.211792 -0.059935  0.246533  0.340287  0.266976  0.081553 -0.124034 -0.168991
- 9.5   / 18: -0.314125 -0.241656 -0.177924 -0.031561  0.260916  0.358325  0.284307  0.073478 -0.135647 -0.172063
- 10    / 19: -0.318713 -0.220992 -0.146630 -0.009841  0.266488  0.369766  0.296933  0.053734 -0.142473 -0.172360
- 
-can mem /all
-can var /all
-can axis yax5
-can axis xax5
-set grid abstract
-can grid g10x10
-can axis y10
-can axis x10
- 
- 
-GO bn_reset
-cancel mode verify
-go bn_scat2grid_test
-! bn_scat2grid_test.jnl
-! From JonCallahan's insitu_gaussian_*.jnl
- 
-! Description: Test functions for XY XZ XT YZ YT ZT gridding of insitu data
- 
-set data scat2grid.nc
- 
-define axis/x=50:70/npoints=20/units=degrees_east x_20
-define axis/y=10:20/npoints=20/units=degrees_north y_20
-define axis/z=0:100/npoints=20/depth/units=meters z_20
-define axis/t=0:8736/unit=hours/t0="01-JAN-1995 00:00:00"/npoints=20 t_20
- 
-!*********
-! SCAT2GRIDGAUSS functions
-! XY
- 
-let xy_gauss_gridded = scat2gridgauss_xy(xax,yax,O2_umol_kg,x[gx=x_20],y[gy=y_20],1.5,1.0,5.0,3.0)
-fill/lev=30v xy_gauss_gridded
-plot/vs/over/nolab xax,yax
-ppl shaset reset
- 
-! XZ
- 
-let xz_gauss_gridded = scat2gridgauss_xz(xax,zax,O2_umol_kg,x[gx=x_20],z[gz=z_20],1.5,10,2,20)
-fill/lev=30v xz_gauss_gridded
-plot/vs/over/nolab xax,zax
-ppl shaset reset
- 
-! XT
- 
-let xt_gauss_gridded = scat2gridgauss_xt(xax,tax,O2_umol_kg,x[gx=x_20],t[gt=t_20],1.5,720.0,5.0,2160.0)
-fill/lev=30v xt_gauss_gridded
-plot/vs/over/nolab xax,tax
-ppl shaset reset
- 
-! YZ
- 
-let yz_gauss_gridded = scat2gridgauss_yz(yax,zax,ysequence(O2_umol_kg),y[gy=y_20],z[gz=z_20],1.0,10,3,50)
-fill/lev=30v yz_gauss_gridded
-plot/vs/over/nolab yax,zax
-ppl shaset reset
- 
-! YT
- 
-let yt_gauss_gridded = scat2gridgauss_yt(yax,tax,ysequence(O2_umol_kg),y[gy=y_20],t[gt=t_20],1.0,720,3,2160)
-fill/lev=30v yt_gauss_gridded
-plot/vs/over/nolab tax,yax
-ppl shaset reset
- 
-! ZT
- 
-let zt_gauss_gridded = scat2gridgauss_zt(zax,tax,zsequence(O2_umol_kg),z[gz=z_20],t[gt=t_20],10,720,50,2160)
-fill/lev=30v zt_gauss_gridded
-plot/vs/over/nolab tax, zax
- 
-can mem/all
- 
-! SCAT2GRIDLAPLACE functions
- 
-! XY
- 
-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
- normal    Z
- normal    T
- normal    E
- normal    F
-! when the result grid axes were extended, the axis coordinates in the following were messed up
-list xy_laplace_gridded
-             VARIABLE : SCAT2GRIDLAPLACE_XY(XAX,YAX,O2_UMOL_KG,X[GX=X_20],Y[GY=Y_20],2,2)
-             FILENAME : scat2grid.nc
-             SUBSET   : 20 by 20 points (LONGITUDE-LATITUDE)
-      ... listing every   2th point
-                 50E      52.1E    54.2E    56.3E    58.4E    60.5E    62.6E    64.7E    66.8E    68.9E  
-                  1        3        5        7        9       11       13       15       17       19
- 20N    / 20:     ....     ....     ....     ....  143.990  241.090     ....     ....     ....     ....
- 19.47N / 19:     ....     ....     ....     ....  117.831  207.449  172.925     ....     ....     ....
- 18.95N / 18:     ....     ....     ....  137.758  107.307   98.003     ....     ....     ....     ....
- 18.42N / 17:     ....     ....     ....  161.079  156.071    7.072   16.239     ....     ....     ....
- 17.9N  / 16:     ....     ....     ....  179.862  189.128   81.665     ....     ....     ....     ....
- 17.37N / 15:     ....     ....     ....  165.097  200.741  145.418     ....     ....     ....     ....
- 16.84N / 14:     ....     ....     ....  128.322  183.027  168.029  182.582     ....     ....     ....
- 16.32N / 13:     ....     ....   76.347   92.413  158.520  190.506  197.367     ....     ....     ....
- 15.79N / 12:     ....     ....     ....   80.307     ....  189.841  195.829     ....     ....     ....
- 15.26N / 11:     ....     ....     ....   72.161     ....  187.475  191.467     ....     ....     ....
- 14.74N / 10:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 14.21N /  9:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 13.68N /  8:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 13.16N /  7:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 12.63N /  6:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 12.11N /  5:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 11.58N /  4:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 11.05N /  3:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 10.53N /  2:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 10N    /  1:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
-fill/lev=30v xy_laplace_gridded
-plot/vs/over/nolab xax,yax
-ppl shaset reset
- 
-! XZ
- 
-let xz_laplace_gridded = scat2gridlaplace_xz(xax,zax,O2_umol_kg,x[gx=x_20],z[gz=z_20],2,2)
-fill/lev=30v xz_laplace_gridded
-plot/vs/over/nolab xax,zax
-ppl shaset reset
- 
-! XT
- 
-let xt_laplace_gridded = scat2gridlaplace_xt(xax,tax,O2_umol_kg,x[gx=x_20],t[gt=t_20],2,2)
-fill/lev=30v xt_laplace_gridded
-plot/vs/over/nolab xax,tax
-ppl shaset reset
- 
-! YZ
- 
-let yz_laplace_gridded = scat2gridlaplace_yz(yax,zax,ysequence(O2_umol_kg),y[gy=y_20],z[gz=z_20],2,2)
-fill/lev=30v yz_laplace_gridded
-plot/vs/over/nolab yax,zax
-ppl shaset reset
- 
-! YT
- 
-let yt_laplace_gridded = scat2gridlaplace_yt(yax,tax,ysequence(O2_umol_kg),y[gy=y_20],t[gt=t_20],2,2)
-fill/lev=30v yt_laplace_gridded
-plot/vs/over/nolab tax,yax
-ppl shaset reset
- 
-! ZT
- 
-let zt_laplace_gridded = scat2gridlaplace_zt(zax,tax,zsequence(O2_umol_kg),z[gz=z_20],t[gt=t_20],2,2)
-fill/lev=30v zt_laplace_gridded
-plot/vs/over/nolab tax, zax
- 
-can mem /all
-can var /all
-can data /all
-can axis t_20
-can axis z_20
-can axis y_20
-can axis x_20
- 
- 
-GO bn_reset
-cancel mode verify
-go bn_scat2grid_gl
-! bn_scat2grid_gl.jnl
-! test the scat2gridgauss and scat2gridlaplace functions,
-! listing the results which can be checked against input
- 
-define axis/x=173:187/unit=degrees_east/npoints=15 x_15
-define axis/y=13:27/unit=degrees_north/npoints=15 y_15
-define axis/z=15:85/units=meters/depth/npoints=15 z_15
-define axis/t=0:8760/unit=hours/t0="01-JAN-1995 00:00:00"/edges/npoints=16 t_16
- 
-let sinx = sin(X[gx=x_15] * 3.14159265 / 180.0)
-let cosyp70 = cos((Y[gy=y_15] + 70.0) * 3.14159265 / 180.0)
-let logzp10 = log(Z[gz=z_15] + 10.0)
-let logtp50 = log(T[gt=t_16] + 50.0)
- 
-let smxy = xsequence(sinx + cosyp70)
-let smxy_xs_pos = xsequence(1.0 * X[gx=x_15] + 0.0 * Y[gy=y_15])
-let smxy_xs = if ( smxy_xs_pos gt 180 ) then (smxy_xs_pos - 360) else smxy_xs_pos
-let smxy_ys = xsequence(0.0 * X[gx=x_15] + 1.0 * Y[gy=y_15])
- 
-let smxz = xsequence(sinx + logzp10)
-let smxz_xs_pos = xsequence(1.0 * X[gx=x_15] + 0.0 * Z[gz=z_15])
-let smxz_xs = if ( smxz_xs_pos gt 180 ) then (smxz_xs_pos - 360) else smxz_xs_pos
-let smxz_zs = xsequence(0.0 * X[gx=x_15] + 1.0 * Z[gz=z_15])
- 
-let smxt = xsequence(sinx + logtp50)
-let smxt_xs_pos = xsequence(1.0 * X[gx=x_15] + 0.0 * T[gt=t_16])
-let smxt_xs = if ( smxt_xs_pos gt 180 ) then (smxt_xs_pos - 360) else smxt_xs_pos
-let smxt_ts = xsequence(0.0 * X[gx=x_15] + 1.0 * T[gt=t_16])
- 
-let smyz = ysequence(cosyp70 + logzp10)
-let smyz_ys = ysequence(1.0 * Y[gy=y_15] + 0.0 * Z[gz=z_15])
-let smyz_zs = ysequence(0.0 * Y[gy=y_15] + 1.0 * Z[gz=z_15])
- 
-let smyt = ysequence(cosyp70 + logtp50)
-let smyt_ys = ysequence(1.0 * Y[gy=y_15] + 0.0 * T[gt=t_16])
-let smyt_ts = ysequence(0.0 * Y[gy=y_15] + 1.0 * T[gt=t_16])
- 
-let smzt = zsequence(logzp10 + logtp50)
-let smzt_zs = zsequence(1.0 * Z[gz=z_15] + 0.0 * T[gt=t_16])
-let smzt_ts = zsequence(0.0 * Z[gz=z_15] + 1.0 * T[gt=t_16])
- 
-define axis/x=170:190/unit=degrees_east/npoints=11 x_11
-define axis/y=10:30/units=degrees_north/npoints=11 y_11
-define axis/z=0:100/depth/units=meters/npoints=11 z_11
-define axis/t=0:8760/unit=hours/t0="01-JAN-1995 00:00:00"/edges/npoints=12 t_12
- 
-list X[gx=x_11]
-             VARIABLE : X
-                        axis X_11
-             SUBSET   : 11 points (LONGITUDE)
- 170E   /  1:  170.000
- 172E   /  2:  172.000
- 174E   /  3:  174.000
- 176E   /  4:  176.000
- 178E   /  5:  178.000
- 180E   /  6:  180.000
- 178W   /  7:  182.000
- 176W   /  8:  184.000
- 174W   /  9:  186.000
- 172W   / 10:  188.000
- 170W   / 11:  190.000
- 
-list /i=1:33 smxy_xs, smxy_ys, smxy
-             X: 0.5 to 33.5
- Column  1: SMXY_XS is IF ( SMXY_XS_POS GT 180 ) THEN (SMXY_XS_POS - 360) ELSE SMXY_XS_POS
- Column  2: SMXY_YS is XSEQUENCE(0.0 * X[GX=X_15] + 1.0 * Y[GY=Y_15])
- Column  3: SMXY is XSEQUENCE(SINX + COSYP70)
-           SMXY_XS   SMXY_YS    SMXY
-1    /  1:  173.000  13.0000  0.243739
-2    /  2:  174.000  13.0000  0.226398
-3    /  3:  175.000  13.0000  0.209025
-4    /  4:  176.000  13.0000  0.191626
-5    /  5:  177.000  13.0000  0.174205
-6    /  6:  178.000  13.0000  0.156769
-7    /  7:  179.000  13.0000  0.139322
-8    /  8:  180.000  13.0000  0.121869
-9    /  9: -179.000  13.0000  0.104417
-10   / 10: -178.000  13.0000  0.086970
-11   / 11: -177.000  13.0000  0.069533
-12   / 12: -176.000  13.0000  0.052113
-13   / 13: -175.000  13.0000  0.034714
-14   / 14: -174.000  13.0000  0.017341
-15   / 15: -173.000  13.0000  0.000000
-16   / 16:  173.000  14.0000  0.226398
-17   / 17:  174.000  14.0000  0.209057
-18   / 18:  175.000  14.0000  0.191684
-19   / 19:  176.000  14.0000  0.174285
-20   / 20:  177.000  14.0000  0.156864
-21   / 21:  178.000  14.0000  0.139428
-22   / 22:  179.000  14.0000  0.121981
-23   / 23:  180.000  14.0000  0.104528
-24   / 24: -179.000  14.0000  0.087076
-25   / 25: -178.000  14.0000  0.069629
-26   / 26: -177.000  14.0000  0.052193
-27   / 27: -176.000  14.0000  0.034772
-28   / 28: -175.000  14.0000  0.017373
-29   / 29: -174.000  14.0000  0.000000
-30   / 30: -173.000  14.0000 -0.017341
-31   / 31:  173.000  15.0000  0.209025
-32   / 32:  174.000  15.0000  0.191684
-33   / 33:  175.000  15.0000  0.174311
-let xy_gauss_gridded = scat2gridgauss_xy(smxy_xs,smxy_ys,smxy,X[gx=x_11],Y[gy=y_11],1.0,1.0,1.0,0.0)
-list xy_gauss_gridded
-             VARIABLE : SCAT2GRIDGAUSS_XY(SMXY_XS,SMXY_YS,SMXY,X[GX=X_11],Y[GY=Y_11],1.0,1.0,1.0,0.0)
-             SUBSET   : 11 by 11 points (LONGITUDE-LATITUDE)
-                170E      172E      174E      176E      178E      180E      178W      176W      174W      172W      170W    
-                  1         2         3         4         5         6         7         8         9        10        11
- 30N   / 11:      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....
- 28N   / 10:      ....  0.000000 -0.017348 -0.052117 -0.086972 -0.121869 -0.156767 -0.191621 -0.226391 -0.243739      ....
- 26N   /  9:      ....  0.017348  0.000000 -0.034770 -0.069624 -0.104522 -0.139419 -0.174274 -0.209043 -0.226391      ....
- 24N   /  8:      ....  0.052117  0.034770  0.000000 -0.034855 -0.069752 -0.104649 -0.139504 -0.174274 -0.191621      ....
- 22N   /  7:      ....  0.086972  0.069624  0.034855  0.000000 -0.034897 -0.069794 -0.104649 -0.139419 -0.156767      ....
- 20N   /  6:      ....  0.121869  0.104522  0.069752  0.034897  0.000000 -0.034897 -0.069752 -0.104522 -0.121869      ....
- 18N   /  5:      ....  0.156767  0.139419  0.104649  0.069794  0.034897  0.000000 -0.034855 -0.069624 -0.086972      ....
- 16N   /  4:      ....  0.191621  0.174274  0.139504  0.104649  0.069752  0.034855  0.000000 -0.034770 -0.052117      ....
- 14N   /  3:      ....  0.226391  0.209043  0.174274  0.139419  0.104522  0.069624  0.034770  0.000000 -0.017348      ....
- 12N   /  2:      ....  0.243739  0.226391  0.191621  0.156767  0.121869  0.086972  0.052117  0.017348  0.000000      ....
- 10N   /  1:      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....
-let xy_laplace_gridded = scat2gridlaplace_xy(smxy_xs,smxy_ys,smxy,X[gx=x_11],Y[gy=y_11],2.0,1)
-list xy_laplace_gridded
-             VARIABLE : SCAT2GRIDLAPLACE_XY(SMXY_XS,SMXY_YS,SMXY,X[GX=X_11],Y[GY=Y_11],2.0,1)
-             SUBSET   : 11 by 11 points (LONGITUDE-LATITUDE)
-                170E      172E      174E      176E      178E      180E      178W      176W      174W      172W      170W    
-                  1         2         3         4         5         6         7         8         9        10        11
- 30N   / 11:      ....      .... -0.057531 -0.086987 -0.119152 -0.153259 -0.187881 -0.221435 -0.252146 -0.279109      ....
- 28N   / 10:      ....  0.001469 -0.031719 -0.066314 -0.100631 -0.135459 -0.170322 -0.204898 -0.238648 -0.268796 -0.279109
- 26N   /  9:      ....  0.030054  0.001289 -0.034598 -0.069227 -0.104122 -0.139020 -0.173835 -0.208160 -0.238648 -0.252146
- 24N   /  8:      ....  0.062225  0.036296 -0.000330 -0.034822 -0.069721 -0.104621 -0.139444 -0.173835 -0.204898 -0.221435
- 22N   /  7:      ....  0.096660  0.071306  0.034440  0.000001 -0.034898 -0.069798 -0.104621 -0.139020 -0.170322 -0.187881
- 20N   /  6:      ....  0.131820  0.106170  0.069324  0.034901  0.000001 -0.034898 -0.069721 -0.104122 -0.135459 -0.153259
- 18N   /  5:      ....  0.166766  0.141022  0.104198  0.069800  0.034901  0.000001 -0.034822 -0.069227 -0.100631 -0.119152
- 16N   /  4:      ....  0.200738  0.175293  0.138438  0.104198  0.069324  0.034440 -0.000330 -0.034598 -0.066314 -0.086987
- 14N   /  3:      ....  0.233148  0.215255  0.175293  0.141022  0.106170  0.071306  0.036296  0.001289 -0.031719 -0.057531
- 12N   /  2:      ....      ....  0.233148  0.200738  0.166766  0.131820  0.096660  0.062225  0.030054  0.001469      ....
- 10N   /  1:      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....
- 
-list /i=1:33 smxz_xs, smxz_zs, smxz
-             X: 0.5 to 33.5
- Column  1: SMXZ_XS is IF ( SMXZ_XS_POS GT 180 ) THEN (SMXZ_XS_POS - 360) ELSE SMXZ_XS_POS
- Column  2: SMXZ_ZS is XSEQUENCE(0.0 * X[GX=X_15] + 1.0 * Z[GZ=Z_15])
- Column  3: SMXZ is XSEQUENCE(SINX + LOGZP10)
-           SMXZ_XS   SMXZ_ZS   SMXZ
-1    /  1:  173.000  15.0000  1.51981
-2    /  2:  174.000  15.0000  1.50247
-3    /  3:  175.000  15.0000  1.48510
-4    /  4:  176.000  15.0000  1.46770
-5    /  5:  177.000  15.0000  1.45028
-6    /  6:  178.000  15.0000  1.43284
-7    /  7:  179.000  15.0000  1.41539
-8    /  8:  180.000  15.0000  1.39794
-9    /  9: -179.000  15.0000  1.38049
-10   / 10: -178.000  15.0000  1.36304
-11   / 11: -177.000  15.0000  1.34560
-12   / 12: -176.000  15.0000  1.32818
-13   / 13: -175.000  15.0000  1.31078
-14   / 14: -174.000  15.0000  1.29341
-15   / 15: -173.000  15.0000  1.27607
-16   / 16:  173.000  20.0000  1.59899
-17   / 17:  174.000  20.0000  1.58165
-18   / 18:  175.000  20.0000  1.56428
-19   / 19:  176.000  20.0000  1.54688
-20   / 20:  177.000  20.0000  1.52946
-21   / 21:  178.000  20.0000  1.51202
-22   / 22:  179.000  20.0000  1.49457
-23   / 23:  180.000  20.0000  1.47712
-24   / 24: -179.000  20.0000  1.45967
-25   / 25: -178.000  20.0000  1.44222
-26   / 26: -177.000  20.0000  1.42479
-27   / 27: -176.000  20.0000  1.40736
-28   / 28: -175.000  20.0000  1.38997
-29   / 29: -174.000  20.0000  1.37259
-30   / 30: -173.000  20.0000  1.35525
-31   / 31:  173.000  25.0000  1.66594
-32   / 32:  174.000  25.0000  1.64860
-33   / 33:  175.000  25.0000  1.63122
-let xz_gauss_gridded = scat2gridgauss_xz(smxz_xs,smxz_zs,smxz,X[gx=x_11],Z[gz=z_11],1.0,5.0,1.0,0.0)
-list xz_gauss_gridded
-             VARIABLE : SCAT2GRIDGAUSS_XZ(SMXZ_XS,SMXZ_ZS,SMXZ,X[GX=X_11],Z[GZ=Z_11],1.0,5.0,1.0,0.0)
-             SUBSET   : 11 by 11 points (LONGITUDE-DEPTH (m))
-                170E     172E     174E     176E     178E      180E    178W     176W     174W     172W     170W    
-                  1        2        3        4        5        6        7        8        9       10       11
- 0      /  1:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 10     /  2:     ....  1.51981  1.50246  1.46769  1.43284  1.39794  1.36304  1.32819  1.29342  1.27607     ....
- 20     /  3:     ....  1.59640  1.57905  1.54428  1.50943  1.47453  1.43963  1.40478  1.37001  1.35266     ....
- 30     /  4:     ....  1.72248  1.70513  1.67036  1.63551  1.60061  1.56571  1.53086  1.49609  1.47874     ....
- 40     /  5:     ....  1.81991  1.80257  1.76780  1.73294  1.69804  1.66315  1.62829  1.59352  1.57618     ....
- 50     /  6:     ....  1.89938  1.88203  1.84726  1.81241  1.77751  1.74261  1.70776  1.67299  1.65564     ....
- 60     /  7:     ....  1.96650  1.94915  1.91438  1.87952  1.84463  1.80973  1.77488  1.74011  1.72276     ....
- 70     /  8:     ....  2.02460  2.00725  1.97248  1.93763  1.90273  1.86783  1.83298  1.79821  1.78086     ....
- 80     /  9:     ....  2.07583  2.05848  2.02371  1.98886  1.95396  1.91906  1.88421  1.84944  1.83209     ....
- 90     / 10:     ....  2.09959  2.08225  2.04748  2.01262  1.97772  1.94283  1.90797  1.87320  1.85585     ....
- 100    / 11:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
-let xz_laplace_gridded = scat2gridlaplace_xz(smxz_xs,smxz_zs,smxz,X[gx=x_11],Z[gz=z_11],2.0,1)
-list xz_laplace_gridded
-             VARIABLE : SCAT2GRIDLAPLACE_XZ(SMXZ_XS,SMXZ_ZS,SMXZ,X[GX=X_11],Z[GZ=Z_11],2.0,1)
-             SUBSET   : 11 by 11 points (LONGITUDE-DEPTH (m))
-                170E     172E     174E     176E     178E      180E    178W     176W     174W     172W     170W    
-                  1        2        3        4        5        6        7        8        9       10       11
- 0      /  1:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 10     /  2:     ....     ....  1.45967  1.43260  1.40123  1.36726  1.33267  1.29921  1.26926  1.24478     ....
- 20     /  3:     ....  1.62568  1.56605  1.53557  1.49928  1.46429  1.42936  1.39419  1.35912  1.33376  1.35199
- 30     /  4:     ....  1.73005  1.71421  1.67498  1.64062  1.60574  1.57082  1.53602  1.50175  1.46915  1.44866
- 40     /  5:     ....  1.82542  1.80687  1.76803  1.73385  1.69895  1.66405  1.62922  1.59477  1.56211  1.53941
- 50     /  6:     ....  1.90691  1.88519  1.84729  1.81306  1.77816  1.74326  1.70844  1.67399  1.64174  1.61939
- 60     /  7:     ....  1.97533  1.95176  1.91432  1.88001  1.84511  1.81021  1.77539  1.74096  1.70894  1.68765
- 70     /  8:     ....  2.03275  2.00991  1.97225  1.93796  1.90306  1.86816  1.83334  1.79890  1.76672  1.74494
- 80     /  9:     ....  2.08017  2.06127  2.02279  1.98867  1.95377  1.91888  1.88407  1.84963  1.81693  1.79226
- 90     / 10:     ....  2.11888  2.10181  2.06484  2.03087  1.99606  1.96125  1.92672  1.89288  1.86059  1.83186
- 100    / 11:     ....     ....  2.11777  2.08710  2.05439  2.02031  1.98599  1.95272  1.92201  1.89466     ....
- 
-list /i=1:33 smxt_xs, smxt_ts, smxt
-             X: 0.5 to 33.5
- Column  1: SMXT_XS is IF ( SMXT_XS_POS GT 180 ) THEN (SMXT_XS_POS - 360) ELSE SMXT_XS_POS
- Column  2: SMXT_TS is XSEQUENCE(0.0 * X[GX=X_15] + 1.0 * T[GT=T_16])
- Column  3: SMXT is XSEQUENCE(SINX + LOGTP50)
-           SMXT_XS   SMXT_TS   SMXT
-1    /  1:  173.000   273.75  2.63208
-2    /  2:  174.000   273.75  2.61474
-3    /  3:  175.000   273.75  2.59737
-4    /  4:  176.000   273.75  2.57997
-5    /  5:  177.000   273.75  2.56255
-6    /  6:  178.000   273.75  2.54511
-7    /  7:  179.000   273.75  2.52766
-8    /  8:  180.000   273.75  2.51021
-9    /  9: -179.000   273.75  2.49276
-10   / 10: -178.000   273.75  2.47531
-11   / 11: -177.000   273.75  2.45787
-12   / 12: -176.000   273.75  2.44045
-13   / 13: -175.000   273.75  2.42305
-14   / 14: -174.000   273.75  2.40568
-15   / 15: -173.000   273.75  2.38834
-16   / 16:  173.000   821.25  3.06201
-17   / 17:  174.000   821.25  3.04467
-18   / 18:  175.000   821.25  3.02730
-19   / 19:  176.000   821.25  3.00990
-20   / 20:  177.000   821.25  2.99248
-21   / 21:  178.000   821.25  2.97504
-22   / 22:  179.000   821.25  2.95760
-23   / 23:  180.000   821.25  2.94014
-24   / 24: -179.000   821.25  2.92269
-25   / 25: -178.000   821.25  2.90524
-26   / 26: -177.000   821.25  2.88781
-27   / 27: -176.000   821.25  2.87039
-28   / 28: -175.000   821.25  2.85299
-29   / 29: -174.000   821.25  2.83561
-30   / 30: -173.000   821.25  2.81827
-31   / 31:  173.000  1368.75  3.27378
-32   / 32:  174.000  1368.75  3.25643
-33   / 33:  175.000  1368.75  3.23906
-let xt_gauss_gridded = scat2gridgauss_xt(smxt_xs,smxt_ts,smxt,X[gx=x_11],T[gt=t_12],1.0,436.8,1.0,0.0)
-list xt_gauss_gridded
-             VARIABLE : SCAT2GRIDGAUSS_XT(SMXT_XS,SMXT_TS,SMXT,X[GX=X_11],T[GT=T_12],1.0,436.8,1.0,0.0)
-             SUBSET   : 11 by 12 points (LONGITUDE-TIME)
-                     170E     172E     174E     176E     178E      180E    178W     176W     174W     172W     170W    
-                       1        2        3        4        5        6        7        8        9       10       11
- 16-JAN-1995 /  1:     ....  2.63208  2.61473  2.57996  2.54511  2.51021  2.47531  2.44046  2.40569  2.38834     ....
- 15-FEB-1995 /  2:     ....  3.16789  3.15055  3.11578  3.08092  3.04602  3.01113  2.97627  2.94150  2.92415     ....
- 18-MAR-1995 /  3:     ....  3.41551  3.39816  3.36339  3.32854  3.29364  3.25874  3.22389  3.18912  3.17177     ....
- 17-APR-1995 /  4:     ....  3.52219  3.50484  3.47007  3.43522  3.40032  3.36542  3.33057  3.29580  3.27845     ....
- 17-MAY-1995 /  5:     ....  3.64350  3.62615  3.59138  3.55653  3.52163  3.48673  3.45188  3.41711  3.39976     ....
- 17-JUN-1995 /  6:     ....  3.74057  3.72322  3.68845  3.65360  3.61870  3.58380  3.54895  3.51418  3.49683     ....
- 17-JUL-1995 /  7:     ....  3.79431  3.77697  3.74220  3.70734  3.67244  3.63755  3.60269  3.56792  3.55057     ....
- 17-AUG-1995 /  8:     ....  3.86367  3.84632  3.81155  3.77670  3.74180  3.70690  3.67205  3.63728  3.61993     ....
- 16-SEP-1995 /  9:     ....  3.92439  3.90704  3.87227  3.83741  3.80252  3.76762  3.73277  3.69800  3.68065     ....
- 16-OCT-1995 / 10:     ....  3.96032  3.94298  3.90821  3.87335  3.83846  3.80356  3.76870  3.73393  3.71659     ....
- 16-NOV-1995 / 11:     ....  4.00893  3.99158  3.95681  3.92196  3.88706  3.85217  3.81731  3.78254  3.76519     ....
- 16-DEC-1995 / 12:     ....  4.05314  4.03579  4.00102  3.96616  3.93127  3.89637  3.86152  3.82675  3.80940     ....
-let xt_laplace_gridded = scat2gridlaplace_xt(smxt_xs,smxt_ts,smxt,X[gx=x_11],T[gt=t_12],2.0,1)
-list xt_laplace_gridded
-             VARIABLE : SCAT2GRIDLAPLACE_XT(SMXT_XS,SMXT_TS,SMXT,X[GX=X_11],T[GT=T_12],2.0,1)
-             SUBSET   : 11 by 12 points (LONGITUDE-TIME)
-                     170E     172E     174E     176E     178E      180E    178W     176W     174W     172W     170W    
-                       1        2        3        4        5        6        7        8        9       10       11
- 16-JAN-1995 /  1:     ....  2.80021  2.65506  2.64695  2.61209  2.57719  2.54229  2.50743  2.47319  2.46266  2.52519
- 15-FEB-1995 /  2:     ....  3.11975  3.18472  3.13605  3.10119  3.06629  3.03139  2.99653  2.96230  2.92477  2.84506
- 18-MAR-1995 /  3:     ....  3.36860  3.39079  3.34236  3.30750  3.27260  3.23770  3.20284  3.16860  3.13125  3.09408
- 17-APR-1995 /  4:     ....  3.53416  3.52162  3.48422  3.44936  3.41446  3.37956  3.34470  3.31046  3.28049  3.25971
- 17-MAY-1995 /  5:     ....  3.65364  3.63083  3.59310  3.55824  3.52333  3.48843  3.45357  3.41934  3.38914  3.37928
- 17-JUN-1995 /  6:     ....  3.74421  3.71833  3.67938  3.64452  3.60962  3.57471  3.53986  3.50562  3.47462  3.46992
- 17-JUL-1995 /  7:     ....  3.81408  3.78571  3.74978  3.71492  3.68002  3.64512  3.61026  3.57602  3.54703  3.53974
- 17-AUG-1995 /  8:     ....  3.87631  3.84944  3.81217  3.77731  3.74241  3.70751  3.67265  3.63841  3.60850  3.60176
- 16-SEP-1995 /  9:     ....  3.93114  3.90481  3.86643  3.83157  3.79667  3.76177  3.72691  3.69268  3.66199  3.65626
- 16-OCT-1995 / 10:     ....  3.97707  3.94990  3.91341  3.87855  3.84364  3.80874  3.77388  3.73965  3.71017  3.70185
- 16-NOV-1995 / 11:     ....  4.01929  3.99483  3.95714  3.92228  3.88737  3.85247  3.81761  3.78338  3.75307  3.74382
- 16-DEC-1995 / 12:     ....  4.05753  4.03432  3.99551  3.96065  3.92574  3.89084  3.85598  3.82175  3.79068  3.78192
- 
-list /j=1:33 smyz_ys, smyz_zs, smyz
-             Y: 0.5 to 33.5
- Column  1: SMYZ_YS is YSEQUENCE(1.0 * Y[GY=Y_15] + 0.0 * Z[GZ=Z_15])
- Column  2: SMYZ_ZS is YSEQUENCE(0.0 * Y[GY=Y_15] + 1.0 * Z[GZ=Z_15])
- Column  3: SMYZ is YSEQUENCE(COSYP70 + LOGZP10)
-           SMYZ_YS   SMYZ_ZS   SMYZ
-1    /  1:  13.0000  15.0000  1.51981
-2    /  2:  14.0000  15.0000  1.50247
-3    /  3:  15.0000  15.0000  1.48510
-4    /  4:  16.0000  15.0000  1.46770
-5    /  5:  17.0000  15.0000  1.45028
-6    /  6:  18.0000  15.0000  1.43284
-7    /  7:  19.0000  15.0000  1.41539
-8    /  8:  20.0000  15.0000  1.39794
-9    /  9:  21.0000  15.0000  1.38049
-10   / 10:  22.0000  15.0000  1.36304
-11   / 11:  23.0000  15.0000  1.34560
-12   / 12:  24.0000  15.0000  1.32818
-13   / 13:  25.0000  15.0000  1.31078
-14   / 14:  26.0000  15.0000  1.29341
-15   / 15:  27.0000  15.0000  1.27607
-16   / 16:  13.0000  20.0000  1.59899
-17   / 17:  14.0000  20.0000  1.58165
-18   / 18:  15.0000  20.0000  1.56428
-19   / 19:  16.0000  20.0000  1.54688
-20   / 20:  17.0000  20.0000  1.52946
-21   / 21:  18.0000  20.0000  1.51202
-22   / 22:  19.0000  20.0000  1.49457
-23   / 23:  20.0000  20.0000  1.47712
-24   / 24:  21.0000  20.0000  1.45967
-25   / 25:  22.0000  20.0000  1.44222
-26   / 26:  23.0000  20.0000  1.42479
-27   / 27:  24.0000  20.0000  1.40736
-28   / 28:  25.0000  20.0000  1.38997
-29   / 29:  26.0000  20.0000  1.37259
-30   / 30:  27.0000  20.0000  1.35525
-31   / 31:  13.0000  25.0000  1.66594
-32   / 32:  14.0000  25.0000  1.64860
-33   / 33:  15.0000  25.0000  1.63122
-let yz_gauss_gridded = scat2gridgauss_yz(smyz_ys,smyz_zs,smyz,Y[gy=y_11],Z[gz=z_11],1.0,5.0,1.0,0.0)
-list yz_gauss_gridded
-             VARIABLE : SCAT2GRIDGAUSS_YZ(SMYZ_YS,SMYZ_ZS,SMYZ,Y[GY=Y_11],Z[GZ=Z_11],1.0,5.0,1.0,0.0)
-             SUBSET   : 11 by 11 points (LATITUDE-DEPTH (m))
-                 10N      12N      14N      16N      18N      20N      22N      24N      26N      28N      30N    
-                  1        2        3        4        5        6        7        8        9       10       11
- 0      /  1:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 10     /  2:     ....  1.51981  1.50246  1.46769  1.43284  1.39794  1.36304  1.32819  1.29342  1.27607     ....
- 20     /  3:     ....  1.59640  1.57905  1.54428  1.50943  1.47453  1.43963  1.40478  1.37001  1.35266     ....
- 30     /  4:     ....  1.72248  1.70513  1.67036  1.63551  1.60061  1.56571  1.53086  1.49609  1.47874     ....
- 40     /  5:     ....  1.81991  1.80257  1.76780  1.73294  1.69804  1.66315  1.62829  1.59352  1.57618     ....
- 50     /  6:     ....  1.89938  1.88203  1.84726  1.81241  1.77751  1.74261  1.70776  1.67299  1.65564     ....
- 60     /  7:     ....  1.96650  1.94915  1.91438  1.87952  1.84463  1.80973  1.77488  1.74011  1.72276     ....
- 70     /  8:     ....  2.02460  2.00725  1.97248  1.93763  1.90273  1.86783  1.83298  1.79821  1.78086     ....
- 80     /  9:     ....  2.07583  2.05848  2.02371  1.98886  1.95396  1.91906  1.88421  1.84944  1.83209     ....
- 90     / 10:     ....  2.09959  2.08225  2.04748  2.01262  1.97772  1.94283  1.90797  1.87320  1.85585     ....
- 100    / 11:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
-let yz_laplace_gridded = scat2gridlaplace_yz(smyz_ys,smyz_zs,smyz,Y[gy=y_11],Z[gz=z_11],2.0,1)
-list yz_laplace_gridded
-             VARIABLE : SCAT2GRIDLAPLACE_YZ(SMYZ_YS,SMYZ_ZS,SMYZ,Y[GY=Y_11],Z[GZ=Z_11],2.0,1)
-             SUBSET   : 11 by 11 points (LATITUDE-DEPTH (m))
-                 10N      12N      14N      16N      18N      20N      22N      24N      26N      28N      30N    
-                  1        2        3        4        5        6        7        8        9       10       11
- 0      /  1:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 10     /  2:     ....     ....  1.45967  1.43260  1.40123  1.36726  1.33267  1.29921  1.26926  1.24478     ....
- 20     /  3:     ....  1.62568  1.56605  1.53557  1.49928  1.46429  1.42936  1.39419  1.35912  1.33376  1.35199
- 30     /  4:     ....  1.73005  1.71421  1.67498  1.64062  1.60574  1.57082  1.53602  1.50175  1.46915  1.44866
- 40     /  5:     ....  1.82542  1.80687  1.76803  1.73385  1.69895  1.66405  1.62922  1.59477  1.56211  1.53941
- 50     /  6:     ....  1.90691  1.88519  1.84729  1.81306  1.77816  1.74326  1.70844  1.67399  1.64174  1.61939
- 60     /  7:     ....  1.97533  1.95176  1.91432  1.88001  1.84511  1.81021  1.77539  1.74096  1.70894  1.68765
- 70     /  8:     ....  2.03275  2.00991  1.97225  1.93796  1.90306  1.86816  1.83334  1.79890  1.76672  1.74494
- 80     /  9:     ....  2.08017  2.06127  2.02279  1.98867  1.95377  1.91888  1.88407  1.84963  1.81693  1.79226
- 90     / 10:     ....  2.11888  2.10181  2.06484  2.03087  1.99606  1.96125  1.92672  1.89288  1.86059  1.83186
- 100    / 11:     ....     ....  2.11777  2.08710  2.05439  2.02031  1.98599  1.95272  1.92201  1.89466     ....
- 
-list /j=1:33 smyt_ys, smyt_ts, smyt
-             Y: 0.5 to 33.5
- Column  1: SMYT_YS is YSEQUENCE(1.0 * Y[GY=Y_15] + 0.0 * T[GT=T_16])
- Column  2: SMYT_TS is YSEQUENCE(0.0 * Y[GY=Y_15] + 1.0 * T[GT=T_16])
- Column  3: SMYT is YSEQUENCE(COSYP70 + LOGTP50)
-           SMYT_YS   SMYT_TS   SMYT
-1    /  1:  13.0000   273.75  2.63208
-2    /  2:  14.0000   273.75  2.61474
-3    /  3:  15.0000   273.75  2.59737
-4    /  4:  16.0000   273.75  2.57997
-5    /  5:  17.0000   273.75  2.56255
-6    /  6:  18.0000   273.75  2.54511
-7    /  7:  19.0000   273.75  2.52766
-8    /  8:  20.0000   273.75  2.51021
-9    /  9:  21.0000   273.75  2.49276
-10   / 10:  22.0000   273.75  2.47531
-11   / 11:  23.0000   273.75  2.45787
-12   / 12:  24.0000   273.75  2.44045
-13   / 13:  25.0000   273.75  2.42305
-14   / 14:  26.0000   273.75  2.40568
-15   / 15:  27.0000   273.75  2.38834
-16   / 16:  13.0000   821.25  3.06201
-17   / 17:  14.0000   821.25  3.04467
-18   / 18:  15.0000   821.25  3.02730
-19   / 19:  16.0000   821.25  3.00990
-20   / 20:  17.0000   821.25  2.99248
-21   / 21:  18.0000   821.25  2.97504
-22   / 22:  19.0000   821.25  2.95760
-23   / 23:  20.0000   821.25  2.94014
-24   / 24:  21.0000   821.25  2.92269
-25   / 25:  22.0000   821.25  2.90524
-26   / 26:  23.0000   821.25  2.88781
-27   / 27:  24.0000   821.25  2.87039
-28   / 28:  25.0000   821.25  2.85299
-29   / 29:  26.0000   821.25  2.83561
-30   / 30:  27.0000   821.25  2.81827
-31   / 31:  13.0000  1368.75  3.27378
-32   / 32:  14.0000  1368.75  3.25643
-33   / 33:  15.0000  1368.75  3.23906
-let yt_gauss_gridded = scat2gridgauss_yt(smyt_ys,smyt_ts,smyt,Y[gy=y_11],T[gt=t_12],1.0,436.8,1.0,0.0)
-list yt_gauss_gridded
-             VARIABLE : SCAT2GRIDGAUSS_YT(SMYT_YS,SMYT_TS,SMYT,Y[GY=Y_11],T[GT=T_12],1.0,436.8,1.0,0.0)
-             SUBSET   : 11 by 12 points (LATITUDE-TIME)
-                      10N      12N      14N      16N      18N      20N      22N      24N      26N      28N      30N    
-                       1        2        3        4        5        6        7        8        9       10       11
- 16-JAN-1995 /  1:     ....  2.63208  2.61473  2.57996  2.54511  2.51021  2.47531  2.44046  2.40569  2.38834     ....
- 15-FEB-1995 /  2:     ....  3.16789  3.15055  3.11578  3.08092  3.04602  3.01113  2.97627  2.94150  2.92415     ....
- 18-MAR-1995 /  3:     ....  3.41551  3.39816  3.36339  3.32854  3.29364  3.25874  3.22389  3.18912  3.17177     ....
- 17-APR-1995 /  4:     ....  3.52219  3.50484  3.47007  3.43522  3.40032  3.36542  3.33057  3.29580  3.27845     ....
- 17-MAY-1995 /  5:     ....  3.64350  3.62615  3.59138  3.55653  3.52163  3.48673  3.45188  3.41711  3.39976     ....
- 17-JUN-1995 /  6:     ....  3.74057  3.72322  3.68845  3.65360  3.61870  3.58380  3.54895  3.51418  3.49683     ....
- 17-JUL-1995 /  7:     ....  3.79431  3.77697  3.74220  3.70734  3.67244  3.63755  3.60269  3.56792  3.55057     ....
- 17-AUG-1995 /  8:     ....  3.86367  3.84632  3.81155  3.77670  3.74180  3.70690  3.67205  3.63728  3.61993     ....
- 16-SEP-1995 /  9:     ....  3.92439  3.90704  3.87227  3.83741  3.80252  3.76762  3.73277  3.69800  3.68065     ....
- 16-OCT-1995 / 10:     ....  3.96032  3.94298  3.90821  3.87335  3.83846  3.80356  3.76870  3.73393  3.71659     ....
- 16-NOV-1995 / 11:     ....  4.00893  3.99158  3.95681  3.92196  3.88706  3.85217  3.81731  3.78254  3.76519     ....
- 16-DEC-1995 / 12:     ....  4.05314  4.03579  4.00102  3.96616  3.93127  3.89637  3.86152  3.82675  3.80940     ....
-let yt_laplace_gridded = scat2gridlaplace_yt(smyt_ys,smyt_ts,smyt,Y[gy=y_11],T[gt=t_12],2.0,1)
-list yt_laplace_gridded
-             VARIABLE : SCAT2GRIDLAPLACE_YT(SMYT_YS,SMYT_TS,SMYT,Y[GY=Y_11],T[GT=T_12],2.0,1)
-             SUBSET   : 11 by 12 points (LATITUDE-TIME)
-                      10N      12N      14N      16N      18N      20N      22N      24N      26N      28N      30N    
-                       1        2        3        4        5        6        7        8        9       10       11
- 16-JAN-1995 /  1:     ....  2.80021  2.65506  2.64695  2.61209  2.57719  2.54229  2.50743  2.47319  2.46266  2.52519
- 15-FEB-1995 /  2:     ....  3.11975  3.18472  3.13605  3.10119  3.06629  3.03139  2.99653  2.96230  2.92477  2.84506
- 18-MAR-1995 /  3:     ....  3.36860  3.39079  3.34236  3.30750  3.27260  3.23770  3.20284  3.16860  3.13125  3.09408
- 17-APR-1995 /  4:     ....  3.53416  3.52162  3.48422  3.44936  3.41446  3.37956  3.34470  3.31046  3.28049  3.25971
- 17-MAY-1995 /  5:     ....  3.65364  3.63083  3.59310  3.55824  3.52333  3.48843  3.45357  3.41934  3.38914  3.37928
- 17-JUN-1995 /  6:     ....  3.74421  3.71833  3.67938  3.64452  3.60962  3.57471  3.53986  3.50562  3.47462  3.46992
- 17-JUL-1995 /  7:     ....  3.81408  3.78571  3.74978  3.71492  3.68002  3.64512  3.61026  3.57602  3.54703  3.53974
- 17-AUG-1995 /  8:     ....  3.87631  3.84944  3.81217  3.77731  3.74241  3.70751  3.67265  3.63841  3.60850  3.60176
- 16-SEP-1995 /  9:     ....  3.93114  3.90481  3.86643  3.83157  3.79667  3.76177  3.72691  3.69268  3.66199  3.65626
- 16-OCT-1995 / 10:     ....  3.97707  3.94990  3.91341  3.87855  3.84364  3.80874  3.77388  3.73965  3.71017  3.70185
- 16-NOV-1995 / 11:     ....  4.01929  3.99483  3.95714  3.92228  3.88737  3.85247  3.81761  3.78338  3.75307  3.74382
- 16-DEC-1995 / 12:     ....  4.05753  4.03432  3.99551  3.96065  3.92574  3.89084  3.85598  3.82175  3.79068  3.78192
- 
-list /k=1:33 smzt_zs, smzt_ts, smzt
-             Z: 0.5 to 33.5
- Column  1: SMZT_ZS is ZSEQUENCE(1.0 * Z[GZ=Z_15] + 0.0 * T[GT=T_16])
- Column  2: SMZT_TS is ZSEQUENCE(0.0 * Z[GZ=Z_15] + 1.0 * T[GT=T_16])
- Column  3: SMZT is ZSEQUENCE(LOGZP10 + LOGTP50)
-           SMZT_ZS   SMZT_TS   SMZT
-1    /  1:  15.0000   273.75  3.90815
-2    /  2:  20.0000   273.75  3.98733
-3    /  3:  25.0000   273.75  4.05428
-4    /  4:  30.0000   273.75  4.11227
-5    /  5:  35.0000   273.75  4.16342
-6    /  6:  40.0000   273.75  4.20918
-7    /  7:  45.0000   273.75  4.25057
-8    /  8:  50.0000   273.75  4.28836
-9    /  9:  55.0000   273.75  4.32312
-10   / 10:  60.0000   273.75  4.35531
-11   / 11:  65.0000   273.75  4.38527
-12   / 12:  70.0000   273.75  4.41330
-13   / 13:  75.0000   273.75  4.43963
-14   / 14:  80.0000   273.75  4.46445
-15   / 15:  85.0000   273.75  4.48793
-16   / 16:  15.0000   821.25  4.33808
-17   / 17:  20.0000   821.25  4.41726
-18   / 18:  25.0000   821.25  4.48421
-19   / 19:  30.0000   821.25  4.54220
-20   / 20:  35.0000   821.25  4.59336
-21   / 21:  40.0000   821.25  4.63911
-22   / 22:  45.0000   821.25  4.68051
-23   / 23:  50.0000   821.25  4.71829
-24   / 24:  55.0000   821.25  4.75306
-25   / 25:  60.0000   821.25  4.78524
-26   / 26:  65.0000   821.25  4.81520
-27   / 27:  70.0000   821.25  4.84323
-28   / 28:  75.0000   821.25  4.86956
-29   / 29:  80.0000   821.25  4.89439
-30   / 30:  85.0000   821.25  4.91787
-31   / 31:  15.0000  1368.75  4.54985
-32   / 32:  20.0000  1368.75  4.62903
-33   / 33:  25.0000  1368.75  4.69597
-let zt_gauss_gridded = scat2gridgauss_zt(smzt_zs,smzt_ts,smzt,Z[gz=z_11],T[gt=t_12],5.0,436.8,1.0,0.0)
-list zt_gauss_gridded
-             VARIABLE : SCAT2GRIDGAUSS_ZT(SMZT_ZS,SMZT_TS,SMZT,Z[GZ=Z_11],T[GT=T_12],5.0,436.8,1.0,0.0)
-             SUBSET   : 11 by 12 points (DEPTH (m)-TIME)
-                      0        10       20       30       40       50       60       70       80       90      100     
-                       1        2        3        4        5        6        7        8        9       10       11
- 16-JAN-1995 /  1:     ....  3.90815  3.98474  4.11082  4.20825  4.28772  4.35484  4.41294  4.46417  4.48793     ....
- 15-FEB-1995 /  2:     ....  4.44396  4.52055  4.64663  4.74407  4.82353  4.89065  4.94875  4.99998  5.02375     ....
- 18-MAR-1995 /  3:     ....  4.69158  4.76817  4.89425  4.99168  5.07115  5.13827  5.19637  5.24760  5.27136     ....
- 17-APR-1995 /  4:     ....  4.79826  4.87485  5.00093  5.09837  5.17783  5.24495  5.30305  5.35428  5.37805     ....
- 17-MAY-1995 /  5:     ....  4.91957  4.99616  5.12224  5.21967  5.29914  5.36626  5.42436  5.47559  5.49935     ....
- 17-JUN-1995 /  6:     ....  5.01664  5.09323  5.21931  5.31675  5.39621  5.46333  5.52143  5.57266  5.59643     ....
- 17-JUL-1995 /  7:     ....  5.07038  5.14697  5.27305  5.37049  5.44995  5.51707  5.57517  5.62640  5.65017     ....
- 17-AUG-1995 /  8:     ....  5.13974  5.21633  5.34241  5.43984  5.51931  5.58643  5.64453  5.69576  5.71952     ....
- 16-SEP-1995 /  9:     ....  5.20046  5.27705  5.40313  5.50056  5.58003  5.64714  5.70525  5.75648  5.78024     ....
- 16-OCT-1995 / 10:     ....  5.23640  5.31298  5.43907  5.53650  5.61597  5.68308  5.74119  5.79241  5.81618     ....
- 16-NOV-1995 / 11:     ....  5.28500  5.36159  5.48767  5.58511  5.66457  5.73169  5.78979  5.84102  5.86479     ....
- 16-DEC-1995 / 12:     ....  5.32921  5.40580  5.53188  5.62931  5.70878  5.77589  5.83400  5.88523  5.90899     ....
-let zt_laplace_gridded = scat2gridlaplace_zt(smzt_zs,smzt_ts,smzt,Z[gz=z_11],T[gt=t_12],2.0,1)
-list zt_laplace_gridded
-             VARIABLE : SCAT2GRIDLAPLACE_ZT(SMZT_ZS,SMZT_TS,SMZT,Z[GZ=Z_11],T[GT=T_12],2.0,1)
-             SUBSET   : 11 by 12 points (DEPTH (m)-TIME)
-                      0        10       20       30       40       50       60       70       80       90      100     
-                       1        2        3        4        5        6        7        8        9       10       11
- 16-JAN-1995 /  1:     ....  4.01260  4.01103  4.18210  4.27779  4.35640  4.42302  4.48082  4.53115  4.59056  4.66549
- 15-FEB-1995 /  2:     ....  4.33307  4.54051  4.67120  4.76690  4.84550  4.91213  4.96992  5.02025  5.05263  4.98503
- 18-MAR-1995 /  3:     ....  4.58238  4.74650  4.87751  4.97320  5.05181  5.11843  5.17623  5.22656  5.25909  5.23387
- 17-APR-1995 /  4:     ....  4.74816  4.87728  5.01937  5.11506  5.19367  5.26030  5.31809  5.36842  5.40831  5.39943
- 17-MAY-1995 /  5:     ....  4.86788  4.98645  5.12825  5.22394  5.30254  5.36917  5.42697  5.47730  5.51696  5.51891
- 17-JUN-1995 /  6:     ....  4.95864  5.07392  5.21453  5.31022  5.38882  5.45545  5.51325  5.56358  5.60243  5.60948
- 17-JUL-1995 /  7:     ....  5.02839  5.14132  5.28493  5.38062  5.45923  5.52585  5.58365  5.63398  5.67485  5.67935
- 17-AUG-1995 /  8:     ....  5.09002  5.20515  5.34732  5.44301  5.52162  5.58824  5.64604  5.69637  5.73635  5.74158
- 16-SEP-1995 /  9:     ....  5.14392  5.26070  5.40159  5.49728  5.57588  5.64251  5.70031  5.75064  5.78987  5.79641
- 16-OCT-1995 / 10:     ....  5.18891  5.30597  5.44856  5.54425  5.62285  5.68948  5.74728  5.79761  5.83810  5.84235
- 16-NOV-1995 / 11:     ....  5.23042  5.35103  5.49229  5.58798  5.66658  5.73321  5.79101  5.84134  5.88103  5.88458
- 16-DEC-1995 / 12:     ....  5.26827  5.39059  5.53066  5.62635  5.70495  5.77158  5.82938  5.87971  5.91865  5.92282
- 
-can mem /all
-can var /all
-can axis t_12
-can axis z_11
-can axis y_11
-can axis x_11
-can axis t_16
-can axis z_15
-can axis y_15
-can axis x_15
- 
- 
-GO bn_reset
-cancel mode verify
-go bn_scat2gridlaplace_tarasoff
-! bn_scat2gridlaplace_tarasoff
-! check for error reported by Lev Tarasoff 5/10/2006
-! trac ticket #1412
-! tests modulo of the X axis in the scat2gridlaplace_xy function
- 
-let xlnb = { -4.06, -5.07, -3.77, -3.02,  0.83,  0.31,  1.02,  0.33, -1.35, -2.54, \
-             -3.75, -5.48, -5.25,  2.98,  3.50, 36.15, 29.40, 19.45, 19.00}
-let ylt = {  52.47, 51.66, 51.58, 51.35, 51.70, 51.46, 51.07, 50.84, 50.80, 50.62, \
-             50.39, 50.13, 56.07, 55.02, 52.50, 69.10, 70.09, 70.15, 69.80}
-let wgt = {0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.03,0.02,0.00,1.34,1.17,0.22,0.49}
- 
-def axis/x=12.5w:119.5e/npoints=133/units=deg/modulo xlonef
-def axis/y=47.25N:83.25n/npoints=73/units=deg ylatef
- 
-let xln = if xlnb lt 0. then xlnb+360. else xlnb
-let wgtl = scat2gridlaplace_xy(xln,ylt, wgt, x[gx=xlonef], y[gy=ylatef], 2., 1)
- 
-show grid wgtl
-    GRID (G017)
- name       axis              # pts   start                end
- XLONEF    LONGITUDE          133mr   12.5W                119.5E(479.5)
- YLATEF    LATITUDE            73 r   47.25N               83.25N
- normal    Z
- normal    T
- normal    E
- normal    F
-load wgtl
-! shade wgtl ! Result is shifted in X:
-! data shows up at 70e that should be at 35e
- 
-! the folowing are listed /order=yx so no data will be skipped
- 
-! the following should show three regions of data
-list /order=yx wgtl[X=15E:40E,Y=68N:72N]
-             VARIABLE : SCAT2GRIDLAPLACE_XY(XLN,YLT, WGT, X[GX=XLONEF], Y[GY=YLATEF], 2., 1)
-             SUBSET   : 8 by 25 points (LATITUDE-LONGITUDE)
-                 68.25N   68.75N   69.25N   69.75N   70.25N   70.75N   71.25N   71.75N  
-                  43       44       45       46       47       48       49       50
- 15.5E / -105:     ....     ....     ....     ....     ....     ....     ....     ....
- 16.5E / -104:     ....     ....     ....     ....     ....     ....     ....     ....
- 17.5E / -103:     ....     ....     ....     ....     ....     ....     ....     ....
- 18.5E / -102:     ....     ....     ....  0.45146  0.25859     ....     ....     ....
- 19.5E / -101:     ....     ....  0.67000  0.52258  0.17310  0.04000     ....     ....
- 20.5E / -100:     ....     ....     ....  0.45141  0.25856     ....     ....     ....
- 21.5E /  -99:     ....     ....     ....     ....     ....     ....     ....     ....
- 22.5E /  -98:     ....     ....     ....     ....     ....     ....     ....     ....
- 23.5E /  -97:     ....     ....     ....     ....     ....     ....     ....     ....
- 24.5E /  -96:     ....     ....     ....     ....     ....     ....     ....     ....
- 25.5E /  -95:     ....     ....     ....     ....     ....     ....     ....     ....
- 26.5E /  -94:     ....     ....     ....     ....     ....     ....     ....     ....
- 27.5E /  -93:     ....     ....     ....     ....     ....     ....     ....     ....
- 28.5E /  -92:     ....     ....     ....     ....  1.17000     ....     ....     ....
- 29.5E /  -91:     ....     ....     ....  1.17000  1.17000  1.17000     ....     ....
- 30.5E /  -90:     ....     ....     ....     ....  1.17000     ....     ....     ....
- 31.5E /  -89:     ....     ....     ....     ....     ....     ....     ....     ....
- 32.5E /  -88:     ....     ....     ....     ....     ....     ....     ....     ....
- 33.5E /  -87:     ....     ....     ....     ....     ....     ....     ....     ....
- 34.5E /  -86:     ....     ....     ....     ....     ....     ....     ....     ....
- 35.5E /  -85:     ....     ....  1.34000     ....     ....     ....     ....     ....
- 36.5E /  -84:     ....  1.34000  1.34000  1.34000     ....     ....     ....     ....
- 37.5E /  -83:     ....     ....  1.34000     ....     ....     ....     ....     ....
- 38.5E /  -82:     ....     ....     ....     ....     ....     ....     ....     ....
- 39.5E /  -81:     ....     ....     ....     ....     ....     ....     ....     ....
-! the following should completely undefined
-list /order=yx wgtl[X=55E:80E,Y=68N:72N]
-             VARIABLE : SCAT2GRIDLAPLACE_XY(XLN,YLT, WGT, X[GX=XLONEF], Y[GY=YLATEF], 2., 1)
-             SUBSET   : 8 by 25 points (LATITUDE-LONGITUDE)
-               68N 69N 69N 70N 70N 71N 71N 72N 
-               43  44  45  46  47  48  49  50
- 55.5E / -65:................................
- 56.5E / -64:................................
- 57.5E / -63:................................
- 58.5E / -62:................................
- 59.5E / -61:................................
- 60.5E / -60:................................
- 61.5E / -59:................................
- 62.5E / -58:................................
- 63.5E / -57:................................
- 64.5E / -56:................................
- 65.5E / -55:................................
- 66.5E / -54:................................
- 67.5E / -53:................................
- 68.5E / -52:................................
- 69.5E / -51:................................
- 70.5E / -50:................................
- 71.5E / -49:................................
- 72.5E / -48:................................
- 73.5E / -47:................................
- 74.5E / -46:................................
- 75.5E / -45:................................
- 76.5E / -44:................................
- 77.5E / -43:................................
- 78.5E / -42:................................
- 79.5E / -41:................................
- 
-cancel data /all
-cancel var /all
-cancel axis xlonef
-cancel axis ylatef
- 
-GO bn_reset
-cancel mode verify
-go bn_scat2grid_nobs
-! bn_scat2grid_nobs.jnl
-! test of scat2grid_nobs functions,
-! listing the results which can be checked against input
- 
-define axis/x=173:187/unit=degrees_east/npoints=15 x_15
-define axis/y=13:27/unit=degrees_north/npoints=15 y_15
-define axis/t=0:8760/unit=hours/t0="01-JAN-1995 00:00:00"/edges/npoints=16 t_16
- 
-let sinx = sin(X[gx=x_15] * 3.14159265 / 180.0)
-let cosyp70 = cos((Y[gy=y_15] + 70.0) * 3.14159265 / 180.0)
-let logtp50 = log(T[gt=t_16] + 50.0)
- 
-let smxy = xsequence(sinx + cosyp70)
-let smxy_xs_pos = xsequence(1.0 * X[gx=x_15] + 0.0 * Y[gy=y_15])
-let smxy_xs = if ( smxy_xs_pos gt 180 ) then (smxy_xs_pos - 360) else smxy_xs_pos
-let smxy_ys = xsequence(0.0 * X[gx=x_15] + 1.0 * Y[gy=y_15])
- 
-let smxyt = xsequence(sinx + cosyp70 + logtp50)
-let smxyt_xs_pos = xsequence(1.0 * X[gx=x_15] + 0.0 * Y[gy=y_15] + 0.0 * T[gt=t_16])
-let smxyt_xs = if ( smxyt_xs_pos gt 180 ) then (smxyt_xs_pos - 360) else smxyt_xs_pos
-let smxyt_ys = xsequence(0.0 * X[gx=x_15] + 1.0 * Y[gy=y_15] + 0.0 * T[gt=t_16])
-let smxyt_ts = xsequence(0.0 * X[gx=x_15] + 0.0 * Y[gy=y_15] + 1.0 * T[gt=t_16])
- 
-define axis/x=170:190/unit=degrees_east/npoints=11 x_11
-define axis/y=10:30/units=degrees_north/npoints=11 y_11
-define axis/t=0:8760/unit=hours/t0="01-JAN-1995 00:00:00"/edges/npoints=12 t_12
- 
-list X[gx=x_11]
-             VARIABLE : X
-                        axis X_11
-             SUBSET   : 11 points (LONGITUDE)
- 170E   /  1:  170.000
- 172E   /  2:  172.000
- 174E   /  3:  174.000
- 176E   /  4:  176.000
- 178E   /  5:  178.000
- 180E   /  6:  180.000
- 178W   /  7:  182.000
- 176W   /  8:  184.000
- 174W   /  9:  186.000
- 172W   / 10:  188.000
- 170W   / 11:  190.000
- 
-list /i=1:33 smxy_xs, smxy_ys, smxy
-             X: 0.5 to 33.5
- Column  1: SMXY_XS is IF ( SMXY_XS_POS GT 180 ) THEN (SMXY_XS_POS - 360) ELSE SMXY_XS_POS
- Column  2: SMXY_YS is XSEQUENCE(0.0 * X[GX=X_15] + 1.0 * Y[GY=Y_15])
- Column  3: SMXY is XSEQUENCE(SINX + COSYP70)
-           SMXY_XS   SMXY_YS    SMXY
-1    /  1:  173.000  13.0000  0.243739
-2    /  2:  174.000  13.0000  0.226398
-3    /  3:  175.000  13.0000  0.209025
-4    /  4:  176.000  13.0000  0.191626
-5    /  5:  177.000  13.0000  0.174205
-6    /  6:  178.000  13.0000  0.156769
-7    /  7:  179.000  13.0000  0.139322
-8    /  8:  180.000  13.0000  0.121869
-9    /  9: -179.000  13.0000  0.104417
-10   / 10: -178.000  13.0000  0.086970
-11   / 11: -177.000  13.0000  0.069533
-12   / 12: -176.000  13.0000  0.052113
-13   / 13: -175.000  13.0000  0.034714
-14   / 14: -174.000  13.0000  0.017341
-15   / 15: -173.000  13.0000  0.000000
-16   / 16:  173.000  14.0000  0.226398
-17   / 17:  174.000  14.0000  0.209057
-18   / 18:  175.000  14.0000  0.191684
-19   / 19:  176.000  14.0000  0.174285
-20   / 20:  177.000  14.0000  0.156864
-21   / 21:  178.000  14.0000  0.139428
-22   / 22:  179.000  14.0000  0.121981
-23   / 23:  180.000  14.0000  0.104528
-24   / 24: -179.000  14.0000  0.087076
-25   / 25: -178.000  14.0000  0.069629
-26   / 26: -177.000  14.0000  0.052193
-27   / 27: -176.000  14.0000  0.034772
-28   / 28: -175.000  14.0000  0.017373
-29   / 29: -174.000  14.0000  0.000000
-30   / 30: -173.000  14.0000 -0.017341
-31   / 31:  173.000  15.0000  0.209025
-32   / 32:  174.000  15.0000  0.191684
-33   / 33:  175.000  15.0000  0.174311
-let xy_nobs = scat2grid_nobs_xy(smxy_xs, smxy_ys, X[gx=x_11], Y[gy=y_11])
-list xy_nobs
-             VARIABLE : SCAT2GRID_NOBS_XY(SMXY_XS, SMXY_YS, X[GX=X_11], Y[GY=Y_11])
-             SUBSET   : 11 by 11 points (LONGITUDE-LATITUDE)
-               170E     172E     174E     176E     178E      180E    178W     176W     174W     172W     170W    
-                 1        2        3        4        5        6        7        8        9       10       11
- 30N   / 11:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- 28N   / 10:  0.00000  0.00000  2.00000  2.00000  2.00000  2.00000  2.00000  2.00000  2.00000  1.00000  0.00000
- 26N   /  9:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 24N   /  8:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 22N   /  7:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 20N   /  6:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 18N   /  5:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 16N   /  4:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 14N   /  3:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 12N   /  2:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- 10N   /  1:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- 
-list /i=1:33 smxyt_xs, smxyt_ys, smxyt_ts, smxyt
-             X: 0.5 to 33.5
- Column  1: SMXYT_XS is IF ( SMXYT_XS_POS GT 180 ) THEN (SMXYT_XS_POS - 360) ELSE SMXYT_XS_POS
- Column  2: SMXYT_YS is XSEQUENCE(0.0 * X[GX=X_15] + 1.0 * Y[GY=Y_15] + 0.0 * T[GT=T_16])
- Column  3: SMXYT_TS is XSEQUENCE(0.0 * X[GX=X_15] + 0.0 * Y[GY=Y_15] + 1.0 * T[GT=T_16])
- Column  4: SMXYT is XSEQUENCE(SINX + COSYP70 + LOGTP50)
-          SMXYT_XS  SMXYT_YS SMXYT_TS   SMXYT
-1    /  1:  173.000  13.0000  273.750  2.75395
-2    /  2:  174.000  13.0000  273.750  2.73661
-3    /  3:  175.000  13.0000  273.750  2.71923
-4    /  4:  176.000  13.0000  273.750  2.70184
-5    /  5:  177.000  13.0000  273.750  2.68442
-6    /  6:  178.000  13.0000  273.750  2.66698
-7    /  7:  179.000  13.0000  273.750  2.64953
-8    /  8:  180.000  13.0000  273.750  2.63208
-9    /  9: -179.000  13.0000  273.750  2.61463
-10   / 10: -178.000  13.0000  273.750  2.59718
-11   / 11: -177.000  13.0000  273.750  2.57974
-12   / 12: -176.000  13.0000  273.750  2.56232
-13   / 13: -175.000  13.0000  273.750  2.54492
-14   / 14: -174.000  13.0000  273.750  2.52755
-15   / 15: -173.000  13.0000  273.750  2.51021
-16   / 16:  173.000  14.0000  273.750  2.73661
-17   / 17:  174.000  14.0000  273.750  2.71927
-18   / 18:  175.000  14.0000  273.750  2.70189
-19   / 19:  176.000  14.0000  273.750  2.68449
-20   / 20:  177.000  14.0000  273.750  2.66707
-21   / 21:  178.000  14.0000  273.750  2.64964
-22   / 22:  179.000  14.0000  273.750  2.63219
-23   / 23:  180.000  14.0000  273.750  2.61474
-24   / 24: -179.000  14.0000  273.750  2.59729
-25   / 25: -178.000  14.0000  273.750  2.57984
-26   / 26: -177.000  14.0000  273.750  2.56240
-27   / 27: -176.000  14.0000  273.750  2.54498
-28   / 28: -175.000  14.0000  273.750  2.52758
-29   / 29: -174.000  14.0000  273.750  2.51021
-30   / 30: -173.000  14.0000  273.750  2.49287
-31   / 31:  173.000  15.0000  273.750  2.71923
-32   / 32:  174.000  15.0000  273.750  2.70189
-33   / 33:  175.000  15.0000  273.750  2.68452
-let xyt_nobs = scat2grid_nobs_xyt(smxyt_xs, smxyt_ys, smxyt_ts, X[gx=x_11], Y[gy=y_11], T[gt=t_12])
-list xyt_nobs
-             VARIABLE : SCAT2GRID_NOBS_XYT(SMXYT_XS, SMXYT_YS, SMXYT_TS, X[GX=X_11], Y[GY=Y_11], T[GT=T_12])
-             SUBSET   : 11 by 11 by 12 points (LONGITUDE-LATITUDE-TIME)
-               170E     172E     174E     176E     178E      180E    178W     176W     174W     172W     170W    
-                 1        2        3        4        5        6        7        8        9       10       11
- ---- L:1 T:   JAN-1995
- 30N   / 11:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- 28N   / 10:  0.00000  0.00000  2.00000  2.00000  2.00000  2.00000  2.00000  2.00000  2.00000  1.00000  0.00000
- 26N   /  9:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 24N   /  8:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 22N   /  7:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 20N   /  6:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 18N   /  5:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 16N   /  4:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 14N   /  3:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 12N   /  2:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- 10N   /  1:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- ---- L:2 T:   FEB-1995
- 30N   / 11:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- 28N   / 10:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 26N   /  9:  0.00000  0.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  4.00000  0.00000
- 24N   /  8:  0.00000  0.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  4.00000  0.00000
- 22N   /  7:  0.00000  0.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  4.00000  0.00000
- 20N   /  6:  0.00000  0.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  4.00000  0.00000
- 18N   /  5:  0.00000  0.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  4.00000  0.00000
- 16N   /  4:  0.00000  0.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  4.00000  0.00000
- 14N   /  3:  0.00000  0.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  4.00000  0.00000
- 12N   /  2:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- 10N   /  1:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- ---- L:3 T:   MAR-1995
- 30N   / 11:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- 28N   / 10:  0.00000  0.00000  2.00000  2.00000  2.00000  2.00000  2.00000  2.00000  2.00000  1.00000  0.00000
- 26N   /  9:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 24N   /  8:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 22N   /  7:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 20N   /  6:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 18N   /  5:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 16N   /  4:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 14N   /  3:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 12N   /  2:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- 10N   /  1:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- ---- L:4 T:   APR-1995
- 30N   / 11:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- 28N   / 10:  0.00000  0.00000  2.00000  2.00000  2.00000  2.00000  2.00000  2.00000  2.00000  1.00000  0.00000
- 26N   /  9:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 24N   /  8:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 22N   /  7:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 20N   /  6:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 18N   /  5:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 16N   /  4:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 14N   /  3:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 12N   /  2:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- 10N   /  1:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- ---- L:5 T:   MAY-1995
- 30N   / 11:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- 28N   / 10:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 26N   /  9:  0.00000  0.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  4.00000  0.00000
- 24N   /  8:  0.00000  0.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  4.00000  0.00000
- 22N   /  7:  0.00000  0.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  4.00000  0.00000
- 20N   /  6:  0.00000  0.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  4.00000  0.00000
- 18N   /  5:  0.00000  0.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  4.00000  0.00000
- 16N   /  4:  0.00000  0.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  4.00000  0.00000
- 14N   /  3:  0.00000  0.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  4.00000  0.00000
- 12N   /  2:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- 10N   /  1:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- ---- L:6 T:   JUN-1995
- 30N   / 11:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- 28N   / 10:  0.00000  0.00000  2.00000  2.00000  2.00000  2.00000  2.00000  2.00000  2.00000  1.00000  0.00000
- 26N   /  9:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 24N   /  8:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 22N   /  7:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 20N   /  6:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 18N   /  5:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 16N   /  4:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 14N   /  3:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 12N   /  2:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- 10N   /  1:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- ---- L:7 T:   JUL-1995
- 30N   / 11:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- 28N   / 10:  0.00000  0.00000  2.00000  2.00000  2.00000  2.00000  2.00000  2.00000  2.00000  1.00000  0.00000
- 26N   /  9:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 24N   /  8:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 22N   /  7:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 20N   /  6:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 18N   /  5:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 16N   /  4:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 14N   /  3:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 12N   /  2:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- 10N   /  1:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- ---- L:8 T:   AUG-1995
- 30N   / 11:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- 28N   / 10:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 26N   /  9:  0.00000  0.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  4.00000  0.00000
- 24N   /  8:  0.00000  0.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  4.00000  0.00000
- 22N   /  7:  0.00000  0.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  4.00000  0.00000
- 20N   /  6:  0.00000  0.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  4.00000  0.00000
- 18N   /  5:  0.00000  0.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  4.00000  0.00000
- 16N   /  4:  0.00000  0.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  4.00000  0.00000
- 14N   /  3:  0.00000  0.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  4.00000  0.00000
- 12N   /  2:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- 10N   /  1:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- ---- L:9 T:   SEP-1995
- 30N   / 11:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- 28N   / 10:  0.00000  0.00000  2.00000  2.00000  2.00000  2.00000  2.00000  2.00000  2.00000  1.00000  0.00000
- 26N   /  9:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 24N   /  8:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 22N   /  7:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 20N   /  6:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 18N   /  5:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 16N   /  4:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 14N   /  3:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 12N   /  2:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- 10N   /  1:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- ---- L:10 T:   OCT-1995
- 30N   / 11:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- 28N   / 10:  0.00000  0.00000  2.00000  2.00000  2.00000  2.00000  2.00000  2.00000  2.00000  1.00000  0.00000
- 26N   /  9:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 24N   /  8:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 22N   /  7:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 20N   /  6:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 18N   /  5:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 16N   /  4:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 14N   /  3:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 12N   /  2:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- 10N   /  1:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- ---- L:11 T:   NOV-1995
- 30N   / 11:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- 28N   / 10:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 26N   /  9:  0.00000  0.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  4.00000  0.00000
- 24N   /  8:  0.00000  0.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  4.00000  0.00000
- 22N   /  7:  0.00000  0.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  4.00000  0.00000
- 20N   /  6:  0.00000  0.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  4.00000  0.00000
- 18N   /  5:  0.00000  0.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  4.00000  0.00000
- 16N   /  4:  0.00000  0.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  4.00000  0.00000
- 14N   /  3:  0.00000  0.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  8.00000  4.00000  0.00000
- 12N   /  2:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- 10N   /  1:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- ---- L:12 T:   DEC-1995
- 30N   / 11:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- 28N   / 10:  0.00000  0.00000  2.00000  2.00000  2.00000  2.00000  2.00000  2.00000  2.00000  1.00000  0.00000
- 26N   /  9:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 24N   /  8:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 22N   /  7:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 20N   /  6:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 18N   /  5:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 16N   /  4:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 14N   /  3:  0.00000  0.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  4.00000  2.00000  0.00000
- 12N   /  2:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- 10N   /  1:  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
- 
-can var /all
-can axis t_12
-can axis y_11
-can axis x_11
-can axis t_16
-can axis y_15
-can axis x_15
- 
- 
-GO bn_reset
-cancel mode verify
-go bn_scat2grid_t
-! bn_scat2grid_t.jnl
-! test the ave_scat2grid_t and scat2grid_t functions,
-! listing the results which can be checked against input
- 
-define axis/t=0:8760/unit=hours/t0="01-JAN-1995 00:00:00"/edges/npoints=32 t_32
- 
-let logtp50 = log(T[gt=t_32] + 50.0)
-let ltp50_tax = T[gt=t_32]
-list ltp50_tax, logtp50
-             TIME: JAN-1995 to JAN-1996
- Column  1: LTP50_TAX is T[GT=T_32]
- Column  2: LOGTP50 is LOG(T[GT=T_32] + 50.0)
-                   LTP50_TAX   LOGTP50
-06-JAN-1995 16 /  1:   136.88  2.27155
-18-JAN-1995 02 /  2:   410.63  2.66335
-29-JAN-1995 12 /  3:   684.38  2.86592
-09-FEB-1995 22 /  4:   958.13  3.00351
-21-FEB-1995 07 /  5:  1231.88  3.10785
-04-MAR-1995 17 /  6:  1505.63  3.19190
-16-MAR-1995 03 /  7:  1779.38  3.26230
-27-MAR-1995 13 /  8:  2053.13  3.32287
-07-APR-1995 22 /  9:  2326.88  3.37601
-19-APR-1995 08 / 10:  2600.63  3.42335
-30-APR-1995 18 / 11:  2874.38  3.46603
-12-MAY-1995 04 / 12:  3148.13  3.50490
-23-MAY-1995 13 / 13:  3421.88  3.54056
-03-JUN-1995 23 / 14:  3695.63  3.57352
-15-JUN-1995 09 / 15:  3969.38  3.60416
-26-JUN-1995 19 / 16:  4243.13  3.63277
-08-JUL-1995 04 / 17:  4516.88  3.65962
-19-JUL-1995 14 / 18:  4790.63  3.68490
-31-JUL-1995 00 / 19:  5064.38  3.70879
-11-AUG-1995 10 / 20:  5338.13  3.73144
-22-AUG-1995 19 / 21:  5611.88  3.75296
-03-SEP-1995 05 / 22:  5885.63  3.77347
-14-SEP-1995 15 / 23:  6159.38  3.79305
-26-SEP-1995 01 / 24:  6433.13  3.81178
-07-OCT-1995 10 / 25:  6706.88  3.82975
-18-OCT-1995 20 / 26:  6980.63  3.84699
-30-OCT-1995 06 / 27:  7254.38  3.86358
-10-NOV-1995 16 / 28:  7528.13  3.87956
-22-NOV-1995 01 / 29:  7801.88  3.89497
-03-DEC-1995 11 / 30:  8075.63  3.90986
-14-DEC-1995 21 / 31:  8349.38  3.92425
-26-DEC-1995 07 / 32:  8623.13  3.93818
- 
-define axis/t=0:8760/unit=hours/t0="01-JAN-1995 00:00:00"/edges/npoints=12 t_12
-let new_tax = T[gt=t_12]
- 
-let ave_t = ave_scat2grid_t(ltp50_tax, logtp50, new_tax)
-let t_cnt = scat2grid_t(ltp50_tax, new_tax)
-list new_tax, ave_t, t_cnt
-             TIME: JAN-1995 to JAN-1996
- Column  1: NEW_TAX is T[GT=T_12]
- Column  2: AVE_T is AVE_SCAT2GRID_T(LTP50_TAX, LOGTP50, NEW_TAX)
- Column  3: T_CNT is SCAT2GRID_T(LTP50_TAX, NEW_TAX)
-                  NEW_TAX    AVE_T    T_CNT
-16-JAN-1995 /  1:   365.00  2.60027  3.00000
-15-FEB-1995 /  2:  1095.00  3.05568  2.00000
-18-MAR-1995 /  3:  1825.00  3.25902  3.00000
-17-APR-1995 /  4:  2555.00  3.42180  3.00000
-17-MAY-1995 /  5:  3285.00  3.52273  2.00000
-17-JUN-1995 /  6:  4015.00  3.60349  3.00000
-17-JUL-1995 /  7:  4745.00  3.68444  3.00000
-17-AUG-1995 /  8:  5475.00  3.74220  2.00000
-16-SEP-1995 /  9:  6205.00  3.79277  3.00000
-16-OCT-1995 / 10:  6935.00  3.84677  3.00000
-16-NOV-1995 / 11:  7665.00  3.88727  2.00000
-16-DEC-1995 / 12:  8395.00  3.92409  3.00000
- 
-can mem /all
-can var /all
-can axis t_12
-can axis t_32
- 
- 
-GO bn_reset
-cancel mode verify
-go bn_transpose
-! bn_tranpose.jnl
-! test the transpose functions,
-! listing the results which can be checked against input
- 
-def axis /X=0.0:4.0:1.0 xaxs
-def axis /Y=0.0:3.0:1.0 yaxs
-def axis /Z=0.0:2.0:1.0 zaxs
-def axis /T=0.0:1.0:1.0 taxs
- 
-def grid /X=xaxs /Y=yaxs /Z=zaxs /T=taxs mygrd
-set grid mygrd
- 
-let myvar = X + 5.0 * (Y + 4.0 * (Z + 3.0 * T))
- 
-list myvar
-             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T))
-             SUBSET   : 5 by 4 by 3 by 2 points (X-Y-Z-T)
-              0        1        2        3        4     
-              1        2        3        4        5
- ---- L:1 T:   0
- ---- K:1 Z:   0
- 0   / 1:    0.000    1.000    2.000    3.000    4.000
- 1   / 2:    5.000    6.000    7.000    8.000    9.000
- 2   / 3:   10.000   11.000   12.000   13.000   14.000
- 3   / 4:   15.000   16.000   17.000   18.000   19.000
- ---- K:2 Z:   1
- 0   / 1:   20.000   21.000   22.000   23.000   24.000
- 1   / 2:   25.000   26.000   27.000   28.000   29.000
- 2   / 3:   30.000   31.000   32.000   33.000   34.000
- 3   / 4:   35.000   36.000   37.000   38.000   39.000
- ---- K:3 Z:   2
- 0   / 1:   40.000   41.000   42.000   43.000   44.000
- 1   / 2:   45.000   46.000   47.000   48.000   49.000
- 2   / 3:   50.000   51.000   52.000   53.000   54.000
- 3   / 4:   55.000   56.000   57.000   58.000   59.000
- ---- L:2 T:   1
- ---- K:1 Z:   0
- 0   / 1:   60.000   61.000   62.000   63.000   64.000
- 1   / 2:   65.000   66.000   67.000   68.000   69.000
- 2   / 3:   70.000   71.000   72.000   73.000   74.000
- 3   / 4:   75.000   76.000   77.000   78.000   79.000
- ---- K:2 Z:   1
- 0   / 1:   80.000   81.000   82.000   83.000   84.000
- 1   / 2:   85.000   86.000   87.000   88.000   89.000
- 2   / 3:   90.000   91.000   92.000   93.000   94.000
- 3   / 4:   95.000   96.000   97.000   98.000   99.000
- ---- K:3 Z:   2
- 0   / 1:  100.000  101.000  102.000  103.000  104.000
- 1   / 2:  105.000  106.000  107.000  108.000  109.000
- 2   / 3:  110.000  111.000  112.000  113.000  114.000
- 3   / 4:  115.000  116.000  117.000  118.000  119.000
-list transpose_xy(myvar)
-             VARIABLE : TRANSPOSE_XY(MYVAR)
-             SUBSET   : 4 by 5 by 3 by 2 points (X-Y-Z-T)
-              1        2        3        4     
-              1        2        3        4
- ---- L:1 T:   0
- ---- K:1 Z:   0
- 1   / 1:    0.000    5.000   10.000   15.000
- 2   / 2:    1.000    6.000   11.000   16.000
- 3   / 3:    2.000    7.000   12.000   17.000
- 4   / 4:    3.000    8.000   13.000   18.000
- 5   / 5:    4.000    9.000   14.000   19.000
- ---- K:2 Z:   1
- 1   / 1:   20.000   25.000   30.000   35.000
- 2   / 2:   21.000   26.000   31.000   36.000
- 3   / 3:   22.000   27.000   32.000   37.000
- 4   / 4:   23.000   28.000   33.000   38.000
- 5   / 5:   24.000   29.000   34.000   39.000
- ---- K:3 Z:   2
- 1   / 1:   40.000   45.000   50.000   55.000
- 2   / 2:   41.000   46.000   51.000   56.000
- 3   / 3:   42.000   47.000   52.000   57.000
- 4   / 4:   43.000   48.000   53.000   58.000
- 5   / 5:   44.000   49.000   54.000   59.000
- ---- L:2 T:   1
- ---- K:1 Z:   0
- 1   / 1:   60.000   65.000   70.000   75.000
- 2   / 2:   61.000   66.000   71.000   76.000
- 3   / 3:   62.000   67.000   72.000   77.000
- 4   / 4:   63.000   68.000   73.000   78.000
- 5   / 5:   64.000   69.000   74.000   79.000
- ---- K:2 Z:   1
- 1   / 1:   80.000   85.000   90.000   95.000
- 2   / 2:   81.000   86.000   91.000   96.000
- 3   / 3:   82.000   87.000   92.000   97.000
- 4   / 4:   83.000   88.000   93.000   98.000
- 5   / 5:   84.000   89.000   94.000   99.000
- ---- K:3 Z:   2
- 1   / 1:  100.000  105.000  110.000  115.000
- 2   / 2:  101.000  106.000  111.000  116.000
- 3   / 3:  102.000  107.000  112.000  117.000
- 4   / 4:  103.000  108.000  113.000  118.000
- 5   / 5:  104.000  109.000  114.000  119.000
-list transpose_xz(myvar)
-             VARIABLE : TRANSPOSE_XZ(MYVAR)
-             SUBSET   : 3 by 4 by 5 by 2 points (X-Y-Z-T)
-              1        2        3     
-              1        2        3
- ---- L:1 T:   0
- ---- K:1 Z:   1
- 0   / 1:    0.000   20.000   40.000
- 1   / 2:    5.000   25.000   45.000
- 2   / 3:   10.000   30.000   50.000
- 3   / 4:   15.000   35.000   55.000
- ---- K:2 Z:   2
- 0   / 1:    1.000   21.000   41.000
- 1   / 2:    6.000   26.000   46.000
- 2   / 3:   11.000   31.000   51.000
- 3   / 4:   16.000   36.000   56.000
- ---- K:3 Z:   3
- 0   / 1:    2.000   22.000   42.000
- 1   / 2:    7.000   27.000   47.000
- 2   / 3:   12.000   32.000   52.000
- 3   / 4:   17.000   37.000   57.000
- ---- K:4 Z:   4
- 0   / 1:    3.000   23.000   43.000
- 1   / 2:    8.000   28.000   48.000
- 2   / 3:   13.000   33.000   53.000
- 3   / 4:   18.000   38.000   58.000
- ---- K:5 Z:   5
- 0   / 1:    4.000   24.000   44.000
- 1   / 2:    9.000   29.000   49.000
- 2   / 3:   14.000   34.000   54.000
- 3   / 4:   19.000   39.000   59.000
- ---- L:2 T:   1
- ---- K:1 Z:   1
- 0   / 1:   60.000   80.000  100.000
- 1   / 2:   65.000   85.000  105.000
- 2   / 3:   70.000   90.000  110.000
- 3   / 4:   75.000   95.000  115.000
- ---- K:2 Z:   2
- 0   / 1:   61.000   81.000  101.000
- 1   / 2:   66.000   86.000  106.000
- 2   / 3:   71.000   91.000  111.000
- 3   / 4:   76.000   96.000  116.000
- ---- K:3 Z:   3
- 0   / 1:   62.000   82.000  102.000
- 1   / 2:   67.000   87.000  107.000
- 2   / 3:   72.000   92.000  112.000
- 3   / 4:   77.000   97.000  117.000
- ---- K:4 Z:   4
- 0   / 1:   63.000   83.000  103.000
- 1   / 2:   68.000   88.000  108.000
- 2   / 3:   73.000   93.000  113.000
- 3   / 4:   78.000   98.000  118.000
- ---- K:5 Z:   5
- 0   / 1:   64.000   84.000  104.000
- 1   / 2:   69.000   89.000  109.000
- 2   / 3:   74.000   94.000  114.000
- 3   / 4:   79.000   99.000  119.000
-list transpose_xt(myvar)
-             VARIABLE : TRANSPOSE_XT(MYVAR)
-             SUBSET   : 2 by 4 by 3 by 5 points (X-Y-Z-T)
-              1        2     
-              1        2
- ---- L:1 T:   1
- ---- K:1 Z:   0
- 0   / 1:    0.000   60.000
- 1   / 2:    5.000   65.000
- 2   / 3:   10.000   70.000
- 3   / 4:   15.000   75.000
- ---- K:2 Z:   1
- 0   / 1:   20.000   80.000
- 1   / 2:   25.000   85.000
- 2   / 3:   30.000   90.000
- 3   / 4:   35.000   95.000
- ---- K:3 Z:   2
- 0   / 1:   40.000  100.000
- 1   / 2:   45.000  105.000
- 2   / 3:   50.000  110.000
- 3   / 4:   55.000  115.000
- ---- L:2 T:   2
- ---- K:1 Z:   0
- 0   / 1:    1.000   61.000
- 1   / 2:    6.000   66.000
- 2   / 3:   11.000   71.000
- 3   / 4:   16.000   76.000
- ---- K:2 Z:   1
- 0   / 1:   21.000   81.000
- 1   / 2:   26.000   86.000
- 2   / 3:   31.000   91.000
- 3   / 4:   36.000   96.000
- ---- K:3 Z:   2
- 0   / 1:   41.000  101.000
- 1   / 2:   46.000  106.000
- 2   / 3:   51.000  111.000
- 3   / 4:   56.000  116.000
- ---- L:3 T:   3
- ---- K:1 Z:   0
- 0   / 1:    2.000   62.000
- 1   / 2:    7.000   67.000
- 2   / 3:   12.000   72.000
- 3   / 4:   17.000   77.000
- ---- K:2 Z:   1
- 0   / 1:   22.000   82.000
- 1   / 2:   27.000   87.000
- 2   / 3:   32.000   92.000
- 3   / 4:   37.000   97.000
- ---- K:3 Z:   2
- 0   / 1:   42.000  102.000
- 1   / 2:   47.000  107.000
- 2   / 3:   52.000  112.000
- 3   / 4:   57.000  117.000
- ---- L:4 T:   4
- ---- K:1 Z:   0
- 0   / 1:    3.000   63.000
- 1   / 2:    8.000   68.000
- 2   / 3:   13.000   73.000
- 3   / 4:   18.000   78.000
- ---- K:2 Z:   1
- 0   / 1:   23.000   83.000
- 1   / 2:   28.000   88.000
- 2   / 3:   33.000   93.000
- 3   / 4:   38.000   98.000
- ---- K:3 Z:   2
- 0   / 1:   43.000  103.000
- 1   / 2:   48.000  108.000
- 2   / 3:   53.000  113.000
- 3   / 4:   58.000  118.000
- ---- L:5 T:   5
- ---- K:1 Z:   0
- 0   / 1:    4.000   64.000
- 1   / 2:    9.000   69.000
- 2   / 3:   14.000   74.000
- 3   / 4:   19.000   79.000
- ---- K:2 Z:   1
- 0   / 1:   24.000   84.000
- 1   / 2:   29.000   89.000
- 2   / 3:   34.000   94.000
- 3   / 4:   39.000   99.000
- ---- K:3 Z:   2
- 0   / 1:   44.000  104.000
- 1   / 2:   49.000  109.000
- 2   / 3:   54.000  114.000
- 3   / 4:   59.000  119.000
-list transpose_yz(myvar)
-             VARIABLE : TRANSPOSE_YZ(MYVAR)
-             SUBSET   : 5 by 3 by 4 by 2 points (X-Y-Z-T)
-              0        1        2        3        4     
-              1        2        3        4        5
- ---- L:1 T:   0
- ---- K:1 Z:   1
- 1   / 1:    0.000    1.000    2.000    3.000    4.000
- 2   / 2:   20.000   21.000   22.000   23.000   24.000
- 3   / 3:   40.000   41.000   42.000   43.000   44.000
- ---- K:2 Z:   2
- 1   / 1:    5.000    6.000    7.000    8.000    9.000
- 2   / 2:   25.000   26.000   27.000   28.000   29.000
- 3   / 3:   45.000   46.000   47.000   48.000   49.000
- ---- K:3 Z:   3
- 1   / 1:   10.000   11.000   12.000   13.000   14.000
- 2   / 2:   30.000   31.000   32.000   33.000   34.000
- 3   / 3:   50.000   51.000   52.000   53.000   54.000
- ---- K:4 Z:   4
- 1   / 1:   15.000   16.000   17.000   18.000   19.000
- 2   / 2:   35.000   36.000   37.000   38.000   39.000
- 3   / 3:   55.000   56.000   57.000   58.000   59.000
- ---- L:2 T:   1
- ---- K:1 Z:   1
- 1   / 1:   60.000   61.000   62.000   63.000   64.000
- 2   / 2:   80.000   81.000   82.000   83.000   84.000
- 3   / 3:  100.000  101.000  102.000  103.000  104.000
- ---- K:2 Z:   2
- 1   / 1:   65.000   66.000   67.000   68.000   69.000
- 2   / 2:   85.000   86.000   87.000   88.000   89.000
- 3   / 3:  105.000  106.000  107.000  108.000  109.000
- ---- K:3 Z:   3
- 1   / 1:   70.000   71.000   72.000   73.000   74.000
- 2   / 2:   90.000   91.000   92.000   93.000   94.000
- 3   / 3:  110.000  111.000  112.000  113.000  114.000
- ---- K:4 Z:   4
- 1   / 1:   75.000   76.000   77.000   78.000   79.000
- 2   / 2:   95.000   96.000   97.000   98.000   99.000
- 3   / 3:  115.000  116.000  117.000  118.000  119.000
-list transpose_yt(myvar)
-             VARIABLE : TRANSPOSE_YT(MYVAR)
-             SUBSET   : 5 by 2 by 3 by 4 points (X-Y-Z-T)
-              0        1        2        3        4     
-              1        2        3        4        5
- ---- L:1 T:   1
- ---- K:1 Z:   0
- 1   / 1:    0.000    1.000    2.000    3.000    4.000
- 2   / 2:   60.000   61.000   62.000   63.000   64.000
- ---- K:2 Z:   1
- 1   / 1:   20.000   21.000   22.000   23.000   24.000
- 2   / 2:   80.000   81.000   82.000   83.000   84.000
- ---- K:3 Z:   2
- 1   / 1:   40.000   41.000   42.000   43.000   44.000
- 2   / 2:  100.000  101.000  102.000  103.000  104.000
- ---- L:2 T:   2
- ---- K:1 Z:   0
- 1   / 1:    5.000    6.000    7.000    8.000    9.000
- 2   / 2:   65.000   66.000   67.000   68.000   69.000
- ---- K:2 Z:   1
- 1   / 1:   25.000   26.000   27.000   28.000   29.000
- 2   / 2:   85.000   86.000   87.000   88.000   89.000
- ---- K:3 Z:   2
- 1   / 1:   45.000   46.000   47.000   48.000   49.000
- 2   / 2:  105.000  106.000  107.000  108.000  109.000
- ---- L:3 T:   3
- ---- K:1 Z:   0
- 1   / 1:   10.000   11.000   12.000   13.000   14.000
- 2   / 2:   70.000   71.000   72.000   73.000   74.000
- ---- K:2 Z:   1
- 1   / 1:   30.000   31.000   32.000   33.000   34.000
- 2   / 2:   90.000   91.000   92.000   93.000   94.000
- ---- K:3 Z:   2
- 1   / 1:   50.000   51.000   52.000   53.000   54.000
- 2   / 2:  110.000  111.000  112.000  113.000  114.000
- ---- L:4 T:   4
- ---- K:1 Z:   0
- 1   / 1:   15.000   16.000   17.000   18.000   19.000
- 2   / 2:   75.000   76.000   77.000   78.000   79.000
- ---- K:2 Z:   1
- 1   / 1:   35.000   36.000   37.000   38.000   39.000
- 2   / 2:   95.000   96.000   97.000   98.000   99.000
- ---- K:3 Z:   2
- 1   / 1:   55.000   56.000   57.000   58.000   59.000
- 2   / 2:  115.000  116.000  117.000  118.000  119.000
-list transpose_zt(myvar)
-             VARIABLE : TRANSPOSE_ZT(MYVAR)
-             SUBSET   : 5 by 4 by 2 by 3 points (X-Y-Z-T)
-              0        1        2        3        4     
-              1        2        3        4        5
- ---- L:1 T:   1
- ---- K:1 Z:   1
- 0   / 1:    0.000    1.000    2.000    3.000    4.000
- 1   / 2:    5.000    6.000    7.000    8.000    9.000
- 2   / 3:   10.000   11.000   12.000   13.000   14.000
- 3   / 4:   15.000   16.000   17.000   18.000   19.000
- ---- K:2 Z:   2
- 0   / 1:   60.000   61.000   62.000   63.000   64.000
- 1   / 2:   65.000   66.000   67.000   68.000   69.000
- 2   / 3:   70.000   71.000   72.000   73.000   74.000
- 3   / 4:   75.000   76.000   77.000   78.000   79.000
- ---- L:2 T:   2
- ---- K:1 Z:   1
- 0   / 1:   20.000   21.000   22.000   23.000   24.000
- 1   / 2:   25.000   26.000   27.000   28.000   29.000
- 2   / 3:   30.000   31.000   32.000   33.000   34.000
- 3   / 4:   35.000   36.000   37.000   38.000   39.000
- ---- K:2 Z:   2
- 0   / 1:   80.000   81.000   82.000   83.000   84.000
- 1   / 2:   85.000   86.000   87.000   88.000   89.000
- 2   / 3:   90.000   91.000   92.000   93.000   94.000
- 3   / 4:   95.000   96.000   97.000   98.000   99.000
- ---- L:3 T:   3
- ---- K:1 Z:   1
- 0   / 1:   40.000   41.000   42.000   43.000   44.000
- 1   / 2:   45.000   46.000   47.000   48.000   49.000
- 2   / 3:   50.000   51.000   52.000   53.000   54.000
- 3   / 4:   55.000   56.000   57.000   58.000   59.000
- ---- K:2 Z:   2
- 0   / 1:  100.000  101.000  102.000  103.000  104.000
- 1   / 2:  105.000  106.000  107.000  108.000  109.000
- 2   / 3:  110.000  111.000  112.000  113.000  114.000
- 3   / 4:  115.000  116.000  117.000  118.000  119.000
- 
-can var /all
-set grid abstract
-can grid mygrd
-can axis taxs
-can axis zaxs
-can axis yaxs
-can axis xaxs
- 
- 
-GO bn_reset
-cancel mode verify
-go bn_unique_str2int
-! bn_unique_str2int.jnl
- 
-SHOW FUNC/DETAIL unique_str2int
-UNIQUE_STR2INT(A)
-    Returns an ID number for each unique stringin the input array of strings (case sensitive)
-        Axes of result:
-          X: inherited from argument(s)
-          Y: inherited from argument(s)
-          Z: inherited from argument(s)
-          T: inherited from argument(s)
-          E: inherited from argument(s)
-          F: inherited from argument(s)
-    A: Array of Strings (STRING)
-        Influence on output axes:
-          X: passed to result grid
-          Y: passed to result grid
-          Z: passed to result grid
-          T: passed to result grid
-          E: passed to result grid
-          F: passed to result grid
- 
-let alist = { \
-   "a rat in the house will eat the zucchini", \
-   "a rat in the house will eat the ice cream", \
-   "ze rats in the house will eat the ice cream",\
-   "A rat in the house will eat the ICE CREAM", \
-   "", \
-   "", \
-   "A rat in the house will eat the ICE CREAM", \
-   "A rat in the house will eat the ICE CREAM", \
-   "ze rats in the house will eat the ice cream",\
-   "ze rats in the house will eat the ice cream",\
-   "" \
-}
- 
-let blist = { \
-   "ze rats in the house will eat the ice cream",\
-   "", \
-   "Something new has been added", \
-   "A rat in the house will eat the ICE CREAM", \
-   "A rat in the house will eat the ICE CREAM", \
-   "" \
-}
- 
-! check that it works when first called
-list unique_str2int(alist), alist
-             X: 0.5 to 11.5
- Column  1: EX#1 is UNIQUE_STR2INT(ALIST)
- Column  2: ALIST is {    "a rat in the house will eat the zucchini",    "a rat in the house will eat the ice cream",    "ze rats in the house will eat the ice cream",   "A rat in the house will eat th
-              EX#1                      ALIST
-1    /  1:  1.00000 "a rat in the house will eat the zucchini"   
-2    /  2:  2.00000 "a rat in the house will eat the ice cream"  
-3    /  3:  3.00000 "ze rats in the house will eat the ice cream"
-4    /  4:  4.00000 "A rat in the house will eat the ICE CREAM"  
-5    /  5:  5.00000 ""                                           
-6    /  6:  5.00000 ""                                           
-7    /  7:  4.00000 "A rat in the house will eat the ICE CREAM"  
-8    /  8:  4.00000 "A rat in the house will eat the ICE CREAM"  
-9    /  9:  3.00000 "ze rats in the house will eat the ice cream"
-10   / 10:  3.00000 "ze rats in the house will eat the ice cream"
-11   / 11:  5.00000 ""                                           
- 
-! check if the same values are returned for a second call matching strings
-list unique_str2int(blist), blist
-             X: 0.5 to 6.5
- Column  1: EX#1 is UNIQUE_STR2INT(BLIST)
- Column  2: BLIST is {    "ze rats in the house will eat the ice cream",   "",    "Something new has been added",    "A rat in the house will eat the ICE CREAM",    "A rat in the house will eat the ICE
-            EX#1                      BLIST
-1   / 1:  3.00000 "ze rats in the house will eat the ice cream"
-2   / 2:  5.00000 ""                                           
-3   / 3:  6.00000 "Something new has been added"               
-4   / 4:  4.00000 "A rat in the house will eat the ICE CREAM"  
-5   / 5:  4.00000 "A rat in the house will eat the ICE CREAM"  
-6   / 6:  5.00000 ""                                           
- 
- 
-GO bn_reset
-cancel mode verify
-go bench_sort
- 
- 
-! Benchmark for sort and sample external Functions
-! ACM 5/99
-! ACM 8/99 sorti,sortj,sortl have "visual" versions
- 
-sh func/ext sort*
-SORTI(DAT)
-    Returns indices of data, sorted on the I axis in increasing order
-    DAT: variable to sort in I
-SORTI_STR(STR)
-    Returns indices of string data, sorted on the I axis in increasing order, null strings at the end
-    STR: String variable to sort in I (STRING)
-SORTJ(DAT)
-    Returns indices of data, sorted on the J axis in increasing order
-    DAT: variable to sort in J
-SORTJ_STR(STR)
-    Returns indices of string data, sorted on the J axis in increasing order, null strings at the end
-    STR: String variable to sort in J (STRING)
-SORTK(DAT)
-    Returns indices of data, sorted on the K axis in increasing order
-    DAT: variable to sort in K
-SORTK_STR(STR)
-    Returns indices of string data, sorted on the K axis in increasing order, null strings at the end
-    STR: String variable to sort in K (STRING)
-SORTL(DAT)
-    Returns indices of data, sorted on the L axis in increasing order
-    DAT: variable to sort in L
-SORTL_STR(STR)
-    Returns indices of string data, sorted on the L axis in increasing order, null strings at the end
-    STR: String variable to sort in L (STRING)
-SORTM(DAT)
-    Returns indices of data, sorted on the M axis in increasing order
-    DAT: variable to sort in M
-SORTM_STR(STR)
-    Returns indices of string data, sorted on the M axis in increasing order, null strings at the end
-    STR: String variable to sort in L (STRING)
-SORTN(DAT)
-    Returns indices of data, sorted on the N axis in increasing order
-    DAT: variable to sort in N
-SORTN_STR(STR)
-    Returns indices of string data, sorted on the N axis in increasing order, null strings at the end
-    STR: String variable to sort in N (STRING)
-sh func/ext sample*
-SAMPLEI(TO_BE_SAMPLED,X_INDICES)
-    sample a field at a list of X indices
-    TO_BE_SAMPLED: data to sample at list of X indices supplied
-    X_INDICES: list of X indices at which to sample
-SAMPLEJ(TO_BE_SAMPLED,Y_INDICES)
-    sample a field at a list of Y indices
-    TO_BE_SAMPLED: data to sample at list of Y indices supplied
-    Y_INDICES: list of Y indices at which to sample
-SAMPLEK(TO_BE_SAMPLED,Z_INDICES)
-    sample a field at a list of Z indices
-    TO_BE_SAMPLED: data to sample at list of Z indices supplied
-    Z_INDICES: list of Z indices at which to sample
-SAMPLEL(TO_BE_SAMPLED,T_INDICES)
-    sample a field at a list of T indices
-    TO_BE_SAMPLED: data to sample at list of T indices supplied
-    T_INDICES: list of T indices at which to sample
-SAMPLEM(TO_BE_SAMPLED,E_INDICES)
-    sample a field at a list of E indices
-    TO_BE_SAMPLED: data to sample at list of E indices supplied
-    E_INDICES: list of E indices at which to sample
-SAMPLEN(TO_BE_SAMPLED,F_INDICES)
-    sample a field at a list of F indices
-    TO_BE_SAMPLED: data to sample at list of F indices supplied
-    F_INDICES: list of F indices at which to sample
-SAMPLEIJ(DAT_TO_SAMPLE,XPTS,YPTS)
-    Returns data sampled at a subset of its 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
-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
-    DAT_TO_SAMPLE: data to sample using I indices
-SAMPLEJ_MULTI(J_INDICES,DAT_TO_SAMPLE)
-    Returns data sampled according to J indices which may vary in IKL
-    J_INDICES: ordered indices
-    DAT_TO_SAMPLE: data to sample using J indices
-SAMPLEK_MULTI(K_INDICES,DAT_TO_SAMPLE)
-    Returns data sampled according to K indices which may vary in IJL
-    K_INDICES: ordered indices
-    DAT_TO_SAMPLE: data to sample using K indices
-SAMPLEL_MULTI(L_INDICES,DAT_TO_SAMPLE)
-    Returns data sampled according to L indices which may vary in IJK
-    L_INDICES: ordered indices
-    DAT_TO_SAMPLE: data to sample using L indices
-SAMPLET_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
-    Returns data sampled by interpolating to a set of times
-    DAT_TO_SAMPLE: data to sample at set of times
-    YR: Year(s) yyyy
-    MO: Month(s), integer mm
-    DAY: Day(s) of month dd
-    HR: Hour(s) hh
-    MIN: Minute(s) mm
-    SEC: Second(s) ss
-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
-SAMPLEXY_CLOSEST(DAT_TO_SAMPLE,XPTS,YPTS)
-    Returns data sampled at a set of (X,Y) points, using nearest grid intersection
-    DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
-    XPTS: X values of sample points
-    YPTS: Y values of sample points
-SAMPLEXY_CURV(DAT_TO_SAMPLE,DAT_LON,DAT_LAT,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
-    DAT_LON: longitudes of input variable
-    DAT_LAT: latitudes of input variable
-    XPTS: X values of sample points
-    YPTS: Y values of sample points
-SAMPLEXY_CURV_AVG(DAT_TO_SAMPLE,DAT_LON,DAT_LAT,XPTS,YPTS)
-    Returns data sampled at a set of (X,Y) points, using unweighted averaging
-    DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
-    DAT_LON: longitudes of input variable
-    DAT_LAT: latitudes of input variable
-    XPTS: X values of sample points
-    YPTS: Y values of sample points
-SAMPLEXY_CURV_NRST(DAT_TO_SAMPLE,DAT_LON,DAT_LAT,XPTS,YPTS)
-    Returns data at a set of (X,Y) points, from nearest loc on XY curvilinear grid
-    DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
-    DAT_LON: longitudes of input variable
-    DAT_LAT: latitudes of input variable
-    XPTS: X values of sample points
-    YPTS: Y values of sample points
-SAMPLEXYT(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
-    Returns data sampled at a set of (X,Y,T) points, using linear interpolation
-    DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
-    XPTS: X values of sample points
-    YPTS: Y values of sample points
-    TPTS: T values of sample points
-SAMPLEXZ(DAT_TO_SAMPLE,XPTS,ZPTS)
-    Returns data sampled at a set of (X,Z) points, using linear interpolation
-    DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
-    XPTS: X values of sample points
-    ZPTS: Z values of sample points
-SAMPLEYZ(DAT_TO_SAMPLE,YPTS,ZPTS)
-    Returns data sampled at a set of (Y,Z) points, using linear interpolation
-    DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
-    YPTS: Y values of sample points
-    ZPTS: Z values of sample points
- 
-go bench_sorti.jnl
- 
- 
-! Benchmark for sort and sample external Functions
-! ACM 5/99
- 
-! V550 *sh* 11/02 - documentation change only, reflecting subspan modulo
-! The use of L=5 on a 3 point time axis triggers a valid subspan modulo calculation
-! V581 *ACM 3/05 Changes in specifying context for arg 2 of SAMPLEI
-!                see notes in Bugzilla under bug 1187.
- 
-can region
-use coads_climatology
-set region/x=141:151/y=39/z=0/l=2
- 
-list sst
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 6 points (LONGITUDE)
-             LATITUDE : 39N
-             TIME     : FEB
-                 39N    
-                 65
- 141E   / 61:   8.8575
- 143E   / 62:   8.5178
- 145E   / 63:   9.2910
- 147E   / 64:  10.2489
- 149E   / 65:  10.9823
- 151E   / 66:  10.8754
- 
-let tsorted_indices = sorti( sst[i=61:66,y=39,z=0,l=2])
-let tsorted_sst = samplei(sst, tsorted_indices)
- 
-list tsorted_indices, tsorted_sst
-             DATA SET: ./coads_climatology.cdf
-             X: 0.5 to 6.5
-             TIME: FEB
- Column  1: TSORTED_INDICES[Y=39N] is SORTI( SST[I=61:66,Y=39,Z=0,L=2])
- Column  2: TSORTED_SST[Y=39N] is SAMPLEI(SST, TSORTED_INDICES)
-        TSORTED_  TSORTED_SST
-1   / 1:  62.0000   8.5178
-2   / 2:  61.0000   8.8575
-3   / 3:  63.0000   9.2910
-4   / 4:  64.0000  10.2489
-5   / 5:  66.0000  10.8754
-6   / 6:  65.0000  10.9823
- 
- 
-! test on 2-d data
- 
-can region
-!set data coads_climatology
-set region/l=5
- 
-let xsorted_indices = sorti(sst)
-let xsorted_sst = samplei(sst, xsorted_indices[y=0,l=5])
-! shade xsorted_sst
-list/y=0/i=1:15 xsorted_sst
-             VARIABLE : SAMPLEI(SST, XSORTED_INDICES[Y=0,L=5])
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 15 points (X)
-             LATITUDE : 1S
-             TIME     : JAN
-               1S     
-               45
- 1    /  1:  23.7595
- 2    /  2:  23.8632
- 3    /  3:  23.8882
- 4    /  4:  23.9519
- 5    /  5:  23.9616
- 6    /  6:  24.0241
- 7    /  7:  24.0481
- 8    /  8:  24.0854
- 9    /  9:  24.2126
- 10   / 10:  24.2807
- 11   / 11:  24.3114
- 12   / 12:  24.3562
- 13   / 13:  24.3861
- 14   / 14:  24.4567
- 15   / 15:  24.4717
- 
-set region/l=5/y=1
-let len = xsorted_sst[i=@ngd]
-list len
-             VARIABLE : XSORTED_SST[I=@NGD]
-             FILENAME : coads_climatology.cdf
-             X        : 0.5 to 180.5
-             LATITUDE : 1N
-             TIME     : JAN
-          147.000
- 
-go bench_sortj.jnl
- 
- 
- 
-! Benchmark for sort and sample external Functions
-! ACM 5/99
- 
-! V550 *sh* 11/02 - documentation change only, reflecting subspan modulo
-! The use of L=5 on a 3 point time axis triggers a valid subspan modulo calculation
-! V581 *ACM 3/05 Changes in specifying context for arg 2 of SAMPLEJ
-!                see notes in Bugzilla under bug 1187.
- 
-can region
-use coads_climatology
-set region/x=141/y=39:49/z=0/l=2
- 
-list sst
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 6 points (LATITUDE)
-             LONGITUDE: 141E
-             TIME     : FEB
-               141E    
-                61
- 49N   / 70:  1.88296
- 47N   / 69:  2.01405
- 45N   / 68:  3.44455
- 43N   / 67:  4.55859
- 41N   / 66:  6.47285
- 39N   / 65:  8.85749
- 
-let tsorted_indices = sortj( sst[j=65:70,x=141,z=0,l=2])
-let tsorted_sst = samplej(sst, tsorted_indices)
- 
-list tsorted_indices, tsorted_sst
-             DATA SET: ./coads_climatology.cdf
-             Y: 0.5 to 6.5
-             TIME: FEB
- Column  1: TSORTED_INDICES[X=141E] is SORTJ( SST[J=65:70,X=141,Z=0,L=2])
- Column  2: TSORTED_SST[X=141E] is SAMPLEJ(SST, TSORTED_INDICES)
-        TSORTED_  TSORTED_SST
-1   / 1:  70.0000  1.88296
-2   / 2:  69.0000  2.01405
-3   / 3:  68.0000  3.44455
-4   / 4:  67.0000  4.55859
-5   / 5:  66.0000  6.47285
-6   / 6:  65.0000  8.85749
- 
-! test on 2-D data.
- 
-can region
-!set data coads_climatology
-set region/l=5
- 
-let ysorted_indices = sortj(sst)
-let ysorted_sst = samplej(sst, ysorted_indices[i=0,l=5])
-!shade ysorted_sst
-list/i=0/j=1:15 ysorted_sst
-             VARIABLE : SAMPLEJ(SST, YSORTED_INDICES[I=0,L=5])
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 15 points (Y)
-             LONGITUDE: 19E
-             TIME     : JAN
-               19E    
-                0
- 1    /  1: -0.12500
- 2    /  2:  0.05400
- 3    /  3:  0.18556
- 4    /  4:  0.30000
- 5    /  5:  0.43875
- 6    /  6:  0.62500
- 7    /  7:  0.66000
- 8    /  8:  0.72750
- 9    /  9:  0.79955
- 10   / 10:  1.29667
- 11   / 11:  1.58765
- 12   / 12:  1.60684
- 13   / 13:  1.91667
- 14   / 14:  2.05857
- 15   / 15:  2.69400
- 
-set region/l=5/x=181
-let len = ysorted_sst[j=@ngd]
-list len
-             VARIABLE : YSORTED_SST[J=@NGD]
-             FILENAME : coads_climatology.cdf
-             LONGITUDE: 179W
-             Y        : 0.5 to 90.5
-             TIME     : JAN
-          32.0000
- 
- 
-go bench_sortk.jnl
-! Benchmark for sort and sample external Functions
-! ACM 7/99
-! Changes with v5.81 and after, specifying context for arg 2 of SAMPLEK
-!   see notes in Bugzilla under bug 1187.
- 
-! test sortk, samplek
- 
-can region
-use gt4d011
-set region/i=99/j=40/l=1
- 
-let zsorted_indices = sortk(temp)
-let zsorted_temp = samplek(temp, zsorted_indices[i=99,j=40,l=1])
-list zsorted_temp
-             VARIABLE : SAMPLEK(TEMP, ZSORTED_INDICES[I=99,J=40,L=1])
-             FILENAME : gt4d011.cdf
-             SUBSET   : 10 points (Z)
-             LONGITUDE: 131.5W
-             LATITUDE : 1.833S
-             TIME     : AUG-1982
-              131.5W  
-               99
- 1    /  1:  24.6576
- 2    /  2:  25.2599
- 3    /  3:  25.7023
- 4    /  4:  26.0588
- 5    /  5:  26.1281
- 6    /  6:  26.1309
- 7    /  7:  26.1387
- 8    /  8:  26.1637
- 9    /  9:  26.2191
- 10   / 10:  26.3090
- 
- 
-can region
-use ocean_atlas_temp
- 
-set region/i=70/j=90/l=1
-list temp
-             VARIABLE : Temperature (Deg C)
-             FILENAME : ocean_atlas_temp.cdf
-             LONGITUDE: 89.5E
-             LATITUDE : 0.5S
-             DEPTH (m): 0
-             TIME     : JAN
-          28.8626
- 
-let zsorted_indices = sortk(temp)
-let zsorted_temp = samplek(temp, zsorted_indices[i=70,j=90,l=1])
-list zsorted_temp
-             VARIABLE : SAMPLEK(TEMP, ZSORTED_INDICES[I=70,J=90,L=1])
-             FILENAME : ocean_atlas_temp.cdf
-             LONGITUDE: 89.5E
-             LATITUDE : 0.5S
-             Z        : 1
-             TIME     : JAN
-          28.8626
- 
-! this should bail out with indices out of range:
- 
-let zsorted_indices = sortk(temp[i=70,j=90,l=1]) - 100
-let zsorted_temp = samplek(temp, zsorted_indices)
-list zsorted_temp
-             VARIABLE : SAMPLEK(TEMP, ZSORTED_INDICES)
-             FILENAME : ocean_atlas_temp.cdf
-             LONGITUDE: 89.5E
-             LATITUDE : 0.5S
-             Z        : 1
-             TIME     : JAN
-        ....
- 
- 
-go bench_sortl.jnl
- 
- 
-! Benchmark for sort and sample external Functions
-! ACM 5/99
-! *sh* 3/00 - indicate that test of illegal indices should produce an error
- 
-! V550 *sh* 11/02 - documentation change only, reflecting subspan modulo
-! The use of L=5 on a 3 point time axis triggers a valid subspan modulo calculation
-! V581 *ACM 3/05 Changes in specifying context for arg 2 of SAMPLEL
-!                see notes in Bugzilla under bug 1187.
- 
-use coads_climatology
-set region/x=141/y=39/z=0/l=1:6
- 
-list sst
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 6 points (TIME)
-             LONGITUDE: 141E
-             LATITUDE : 39N
-                    141E    
-                     61
- 16-JAN      / 1:  11.0274
- 15-FEB      / 2:   8.8575
- 17-MAR      / 3:   8.3911
- 16-AUG      / 4:     ....
- 15-JAN      / 5:  11.0274
- 14-FEB      / 6:   8.8575
-list samplel(sst, {1,3,5})
-             VARIABLE : SAMPLEL(SST, {1,3,5})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 points (T)
-             LONGITUDE: 141E
-             LATITUDE : 39N
-            141E    
-             61
- 1   / 1:  11.0274
- 2   / 2:   8.3911
- 3   / 3:  11.0274
- 
-let tsorted_indices = sortl(sst)
-let tsorted_sst = samplel(sst, tsorted_indices[x=141,y=39,z=0])
- 
-list tsorted_indices, tsorted_sst
-             DATA SET: ./coads_climatology.cdf
-             T: 0.5 to 3.5
-             LONGITUDE: 141E
-             LATITUDE: 39N
- Column  1: TSORTED_INDICES is SORTL(SST)
- Column  2: TSORTED_SST is SAMPLEL(SST, TSORTED_INDICES[X=141,Y=39,Z=0])
-        TSORTED_  TSORTED_SST
-1   / 1:  3.00000   8.3911
-2   / 2:  2.00000   8.8575
-3   / 3:  1.00000  11.0274
- 
-! test sortt with data containing bad/missing data.
- 
-can region
- 
-use  coads_vwnd.cdf
-set region/i=90/j=65
-list vwnd
-             VARIABLE : MERIDIONAL WIND (M/S)
-             FILENAME : coads_vwnd.cdf
-             SUBSET   : 60 points (TIME)
-             LONGITUDE: 161W
-             LATITUDE : 39N
-                        161W    
-                         90
- 16-JAN-1946 12 /  1:     ....
- 15-FEB-1946 00 /  2:     ....
- 16-MAR-1946 12 /  3:     ....
- 16-APR-1946 00 /  4:     ....
- 16-MAY-1946 12 /  5:     ....
- 16-JUN-1946 00 /  6:     ....
- 16-JUL-1946 12 /  7:     ....
- 16-AUG-1946 12 /  8:     ....
- 16-SEP-1946 00 /  9:     ....
- 16-OCT-1946 12 / 10:     ....
- 16-NOV-1946 00 / 11:     ....
- 16-DEC-1946 12 / 12:  12.3500
- 16-JAN-1947 12 / 13:     ....
- 15-FEB-1947 00 / 14:     ....
- 16-MAR-1947 12 / 15:     ....
- 16-APR-1947 00 / 16:   0.0000
- 16-MAY-1947 12 / 17:     ....
- 16-JUN-1947 00 / 18:     ....
- 16-JUL-1947 12 / 19:     ....
- 16-AUG-1947 12 / 20:     ....
- 16-SEP-1947 00 / 21:   6.6000
- 16-OCT-1947 12 / 22:     ....
- 16-NOV-1947 00 / 23:     ....
- 16-DEC-1947 12 / 24:     ....
- 16-JAN-1948 12 / 25:   4.5000
- 15-FEB-1948 12 / 26:     ....
- 16-MAR-1948 12 / 27:     ....
- 16-APR-1948 00 / 28:     ....
- 16-MAY-1948 12 / 29:     ....
- 16-JUN-1948 00 / 30:   4.7000
- 16-JUL-1948 12 / 31:     ....
- 16-AUG-1948 12 / 32:     ....
- 16-SEP-1948 00 / 33:  -5.8000
- 16-OCT-1948 12 / 34:   0.4500
- 16-NOV-1948 00 / 35:     ....
- 16-DEC-1948 12 / 36:     ....
- 16-JAN-1949 12 / 37:   4.2300
- 15-FEB-1949 00 / 38:  -1.0800
- 16-MAR-1949 12 / 39:   2.0700
- 16-APR-1949 00 / 40:   0.8300
- 16-MAY-1949 12 / 41:   0.0000
- 16-JUN-1949 00 / 42:   5.3700
- 16-JUL-1949 12 / 43:  -1.3000
- 16-AUG-1949 12 / 44:   1.3800
- 16-SEP-1949 00 / 45:   5.9200
- 16-OCT-1949 12 / 46:   0.7100
- 16-NOV-1949 00 / 47:  -0.9400
- 16-DEC-1949 12 / 48:  -0.5200
- 16-JAN-1950 12 / 49:   1.5800
- 15-FEB-1950 00 / 50:   4.9300
- 16-MAR-1950 12 / 51:   3.5100
- 16-APR-1950 00 / 52:   4.5400
- 16-MAY-1950 12 / 53:   1.6000
- 16-JUN-1950 00 / 54:   1.3300
- 16-JUL-1950 12 / 55:   0.9000
- 16-AUG-1950 12 / 56:  -0.4500
- 16-SEP-1950 00 / 57:   3.5700
- 16-OCT-1950 12 / 58:  -8.7500
- 16-NOV-1950 00 / 59:  -5.2400
- 16-DEC-1950 12 / 60:  -6.4700
- 
-let tsorted_indices = sortl(vwnd)
-let tsorted_wnd = samplel(vwnd, tsorted_indices[i=90,j=65])
-list tsorted_indices, tsorted_wnd
-             DATA SET: ./coads_vwnd.cdf
-             T: 0.5 to 61
-             LONGITUDE: 161W
-             LATITUDE: 39N
- Column  1: TSORTED_INDICES is SORTL(VWND)
- Column  2: TSORTED_WND is SAMPLEL(VWND, TSORTED_INDICES[I=90,J=65])
-        TSORTED_IN  TSORTED_WND
-1    /  1:  58.0000  -8.7500
-2    /  2:  60.0000  -6.4700
-3    /  3:  33.0000  -5.8000
-4    /  4:  59.0000  -5.2400
-5    /  5:  43.0000  -1.3000
-6    /  6:  38.0000  -1.0800
-7    /  7:  47.0000  -0.9400
-8    /  8:  48.0000  -0.5200
-9    /  9:  56.0000  -0.4500
-10   / 10:  41.0000   0.0000
-11   / 11:  16.0000   0.0000
-12   / 12:  34.0000   0.4500
-13   / 13:  46.0000   0.7100
-14   / 14:  40.0000   0.8300
-15   / 15:  55.0000   0.9000
-16   / 16:  54.0000   1.3300
-17   / 17:  44.0000   1.3800
-18   / 18:  49.0000   1.5800
-19   / 19:  53.0000   1.6000
-20   / 20:  39.0000   2.0700
-21   / 21:  51.0000   3.5100
-22   / 22:  57.0000   3.5700
-23   / 23:  37.0000   4.2300
-24   / 24:  25.0000   4.5000
-25   / 25:  52.0000   4.5400
-26   / 26:  30.0000   4.7000
-27   / 27:  50.0000   4.9300
-28   / 28:  42.0000   5.3700
-29   / 29:  45.0000   5.9200
-30   / 30:  21.0000   6.6000
-31   / 31:  12.0000  12.3500
-32   / 32:     ....     ....
-33   / 33:     ....     ....
-34   / 34:     ....     ....
-35   / 35:     ....     ....
-36   / 36:     ....     ....
-37   / 37:     ....     ....
-38   / 38:     ....     ....
-39   / 39:     ....     ....
-40   / 40:     ....     ....
-41   / 41:     ....     ....
-42   / 42:     ....     ....
-43   / 43:     ....     ....
-44   / 44:     ....     ....
-45   / 45:     ....     ....
-46   / 46:     ....     ....
-47   / 47:     ....     ....
-48   / 48:     ....     ....
-49   / 49:     ....     ....
-50   / 50:     ....     ....
-51   / 51:     ....     ....
-52   / 52:     ....     ....
-53   / 53:     ....     ....
-54   / 54:     ....     ....
-55   / 55:     ....     ....
-56   / 56:     ....     ....
-57   / 57:     ....     ....
-58   / 58:     ....     ....
-59   / 59:     ....     ....
-60   / 60:     ....     ....
- 
-let len = tsorted_wnd[l=@ngd]
-list len
-             VARIABLE : TSORTED_WND[L=@NGD]
-             FILENAME : coads_vwnd.cdf
-             LONGITUDE: 161W
-             LATITUDE : 39N
-             T        : 0.5 to 61
-          31.0000
- 
-! deliberately sample at invalid points
-! Note: in MOST circumstances this would simply result in a result of
-! missing values, however, the underlying data set has an "enhanced heading"
-! so that these indices appear to be valid
-SET MODE ignore_error
-let tsorted_indices = sortl(vwnd) + 90
-let tsorted_wnd = samplel(vwnd, tsorted_indices[i=90,j=65])
-list tsorted_indices, tsorted_wnd
-SET MODE/LAST ignore_error
- 
-! deliberately sample at invalid points that are outside of the axis range
-let tsorted_indices = sortl(vwnd) + 999
-let tsorted_wnd = samplel(vwnd, tsorted_indices[i=90,j=65])
-stat tsorted_wnd
- 
-             SAMPLEL(VWND, TSORTED_INDICES[I=90,J=65])
-             LONGITUDE: 161W
-             LATITUDE: 39N
-             Z:  N/A
-             T: 0.5 to 61
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_vwnd.cdf
- 
- Total # of data points: 60 (1*1*1*60*1*1)
- # flagged as bad  data: 60
- 
- 
-go bench_samplexy.jnl
- ! NOAA/PMEL TMAP
- ! Program FERRET (debug)
- ! Version 5.00 - 04/12/99
- ! 13-Apr-99 14:36
- 
-use coads_climatology
- 
-let asst = samplexy(sst, {171,173,305}, {-1,1,13})
-list asst
-             VARIABLE : SAMPLEXY(SST, {171,173,305}, {-1,1,13})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 by 3 points (X-TIME)
-                      1        2        3     
-                      1        2        3
- 16-JAN      / 1:  29.0045  27.8955  26.7131
- 15-FEB      / 2:  28.5508  28.2499  26.3700
- 17-MAR      / 3:  28.8764  28.4775  26.3180
- 
-let asst = samplexy(sst, {171,172,305}, {-1,1,13})
-list asst
-             VARIABLE : SAMPLEXY(SST, {171,172,305}, {-1,1,13})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 by 3 points (X-TIME)
-                      1        2        3     
-                      1        2        3
- 16-JAN      / 1:  29.0045  28.2696  26.7131
- 15-FEB      / 2:  28.5508  28.4857  26.3700
- 17-MAR      / 3:  28.8764  28.6147  26.3180
- 
-go bench_samplet_date.jnl
-!
-!  Data coads_vwnd in ~kobrien/FERRET/benc
-!
-use coads_vwnd
-set region/x=161w/y=39n
- 
-let my_vwnd = samplet_date(vwnd,1950,2,0,0,0,0)
-list my_vwnd
-             VARIABLE : SAMPLET_DATE(VWND,1950,2,0,0,0,0)
-             FILENAME : coads_vwnd.cdf
-             LONGITUDE: 161W
-             LATITUDE : 39N
-             T        : 1
-          3.22661
- 
- 
-let my_vwnd = samplet_date(vwnd,{1950,1950},{5,8},{16,15},{12,12},{0,0},{0,0})
-list my_vwnd
-             VARIABLE : SAMPLET_DATE(VWND,{1950,1950},{5,8},{16,15},{12,12},{0,0},{0,0})
-             FILENAME : coads_vwnd.cdf
-             SUBSET   : 2 points (T)
-             LONGITUDE: 161W
-             LATITUDE : 39N
-            161W    
-             90
- 1   / 1:  1.60000
- 2   / 2: -0.40645
- 
- 
- 
- 
-GO bn_reset
-cancel mode verify
-go bench_eof
-! Benchmark for EOF functions
-! Statically linked as of ferret V5.34
-! Ansley Manke  8/2/2001
- 
-! In version 6.8 (double precision), the old eof functions are not available
-! Run the script calling eofsvd functions and exit, leaving old eof function calls.
- 
- 
-! Test the bail-out from eof_space, eof_stat, eof_tfunc
-set mode ignore
- 
-USE coads_climatology
-LET eofxyfcn = eof_space(sst[X=27w:23w,Y=1S:3N], 1.)
-list/l=1:2 eofxyfcn
- 
-LET eofstat = eof_stat(sst[X=27w:23w,Y=1S:3N], 1.)
-list/i=1:3/j=1:3 eofstat
- 
-LET eoftime = eof_tfunc(SST[X=27W:23W,Y=1S:3N], 1.)
-list/i=1:2 eoftime
- 
-set mode/last ignore
- 
-! Test functions eofsvd*
- 
-USE coads_climatology
-LET eofxyfcn = eofsvd_space(sst[X=27w:23w,Y=1S:3N])
-list/l=1:2 eofxyfcn
-             VARIABLE : EOFSVD_SPACE(SST[X=27W:23W,Y=1S:3N])
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 by 3 by 2 points (LONGITUDE-LATITUDE-T)
-               27W       25W       23W     
-               157       158       159
- ---- L:1 T:   1
- 3N   / 47: -0.175348 -0.178392 -0.309239
- 1N   / 46: -0.308620 -0.280936 -0.291017
- 1S   / 45: -0.271470 -0.497559 -0.595639
- ---- L:2 T:   2
- 3N   / 47:  0.052492  0.002775  0.124133
- 1N   / 46: -0.064590 -0.057180  0.069549
- 1S   / 45: -0.121296 -0.039745  0.034207
- 
-LET eofstat = eofsvd_stat(sst[X=27w:23w,Y=1S:3N])
-list/i=1:3/j=1:3 eofstat
-             VARIABLE : EOFSVD_STAT(SST[X=27W:23W,Y=1S:3N])
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 by 3 points (X-Y)
-              1        2        3     
-              1        2        3
- 1   / 1:   9.0000   9.0000   9.0000
- 2   / 2:  95.8009   4.1991   0.0000
- 3   / 3:   1.0931   0.0479   0.0000
- 
-LET eoftime = eofsvd_tfunc(SST[X=27W:23W,Y=1S:3N])
-list/i=1:2 eoftime
-             VARIABLE : EOFSVD_TFUNC(SST[X=27W:23W,Y=1S:3N])
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 2 by 3 points (X-TIME)
-                      1        2     
-                      1        2
- 16-JAN      / 1:  1.17837  0.78194
- 15-FEB      / 2:  0.08800 -1.41147
- 17-MAR      / 3: -1.26637  0.62953
- 
- 
-exit/script
- 
-GO bn_reset
-cancel mode verify
-go bench_compress_by
-let mask = {1,,1,,1} + 0*L[l=101:102] + 0*K[k=10:11]
-list compressi_by({10,20,30,40,50},mask)
-             VARIABLE : COMPRESSI_BY({10,20,30,40,50},MASK)
-             SUBSET   : 5 by 2 by 2 points (X-Z-T)
-                1        2        3        4        5     
-                1        2        3        4        5
- ---- L:101 T:   101
- 10   / 10:  10.0000  30.0000  50.0000     ....     ....
- 11   / 11:  10.0000  30.0000  50.0000     ....     ....
- ---- L:102 T:   102
- 10   / 10:  10.0000  30.0000  50.0000     ....     ....
- 11   / 11:  10.0000  30.0000  50.0000     ....     ....
-let mask2 = IF J[j=201:202] eq 201 then mask else 1/(MISSING(mask,4)-1)
-list compressi_by({10,20,30,40,50},mask2)
-             VARIABLE : COMPRESSI_BY({10,20,30,40,50},MASK2)
-             SUBSET   : 5 by 2 by 2 by 2 points (X-Y-Z-T)
-                  1        2        3        4        5     
-                  1        2        3        4        5
- ---- L:101 T:   101
- ---- K:10 Z:   10
- 201   / 201:  10.0000  30.0000  50.0000     ....     ....
- 202   / 202:  20.0000  40.0000     ....     ....     ....
- ---- K:11 Z:   11
- 201   / 201:  10.0000  30.0000  50.0000     ....     ....
- 202   / 202:  20.0000  40.0000     ....     ....     ....
- ---- L:102 T:   102
- ---- K:10 Z:   10
- 201   / 201:  10.0000  30.0000  50.0000     ....     ....
- 202   / 202:  20.0000  40.0000     ....     ....     ....
- ---- K:11 Z:   11
- 201   / 201:  10.0000  30.0000  50.0000     ....     ....
- 202   / 202:  20.0000  40.0000     ....     ....     ....
- 
- 
-GO bn_reset
-cancel mode verify
-go bench_compress
- ! NOAA/PMEL TMAP
- ! Program FERRET
- ! Version 5.21 - 06/15/00
- ! 10-Jul-00 10:39
- 
-! V550 *sh* 11/02 - documentation change only reflecting subspan modulo
- 
-use coads_climatology
-! Note that L=5 lies outside the time axis range of 3 points
-! As of V550 this triggers a subspan modulo calculation (correctly)
-list sst[l=5,j=66,i=125:131]
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 7 points (LONGITUDE)
-             LATITUDE : 41N
-             TIME     : JAN
-               41N 
-               66
- 91W   / 125:....
- 89W   / 126:....
- 87W   / 127:....
- 85W   / 128:....
- 83W   / 129:....
- 81W   / 130:....
- 79W   / 131:....
-list compressi(sst[l=5,j=66,i=125:131])
-             VARIABLE : COMPRESSI(SST[L=5,J=66,I=125:131])
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 7 points (X)
-             LATITUDE : 41N
-             TIME     : JAN
-           41N 
-           66
- 1   / 1:....
- 2   / 2:....
- 3   / 3:....
- 4   / 4:....
- 5   / 5:....
- 6   / 6:....
- 7   / 7:....
- 
-list sst[l=5,j=63:73,i=125]
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 11 points (LATITUDE)
-             LONGITUDE: 91W
-             TIME     : JAN
-                91W    
-               125
- 55N   / 73:     ....
- 53N   / 72:     ....
- 51N   / 71:     ....
- 49N   / 70:     ....
- 47N   / 69:   2.6969
- 45N   / 68:  13.3500
- 43N   / 67:     ....
- 41N   / 66:     ....
- 39N   / 65:     ....
- 37N   / 64:     ....
- 35N   / 63:     ....
-list compressj(sst[l=5,j=63:73,i=125])
-             VARIABLE : COMPRESSJ(SST[L=5,J=63:73,I=125])
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 11 points (Y)
-             LONGITUDE: 91W
-             TIME     : JAN
-               91W    
-              125
- 1    /  1:  13.3500
- 2    /  2:   2.6969
- 3    /  3:     ....
- 4    /  4:     ....
- 5    /  5:     ....
- 6    /  6:     ....
- 7    /  7:     ....
- 8    /  8:     ....
- 9    /  9:     ....
- 10   / 10:     ....
- 11   / 11:     ....
- 
-list sst[j=67,i=125]
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 points (TIME)
-             LONGITUDE: 91W
-             LATITUDE : 43N
-                   91W 
-                  125
- 16-JAN      / 1:....
- 15-FEB      / 2:....
- 17-MAR      / 3:....
-list compressl(sst[j=67,i=125])
-             VARIABLE : COMPRESSL(SST[J=67,I=125])
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 points (T)
-             LONGITUDE: 91W
-             LATITUDE : 43N
-           91W 
-          125
- 1   / 1:....
- 2   / 2:....
- 3   / 3:....
- 
- 
-use gt4d011	! as in bench_sortk
-let a = if temp le 27 then temp
-list a[i=91,j=35,l=1]
-             VARIABLE : IF TEMP LE 27 THEN TEMP
-             FILENAME : gt4d011.cdf
-             SUBSET   : 10 points (DEPTH (m))
-             LONGITUDE: 139.5W
-             LATITUDE : 3.5S
-             TIME     : AUG-1982
-               139.5W  
-                91
- 5     /  1:     ....
- 15    /  2:     ....
- 25    /  3:     ....
- 35    /  4:     ....
- 45    /  5:     ....
- 55    /  6:     ....
- 65    /  7:  26.3984
- 75    /  8:  26.0190
- 85    /  9:  25.6663
- 95    / 10:  25.3181
-list compressk(a[i=91,j=35,l=1])
-             VARIABLE : COMPRESSK(A[I=91,J=35,L=1])
-             FILENAME : gt4d011.cdf
-             SUBSET   : 10 points (Z)
-             LONGITUDE: 139.5W
-             LATITUDE : 3.5S
-             TIME     : AUG-1982
-              139.5W  
-               91
- 1    /  1:  26.3984
- 2    /  2:  26.0190
- 3    /  3:  25.6663
- 4    /  4:  25.3181
- 5    /  5:     ....
- 6    /  6:     ....
- 7    /  7:     ....
- 8    /  8:     ....
- 9    /  9:     ....
- 10   / 10:     ....
- 
-GO bn_reset
-cancel mode verify
-GO bench_internal_string_functions
-! test internal string functions:
-!       strlen
-!	upcase
-!	dncase
-!	strindex
-!	strrindex
-!	substring
-!	strcat
-!	float  - return float value from string
-!
-!	*kob*  6/02   Ferret v5.41
- 
- 
-! STRLEN
-! Result should be 35
-list strlen("This string should be 35 characters")
-             VARIABLE : STRLEN("This string should be 35 characters")
-          35.0000
-! Result should be 0
-list strlen("")
-             VARIABLE : STRLEN("")
-          0.000000
- 
- 
-! UPCASE
-! Result should be in all caps
-list upcase ("this String sHould be iN aLl Caps")
-             VARIABLE : UPCASE ("this String sHould be iN aLl Caps")
-        "THIS STRING SHOULD BE IN ALL CAPS"
- 
-! DNCASE
-! Result should be all lower case
-list dncase ("this String sHould be iN loWer caSE")
-             VARIABLE : DNCASE ("this String sHould be iN loWer caSE")
-        "this string should be in lower case"
- 
-! STRINDEX
-! Find first occurence string "fun" in longer string
-! Result should be 11
-list strindex("Ferret is fun for the whole family - real fun, family fun", "fun");
-             VARIABLE : STRINDEX("Ferret is fun for the whole family - real fun, family fun", "fun")
-          11.0000
- 
-! STRRINDEX
-! Find last occurence string "fun" in longer string
-! Result should be 55
-list strrindex("Ferret is fun for the whole family - real fun, family fun", "fun");
-             VARIABLE : STRRINDEX("Ferret is fun for the whole family - real fun, family fun", "fun")
-          55.0000
- 
-! SUBSTRING
-! Clip a substring from a string - result should be "ferret"
-list substring("Have you fed your ferret today", 19, 6)
-             VARIABLE : SUBSTRING("Have you fed your ferret today", 19, 6)
-        "ferret"
-! Ask for offset greater than string lenght - result should be ""
-list substring("Have you fed your ferret today", 50, 6)
-             VARIABLE : SUBSTRING("Have you fed your ferret today", 50, 6)
-        ""
-! Ask for more chars than in string - result should be "ferret today"
-list substring("Have you fed your ferret today", 19, 60)
-             VARIABLE : SUBSTRING("Have you fed your ferret today", 19, 60)
-        "ferret today"
- 
- 
-! STRCAT
-! concatenate two strings
-list strcat ("All work and no play", " makes Ferret a dull boy")
-             VARIABLE : STRCAT ("All work and no play", " makes Ferret a dull boy")
-        "All work and no play makes Ferret a dull boy"
- 
- 
-! FLOAT
-! return float value - result should be 7.85
-! list (strfloat("3.14")*10)/4  ! crashes on linux rh5 gfortran...
-list .25*strfloat("3.14")
-             VARIABLE : .25*STRFLOAT("3.14")
-          0.785000
- 
- 
-! the below are deliberate errors for incorrect argument detection
-set mode ignore
-list strindex("Ferret is fun for the whole family - real family fun");
-list strrindex("Ferret is fun for the whole family - real family fun");
-list substring("Have you fed your ferret today", 19)
-list substring("Have you fed your ferret today")
-list strcat ("All work and no play")
- 
-set mode/last ignore
- 
-! 4/2006 these functions now are also internally linked
- 
-GO bn_reset
-cancel mode verify
-GO bn_ef_bench_extrema.jnl
-! bench_extrema.jnl
-!  benchmark tests for findhi and findlo
-!  external functions; installed as .so files
-!  Ferret version 5.4
- 
-! ACM 28-Jan-02
- 
-use coads_climatology
-set region/l=1/x=100:360/y=-20:60
- 
-list/x=1:10 findhi(sst,4,4)
-             VARIABLE : FINDHI(SST,4,4)
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 10 by 3 points (X-Y)
-             TIME     : JAN
-              1        2        3        4        5        6        7        8        9       10     
-              1        2        3        4        5        6        7        8        9       10
- 1   / 1:  335.000  359.000  269.000   57.000  195.000   73.000  101.000  209.000   87.000  167.000
- 2   / 2:  -69.000  -63.000  -25.000  -13.000  -13.000  -11.000  -11.000  -11.000   -9.000   -9.000
- 3   / 3:    0.340    0.863   23.271   28.382   29.675   28.470   28.341   28.881   28.429   29.847
-list/x=1:10 findlo(sst,4,4)
-             VARIABLE : FINDLO(SST,4,4)
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 10 by 3 points (X-Y)
-             TIME     : JAN
-              1        2        3        4        5        6        7        8        9       10     
-              1        2        3        4        5        6        7        8        9       10
- 1   / 1:  331.000  365.000  147.000   79.000  119.000   65.000   83.000  125.000  157.000  237.000
- 2   / 2:  -65.000  -61.000  -59.000  -53.000   -9.000   -7.000   -7.000   -7.000   -3.000   -1.000
- 3   / 3:   -0.766   -0.063    0.400    1.607   28.333   27.646   27.757   28.387   28.721   23.888
- 
-let a = findlo(sst,4,4)
-list a[i=@ngd]
-             VARIABLE : FINDLO(SST,4,4) (# of points)
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 points (Y)
-             X        : 0.5 to 16201 (number of valid)
-             TIME     : JAN
- 1   / 1:  13.0000
- 2   / 2:  13.0000
- 3   / 3:  13.0000
- 
-let a = findlo(sst,2,2)
-list a[i=@ngd]
-             VARIABLE : FINDLO(SST,2,2) (# of points)
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 points (Y)
-             X        : 0.5 to 16201 (number of valid)
-             TIME     : JAN
- 1   / 1:  113.000
- 2   / 2:  113.000
- 3   / 3:  113.000
- 
-GO bn_reset
-cancel mode verify
-GO bn_ef_err541_date_delim.jnl
-! err541_date_delim.jnl
-! Fix errors occurring with delimted reads - four digit years were
-!   being accuratly calculated.
-!
-! *kob* 11/02
- 
-set data/var="date1"/type="date,date"/form=delim dates_bug.dat
-! first date is 12-27-1999 which is unacceptable so should be missing values
-list days1900toymdhms(date1)
-             VARIABLE : DAYS1900TOYMDHMS(DATE1)
-             FILENAME : dates_bug.dat
-             SUBSET   : 6 by 6 points (X-Z)
-              1        2        3        4        5        6     
-              1        2        3        4        5        6
- 1   / 1:     ....  1999.00  2001.00  2001.00  2003.00   999.00
- 2   / 2:     ....     7.00     7.00     7.00     7.00     8.00
- 3   / 3:     ....    28.00    29.00    30.00    31.00     1.00
- 4   / 4:     ....     0.00     0.00     0.00     0.00     0.00
- 5   / 5:     ....     0.00     0.00     0.00     0.00     0.00
- 6   / 6:     ....     0.00     0.00     0.00     0.00     0.00
- 
- 
-! now test accuracy of dates
-DEFINE AXIS/T0=1-jan-1900/T=1-jan-1900:1-jan-2005:1/units=days ttt
- 
-let date_check = date1[i=2] - T[gt=ttt,t="28-jul-1999"]
-if `date_check` then say **** DELIMTED READ DATE CHECK FAILED
- !-> if 0 then say **** DELIMTED READ DATE CHECK FAILED
-let date_check = date1[i=3] - T[gt=ttt,t="29-jul-2001"]
-if `date_check` then say **** DELIMTED READ DATE CHECK FAILED
- !-> if 0 then say **** DELIMTED READ DATE CHECK FAILED
-let date_check = date1[i=4] - T[gt=ttt,t="30-jul-2001"]
-if `date_check` then say **** DELIMTED READ DATE CHECK FAILED
- !-> if 0 then say **** DELIMTED READ DATE CHECK FAILED
-let date_check = date1[i=5] - T[gt=ttt,t="31-jul-2003"]
-if `date_check` then say **** DELIMTED READ DATE CHECK FAILED
- !-> if 0 then say **** DELIMTED READ DATE CHECK FAILED
- 
- 
- 
-! now test eurodate format
-can data/all
-set data/var="date1"/type="eurodate,eurodate"/form=delim euro_dates_bug.dat
-! first date is 27-07-1999 which is unacceptable so should be missing values
-list days1900toymdhms(date1)
-             VARIABLE : DAYS1900TOYMDHMS(DATE1)
-             FILENAME : euro_dates_bug.dat
-             SUBSET   : 5 by 6 points (X-Z)
-              1        2        3        4        5     
-              1        2        3        4        5
- 1   / 1:     ....  2001.00  2001.00  2003.00   999.00
- 2   / 2:     ....     7.00     7.00     7.00     8.00
- 3   / 3:     ....    28.00    30.00    31.00     1.00
- 4   / 4:     ....     0.00     0.00     0.00     0.00
- 5   / 5:     ....     0.00     0.00     0.00     0.00
- 6   / 6:     ....     0.00     0.00     0.00     0.00
- 
-!test accuracy of eurodates
-let date_check = date1[i=2] - T[gt=ttt,t="28-jul-2001"]
-if `date_check` then say **** DELIMTED READ DATE CHECK FAILED
- !-> if 0 then say **** DELIMTED READ DATE CHECK FAILED
-let date_check = date1[i=3] - T[gt=ttt,t="30-jul-2001"]
-if `date_check` then say **** DELIMTED READ DATE CHECK FAILED
- !-> if 0 then say **** DELIMTED READ DATE CHECK FAILED
-let date_check = date1[i=4] - T[gt=ttt,t="31-jul-2003"]
-if `date_check` then say **** DELIMTED READ DATE CHECK FAILED
- !-> if 0 then say **** DELIMTED READ DATE CHECK FAILED
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_ef_zaxr_fcns.jnl
-! bn_ef_zaxr_functions.jnl
-! 04-apr-05 *acm* move to tests of shared-obj efs.
-!
-! bn_zaxr_functions.jnl
-! Compare the various zaxreplace functions
- 
- 
-! Define some original source data:
- 
-let ddat = zsequence({1126,1136,1146,1156,1166})
-let cycle = zsequence({346, 347, 349, 350, 351})
- 
-! Put that data on the following original source grid:
- 
-Define axis/z=10:50:10 zaxis_orig
- 
-let cycle_orig = cycle[gz=zaxis_orig at asn]
-let ddat_orig = ddat[gz=zaxis_orig at asn]
- 
-! Define a destination axis
- 
-define axis/z=345:353:1 zaxis_des
-let dummy = z[GZ=zaxis_des]
- 
-let ddat_a = zaxreplace(ddat_orig, cycle_orig, dummy)
- 
-let ddat_b = zaxreplace_avg(ddat_orig, cycle_orig, dummy)
- 
-let ddat_c = zaxreplace_bin(ddat_orig, cycle_orig, dummy)
- 
-! Compare result of zaxreplace, zaxreplace_avg, zaxreplace_bin
-list ddat_a, ddat_b, ddat_c
-             Z: 344.5 to 353.5
- Column  1: DDAT_A is ZAXREPLACE(DDAT_ORIG, CYCLE_ORIG, DUMMY)
- Column  2: DDAT_B is ZAXREPLACE_AVG(DDAT_ORIG, CYCLE_ORIG, DUMMY)
- Column  3: DDAT_C is ZAXREPLACE_BIN(DDAT_ORIG, CYCLE_ORIG, DUMMY)
-            DDAT_A   DDAT_B   DDAT_C
-345   / 1:     ....     ....     ....
-346   / 2:     ....  1126.00  1126.00
-347   / 3:  1136.00  1136.00  1136.00
-348   / 4:  1141.00  1141.00     ....
-349   / 5:  1146.00  1146.00  1146.00
-350   / 6:  1156.00  1156.00  1156.00
-351   / 7:  1166.00  1166.00  1166.00
-352   / 8:     ....     ....     ....
-353   / 9:     ....     ....     ....
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_ef_curv_to_rect.jnl
-! bn_ef_curv_to_rect.jnl
-! Test of curvilinear to rectilinear regridding
-! Uses shared-object external functions
-! ACM 5/4/05
- 
-show func curv*
-CURV_RANGE(LONGITUDES,LATITUDES,xrange_lo,xrange_hi,yrange_lo,yrange_hi,modulo flag for X coordinates)
-    find i,j bounds for subset of a variable in curvilinear coordinates
-    LONGITUDES: 2-D longitudes of curvilinear grid
-    LATITUDES: 2-D latitudes of curvilinear grid
-    xrange_lo: Minimum of longitude range
-    xrange_hi: Maximum of longitude range
-    yrange_lo: Minimum of latitude range
-    yrange_hi: Maximum of latitude range
-    modulo flag for X coordinates: 1= X modulo; 0= X not modulo
-CURV_TO_RECT(V,mapping)
-    Apply mapping to regrid from curvilinear to rectangular grid
-    V: Variable to regrid, on curvilinear grid V(x,y,z,t,e,f)
-    mapping: mapping computed by curv_to_rect_MAP
-CURV_TO_RECT_MAP(lon_in,lat_in,grid_out,radius)
-    Compute mapping for regridding: curvilinear to rectangular grid.
-    lon_in: Source grid longitudes (2-D) (degrees)
-    lat_in: Source grid latitudes (2-D) (degrees)
-    grid_out: Any variable on destination Longitude-Latitude grid, Lon and Lat (degrees)
-    radius: Source points falling within radius are included in mapping to destination point (degrees)
- 
-use tripolar_subset.nc
-shade ht, geolon_vert_t, geolat_vert_t
- 
-! Define output grid
- 
-def axis/x=-300:100:10 xout
-def axis/y=60:90:3 yout
-let a = x[gx=xout] + y[gy=yout]
- 
-! Define mapping
-let my_map = curv_to_rect_map (geolon_vert_t, geolat_vert_t, a, 10)
- 
-! apply mapping
-let mapped = curv_to_rect (ht, my_map)
-shade mapped
-stat mapped
- 
-             CURV_TO_RECT (HT, MY_MAP)
-             X: -305 to 105
-             Y: 58.5 to 91.5
-             Z:  N/A
-             T:  N/A
-             E:  N/A
-             F:  N/A
-             DATA SET: ./tripolar_subset.nc
- 
- Total # of data points: 451 (41*11*1*1*1*1)
- # flagged as bad  data: 79
- Minimum value: 0
- Maximum value: 4298.8
- Mean    value: 963.12 (unweighted average)
- Standard deviation: 1380.9
- 
- 
-! tax_ functions
-use gt4d011
- 
-list/L=15:20 tax_datestring(t[gt=temp],temp,"hour")
-             VARIABLE : TAX_DATESTRING(T[GT=TEMP],TEMP,"hour")
-             FILENAME : gt4d011.cdf
-             SUBSET   : 6 points (TIME)
- 10-NOV-1982 16 / 15:"10-NOV-1982 16"
- 16-NOV-1982 18 / 16:"16-NOV-1982 18"
- 22-NOV-1982 20 / 17:"22-NOV-1982 20"
- 28-NOV-1982 22 / 18:"28-NOV-1982 22"
- 05-DEC-1982 00 / 19:"05-DEC-1982 00"
- 11-DEC-1982 02 / 20:"11-DEC-1982 02"
-list/L=15:20 tax_datestring(t[gt=temp],temp,"day")
-             VARIABLE : TAX_DATESTRING(T[GT=TEMP],TEMP,"day")
-             FILENAME : gt4d011.cdf
-             SUBSET   : 6 points (TIME)
- 10-NOV-1982 16 / 15:"10-NOV-1982"
- 16-NOV-1982 18 / 16:"16-NOV-1982"
- 22-NOV-1982 20 / 17:"22-NOV-1982"
- 28-NOV-1982 22 / 18:"28-NOV-1982"
- 05-DEC-1982 00 / 19:"05-DEC-1982"
- 11-DEC-1982 02 / 20:"11-DEC-1982"
-list/L=15:20 tax_dayfrac(t[gt=temp],temp), tax_dayfrac(t[gt=temp],temp)*24.
-             DATA SET: ./gt4d011.cdf
-             TIME: NOV-1982 to DEC-1982
- Column  1: TAX_DAYFRAC(T[GT=TEMP],TEMP)
- Column  2: EX#2 is TAX_DAYFRAC(T[GT=TEMP],TEMP)*24.
-                  (C001,V001)    EX#2
-10-NOV-1982 16 / 15:  0.666667  16.0000
-16-NOV-1982 18 / 16:  0.750000  18.0000
-22-NOV-1982 20 / 17:  0.833333  20.0000
-28-NOV-1982 22 / 18:  0.916667  22.0000
-05-DEC-1982 00 / 19:  0.000000   0.0000
-11-DEC-1982 02 / 20:  0.083333   2.0000
-list/L=15:20 tax_day(t[gt=temp],temp), tax_jday(t[gt=temp],temp)
-             DATA SET: ./gt4d011.cdf
-             TIME: NOV-1982 to DEC-1982
- Column  1: TAX_DAY(T[GT=TEMP],TEMP)
- Column  2: TAX_JDAY(T[GT=TEMP],TEMP)
-                 (C001,V001)  (C001,V009)
-10-NOV-1982 16 / 15:  10.0000  314.000
-16-NOV-1982 18 / 16:  16.0000  320.000
-22-NOV-1982 20 / 17:  22.0000  326.000
-28-NOV-1982 22 / 18:  28.0000  332.000
-05-DEC-1982 00 / 19:   5.0000  339.000
-11-DEC-1982 02 / 20:  11.0000  345.000
-list/L=15:20 tax_month(t[gt=temp],temp), tax_yearfrac(t[gt=temp],temp)
-             DATA SET: ./gt4d011.cdf
-             TIME: NOV-1982 to DEC-1982
- Column  1: TAX_MONTH(T[GT=TEMP],TEMP)
- Column  2: TAX_YEARFRAC(T[GT=TEMP],TEMP)
-                 (C001,V001)  (C001,V009)
-10-NOV-1982 16 / 15:  11.0000  0.860274
-16-NOV-1982 18 / 16:  11.0000  0.876712
-22-NOV-1982 20 / 17:  11.0000  0.893151
-28-NOV-1982 22 / 18:  11.0000  0.909589
-05-DEC-1982 00 / 19:  12.0000  0.928767
-11-DEC-1982 02 / 20:  12.0000  0.945205
-list/L=15:20 tax_year(t[gt=temp],temp)
-             VARIABLE : TAX_YEAR(T[GT=TEMP],TEMP)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 6 points (TIME)
- 10-NOV-1982 16 / 15:  1982.00
- 16-NOV-1982 18 / 16:  1982.00
- 22-NOV-1982 20 / 17:  1982.00
- 28-NOV-1982 22 / 18:  1982.00
- 05-DEC-1982 00 / 19:  1982.00
- 11-DEC-1982 02 / 20:  1982.00
-list tax_units(temp)
-             VARIABLE : TAX_UNITS(TEMP)
-             FILENAME : gt4d011.cdf
-          3600.00
- 
-! fill_xy
-can data/all
-use coads_climatology
-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)
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_modulo_strides
-! bn_modulo_strides.jnl
-! 6/01 *sh*
-! exercise the combination of modulo and netCDF strides IO
- 
-define axis/modulo/x=1:20:1 x20
-LET a = X[gx=x20]
-LET str_raw = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t"}
-!list b_raw
-let str = str_raw[gx=x20 at asn]
-save/clobber/file=test_modulo.cdf a, str
-cancel variable a, str
-use test_modulo
- 
-! verify that both single IO and double IO cases are doing rdstride
-cancel memory/all
-set mode diag
-let b =  a[i=18:23:2]
-list/nohead b            ! using rdstride
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid B        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G022)          (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
- 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    B        C:  6 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: A --> (G022)           @XACT
- strip moduloing A on X axis:    18    22 dset:   1
- rdstride A        C: 11 dset:   1 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing A on X axis:    18    20 dset:   1
- -DELETE A        M:322 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
- 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
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: A --> (G023)           @XACT
- strip moduloing A on X axis:     1    25 dset:   1
- reading A        M:325 dset:   1 I:    1   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing A on X axis:     1    20 dset:   1
- regrid  A        M:341 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- 1    / 1:   1.0000
- 4    / 2:   4.0000
- 7    / 3:   7.0000
- 10   / 4:  10.0000
- 13   / 5:  13.0000
- 16   / 6:  16.0000
- 19   / 7:  19.0000
- 22   / 8:   2.0000
- 25   / 9:   5.0000
-list/nohead b            ! reuse of cached result
- dealloc  dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M:341 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    B        C:  6 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: A --> (G022)           @XACT
- strip moduloing A on X axis:    18    22 dset:   1
- rdstride A        C: 11 dset:   1 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing A on X axis:    18    20 dset:   1
- -DELETE A        M:341 dset:   1 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- rdstride A        C: 11 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing A on X axis:     2     2 dset:   1
- -DELETE A        M:341 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  A        M:341 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M:339 dset:   1 I:   18   22  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- 18   / 1:  18.0000
- 20   / 2:  20.0000
- 22   / 3:   2.0000
-set mode/last diag
- 
-! less than one modulo cycle -- grab in 2 pieces
-! ... delta(2) a factor of npts(20)
-list/nohead a[i=18:23:2]
- 18   / 1:  18.0000
- 20   / 2:  20.0000
- 22   / 3:   2.0000
-list/nohead a[i=19:23:2]
- 19   / 1:  19.0000
- 21   / 2:   1.0000
- 23   / 3:   3.0000
-list/nohead a[i=20:23:2]
- 20   / 1:  20.0000
- 22   / 2:   2.0000
-list/nohead a[i=18:24:2]
- 18   / 1:  18.0000
- 20   / 2:  20.0000
- 22   / 3:   2.0000
- 24   / 4:   4.0000
-list/nohead a[i=19:24:2]
- 19   / 1:  19.0000
- 21   / 2:   1.0000
- 23   / 3:   3.0000
-list/nohead a[i=20:24:2]
- 20   / 1:  20.0000
- 22   / 2:   2.0000
- 24   / 3:   4.0000
- 
-! ... delta(3) not a factor of npts(20)
-list/nohead a[i=17:23:3]
- 17   / 1:  17.0000
- 20   / 2:  20.0000
- 23   / 3:   3.0000
-list/nohead a[i=18:23:3]
- 18   / 1:  18.0000
- 21   / 2:   1.0000
-list/nohead a[i=19:23:3]
- 19   / 1:  19.0000
- 22   / 2:   2.0000
-list/nohead a[i=20:23:3]
- 20   / 1:  20.0000
- 23   / 2:   3.0000
-list/nohead a[i=17:24:3]
- 17   / 1:  17.0000
- 20   / 2:  20.0000
- 23   / 3:   3.0000
-list/nohead a[i=18:24:3]
- 18   / 1:  18.0000
- 21   / 2:   1.0000
- 24   / 3:   4.0000
-list/nohead a[i=19:24:3]
- 19   / 1:  19.0000
- 22   / 2:   2.0000
-list/nohead a[i=20:24:3]
- 20   / 1:  20.0000
- 23   / 2:   3.0000
-list/nohead a[i=17:25:3]
- 17   / 1:  17.0000
- 20   / 2:  20.0000
- 23   / 3:   3.0000
-list/nohead a[i=18:25:3]
- 18   / 1:  18.0000
- 21   / 2:   1.0000
- 24   / 3:   4.0000
-list/nohead a[i=19:25:3]
- 19   / 1:  19.0000
- 22   / 2:   2.0000
- 25   / 3:   5.0000
-list/nohead a[i=20:25:3]
- 20   / 1:  20.0000
- 23   / 2:   3.0000
- 
-! more than one modulo cycle -- grab in one piece
-list/nohead a[i=1:45:5]
- 1    / 1:   1.0000
- 6    / 2:   6.0000
- 11   / 3:  11.0000
- 16   / 4:  16.0000
- 21   / 5:   1.0000
- 26   / 6:   6.0000
- 31   / 7:  11.0000
- 36   / 8:  16.0000
- 41   / 9:   1.0000
-list/nohead a[i=2:45:5]
- 2    / 1:   2.0000
- 7    / 2:   7.0000
- 12   / 3:  12.0000
- 17   / 4:  17.0000
- 22   / 5:   2.0000
- 27   / 6:   7.0000
- 32   / 7:  12.0000
- 37   / 8:  17.0000
- 42   / 9:   2.0000
-list/nohead a[i=3:45:5]
- 3    / 1:   3.0000
- 8    / 2:   8.0000
- 13   / 3:  13.0000
- 18   / 4:  18.0000
- 23   / 5:   3.0000
- 28   / 6:   8.0000
- 33   / 7:  13.0000
- 38   / 8:  18.0000
- 43   / 9:   3.0000
-list/nohead a[i=4:45:5]
- 4    / 1:   4.0000
- 9    / 2:   9.0000
- 14   / 3:  14.0000
- 19   / 4:  19.0000
- 24   / 5:   4.0000
- 29   / 6:   9.0000
- 34   / 7:  14.0000
- 39   / 8:  19.0000
- 44   / 9:   4.0000
-list/nohead a[i=5:45:5]
- 5    / 1:   5.0000
- 10   / 2:  10.0000
- 15   / 3:  15.0000
- 20   / 4:  20.0000
- 25   / 5:   5.0000
- 30   / 6:  10.0000
- 35   / 7:  15.0000
- 40   / 8:  20.0000
- 45   / 9:   5.0000
-list/nohead a[i=6:45:5]
- 6    / 1:   6.0000
- 11   / 2:  11.0000
- 16   / 3:  16.0000
- 21   / 4:   1.0000
- 26   / 5:   6.0000
- 31   / 6:  11.0000
- 36   / 7:  16.0000
- 41   / 8:   1.0000
-list/nohead a[i=101:145:5]
- 101   / 1:   1.0000
- 106   / 2:   6.0000
- 111   / 3:  11.0000
- 116   / 4:  16.0000
- 121   / 5:   1.0000
- 126   / 6:   6.0000
- 131   / 7:  11.0000
- 136   / 8:  16.0000
- 141   / 9:   1.0000
-list/nohead a[i=102:145:5]
- 102   / 1:   2.0000
- 107   / 2:   7.0000
- 112   / 3:  12.0000
- 117   / 4:  17.0000
- 122   / 5:   2.0000
- 127   / 6:   7.0000
- 132   / 7:  12.0000
- 137   / 8:  17.0000
- 142   / 9:   2.0000
-list/nohead a[i=103:145:5]
- 103   / 1:   3.0000
- 108   / 2:   8.0000
- 113   / 3:  13.0000
- 118   / 4:  18.0000
- 123   / 5:   3.0000
- 128   / 6:   8.0000
- 133   / 7:  13.0000
- 138   / 8:  18.0000
- 143   / 9:   3.0000
-list/nohead a[i=104:145:5]
- 104   / 1:   4.0000
- 109   / 2:   9.0000
- 114   / 3:  14.0000
- 119   / 4:  19.0000
- 124   / 5:   4.0000
- 129   / 6:   9.0000
- 134   / 7:  14.0000
- 139   / 8:  19.0000
- 144   / 9:   4.0000
-list/nohead a[i=105:145:5]
- 105   / 1:   5.0000
- 110   / 2:  10.0000
- 115   / 3:  15.0000
- 120   / 4:  20.0000
- 125   / 5:   5.0000
- 130   / 6:  10.0000
- 135   / 7:  15.0000
- 140   / 8:  20.0000
- 145   / 9:   5.0000
-list/nohead a[i=106:145:5]
- 106   / 1:   6.0000
- 111   / 2:  11.0000
- 116   / 3:  16.0000
- 121   / 4:   1.0000
- 126   / 5:   6.0000
- 131   / 6:  11.0000
- 136   / 7:  16.0000
- 141   / 8:   1.0000
- 
- 
-!  ***** STRING TESTS *****
-set mode diag
-list/nohead str[i=18:23:2] ! using rdstride
- dealloc  dynamic grid (G023)          (AX010)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M:335 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: STR --> (G022)           @XACT
- strip moduloing STR on X axis:    18    22 dset:   1
- rdstride STR      C:  9 dset:   1 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing STR on X axis:    18    20 dset:   1
- -DELETE STR      M:335 dset:   1 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- rdstride STR      C:  9 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing STR on X axis:     2     2 dset:   1
- -DELETE STR      M:335 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  STR      M:335 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE STR      M:334 dset:   1 I:   18   22  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- 18   / 1:"r"
- 20   / 2:"t"
- 22   / 3:"b"
-list/nohead str[i=1:25:3]  ! no strides --> reads full region without strides
- dealloc  dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: STR --> (G023)           @XACT
- strip moduloing STR on X axis:     1    25 dset:   1
- reading STR      M:334 dset:   1 I:    1   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing STR on X axis:     1    20 dset:   1
- regrid  STR      M:318 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- 1    / 1:"a"
- 4    / 2:"d"
- 7    / 3:"g"
- 10   / 4:"j"
- 13   / 5:"m"
- 16   / 6:"p"
- 19   / 7:"s"
- 22   / 8:"b"
- 25   / 9:"e"
-set mode/last diag
- 
-! less than one modulo cycle -- grab in 2 pieces
-! ... delta(2) a factor of npts(20)
-list/nohead str[i=18:23:2]
- 18   / 1:"r"
- 20   / 2:"t"
- 22   / 3:"b"
-list/nohead str[i=20:23:2]
- 20   / 1:"t"
- 22   / 2:"b"
- 
-! ... delta(3) not a factor of npts(20)
-list/nohead str[i=17:23:3]
- 17   / 1:"q"
- 20   / 2:"t"
- 23   / 3:"c"
-list/nohead str[i=18:23:3]
- 18   / 1:"r"
- 21   / 2:"a"
- 
-! more than one modulo cycle -- grab in one piece
-list/nohead str[i=1:45:5]
- 1    / 1:"a"
- 6    / 2:"f"
- 11   / 3:"k"
- 16   / 4:"p"
- 21   / 5:"a"
- 26   / 6:"f"
- 31   / 7:"k"
- 36   / 8:"p"
- 41   / 9:"a"
-list/nohead str[i=5:45:5]
- 5    / 1:"e"
- 10   / 2:"j"
- 15   / 3:"o"
- 20   / 4:"t"
- 25   / 5:"e"
- 30   / 6:"j"
- 35   / 7:"o"
- 40   / 8:"t"
- 45   / 9:"e"
-list/nohead str[i=101:145:5]
- 101   / 1:"a"
- 106   / 2:"f"
- 111   / 3:"k"
- 116   / 4:"p"
- 121   / 5:"a"
- 126   / 6:"f"
- 131   / 7:"k"
- 136   / 8:"p"
- 141   / 9:"a"
-list/nohead str[i=105:145:5]
- 105   / 1:"e"
- 110   / 2:"j"
- 115   / 3:"o"
- 120   / 4:"t"
- 125   / 5:"e"
- 130   / 6:"j"
- 135   / 7:"o"
- 140   / 8:"t"
- 145   / 9:"e"
- 
-! ******** V54 Additions below ***********
- 
-GO bn_reset
-cancel mode verify
-GO bn_axis_viewports
-! bn_axis_viewports
-! *sh* 9/01
- 
-! demonstrate vieport layout using the /AXES qualifier
-set wind/clear/aspect=1
-def view/axes allax
- 
-! make guide lines
-show view allax   ! text = 1
- 
- name             text    xlimits     ylimits    mode
- 
- ALLAX            1.00   0.00,1.00   0.00,1.00   axes
-   current viewport is NONE
-set view allax
-plot/vs/line/hlim=0:1/vlim=0:1/nolab {0.5,0.5,,0,1},{0,1,,0.5,0.5}
-plot/vs/line/over/nolab {0.25,0.25,,0,1},{0,1,,0.25,0.25}
-plot/vs/line/over/nolab {0.75,0.75,,0,1},{0,1,,0.75,0.75}
-label 0.26,0.95,-1,0,.2 @P2 at AC<-At 0.25
-label 0.76,0.95,-1,0,.2 @P3 at AC<-At 0.75
- 
-! a plot from 0.25 to 0.75
-def view /xlim=0.25:0.75/ylim=0.25:0.75/text=1/axes mid
-set view mid
-plot/vs/hlim=-1:1/vlim=-1:1/line/i=1:200 cos(i/15),sin(i/15)
-show view mid
- 
- name             text    xlimits     ylimits    mode
- 
- MID              1.00   0.25,0.75   0.25,0.75   axes
-   current viewport is MID
-ppl list xaxis
-
-
-         XAXIS QUALITIES
-         LO=-1.00E+00 HI= 1.00E+00 TIC= 2.00E-01 LEN= 4.74E+00 CSIZE= 1.00E-01
-          TOP AXIS= ON  BOTTOM AXIS= ON 
-         MANUAL  NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
-         XORG= 1.20E+00  AUTO LABELLING
-ppl list yaxis
-
-
-         YAXIS QUALITIES
-         LO=-1.00E+00 HI= 1.00E+00 TIC= 2.00E-01 LEN= 4.74E+00 CSIZE= 1.00E-01
-          LEFT AXIS= ON  RIGHT AXIS= ON 
-         MANUAL  NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
-         YORG= 1.40E+00  AUTO LABELLING
- 
-! guidelines showing origin, axlen, white space
-def view /xlim=0.25:0.75/ylim=0.25:0.75/text=1/axes mid2
-set view mid2
-ppl origin 0,0
-define symbol xaxl `($PPL$WIDTH)/2`
- !-> define symbol xaxl 4.737
-define symbol yaxl `($PPL$HEIGHT)/2`
- !-> define symbol yaxl 4.737
-ppl axlen `1.2 + ($xaxl) + 1.0`,`1.4 + ($yaxl) + 1.4`
- !-> ppl axlen 6.937,7.537
-plot/vs/hlim=-1.2:`($xaxl)+1.0`:0.2/vlim=-1.4:`($yaxl)+1.4`:0.2/nolab/nolab {0,($xaxl)}, {0,($yaxl)}
- !-> plot/vs/hlim=-1.2:5.737:0.2/vlim=-1.4:6.137:0.2/nolab/nolab {0,4.737}, {0,4.737}
- 
-! again with scale determined automatically
-! make guide lines
-set window/clear
-set view allax
-plot/vs/line/hlim=0:1/vlim=0:1/nolab {0.5,0.5,,0,1},{0,1,,0.5,0.5}
-plot/vs/line/over/nolab {0.25,0.25,,0,1},{0,1,,0.25,0.25}
-plot/vs/line/over/nolab {0.75,0.75,,0,1},{0,1,,0.75,0.75}
-label 0.26,0.95,-1,0,.2 @P2 at AC<-At 0.25
-label 0.76,0.95,-1,0,.2 @P3 at AC<-At 0.75
- 
-! a plot from 0.25 to 0.75
-def view /xlim=0.25:0.75/ylim=0.25:0.75/axes mid
-set view mid
-plot/vs/hlim=-1:1/vlim=-1:1/line/i=1:200/noyadj cos(i/15),sin(i/15)
-show view mid
- 
- name             text    xlimits     ylimits    mode
- 
- MID              0.72   0.25,0.75   0.25,0.75   axes
-   current viewport is MID
-ppl list xaxis
-
-
-         XAXIS QUALITIES
-         LO=-1.00E+00 HI= 1.00E+00 TIC= 2.00E-01 LEN= 5.57E+00 CSIZE= 1.00E-01
-          TOP AXIS= ON  BOTTOM AXIS= ON 
-         MANUAL  NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
-         XORG= 1.20E+00  AUTO LABELLING
-ppl list yaxis
-
-
-         YAXIS QUALITIES
-         LO=-1.00E+00 HI= 1.00E+00 TIC= 2.00E-01 LEN= 5.57E+00 CSIZE= 1.00E-01
-          LEFT AXIS= ON  RIGHT AXIS= ON 
-         MANUAL  NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
-         YORG= 1.40E+00  AUTO LABELLING
- 
-! guidelines showing origin, axlen, white space
-def view /xlim=0.25:0.75/ylim=0.25:0.75/text=1/axes mid2
-set view mid2
-ppl origin 0,0
-define symbol xaxl `($PPL$WIDTH)/2`
- !-> define symbol xaxl 4.737
-define symbol yaxl `($PPL$HEIGHT)/2`
- !-> define symbol yaxl 4.737
-ppl axlen `1.2 + ($xaxl) + 1.0`,`1.4 + ($yaxl) + 1.4`
- !-> ppl axlen 6.937,7.537
-plot/vs/hlim=-1.2:`($xaxl)+1.0`:0.2/vlim=-1.4:`($yaxl)+1.4`:0.2/nolab/line {0,($xaxl)}, {0,($yaxl)}
- !-> plot/vs/hlim=-1.2:5.737:0.2/vlim=-1.4:6.137:0.2/nolab/line {0,4.737}, {0,4.737}
- 
-set wind/clear
- 
-! a full window plot
-set view allax
-plot/vs/hlim=-1:1/vlim=-1:1/line/i=1:200/noyadj cos(i/15),sin(i/15)
-show view mid
- 
- name             text    xlimits     ylimits    mode
- 
- MID              0.72   0.25,0.75   0.25,0.75   axes
-   current viewport is ALLAX
- 
-set wind/clear
- 
-def view/axes/xlim=0:0.5/ylim=0:0.5/text=1 llax
-set view llax
-PLOT/VS/LINE/I=1:314/noyadj i*cos(i/20),i*sin(i/20)
-ppl list xaxis
-
-
-         XAXIS QUALITIES
-         LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
-          TOP AXIS= ON  BOTTOM AXIS= ON 
-         MANUAL  NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
-         XORG= 0.00E+00  AUTO LABELLING
-ppl list yaxis
-
-
-         YAXIS QUALITIES
-         LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
-          LEFT AXIS= ON  RIGHT AXIS= ON 
-         AUTO    NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
-         YORG= 0.00E+00  AUTO LABELLING
- 
-def view/axes/xlim=0:0.5/ylim=0.5:1/text=1 lrax
-set view lrax
-PLOT/VS/LINE/I=1:314/noyadj i*cos(i/20),i*sin(i/20)
-ppl list xaxis
-
-
-         XAXIS QUALITIES
-         LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
-          TOP AXIS= ON  BOTTOM AXIS= ON 
-         MANUAL  NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
-         XORG= 0.00E+00  AUTO LABELLING
-ppl list yaxis
-
-
-         YAXIS QUALITIES
-         LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
-          LEFT AXIS= ON  RIGHT AXIS= ON 
-         AUTO    NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
-         YORG= 1.40E+00  AUTO LABELLING
- 
-def view/axes/xlim=0.5:1/ylim=0:0.5/text=1 ulax
-set view ulax
-PLOT/VS/LINE/I=1:314/noyadj i*cos(i/20),i*sin(i/20)
-ppl list xaxis
-
-
-         XAXIS QUALITIES
-         LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
-          TOP AXIS= ON  BOTTOM AXIS= ON 
-         MANUAL  NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
-         XORG= 1.20E+00  AUTO LABELLING
-ppl list yaxis
-
-
-         YAXIS QUALITIES
-         LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
-          LEFT AXIS= ON  RIGHT AXIS= ON 
-         AUTO    NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
-         YORG= 0.00E+00  AUTO LABELLING
- 
-def view/axes/xlim=0.5:1/ylim=0.5:1/text=1 urax
-set view urax
-PLOT/VS/LINE/I=1:314/noyadj i*cos(i/20),i*sin(i/20)
-ppl list xaxis
-
-
-         XAXIS QUALITIES
-         LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
-          TOP AXIS= ON  BOTTOM AXIS= ON 
-         MANUAL  NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
-         XORG= 1.20E+00  AUTO LABELLING
-ppl list yaxis
-
-
-         YAXIS QUALITIES
-         LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
-          LEFT AXIS= ON  RIGHT AXIS= ON 
-         AUTO    NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
-         YORG= 1.40E+00  AUTO LABELLING
- 
-! again with viewport scaling determined automatically
-set wind/clear
- 
-def view/axes/xlim=0:0.5/ylim=0:0.5 llax
-show view llax
- 
- name             text    xlimits     ylimits    mode
- 
- LLAX             0.60   0.00,0.50   0.00,0.50   axes
-   current viewport is URAX
-set view llax
-PLOT/VS/LINE/I=1:314/nolab i*cos(i/20),i*sin(i/20)
-ppl list xaxis
-
-
-         XAXIS QUALITIES
-         LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 6.13E+00 CSIZE= 1.00E-01
-          TOP AXIS= ON  BOTTOM AXIS= ON 
-         MANUAL  NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
-         XORG= 0.00E+00  AUTO LABELLING
-ppl list yaxis
-
-
-         YAXIS QUALITIES
-         LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 6.13E+00 CSIZE= 1.00E-01
-          LEFT AXIS= ON  RIGHT AXIS= ON 
-         AUTO    NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
-         YORG= 0.00E+00  AUTO LABELLING
- 
-def view/axes/xlim=0:0.5/ylim=0.5:1 lrax
-show view lrax
- 
- name             text    xlimits     ylimits    mode
- 
- LRAX             0.60   0.00,0.50   0.50,1.00   axes
-   current viewport is LLAX
-set view lrax
-PLOT/VS/LINE/I=1:314/nolab i*cos(i/20),i*sin(i/20)
-ppl list xaxis
-
-
-         XAXIS QUALITIES
-         LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 6.13E+00 CSIZE= 1.00E-01
-          TOP AXIS= ON  BOTTOM AXIS= ON 
-         MANUAL  NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
-         XORG= 0.00E+00  AUTO LABELLING
-ppl list yaxis
-
-
-         YAXIS QUALITIES
-         LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 6.13E+00 CSIZE= 1.00E-01
-          LEFT AXIS= ON  RIGHT AXIS= ON 
-         AUTO    NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
-         YORG= 1.40E+00  AUTO LABELLING
- 
-def view/axes/xlim=0.5:1/ylim=0:0.5 ulax
-show view ulax
- 
- name             text    xlimits     ylimits    mode
- 
- ULAX             0.61   0.50,1.00   0.00,0.50   axes
-   current viewport is LRAX
-set view ulax
-PLOT/VS/LINE/I=1:314/nolab i*cos(i/20),i*sin(i/20)
-ppl list xaxis
-
-
-         XAXIS QUALITIES
-         LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 6.08E+00 CSIZE= 1.00E-01
-          TOP AXIS= ON  BOTTOM AXIS= ON 
-         MANUAL  NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
-         XORG= 1.20E+00  AUTO LABELLING
-ppl list yaxis
-
-
-         YAXIS QUALITIES
-         LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 6.08E+00 CSIZE= 1.00E-01
-          LEFT AXIS= ON  RIGHT AXIS= ON 
-         AUTO    NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
-         YORG= 0.00E+00  AUTO LABELLING
- 
-def view/axes/xlim=0.5:1/ylim=0.5:1 urax
-show view urax
- 
- name             text    xlimits     ylimits    mode
- 
- URAX             0.61   0.50,1.00   0.50,1.00   axes
-   current viewport is ULAX
-set view urax
-PLOT/VS/LINE/I=1:314/nolab i*cos(i/20),i*sin(i/20)
-ppl list xaxis
-
-
-         XAXIS QUALITIES
-         LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 6.08E+00 CSIZE= 1.00E-01
-          TOP AXIS= ON  BOTTOM AXIS= ON 
-         MANUAL  NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
-         XORG= 1.20E+00  AUTO LABELLING
-ppl list yaxis
-
-
-         YAXIS QUALITIES
-         LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 6.08E+00 CSIZE= 1.00E-01
-          LEFT AXIS= ON  RIGHT AXIS= ON 
-         AUTO    NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
-         YORG= 1.40E+00  AUTO LABELLING
- 
-cancel view
-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)
- 
-ppl list xaxis
-
-
-         XAXIS QUALITIES
-         LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 7.27E+00 CSIZE= 1.00E-01
-          TOP AXIS= ON  BOTTOM AXIS= ON 
-         MANUAL  NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
-         XORG= 1.20E+00  AUTO LABELLING
-ppl list yaxis
-
-
-         YAXIS QUALITIES
-         LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 6.67E+00 CSIZE= 1.00E-01
-          LEFT AXIS= ON  RIGHT AXIS= ON 
-         AUTO    NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
-         YORG= 1.40E+00  AUTO LABELLING
- 
-GO bn_reset
-cancel mode verify
-GO bn_strings
-! bn_strings.jnl
- 
-! 7/01 - test string syntax and behaviors
- 
-! 5/4/05 acm remove calls to writev5d, shared obj external function
-!            (put in separate file bn_ef_v5d_strings)
- 
-sh mode stupid
-      MODE            STATE        ARGUMENT
-      STUPID           SET
-cancel mode stupid  ! for testing in double precision
- 
- 
-! some test files
-sp rm -f *.str_test *.string_tst
-sp touch dummy1.str_test dummy2.str_test dummy3.str_test dummy4.str_test dummy5.str_test dummy6.str_test dummy7.str_test dummy8.str_test dummy9.str_test
-sp touch dummy1.string_tst dummy2.string_tst dummy3.string_tst dummy4.string_tst dummy5.string_tst dummy6.string_tst dummy7.string_tst dummy8.string_tst
- 
-cancel data/all
- 
-let a = "testa.v5d"
-list a
-             VARIABLE : "testa.v5d"
-        "testa.v5d"
- 
-let b = "goodbye"
-list a,b
- Column  1: A is "testa.v5d"
- Column  2: B is "goodbye"
-                   A      B
-I / *:    "testa.v5d" "goodbye"
- 
-let a = {"hello","goodbye", "wave to me"}
-list a
-             VARIABLE : {"hello","goodbye", "wave to me"}
-             SUBSET   : 3 points (X)
- 1   / 1:"hello"     
- 2   / 2:"goodbye"   
- 3   / 3:"wave to me"
-list a[i=2:3]
-             VARIABLE : {"hello","goodbye", "wave to me"}
-             SUBSET   : 2 points (X)
- 2   / 2:"goodbye"   
- 3   / 3:"wave to me"
-list/order=x a[i=2:3]
-             VARIABLE : {"hello","goodbye", "wave to me"}
-             SUBSET   : 2 points (X)
-              2           3       
-               2           3
-        "goodbye"   "wave to me"
- 
-let e = {,"string1",, "string2"}
-list e
-             VARIABLE : {,"string1",, "string2"}
-             SUBSET   : 4 points (X)
- 1   / 1:""       
- 2   / 2:"string1"
- 3   / 3:""       
- 4   / 4:"string2"
- 
-list {"string","s2","very long string"},5
-             X: 0.5 to 3.5
- Column  1: {"string","s2","very long string"}
- Column  2: cnst is constant
-                  {"string    cnst
-1   / 1: "string"            5.00000
-2   / 2: "s2"                5.00000
-3   / 3: "very long string"  5.00000
- 
-set mode ignore
-  let e = {"string1" "string2"}
-  list e
-  let e = {,"string1",5, "string2"}
-  list e
-set mode/last ignore
- 
-* mixed single and double quotes
-list/nohead {",a",',b'}
- 1   / 1:",a"
- 2   / 2:",b"
-list/nohead {'"'}, {"'"}
-I / *:    """ "'"
- 
-let d = {"INITIALIZE", spawn:"ls *.str_test", "INSERT", spawn:"ls *.string_tst"}
-list d
-             VARIABLE : {"INITIALIZE", SPAWN:"ls *.str_test", "INSERT", SPAWN:"ls *.string_tst"}
-             SUBSET   : 19 points (X)
- 1    /  1:"INITIALIZE"       
- 2    /  2:"dummy1.str_test"  
- 3    /  3:"dummy2.str_test"  
- 4    /  4:"dummy3.str_test"  
- 5    /  5:"dummy4.str_test"  
- 6    /  6:"dummy5.str_test"  
- 7    /  7:"dummy6.str_test"  
- 8    /  8:"dummy7.str_test"  
- 9    /  9:"dummy8.str_test"  
- 10   / 10:"dummy9.str_test"  
- 11   / 11:"INSERT"           
- 12   / 12:"dummy1.string_tst"
- 13   / 13:"dummy2.string_tst"
- 14   / 14:"dummy3.string_tst"
- 15   / 15:"dummy4.string_tst"
- 16   / 16:"dummy5.string_tst"
- 17   / 17:"dummy6.string_tst"
- 18   / 18:"dummy7.string_tst"
- 19   / 19:"dummy8.string_tst"
-stat d
- 
-             {"INITIALIZE", SPAWN:"ls *.str_test", "INSERT", SPAWN:"ls *.string_tst"}
-             X: 0.5 to 19.5
-             Y:  N/A
-             Z:  N/A
-             T:  N/A
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- Total # of strings: 19 (19*1*1*1*1*1)
- Maximum string length: 17
-load d
- 
-set mode ignore
-  plot d
-  define axis/x xax = d
-set mode/last ignore
- 
-! netCDF file IO
-let a = {"hello"}            ! note - a is an array of length 1
-save/clobber/file=test_string.cdf a
-canc var a
-use test_string
-sh dat test_string
-     currently SET data sets:
-    1> ./test_string.cdf  (default)
- name     title                             I         J         K         L         M         N
- A        {"hello"}                        1:1       ...       ...       ...       ...       ...
- 
-list a
-             VARIABLE : {"hello"}
-             FILENAME : test_string.cdf
-             X        : 1
-        "hello"
-canc data test_string
- 
-let b = "one line of text"   !  note - b is scalar
-save/clobber/file=test_string.cdf b
-canc var b
-use test_string
-sh dat test_string
-     currently SET data sets:
-    1> ./test_string.cdf  (default)
- name     title                             I         J         K         L         M         N
- B        "one line of text"               ...       ...       ...       ...       ...       ...
- 
-list b
-             VARIABLE : "one line of text"
-             FILENAME : test_string.cdf
-        "one line of text"
-canc data test_string
- 
-let a = {"hello","goodbye", "wave to me"}
-let b = "one line of text"
-save/clobber/file=test_string.cdf a,b
-sp echo "bn_strings.jnl --- 1 original file" >> all_ncdump.out
-sp ncdump test_string.cdf >> all_ncdump.out
-save/append/file=test_string.cdf d
-let b2 = "two line of text"   ! the same string length as b
-sp echo "bn_strings.jnl --- 2 append to file" >> all_ncdump.out
-save/append/file=test_string.cdf b2
-canc var/all
-use test_string.cdf
-show data test_string
-     currently SET data sets:
-    1> ./test_string.cdf  (default)
- name     title                             I         J         K         L         M         N
- A        {"hello","goodbye", "wave to me  1:3       ...       ...       ...       ...       ...
- B        "one line of text"               ...       ...       ...       ...       ...       ...
- D        {"INITIALIZE", SPAWN:"ls *.str_  1:19      ...       ...       ...       ...       ...
- B2       "two line of text"               ...       ...       ...       ...       ...       ...
- 
-list/nohead a
- 1   / 1:"hello"     
- 2   / 2:"goodbye"   
- 3   / 3:"wave to me"
-list/nohead b
-        "one line of text"
- 
-set var/title="partial filename list" d
-save/clobber/file=test_string2.cdf/heading=enhanced d[i=2:5]
-sp mv test_string2.cdf test_string.cdf
-sp echo "bn_strings.jnl --- 3 enhanced heading" >> all_ncdump.out
-sp ncdump test_string.cdf >> all_ncdump.out
-canc data/all
-use test_string
-show data test_string
-     currently SET data sets:
-    1> ./test_string.cdf  (default)
- name     title                             I         J         K         L         M         N
- D        partial filename list            2:5       ...       ...       ...       ...       ...
- 
-list d
-             VARIABLE : partial filename list
-             FILENAME : test_string.cdf
-             SUBSET   : 4 points (X)
- 2   / 2:"dummy1.str_test"
- 3   / 3:"dummy2.str_test"
- 4   / 4:"dummy3.str_test"
- 5   / 5:"dummy4.str_test"
- 
-! regridding tests
-let a = {spawn:"ls *.str_test"}
-list a
-             VARIABLE : {SPAWN:"ls *.str_test"}
-             SUBSET   : 9 points (X)
- 1   / 1:"dummy1.str_test"
- 2   / 2:"dummy2.str_test"
- 3   / 3:"dummy3.str_test"
- 4   / 4:"dummy4.str_test"
- 5   / 5:"dummy5.str_test"
- 6   / 6:"dummy6.str_test"
- 7   / 7:"dummy7.str_test"
- 8   / 8:"dummy8.str_test"
- 9   / 9:"dummy9.str_test"
-define axis/x=0.1:0.7:.1 xasn
-list a[gx=xasn at asn]
-             VARIABLE : {SPAWN:"ls *.str_test"}
-                        regrid: 0.1 delta on X at ASN
-             SUBSET   : 7 points (X)
- 0.1  / 1:"dummy1.str_test"
- 0.2  / 2:"dummy2.str_test"
- 0.3  / 3:"dummy3.str_test"
- 0.4  / 4:"dummy4.str_test"
- 0.5  / 5:"dummy5.str_test"
- 0.6  / 6:"dummy6.str_test"
- 0.7  / 7:"dummy7.str_test"
-define axis/x=1:6:.5 xxact
-list a[gx=xxact at xact]
-             VARIABLE : {SPAWN:"ls *.str_test"}
-                        regrid: 0.5 delta on X at XACT
-             SUBSET   : 11 points (X)
- 1    /  1:"dummy1.str_test"
- 1.5  /  2:""               
- 2    /  3:"dummy2.str_test"
- 2.5  /  4:""               
- 3    /  5:"dummy3.str_test"
- 3.5  /  6:""               
- 4    /  7:"dummy4.str_test"
- 4.5  /  8:""               
- 5    /  9:"dummy5.str_test"
- 5.5  / 10:""               
- 6    / 11:"dummy6.str_test"
-define axis/x=1:6:.4 xnrst
-list a[gx=xnrst at nrst]
-             VARIABLE : {SPAWN:"ls *.str_test"}
-                        regrid: 0.4 delta on X at NRST
-             SUBSET   : 14 points (X)
- 1    /  1:"dummy1.str_test"
- 1.4  /  2:"dummy1.str_test"
- 1.8  /  3:"dummy2.str_test"
- 2.2  /  4:"dummy2.str_test"
- 2.6  /  5:"dummy3.str_test"
- 3    /  6:"dummy3.str_test"
- 3.4  /  7:"dummy3.str_test"
- 3.8  /  8:"dummy4.str_test"
- 4.2  /  9:"dummy4.str_test"
- 4.6  / 10:"dummy5.str_test"
- 5    / 11:"dummy5.str_test"
- 5.4  / 12:"dummy5.str_test"
- 5.8  / 13:"dummy6.str_test"
- 6.2  / 14:"dummy6.str_test"
-set mode ignore
-  list a[gx=xnrst]
-  list a[gx=xnrst at ave]
-  list a[gx=xnrst at var]
-  list a[gx=xnrst at ngd]
-  list a[gx=xnrst at max]
-  list a[gx=xnrst at sum]
-  set axis/modulo xnrst
-  list a[gx=xnrst at mod]
-set mode/last ignore
- 
-! functions returning strings
-list/nohead xsequence({"a","b","c","d","e"})
- 1   / 1:"a"
- 2   / 2:"b"
- 3   / 3:"c"
- 4   / 4:"d"
- 5   / 5:"e"
-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
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
-list/nohead  ysequence({"a","b","c","d","e"})
- 1   / 1:"a"
- 2   / 2:"b"
- 3   / 3:"c"
- 4   / 4:"d"
- 5   / 5:"e"
-sh grid
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid YABSTRACT
-    GRID YABSTRACT
- name       axis              # pts   start                end
- normal    X
- ABSTRACT  Y             99999999 r   1                    1.E+08
- normal    Z
- normal    T
- normal    E
- normal    F
-list/nohead  zsequence({"a","b","c","d","e"})
- 1   / 1:"a"
- 2   / 2:"b"
- 3   / 3:"c"
- 4   / 4:"d"
- 5   / 5:"e"
-sh grid
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid ZABSTRACT
-    GRID ZABSTRACT
- name       axis              # pts   start                end
- normal    X
- normal    Y
- ABSTRACT  Z             99999999 r   1                    1.E+08
- normal    T
- normal    E
- normal    F
-list/nohead  tsequence({"a","b","c","d","e"})
- 1   / 1:"a"
- 2   / 2:"b"
- 3   / 3:"c"
- 4   / 4:"d"
- 5   / 5:"e"
-sh grid
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid TABSTRACT
-    GRID TABSTRACT
- name       axis              # pts   start                end
- normal    X
- normal    Y
- normal    Z
- ABSTRACT  T             99999999 r   1                    1.E+08
- normal    E
- normal    F
-let a = TSEQUENCE({"a","b","c","d","e"})
-list/l=2:3 a
-             VARIABLE : TSEQUENCE({"a","b","c","d","e"})
-             SUBSET   : 2 points (T)
- 2   / 2:"b"
- 3   / 3:"c"
- 
-list/nohead  {"a",,"b"}
- 1   / 1:"a"
- 2   / 2:"" 
- 3   / 3:"b"
-list/nohead  samplei({"a","b",,"d","e","f"},{3,2,,1})
- 1   / 1:"" 
- 2   / 2:"b"
- 3   / 3:"" 
- 4   / 4:"a"
-list/nohead  samplej(YSEQUENCE({"a","b",,"d","e","f"}),{3,2,,1})
- 1   / 1:"" 
- 2   / 2:"b"
- 3   / 3:"" 
- 4   / 4:"a"
-list/nohead  samplek(ZSEQUENCE({"a","b",,"d","e","f"}),{3,2,,1})
- 1   / 1:"" 
- 2   / 2:"b"
- 3   / 3:"" 
- 4   / 4:"a"
-list/nohead  samplel(TSEQUENCE({"a","b",,"d","e","f"}),{3,2,,1})
- 1   / 1:"" 
- 2   / 2:"b"
- 3   / 3:"" 
- 4   / 4:"a"
- 
-let a = {"a",," ",""}
-let b = samplej(YSEQUENCE({"a","b",,"d","e","f"}),{2,,1})
-save/clobber/file=foo.cdf a,b
-sp echo "bn_strings.jnl --- 4 sample and ysequence functions on string var" >> all_ncdump.out
-sp ncdump foo.cdf >> all_ncdump.out
- 
-let a =  RESHAPE({"a","b",,"d","e","f"},I[i=1:3]+j[j=1:2])
-list  a
-             VARIABLE : RESHAPE({"a","b",,"d","e","f"},I[I=1:3]+J[J=1:2])
-             SUBSET   : 3 by 2 points (X-Y)
-           1  2  3  
-           1  2  3
- 1   / 1:"a""b""" 
- 2   / 2:"d""e""f"
-list/i=2:3 a
-             VARIABLE : RESHAPE({"a","b",,"d","e","f"},I[I=1:3]+J[J=1:2])
-             SUBSET   : 2 by 2 points (X-Y)
-           2  3  
-           2  3
- 1   / 1:"b""" 
- 2   / 2:"e""f"
-list  reshape(a,I[I=1:2]+J[J=1:3])
-             VARIABLE : RESHAPE(A,I[I=1:2]+J[J=1:3])
-             SUBSET   : 2 by 3 points (X-Y)
-           1  2  
-           1  2
- 1   / 1:"a""b"
- 2   / 2:"" "d"
- 3   / 3:"e""f"
-list  reshape(a,I[I=1:3]+J[J=1:3])
-             VARIABLE : RESHAPE(A,I[I=1:3]+J[J=1:3])
-             SUBSET   : 3 by 2 points (X-Y)
-           1  2  3  
-           1  2  3
- 1   / 1:"a""b""" 
- 2   / 2:"d""e""f"
-list reshape(a,I[I=1:1]+J[J=1:3])
-             VARIABLE : RESHAPE(A,I[I=1:1]+J[J=1:3])
-             SUBSET   : 3 points (Y)
-             X        : 1
-           1  
-           1
- 1   / 1:"a"
- 2   / 2:"b"
- 3   / 3:"" 
- 
-! logical operators applied to strings
-list {"a","b","c"} EQ YSEQUENCE({"A","B","C"})  ! case insensitive
-             VARIABLE : {"a","b","c"} EQ YSEQUENCE({"A","B","C"})
-             SUBSET   : 3 by 3 points (X-Y)
-              1        2        3     
-              1        2        3
- 1   / 1:  1.00000  0.00000  0.00000
- 2   / 2:  0.00000  1.00000  0.00000
- 3   / 3:  0.00000  0.00000  1.00000
-list {"a","b","c"} NE YSEQUENCE({"a","B","c"})
-             VARIABLE : {"a","b","c"} NE YSEQUENCE({"a","B","c"})
-             SUBSET   : 3 by 3 points (X-Y)
-              1        2        3     
-              1        2        3
- 1   / 1:  0.00000  1.00000  1.00000
- 2   / 2:  1.00000  0.00000  1.00000
- 3   / 3:  1.00000  1.00000  0.00000
-list/nohead "b" LT {"a","b","c"}
- 1   / 1:  0.00000
- 2   / 2:  0.00000
- 3   / 3:  1.00000
-list/nohead "b" LE {"a","b","c"}
- 1   / 1:  0.00000
- 2   / 2:  1.00000
- 3   / 3:  1.00000
-list/nohead "b" EQ {"a","b","c"}
- 1   / 1:  0.00000
- 2   / 2:  1.00000
- 3   / 3:  0.00000
-list/nohead "b" GE {"a","b","c"}
- 1   / 1:  1.00000
- 2   / 2:  1.00000
- 3   / 3:  0.00000
-list/nohead "b" GT {"a","b","c"}
- 1   / 1:  1.00000
- 2   / 2:  0.00000
- 3   / 3:  0.00000
- 
-! special hacks allow "+" to be a concatenation operator
-list/nohead "hello" + ", friend"
-        "hello, friend"
-list/nohead {"hello","goodbye"}+", "+YSEQUENCE({"old","new"})+" "+"friend"
- 1   / 1:"hello, old friend"  "goodbye, old friend"
- 2   / 2:"hello, new friend"  "goodbye, new friend"
-list/nohead SAMPLEI(XSEQUENCE({"hello","goodbye"}+", "+YSEQUENCE({"old","new"})+" "+"friend"), {2,3})
- 1   / 1:"goodbye, old friend"
- 2   / 2:"hello, new friend"  
- 
-! special hacks allow IF-THEN-ELSE to apply to strings
-list/nohead if {0,1} THEN "hello"
- 1   / 1:""     
- 2   / 2:"hello"
-list/nohead if {0,1} THEN "hello" ELSE "goodbye"
- 1   / 1:"goodbye"
- 2   / 2:"hello"  
-list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", ") + "friend"
- 1   / 1:"now, friend"        "now, hello, friend" 
- 2   / 2:"then, friend"       "then, hello, friend"
-list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
- 1   / 1:"now, goodbye, my friend" "now, hello, friend"      
- 2   / 2:"then, goodbye, my friend""then, hello, friend"     
-list/nohead ysequence({98, 99})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
- 1   / 1:........
- 2   / 2:........
-list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+99 ELSE "goodbye"+", my ") + "friend"
- 1   / 1:........
- 2   / 2:........
-list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+99) + "friend"
- 1   / 1:........
- 2   / 2:........
-list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + 99
- 1   / 1:........
- 2   / 2:........
- 
-! numerical operators applied to strings
-list/nohead "b" - {"a","b"}
- 1   / 1:....
- 2   / 2:....
-list/nohead "b" * {"a","b"}
- 1   / 1:....
- 2   / 2:....
-list/nohead "b" / {"a","b"}
- 1   / 1:....
- 2   / 2:....
-list/nohead "b" ^ {"a","b"}
- 1   / 1:....
- 2   / 2:....
-list/nohead {"a","b"} + 1
- 1   / 1:....
- 2   / 2:....
-list/nohead 1 + {"a","b"}
- 1   / 1:....
- 2   / 2:....
-list/nohead 1 - {"a","b"}
- 1   / 1:....
- 2   / 2:....
-list/nohead SIN({"a","b","c"})
- 1   / 1:....
- 2   / 2:....
- 3   / 3:....
-list/nohead MAX("a",{"a","b","c"})
- 1   / 1:....
- 2   / 2:....
- 3   / 3:....
-list/nohead MAX(1,{"a","b","c"})
- 1   / 1:....
- 2   / 2:....
- 3   / 3:....
- 
-! transformations applied to strings
-let a = {"a","b","c","d"}
-list a[i=@shf]
-             VARIABLE : {"a","b","c","d"}
-                        shifted by 1 pts on X
-             SUBSET   : 4 points (X)
- 1   / 1:"b"
- 2   / 2:"c"
- 3   / 3:"d"
- 4   / 4:"" 
-list a[i=@shf:-1]
-             VARIABLE : {"a","b","c","d"}
-                        shifted by -1 pts on X
-             SUBSET   : 4 points (X)
- 1   / 1:"" 
- 2   / 2:"a"
- 3   / 3:"b"
- 4   / 4:"c"
-list a[i=@ave]
-             VARIABLE : {"a","b","c","d"}
-             X        : 0.5 to 4.5 (averaged)
-        ""
-list a[i=@sbx]
-             VARIABLE : {"a","b","c","d"}
-                        box smoothed by 3 pts on X
-             SUBSET   : 4 points (X)
- 1   / 1:""
- 2   / 2:""
- 3   / 3:""
- 4   / 4:""
-list a[i=@rsum]
-             VARIABLE : {"a","b","c","d"}
-                        running sum on X
-             SUBSET   : 4 points (X)
- 1   / 1:""
- 2   / 2:""
- 3   / 3:""
- 4   / 4:""
- 
-set mode/last stupid
- 
-GO bn_reset
-cancel mode verify
-GO bn_axcontrol
- ! NOAA/PMEL TMAP
- ! Program FERRET (alpha)
- ! Version 5.33 - 07/12/01
- ! 12-Jul-01 14:47
- 
-define axis/t=1-jan-0001:20-jan-0001:1 begtime
-let tpts = t[gt=begtime]
-set view ul
-plot/axes=1,0,0,1 sin(tpts/15)
- 
-set view ur
-plot/axes=1,0,0,1/trans sin(tpts/15)
- 
-set view ll
-plot/axes/trans  sin(tpts/15)
- 
-set view lr
-plot/noaxes  sin(tpts/15)
- 
-! contour shade and fill, with /TRANS
- 
-use coads_climatology
-set view ul
-contour/l=1/axes=0,1,1,0 sst
- 
-set view ur
-shade/l=1/axes=1,0,1,0/trans sst
- 
-set view ll
-contour/l=1/axes=0,0,0,0/trans sst
- 
-set view lr
-fill/l=1/axes sst
- 
-! polygon
- 
-can view
-polygon/thick/color=red/palette=blue/axes=1,0,1,0 {1,2,1}, {2,1,0.5}
- 
-GO bn_reset
-cancel mode verify
-GO bn_vec_curv
-! bn_vec_curv.jnl
-!
-! vector plots with curvilinear coordinates
-!
-! ACM  10/23/01
-!       9/12/02  vary the lengths of the vectors in 1st two plots.
-! ACM 4/2005 set mode meta to save one of the plots for the metafile checks.
-!            and cancel mode logo, so that .plt files are comparable.
- 
-set mode meta vec_curv.plt
-can mode logo
-use coads_climatology
-set reg/l=1
-go mp_orthographic 230 60
-set grid sst
-go mp_aspect
- 
-let yy =  if abs(y[gt=sst]) le 20 then 10 else  (100-abs(y[gt=sst]+1))/ 10.
- 
-vec/noax/xskip=6/yskip=6/len=20/title="View From Space"  sst*0,(sst*0+yy)*mp_mask, x_page,y_page
-vec/over/xskip=6/yskip=6/len=20 (sst*0+yy)*mp_mask,sst*0, x_page,y_page
-vec/over/xskip=6/yskip=6/color=blue/len=20  (sst*0+yy)*mp_mask,(sst*0+yy)*mp_mask, x_page,y_page
- 
-can mode meta
- 
-! Sinusoidal projection; put data at the poles
- 
-use coads_climatology
-go mp_sinusoidal
-set grid sst
-go mp_aspect
- 
-let fsst = missing(sst,5)
-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/xskip=16/yskip=8/len=15 fsst*0+yy*mp_mask,fsst*0, x_page,y_page
- 
-! Irregular axes, and manual axis scaling
-set win/asp=1
-set mode meta vec_curv2.plt
- 
-def axis/from_data/x/name=xirr {0,1,2,4,6,7,8,10,14,16,20,23,24}
-def axis/from_data/y/name=yirr {0,2,4,5,6,7,8,9,12,13,14,15,18}
-let a = 0.1*x[gx=xirr] + 4*y[gy=yirr]
-let b = 3*x[gx=xirr] + y[gy=yirr]
-set view ul
-vec a,b
- 
-! project it to a regular grid
-let mx = i[i=1:13]
-let my = j[j=1:13]
-let mxpage = mx + 0*my
-let mypage = my+0*mx
-set view ll
-vec/title="Regular grid" a,b,mxpage,mypage
- 
-! Now stretch the grid
- 
-set view lr
-let mx = exp(x[x=2:4.4:0.2])
-let my = exp(y[y=1:3.4:0.2])
- 
-let mxpage = mx + 0*my
-let mypage = my + 0*mx
-vec/title="Stretched grid" a,b,mxpage,mypage
- 
-can mode meta
-set mode logo
- 
-GO bn_reset
-cancel mode verify
-GO bn_delimited_read
-! bn_delimited_read.jnl
-! 10/01 *sh*
- 
-! test delimiited (spreadsheet) reads in Ferret
- 
-! look at the file
-spawn cat bn_delimited_read_1.dat
-col1,col2,col3,col4,col5
-one,,1.1,24S,130E,,1e1,"word 1"
-    two,,2.2,24N,130W,2S,,"word 2"
-three,,3.3,24,130,3N,3e-2," wd 3 "
-
-five,,4.4,-24,-130,91, -4e2  ,  "word 4"  ,  aa  , 77
-extra line
- 
-! try the file as-is:  record 1 contains 5 column headings (text)
-! so V1 through V5 analyze to be text
-file/format=delim bn_delimited_read_1.dat
-show data/var
-     currently SET data sets:
-    1> ./bn_delimited_read_1.dat  (default)
- 
- name     title                             I         J         K         L         M         N
- V1       V1                               1:20480   ...       ...       ...       ...       ...
-            Data type = TEXT
-            Conversion /TYPE=TEXT
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V2       V2                               1:20480   ...       ...       ...       ...       ...
-            Data type = TEXT
-            Conversion /TYPE=TEXT
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V3       V3                               1:20480   ...       ...       ...       ...       ...
-            Data type = TEXT
-            Conversion /TYPE=TEXT
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V4       V4                               1:20480   ...       ...       ...       ...       ...
-            Data type = TEXT
-            Conversion /TYPE=TEXT
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V5       V5                               1:20480   ...       ...       ...       ...       ...
-            Data type = TEXT
-            Conversion /TYPE=TEXT
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V6       V6                               1:20480   ...       ...       ...       ...       ...
-            Data type = TEXT
-            Conversion /TYPE=TEXT
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V7       V7                               1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V8       V8                               1:20480   ...       ...       ...       ...       ...
-            Data type = TEXT
-            Conversion /TYPE=TEXT
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V9       V9                               1:20480   ...       ...       ...       ...       ...
-            Data type = TEXT
-            Conversion /TYPE=TEXT
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V10      V10                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- 
- /DELIMITERS="\t,\,"
-list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
-             DATA SET: ./bn_delimited_read_1.dat
-             X: 0.5 to 7.5
- Column  1: V1
- Column  2: V2
- Column  3: V3
- Column  4: V4
- Column  5: V5
- Column  6: V6
- Column  7: V7
- Column  8: V8
- Column  9: V9
- Column 10: V10
-                  V1    V2     V3     V4     V5    V6     V7       V8     V9     V10
-1   / 1: "col1"       "col2" "col3" "col4" "col5" " "      .... " "      " "      ....
-2   / 2: "one"        " "    "1.1"  "24S"  "130E" " "    10.000 "word 1" " "      ....
-3   / 3: "two"        " "    "2.2"  "24N"  "130W" "2S"     .... "word 2" " "      ....
-4   / 4: "three"      " "    "3.3"  "24"   "130"  "3N"    0.030 " wd 3 " " "      ....
-5   / 5: " "          " "    " "    " "    " "    " "      .... " "      " "      ....
-6   / 6: "five"       " "    "4.4"  "-24"  "-130" "91" -400.000 "word 4" "aa"  77.0000
-7   / 7: "extra line" " "    " "    " "    " "    " "      .... " "      " "      ....
- 
-! manually name the variables while still automatically analyzing data types
-file/format=delim/var=a1,a2,a3,a4,a5,a6,a7 bn_delimited_read_1.dat
-list a1,a2,a3,a4,a5,a6,a7
-             DATA SET: ./bn_delimited_read_1.dat
-             X: 0.5 to 7.5
- Column  1: A1
- Column  2: A2
- Column  3: A3
- Column  4: A4
- Column  5: A5
- Column  6: A6
- Column  7: A7
-                  A1    A2     A3     A4     A5    A6     A7
-1   / 1: "col1"       "col2" "col3" "col4" "col5" " "      ....
-2   / 2: "one"        " "    "1.1"  "24S"  "130E" " "    10.000
-3   / 3: "two"        " "    "2.2"  "24N"  "130W" "2S"     ....
-4   / 4: "three"      " "    "3.3"  "24"   "130"  "3N"    0.030
-5   / 5: " "          " "    " "    " "    " "    " "      ....
-6   / 6: "five"       " "    "4.4"  "-24"  "-130" "91" -400.000
-7   / 7: "extra line" " "    " "    " "    " "    " "      ....
- 
-! skip the first record to do a better "analysis" of the file fields
-! note that v3 is correctly analyzed as numeric
-file/format=delim/skip=1 bn_delimited_read_1.dat
-list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
-             DATA SET: ./bn_delimited_read_1.dat
-             X: 0.5 to 6.5
- Column  1: V1
- Column  2: V2 is V2 (all values missing)
- Column  3: V3
- Column  4: V4 is V4 (degrees_north)(Latitude)
- Column  5: V5 is V5 (degrees_east)(Longitude)
- Column  6: V6
- Column  7: V7
- Column  8: V8
- Column  9: V9
- Column 10: V10
-                  V1  V2    V3       V4       V5     V6     V7       V8     V9     V10
-1   / 1: "one"       ...  1.10000 -24.0000  130.000 " "    10.000 "word 1" " "      ....
-2   / 2: "two"       ...  2.20000  24.0000 -130.000 "2S"     .... "word 2" " "      ....
-3   / 3: "three"     ...  3.30000  24.0000  130.000 "3N"    0.030 " wd 3 " " "      ....
-4   / 4: " "         ...     ....     ....     .... " "      .... " "      " "      ....
-5   / 5: "five"      ...  4.40000 -24.0000 -130.000 "91" -400.000 "word 4" "aa"  77.0000
-6   / 6: "extra line"...     ....     ....     .... " "      .... " "      " "      ....
- 
-! insist that all columns be treated as string
-file/format=delim/skip=1/type=text bn_delimited_read_1.dat
-list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
-             DATA SET: ./bn_delimited_read_1.dat
-             X: 0.5 to 6.5
- Column  1: V1
- Column  2: V2
- Column  3: V3
- Column  4: V4
- Column  5: V5
- Column  6: V6
- Column  7: V7
- Column  8: V8
- Column  9: V9
- Column 10: V10
-                  V1   V2   V3    V4    V5    V6    V7      V8     V9   V10
-1   / 1: "one"        " " "1.1" "24S" "130E" " "  "1e1"  "word 1" " "  " " 
-2   / 2: "two"        " " "2.2" "24N" "130W" "2S" " "    "word 2" " "  " " 
-3   / 3: "three"      " " "3.3" "24"  "130"  "3N" "3e-2" " wd 3 " " "  " " 
-4   / 4: " "          " " " "   " "   " "    " "  " "    " "      " "  " " 
-5   / 5: "five"       " " "4.4" "-24" "-130" "91" "-4e2" "word 4" "aa" "77"
-6   / 6: "extra line" " " " "   " "   " "    " "  " "    " "      " "  " " 
- 
-! insist that all columns be treated as string and name the columns
-file/format=delim/skip=1/type=text/var=a1,a2,a3,a4,a5 bn_delimited_read_1.dat
-show data
-     currently SET data sets:
-    1> ./bn_delimited_read_1.dat  (default)
- name     title                             I         J         K         L         M         N
- A1       A1                               1:20480   ...       ...       ...       ...       ...
- A2       A2                               1:20480   ...       ...       ...       ...       ...
- A3       A3                               1:20480   ...       ...       ...       ...       ...
- A4       A4                               1:20480   ...       ...       ...       ...       ...
- A5       A5                               1:20480   ...       ...       ...       ...       ...
- 
-list a1,a2,a3,a4,a5
-             DATA SET: ./bn_delimited_read_1.dat
-             X: 0.5 to 6.5
- Column  1: A1
- Column  2: A2
- Column  3: A3
- Column  4: A4
- Column  5: A5
-                  A1   A2   A3    A4    A5
-1   / 1: "one"        " " "1.1" "24S" "130E"
-2   / 2: "two"        " " "2.2" "24N" "130W"
-3   / 3: "three"      " " "3.3" "24"  "130" 
-4   / 4: " "          " " " "   " "   " "   
-5   / 5: "five"       " " "4.4" "-24" "-130"
-6   / 6: "extra line" " " " "   " "   " "   
- 
-! insist that all columns be treated as numeric
-file/format=delim/skip=1/type=numeric bn_delimited_read_1.dat
-list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
-             DATA SET: ./bn_delimited_read_1.dat
-             X: 0.5 to 6.5
- Column  1: V1
- Column  2: V2
- Column  3: V3
- Column  4: V4
- Column  5: V5
- Column  6: V6
- Column  7: V7
- Column  8: V8
- Column  9: V9
- Column 10: V10
-        V1  V2    V3       V4       V5       V6       V7    V8 V9    V10
-1   / 1:......  1.10000     ....     ....     ....   10.000......     ....
-2   / 2:......  2.20000     ....     ....     ....     ..........     ....
-3   / 3:......  3.30000  24.0000  130.000     ....    0.030......     ....
-4   / 4:......     ....     ....     ....     ....     ..........     ....
-5   / 5:......  4.40000 -24.0000 -130.000  91.0000 -400.000......  77.0000
-6   / 6:......     ....     ....     ....     ....     ..........     ....
- 
-! insist that all columns be treated as latitude
-file/format=delim/skip=1/type=latitude bn_delimited_read_1.dat
-list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
-             DATA SET: ./bn_delimited_read_1.dat
-             X: 0.5 to 6.5
- Column  1: V1 is V1 (degrees_north)(Latitude)
- Column  2: V2 is V2 (degrees_north)(Latitude)
- Column  3: V3 is V3 (degrees_north)(Latitude)
- Column  4: V4 is V4 (degrees_north)(Latitude)
- Column  5: V5 is V5 (degrees_north)(Latitude)
- Column  6: V6 is V6 (degrees_north)(Latitude)
- Column  7: V7 is V7 (degrees_north)(Latitude)
- Column  8: V8 is V8 (degrees_north)(Latitude)
- Column  9: V9 is V9 (degrees_north)(Latitude)
- Column 10: V10 is V10 (degrees_north)(Latitude)
-        V1  V2    V3       V4       V5       V6       V7    V8 V9    V10
-1   / 1:......  1.10000 -24.0000     ....     ....   10.000......     ....
-2   / 2:......  2.20000  24.0000     ....  -2.0000     ..........     ....
-3   / 3:......  3.30000  24.0000  130.000   3.0000    0.030......     ....
-4   / 4:......     ....     ....     ....     ....     ..........     ....
-5   / 5:......  4.40000 -24.0000 -130.000  91.0000 -400.000......  77.0000
-6   / 6:......     ....     ....     ....     ....     ..........     ....
- 
-! read only the first line of the file
-spawn head -1 bn_delimited_read_1.dat
-col1,col2,col3,col4,col5
-define axis/x=1:1:1 x1
-define grid/x=x1 g1
-columns/grid=g1 bn_delimited_read_1.dat
- ! note 10 columns because auto-analysis of file doesnt stop at 1st record
-list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
-             DATA SET: ./bn_delimited_read_1.dat
-             X: 1
- Column  1: V1
- Column  2: V2
- Column  3: V3
- Column  4: V4
- Column  5: V5
- Column  6: V6
- Column  7: V7
- Column  8: V8
- Column  9: V9
- Column 10: V10
-             V1    V2     V3     V4     V5    V6 V7  V8  V9 V10
-I / *:    "col1" "col2" "col3" "col4" "col5" " "... " " " "....
-columns/grid=g1/var=c1,c2,c3,c4,c5 bn_delimited_read_1.dat
-list c1,c2,c3,c4,c5
-             DATA SET: ./bn_delimited_read_1.dat
-             X: 1
- Column  1: C1
- Column  2: C2
- Column  3: C3
- Column  4: C4
- Column  5: C5
-             C1    C2     C3     C4     C5
-I / *:    "col1" "col2" "col3" "col4" "col5"
- 
-! ==========
-cancel data/all
-! file using blank as a delimiter
-! Note record 1 has blanks at end of record
-! Note record of many blanks sandwiched in as record 2
-file/form=delimited bn_delimited_read_2.dat
-show data
-     currently SET data sets:
-    1> ./bn_delimited_read_2.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:20480   ...       ...       ...       ...       ...
- 
-file/form=delimited/delimiter=" " bn_delimited_read_2.dat
-show data
-     currently SET data sets:
-    1> ./bn_delimited_read_2.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:20480   ...       ...       ...       ...       ...
-       (Julian days since 1-Jan-1900)
- V2       V2                               1:20480   ...       ...       ...       ...       ...
-       (Time of day)
- V3       V3                               1:20480   ...       ...       ...       ...       ...
-       (all values missing)
- 
-list v1,v2
-             DATA SET: ./bn_delimited_read_2.dat
-             X: 0.5 to 3.5
- Column  1: V1 is V1 (days)(Julian days since 1-Jan-1900)
- Column  2: V2 is V2 (hours)(Time of day)
-              V1     V2
-1   / 1:  37965.0  12.5833
-2   / 2:     ....     ....
-3   / 3:  39051.0  13.7514
- 
-! ==========
-! look at the date/time file
-spawn cat bn_delimited_read_date_time.dat
-12/1/99,1999-03-01,12:00, 13:45:36.5,12/1/99,1999-03-01,12:00, 13:45:36.5
-12/2/99,1999-03-02,01:00:13.5, 14:45:36.5,12/2/99,1999-03-02,01:00:13.5, 14:45:36.5
-12/3/99x,1999-03-03x,2:00x, 15:45x,12/3/99,1999-03-03,2:00, 15:45
-12/4/99,1999-03-04,03:00, 16:45:36.5, 12/4/99,1999-03-04,03:00, 16:45:36.5
- 
-! try the file as-is
-! Note that record 3 has syntax errors in the first 4 fields
-columns bn_delimited_read_date_time.dat
-list v1,v2,v3,v4,v5,v6,v7,v8
-             DATA SET: ./bn_delimited_read_date_time.dat
-             X: 0.5 to 4.5
- Column  1: V1
- Column  2: V2
- Column  3: V3
- Column  4: V4
- Column  5: V5 is V5 (days)(Julian days since 1-Jan-1900)
- Column  6: V6 is V6 (days)(Julian days since 1-Jan-1900)
- Column  7: V7 is V7 (hours)(Time of day)
- Column  8: V8 is V8 (hours)(Time of day)
-                V1        V2           V3           V4         V5       V6       V7       V8
-1   / 1: "12/1/99"  "1999-03-01"  "12:00"      "13:45:36.5"  36493.0  36218.0  12.0000  13.7601
-2   / 2: "12/2/99"  "1999-03-02"  "01:00:13.5" "14:45:36.5"  36494.0  36219.0   1.0037  14.7601
-3   / 3: "12/3/99x" "1999-03-03x" "2:00x"      "15:45x"      36495.0  36220.0   2.0000  15.7500
-4   / 4: "12/4/99"  "1999-03-04"  "03:00"      "16:45:36.5"  36496.0  36221.0   3.0000  16.7601
-show data 2
-     currently SET data sets:
-    2> ./bn_delimited_read_date_time.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:4       ...       ...       ...       ...       ...
- V2       V2                               1:4       ...       ...       ...       ...       ...
- V3       V3                               1:4       ...       ...       ...       ...       ...
- V4       V4                               1:4       ...       ...       ...       ...       ...
- V5       V5                               1:4       ...       ...       ...       ...       ...
-       (Julian days since 1-Jan-1900)
- V6       V6                               1:4       ...       ...       ...       ...       ...
-       (Julian days since 1-Jan-1900)
- V7       V7                               1:4       ...       ...       ...       ...       ...
-       (Time of day)
- V8       V8                               1:4       ...       ...       ...       ...       ...
-       (Time of day)
- 
- 
-! sanity check date encodings
-define axis/t/units=days/T0=1-jan-1900  tax = v5
-show axis tax
- name       axis              # pts   start                end
- TAX       TIME                 4 r   01-DEC-1999 00:00    04-DEC-1999 00:00
-T0 = 1-JAN-1900
-   Axis span (to cell edges) = 4
-define axis/t/units=days/T0=1-jan-1900  tax = v6
-show axis tax
- name       axis              # pts   start                end
- TAX       TIME                 4 r   01-MAR-1999 00:00    04-MAR-1999 00:00
-T0 = 1-JAN-1900
-   Axis span (to cell edges) = 4
- 
-columns/type=date bn_delimited_read_date_time.dat
-list v1,v2,v3,v4,v5,v6,v7,v8
-             DATA SET: ./bn_delimited_read_date_time.dat
-             X: 0.5 to 4.5
- Column  1: V1 is V1 (days)(Julian days since 1-Jan-1900)
- Column  2: V2 is V2 (days)(Julian days since 1-Jan-1900)
- Column  3: V3 is V3 (days)(Julian days since 1-Jan-1900)
- Column  4: V4 is V4 (days)(Julian days since 1-Jan-1900)
- Column  5: V5 is V5 (days)(Julian days since 1-Jan-1900)
- Column  6: V6 is V6 (days)(Julian days since 1-Jan-1900)
- Column  7: V7 is V7 (days)(Julian days since 1-Jan-1900)
- Column  8: V8 is V8 (days)(Julian days since 1-Jan-1900)
-              V1     V2    V3 V4    V5       V6    V7 V8
-1   / 1:  36493.0  36218.0......  36493.0  36218.0......
-2   / 2:  36494.0  36219.0......  36494.0  36219.0......
-3   / 3:     ....     ..........  36495.0  36220.0......
-4   / 4:  36496.0  36221.0......  36496.0  36221.0......
-show data 2
-     currently SET data sets:
-    2> ./bn_delimited_read_date_time.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:4       ...       ...       ...       ...       ...
-       (Julian days since 1-Jan-1900)
- V2       V2                               1:4       ...       ...       ...       ...       ...
-       (Julian days since 1-Jan-1900)
- V3       V3                               1:4       ...       ...       ...       ...       ...
-       (Julian days since 1-Jan-1900)
- V4       V4                               1:4       ...       ...       ...       ...       ...
-       (Julian days since 1-Jan-1900)
- V5       V5                               1:4       ...       ...       ...       ...       ...
-       (Julian days since 1-Jan-1900)
- V6       V6                               1:4       ...       ...       ...       ...       ...
-       (Julian days since 1-Jan-1900)
- V7       V7                               1:4       ...       ...       ...       ...       ...
-       (Julian days since 1-Jan-1900)
- V8       V8                               1:4       ...       ...       ...       ...       ...
-       (Julian days since 1-Jan-1900)
- 
- 
-columns/type=time bn_delimited_read_date_time.dat
-list v1,v2,v3,v4,v5,v6,v7,v8
-             DATA SET: ./bn_delimited_read_date_time.dat
-             X: 0.5 to 4.5
- Column  1: V1 is V1 (hours)(Time of day)
- Column  2: V2 is V2 (hours)(Time of day)
- Column  3: V3 is V3 (hours)(Time of day)
- Column  4: V4 is V4 (hours)(Time of day)
- Column  5: V5 is V5 (hours)(Time of day)
- Column  6: V6 is V6 (hours)(Time of day)
- Column  7: V7 is V7 (hours)(Time of day)
- Column  8: V8 is V8 (hours)(Time of day)
-        V1  V2    V3       V4    V5 V6    V7       V8
-1   / 1:......  12.0000  13.7601......  12.0000  13.7601
-2   / 2:......   1.0037  14.7601......   1.0037  14.7601
-3   / 3:......     ....     ..........   2.0000  15.7500
-4   / 4:......   3.0000  16.7601......   3.0000  16.7601
-show data 2
-     currently SET data sets:
-    2> ./bn_delimited_read_date_time.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:4       ...       ...       ...       ...       ...
-       (Time of day)
- V2       V2                               1:4       ...       ...       ...       ...       ...
-       (Time of day)
- V3       V3                               1:4       ...       ...       ...       ...       ...
-       (Time of day)
- V4       V4                               1:4       ...       ...       ...       ...       ...
-       (Time of day)
- V5       V5                               1:4       ...       ...       ...       ...       ...
-       (Time of day)
- V6       V6                               1:4       ...       ...       ...       ...       ...
-       (Time of day)
- V7       V7                               1:4       ...       ...       ...       ...       ...
-       (Time of day)
- V8       V8                               1:4       ...       ...       ...       ...       ...
-       (Time of day)
- 
- 
-columns/type="da,dat,ti,tim,date, date, time, time"  bn_delimited_read_date_time.dat
-list v1,v2,v3,v4,v5,v6,v7,v8
-             DATA SET: ./bn_delimited_read_date_time.dat
-             X: 0.5 to 4.5
- Column  1: V1 is V1 (days)(Julian days since 1-Jan-1900)
- Column  2: V2 is V2 (days)(Julian days since 1-Jan-1900)
- Column  3: V3 is V3 (hours)(Time of day)
- Column  4: V4 is V4 (hours)(Time of day)
- Column  5: V5 is V5 (days)(Julian days since 1-Jan-1900)
- Column  6: V6 is V6 (days)(Julian days since 1-Jan-1900)
- Column  7: V7 is V7 (hours)(Time of day)
- Column  8: V8 is V8 (hours)(Time of day)
-              V1     V2       V3       V4       V5       V6       V7       V8
-1   / 1:  36493.0  36218.0  12.0000  13.7601  36493.0  36218.0  12.0000  13.7601
-2   / 2:  36494.0  36219.0   1.0037  14.7601  36494.0  36219.0   1.0037  14.7601
-3   / 3:     ....     ....     ....     ....  36495.0  36220.0   2.0000  15.7500
-4   / 4:  36496.0  36221.0   3.0000  16.7601  36496.0  36221.0   3.0000  16.7601
-show data 2
-     currently SET data sets:
-    2> ./bn_delimited_read_date_time.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:4       ...       ...       ...       ...       ...
-       (Julian days since 1-Jan-1900)
- V2       V2                               1:4       ...       ...       ...       ...       ...
-       (Julian days since 1-Jan-1900)
- V3       V3                               1:4       ...       ...       ...       ...       ...
-       (Time of day)
- V4       V4                               1:4       ...       ...       ...       ...       ...
-       (Time of day)
- V5       V5                               1:4       ...       ...       ...       ...       ...
-       (Julian days since 1-Jan-1900)
- V6       V6                               1:4       ...       ...       ...       ...       ...
-       (Julian days since 1-Jan-1900)
- V7       V7                               1:4       ...       ...       ...       ...       ...
-       (Time of day)
- V8       V8                               1:4       ...       ...       ...       ...       ...
-       (Time of day)
- 
- 
-columns/type="da,-,ti,-,date,-,time,-"  bn_delimited_read_date_time.dat
-list v1,v3,v5,v7
-             DATA SET: ./bn_delimited_read_date_time.dat
-             X: 0.5 to 4.5
- Column  1: V1 is V1 (days)(Julian days since 1-Jan-1900)
- Column  2: V3 is V3 (hours)(Time of day)
- Column  3: V5 is V5 (days)(Julian days since 1-Jan-1900)
- Column  4: V7 is V7 (hours)(Time of day)
-              V1     V3       V5       V7
-1   / 1:  36493.0  12.0000  36493.0  12.0000
-2   / 2:  36494.0   1.0037  36494.0   1.0037
-3   / 3:     ....     ....  36495.0   2.0000
-4   / 4:  36496.0   3.0000  36496.0   3.0000
-show data 2
-     currently SET data sets:
-    2> ./bn_delimited_read_date_time.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:4       ...       ...       ...       ...       ...
-       (Julian days since 1-Jan-1900)
- V3       V3                               1:4       ...       ...       ...       ...       ...
-       (Time of day)
- V5       V5                               1:4       ...       ...       ...       ...       ...
-       (Julian days since 1-Jan-1900)
- V7       V7                               1:4       ...       ...       ...       ...       ...
-       (Time of day)
- 
- 
-! delimiters can be used to break up individual fields
-file/form=delim/delim="/" bn_delimited_read_date_time.dat
-list V1,V2,V3,V4
-             DATA SET: ./bn_delimited_read_date_time.dat
-             X: 0.5 to 4.5
- Column  1: V1
- Column  2: V2
- Column  3: V3
- Column  4: V4
-              V1     V2                        V3                       V4
-1   / 1:  12.0000  1.00000 "99,1999-03-01,12:00, 13:45:36.5,12"       1.00000
-2   / 2:  12.0000  2.00000 "99,1999-03-02,01:00:13.5, 14:45:36.5,12"  2.00000
-3   / 3:  12.0000  3.00000 "99x,1999-03-03x,2:00x, 15:45x,12"         3.00000
-4   / 4:  12.0000  4.00000 "99,1999-03-04,03:00, 16:45:36.5, 12"      4.00000
-! ---
-sp cat bn_delimited_read_date_time.dat
-12/1/99,1999-03-01,12:00, 13:45:36.5,12/1/99,1999-03-01,12:00, 13:45:36.5
-12/2/99,1999-03-02,01:00:13.5, 14:45:36.5,12/2/99,1999-03-02,01:00:13.5, 14:45:36.5
-12/3/99x,1999-03-03x,2:00x, 15:45x,12/3/99,1999-03-03,2:00, 15:45
-12/4/99,1999-03-04,03:00, 16:45:36.5, 12/4/99,1999-03-04,03:00, 16:45:36.5
-! ---
-file/form=delim/delim="/,\," bn_delimited_read_date_time.dat
-list V1,V2,V3,V4,v5,v6,v7,v8
-             DATA SET: ./bn_delimited_read_date_time.dat
-             X: 0.5 to 4.5
- Column  1: V1
- Column  2: V2
- Column  3: V3
- Column  4: V4
- Column  5: V5
- Column  6: V6
- Column  7: V7
- Column  8: V8
-              V1     V2      V3        V4           V5           V6         V7       V8
-1   / 1:  12.0000  1.00000 "99"  "1999-03-01"  "12:00"      "13:45:36.5"  12.0000  1.00000
-2   / 2:  12.0000  2.00000 "99"  "1999-03-02"  "01:00:13.5" "14:45:36.5"  12.0000  2.00000
-3   / 3:  12.0000  3.00000 "99x" "1999-03-03x" "2:00x"      "15:45x"      12.0000  3.00000
-4   / 4:  12.0000  4.00000 "99"  "1999-03-04"  "03:00"      "16:45:36.5"  12.0000  4.00000
- file/form=delim/delim="/,\,,-" bn_delimited_read_date_time.dat
-list V1,V2,V3,V4,v5,v6,v7,v8,v9,v10
-             DATA SET: ./bn_delimited_read_date_time.dat
-             X: 0.5 to 4.5
- Column  1: V1
- Column  2: V2
- Column  3: V3
- Column  4: V4
- Column  5: V5
- Column  6: V6
- Column  7: V7
- Column  8: V8
- Column  9: V9
- Column 10: V10
-              V1     V2      V3     V4       V5      V6       V7           V8         V9       V10
-1   / 1:  12.0000  1.00000 "99"   1999.00  3.00000 "01"  "12:00"      "13:45:36.5"  12.0000  1.00000
-2   / 2:  12.0000  2.00000 "99"   1999.00  3.00000 "02"  "01:00:13.5" "14:45:36.5"  12.0000  2.00000
-3   / 3:  12.0000  3.00000 "99x"  1999.00  3.00000 "03x" "2:00x"      "15:45x"      12.0000  3.00000
-4   / 4:  12.0000  4.00000 "99"   1999.00  3.00000 "04"  "03:00"      "16:45:36.5"  12.0000  4.00000
- file/form=delim/delim="/,\,,-,:" bn_delimited_read_date_time.dat
-list V1,V2,V3,V4,v5,v6,v7,v8,v9,v10
-             DATA SET: ./bn_delimited_read_date_time.dat
-             X: 0.5 to 4.5
- Column  1: V1
- Column  2: V2
- Column  3: V3
- Column  4: V4
- Column  5: V5
- Column  6: V6
- Column  7: V7
- Column  8: V8
- Column  9: V9
- Column 10: V10
-              V1     V2      V3     V4       V5      V6     V7      V8     V9     V10
-1   / 1:  12.0000  1.00000 "99"   1999.00  3.00000 "01"   12.0000 "00"   13.0000 "45" 
-2   / 2:  12.0000  2.00000 "99"   1999.00  3.00000 "02"    1.0000 "00"   13.5000 "14" 
-3   / 3:  12.0000  3.00000 "99x"  1999.00  3.00000 "03x"   2.0000 "00x"  15.0000 "45x"
-4   / 4:  12.0000  4.00000 "99"   1999.00  3.00000 "04"    3.0000 "00"   16.0000 "45" 
- 
-! read (beginning of) CO2 data file provided by Chris Sabine (like ODV files)
-cancel data/all
-columns/skip=1 bn_delimited_read_CO2.dat
-show data/full
-     currently SET data sets:
-    1> ./bn_delimited_read_CO2.dat  (default)
- 
- name     title                             I         J         K         L         M         N
- V1       V1                               1:20480   ...       ...       ...       ...       ...
-            Data type = TEXT
-            Conversion /TYPE=TEXT
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V2       V2                               1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V3       V3                               1:20480   ...       ...       ...       ...       ...
-            Data type = TEXT
-            Conversion /TYPE=TEXT
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V4       V4                               1:20480   ...       ...       ...       ...       ...
-       (Julian days since 1-Jan-1900)
-            Data type = NUMERIC
-            Conversion /TYPE=DATE
-             days on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V5       V5                               1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V6       V6                               1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V7       V7                               1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V8       V8                               1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V9       V9                               1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V10      V10                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V11      V11                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V12      V12                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V13      V13                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V14      V14                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V15      V15                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V16      V16                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V17      V17                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V18      V18                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V19      V19                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V20      V20                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V21      V21                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V22      V22                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V23      V23                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V24      V24                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V25      V25                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V26      V26                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V27      V27                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V28      V28                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V29      V29                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V30      V30                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V31      V31                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V32      V32                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V33      V33                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V34      V34                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V35      V35                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V36      V36                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V37      V37                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V38      V38                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V39      V39                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V40      V40                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V41      V41                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V42      V42                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V43      V43                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V44      V44                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V45      V45                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V46      V46                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V47      V47                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V48      V48                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V49      V49                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V50      V50                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V51      V51                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V52      V52                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V53      V53                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V54      V54                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V55      V55                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V56      V56                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V57      V57                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V58      V58                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V59      V59                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V60      V60                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V61      V61                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V62      V62                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V63      V63                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V64      V64                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V65      V65                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V66      V66                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V67      V67                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V68      V68                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V69      V69                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V70      V70                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V71      V71                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- V72      V72                              1:20480   ...       ...       ...       ...       ...
-            Data type = NUMERIC
-            Conversion /TYPE=NUMERIC
-               on grid EZ with -1.E+34 for missing data
-             X=0.5:20481  
- 
- /DELIMITERS="\t,\,"
- /FORMAT = DELIMITED
- /SKIP = 1
- /COLUMNS = 72
-list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25,v26
-             DATA SET: ./bn_delimited_read_CO2.dat
-             X: 0.5 to 19.5
- Column  1: V1
- Column  2: V2
- Column  3: V3
- Column  4: V4 is V4 (days)(Julian days since 1-Jan-1900)
- Column  5: V5
- Column  6: V6
- Column  7: V7
- Column  8: V8
- Column  9: V9
- Column 10: V10
- Column 11: V11
- Column 12: V12
- Column 13: V13
- Column 14: V14
- Column 15: V15
- Column 16: V16
- Column 17: V17
- Column 18: V18
- Column 19: V19
- Column 20: V20
- Column 21: V21
- Column 22: V22
- Column 23: V23
- Column 24: V24
- Column 25: V25
- Column 26: V26
-                V1     V2     V3    V4       V5       V6       V7       V8       V9       V10      V11      V12      V13       V14      V15      V16      V17       V18      V19      V20       V21      V22      V23      V24      V25      V26
-1    /  1: "I8SI9S"  4.00000 "B"  34671.0  94.9940 -30.3000  1945.00    10.00  21.1028  35.9408  0.00000  36.0000  0.000000  1.00000     9.80  224.641  0.000000   0.1172  0.00000  0.000000  0.00000   1.0156  0.00000  0.11621  0.00000  2.22900
-2    /  2: "I8SI9S"  4.00000 "B"  34671.0  94.9940 -30.3000  1945.00    54.00  19.8913  35.9437  0.00000  35.0000  0.000000  1.00000    54.70  233.185  0.000000   0.1465  0.00000  0.000000  0.00000   1.0351  0.00000  0.13769  0.00000  2.43100
-3    /  3: "I8SI9S"  4.00000 "B"  34671.0  94.9940 -30.3000  1945.00    79.00  19.0138  35.9186  0.00000  34.0000  0.000000  1.00000    79.50  237.026  0.000000   0.1660  0.00000  0.000000  0.00000   1.0449  0.00000  0.13085  0.00000  2.51600
-4    /  4: "I8SI9S"  4.00000 "B"  34671.0  94.9940 -30.3000  1945.00   104.00  18.0026  35.8627  0.00000  33.0000  0.000000  1.00000   104.60  233.766  0.000000   0.1855  0.00000  0.000000  0.00000   1.0645  0.00000  0.16602  0.00000  2.65000
-5    /  5: "I8SI9S"  4.00000 "B"  34671.0  94.9940 -30.3000  1945.00   154.00  16.3595  35.7126  0.00000  32.0000  0.000000  1.00000   155.10  230.216  0.000000   0.9083  0.00000  0.146501  0.00000   0.8985  0.00000  0.26566  0.00000  2.84600
-6    /  6: "I8SI9S"  4.00000 "B"  34671.0  94.9940 -30.3000  1945.00   204.00  14.8461  35.5541  0.00000  31.0000  0.000000  1.00000   206.00  222.307  0.000000   3.7899  0.00000  0.009768  0.00000   1.4359  0.00000  0.44542  0.00000  2.95400
-7    /  7: "I8SI9S"  4.00000 "B"  34671.0  94.9940 -30.3000  1945.00   253.00  13.7175  35.3809  0.00000  29.0000  0.000000  1.00000   255.20  227.612  0.000000   5.5293  0.00000  0.009769  0.00000   1.6315  0.00000  0.55880  0.00000  3.00600
-8    /  8: "I8SI9S"  4.00000 "B"  34671.0  94.9940 -30.3000  1945.00   254.00  13.7070  35.3835  0.00000  30.0000  0.000000  1.00000   255.60  227.350  0.000000   5.5098  0.00000  0.009769  0.00000   1.7877  0.00000  0.55489  0.00000  2.99600
-9    /  9: "I8SI9S"  4.00000 "B"  34671.0  94.9940 -30.3000  1945.00   305.00  12.6234  35.2123  0.00000  28.0000  0.000000  1.00000   307.20  230.868  0.000000   7.6502  0.00000  0.009770  0.00000   2.1593  0.00000  0.68588  0.00000  3.13400
-10   / 10: "I8SI9S"  4.00000 "B"  34671.0  94.9940 -30.3000  1945.00   353.00  12.0102  35.1165  0.00000  27.0000  0.000000  1.00000   355.70  235.378  0.000000   8.7158  0.00000  0.009771  0.00000   2.5209  0.00000  0.75335  0.00000  3.19000
-11   / 11: "I8SI9S"  4.00000 "B"  34671.0  94.9940 -30.3000  1945.00   404.00  11.4592     ....  9.00000  26.0000  0.000000  1.00000   406.90     ....  0.000000     ....  9.00000      ....  9.00000     ....  9.00000     ....  9.00000  3.25500
-12   / 12: "I8SI9S"  4.00000 "B"  34671.0  94.9940 -30.3000  1945.00   452.00  11.0375  34.9575  0.00000  25.0000  0.000000  1.00000   455.90  239.899  0.000000  10.9546  0.00000  0.000000  0.00000   3.0489  0.00000  0.88438  0.00000  3.24500
-13   / 13: "I8SI9S"  4.00000 "B"  34671.0  94.9940 -30.3000  1945.00   502.00  10.5797  34.8825  0.00000  24.0000  0.000000  1.00000   506.00  241.090  0.000000  12.1377  0.00000  0.000000  0.00000   3.4009  0.00000  0.95871  0.00000  3.19500
-14   / 14: "I8SI9S"  4.00000 "B"  34671.0  94.9940 -30.3000  1945.00   601.00   9.8037  34.7585  0.00000  23.0000  0.000000  1.00000   605.90  238.538  0.000000  14.4357  0.00000  0.000000  0.00000   4.2711  0.00000  1.11419  0.00000     ....
-15   / 15: "I8SI9S"  4.00000 "B"  34671.0  94.9940 -30.3000  1945.00   701.00   9.0245  34.6510  0.00000  22.0000  0.000000  1.00000   706.70  229.219  0.000000  17.5353  0.00000  0.000000  0.00000   6.1774  0.00000  1.31173  0.00000  2.45400
-16   / 16: "I8SI9S"  4.00000 "B"  34671.0  94.9940 -30.3000  1945.00   800.00   7.6879  34.5292  0.00000  21.0000  0.000000  1.00000   807.00  206.678  0.000000  22.7373  0.00000  0.000000  0.00000  13.2162  0.00000  1.63345  0.00000  1.32000
-17   / 17: "I8SI9S"  4.00000 "B"  34671.0  94.9940 -30.3000  1945.00   899.00   6.2124  34.4434  0.00000  20.0000  0.000000  1.00000   907.30  194.602  0.000000  27.2943  0.00000  0.000000  0.00000  23.8630  0.00000  1.92683  0.00000  0.73200
-18   / 18: "I8SI9S"  4.00000 "B"  34671.0  94.9940 -30.3000  1945.00   999.00   4.9587  34.4055  0.00000  19.0000  0.000000  1.00000  1008.40  186.926  0.000000  30.2768  0.00000  0.000000  0.00000  36.3870  0.00000  2.15272  0.00000  0.42900
-19   / 19: "I8SI9S"  4.00000 "B"  34671.0  94.9940 -30.3000  1945.00  1098.00   4.3083  34.4383  0.00000  18.0000  0.000000  1.00000  1109.00  171.821  0.000000  32.2020  0.00000  0.000000  0.00000  50.4537  0.00000  2.29735  0.00000  0.19800
-list/i=8:14 v11,v19,v21,v23,v25
-             DATA SET: ./bn_delimited_read_CO2.dat
-             X: 7.5 to 14.5
- Column  1: V11
- Column  2: V19
- Column  3: V21
- Column  4: V23
- Column  5: V25
-               V11     V19      V21      V23      V25
-8    /  8:  0.00000  0.00000  0.00000  0.00000  0.00000
-9    /  9:  0.00000  0.00000  0.00000  0.00000  0.00000
-10   / 10:  0.00000  0.00000  0.00000  0.00000  0.00000
-11   / 11:  9.00000  9.00000  9.00000  9.00000  9.00000
-12   / 12:  0.00000  0.00000  0.00000  0.00000  0.00000
-13   / 13:  0.00000  0.00000  0.00000  0.00000  0.00000
-14   / 14:  0.00000  0.00000  0.00000  0.00000  0.00000
-(set variable/bad=9 v11; set variable/bad=9 v19;set variable/bad=9 v21;set variable/bad=9 v23;set variable/bad=9 v25)
-list/i=8:14 v11,v19,v21,v23,v25
-             DATA SET: ./bn_delimited_read_CO2.dat
-             X: 7.5 to 14.5
- Column  1: V11
- Column  2: V19
- Column  3: V21
- Column  4: V23
- Column  5: V25
-                V11     V19       V21       V23       V25
-8    /  8:  0.000000  0.000000  0.000000  0.000000  0.000000
-9    /  9:  0.000000  0.000000  0.000000  0.000000  0.000000
-10   / 10:  0.000000  0.000000  0.000000  0.000000  0.000000
-11   / 11:      ....      ....      ....      ....      ....
-12   / 12:  0.000000  0.000000  0.000000  0.000000  0.000000
-13   / 13:  0.000000  0.000000  0.000000  0.000000  0.000000
-14   / 14:  0.000000  0.000000  0.000000  0.000000  0.000000
-! ... read column headings, only -- 1 record
-define axis/z=1:1:1 z1
-define grid/z=z1 g1
-columns/grid=g1 bn_delimited_read_CO2.dat
-list/nohead v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25,v26
-I / *:    "Cruise" "Station" "Type" "mm/dd/yy" "Lon[E]" "Lat[N]" "BotDep[m]" "Depth[m]" "Temperature[C]" "Salinity" "QF" "Bottle" "QF" "Cast" "Pressure[dbar]" "Oxygen[umol/kg]" "QF" "Nitrate[umol/kg]" "QF" "Nitrite[umol/kg]" "QF" "Silicate[umol/kg]" "QF" "Phosphate[umol/kg]" "QF" "CFC-11[pmol/kg]"
- 
-! deliberate syntax errors
-set mode ignore
-columns/type="d, da2,date2"  bn_delimited_read_date_time.dat
-columns/type="da,da2,date2"  bn_delimited_read_date_time.dat
-columns/type="da,da, date2"  bn_delimited_read_date_time.dat
-columns/var="aa.b"  bn_delimited_read_date_time.dat
-file/form=delim/delim="/,,,:" bn_delimited_read_date_time.dat
-cancel mode ignore
- 
- 
- 
-! ******** V5.41 Additions below ***********
- 
-GO bn_reset
-cancel mode verify
-GO bn541_bug_fixes
-! bn541_bug_fixes.jnl
-! test various fixes that went into version 5.41
-! 3/02 *acm*
-!
-go bn_reset
-cancel mode verify
- 
-! tics on horiz log axes were wrong; (plot only)
-! GO bn_reset
-! tested in bn_logaxes (the plots will be different in 5.40 and 5.41)
- 
- 
-!missing vertices in polygon call
-GO bn_reset
-cancel mode verify
-GO err540_polymissing
-! err540_polymissing.jnl
-! 3/02 *acm*
-! A previous fix to polygon cut off loading of poly's if a vertex was
-! missing.  restore old behavior.  (polygon_set_up.F)
- 
- 
-use coads_climatology
-let xpts0=x[g=sst,x=110:150,y=20:40,l=1]*y[g=sst,x=110:150,y=20:40,l=1]*0+x[g=sst,x=110:150,y=20:40,l=1]
-let ypts0=x[g=sst,x=110:150,y=20:40,l=1]*y[g=sst,x=110:150,y=20:40,l=1]*0+y[g=sst,x=110:150,y=20:40,l=1]
-let values0=sst[x=110:150,y=20:40,l=1]
-LET xpts=ysequence(xpts0)
-LET ypts=ysequence(ypts0)
-LET values=ysequence(values0)
- 
-LET xtriangle = {0,1,2}
-LET ytriangle = {0,2,0}
-LET xvertex = xpts+xtriangle
-LET yvertex = ypts+ytriangle
-polygon xvertex,yvertex,values
- 
-let xvertex1= IF values NE -1E+34 THEN xvertex
-polygon  xvertex1,yvertex,values
- 
-! dynamic memory setup for POLYGON
-! GO bn_reset
-! see ~ansley/ans_ferret/users/brockmann/err540/err540_polygon2.jnl
- 
-! formatting axis label numbers
-GO bn_reset
-cancel mode verify
-GO err540_ill_format.jnl
-! err540_ill_format.jnl
-! 3/02 *acm*
- 
-!  formatting of small-magnitude negative numbers on axes is wrong
-!  e.g. -0.002 becomes ******
-!  fix in frmt.F
- 
-plot/i=1:100  0.001 - 0.002/ i
- 
-plot/trans/i=1:100  0.001 - 0.002/ i
- 
- 
- 
- 
-! variable permutation in netCDF writes
-GO bn_reset
-cancel mode verify
-GO err540_write_order
-! err540_write_order.jnl
-! *sh* 3/02
- 
-! the permutation of gridsvariables during writing is inferred *incorrectly*
-! from the context of the first variable only in xeq_list.F
- 
-! I think (??) that we need to replace this
-!   * ... if no axis order was specified determine the permutation
-!           IF (.NOT.permute) CALL GET_CX_DIMS(cx,ndim, perm )
-!           DO 200 ilist = 1, num_uvars_in_cmnd
-!              CALL CREATE_PERMUTATION(  memory,
- 
-! with this
-!   * ... if no axis order was specified determine the permutation
-!           DO 200 ilist = 1, num_uvars_in_cmnd
-!              IF (.NOT.permute) CALL GET_CX_DIMS(is_cx(ilist),ndim, perm )
-!              CALL CREATE_PERMUTATION(  memory,
- 
- 
-define axis/x=1:2:1 x12
-define axis/y=3:4:1 y34
-define axis/z=5:6:1 z56
- 
-let yz =              10*y[gy=y34] + 100*z[gz=z56]
-let xyz = x[gx=x12] + 10*y[gy=y34] + 100*z[gz=z56]
- 
-! before
-list xyz
-             VARIABLE : X[GX=X12] + 10*Y[GY=Y34] + 100*Z[GZ=Z56]
-             SUBSET   : 2 by 2 by 2 points (X-Y-Z)
-              1        2     
-              1        2
- ---- K:1 Z:   5
- 3   / 1:  531.000  532.000
- 4   / 2:  541.000  542.000
- ---- K:2 Z:   6
- 3   / 1:  631.000  632.000
- 4   / 2:  641.000  642.000
- 
-save/clobber/file=test_good_order.cdf xyz, yz
-save/clobber/file=test_bad_order.cdf yz, xyz
-cancel var/all
- 
-! after
-use test_good_order
-list xyz
-             VARIABLE : X[GX=X12] + 10*Y[GY=Y34] + 100*Z[GZ=Z56]
-             FILENAME : test_good_order.cdf
-             SUBSET   : 2 by 2 by 2 points (X-Y-Z)
-              1        2     
-              1        2
- ---- K:1 Z:   5
- 3   / 1:  531.000  532.000
- 4   / 2:  541.000  542.000
- ---- K:2 Z:   6
- 3   / 1:  631.000  632.000
- 4   / 2:  641.000  642.000
-use test_bad_order
-list xyz
-             VARIABLE : X[GX=X12] + 10*Y[GY=Y34] + 100*Z[GZ=Z56]
-             FILENAME : test_bad_order.cdf
-             SUBSET   : 2 by 2 by 2 points (X-Y-Z)
-              1        2     
-              1        2
- ---- K:1 Z:   5
- 3   / 1:  531.000  532.000
- 4   / 2:  541.000  542.000
- ---- K:2 Z:   6
- 3   / 1:  631.000  632.000
- 4   / 2:  641.000  642.000
- 
-sp rm -f test_good_order.cdf
-sp rm -f test_bad_order.cdf
- 
-!@AVE error when plotting unlike grids together
-GO bn_reset
-cancel mode verify
-GO err540_ax_ave
-!err540_ax_ave.jnl
-! 3/02 *acm
-! @AVE getting wrong set of indices for forming the average, having
-! loaded range of indices on the first plot.  ave_regrid_1_axis.F
- 
-use coads_climatology
-def axis/edges/t=1:7306:1461/t0="01-jan-0000"/unit=hour t2
-plot/x=140w/y=0/sym/line sst,sst[gt=t2 at ave]
- 
-def axis/edges/t=1:1600:731/t0="01-jan-0000"/unit=hour t2
-plot/x=140w/y=0/sym/line sst,sst[gt=t2 at ave]
- 
-!Make PPL AXSET settings persist, but not settings made w/ qualifiers /AXES= or /NOAXES
-GO bn_reset
-cancel mode verify
-GO err540_axset
-!err540_axset.jnl
-! 3/02 *acm
-! backwards compatibility: PPL AXSET settings persist, and
-! PLOT/AXES  or PLOT/NOAXES override these, but only for one plot.
- 
-! define a 6 viewport window
-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
- 
-SET VIEW ul6;PLOT/NOAXES/I=1:10/TITLE="PLOT/NOAXES" 1./I
-SET VIEW um6;SHADE/I=1:10/J=1:7/TITLE="No qualifiers" I+J
- 
-PPL AXSET 0,1,1,0
-SET VIEW ur6;FILL/I=1:10/J=1:7/TITLE="with PPL AXSET 0,1,1,0" I+J
- 
-SET VIEW ll6;CONTOUR/AXES=1,0,0,1/I=1:10/J=1:7/TITLE="CONTOUR/AXES=" I+J
- 
-SET VIEW lm6;VECTOR/I=1:10/J=1:7/TITLE="Prev. PPL AXSET setting" I+J, I-0.5*J
- 
-SET VIEW lr6;PLOT/i=1:10/SET/TITLE="plot/SET, new setting" 1./I
-PPL AXSET 0,1,0,0
-PPL PLOT
- 
-PPL axset 1,1,1,1
- 
- 
-!Previously couldn't do PLOT/VS/DASH, but no reason not to allow it.
-GO bn_reset
-cancel mode verify
-GO err540_vs_dash
-! PLOT/VS/DASH  previously was not allowed.
- 
-define axis/x=20e:10w:10/unit=degree xax
-define axis/y=60s:60n/unit=degree/npoints=41 yax
-define axis/z=0:1000:40/unit=meter/depth zax
-define axis/t=1-jan-1960:15-dec-1999:5/unit=days tax
-define grid/x=xax/y=yax/z=zax/t=tax gformat
- 
-*  XZ shade with VS/DASH/OVER
-set grid gformat
-shade/y=-60:60/z=0:1000 sin(y/3)*ABS(z)^1.5
- 
-let ypts = {-60,-50,-40,-30,-20,-10,  0,  8, 15, 30, 35, 40, 60}
-let zpts = {700,667,669,801,732,755,765,789,808,788,822,699,700}
- 
-plot/vs/over/thick/line/dash ypts,zpts
-plot/vs/over/thick=3/line/dash=0.05,0.05,0.15,0.15 ypts,zpts+100
- 
-*  XY shade with VS/DASH/OVER
-set grid abstract
-shade/pal=grayscale/x=1:100/y=101:200 sin(x/6)*cos(y/9)
- 
-let xpts = {  0,  8, 12, 15, 23, 28, 30, 35, 40, 44, 54, 60, 75}
-let ypts = {142,147,149,141,142,155,145,149,148,148,152,146,143}
- 
-plot/vs/over/thick/color=red/dash xpts,ypts
-plot/vs/over/thick=3/color=red/dash=0.05,0.05,0.15,0.15 xpts+10,ypts+30
- 
-!  Here, test that settings made with PPL LINE command persist,
-! whereas PLOT/DASH settings do not.
- 
-let ypts=y[gy=1:80:1]
-ppl line, 2, 0, 4, 0, 0, 0.04, 0.04, 0.15,0.15
-ppl line, 3, 0, 4, 0, 0, 0.2, 0.2, 0.2,0.2
-plot/thick/dash/vlimits=0:1000 50*sin(ypts/3)+100, 30*cos(ypts/3)+200
-plot/over/color=red/thick/dash=0.04,0.04,0.04,0.04 50*sin(ypts/3)+400, 30*cos(ypts/3)+500
-plot/over/thick/dash/color=blue 50*sin(ypts/3)+700, 30*cos(ypts/3)+800, 20*cos(ypts/5)+900, 20*sin(ypts)+950
- 
- 
-!overlay on polygon plots
-GO bn_reset
-cancel mode verify
-GO err540_poly_overlay
-!overlay on polygon plots
- 
-polygon/thick/color=red/palette=blue/axes=1,0,1,0 {1,2,1}, {2,1,0.5}
-shade/over/i=1:2/j=0:2/patt i+j
- 
-!polytube failed on plot/over; go polytube, because YAXIS_MIN, _MAX not defined.
-GO bn_reset
-cancel mode verify
-GO err540_axis_symbols
-! err540_axis_symbols.jnl
-! 3/02 *acm*
-! Define YAXIS_MIN and YAXIS_MAX after PPLUS auto-scaling is done.
-! e.g. polytube failed overlaying on PLOT/VS plots, because symbols
-! YAXIS_MIN and YAXIS_MAX or the XAXIS symbols aren't set.
-! Note: when running in the benchmark suite, the go polytube command
-!       causes the job to hang.
- 
-can var/all
- 
-let xpts = i[i=1:100]
-set view left
-plot/line/vs xpts, sin(xpts/10)
-sh sym YAXIS_MAX
-YAXIS_MAX = "1.000000"
-!go polytube polygon/over  xpts, sin(xpts/10), sin(xpts/10)
- 
-set view right
- 
-let xpts = {3,5,6,7,8,9,10,13,15,16,17,18,19,21,22}
-let ypts = {1,2,3,4,5,6, 7, 8, 9, 4, 5, 6, 7, 8, 9}
-let zpts = {1,2,3,4,5,1, 2, 3, 4, 5, 1, 2, 3, 4, 5}
- 
-plot/vs/trans/line xpts,ypts
-sh sym XAXIS_MAX
-XAXIS_MAX = "10.00000"
-!go polytube polygon/trans/over xpts,ypts,zpts
- 
-!nested repeat loops and parsing parentheses
-GO bn_reset
-cancel mode verify
-GO err540_parse_repeat
-! err540_parse_repeat.jnl
-! 3/03 *acm
- 
-!yes? rep/k=1:2 (rep/j=1:1 (say hello))
-!-> REPEAT: K=1
-!-> REPEAT: J=1              <-----------lots of these
-!-> REPEAT: J=1
-!...
-! **ERROR: stack overflow
-!rep/j=1:1 (rep/j=1:1 (say hello))
-!Command file, command group, or REPEAT execution aborted
- 
- 
-!Cause is parsing parentheses in REPEAT section of parse_command.F
- 
-rep/k=1:2 (rep/j=1:1 (say hello))
-!-> REPEAT: K=1
-!-> REPEAT: J=1
-hello
-!-> REPEAT: K=2
-!-> REPEAT: J=1
-hello
-rep/k=1:2 (rep/j=1:1 say hello; say why not)
-!-> REPEAT: K=1
-!-> REPEAT: J=1
-hello
-why not
-!-> REPEAT: K=2
-!-> REPEAT: J=1
-hello
-why not
-rep/k=1:2 (rep/j=1:1 (say hello; (say why not)))
-!-> REPEAT: K=1
-!-> REPEAT: J=1
-hello
-why not
-!-> REPEAT: K=2
-!-> REPEAT: J=1
-hello
-why not
- 
-! appending a scalar to NetCDF file
-GO bn_reset
-cancel mode verify
-GO err540_cd_use_recdim
-! err540_cd_use_recdim
-! 3/02 *sh*
- 
-! crash appending scalar variable into file
- 
-define axis/x=1:50:1 xprofile
-define axis/y=0:360/npoints=10/edges ylon
-define axis/z=-90:90/npoints=10/edges zlat
-define axis/t=1-jan-1900:31-dec-1995/T0=1-jan-1900/npoints=10/edges tdate
- 
-let maxprof = 5
-let temp = X[gx=xprofile] + Y[gy=ylon] + Z[gz=zlat] + T[gt=tdate]
- 
-save/clobber/file=profiles.nc  temp   ! 4D variable
-save/append/file=profiles.nc maxprof  ! append a scalar variable
- 
-use profiles.nc
-sh data
-     currently SET data sets:
-    1> ./profiles.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     X[GX=XPROFILE] + Y[GY=YLON] + Z  1:50      1:10      1:10      1:10      ...       ...
- MAXPROF  5                                ...       ...       ...       ...       ...       ...
- 
-sp rm -f profiles.nc
- 
-! ================================= quit
-!save/append/file=profiles.nc maxprof
-!
-! LISTing to file profiles.nc
-!Subscript out of range on file cd_use_recdim.F, line 97,
-!procedure cd_use_recdim.
-!Subscript number 1 has value 0 in array vdims.
-!Abort
- 
- 
- 
- 
-!missing data in xpts,ypts sample points wasnt checked
-go bn_reset
-cancel mode verify
-GO err540_samplexy_missing
-! err540_samplexy_missing.jnl
-! 3/03 *acm
- 
-! previously missing data in the sample points caused Ferret to hang
- 
-use coads_climatology
-let asst = samplexy(sst, {171,173,-1.e34}, {-1,1,13})
-list asst
-             VARIABLE : SAMPLEXY(SST, {171,173,-1.E34}, {-1,1,13})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 by 3 points (X-TIME)
-                      1        2        3     
-                      1        2        3
- 16-JAN      / 1:  29.0045  27.8955     ....
- 15-FEB      / 2:  28.5508  28.2499     ....
- 17-MAR      / 3:  28.8764  28.4775     ....
- 
-let asst = samplexy(sst, {171,173,169}, {-1,,13})
-list asst
-             VARIABLE : SAMPLEXY(SST, {171,173,169}, {-1,,13})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 by 3 points (X-TIME)
-                      1        2        3     
-                      1        2        3
- 16-JAN      / 1:  29.0045     ....  26.9596
- 15-FEB      / 2:  28.5508     ....  26.7875
- 17-MAR      / 3:  28.8764     ....  27.1092
- 
-! test the fixed delta stride bug
-go bn_reset
-cancel mode verify
-GO err540_strides_rev.jnl
-! err540_strides_rev.jnl
- 
-! reported Feb '02
-! fixed April 17, '02
- 
-! Symptom: plots appear to be "tiled" -- repreating content
- 
-! file test_100x100 has a diagonal line of 1s in a field of 0s
-sp rm -f test_100x100.nc
-set region/i=1:100/j=1:100
-let a0 = 0
-let a = if i eq j then 1 else a0
-!shade a
-save/file=test_100x100.nc a
-cancel data/all
-cancel var/all
- 
-! works fine in V5.33
-! try these lines for reference
-!    yes? use test_100x100.nc
-!    yes? shade a
-!    yes? shade a[i=1:100:10]
- 
-! explanation of bug:
-! Following the implicit regrid in IS_REGRID the resultant cx did not
-! have the delta value(s) removed, so the mr thinks
-! that it is 1:10:10 instead of simply 1:10
- 
-! this causes an inadequate amount of memory to be allocated and
-! subsequent variables try to occupy the same memory already in use
-! COPY_GRID is where the tiling effect happens, though it is not the
-! cause of the problem
- 
-set mode stupid
-set mode diag
-set mem/size=0.05
-show mem/free
- Current size of FERRET memory cache: 0.2 MegaWords  (1 word = 4 bytes)
-            total memory table slots: 500
-            total memory blocks: 2000
-            memory block size: 100
- 
-            number of free memory blocks: 2000
-            largest free region: 2000
-            number of free regions: 1
-            free memory table slots: 500
-            number of UN-CACHED variables: 0
- 
-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)          (AX010)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G005)          (AX010)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G005)          (AX010)   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)          (AX010)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: A --> (G005)           @XACT
- strip reversing A on Y axis:     1   100 dset:   1
- rdstride A        C:  8 dset:   1 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing reversing A on Y axis:     1   100 dset:   1
- -DELETE A        M:  1 dset:   1 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  A        M:  1 dset:   1 I:    1   10  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M:  2 dset:   1 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G005)          (AX010)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
-             VARIABLE : IF I EQ J THEN 1 ELSE A0
-                        regrid: 10 delta on X
-             FILENAME : test_100x100.nc
-             SUBSET   : 10 by 100 points (X-Y)
-               1   11  21  31  41  51  61  71  81  91  
-                1   2   3   4   5   6   7   8   9  10
- 1     /   1:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 2     /   2:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 3     /   3:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 4     /   4:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 5     /   5:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 6     /   6:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 7     /   7:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 8     /   8:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 9     /   9:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 10    /  10:  0.  0.  0.  0.  0.  0.  0.  0.  0.  1.
- 11    /  11:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 12    /  12:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 13    /  13:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 14    /  14:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 15    /  15:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 16    /  16:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 17    /  17:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 18    /  18:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 19    /  19:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 20    /  20:  0.  0.  0.  0.  0.  0.  0.  0.  1.  0.
- 21    /  21:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 22    /  22:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 23    /  23:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 24    /  24:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 25    /  25:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 26    /  26:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 27    /  27:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 28    /  28:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 29    /  29:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 30    /  30:  0.  0.  0.  0.  0.  0.  0.  1.  0.  0.
- 31    /  31:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 32    /  32:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 33    /  33:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 34    /  34:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 35    /  35:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 36    /  36:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 37    /  37:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 38    /  38:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 39    /  39:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 40    /  40:  0.  0.  0.  0.  0.  0.  1.  0.  0.  0.
- 41    /  41:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 42    /  42:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 43    /  43:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 44    /  44:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 45    /  45:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 46    /  46:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 47    /  47:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 48    /  48:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 49    /  49:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 50    /  50:  0.  0.  0.  0.  0.  1.  0.  0.  0.  0.
- 51    /  51:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 52    /  52:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 53    /  53:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 54    /  54:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 55    /  55:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 56    /  56:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 57    /  57:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 58    /  58:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 59    /  59:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 60    /  60:  0.  0.  0.  0.  1.  0.  0.  0.  0.  0.
- 61    /  61:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 62    /  62:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 63    /  63:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 64    /  64:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 65    /  65:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 66    /  66:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 67    /  67:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 68    /  68:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 69    /  69:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 70    /  70:  0.  0.  0.  1.  0.  0.  0.  0.  0.  0.
- 71    /  71:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 72    /  72:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 73    /  73:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 74    /  74:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 75    /  75:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 76    /  76:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 77    /  77:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 78    /  78:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 79    /  79:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 80    /  80:  0.  0.  1.  0.  0.  0.  0.  0.  0.  0.
- 81    /  81:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 82    /  82:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 83    /  83:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 84    /  84:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 85    /  85:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 86    /  86:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 87    /  87:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 88    /  88:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 89    /  89:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 90    /  90:  0.  1.  0.  0.  0.  0.  0.  0.  0.  0.
- 91    /  91:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 92    /  92:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 93    /  93:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 94    /  94:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 95    /  95:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 96    /  96:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 97    /  97:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 98    /  98:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 99    /  99:  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
- 100   / 100:  1.  0.  0.  0.  0.  0.  0.  0.  0.  0.
-show grid
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G005)
-    GRID (G005)
- name       axis              # pts   start                end
- (AX010)   X                   10 r   1                    91
- YAX1_100  Y                  100 r   1                    100
- normal    Z
- normal    T
- normal    E
- normal    F
- 
-! should be a diagonal path of steps all the way across the plot
-shade a[i=1:100:10]
- eval    EX#1     C:  4 dset:   1 I:    1  100  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G005)          (AX010)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: A --> (G005)           @XACT
- strip reversing A on Y axis:     1   100 dset:   1
- rdstride A        C:  8 dset:   1 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing reversing A on Y axis:     1   100 dset:   1
- -DELETE A        M:  2 dset:   1 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  A        M:  2 dset:   1 I:    1   10  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M:  3 dset:   1 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G005)          (AX010)   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
-ppl list stats
-
-
-         DATA OF TYPE CONTOUR                       
-                   MIN            MAX
-         X     1.0000E+00     9.1000E+01
-         Y     1.0000E+00     1.0000E+02
-         Z     0.0000E+00     1.0000E+00
-         NX=  10 NY= 100
-ppl list data  ! make screen wide -- shows the 1's matching the plot
-
-
-         DATA OF TYPE CONTOUR                       
-                   MIN            MAX
-         X     1.0000E+00     9.1000E+01
-         Y     1.0000E+00     1.0000E+02
-         Z     0.0000E+00     1.0000E+00
-         NX=  10 NY= 100
-                  1         2         3         4         5         6         7
-           1  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-           2  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-           3  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-           4  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-           5  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-           6  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-           7  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-           8  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-           9  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          10  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          11  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          12  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          13  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          14  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          15  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          16  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          17  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          18  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          19  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          20  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          21  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          22  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          23  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          24  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          25  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          26  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          27  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          28  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          29  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          30  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          31  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          32  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          33  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          34  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          35  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          36  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          37  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          38  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          39  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          40  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  1.00E+00
-          41  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          42  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          43  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          44  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          45  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          46  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          47  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          48  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          49  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          50  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  1.00E+00  0.00E+00
-          51  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          52  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          53  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          54  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          55  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          56  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          57  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          58  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          59  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          60  0.00E+00  0.00E+00  0.00E+00  0.00E+00  1.00E+00  0.00E+00  0.00E+00
-          61  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          62  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          63  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          64  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          65  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          66  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          67  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          68  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          69  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          70  0.00E+00  0.00E+00  0.00E+00  1.00E+00  0.00E+00  0.00E+00  0.00E+00
-          71  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          72  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          73  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          74  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          75  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          76  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          77  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          78  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          79  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          80  0.00E+00  0.00E+00  1.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          81  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          82  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          83  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          84  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          85  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          86  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          87  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          88  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          89  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          90  0.00E+00  1.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          91  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          92  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          93  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          94  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          95  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          96  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          97  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          98  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-          99  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-         100  1.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
-
-
-                  8         9        10
-           1  0.00E+00  0.00E+00  0.00E+00
-           2  0.00E+00  0.00E+00  0.00E+00
-           3  0.00E+00  0.00E+00  0.00E+00
-           4  0.00E+00  0.00E+00  0.00E+00
-           5  0.00E+00  0.00E+00  0.00E+00
-           6  0.00E+00  0.00E+00  0.00E+00
-           7  0.00E+00  0.00E+00  0.00E+00
-           8  0.00E+00  0.00E+00  0.00E+00
-           9  0.00E+00  0.00E+00  0.00E+00
-          10  0.00E+00  0.00E+00  1.00E+00
-          11  0.00E+00  0.00E+00  0.00E+00
-          12  0.00E+00  0.00E+00  0.00E+00
-          13  0.00E+00  0.00E+00  0.00E+00
-          14  0.00E+00  0.00E+00  0.00E+00
-          15  0.00E+00  0.00E+00  0.00E+00
-          16  0.00E+00  0.00E+00  0.00E+00
-          17  0.00E+00  0.00E+00  0.00E+00
-          18  0.00E+00  0.00E+00  0.00E+00
-          19  0.00E+00  0.00E+00  0.00E+00
-          20  0.00E+00  1.00E+00  0.00E+00
-          21  0.00E+00  0.00E+00  0.00E+00
-          22  0.00E+00  0.00E+00  0.00E+00
-          23  0.00E+00  0.00E+00  0.00E+00
-          24  0.00E+00  0.00E+00  0.00E+00
-          25  0.00E+00  0.00E+00  0.00E+00
-          26  0.00E+00  0.00E+00  0.00E+00
-          27  0.00E+00  0.00E+00  0.00E+00
-          28  0.00E+00  0.00E+00  0.00E+00
-          29  0.00E+00  0.00E+00  0.00E+00
-          30  1.00E+00  0.00E+00  0.00E+00
-          31  0.00E+00  0.00E+00  0.00E+00
-          32  0.00E+00  0.00E+00  0.00E+00
-          33  0.00E+00  0.00E+00  0.00E+00
-          34  0.00E+00  0.00E+00  0.00E+00
-          35  0.00E+00  0.00E+00  0.00E+00
-          36  0.00E+00  0.00E+00  0.00E+00
-          37  0.00E+00  0.00E+00  0.00E+00
-          38  0.00E+00  0.00E+00  0.00E+00
-          39  0.00E+00  0.00E+00  0.00E+00
-          40  0.00E+00  0.00E+00  0.00E+00
-          41  0.00E+00  0.00E+00  0.00E+00
-          42  0.00E+00  0.00E+00  0.00E+00
-          43  0.00E+00  0.00E+00  0.00E+00
-          44  0.00E+00  0.00E+00  0.00E+00
-          45  0.00E+00  0.00E+00  0.00E+00
-          46  0.00E+00  0.00E+00  0.00E+00
-          47  0.00E+00  0.00E+00  0.00E+00
-          48  0.00E+00  0.00E+00  0.00E+00
-          49  0.00E+00  0.00E+00  0.00E+00
-          50  0.00E+00  0.00E+00  0.00E+00
-          51  0.00E+00  0.00E+00  0.00E+00
-          52  0.00E+00  0.00E+00  0.00E+00
-          53  0.00E+00  0.00E+00  0.00E+00
-          54  0.00E+00  0.00E+00  0.00E+00
-          55  0.00E+00  0.00E+00  0.00E+00
-          56  0.00E+00  0.00E+00  0.00E+00
-          57  0.00E+00  0.00E+00  0.00E+00
-          58  0.00E+00  0.00E+00  0.00E+00
-          59  0.00E+00  0.00E+00  0.00E+00
-          60  0.00E+00  0.00E+00  0.00E+00
-          61  0.00E+00  0.00E+00  0.00E+00
-          62  0.00E+00  0.00E+00  0.00E+00
-          63  0.00E+00  0.00E+00  0.00E+00
-          64  0.00E+00  0.00E+00  0.00E+00
-          65  0.00E+00  0.00E+00  0.00E+00
-          66  0.00E+00  0.00E+00  0.00E+00
-          67  0.00E+00  0.00E+00  0.00E+00
-          68  0.00E+00  0.00E+00  0.00E+00
-          69  0.00E+00  0.00E+00  0.00E+00
-          70  0.00E+00  0.00E+00  0.00E+00
-          71  0.00E+00  0.00E+00  0.00E+00
-          72  0.00E+00  0.00E+00  0.00E+00
-          73  0.00E+00  0.00E+00  0.00E+00
-          74  0.00E+00  0.00E+00  0.00E+00
-          75  0.00E+00  0.00E+00  0.00E+00
-          76  0.00E+00  0.00E+00  0.00E+00
-          77  0.00E+00  0.00E+00  0.00E+00
-          78  0.00E+00  0.00E+00  0.00E+00
-          79  0.00E+00  0.00E+00  0.00E+00
-          80  0.00E+00  0.00E+00  0.00E+00
-          81  0.00E+00  0.00E+00  0.00E+00
-          82  0.00E+00  0.00E+00  0.00E+00
-          83  0.00E+00  0.00E+00  0.00E+00
-          84  0.00E+00  0.00E+00  0.00E+00
-          85  0.00E+00  0.00E+00  0.00E+00
-          86  0.00E+00  0.00E+00  0.00E+00
-          87  0.00E+00  0.00E+00  0.00E+00
-          88  0.00E+00  0.00E+00  0.00E+00
-          89  0.00E+00  0.00E+00  0.00E+00
-          90  0.00E+00  0.00E+00  0.00E+00
-          91  0.00E+00  0.00E+00  0.00E+00
-          92  0.00E+00  0.00E+00  0.00E+00
-          93  0.00E+00  0.00E+00  0.00E+00
-          94  0.00E+00  0.00E+00  0.00E+00
-          95  0.00E+00  0.00E+00  0.00E+00
-          96  0.00E+00  0.00E+00  0.00E+00
-          97  0.00E+00  0.00E+00  0.00E+00
-          98  0.00E+00  0.00E+00  0.00E+00
-          99  0.00E+00  0.00E+00  0.00E+00
-         100  0.00E+00  0.00E+00  0.00E+00
-
-
- 
-can mode stupid
-can mode diag
-set mem/size=25.6
- 
-! unknown data type for clauses with constants only
-go bn_reset
-cancel mode verify
-GO err540_data_type.jnl
-! err540_data_type
-! 2/19/02 *sh*
- 
-! Ferret fails to identifies the data type and gets
-! "**ERROR: illegal data type (float,string,...) for operation: A"
- 
-! in disp_data_set_up XEQ_PLOT is insisting on ptype_float.
-! The type that is coming back from "a" is "0" (ptype_unknown)
- 
-! The problem is that uvar_data_type(uvar=1="A", dset=0) is ptype_unknown=0
-! this is happening because its correct value is lost in IS_UVAR_GRID
- 
-! solved 4/02:
-! The constant ("1") was being ignored -- needed to get its data type
-! change to IS_UVAR_GRID.F
- 
-! Note - initial soln lead to further problems to resolve for
-!        IF cond THEN pseudo + const
- 
-!set mode diag
- 
-! bad
-plot IF {1,3,5} GE 3 THEN 1  ! data type unknown
- 
-! ok  -- no error if constant is buried within a user variable
-!let V = 1
-!plot IF {1,3,5} GE 3 THEN v
- 
- 
-! gridding scattered points to modulo axis had bug
-go bn_reset
-cancel mode verify
-GO err540_modscat.jnl
-! test gridding scattered points to modulo axis.
-! Show Southern hemisphere.
- 
-use coads_climatology
- 
-let xpts = 360*randu(i+10)-180; let ypts = 80*randu(i) -80
-let sstpts = samplexy(sst[l=1], xpts[i=1:1000], ypts[i=1:1000])
- 
-def axis/x=180w:180e:1/modulo xax
-def axis/y=-89:0:1 yax
-def grid/x=xax/y=yax mygrid
- 
-let a  = scat2gridgauss_xy (xpts[i=1:1000], ypts[i=1:1000], sstpts, x[gx=mygrid], y[gy=mygrid], 6, 1, 6, 6)
- 
-let b = if sst[l=1,gx=mygrid,gy=mygrid] then a
- 
-shade b
-plot/vs/over xpts[i=1:1000]+360, ypts[i=1:1000]
- 
-! make sure the USE bug reported 5/01 by A Wittenberg is fixed
-GO bn_reset
-cancel mode verify
-GO err540_use.jnl
-! err540_use.jnl
-!
-! very subtle bug fix in the "USE" command.  What would happen is if dataset A and
-! dataset B were "used", then dset A was cancelled, if the next dataset (dataset C)
-! "used" had a similarly named variable as dataset B, then Ferret would mistakingly
-! set the similarly named variable in dataset C to lower case, making it inaccessible.
-! This was because the logic in cd_scan_vars.F didn't take into account that variables from
-! different datasets may be overlapped in the ds_var_code array.
- 
-! Create three simple files containing variables with lowercase names.
-let a = 1
-let b = 2
-save/q/clob/file=f.nc a
-save/q/clob/file=f2.nc a,b
-save/q/clob/file=g.nc b
-can var a b
- 
-sp ncrename -h -v A,a f.nc
-sp ncrename -h -v A,a -v B,b f2.nc
-sp ncrename -h -v B,b g.nc
-use f.nc
-use f2.nc
-use g.nc
-sh data
-     currently SET data sets:
-    1> ./f.nc
- name     title                             I         J         K         L         M         N
- A        1                                ...       ...       ...       ...       ...       ...
- 
-    2> ./f2.nc
- name     title                             I         J         K         L         M         N
- A        1                                ...       ...       ...       ...       ...       ...
- B        2                                ...       ...       ...       ...       ...       ...
- 
-    3> ./g.nc  (default)
- name     title                             I         J         K         L         M         N
- B        2                                ...       ...       ...       ...       ...       ...
- 
-can data/all
- 
-! Use two of the files and cancel the first one.
-use f.nc
-sh data
-     currently SET data sets:
-    1> ./f.nc  (default)
- name     title                             I         J         K         L         M         N
- A        1                                ...       ...       ...       ...       ...       ...
- 
-use g.nc
-sh data
-     currently SET data sets:
-    1> ./f.nc
- name     title                             I         J         K         L         M         N
- A        1                                ...       ...       ...       ...       ...       ...
- 
-    2> ./g.nc  (default)
- name     title                             I         J         K         L         M         N
- B        2                                ...       ...       ...       ...       ...       ...
- 
-can dat 1
- 
-! Now open the f2 file which as both a and b variables
-use f2.nc
- 
-! All variables from BOTH datasets should be capitals.
-show dat
-     currently SET data sets:
-    1> ./f2.nc  (default)
- name     title                             I         J         K         L         M         N
- A        1                                ...       ...       ...       ...       ...       ...
- B        2                                ...       ...       ...       ...       ...       ...
- 
-    2> ./g.nc
- name     title                             I         J         K         L         M         N
- B        2                                ...       ...       ...       ...       ...       ...
- 
- 
-! This should work
-list b[d=1]
-             VARIABLE : 2
-             FILENAME : f2.nc
-          2.00000
- 
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_cancel_axes
-! bn_cancel_axes.jnl
- 
-let ind1 = 1*i
-let tim1 = 20500*randu(ind1[i=1:20500])
-let ind2 = sorti(tim1)
-let tim2 = samplei(tim1, ind2)
-list/format=comma/file=longax.dat/clobber tim2
-set data/skip=4/ez/col=2/var="cnt,tim" longax.dat
- 
-go bn_reset
-cancel mode verify
-! longax cancel axis axname
-repeat/k=1:10 go bn_cancel_axes_1.sub
-!-> REPEAT: K=1
-! cancel axis axname
-! Defining lots of irregular axes, used up coordinate storage.
-! Now coordinage storage is recovered; also have the option to cancel axis/all
- 
-set data/skip=4/ez/col=2/var="cnt,tim" longax.dat
-def axis/from_data/t/units=days tim_ax=tim
-def grid/t=tim_ax tim_grd
-can grid tim_grd
-can axis tim_ax
-can data longax.dat
- 
-!-> REPEAT: K=2
-! cancel axis axname
-! Defining lots of irregular axes, used up coordinate storage.
-! Now coordinage storage is recovered; also have the option to cancel axis/all
- 
-set data/skip=4/ez/col=2/var="cnt,tim" longax.dat
-def axis/from_data/t/units=days tim_ax=tim
-def grid/t=tim_ax tim_grd
-can grid tim_grd
-can axis tim_ax
-can data longax.dat
- 
-!-> REPEAT: K=3
-! cancel axis axname
-! Defining lots of irregular axes, used up coordinate storage.
-! Now coordinage storage is recovered; also have the option to cancel axis/all
- 
-set data/skip=4/ez/col=2/var="cnt,tim" longax.dat
-def axis/from_data/t/units=days tim_ax=tim
-def grid/t=tim_ax tim_grd
-can grid tim_grd
-can axis tim_ax
-can data longax.dat
- 
-!-> REPEAT: K=4
-! cancel axis axname
-! Defining lots of irregular axes, used up coordinate storage.
-! Now coordinage storage is recovered; also have the option to cancel axis/all
- 
-set data/skip=4/ez/col=2/var="cnt,tim" longax.dat
-def axis/from_data/t/units=days tim_ax=tim
-def grid/t=tim_ax tim_grd
-can grid tim_grd
-can axis tim_ax
-can data longax.dat
- 
-!-> REPEAT: K=5
-! cancel axis axname
-! Defining lots of irregular axes, used up coordinate storage.
-! Now coordinage storage is recovered; also have the option to cancel axis/all
- 
-set data/skip=4/ez/col=2/var="cnt,tim" longax.dat
-def axis/from_data/t/units=days tim_ax=tim
-def grid/t=tim_ax tim_grd
-can grid tim_grd
-can axis tim_ax
-can data longax.dat
- 
-!-> REPEAT: K=6
-! cancel axis axname
-! Defining lots of irregular axes, used up coordinate storage.
-! Now coordinage storage is recovered; also have the option to cancel axis/all
- 
-set data/skip=4/ez/col=2/var="cnt,tim" longax.dat
-def axis/from_data/t/units=days tim_ax=tim
-def grid/t=tim_ax tim_grd
-can grid tim_grd
-can axis tim_ax
-can data longax.dat
- 
-!-> REPEAT: K=7
-! cancel axis axname
-! Defining lots of irregular axes, used up coordinate storage.
-! Now coordinage storage is recovered; also have the option to cancel axis/all
- 
-set data/skip=4/ez/col=2/var="cnt,tim" longax.dat
-def axis/from_data/t/units=days tim_ax=tim
-def grid/t=tim_ax tim_grd
-can grid tim_grd
-can axis tim_ax
-can data longax.dat
- 
-!-> REPEAT: K=8
-! cancel axis axname
-! Defining lots of irregular axes, used up coordinate storage.
-! Now coordinage storage is recovered; also have the option to cancel axis/all
- 
-set data/skip=4/ez/col=2/var="cnt,tim" longax.dat
-def axis/from_data/t/units=days tim_ax=tim
-def grid/t=tim_ax tim_grd
-can grid tim_grd
-can axis tim_ax
-can data longax.dat
- 
-!-> REPEAT: K=9
-! cancel axis axname
-! Defining lots of irregular axes, used up coordinate storage.
-! Now coordinage storage is recovered; also have the option to cancel axis/all
- 
-set data/skip=4/ez/col=2/var="cnt,tim" longax.dat
-def axis/from_data/t/units=days tim_ax=tim
-def grid/t=tim_ax tim_grd
-can grid tim_grd
-can axis tim_ax
-can data longax.dat
- 
-!-> REPEAT: K=10
-! cancel axis axname
-! Defining lots of irregular axes, used up coordinate storage.
-! Now coordinage storage is recovered; also have the option to cancel axis/all
- 
-set data/skip=4/ez/col=2/var="cnt,tim" longax.dat
-def axis/from_data/t/units=days tim_ax=tim
-def grid/t=tim_ax tim_grd
-can grid tim_grd
-can axis tim_ax
-can data longax.dat
- 
- 
- go bn_reset
-cancel mode verify
-! longax cancel axis/all
- 
-! Note: cancel axes/all tested in err541_cancel_axes.jnl
-!     Here, it causes huge output because previous benchmarks
-!     leave lots of grids defined.
-! repeat/k=1:10 (go bn_cancel_axes_2.sub; cancel grid tim_grd; cancel axis/all)
- 
-! test remaining axes are intact when we cancel one.
-go bn_reset
-cancel mode verify
-define axis/x ax1={2,4,5,6,9}
-define axis/x ax2={30,60,90,100}
-sh axis/x ax2
- name       axis              # pts   start                end
- AX2       X                    4 i   30                   100
-   Axis span (to cell edges) = 90
- 
-       I     X                   XBOX      XBOXLO
-       1>  30                    30         15
-       2>  60                    30         45
-       3>  90                    20         75
-       4>  100                   10         95
-can axis ax1
-sh axis/x ax2
- name       axis              # pts   start                end
- AX2       X                    4 i   30                   100
-   Axis span (to cell edges) = 90
- 
-       I     X                   XBOX      XBOXLO
-       1>  30                    30         15
-       2>  60                    30         45
-       3>  90                    20         75
-       4>  100                   10         95
- 
-! Test interaction with irreg axes from datasets
- 
-use test_axes
-cancel data test_axes
-sh axis/t test_irreg
- name       axis              # pts   start                end
- TEST_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
- 
-def axis/x ax1 = {1, 3, 4, 5, 9}
-can axis ax1
-sh axis/t test_irreg
- name       axis              # pts   start                end
- TEST_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
- 
-cancel axis test_irreg
- 
-def axis/x ax1 = {1, 3, 4, 5, 9}
-sh axis/x ax1
- name       axis              # pts   start                end
- AX1       X                    5 i   1                    9
-   Axis span (to cell edges) = 11
- 
-       I     X                   XBOX      XBOXLO
-       1>  1                     2          0
-       2>  3                     1.5        2
-       3>  4                     1          3.5
-       4>  5                     2.5        4.5
-       5>  9                     4          7
-can axis ax1
- 
-sh axis/t test_irreg
- name       axis              # pts   start                end
-sh axis/t test_seas
- name       axis              # pts   start                end
- TEST_SEAS 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)
- 
-       L     T                   TBOX      TBOXLO                TSTEP (HOURS)
-       1>  15-FEB 15:43:39       2191.455   01-JAN 00:00:00        1095.727
-       2>  16-MAY 23:10:57       2191.455   01-APR 07:27:18        3287.182
-       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
- 
- 
-! ******** V5.42 Additions below ***********
- 
-GO bn_reset
-cancel mode verify
-GO bn542_bug_fixes
-! bn542_bug_fixes.jnl
-! test various fixes that went into version 5.42
-! 10/02 *acm*
-!
- 
-! Interior tics disappear on FILL plots
-GO bn_reset
-cancel mode verify
-GO err541_fill_tics
-! pplus tics bug - pre 5.42, fill plots overlaid interior tics.
- 
-use coads_climatology
-ppl tics 0.,.35,0.,.35,0,0
- 
-set view upper
-shade/l=1/x=150e:110w/y=40s:40n sst
- 
-set view lower
-fill/l=1/x=150e:110w/y=40s:40n sst
- 
-ppl tics,,.25,,.25,-1,-1
- 
-! non-Gregorian axes not properly defined when time steps
-! are used rather than date specifications
-GO bn_reset
-cancel mode verify
-GO err541_non_gregorian
-!From Andrew Wittenberg, non-Gregorian time axis bug 01 Oct 2002
-! pre-542, second axis has just one point.
- 
-def ax/cal=Gregorian/t=.5:11.5:1/unit=month/t0=1-jan-1980 tax1
-show ax tax2
- name       axis              # pts   start                end
- TAX2      TIME                 3 i   02-JAN-1990 00:00    06-JAN-1990 00:00
-T0 = 1-JAN-1990
-   Axis span (to cell edges) = 6
- 
-def ax/cal=Julian/t=.5:11.5:1/unit=month/t0=1-jan-1980 tax2
-show ax tax2
- name       axis              # pts   start                end
- TAX2      TIME                12 r   16-JAN-1980 05:15    16-DEC-1980 00:45
-T0 = 1-JAN-1980
-CALENDAR = JULIAN
-   Axis span (to cell edges) = 12
- 
-! For comparison, use the dates that start and end tax2
-def ax/cal=Julian/t="16-jan-1980:05:15":"16-dec-1980:00:45":1/unit=month/t0=1-jan-1980 tax3
-show ax tax3
- name       axis              # pts   start                end
- TAX3      TIME                12 r   16-JAN-1980 05:15    16-DEC-1980 00:45
-T0 = 1-JAN-1980
-CALENDAR = JULIAN
-   Axis span (to cell edges) = 12
- 
- 
-! Could not write or read a NetCDF file with a 4-D string variable.
-GO bn_reset
-cancel mode verify
-GO err541_string4d
- ! Write a 4-D NetCDF file with a string variable.
- 
-sp rm -f string4d.nc
- 
-def axis/x=1:2:1 x2ax
-def axis/y=1:3:1 y3ax
-def axis/z=1:4:1 z4ax
-def axis/t=1:2:1 t2ax
- 
-let a = {"alpha","a2","a3","a4","a5","a6","a7","a8","a9","a10",\
-"bravo","b2","b3","b4","b5","b6","b7","b8","b9","b10",\
-"c1","c2","c3","c4","c5","c6","c7","c8","c9","c10",\
-"d1","d2","d3","d4","d5","d6","d7","d8","d9","d10",\
-"echo","e2","e3","e4","e5","e6","e7","e8"}
- 
-let rvar = x[gx=x2ax] + y[gy=y3ax] + z[gz=z4ax] + t[gt=t2ax]
-stat rvar
- 
-             X[GX=X2AX] + Y[GY=Y3AX] + Z[GZ=Z4AX] + T[GT=T2AX]
-             X: 0.5 to 2.5
-             Y: 0.5 to 3.5
-             Z: 0.5 to 4.5
-             T: 0.5 to 2.5
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 48 (2*3*4*2*1*1)
- # flagged as bad  data: 0
- Minimum value: 4
- Maximum value: 11
- Mean    value: 7.5 (unweighted average)
- Standard deviation: 1.571
- 
-let axy = reshape (a,rvar)
-!list axy
-stat axy
- 
-             RESHAPE (A,RVAR)
-             X: 0.5 to 2.5
-             Y: 0.5 to 3.5
-             Z: 0.5 to 4.5
-             T: 0.5 to 2.5
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- Total # of strings: 48 (2*3*4*2*1*1)
- Maximum string length: 5
-save/clobber/file=string4d.nc axy
- 
-can var/all
-can data/all
-use string4d.nc
-sh data
-     currently SET data sets:
-    1> ./string4d.nc  (default)
- name     title                             I         J         K         L         M         N
- AXY      RESHAPE (A,RVAR)                 1:2       1:3       1:4       1:2       ...       ...
- 
-list axy
-             VARIABLE : RESHAPE (A,RVAR)
-             FILENAME : string4d.nc
-             SUBSET   : 2 by 3 by 4 by 2 points (X-Y-Z-T)
-             1      2    
-             1      2
- ---- L:1 T:   1
- ---- K:1 Z:   1
- 1   / 1:"alpha""a2"   
- 2   / 2:"a3"   "a4"   
- 3   / 3:"a5"   "a6"   
- ---- K:2 Z:   2
- 1   / 1:"a7"   "a8"   
- 2   / 2:"a9"   "a10"  
- 3   / 3:"bravo""b2"   
- ---- K:3 Z:   3
- 1   / 1:"b3"   "b4"   
- 2   / 2:"b5"   "b6"   
- 3   / 3:"b7"   "b8"   
- ---- K:4 Z:   4
- 1   / 1:"b9"   "b10"  
- 2   / 2:"c1"   "c2"   
- 3   / 3:"c3"   "c4"   
- ---- L:2 T:   2
- ---- K:1 Z:   1
- 1   / 1:"c5"   "c6"   
- 2   / 2:"c7"   "c8"   
- 3   / 3:"c9"   "c10"  
- ---- K:2 Z:   2
- 1   / 1:"d1"   "d2"   
- 2   / 2:"d3"   "d4"   
- 3   / 3:"d5"   "d6"   
- ---- K:3 Z:   3
- 1   / 1:"d7"   "d8"   
- 2   / 2:"d9"   "d10"  
- 3   / 3:"echo" "e2"   
- ---- K:4 Z:   4
- 1   / 1:"e3"   "e4"   
- 2   / 2:"e5"   "e6"   
- 3   / 3:"e7"   "e8"   
- 
- 
-! Cancel axis/all did not check whether axes were in use
-GO bn_reset
-cancel mode verify
-GO err541_cancel_axes
-! Check that an axis in use cannot be cancelled.
-! 4/2013 changes for Ferret with climatological axes
-!        defined internally. Use a different datset for this test
- 
-use test_axes
-cancel data test_axes
- 
-let tt = t[gt=test_irreg] + 50*x[i=1:10]
-load tt
- 
-show axis test_i*
- name       axis              # pts   start                end
- TEST_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)
-cancel axis test_irreg
- 
-show axis test_i*
- name       axis              # pts   start                end
- TEST_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)
- 
-! Pre V5.42, this causes a crash: axes were cancelled, but not fully.
-cancel axis/all
-show axis test_i*
- name       axis              # pts   start                end
- TEST_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)
- 
-cancel var tt
-cancel axis/all
- 
-show axis test_i*
- name       axis              # pts   start                end
- 
- 
- 
-! Make sure delimited reads are processing dates correctly
-! *kob*
-! 5/4/05 *acm* Move to bn_ef_err541_date_delim; pulling all jnls that call shared-obj efs out
-GO bn_reset
-cancel mode verify
-! GO err541_date_delim
- 
- 
-! ******** V5.50 Additions below ***********
- 
-GO bn_reset
-cancel mode verify
-GO bn_subspan_modulo
-! bn_subspan_modulo.jnl
-! *sh* 11/02
- 
-! a subspan modulo axis is one which is modulo, but the wrapping length
-! exceeds the span of the axis.  Ferret generates a phantom "void point"
-! in order to bring the axis length equal to the modulo length.  The void
-! point is automatically filled with a missing value (psuedo-vars excluded)
- 
-! test defining of subspan modulo axes
-! any longitude axis less than 360 degrees
-define axis/x=130e:80w:10 xsub ! yes
-GO bn_subspan_modulo.sub1 X
-Axis as created:
- name       axis              # pts   start                end
- XSUB      LONGITUDE           16mr   130E                 80W
-   Axis span (to cell edges) = 160 (modulo length = 360)
-Axis as inferred from netCDF file:
- name       axis              # pts   start                end
- XSUB      LONGITUDE           16mr   130E                 80W
-   Axis span (to cell edges) = 160 (modulo length = 360)
-define axis/x=-180:179:1/units=longitude/edges xsub ! yes
-GO bn_subspan_modulo.sub1 X
-Axis as created:
- name       axis              # pts   start                end
- XSUB      LONGITUDE          359mr   179.5W(-179.5)       178.5E
-   Axis span (to cell edges) = 359 (modulo length = 360)
-Axis as inferred from netCDF file:
- name       axis              # pts   start                end
- XSUB      LONGITUDE          359mr   179.5W(-179.5)       178.5E
-   Axis span (to cell edges) = 359 (modulo length = 360)
-define axis/x=-180:181:1/units=longitude/edges xsub ! no
-GO bn_subspan_modulo.sub1 X
-Axis as created:
- name       axis              # pts   start                end
- XSUB      LONGITUDE          361 r   179.5W(-179.5)       179.5W
-   Axis span (to cell edges) = 361
-Axis as inferred from netCDF file:
- name       axis              # pts   start                end
- XSUB      LONGITUDE          361 r   179.5W(-179.5)       179.5W
-   Axis span (to cell edges) = 361
- 
-! not allowed for axis length to exceed modulo length
-set mode ignore
-  define axis/x=130e:500:10/modulo=360 xsub
-canc mode ignore
- 
-! automatic detection of climatologies
-def ax/t=1-jan-0000:1-apr-0000/np=3 tsub ! yes
-GO bn_subspan_modulo.sub1 T
-Axis as created:
- name       axis              # pts   start                end
- TSUB      TIME                 3mr   01-JAN 00:00         01-APR 00:00
-T0 = 01-JAN-0000
-   Axis span (to cell edges) = 3276 (modulo length = 8765.82)
-Axis as inferred from netCDF file:
- name       axis              # pts   start                end
- TSUB      TIME                 3mr   01-JAN 00:00         01-APR 00:00
-T0 = 01-JAN-0000 00:00:00
-   Axis span (to cell edges) = 3276 (modulo length = 8765.82)
-def ax/t=1-jan-0000:1-apr-0000/np=3/edge/units=days tsub ! yes
-GO bn_subspan_modulo.sub1 T
-Axis as created:
- name       axis              # pts   start                end
- TSUB      TIME                 3mr   16-JAN 04:00         16-MAR 20:00
-T0 = 01-JAN-0000
-   Axis span (to cell edges) = 91 (modulo length = 365.2425)
-Axis as inferred from netCDF file:
- name       axis              # pts   start                end
- TSUB      TIME                 3mr   16-JAN 04:00         16-MAR 19:59
-T0 = 01-JAN-0000 00:00:00
-   Axis span (to cell edges) = 91 (modulo length = 365.2425)
-def ax/t=1-aug-0000:1-aug-0001/np=3/edge/units=days tsub ! yes
-GO bn_subspan_modulo.sub1 T
-Axis as created:
- name       axis              # pts   start                end
- TSUB      TIME                 3mr   30-SEP 20:00         01-JUN 04:00
-T0 = 01-JAN-0000
-   Axis span (to cell edges) = 365 (modulo length = 365.2425)
-Axis as inferred from netCDF file:
- name       axis              # pts   start                end
- TSUB      TIME                 3mr   30-SEP 19:59         01-JUN 04:00
-T0 = 01-JAN-0000 00:00:00
-   Axis span (to cell edges) = 365 (modulo length = 365.2425)
-def ax/t=31-dec-0000:1-may-0001/np=3/units=days tsub ! yes
-GO bn_subspan_modulo.sub1 T
-Axis as created:
- name       axis              # pts   start                end
- TSUB      TIME                 3mr   31-DEC 00:00         01-MAY 00:00
-T0 = 01-JAN-0000
-   Axis span (to cell edges) = 181.5 (modulo length = 365.2425)
-Axis as inferred from netCDF file:
- name       axis              # pts   start                end
- TSUB      TIME                 3mr   31-DEC 00:00         01-MAY 00:00
-T0 = 01-JAN-0000 00:00:00
-   Axis span (to cell edges) = 181.5 (modulo length = 365.2425)
-! the following start in year 0001
-def ax/t=31-dec-0000:1-may-0001/np=3/edges/units=days tsub ! no
-GO bn_subspan_modulo.sub1 T
-Axis as created:
- name       axis              # pts   start                end
- TSUB      TIME                 3 r   20-JAN-0001 04:00    10-APR-0001 20:00
-T0 = 01-JAN-0000
-   Axis span (to cell edges) = 121
-Axis as inferred from netCDF file:
- name       axis              # pts   start                end
- TSUB      TIME                 3mr   20-JAN 04:00         10-APR 19:59
-T0 = 01-JAN-0000 00:00:00
-   Axis span (to cell edges) = 121 (modulo length = 365.2425)
-def ax/t=1-jan-0001:1-sep-0001/np=3/units=days tsub ! no
-GO bn_subspan_modulo.sub1 T
-Axis as created:
- name       axis              # pts   start                end
- TSUB      TIME                 3 r   01-JAN-0001 00:00    01-SEP-0001 00:00
-T0 = 01-JAN-0000
-   Axis span (to cell edges) = 364.5
-Axis as inferred from netCDF file:
- name       axis              # pts   start                end
- TSUB      TIME                 3mr   01-JAN 00:00         01-SEP 00:00
-T0 = 01-JAN-0000 00:00:00
-   Axis span (to cell edges) = 364.5 (modulo length = 365.2425)
-! the following is too long to be a climatological axis
-def ax/t=29-dec-0000:31-dec-0001/np=3/units=days tsub ! no
-GO bn_subspan_modulo.sub1 T
-Axis as created:
- name       axis              # pts   start                end
- TSUB      TIME                 3 r   29-DEC-0000 00:00    31-DEC-0001 00:00
-T0 = 01-JAN-0000
-   Axis span (to cell edges) = 550.5
-Axis as inferred from netCDF file:
- name       axis              # pts   start                end
- TSUB      TIME                 3 r   29-DEC-0000 00:00    31-DEC-0001 00:00
-T0 = 01-JAN-0000 00:00:00
-   Axis span (to cell edges) = 550.5
- 
- 
-! now test Ferret handling of the axes
-! make a test file with a subspan modulo variable
-! (need to postpone setting /modulo=100 cuz pseudo-vars have value on void pt)
-sp rm -f test_subspan_modulo.nc
-define axis/x=41:46:1/modulo=100 xax_subspan
- 
-! almost identical irregular axis
-define axis/x/modulo=100 Xirreg_subspan = {41,42,42.1,44,45,46}
-set axis/modulo=100 Xirreg_subspan
- 
-let vreg = X[gx=xax_subspan] -40 + 10
-let virr = X[gx=Xirreg_subspan] -40 + 10
-save/file=test_subspan_modulo.nc vreg, virr
- 
-! noisy field to test smoothing
-let noise = 0.2 * RANDN(0*vreg+1)
-let vreg_ragged = vreg + noise
-let virr_ragged = virr + noise[g=virr at asn]
-save/file=test_subspan_modulo.nc/append vreg_ragged, virr_ragged
- 
-! gappy field to test hole-filling
-let vreg_void = if x[g=vreg] LT 43 OR x[g=vreg] GT 45 THEN vreg
-let virr_void = if x[g=virr] LT 43 OR x[g=virr] GT 45 THEN virr
-save/file=test_subspan_modulo.nc/append vreg_void, virr_void
-save/file=test_subspan_modulo.nc/append vreg_void, virr_void
- 
-! now define two-dimensional variables -- modulo in time as well
-define axis/t=0:150:30/edges/units=days/modulo=365.2485/t0=1-jan-0000 tax_subspan
-define axis/T0=1-jan-0000/units=days/modulo=365.2485/edges Tirreg_subspan = {0,31,59.2485,90.2485,120.2485,150.2485}
-let treg = TBOXLO[gt=tax_subspan]
-let tirr = TBOXLO[gt=tirreg_subspan]
-let v2d_reg = vreg + treg
-let v2d_irr = virr + tirr
-save/file=test_subspan_modulo.nc/append v2d_reg, v2d_irr
- 
-! 2d with voids
-let treg_void =  if L[g=v2d_reg] NE 3 THEN treg
-let tirr_void =  if L[g=v2d_irr] NE 3 THEN tirr
-let v2d_reg_void = vreg_void + treg_void
-let v2d_irr_void = virr_void + tirr_void
-save/file=test_subspan_modulo.nc/append v2d_reg_void, v2d_irr_void
- 
-! string variable on subspan modulo axis
-let my_strings = {"a1","a2","a3","a4","a5","a6"}
-let vreg_strings = my_strings[gx=xax_subspan at asn]
-let virr_strings = my_strings[gx=Xirreg_subspan at asn]
-save/file=test_subspan_modulo.nc/append vreg_strings, virr_strings
- 
-canc var/all
-use test_subspan_modulo.nc
- 
-go bn_subspan_modulo.sub2 vreg v2d_reg
-! bn_subspan_modulo.sub
-! *sh* 11/02
- 
-! subroutine for benchmark test bn_subspan_modulo.jnl
-! call with
-!	yes? GO bn_subspan_modulo.sub vreg   ! test regular axis
-!	yes? GO bn_subspan_modulo.sub virr   ! test irregular axis
- 
-define alias lsx list/order=x
-define alias lsxn list/order=x/nohead
- 
-! check the modulo behavior of the X and T axes
-define symbox xaxname `$1,return=xaxis`
- !-> define symbox xaxname XAX_SUBSPAN
-show axis/x=-60:141 ($XAXNAME)
- !-> show axis/x=-60:141 XAX_SUBSPAN
- name       axis              # pts   start                end
- XAX_SUBSPAN X                  6mr   41                   46
-   Axis span (to cell edges) = 6 (modulo length = 100)
- 
-       I     X                   XBOX      XBOXLO
-      -7>  -106.5                94         -153.5
-      -6>  -59                   1          -59.5
-      -5>  -58                   1          -58.5
-      -4>  -57                   1          -57.5
-      -3>  -56                   1          -56.5
-      -2>  -55                   1          -55.5
-      -1>  -54                   1          -54.5
-       0>  -6.5                  94         -53.5
-       1>  41                    1          40.5
-       2>  42                    1          41.5
-       3>  43                    1          42.5
-       4>  44                    1          43.5
-       5>  45                    1          44.5
-       6>  46                    1          45.5
-       7>  93.5                  94         46.5
-       8>  141                   1          140.5
-show axis/x=-60:141:2 ($XAXNAME)
- !-> show axis/x=-60:141:2 XAX_SUBSPAN
- name       axis              # pts   start                end
- XAX_SUBSPAN X                  6mr   41                   46
-   Axis span (to cell edges) = 6 (modulo length = 100)
- 
-       I     X                   XBOX      XBOXLO
-      -7>  -106.5                94         -153.5
-      -5>  -58                   1          -58.5
-      -3>  -56                   1          -56.5
-      -1>  -54                   1          -54.5
-       1>  41                    1          40.5
-       3>  43                    1          42.5
-       5>  45                    1          44.5
-       7>  93.5                  94         46.5
-show axis/x=-60:141:7 ($XAXNAME)
- !-> show axis/x=-60:141:7 XAX_SUBSPAN
- name       axis              # pts   start                end
- XAX_SUBSPAN X                  6mr   41                   46
-   Axis span (to cell edges) = 6 (modulo length = 100)
- 
-       I     X                   XBOX      XBOXLO
-      -7>  -106.5                94         -153.5
-       0>  -6.5                  94         -53.5
-       7>  93.5                  94         46.5
- 
-define symbox taxname `$2,return=taxis`
- !-> define symbox taxname TAX_SUBSPAN1
-show axis/l=3:10 ($TAXNAME)
- !-> show axis/l=3:10 TAX_SUBSPAN1
- name       axis              # pts   start                end
- TAX_SUBSPAN1 TIME              5mr   16-JAN 00:00         15-MAY 00:00
-T0 = 01-JAN-0000 00:00:00
-   Axis span (to cell edges) = 150 (modulo length = 365.2485)
- 
-       L     T                   TBOX      TBOXLO                TSTEP (days)
-       3>  16-MAR 00:00:00       30         01-MAR 00:00:00         75
-       4>  15-APR 00:00:00       30         31-MAR 00:00:00         105
-       5>  15-MAY 00:00:00       30         30-APR 00:00:00         135
-       6>  14-SEP 14:58:55       215.2485   30-MAY 00:00:00         257.6242
-       7>  15-JAN 05:57:50       30         31-DEC 05:57:50         380.2485
-       8>  14-FEB 05:57:50       30         30-JAN 05:57:50         410.2485
-       9>  16-MAR 05:57:50       30         01-MAR 05:57:50         440.2485
-      10>  15-APR 05:57:50       30         31-MAR 05:57:50         470.2485
-show axis/l=3:10:3 ($TAXNAME)
- !-> show axis/l=3:10:3 TAX_SUBSPAN1
- name       axis              # pts   start                end
- TAX_SUBSPAN1 TIME              5mr   16-JAN 00:00         15-MAY 00:00
-T0 = 01-JAN-0000 00:00:00
-   Axis span (to cell edges) = 150 (modulo length = 365.2485)
- 
-       L     T                   TBOX      TBOXLO                TSTEP (days)
-       3>  16-MAR 00:00:00       30         01-MAR 00:00:00         75
-       6>  14-SEP 14:58:55       215.2485   30-MAY 00:00:00         257.6242
-       9>  16-MAR 05:57:50       30         01-MAR 05:57:50         440.2485
-show axis/l=3:10:6 ($TAXNAME)
- !-> show axis/l=3:10:6 TAX_SUBSPAN1
- name       axis              # pts   start                end
- TAX_SUBSPAN1 TIME              5mr   16-JAN 00:00         15-MAY 00:00
-T0 = 01-JAN-0000 00:00:00
-   Axis span (to cell edges) = 150 (modulo length = 365.2485)
- 
-       L     T                   TBOX      TBOXLO                TSTEP (days)
-       3>  16-MAR 00:00:00       30         01-MAR 00:00:00         75
-       9>  16-MAR 05:57:50       30         01-MAR 05:57:50         440.2485
- 
-set mode diag
-set mode stupid  ! always re-read and recompute
-lsx $1  ! default avoids void points
- !-> list/order=x vreg
- dealloc  dynamic grid GFJ3            XAX_SUBSPANORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GFJ1            XAX_SUBSPANORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  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
-             VARIABLE : X[GX=XAX_SUBSPAN] -40 + 10
-             FILENAME : test_subspan_modulo.nc
-             SUBSET   : 6 points (X)
-            41       42       43       44       45       46     
-             1        2        3        4        5        6
-          11.0000  12.0000  13.0000  14.0000  15.0000  16.0000
-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
- doing modulo-void-filling VREG on X axis:     6     6 dset:   1
-        ....
-lsxn/x=0 $1 ! void point below, alone (via modulo)
- !-> list/order=x/nohead/x=0 vreg
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    0    0  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing VREG on X axis:     0     0 dset:   1
- reading VREG     M:  6 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
- 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
- doing moduloing VREG on X axis:     1     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
- !-> list/order=x/nohead/x=50:160 vreg
-             ....  11.0000  12.0000  13.0000  14.0000  15.0000  16.0000     ....
-lsxn/x=-100:40 $1 ! modulo below
- !-> list/order=x/nohead/x=-100:40 vreg
-             ....  11.0000  12.0000  13.0000  14.0000  15.0000  16.0000     ....
-lsxn/x=-100:160 $1  ! modulo above & below
- !-> list/order=x/nohead/x=-100:160 vreg
-      ... listing every   2th point
-       .     ....  12.0000  14.0000  16.0000  11.0000  13.0000  15.0000     ....  12.0000  14.0000  16.0000
- 
-! end point testing
-lsxn/i=-8:-2 $1
- !-> list/order=x/nohead/i=-8:-2 vreg
-          16.0000     ....  11.0000  12.0000  13.0000  14.0000  15.0000
-lsxn/i=-7:-2 $1
- !-> list/order=x/nohead/i=-7:-2 vreg
-             ....  11.0000  12.0000  13.0000  14.0000  15.0000
-lsxn/i=-6:-2 $1
- !-> list/order=x/nohead/i=-6:-2 vreg
-          11.0000  12.0000  13.0000  14.0000  15.0000
-lsxn/i=17:20 $1
- !-> list/order=x/nohead/i=17:20 vreg
-          13.0000  14.0000  15.0000  16.0000
-lsxn/i=17:21 $1
- !-> list/order=x/nohead/i=17:21 vreg
-          13.0000  14.0000  15.0000  16.0000     ....
-lsxn/i=17:22 $1
- !-> list/order=x/nohead/i=17:22 vreg
-          13.0000  14.0000  15.0000  16.0000     ....  11.0000
-set mode/last stupid
- 
-! test smoothers - pos and neg modulo and combined mod and context edges
-lsx/x=500:600 $1_ragged
- !-> list/order=x/x=500:600 vreg_ragged
-             VARIABLE : VREG + NOISE
-             FILENAME : test_subspan_modulo.nc
-             SUBSET   : 8 points (X)
-            493.5    541      542      543      544      545      546      593.5  
-            35       36       37       38       39       40       41       42
-             ....  10.9466  12.0566  12.9354  14.2434  14.9391  15.9921     ....
-lsxn/x=500:600 $1_ragged[x=@sbx]
- !-> list/order=x/nohead/x=500:600 vreg_ragged[x=@sbx]
-             ....     ....  11.9795  13.0784  14.0393  15.0582     ....     ....
-lsxn/x=500:545 $1_ragged[x=@sbx]
- !-> list/order=x/nohead/x=500:545 vreg_ragged[x=@sbx]
-             ....     ....  11.9795  13.0784  14.0393  15.0582
-lsxn/x=545:600 $1_ragged[x=@sbx]
- !-> list/order=x/nohead/x=545:600 vreg_ragged[x=@sbx]
-          15.0582     ....     ....
- 
-lsxn/x=-100:0 $1_ragged
- !-> list/order=x/nohead/x=-100:0 vreg_ragged
-             ....  10.9466  12.0566  12.9354  14.2434  14.9391  15.9921     ....
-lsxn/x=-100:0    $1_ragged[x=@sbx]
- !-> list/order=x/nohead/x=-100:0    vreg_ragged[x=@sbx]
-             ....     ....  11.9795  13.0784  14.0393  15.0582     ....     ....
-lsxn/x=-100:-55  $1_ragged[x=@sbx]
- !-> list/order=x/nohead/x=-100:-55  vreg_ragged[x=@sbx]
-             ....     ....  11.9795  13.0784  14.0393  15.0582
-lsxn/x=-56:0     $1_ragged[x=@sbx]
- !-> list/order=x/nohead/x=-56:0     vreg_ragged[x=@sbx]
-          14.0393  15.0582     ....     ....
- 
-lsxn/x=-100:142/wid=200 $1_ragged
- !-> list/order=x/nohead/x=-100:142/wid=200 vreg_ragged
-             ....  10.9466  12.0566  12.9354  14.2434  14.9391  15.9921     ....  10.9466  12.0566  12.9354  14.2434  14.9391  15.9921     ....  10.9466  12.0566
-lsxn/x=-100:142/wid=200 $1_ragged[x=@sbx:3]
- !-> list/order=x/nohead/x=-100:142/wid=200 vreg_ragged[x=@sbx:3]
-             ....     ....  11.9795  13.0784  14.0393  15.0582     ....     ....     ....  11.9795  13.0784  14.0393  15.0582     ....     ....     ....  11.9795
-lsxn/x=-100:142/wid=200 $1_ragged[x=@swl:5]
- !-> list/order=x/nohead/x=-100:142/wid=200 vreg_ragged[x=@swl:5]
-             ....     ....     ....  13.0356  14.0408     ....     ....     ....     ....     ....  13.0356  14.0408     ....     ....     ....     ....     ....
-lsxn/x=-100:142/wid=200 $1_ragged[x=@swl:35]
- !-> list/order=x/nohead/x=-100:142/wid=200 vreg_ragged[x=@swl:35]
-        ....................................................................
- 
-! test fillers - pos and neg modulo and combined mod and context edges
-! @FAV
-lsx/x=500:600 $1_void
- !-> list/order=x/x=500:600 vreg_void
-             VARIABLE : IF X[G=VREG] LT 43 OR X[G=VREG] GT 45 THEN VREG
-             FILENAME : test_subspan_modulo.nc
-             SUBSET   : 8 points (X)
-            493.5    541      542      543      544      545      546      593.5  
-            35       36       37       38       39       40       41       42
-             ....  11.0000  12.0000     ....     ....     ....  16.0000     ....
-lsxn/x=500:600 $1_void[x=@fav]
- !-> list/order=x/nohead/x=500:600 vreg_void[x=@fav]
-             ....  11.0000  12.0000  12.0000     ....  16.0000  16.0000     ....
- 
-lsxn/x=-100:0    $1_void
- !-> list/order=x/nohead/x=-100:0    vreg_void
-             ....  11.0000  12.0000     ....     ....     ....  16.0000     ....
-lsxn/x=-100:0    $1_void[x=@fav]
- !-> list/order=x/nohead/x=-100:0    vreg_void[x=@fav]
-             ....  11.0000  12.0000  12.0000     ....  16.0000  16.0000     ....
- 
-lsxn/x=-100:142/wid=200 $1_void
- !-> list/order=x/nohead/x=-100:142/wid=200 vreg_void
-             ....  11.0000  12.0000     ....     ....     ....  16.0000     ....  11.0000  12.0000     ....     ....     ....  16.0000     ....  11.0000  12.0000
-lsxn/x=-100:142/wid=200 $1_void[x=@fav:3]
- !-> list/order=x/nohead/x=-100:142/wid=200 vreg_void[x=@fav:3]
-             ....  11.0000  12.0000  12.0000     ....  16.0000  16.0000     ....  11.0000  12.0000  12.0000     ....  16.0000  16.0000     ....  11.0000  12.0000
-lsxn/x=-100:142/wid=200 $1_void[x=@fav:5]
- !-> list/order=x/nohead/x=-100:142/wid=200 vreg_void[x=@fav:5]
-             ....  11.0000  12.0000  11.5000  14.0000  16.0000  16.0000     ....  11.0000  12.0000  11.5000  14.0000  16.0000  16.0000     ....  11.0000  12.0000
-lsxn/x=-100:142/wid=200 $1_void[x=@fav:35]
- !-> list/order=x/nohead/x=-100:142/wid=200 vreg_void[x=@fav:35]
-             ....  11.0000  12.0000  13.0000  13.0000  13.0000  16.0000     ....  11.0000  12.0000  13.0000  13.0000  13.0000  16.0000     ....  11.0000  12.0000
- 
-! @FLN
-lsxn/x=500:600 $1_void
- !-> list/order=x/nohead/x=500:600 vreg_void
-             ....  11.0000  12.0000     ....     ....     ....  16.0000     ....
-lsxn/x=500:600 $1_void[x=@fln]
- !-> list/order=x/nohead/x=500:600 vreg_void[x=@fln]
-             ....  11.0000  12.0000  13.0000  14.0000  15.0000  16.0000     ....
- 
-lsxn/x=-100:0    $1_void
- !-> list/order=x/nohead/x=-100:0    vreg_void
-             ....  11.0000  12.0000     ....     ....     ....  16.0000     ....
-lsxn/x=-100:0    $1_void[x=@fln]
- !-> list/order=x/nohead/x=-100:0    vreg_void[x=@fln]
-             ....  11.0000  12.0000  13.0000  14.0000  15.0000  16.0000     ....
- 
-lsxn/x=-100:142/wid=200 $1_void
- !-> list/order=x/nohead/x=-100:142/wid=200 vreg_void
-             ....  11.0000  12.0000     ....     ....     ....  16.0000     ....  11.0000  12.0000     ....     ....     ....  16.0000     ....  11.0000  12.0000
-lsxn/x=-100:142/wid=200 $1_void[x=@fln:35]
- !-> list/order=x/nohead/x=-100:142/wid=200 vreg_void[x=@fln:35]
-             ....  11.0000  12.0000  13.0000  14.0000  15.0000  16.0000     ....  11.0000  12.0000  13.0000  14.0000  15.0000  16.0000     ....  11.0000  12.0000
- 
-! @FNR
-lsxn/x=500:600 $1_void
- !-> list/order=x/nohead/x=500:600 vreg_void
-             ....  11.0000  12.0000     ....     ....     ....  16.0000     ....
-lsxn/x=500:600 $1_void[x=@fnr]
- !-> list/order=x/nohead/x=500:600 vreg_void[x=@fnr]
-             ....  11.0000  12.0000  12.0000  14.0000  16.0000  16.0000     ....
- 
-lsxn/x=-100:0    $1_void
- !-> list/order=x/nohead/x=-100:0    vreg_void
-             ....  11.0000  12.0000     ....     ....     ....  16.0000     ....
-lsxn/x=-100:0    $1_void[x=@fnr]
- !-> list/order=x/nohead/x=-100:0    vreg_void[x=@fnr]
-             ....  11.0000  12.0000  12.0000  14.0000  16.0000  16.0000     ....
- 
-lsxn/x=-100:142/wid=200 $1_void
- !-> list/order=x/nohead/x=-100:142/wid=200 vreg_void
-             ....  11.0000  12.0000     ....     ....     ....  16.0000     ....  11.0000  12.0000     ....     ....     ....  16.0000     ....  11.0000  12.0000
-lsxn/x=-100:142/wid=200 $1_void[x=@fnr:35]
- !-> list/order=x/nohead/x=-100:142/wid=200 vreg_void[x=@fnr:35]
-             ....  11.0000  12.0000  12.0000  14.0000  16.0000  16.0000     ....  11.0000  12.0000  12.0000  14.0000  16.0000  16.0000     ....  11.0000  12.0000
- 
-! Test 2-axis modulo (longitude and time)
-define alias l200 list/width=200
-define alias l200n list/width=200/nohead
-l200/i=1:13 $2
- !-> list/width=200/nohead/i=1:13 v2d_reg
- 16-JAN      / 1:   11.000   12.000   13.000   14.000   15.000   16.000     ....   11.000   12.000   13.000   14.000   15.000   16.000
- 15-FEB      / 2:   41.000   42.000   43.000   44.000   45.000   46.000     ....   41.000   42.000   43.000   44.000   45.000   46.000
- 16-MAR      / 3:   71.000   72.000   73.000   74.000   75.000   76.000     ....   71.000   72.000   73.000   74.000   75.000   76.000
- 15-APR      / 4:  101.000  102.000  103.000  104.000  105.000  106.000     ....  101.000  102.000  103.000  104.000  105.000  106.000
- 15-MAY      / 5:  131.000  132.000  133.000  134.000  135.000  136.000     ....  131.000  132.000  133.000  134.000  135.000  136.000
-l200n/l=1:12 $2
- !-> list/width=200/nohead/l=1:12 v2d_reg
- 16-JAN      /  1:   11.000   12.000   13.000   14.000   15.000   16.000
- 15-FEB      /  2:   41.000   42.000   43.000   44.000   45.000   46.000
- 16-MAR      /  3:   71.000   72.000   73.000   74.000   75.000   76.000
- 15-APR      /  4:  101.000  102.000  103.000  104.000  105.000  106.000
- 15-MAY      /  5:  131.000  132.000  133.000  134.000  135.000  136.000
- 14-SEP      /  6:     ....     ....     ....     ....     ....     ....
- 15-JAN      /  7:   11.000   12.000   13.000   14.000   15.000   16.000
- 14-FEB      /  8:   41.000   42.000   43.000   44.000   45.000   46.000
- 16-MAR      /  9:   71.000   72.000   73.000   74.000   75.000   76.000
- 15-APR      / 10:  101.000  102.000  103.000  104.000  105.000  106.000
- 15-MAY      / 11:  131.000  132.000  133.000  134.000  135.000  136.000
- 14-SEP      / 12:     ....     ....     ....     ....     ....     ....
-l200n/l=1:12/i=1:11 $2
- !-> list/width=200/nohead/l=1:12/i=1:11 v2d_reg
- 16-JAN      /  1:   11.000   12.000   13.000   14.000   15.000   16.000     ....   11.000   12.000   13.000   14.000
- 15-FEB      /  2:   41.000   42.000   43.000   44.000   45.000   46.000     ....   41.000   42.000   43.000   44.000
- 16-MAR      /  3:   71.000   72.000   73.000   74.000   75.000   76.000     ....   71.000   72.000   73.000   74.000
- 15-APR      /  4:  101.000  102.000  103.000  104.000  105.000  106.000     ....  101.000  102.000  103.000  104.000
- 15-MAY      /  5:  131.000  132.000  133.000  134.000  135.000  136.000     ....  131.000  132.000  133.000  134.000
- 14-SEP      /  6:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 15-JAN      /  7:   11.000   12.000   13.000   14.000   15.000   16.000     ....   11.000   12.000   13.000   14.000
- 14-FEB      /  8:   41.000   42.000   43.000   44.000   45.000   46.000     ....   41.000   42.000   43.000   44.000
- 16-MAR      /  9:   71.000   72.000   73.000   74.000   75.000   76.000     ....   71.000   72.000   73.000   74.000
- 15-APR      / 10:  101.000  102.000  103.000  104.000  105.000  106.000     ....  101.000  102.000  103.000  104.000
- 15-MAY      / 11:  131.000  132.000  133.000  134.000  135.000  136.000     ....  131.000  132.000  133.000  134.000
- 14-SEP      / 12:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
-l200n/l=12:21/i=-19:-9 $2
- !-> list/width=200/nohead/l=12:21/i=-19:-9 v2d_reg
- 14-SEP      / 12:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 15-JAN-0002 / 13:   12.000   13.000   14.000   15.000   16.000     ....   11.000   12.000   13.000   14.000   15.000
- 14-FEB-0002 / 14:   42.000   43.000   44.000   45.000   46.000     ....   41.000   42.000   43.000   44.000   45.000
- 16-MAR-0002 / 15:   72.000   73.000   74.000   75.000   76.000     ....   71.000   72.000   73.000   74.000   75.000
- 15-APR-0002 / 16:  102.000  103.000  104.000  105.000  106.000     ....  101.000  102.000  103.000  104.000  105.000
- 15-MAY-0002 / 17:  132.000  133.000  134.000  135.000  136.000     ....  131.000  132.000  133.000  134.000  135.000
- 15-SEP-0002 / 18:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 15-JAN-0003 / 19:   12.000   13.000   14.000   15.000   16.000     ....   11.000   12.000   13.000   14.000   15.000
- 14-FEB-0003 / 20:   42.000   43.000   44.000   45.000   46.000     ....   41.000   42.000   43.000   44.000   45.000
- 16-MAR-0003 / 21:   72.000   73.000   74.000   75.000   76.000     ....   71.000   72.000   73.000   74.000   75.000
-l200n/l=12:21/i=-19:-9 $2_void
- !-> list/width=200/nohead/l=12:21/i=-19:-9 v2d_reg_void
- 14-SEP      / 12:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 15-JAN-0002 / 13:   12.000     ....     ....     ....   16.000     ....   11.000   12.000     ....     ....     ....
- 14-FEB-0002 / 14:   42.000     ....     ....     ....   46.000     ....   41.000   42.000     ....     ....     ....
- 16-MAR-0002 / 15:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 15-APR-0002 / 16:  102.000     ....     ....     ....  106.000     ....  101.000  102.000     ....     ....     ....
- 15-MAY-0002 / 17:  132.000     ....     ....     ....  136.000     ....  131.000  132.000     ....     ....     ....
- 15-SEP-0002 / 18:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 15-JAN-0003 / 19:   12.000     ....     ....     ....   16.000     ....   11.000   12.000     ....     ....     ....
- 14-FEB-0003 / 20:   42.000     ....     ....     ....   46.000     ....   41.000   42.000     ....     ....     ....
- 16-MAR-0003 / 21:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
-l200n/l=12:21/i=-19:-9 $2_void[x=@fnr,t=@fnr]
- !-> list/width=200/nohead/l=12:21/i=-19:-9 v2d_reg_void[x=@fnr,t=@fnr]
- 14-SEP      / 12:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 15-JAN-0002 / 13:   12.000   12.000   14.000   16.000   16.000     ....   11.000   12.000   12.000   14.000   16.000
- 14-FEB-0002 / 14:   42.000   42.000   44.000   46.000   46.000     ....   41.000   42.000   42.000   44.000   46.000
- 16-MAR-0002 / 15:   72.000   72.000   74.000   76.000   76.000     ....   71.000   72.000   72.000   74.000   76.000
- 15-APR-0002 / 16:  102.000  102.000  104.000  106.000  106.000     ....  101.000  102.000  102.000  104.000  106.000
- 15-MAY-0002 / 17:  132.000  132.000  134.000  136.000  136.000     ....  131.000  132.000  132.000  134.000  136.000
- 15-SEP-0002 / 18:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 15-JAN-0003 / 19:   12.000   12.000   14.000   16.000   16.000     ....   11.000   12.000   12.000   14.000   16.000
- 14-FEB-0003 / 20:   42.000   42.000   44.000   46.000   46.000     ....   41.000   42.000   42.000   44.000   46.000
- 16-MAR-0003 / 21:   72.000   72.000   74.000   76.000   76.000     ....   71.000   72.000   72.000   74.000   76.000
- 
-! 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-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     ....
- 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     ....
- 
-! test strides
-l200n/order=x $2[l=1,i=0:14]
- !-> list/width=200/nohead/order=x v2d_reg[l=1,i=0:14]
-             ....  11.0000  12.0000  13.0000  14.0000  15.0000  16.0000     ....  11.0000  12.0000  13.0000  14.0000  15.0000  16.0000     ....
-set mode diag; l200n/order=x $2[l=1,i=0:14:2]; set mode/last diag
- !-> list/width=200/nohead/order=x v2d_reg[l=1,i=0:14:2]
- dealloc  dynamic grid GFJ3            XAX_SUBSPANORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G008)          (AX014)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
- dealloc  dynamic grid (G008)          (AX014)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
- allocate dynamic grid (G008)          (AX014)   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 (G008)          (AX014)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
- strip regrid on X: V2D_REG --> (G008)           @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 (G008)          (AX014)   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 (G008)          (AX017)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
- -DELETE V2D_REG  M: 71 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G008)          XAX_SUBSPANORMAL    NORMAL    (AX014)   NORMAL    NORMAL
- dealloc  dynamic grid (G008)          XAX_SUBSPANORMAL    NORMAL    (AX014)   NORMAL    NORMAL
- allocate dynamic grid (G008)          XAX_SUBSPANORMAL    NORMAL    (AX014)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- allocate dynamic grid (G008)          XAX_SUBSPANORMAL    NORMAL    (AX014)   NORMAL    NORMAL
- strip regrid on T: V2D_REG --> (G008)           @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 (G008)          XAX_SUBSPANORMAL    NORMAL    (AX014)   NORMAL    NORMAL
- 16-JAN-0000 / 1:   11.000
- 16-MAR-0000 / 2:   71.000
- 15-MAY-0000 / 3:  131.000
- 15-JAN-0001 / 4:   11.000
- 16-MAR-0001 / 5:   71.000
- 15-MAY-0001 / 6:  131.000
- 15-JAN-0002 / 7:   11.000
- 16-MAR-0002 / 8:   71.000
-l200n $2[i=1,l=1:15:3]
- !-> list/width=200/nohead v2d_reg[i=1,l=1:15:3]
- 16-JAN-0000 / 1:   11.000
- 15-APR-0000 / 2:  101.000
- 15-JAN-0001 / 3:   11.000
- 15-APR-0001 / 4:  101.000
- 15-JAN-0002 / 5:   11.000
-l200n $2[i=1,l=1:15:4]
- !-> list/width=200/nohead v2d_reg[i=1,l=1:15:4]
- 16-JAN-0000 / 1:   11.000
- 15-MAY-0000 / 2:  131.000
- 16-MAR-0001 / 3:   71.000
- 15-JAN-0002 / 4:   11.000
-l200n $2[i=0:14:2,l=1:15:3]
- !-> list/width=200/nohead v2d_reg[i=0:14:2,l=1:15:3]
- 16-JAN-0000 / 1:     ....   12.000   14.000   16.000   11.000   13.000   15.000     ....
- 15-APR-0000 / 2:     ....  102.000  104.000  106.000  101.000  103.000  105.000     ....
- 15-JAN-0001 / 3:     ....   12.000   14.000   16.000   11.000   13.000   15.000     ....
- 15-APR-0001 / 4:     ....  102.000  104.000  106.000  101.000  103.000  105.000     ....
- 15-JAN-0002 / 5:     ....   12.000   14.000   16.000   11.000   13.000   15.000     ....
- 
-! test modulo regridding
-define axis/t=15-jan-1981:15-dec-1990/npoints=120 t1980s
-LET/quiet time_series = MOD(L[gt=t1980s]-1,12)+1
-list time_series[gt=($TAXNAME)@mod]
- !-> list time_series[gt=TAX_SUBSPAN1 at mod]
-             VARIABLE : MOD(L[GT=T1980S]-1,12)+1
-                        regrid: 30 day on T at MOD
-             SUBSET   : 5 points (TIME)
- 16-JAN      / 1:  1.00000
- 15-FEB      / 2:  2.00000
- 16-MAR      / 3:  3.00000
- 15-APR      / 4:  4.00000
- 15-MAY      / 5:  5.00000
-list time_series[gt=($TAXNAME)@modngd]
- !-> list time_series[gt=TAX_SUBSPAN1 at modngd]
-             VARIABLE : MOD(L[GT=T1980S]-1,12)+1 (# of points)
-                        regrid: 30 day on T at MODNGD
-             SUBSET   : 5 points (TIME)
- 16-JAN      / 1:  10.0000
- 15-FEB      / 2:  10.0000
- 16-MAR      / 3:  10.0000
- 15-APR      / 4:  10.0000
- 15-MAY      / 5:  10.0000
-list/nohead/l=1001:1009 time_series[gt=($TAXNAME)@mod]
- !-> list/nohead/l=1001:1009 time_series[gt=TAX_SUBSPAN1 at mod]
- 16-MAY-0166 / 1001:  5.00000
- 15-SEP-0166 / 1002:     ....
- 16-JAN-0167 / 1003:  1.00000
- 15-FEB-0167 / 1004:  2.00000
- 17-MAR-0167 / 1005:  3.00000
- 16-APR-0167 / 1006:  4.00000
- 16-MAY-0167 / 1007:  5.00000
- 16-SEP-0167 / 1008:     ....
- 16-JAN-0168 / 1009:  1.00000
- 
-! test modulo string arrays
-list $1_strings[i=5:7]  	! via IS_SUBSPAN_FILL
- !-> list vreg_strings[i=5:7]  	! via IS_SUBSPAN_FILL
-             VARIABLE : MY_STRINGS[GX=XAX_SUBSPAN at ASN]
-             FILENAME : test_subspan_modulo.nc
-             SUBSET   : 3 points (X)
- 45   / 5:"a5"
- 46   / 6:"a6"
- 93.5 / 7:""  
-list $1_strings[i=1013:1024] 	! via IS_MODULO
- !-> list vreg_strings[i=1013:1024] 	! via IS_MODULO
-             VARIABLE : MY_STRINGS[GX=XAX_SUBSPAN at ASN]
-             FILENAME : test_subspan_modulo.nc
-             SUBSET   : 12 points (X)
- 14445   / 1013:"a5"
- 14446   / 1014:"a6"
- 14493.5 / 1015:""  
- 14541   / 1016:"a1"
- 14542   / 1017:"a2"
- 14543   / 1018:"a3"
- 14544   / 1019:"a4"
- 14545   / 1020:"a5"
- 14546   / 1021:"a6"
- 14593.5 / 1022:""  
- 14641   / 1023:"a1"
- 14642   / 1024:"a2"
-SAY **********   END OF REGULAR   AXIS TEST **************
-**********   END OF REGULAR   AXIS TEST **************
-SAY ********** START OF IRREGULAR AXIS TEST **************
-********** START OF IRREGULAR AXIS TEST **************
-go bn_subspan_modulo.sub2 virr v2d_irr
-! bn_subspan_modulo.sub
-! *sh* 11/02
- 
-! subroutine for benchmark test bn_subspan_modulo.jnl
-! call with
-!	yes? GO bn_subspan_modulo.sub vreg   ! test regular axis
-!	yes? GO bn_subspan_modulo.sub virr   ! test irregular axis
- 
-define alias lsx list/order=x
-define alias lsxn list/order=x/nohead
- 
-! check the modulo behavior of the X and T axes
-define symbox xaxname `$1,return=xaxis`
- !-> define symbox xaxname XIRREG_SUBSPAN
-show axis/x=-60:141 ($XAXNAME)
- !-> show axis/x=-60:141 XIRREG_SUBSPAN
- name       axis              # pts   start                end
- XIRREG_SUBSPAN X               6mi   41                   46
-   Axis span (to cell edges) = 6 (modulo length = 100)
- 
-       I     X                   XBOX      XBOXLO
-      -7>  -106.5                94         -153.5
-      -6>  -59                   1          -59.5
-      -5>  -58                   0.55       -58.5
-      -4>  -57.9                 1          -57.95
-      -3>  -56                   1.45       -56.95
-      -2>  -55                   1          -55.5
-      -1>  -54                   1          -54.5
-       0>  -6.5                  94         -53.5
-       1>  41                    1          40.5
-       2>  42                    0.55       41.5
-       3>  42.1                  1          42.05
-       4>  44                    1.45       43.05
-       5>  45                    1          44.5
-       6>  46                    1          45.5
-       7>  93.5                  94         46.5
-       8>  141                   1          140.5
-show axis/x=-60:141:2 ($XAXNAME)
- !-> show axis/x=-60:141:2 XIRREG_SUBSPAN
- name       axis              # pts   start                end
- XIRREG_SUBSPAN X               6mi   41                   46
-   Axis span (to cell edges) = 6 (modulo length = 100)
- 
-       I     X                   XBOX      XBOXLO
-      -7>  -106.5                94         -153.5
-      -5>  -58                   0.55       -58.5
-      -3>  -56                   1.45       -56.95
-      -1>  -54                   1          -54.5
-       1>  41                    1          40.5
-       3>  42.1                  1          42.05
-       5>  45                    1          44.5
-       7>  93.5                  94         46.5
-show axis/x=-60:141:7 ($XAXNAME)
- !-> show axis/x=-60:141:7 XIRREG_SUBSPAN
- name       axis              # pts   start                end
- XIRREG_SUBSPAN X               6mi   41                   46
-   Axis span (to cell edges) = 6 (modulo length = 100)
- 
-       I     X                   XBOX      XBOXLO
-      -7>  -106.5                94         -153.5
-       0>  -6.5                  94         -53.5
-       7>  93.5                  94         46.5
- 
-define symbox taxname `$2,return=taxis`
- !-> define symbox taxname TIRREG_SUBSPAN1
-show axis/l=3:10 ($TAXNAME)
- !-> show axis/l=3:10 TIRREG_SUBSPAN1
- name       axis              # pts   start                end
- TIRREG_SUBSPAN1 TIME           5mi   16-JAN 12:00         15-MAY 05:57
-T0 = 01-JAN-0000 00:00:00
-   Axis span (to cell edges) = 150.2485 (modulo length = 365.2485)
- 
-       L     T                   TBOX      TBOXLO                TSTEP (days)
-       3>  15-MAR 17:57:50       31         29-FEB 05:57:50         74.7485
-       4>  15-APR 05:57:50       30         31-MAR 05:57:50         105.2485
-       5>  15-MAY 05:57:50       30         30-APR 05:57:50         135.2485
-       6>  14-SEP 17:57:50       215        30-MAY 05:57:50         257.7485
-       7>  15-JAN 17:57:50       31         31-DEC 05:57:50         380.7485
-       8>  14-FEB 08:56:45       28.2485    31-JAN 05:57:50         410.3727
-       9>  15-MAR 23:55:40       31         28-FEB 11:55:40         439.997
-      10>  15-APR 11:55:40       30         31-MAR 11:55:40         470.497
-show axis/l=3:10:3 ($TAXNAME)
- !-> show axis/l=3:10:3 TIRREG_SUBSPAN1
- name       axis              # pts   start                end
- TIRREG_SUBSPAN1 TIME           5mi   16-JAN 12:00         15-MAY 05:57
-T0 = 01-JAN-0000 00:00:00
-   Axis span (to cell edges) = 150.2485 (modulo length = 365.2485)
- 
-       L     T                   TBOX      TBOXLO                TSTEP (days)
-       3>  15-MAR 17:57:50       31         29-FEB 05:57:50         74.7485
-       6>  14-SEP 17:57:50       215        30-MAY 05:57:50         257.7485
-       9>  15-MAR 23:55:40       31         28-FEB 11:55:40         439.997
-show axis/l=3:10:6 ($TAXNAME)
- !-> show axis/l=3:10:6 TIRREG_SUBSPAN1
- name       axis              # pts   start                end
- TIRREG_SUBSPAN1 TIME           5mi   16-JAN 12:00         15-MAY 05:57
-T0 = 01-JAN-0000 00:00:00
-   Axis span (to cell edges) = 150.2485 (modulo length = 365.2485)
- 
-       L     T                   TBOX      TBOXLO                TSTEP (days)
-       3>  15-MAR 17:57:50       31         29-FEB 05:57:50         74.7485
-       9>  15-MAR 23:55:40       31         28-FEB 11:55:40         439.997
- 
-set mode diag
-set mode stupid  ! always re-read and recompute
-lsx $1  ! default avoids void points
- !-> list/order=x virr
- dealloc  dynamic grid GFJ4            XIRREG_SUBNORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GFJ2            XIRREG_SUBNORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  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
-             VARIABLE : X[GX=XIRREG_SUBSPAN] -40 + 10
-             FILENAME : test_subspan_modulo.nc
-             SUBSET   : 6 points (X)
-            41       42       42.1     44       45       46     
-             1        2        3        4        5        6
-          11.0000  12.0000  12.1000  14.0000  15.0000  16.0000
-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
- doing modulo-void-filling VIRR on X axis:     6     6 dset:   1
-        ....
-lsxn/x=0 $1 ! void point below, alone (via modulo)
- !-> list/order=x/nohead/x=0 virr
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    0    0  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing VIRR on X axis:     0     0 dset:   1
- reading VIRR     M: 81 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
- 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
- doing moduloing VIRR on X axis:     1     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
- !-> list/order=x/nohead/x=50:160 virr
-             ....  11.0000  12.0000  12.1000  14.0000  15.0000  16.0000     ....
-lsxn/x=-100:40 $1 ! modulo below
- !-> list/order=x/nohead/x=-100:40 virr
-             ....  11.0000  12.0000  12.1000  14.0000  15.0000  16.0000     ....
-lsxn/x=-100:160 $1  ! modulo above & below
- !-> list/order=x/nohead/x=-100:160 virr
-      ... listing every   2th point
-       .     ....  12.0000  14.0000  16.0000  11.0000  12.1000  15.0000     ....  12.0000  14.0000  16.0000
- 
-! end point testing
-lsxn/i=-8:-2 $1
- !-> list/order=x/nohead/i=-8:-2 virr
-          16.0000     ....  11.0000  12.0000  12.1000  14.0000  15.0000
-lsxn/i=-7:-2 $1
- !-> list/order=x/nohead/i=-7:-2 virr
-             ....  11.0000  12.0000  12.1000  14.0000  15.0000
-lsxn/i=-6:-2 $1
- !-> list/order=x/nohead/i=-6:-2 virr
-          11.0000  12.0000  12.1000  14.0000  15.0000
-lsxn/i=17:20 $1
- !-> list/order=x/nohead/i=17:20 virr
-          12.1000  14.0000  15.0000  16.0000
-lsxn/i=17:21 $1
- !-> list/order=x/nohead/i=17:21 virr
-          12.1000  14.0000  15.0000  16.0000     ....
-lsxn/i=17:22 $1
- !-> list/order=x/nohead/i=17:22 virr
-          12.1000  14.0000  15.0000  16.0000     ....  11.0000
-set mode/last stupid
- 
-! test smoothers - pos and neg modulo and combined mod and context edges
-lsx/x=500:600 $1_ragged
- !-> list/order=x/x=500:600 virr_ragged
-             VARIABLE : VIRR + NOISE[G=VIRR at ASN]
-             FILENAME : test_subspan_modulo.nc
-             SUBSET   : 8 points (X)
-           493.5    541      542      542.1    544      545      546      593.5   
-            35       36       37       38       39       40       41       42
-             ....  10.9466  12.0566  12.0354  14.2434  14.9391  15.9921     ....
-lsxn/x=500:600 $1_ragged[x=@sbx]
- !-> list/order=x/nohead/x=500:600 virr_ragged[x=@sbx]
-             ....     ....  11.6795  12.7784  13.7393  15.0582     ....     ....
-lsxn/x=500:545 $1_ragged[x=@sbx]
- !-> list/order=x/nohead/x=500:545 virr_ragged[x=@sbx]
-             ....     ....  11.6795  12.7784  13.7393  15.0582
-lsxn/x=545:600 $1_ragged[x=@sbx]
- !-> list/order=x/nohead/x=545:600 virr_ragged[x=@sbx]
-          15.0582     ....     ....
- 
-lsxn/x=-100:0 $1_ragged
- !-> list/order=x/nohead/x=-100:0 virr_ragged
-             ....  10.9466  12.0566  12.0354  14.2434  14.9391  15.9921     ....
-lsxn/x=-100:0    $1_ragged[x=@sbx]
- !-> list/order=x/nohead/x=-100:0    virr_ragged[x=@sbx]
-             ....     ....  11.6795  12.7784  13.7393  15.0582     ....     ....
-lsxn/x=-100:-55  $1_ragged[x=@sbx]
- !-> list/order=x/nohead/x=-100:-55  virr_ragged[x=@sbx]
-             ....     ....  11.6795  12.7784  13.7393  15.0582
-lsxn/x=-56:0     $1_ragged[x=@sbx]
- !-> list/order=x/nohead/x=-56:0     virr_ragged[x=@sbx]
-          13.7393  15.0582     ....     ....
- 
-lsxn/x=-100:142/wid=200 $1_ragged
- !-> list/order=x/nohead/x=-100:142/wid=200 virr_ragged
-             ....  10.9466  12.0566  12.0354  14.2434  14.9391  15.9921     ....  10.9466  12.0566  12.0354  14.2434  14.9391  15.9921     ....  10.9466  12.0566
-lsxn/x=-100:142/wid=200 $1_ragged[x=@sbx:3]
- !-> list/order=x/nohead/x=-100:142/wid=200 virr_ragged[x=@sbx:3]
-             ....     ....  11.6795  12.7784  13.7393  15.0582     ....     ....     ....  11.6795  12.7784  13.7393  15.0582     ....     ....     ....  11.6795
-lsxn/x=-100:142/wid=200 $1_ragged[x=@swl:5]
- !-> list/order=x/nohead/x=-100:142/wid=200 virr_ragged[x=@swl:5]
-             ....     ....     ....  12.8042  13.8351     ....     ....     ....     ....     ....  12.8042  13.8351     ....     ....     ....     ....     ....
-lsxn/x=-100:142/wid=200 $1_ragged[x=@swl:35]
- !-> list/order=x/nohead/x=-100:142/wid=200 virr_ragged[x=@swl:35]
-        ....................................................................
- 
-! test fillers - pos and neg modulo and combined mod and context edges
-! @FAV
-lsx/x=500:600 $1_void
- !-> list/order=x/x=500:600 virr_void
-             VARIABLE : IF X[G=VIRR] LT 43 OR X[G=VIRR] GT 45 THEN VIRR
-             FILENAME : test_subspan_modulo.nc
-             SUBSET   : 8 points (X)
-           493.5    541      542      542.1    544      545      546      593.5   
-            35       36       37       38       39       40       41       42
-             ....  11.0000  12.0000  12.1000     ....     ....  16.0000     ....
-lsxn/x=500:600 $1_void[x=@fav]
- !-> list/order=x/nohead/x=500:600 virr_void[x=@fav]
-             ....  11.0000  12.0000  12.1000  12.1000  16.0000  16.0000     ....
- 
-lsxn/x=-100:0    $1_void
- !-> list/order=x/nohead/x=-100:0    virr_void
-             ....  11.0000  12.0000  12.1000     ....     ....  16.0000     ....
-lsxn/x=-100:0    $1_void[x=@fav]
- !-> list/order=x/nohead/x=-100:0    virr_void[x=@fav]
-             ....  11.0000  12.0000  12.1000  12.1000  16.0000  16.0000     ....
- 
-lsxn/x=-100:142/wid=200 $1_void
- !-> list/order=x/nohead/x=-100:142/wid=200 virr_void
-             ....  11.0000  12.0000  12.1000     ....     ....  16.0000     ....  11.0000  12.0000  12.1000     ....     ....  16.0000     ....  11.0000  12.0000
-lsxn/x=-100:142/wid=200 $1_void[x=@fav:3]
- !-> list/order=x/nohead/x=-100:142/wid=200 virr_void[x=@fav:3]
-             ....  11.0000  12.0000  12.1000  12.1000  16.0000  16.0000     ....  11.0000  12.0000  12.1000  12.1000  16.0000  16.0000     ....  11.0000  12.0000
-lsxn/x=-100:142/wid=200 $1_void[x=@fav:5]
- !-> list/order=x/nohead/x=-100:142/wid=200 virr_void[x=@fav:5]
-             ....  11.0000  12.0000  12.1000  13.3667  14.0500  16.0000     ....  11.0000  12.0000  12.1000  13.3667  14.0500  16.0000     ....  11.0000  12.0000
-lsxn/x=-100:142/wid=200 $1_void[x=@fav:35]
- !-> list/order=x/nohead/x=-100:142/wid=200 virr_void[x=@fav:35]
-             ....  11.0000  12.0000  12.1000  12.7750  12.7750  16.0000     ....  11.0000  12.0000  12.1000  12.7750  12.7750  16.0000     ....  11.0000  12.0000
- 
-! @FLN
-lsxn/x=500:600 $1_void
- !-> list/order=x/nohead/x=500:600 virr_void
-             ....  11.0000  12.0000  12.1000     ....     ....  16.0000     ....
-lsxn/x=500:600 $1_void[x=@fln]
- !-> list/order=x/nohead/x=500:600 virr_void[x=@fln]
-             ....  11.0000  12.0000  12.1000  14.0000  15.0000  16.0000     ....
- 
-lsxn/x=-100:0    $1_void
- !-> list/order=x/nohead/x=-100:0    virr_void
-             ....  11.0000  12.0000  12.1000     ....     ....  16.0000     ....
-lsxn/x=-100:0    $1_void[x=@fln]
- !-> list/order=x/nohead/x=-100:0    virr_void[x=@fln]
-             ....  11.0000  12.0000  12.1000  14.0000  15.0000  16.0000     ....
- 
-lsxn/x=-100:142/wid=200 $1_void
- !-> list/order=x/nohead/x=-100:142/wid=200 virr_void
-             ....  11.0000  12.0000  12.1000     ....     ....  16.0000     ....  11.0000  12.0000  12.1000     ....     ....  16.0000     ....  11.0000  12.0000
-lsxn/x=-100:142/wid=200 $1_void[x=@fln:35]
- !-> list/order=x/nohead/x=-100:142/wid=200 virr_void[x=@fln:35]
-             ....  11.0000  12.0000  12.1000  14.0000  15.0000  16.0000     ....  11.0000  12.0000  12.1000  14.0000  15.0000  16.0000     ....  11.0000  12.0000
- 
-! @FNR
-lsxn/x=500:600 $1_void
- !-> list/order=x/nohead/x=500:600 virr_void
-             ....  11.0000  12.0000  12.1000     ....     ....  16.0000     ....
-lsxn/x=500:600 $1_void[x=@fnr]
- !-> list/order=x/nohead/x=500:600 virr_void[x=@fnr]
-             ....  11.0000  12.0000  12.1000  12.1000  16.0000  16.0000     ....
- 
-lsxn/x=-100:0    $1_void
- !-> list/order=x/nohead/x=-100:0    virr_void
-             ....  11.0000  12.0000  12.1000     ....     ....  16.0000     ....
-lsxn/x=-100:0    $1_void[x=@fnr]
- !-> list/order=x/nohead/x=-100:0    virr_void[x=@fnr]
-             ....  11.0000  12.0000  12.1000  12.1000  16.0000  16.0000     ....
- 
-lsxn/x=-100:142/wid=200 $1_void
- !-> list/order=x/nohead/x=-100:142/wid=200 virr_void
-             ....  11.0000  12.0000  12.1000     ....     ....  16.0000     ....  11.0000  12.0000  12.1000     ....     ....  16.0000     ....  11.0000  12.0000
-lsxn/x=-100:142/wid=200 $1_void[x=@fnr:35]
- !-> list/order=x/nohead/x=-100:142/wid=200 virr_void[x=@fnr:35]
-             ....  11.0000  12.0000  12.1000  12.1000  16.0000  16.0000     ....  11.0000  12.0000  12.1000  12.1000  16.0000  16.0000     ....  11.0000  12.0000
- 
-! Test 2-axis modulo (longitude and time)
-define alias l200 list/width=200
-define alias l200n list/width=200/nohead
-l200/i=1:13 $2
- !-> list/width=200/nohead/i=1:13 v2d_irr
- 16-JAN 12      / 1:   11.000   12.000   12.100   14.000   15.000   16.000     ....   11.000   12.000   12.100   14.000   15.000   16.000
- 15-FEB 02      / 2:   42.000   43.000   43.100   45.000   46.000   47.000     ....   42.000   43.000   43.100   45.000   46.000   47.000
- 15-MAR 17      / 3:   70.249   71.249   71.349   73.249   74.249   75.249     ....   70.249   71.249   71.349   73.249   74.249   75.249
- 15-APR 05      / 4:  101.249  102.249  102.349  104.249  105.249  106.249     ....  101.249  102.249  102.349  104.249  105.249  106.249
- 15-MAY 05      / 5:  131.249  132.249  132.349  134.249  135.249  136.249     ....  131.249  132.249  132.349  134.249  135.249  136.249
-l200n/l=1:12 $2
- !-> list/width=200/nohead/l=1:12 v2d_irr
- 16-JAN 12      /  1:   11.000   12.000   12.100   14.000   15.000   16.000
- 15-FEB 02      /  2:   42.000   43.000   43.100   45.000   46.000   47.000
- 15-MAR 17      /  3:   70.249   71.249   71.349   73.249   74.249   75.249
- 15-APR 05      /  4:  101.249  102.249  102.349  104.249  105.249  106.249
- 15-MAY 05      /  5:  131.249  132.249  132.349  134.249  135.249  136.249
- 14-SEP 17      /  6:     ....     ....     ....     ....     ....     ....
- 15-JAN 17      /  7:   11.000   12.000   12.100   14.000   15.000   16.000
- 14-FEB 08      /  8:   42.000   43.000   43.100   45.000   46.000   47.000
- 15-MAR 23      /  9:   70.249   71.249   71.349   73.249   74.249   75.249
- 15-APR 11      / 10:  101.249  102.249  102.349  104.249  105.249  106.249
- 15-MAY 11      / 11:  131.249  132.249  132.349  134.249  135.249  136.249
- 14-SEP 23      / 12:     ....     ....     ....     ....     ....     ....
-l200n/l=1:12/i=1:11 $2
- !-> list/width=200/nohead/l=1:12/i=1:11 v2d_irr
- 16-JAN 12      /  1:   11.000   12.000   12.100   14.000   15.000   16.000     ....   11.000   12.000   12.100   14.000
- 15-FEB 02      /  2:   42.000   43.000   43.100   45.000   46.000   47.000     ....   42.000   43.000   43.100   45.000
- 15-MAR 17      /  3:   70.249   71.249   71.349   73.249   74.249   75.249     ....   70.249   71.249   71.349   73.249
- 15-APR 05      /  4:  101.249  102.249  102.349  104.249  105.249  106.249     ....  101.249  102.249  102.349  104.249
- 15-MAY 05      /  5:  131.249  132.249  132.349  134.249  135.249  136.249     ....  131.249  132.249  132.349  134.249
- 14-SEP 17      /  6:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 15-JAN 17      /  7:   11.000   12.000   12.100   14.000   15.000   16.000     ....   11.000   12.000   12.100   14.000
- 14-FEB 08      /  8:   42.000   43.000   43.100   45.000   46.000   47.000     ....   42.000   43.000   43.100   45.000
- 15-MAR 23      /  9:   70.249   71.249   71.349   73.249   74.249   75.249     ....   70.249   71.249   71.349   73.249
- 15-APR 11      / 10:  101.249  102.249  102.349  104.249  105.249  106.249     ....  101.249  102.249  102.349  104.249
- 15-MAY 11      / 11:  131.249  132.249  132.349  134.249  135.249  136.249     ....  131.249  132.249  132.349  134.249
- 14-SEP 23      / 12:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
-l200n/l=12:21/i=-19:-9 $2
- !-> list/width=200/nohead/l=12:21/i=-19:-9 v2d_irr
- 14-SEP 23      / 12:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 15-JAN-0002 23 / 13:   12.000   12.100   14.000   15.000   16.000     ....   11.000   12.000   12.100   14.000   15.000
- 14-FEB-0002 14 / 14:   43.000   43.100   45.000   46.000   47.000     ....   42.000   43.000   43.100   45.000   46.000
- 16-MAR-0002 05 / 15:   71.249   71.349   73.249   74.249   75.249     ....   70.249   71.249   71.349   73.249   74.249
- 15-APR-0002 17 / 16:  102.249  102.349  104.249  105.249  106.249     ....  101.249  102.249  102.349  104.249  105.249
- 15-MAY-0002 17 / 17:  132.249  132.349  134.249  135.249  136.249     ....  131.249  132.249  132.349  134.249  135.249
- 15-SEP-0002 05 / 18:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 16-JAN-0003 05 / 19:   12.000   12.100   14.000   15.000   16.000     ....   11.000   12.000   12.100   14.000   15.000
- 14-FEB-0003 20 / 20:   43.000   43.100   45.000   46.000   47.000     ....   42.000   43.000   43.100   45.000   46.000
- 16-MAR-0003 11 / 21:   71.249   71.349   73.249   74.249   75.249     ....   70.249   71.249   71.349   73.249   74.249
-l200n/l=12:21/i=-19:-9 $2_void
- !-> list/width=200/nohead/l=12:21/i=-19:-9 v2d_irr_void
- 14-SEP 23      / 12:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 15-JAN-0002 23 / 13:   12.000   12.100     ....     ....   16.000     ....   11.000   12.000   12.100     ....     ....
- 14-FEB-0002 14 / 14:   43.000   43.100     ....     ....   47.000     ....   42.000   43.000   43.100     ....     ....
- 16-MAR-0002 05 / 15:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 15-APR-0002 17 / 16:  102.249  102.349     ....     ....  106.249     ....  101.249  102.249  102.349     ....     ....
- 15-MAY-0002 17 / 17:  132.249  132.349     ....     ....  136.249     ....  131.249  132.249  132.349     ....     ....
- 15-SEP-0002 05 / 18:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 16-JAN-0003 05 / 19:   12.000   12.100     ....     ....   16.000     ....   11.000   12.000   12.100     ....     ....
- 14-FEB-0003 20 / 20:   43.000   43.100     ....     ....   47.000     ....   42.000   43.000   43.100     ....     ....
- 16-MAR-0003 11 / 21:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
-l200n/l=12:21/i=-19:-9 $2_void[x=@fnr,t=@fnr]
- !-> list/width=200/nohead/l=12:21/i=-19:-9 v2d_irr_void[x=@fnr,t=@fnr]
- 14-SEP 23      / 12:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 15-JAN-0002 23 / 13:   12.000   12.100   12.100   16.000   16.000     ....   11.000   12.000   12.100   12.100   16.000
- 14-FEB-0002 14 / 14:   43.000   43.100   43.100   47.000   47.000     ....   42.000   43.000   43.100   43.100   47.000
- 16-MAR-0002 05 / 15:   72.624   72.724   72.724   76.624   76.624     ....   71.624   72.624   72.724   72.724   76.624
- 15-APR-0002 17 / 16:  102.249  102.349  102.349  106.249  106.249     ....  101.249  102.249  102.349  102.349  106.249
- 15-MAY-0002 17 / 17:  132.249  132.349  132.349  136.249  136.249     ....  131.249  132.249  132.349  132.349  136.249
- 15-SEP-0002 05 / 18:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 16-JAN-0003 05 / 19:   12.000   12.100   12.100   16.000   16.000     ....   11.000   12.000   12.100   12.100   16.000
- 14-FEB-0003 20 / 20:   43.000   43.100   43.100   47.000   47.000     ....   42.000   43.000   43.100   43.100   47.000
- 16-MAR-0003 11 / 21:   72.624   72.724   72.724   76.624   76.624     ....   71.624   72.624   72.724   72.724   76.624
- 
-! 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-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     ....
- 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     ....
- 
-! test strides
-l200n/order=x $2[l=1,i=0:14]
- !-> list/width=200/nohead/order=x v2d_irr[l=1,i=0:14]
-             ....  11.0000  12.0000  12.1000  14.0000  15.0000  16.0000     ....  11.0000  12.0000  12.1000  14.0000  15.0000  16.0000     ....
-set mode diag; l200n/order=x $2[l=1,i=0:14:2]; set mode/last diag
- !-> list/width=200/nohead/order=x v2d_irr[l=1,i=0:14:2]
- dealloc  dynamic grid GFJ4            XIRREG_SUBNORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX017)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX017)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
- allocate dynamic grid (G018)          (AX017)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX017)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
- 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)          (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)          (AX010)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
- -DELETE V2D_IRR  M:148 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX017)   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX017)   NORMAL    NORMAL
- allocate dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX017)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX017)   NORMAL    NORMAL
- 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    (AX017)   NORMAL    NORMAL
- 16-JAN-0000 / 1:   11.000
- 15-MAR-0000 / 2:   70.249
- 15-MAY-0000 / 3:  131.249
- 15-JAN-0001 / 4:   11.000
- 15-MAR-0001 / 5:   70.249
- 15-MAY-0001 / 6:  131.249
- 15-JAN-0002 / 7:   11.000
- 16-MAR-0002 / 8:   70.249
-l200n $2[i=1,l=1:15:3]
- !-> list/width=200/nohead v2d_irr[i=1,l=1:15:3]
- 16-JAN-0000 / 1:   11.000
- 15-APR-0000 / 2:  101.249
- 15-JAN-0001 / 3:   11.000
- 15-APR-0001 / 4:  101.249
- 15-JAN-0002 / 5:   11.000
-l200n $2[i=1,l=1:15:4]
- !-> list/width=200/nohead v2d_irr[i=1,l=1:15:4]
- 16-JAN-0000 / 1:   11.000
- 15-MAY-0000 / 2:  131.249
- 15-MAR-0001 / 3:   70.249
- 15-JAN-0002 / 4:   11.000
-l200n $2[i=0:14:2,l=1:15:3]
- !-> list/width=200/nohead v2d_irr[i=0:14:2,l=1:15:3]
- 16-JAN-0000 / 1:     ....   12.000   14.000   16.000   11.000   12.100   15.000     ....
- 15-APR-0000 / 2:     ....  102.249  104.249  106.249  101.249  102.349  105.249     ....
- 15-JAN-0001 / 3:     ....   12.000   14.000   16.000   11.000   12.100   15.000     ....
- 15-APR-0001 / 4:     ....  102.249  104.249  106.249  101.249  102.349  105.249     ....
- 15-JAN-0002 / 5:     ....   12.000   14.000   16.000   11.000   12.100   15.000     ....
- 
-! test modulo regridding
-define axis/t=15-jan-1981:15-dec-1990/npoints=120 t1980s
-LET/quiet time_series = MOD(L[gt=t1980s]-1,12)+1
-list time_series[gt=($TAXNAME)@mod]
- !-> list time_series[gt=TIRREG_SUBSPAN1 at mod]
-             VARIABLE : MOD(L[GT=T1980S]-1,12)+1
-                        regrid: on T at MOD
-             SUBSET   : 5 points (TIME)
- 16-JAN 12      / 1:  1.00000
- 15-FEB 02      / 2:  2.00000
- 15-MAR 17      / 3:  3.00000
- 15-APR 05      / 4:  4.00000
- 15-MAY 05      / 5:  5.00000
-list time_series[gt=($TAXNAME)@modngd]
- !-> list time_series[gt=TIRREG_SUBSPAN1 at modngd]
-             VARIABLE : MOD(L[GT=T1980S]-1,12)+1 (# of points)
-                        regrid: on T at MODNGD
-             SUBSET   : 5 points (TIME)
- 16-JAN 12      / 1:  10.0000
- 15-FEB 02      / 2:  10.0000
- 15-MAR 17      / 3:  10.0000
- 15-APR 05      / 4:  10.0000
- 15-MAY 05      / 5:  10.0000
-list/nohead/l=1001:1009 time_series[gt=($TAXNAME)@mod]
- !-> list/nohead/l=1001:1009 time_series[gt=TIRREG_SUBSPAN1 at mod]
- 16-MAY-0166 11 / 1001:  5.00000
- 15-SEP-0166 23 / 1002:     ....
- 16-JAN-0167 23 / 1003:  1.00000
- 15-FEB-0167 14 / 1004:  2.00000
- 17-MAR-0167 05 / 1005:  3.00000
- 16-APR-0167 17 / 1006:  4.00000
- 16-MAY-0167 17 / 1007:  5.00000
- 16-SEP-0167 05 / 1008:     ....
- 17-JAN-0168 05 / 1009:  1.00000
- 
-! test modulo string arrays
-list $1_strings[i=5:7]  	! via IS_SUBSPAN_FILL
- !-> list virr_strings[i=5:7]  	! via IS_SUBSPAN_FILL
-             VARIABLE : MY_STRINGS[GX=XIRREG_SUBSPAN at ASN]
-             FILENAME : test_subspan_modulo.nc
-             SUBSET   : 3 points (X)
- 45   / 5:"a5"
- 46   / 6:"a6"
- 93.5 / 7:""  
-list $1_strings[i=1013:1024] 	! via IS_MODULO
- !-> list virr_strings[i=1013:1024] 	! via IS_MODULO
-             VARIABLE : MY_STRINGS[GX=XIRREG_SUBSPAN at ASN]
-             FILENAME : test_subspan_modulo.nc
-             SUBSET   : 12 points (X)
- 14445    / 1013:"a5"
- 14446    / 1014:"a6"
- 14493.5  / 1015:""  
- 14541    / 1016:"a1"
- 14542    / 1017:"a2"
- 14542.1  / 1018:"a3"
- 14544    / 1019:"a4"
- 14545    / 1020:"a5"
- 14546    / 1021:"a6"
- 14593.5  / 1022:""  
- 14641    / 1023:"a1"
- 14642    / 1024:"a2"
- 
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_dots
-! PLOT/SYMBOL=DOT  qualifiers
-! *acm* 12/02
-! ACM 4/2005 set mode meta to save this plot for the metafile checks.
-!            and cancel mode logo, so that .plt files are comparable.
- 
-set mode meta dots.plt
-can mode logo
-plot/symbol=dot/i=1:1000 sin(62.8*i)
-plot/symbol=dot/color=red/over/i=1:1000 sin(62.8*(i+20))
-can mode meta
- 
-! test warnings
-plot/symbol=dot/thick/i=1:1000 sin(62.8*(i+10) )
-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)
-set mode logo
- 
-GO bn_reset
-cancel mode verify
-GO bn_lev_symbols
-! Test symbols which capture the latest LEVELS settings
-! LEV_TEXT  The argument, if any, to the LEV qualifier
-! LEV_MIN  Minimum level
-! LEV_MAX  Maximum level
-! LEV_NUM  Number of levels
-! LEV_DEL  Delta level (irregular)
- 
-can sym lev*
-define symbol lev_text = ""
- 
-shade/i=1:15/j=1:5 i*j
-sho sym lev*
-LEV_TEXT = """"
-LEV_MIN = "0"
-LEV_MAX = "76"
-LEV_NUM = "38"
-LEV_DEL = "2"
- 
-contour/over/i=1:15/j=1:5 i*j
-sho sym lev*
-LEV_TEXT = """"
-LEV_MIN = "0"
-LEV_MAX = "80"
-LEV_NUM = "8"
-LEV_DEL = "10"
- 
-contour/over/i=1:15/j=1:5/lev=(0,50,3) i*j
-sho sym lev*
-LEV_TEXT = "(0,50,3)"
-LEV_MIN = "0"
-LEV_MAX = "51"
-LEV_NUM = "17"
-LEV_DEL = "3"
- 
-fill/i=1:15/j=1:5/lev=(0,50,5) i*j
-sho sym lev*
-LEV_TEXT = "(0,50,5)"
-LEV_MIN = "0"
-LEV_MAX = "50"
-LEV_NUM = "10"
-LEV_DEL = "5"
- 
-contour/over/i=1:15/j=1:5/lev=(0,80,3),(56),DARK(56) i*j
-sho sym lev*
-LEV_TEXT = "(0,80,3),(56),DARK(56)"
-LEV_MIN = "0"
-LEV_MAX = "81"
-LEV_NUM = "28"
-LEV_DEL = "3"
- 
-contour/over/i=1:15/j=1:5/lev=50 i*j
-sho sym lev*
-LEV_TEXT = "50"
-LEV_MIN = "0"
-LEV_MAX = "76"
-LEV_NUM = "38"
-LEV_DEL = "2"
- 
- 
-shade/i=1:15/j=1:5/lev=(0,80,1) i*j
-sho sym lev*
-LEV_TEXT = "(0,80,1)"
-LEV_MIN = "0"
-LEV_MAX = "80"
-LEV_NUM = "80"
-LEV_DEL = "1"
- 
-contour/over/i=1:15/j=1:5/lev=(33) i*j
-sh sym lev*
-LEV_TEXT = "(33)"
-LEV_MIN = "33"
-LEV_MAX = "33"
-LEV_NUM = "1"
-LEV_DEL = "none"
- 
-GO bn_reset
-cancel mode verify
-! GO bench_extrema  ! moved to bn_ef_bench_extrema; tests of shared-obj efs.
- 
-GO bn_reset
-cancel mode verify
-GO bn_mode_logo_lab
- 
-! bn_mode_logo_lab.jnl
-! cancel both logo and labels
-! NOTE this script redefined the pre-defined viewports ul, ur, ll, lr...
- 
- 
-def view /xlim=0.:0.33/ylim=0.5:1 ul3
-def view /xlim=0.33:0.66/ylim=0.5:1 um3
-def view /xlim=0.66:1./ylim=0.5:1 ur3
- 
-def view /xlim=0.:0.33/ylim=0.:0.5 ll3
-def view /xlim=0.33:0.66/ylim=0.:0.5 lm3
-def view /xlim=0.66:1./ylim=0.:0.5 lr3
- 
- 
-! can mode labels would not plot the logo anyway
-set view ul3
-can mode labels
-can mode logo
-show modes
-      MODE            STATE        ARGUMENT
-      DIAGNOSTIC    CANCELLED           99
-      VERIFY           SET         DEFAULT
-      INTERPOLATE   CANCELLED
-      IGNORE_ERROR  CANCELLED
-      STUPID        CANCELLED
-      JOURNAL       CANCELLED      ferret.jnl
-      LONG_LABEL       SET              -4
-      LATIT_LABEL      SET              -4
-      DEPTH_LABEL      SET              -4
-      CALENDAR         SET         months
-      6D_LAB           SET
-      ASCII_FONT       SET
-      SEGMENT          SET
-      WAIT          CANCELLED
-      DESPERATE     CANCELLED      2560000
-      GKS              SET
-      REFRESH          SET
-      METAFILE      CANCELLED      dots.plt
-      PPLLIST       CANCELLED      ppllist.out
-      GUI           CANCELLED
-      LOGO          CANCELLED
-      LABELS        CANCELLED
-      GRATICULE     CANCELLED
-      LINECOLORS       SET               6
-      UPCASE_OUTPU     SET
-      NLEVELS          SET              30
-      NODATA_LAB       SET
-      shrink_ylab   CANCELLED
-contour/i=1:10/j=1:10 i/j
- 
-! restore the labels, logo still gone
-set view um3
-set mode labels
-wire/view=0,0,2/i=1:20/j=1:20/title="My Egg Carton"/nolabel sin(i/3)*cos(j/4)
- 
- 
-! put only labels, not logo
-set view ur3
-set mode labels
-can mode logo
-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)
- 
- 
-! Labels restored, not logo.
-! logo is not restored on an /overlay plot
-set view ll3
-set mode labels
-shade/i=1:10/j=1:10 i*j
-set mode logo
-plot/vs/over/line/color=white {1,4}, {1,9}
- 
-! but the logo is restored on the next plot command.
-set view lm3
-fill/i=1:10/j=1:10 i/j
- 
-! Verify for polygon command too
-set view lr3
-can mode logo
-can mode labels
-polygon/axes=1,0,1,0 {1,2,1}, {2,1,0.5}
- 
-! restore state of modes
-cancel view
-set mode logo
-set mode labels
- 
-GO bn_reset
-cancel mode verify
-GO bn_modulo_attribute
-! Ferret V5.50 m
- 
-! Modulo attribute can take numerical values to indicate
-! the modulo length of axis (subspan modulo changes)
-! This script tests various string values of the attribute
- 
-use modulo_lon_time
- 
-sh ax lon*
- name       axis              # pts   start                end
- LON_FIELD_J_AXIS Y             2 r   50                   65
-   Axis span (to cell edges) = 30
- LON_FIELD_I_AXIS X             7 r   160                  208
-   Axis span (to cell edges) = 56
- LON_TRUE  LONGITUDE            5mr   1.875W(-1.875)       13.125E
-   Axis span (to cell edges) = 18.75 (modulo length = 360)
- LON_MODERR X (meters)          5 r   0                    15
-   Axis span (to cell edges) = 18.75
- LON_FALSE LONGITUDE            5 r   1.875W(-1.875)       13.125E
-   Axis span (to cell edges) = 18.75
- LON_MOD_NOUNITS X              5mr   0                    15
-   Axis span (to cell edges) = 18.75 (modulo length = axis span)
- LON_USUAL LONGITUDE            5mr   0E                   15E
-   Axis span (to cell edges) = 18.75 (modulo length = 360)
-sh ax tim*
- name       axis              # pts   start                end
- TIME1     TIME                 6 r   16-JAN-1900 06:00    17-JUN-1900 10:25
-T0 = 01-JAN-1900
-   Axis span (to cell edges) = 4382.91
- TIME2     TIME                 3 i   16-JAN-1900 06:00    17-MAY-1900 23:56
-T0 = 01-JAN-1900
-   Axis span (to cell edges) = 4382.91
- TIME      T (HOURS)           20 r   1                    20
-   Axis span (to cell edges) = 20
- TIME_TRUE T (days)             4mi   30                   150
-T0 = %%
-   Axis span (to cell edges) = 165 (modulo length = axis span)
- TIME_MODERR T (meters)         4 i   30                   150
-T0 = %%
-   Axis span (to cell edges) = 165
- TIME_FALSE T (days)            4 r   120                  150
-T0 = %%
-   Axis span (to cell edges) = 40
- TIME_MOD_NOUNITS T             4mr   120                  150
-T0 = %%
-   Axis span (to cell edges) = 40 (modulo length = axis span)
- TIME_USUAL T (days)            4mr   120                  150
-T0 = %%
-   Axis span (to cell edges) = 40 (modulo length = axis span)
- TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
-T0 = 01-JAN-0000 00:00:00
-   Axis span (to cell edges) = 2191.455 (modulo length = 8765.82)
- TIME5     TIME                 2mr   16-MAY 23:56         16-JUN 10:25
-T0 = 01-JAN-0000 00:00:00
-   Axis span (to cell edges) = 1460.97 (modulo length = 8765.82)
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn550_bug_fixes
-! bn550_bug_fixes.jnl
-! test various fixes that went into version 5.5
-! 10/02 *acm*
-!
- 
-! Polygon/overlay calendar axis bug
-GO bn_reset
-cancel mode verify
-GO err542_poly_over_calendar
-! POLY/OVER when data has a non-standard calendar caused
-! calendar mismatch error, even on a plot with no time axis.
- 
-use err542_poly_over_calendar.nc
-shade pc
-poly/over/color=red/line=2/title="polygon" {220,240,280,250},{-20,70,40,-30}
- 
- 
-! ******** V5.51 Additions below ***********
- 
-GO bn_reset
-cancel mode verify
-GO bn551_bug_fixes
-! bn551_bug_fixes.jnl
-! test various fixes that went into version 5.51
-! 2/03 *acm*
-!
- 
-! FILL plots in viewports defined with /AXES, fix clipping bug,
-! and allow color keys to plot beyond viewport limits.
- 
-go bn_reset
-cancel mode verify
-GO err550_view_axes_fill.jnl
-! err550_view_axes_fill.jnl
-! acm 2/5/03
-! Test FILL plots in viewports defined with /AXES;
-! also let the color keys be plotted in these viewports, unless
-! removed with /nokey
- 
-can mode logo
-set win/asp=.5/siz=0.5
- 
-define axis/x=-10:10:1 xtest
-define axis/y=-10:10:1 ytest
- 
-let test=x[gx=xtest]^2+y[gy=ytest]^2
- 
-def vi/x=.1:.9/y=.1:.3/axes bot
-def vi/x=.1:.9/y=.4:.6/axes mid
-def vi/x=.1:.9/y=.6:1 top
-def vi/x=0:.1/y=.1:.3/axes bot1
-def vi/x=0:.1/y=.4:.6/axes mid1
-def vi/x=0:.1/y=.6:1 top1
- 
-set vi bot1
-fill/nokey test
-contour/over test
- 
-set vi bot
-fill test
-contour/over test
- 
-set vi mid1
-shade/nokey test
-contour/over test
- 
-set vi mid
-shade test
-contour/over test
- 
-set vi top1
-fill/nokey test
-contour/over test
- 
-set vi top
-fill test
-
- PPL warning: You're attempting to use more colors than are available.
-             Using PPL SHASET RESET to re-use protected colors may help.
-
-contour/over test
- 
- 
-can view
-set win/asp=2/siz=0.3
-set vi bot1
-fill/nokey test
-contour/over test
- 
-set vi bot
-fill test
-contour/over test
- 
-set vi mid1
-shade/nokey test
-contour/over test
- 
-set vi mid
-shade test
-contour/over test
- 
-set vi top1
-fill/nokey test
-contour/over test
- 
-set vi top
-fill test
-
- PPL warning: You're attempting to use more colors than are available.
-             Using PPL SHASET RESET to re-use protected colors may help.
-
-contour/over test
- 
-set win/clear
-set win/aspect=0.75
- 
- 
-! position on page was incorrect, of first viewport plotted when
-! defined as a VIEW/AXES viewport.
-go bn_reset
-cancel mode verify
-GO err550_view_axes_position.jnl
-! err550_view_axes_position.jnl
-! acm 2/5/03
- 
-! position on page was incorrect, of first viewport plotted when defined
-! as a VIEW/AXES viewport.
- 
-def view/x=.1:.5/y=.4:.6/axes mid1
-def view/x=.5:.9/y=.4:.6/axes mid2
- 
-set view mid1
-shade/x=1:10/y=1:10 x+y
-set view mid2
-shade/x=1:10/y=1:10 x-y
- 
-! SHADE bug: hlimits, vlimits without effect
-go bn_reset
-cancel mode verify
-GO err550_shade_limits.jnl
-! err550_shade_limits.jnl
-! acm 2/5/03
- 
-! SHADE bug: hlimits, vlimits without effect
- 
-use coads_climatology
-set view upper; shade sst[l=1]
- 
-set view lower; shade/hlimits=212:324/vlimits=-34:23 sst[l=1]
- 
-! Redefining an axis with a new calendar definition
-go bn_reset
-cancel mode verify
-GO err550_redefine_calendar_axis.jnl
-! err550_redefine_calendar_axis.jnl
-! different calendar axis not recognized as a different specifier,
-! requiring the axis to be redefined.
- 
-def axis/cal=gregorian/t=1-jan-2000:1-jan-2001:1/unit=days tax
-sh axis tax
- name       axis              # pts   start                end
- TAX       TIME               367 r   01-JAN-2000 00:00    01-JAN-2001 00:00
-T0 = 15-JAN-1901
-   Axis span (to cell edges) = 367
-def axis/cal=julian/t=1-jan-2000:1-jan-2001:1/unit=days tax
-sh axis tax
- name       axis              # pts   start                end
- TAX       TIME               367 r   01-JAN-2000 00:00    01-JAN-2001 00:00
-T0 = 15-JAN-1901
-CALENDAR = JULIAN
-   Axis span (to cell edges) = 367
- 
- 
-! Bug in defining axis from an expression.
-go bn_reset
-cancel mode verify
-GO err550_define_axis_expression.jnl
-! err550_define_axis_expression.jnl
-! reported by A. Wittenberg.
-!  Axes defined from an expression only took the first part of the
-!  expression The first two axis defines get it wrong (fix in xeq_define.F)
- 
-let a = {1,2,3}
-let b = {2,3,4}
- 
-def ax/x xax = a/2 + b/2
-list x[gx=xax]
-             VARIABLE : X
-                        axis XAX
-             SUBSET   : 3 points (X)
- 1.5 / 1:  1.50000
- 2.5 / 2:  2.50000
- 3.5 / 3:  3.50000
- 
-def ax/x xax = (a/2) + (b/2)
-list x[gx=xax]
-             VARIABLE : X
-                        axis XAX
-             SUBSET   : 3 points (X)
- 1.5 / 1:  1.50000
- 2.5 / 2:  2.50000
- 3.5 / 3:  3.50000
- 
-def ax/x xax = (a/2 + b/2)
-list x[gx=xax]
-             VARIABLE : X
-                        axis XAX
-             SUBSET   : 3 points (X)
- 1.5 / 1:  1.50000
- 2.5 / 2:  2.50000
- 3.5 / 3:  3.50000
- 
- 
-!  Note (acm)  The older syntax defines the axis correctly
- 
-def axis/from_data/x/name=xax a/2 + b/2
-list x[gx=xax]
-             VARIABLE : X
-                        axis XAX
-             SUBSET   : 3 points (X)
- 1.5 / 1:  1.50000
- 2.5 / 2:  2.50000
- 3.5 / 3:  3.50000
- 
-! Bug in reading seconds from time origin in nc file.
-go bn_reset
-cancel mode verify
-GO err550_nc_seconds.jnl
-! err550_nc_seconds.jnl
-! 2/12/03 ACM
- 
-! When the time origin is specified in a NetCDF file as
-! "10-JUN-1996 04:03:36", the seconds are read incorrectly.
-! If it's written as "1996-06-10 04:03:36" it is read OK
- 
-use time_axis_seconds.nc
- 
-sp echo "err550_nc_seconds.jnl --- seconds of time axis" >> all_ncdump.out
-sp ncdump time_axis_seconds.nc | grep origin >> all_ncdump.out
-list t[gt=height]    ! Seconds should be 36, 37, 38...
-             VARIABLE : T
-                        axis TIME3
-             FILENAME : time_axis_seconds.nc
-             SUBSET   : 5 points (TIME)
- 10-JUN-1996 04:03:36 / 1:  0.00000
- 10-JUN-1996 04:03:37 / 2:  1.00000
- 10-JUN-1996 04:03:38 / 3:  2.00000
- 10-JUN-1996 04:03:39 / 4:  3.00000
- 10-JUN-1996 04:03:40 / 5:  4.00000
- 
-! Bug in plotting polymarker dots with pen numbers gt 6
-go bn_reset
-cancel mode verify
-GO err550_dots_thickpens.jnl
-! err550_dots_thickpens.jnl
-! For pen code higher than 6, get *  rather than dot.
-! also for vector plots having short vectors that are plotted with dots.
- 
-plot/sym=dot/color=8/i=1:10 i
- 
-! ******** V5.52 Additions below ***********
- 
-GO bn_multi_line_labels.jnl
-     ! bn_multi_line_labels.jnl
-! March 31, 2003
-!
-! ACM 4/2005 ! set mode meta to save this plot for the metafile checks.
-!            and ! cancel mode logo, so that .plt files are comparable.
-! ACM 1/2007 Change from a bunch of plot items in a viewport, to separate
-!            plots; for better checking of batch mode
- 
- 
-plot/i=1:100/title="multi line title<nl>with the second line pretty long: \
-so Ferret will resize the entire title. Titles are sized according to the\
-<nl>longest line <nl>and centered individually" i*cos(i/8)
-ppl plot
-plot/over/i=1:100 i*sin(i/8)
- 
-set mode meta multi_line_labels.plt
-cancel mode logo
-plot/i=1:100/title="@p2two-line<NL>RED title"/set i*cos(i/8)
-ppl ylab "A four-line y label.<nl>second line<nl>third line<NL>fourth line"
-ppl xlab "a two-line X label. <nl>Not good together with a multi-line title"
-ppl plot
- 
-plot/over/i=1:100/title="short two-line<nl>title for the overlay line" i*sin(i/8)
-plot/over/i=1:100/title="here is the key for the<nl>second overlay line" i*sin(i/4)
- 
-label 10,80,-1,-20,0.2,"@CSfonts and @p2colors<nl>a at p1nd at an angle<NL>\
-no at p3w green and @CRCR font<NL>back at CS to script"
- 
-label 30,-70,-1,40,0.2,"first line, then blank<NL> <NL>third line, all rotated"
- 
-label/nouser 6.5,6,1,90,0.2,"@p2Another @CImoveable label<nl>Set to @CRCR and @p4P4\
-<NL>at 90 degrees"
-set mode/last meta
-set mode/last logo
- 
-plot/title="multi-line key labels"/i=1:100 i*sin(i/12)
-plot/over/i=1:100/title="Three-lines<nl>second line<nl>overlay 1" i*sin(i/6)
-plot/over/i=1:100/title="Two-lines<nl>overlay 2" i*cos(i/6)
-plot/over/i=1:100/title="Three-lines<nl>second line<nl>overlay 3" -1*cos(i/10)
-plot/over/i=1:100/title="One-line" i*cos(i/8)
-plot/over/i=1:100/title="Three-line<nl>second<nl>overlay5" i*cos(i/14)
-plot/over/i=1:100/title="Two-line<nl>overlay6" i*cos(i/20)
-plot/over/i=1:100/title="Three-line<nl>second<nl>overlay7" i*sin(i/12)
- 
- 
- 
-plot/i=1:100 i*cos(i/8)
- 
- 
-! label 30,95,0,0,0.1,\
-! label 70,95,1,0,0.1,\
-label 3,95,-1,0,0.12,\
-"@CRHere is a long label, made with the LABEL command:<NL>\
- <NL> Ferret is an interactive computer visualization and analysis<NL>\
-environment designed to meet the needs of oceanographers and<NL>\
-meteorologists analyzing large and complex gridded data sets. It<NL>\
-runs on most Unix systems, and on Windows NT/9x using X<NL>\
-windows for display. It can be installed to run from a Web<NL>\
-browser (WebFerret) for use while away from your desk or<NL>\
-from a system lacking X windows software. It can transparently<NL>\
-access extensive remote Internet data bases using OPeNDAP,<NL>\
-formerly known as DODS. See the dods webpage\
-<NL> <NL>\
-Ferret was developed by the Thermal Modeling and Analysis<NL>\
-Project (TMAP) at PMEL in Seattle to analyze the outputs of its<NL>\
-numerical ocean models and compare them with gridded,<NL>\
-observational data. The model data sets are generally multi-<NL>\
-gigabyte in size with mixed 3 and 4-dimensional variables defined<NL>\
-on staggered grids. Ferret offers a Mathematica-like approach to<NL>\
-analysis, new variables may be defined interactively as<NL>\
-mathematical expressions involving data set variables.<NL>\
-Calculations may be applied over arbitrarily shaped regions. Fully<NL>\
-documented graphics are produced with a single command.\
-<NL> <NL>\
-Many excellent software packages have been developed recently<NL>\
-for @p2scientific visualization at p1. The features that make Ferret distinctive<NL>\
-among these packages are Mathematica-like flexibility,<NL>\
-geophysical formatting, intelligent connection to its data base,<NL>\
-memory management for very large calculations, and symmetrical<NL>\
-processing in 4 dimensions."
- 
- 
-set win/clear
-plot/sym/i=1:5/nolab/noaxes i
-ppl ylab "@CRlong y label<NL>@p2line 2 in red, longer than the other lines."
-ppl xlab "@p4Tests using the %xaxis and %yaxis commands<NL>@p5 at CItwo lines<NL>center a at P1 long third line too"
-ppl %yaxis/nouser,0,50,4,1, , , ,-1
-ppl %xaxis/nouser,0,50,4,1, , , ,-1
- 
-ppl %yaxis/nouser,0,50,4,2, , , ,0
-ppl %xaxis/nouser,0,50,4,2.5, , , ,0
- 
-ppl %yaxis/nouser,0,50,4,6, , , ,1
-ppl %xaxis/nouser,0,50,4,4, , , ,1
- 
- 
-can view; set view upper
-plot/i=1:100/axes=1,0,0,1/set/title="labels on top and right<nl>space for two lines on the y axis at the right" i*cos(i/8)
-ppl xlab "a multi line x label<NL>here is line 2<NL>here is line three<NL>here is line four"
-ppl labset, , , 0.08
-ppl ylab "a multi line y label<NL>here is line two<NL>here is line three<NL>"
-ppl plot
- 
-set view lower
-ppl axlen `($ppl$xlen)-1`
- !-> ppl axlen 7.74
- 
-plot/i=1:100/axes=1,0,0,1/set/title="shortened the x axis to make space" i*cos(i/8)
-ppl xlab "a multi line x label<NL>here is line two<NL>here is line three<NL>here is line four"
-ppl ylab "a multi line y label<NL>here is line two<NL>here is line three<NL>here is line four"
-ppl plot
- 
-! reset
-can view
-ppl axlen,8
- 
-! size and rotate moveable labels.
- 
-plot/i=1:100/set i*cos(i/8)
-ppl labs,4,20,-60,-1,"A @CIppl labs at SR label,<NL>change size and <NL>rotation"
-ppl rlabs,4,45
-ppl hlabs,4,.4
-ppl title "@P2 at ACRED title in AC font<NL>put P2 first then AC otherwise \
-the at sign in front of P2 not recognized"
-ppl plot
- 
-ppl rlabs,4,0
- 
-GO bn_reset
-cancel mode verify
-GO bn552_bug_fixes
-! bn552_bug_fixes.jnl
-! test various fixes that went into version 5.52
-! 3/03 *acm*
-!
-! 4/03 *kob*  Add fixes for string bugs
- 
-! Default behavior (all axes on) was not reset after a plot/set/AXES=
-GO bn_reset
-cancel mode verify
-GO err551_axes_set.jnl
-! Default behavior (all axes on) was not reset after a PLOT/SET/AXES=
- 
-!   Choose just some axes to plot with /AXES qualifier
-SET VIEW upper
-PLOT/SET/AXES=0,1,1,0/i=1:12 1./i
-PPL TITLE "PLOT/SET/AXES  only two axes"
-PPL PLOT
- 
-! This plot should have the default behavior; all axes plotted.
-! But, pre-v552, keeps settings from previous PLOT/SET/AXES=
- 
-SET VIEW lower
-plot/i=1:100/title="PLOT (no quals); all axes plotted" i*cos(i/12)
- 
-! Test whether too many levels specified. Previous to v552, no
-! test on SHADE and POLYGON plots, and these crashed Ferret.
-GO bn_reset
-cancel mode verify
-GO err551_num_levels.jnl
-! Test whether too many levels specified. Previous to v552, no
-! test was made on SHADE and POLYGON plots, and these crashed Ferret.
-! The results should all be error messages: too many levels.
- 
-SET MODE IGNORE_ERROR
-USE coads_climatology
-CONTOUR/L=1/LEV=0.01d sst
-FILL/L=1/LEV=0.01d sst
- 
-SHADE/L=1/LEV=0.01d sst
-can data/all
- 
-LET xpts = 180 + 50*COS(2*3.14*I[I=1:50]/60)
-LET ypts = 15  + 20*SIN(2*3.14*I[I=1:50]/60)
-LET sst = 25 - ypts + RANDN(ypts)
-plot/vs xpts,ypts
-GO polymark POLYGON/KEY/LEV=0.01d xpts,ypts,sst,star
- 
- 
-SET MODE/LAST IGNORE_ERROR
-SET WIN/CLEAR
- 
-! Check for invalid value of calendar attribute on reading NetCDF files.
-GO bn_reset
-cancel mode verify
-GO err551_invalid_calendar.jnl
-! check on input for invalid calendar name
-! If file gives calendar attribute with unrecognized name,
-! give an error message and use an abstract axis.
- 
-set data err_calendar.nc
-sh data
-     currently SET data sets:
-    1> ./err_calendar.nc  (default)
- name     title                             I         J         K         L         M         N
- TIME     observation time                 ...       ...       ...       1:12      ...       ...
-       (invalid coordinate axis)
- 
- 
-! String bug fixes *kob*
-GO bn_reset
-cancel mode verify
-GO err551_strings.jnl
- 
- 
-! first make sure file is non-existent
-sp rm input.txt
- 
-! first bug - first list always worked fine, and second list would crash.
-!	      fix turned out to be that you still had to (m)alloc space even
-!             for a null pointer in get_sys_cmnd.c
-! 	
-! define string variable
-let a = {"first", spawn:"ls input.txt", "last"}
-list a
-             VARIABLE : {"first", SPAWN:"ls input.txt", "last"}
-             SUBSET   : 3 points (X)
- 1   / 1:"first"
- 2   / 2:""     
- 3   / 3:"last" 
-list a
-             VARIABLE : {"first", SPAWN:"ls input.txt", "last"}
-             SUBSET   : 3 points (X)
- 1   / 1:"first"
- 2   / 2:""     
- 3   / 3:"last" 
- 
- 
-! second bug fix - this used to crash during the list command.
-!		   fix turned out to be that needed make sure to (m)alloc enough
-! 		   space for string plus "\n" character - in get_sys_cmnd.c
- 
-sp echo "GANGES_BRAHMAPUTRA" > input.txt
-sp echo "X=86e:93e/Y=20n:25n  " >> input.txt
-sp echo "X=118e:123e/Y=29n:34n  " >> input.txt
-sp echo "X=65w:57w/Y=7n:12n  " >> input.txt
-let a = {spawn:"cat input.txt"}
-load a
-list a
-             VARIABLE : {SPAWN:"cat input.txt"}
-             SUBSET   : 4 points (X)
- 1   / 1:"GANGES_BRAHMAPUTRA"     
- 2   / 2:"X=86e:93e/Y=20n:25n  "  
- 3   / 3:"X=118e:123e/Y=29n:34n  "
- 4   / 4:"X=65w:57w/Y=7n:12n  "   
- 
-! last one - make sure bug gabe found is fixed as well
-!            used to have incorrect results on second list command
-!   	     fix turned out to be that strcmp function was declared "float"
-!            when it should have been void.
- 
-let mystring = {"a","b","a","c"}
-list strcmp("b", mystring)
-             VARIABLE : STRCMP("b", MYSTRING)
-             SUBSET   : 4 points (X)
- 1   / 1:  1.00000
- 2   / 2:  0.00000
- 3   / 3:  1.00000
- 4   / 4: -1.00000
-list strcmp("b", mystring)
-             VARIABLE : STRCMP("b", MYSTRING)
-             SUBSET   : 4 points (X)
- 1   / 1:  1.00000
- 2   / 2:  0.00000
- 3   / 3:  1.00000
- 4   / 4: -1.00000
- 
- 
-! 2-D @AVE bug fix
-GO bn_reset
-cancel mode verify
-GO err551_2dave.jnl
-! Bug in 2-D averaging, if source data thats loaded has a
-! larger range than the dest data, code didnt check whether
-! source grid cells actually overlapped destination cells
- 
-use coads_climatology
-load/l=1 sst
- 
-def axis/x=110w:90w:5 xax
-def axis/y=10n:20n:2 yax
- 
-list/l=1/y=20 sst[gx=xax at ave,gy=yax at ave]
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-                        regrid: 5 deg on X at AAV, 2 deg on Y at AAV
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 5 points (LONGITUDE)
-             LATITUDE : 20N
-             TIME     : JAN
-                20N    
-                 6
- 110W   / 1:  24.0382
- 105W   / 2:  25.4564
- 100W   / 3:  24.5714
- 95W    / 4:  23.8243
- 90W    / 5:  24.9977
- 
-! RETURN error message, and new var,RETURN=dsettitle  argument
-GO bn_reset
-cancel mode verify
-GO err551_return_message.jnl
- ! err551_return_message.jnl
- ! 4/15/03 ACM
- 
-SET MODE IGNORE_ERROR
- 
-use dstitle
- 
-! This is not a valid argument for RETURN.  The error message
-! has been improved to include all valid arguments.
- 
-say `axy, return=xx`
- 
-! This is a new argument: title from the global attributes secion.
-say `axy,return=dsettitle`
- !-> MESSAGE/CONTINUE dataset title for 4D string data
-dataset title for 4D string data
- 
-SET MODE/LAST IGNORE_ERROR
- 
-!  file/form=stream didnt see file in another directory
-GO bn_reset
-cancel mode verify
-GO err551_streamread_directory.jnl
-! Bug: file/form=stream doesnt see file in another directory
- 
-sp rm -f subdir/a.dat
- 
-def ax/x=1:1/np=1 xax
-def grid/x=xax g
-list/clobber/form=stream/file="a.dat" 1
-file/form=stream/grid=g/var=a "a.dat"
-list a
-             VARIABLE : A
-             FILENAME : a.dat
-             X        : 1
-          1.00000
- 
-can dat/all
-sp mkdir -p subdir
-sp mv a.dat subdir
-file/form=stream/grid=g/var=a "subdir/a.dat"
-list a
-             VARIABLE : A
-             FILENAME : a.dat
-             FILEPATH : subdir/
-             X        : 1
-          1.00000
- 
-! GXY=var  regridding syntax, when the variable hasnt been loaded
-GO bn_reset
-cancel mode verify
-GO err551_regrid_undef_grid.jnl
-! err551_regrid_undef_grid.jnl
-! 5/03 *acm* based on bn_regrid_to_user; more testing of multi-axis GXY=var
-!            syntax, when the destination grid is not yet defined
- 
-! test various regridding combos that involve user-defined variables
-! for the target grids
- 
- 
-set mode ignore_errors
- 
-use coads_climatology
-use levitus_climatology
- 
-! define test objects
-let a = sst[d=coads_climatology] + 1
-let b = sst + 1		! data set unspecified
-DEFINE AXIS/Y=20s:20n:.5/units=degrees yax
-DEFINE GRID/like=sst[d=coads_climatology]/y=yax gg
- 
-! reference data
-list/x=158e:161e/y=6s:4s temp[d=2,k=1]
-             VARIABLE : TEMPERATURE (DEG C)
-             FILENAME : levitus_climatology.cdf
-             SUBSET   : 3 by 2 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 0
-              158.5E   159.5E   160.5E  
-              139      140      141
- 4.5S / 86:  29.5110  29.4430  29.3800
- 5.5S / 85:  29.5890  29.5250  29.4570
- 
-! basic regrid (implicit grid -- sst and temp geometries are mismatched)
-list/x=160e/y=5s temp[d=2,k=1,gxy=a[d=1]]
-             VARIABLE : TEMPERATURE (DEG C)
-                        regrid: 2 deg on X, 2 deg on Y
-             FILENAME : levitus_climatology.cdf
-             LONGITUDE: 159E
-             LATITUDE : 5S
-             DEPTH (m): 0
-          29.5170
-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
- normal    T
- normal    E
- normal    F
- 
-can data/all
-can var/all
-can grid
- 
-! multiple axis syntax: GXY=gg
-define axis/x=1:6:1 x1
-define axis/y=1:4:1 y1
-define axis/z=1:3:1 z1
-define axis/x=1:6:2 x2
-define axis/y=1:4:2 y2
-define axis/z=1:3:2 z2
-let a1 = x[gx=x1]+y[gy=y1]+z[gz=z1]
-let a2 = x[gx=x2]+y[gy=y2]+z[gz=z2]
-list a1
-             VARIABLE : X[GX=X1]+Y[GY=Y1]+Z[GZ=Z1]
-             SUBSET   : 6 by 4 by 3 points (X-Y-Z)
-              1        2        3        4        5        6     
-              1        2        3        4        5        6
- ---- K:1 Z:   1
- 1   / 1:   3.0000   4.0000   5.0000   6.0000   7.0000   8.0000
- 2   / 2:   4.0000   5.0000   6.0000   7.0000   8.0000   9.0000
- 3   / 3:   5.0000   6.0000   7.0000   8.0000   9.0000  10.0000
- 4   / 4:   6.0000   7.0000   8.0000   9.0000  10.0000  11.0000
- ---- K:2 Z:   2
- 1   / 1:   4.0000   5.0000   6.0000   7.0000   8.0000   9.0000
- 2   / 2:   5.0000   6.0000   7.0000   8.0000   9.0000  10.0000
- 3   / 3:   6.0000   7.0000   8.0000   9.0000  10.0000  11.0000
- 4   / 4:   7.0000   8.0000   9.0000  10.0000  11.0000  12.0000
- ---- K:3 Z:   3
- 1   / 1:   5.0000   6.0000   7.0000   8.0000   9.0000  10.0000
- 2   / 2:   6.0000   7.0000   8.0000   9.0000  10.0000  11.0000
- 3   / 3:   7.0000   8.0000   9.0000  10.0000  11.0000  12.0000
- 4   / 4:   8.0000   9.0000  10.0000  11.0000  12.0000  13.0000
-list a1[gzxy=a2]
-             VARIABLE : X[GX=X1]+Y[GY=Y1]+Z[GZ=Z1]
-                        regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
-             SUBSET   : 4 by 3 by 2 points (X-Y-Z)
-              1        3        5        7     
-              1        2        3        4
- ---- K:1 Z:   1
- 1   / 1:   3.0000   5.0000   7.0000     ....
- 3   / 2:   5.0000   7.0000   9.0000     ....
- 5   / 3:     ....     ....     ....     ....
- ---- K:2 Z:   3
- 1   / 1:   5.0000   7.0000   9.0000     ....
- 3   / 2:   7.0000   9.0000  11.0000     ....
- 5   / 3:     ....     ....     ....     ....
- 
-can data/all
-can var/all
- 
-! Convoluted definitions, LIST needs data on a grid not yet loaded.
-use clim_airt_lev.cdf
-def axis/t=16-JUL-1966:16-MAY-1967:1/unit=month hope_month
-! use climatological_axes
-! can dat climatological_axes
- 
-let dzdt_month = airt[gt=hope_month]
-let dzdt_clim = airt[gt=month_reg at mod]
-let dzdt_anom = dzdt_month - dzdt_clim[gt=dzdt_month at asn]
-set region/x=100w/y=0
-list dzdt_anom
-             VARIABLE : DZDT_MONTH - DZDT_CLIM[GT=DZDT_MONTH at ASN]
-             FILENAME : clim_airt_lev.cdf
-             SUBSET   : 11 points (TIME)
-             LONGITUDE: 100.5W
-             LATITUDE : 0.167S
-                     100.5W  
-                     130
- 16-JUL-1966 /  1: -1.42152
- 15-AUG-1966 /  2: -2.97198
- 14-SEP-1966 /  3: -4.50335
- 15-OCT-1966 /  4: -3.88179
- 14-NOV-1966 /  5: -2.57982
- 15-DEC-1966 /  6: -1.07968
- 14-JAN-1967 /  7:  1.42391
- 14-FEB-1967 /  8:  2.96231
- 16-MAR-1967 /  9:  4.50322
- 15-APR-1967 / 10:  3.83807
- 16-MAY-1967 / 11:  2.60886
- 
- 
-! Symbol substituted on each repetition of REPEAT
-GO bn_reset
-cancel mode verify
-GO err551_repeat_sym.jnl
- 
-! This had worked, but stopped working in v541
-! symbol substituted on each repetition of REPEAT
- 
-! (The cause was the fix intended to repair what it
-!  tested in err540_parse_repeat.jnl )
- 
-def sym a 0; rep/i=1:3:1 (def sym a `i`; say ($a))
- !-> rep/i=1:3:1 (def sym a `i`; say ($a))
-!-> REPEAT: I=1
- !-> def sym a 1
- !-> MESSAGE/CONTINUE 1
-1
-!-> REPEAT: I=2
- !-> def sym a 2
- !-> MESSAGE/CONTINUE 2
-2
-!-> REPEAT: I=3
- !-> def sym a 3
- !-> MESSAGE/CONTINUE 3
-3
- 
-! data from nc file with time axis modulo=value, when regridded to
-! another time axis, some times have missing data
-GO bn_reset
-cancel mode verify
-GO err551_modulo_nc_regrid.jnl
-! data from nc file with time axis having modulo=value, when regridded
-! to another time axis, some times have missing data
- 
-! First write a file with a monthly climatology:
- 
-use coads_vwnd
-set region/x=161w/y=39n
-!use climatological_axes
-!can data climatological_axes
- 
-let vwnd_clim = vwnd[gt=month_reg at mod]
- 
-save/clobber/file=clim.nc vwnd_clim
- 
-! File clim.nc is a climatology with the attribute
-!		MONTH_REG:modulo = 8765.82 ;
- 
-! The data is ok if we now regrid to the monthly_navy_winds time axis
-list/l=23:27 vwnd_clim[gt=vwnd[d=1]]
-             VARIABLE : VWND[GT=MONTH_REG at MOD]
-                        regrid: VWND
-             FILENAME : coads_vwnd.cdf
-             SUBSET   : 5 points (TIME)
-             LONGITUDE: 161W
-             LATITUDE : 39N
-                        161W    
-                         90
- 16-NOV-1947 00 / 23: -3.07590
- 16-DEC-1947 12 / 24:  1.67401
- 16-JAN-1948 12 / 25:  3.42908
- 15-FEB-1948 12 / 26:  1.95365
- 16-MAR-1948 12 / 27:  2.76119
- 
-! now use the climatology data file; note that when regridded to the
-! time axis of vwnd, some times have missing data
- 
-can data/all
-can var/all
- 
-use coads_vwnd
-use clim
-list/l=23:27 vwnd_clim[gt=vwnd[d=1]]
-             VARIABLE : VWND[GT=MONTH_REG at MOD]
-                        regrid: on T
-             FILENAME : clim.nc
-             SUBSET   : 5 points (TIME)
-             LONGITUDE: 161W
-             LATITUDE : 39N
-                        161W    
-                          1
- 16-NOV-1947 00 / 23: -3.07590
- 16-DEC-1947 12 / 24:  1.67401
- 16-JAN-1948 12 / 25:  3.42908
- 15-FEB-1948 12 / 26:  1.95365
- 16-MAR-1948 12 / 27:  2.76119
- 
- 
-! FFT frequency axis not computed accurately enough.
-GO bn_reset
-cancel mode verify
-GO err551_fft_freqaxis.jnl
- 
-DEFINE AXIS/t=1:4998:1 dayt
-let tpts = t[gt=dayt]
- 
-LET sample_function = sin(0.5*tpts - 6.)/2. - cos(0.3*tpts)
- 
-LET days_fft = ffta(sample_function)
-LOAD days_fft
-LET FFT_nf = `days_fft,return=lend`
- !-> DEFINE VARIABLE FFT_nf = 2499
- 
-list FFT_nf
-             VARIABLE : 2499
-          2499.00
-list 2*FFT_nf
-             VARIABLE : 2*FFT_NF
-          4998.00
-list `tpts,return=lend`
- !-> list 4998
-             VARIABLE : constant
-          4998.00
- 
- 
-! No error message on request for time on bad time axis
-GO bn_reset
-cancel mode verify
-GO err551_no_taxis_errmsg.jnl
-! The time axis is bad, having repeated values, so an abstract axis is
-! used by Ferret and the list/t=time should result in an error.
- 
-SET MODE IGNORE_ERROR
- 
-use bad_taxis.nc
-list/t=1-jan-1990 dummy
- 
-SET MODE/LAST IGNORE_ERROR
- 
-GO bn_reset
-cancel mode verify
-GO 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
-! New RETURN= arguments NC_SCALE, NC_OFF for values of NetCDF attributes
-!             and USER_SCALE, USER_OFF for those set with SET VAR
- 
-! This dataset has scale_factor and add_offset attributes.
- 
-USE err491_attval
-LIST/NOHEAD/PREC=6 elev[x=@ave,y=@ave]
-          2.97979
-SET VAR/OFFSET=1 elev
-LIST/NOHEAD/PREC=6 elev[x=@ave,y=@ave]
-          3.97979
-SET VAR/SCALE=10 elev
-LIST/NOHEAD/PREC=6 elev[x=@ave,y=@ave]
-          30.7979
- 
-! Output the values of the scales and offsets
- 
-SAY `elev,RETURN=nc_scale`
- !-> MESSAGE/CONTINUE 0.0002746749679546
-0.0002746749679546
-SAY `elev,RETURN=nc_off`
- !-> MESSAGE/CONTINUE 0
-0
-SAY `elev,RETURN=user_scale`
- !-> MESSAGE/CONTINUE 10
-10
-SAY `elev,RETURN=user_off`
- !-> MESSAGE/CONTINUE 1
-1
- 
-! These SET VAR will produce error msgs: qualifiers are set up only for
-! variables in NetCDF files
- 
-SET MODE IGNORE_ERROR
- 
-FILE/VAR=x1,x2 EZ.DAT
- 
-SET VAR/OFFSET=1 x1
-SET VAR/SCALE=10 x2
- 
-SET MODE/LAST IGNORE_ERROR
- 
-GO bn_reset
-cancel mode verify
-GO bn_longvarnames.jnl
-! variable names up to 128 characters long
-! 3/2006 make them 127 to be able to add the null terminator for C strings
-!        else not used correctly in linked-list attribute structure.
- 
-LET a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567 = {12,14,20,28,22,10}
-LIST a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567
-             VARIABLE : {12,14,20,28,22,10}
-             SUBSET   : 6 points (X)
- 1   / 1:  12.0000
- 2   / 2:  14.0000
- 3   / 3:  20.0000
- 4   / 4:  28.0000
- 5   / 5:  22.0000
- 6   / 6:  10.0000
- 
-! With a transformation, which makes the whole specification longer
- 
-list a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567,\
-  A234567890B234567890C234567890D234567890E234567890F234567890G234567890H234567890I234567890D234567890J234567890K234567890L234567[i=@SHF:1]
-             X: 0.5 to 6.5
- Column  1: A234567890B234567890C234567890D234567890E234567890F234567890G234567890H234567890I234567890D234567890J234567890K234567890L234567 is {12,14,20,28,22,10}
- Column  2: A234567890B234567890C234567890D234567890E234567890F234567890G234567890H234567890I234567890D234567890J234567890K234567890L234567* is {12,14,20,28,22,10} (shifted by 1 pts on X)
-        A2345678  A234567890B234567890C234567890D234567890E234567890F234567890G234567890H234567890I234567890D234567890J234567890K234567890L234567
-1   / 1:  12.0000  14.0000
-2   / 2:  14.0000  20.0000
-3   / 3:  20.0000  28.0000
-4   / 4:  28.0000  22.0000
-5   / 5:  22.0000  10.0000
-6   / 6:  10.0000     ....
- 
-! SET GRID using long variable name
-SET GRID a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567
-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
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
- 
- 
- 
-! save to a file a variable that is 128 long
-GO bn_reset
-cancel mode verify
- 
-LET a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567 = {12,14,20,28,22,10}
-SAVE/CLOBBER/FILE=longvname.nc a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567
- 
-! read from the file
-GO bn_reset
-cancel mode verify
-USE longvname
-LIST a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567
-             VARIABLE : {12,14,20,28,22,10}
-             FILENAME : longvname.nc
-             SUBSET   : 6 points (X)
- 1   / 1:  12.0000
- 2   / 2:  14.0000
- 3   / 3:  20.0000
- 4   / 4:  28.0000
- 5   / 5:  22.0000
- 6   / 6:  10.0000
- 
-! save a 4-D variable
-GO bn_reset
-cancel mode verify
-LET a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567 = I[I=1:5] * J[J=1:4] * K[K=1:3] + L[L=1:3]
-SAVE/CLOBBER/FILE=longvname.nc a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567
- 
-GO bn_reset
-cancel mode verify
-USE longvname.nc
-lIST/I=1/J=2 a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567
-             VARIABLE : I[I=1:5] * J[J=1:4] * K[K=1:3] + L[L=1:3]
-             FILENAME : longvname.nc
-             SUBSET   : 3 by 3 points (Z-T)
-             X        : 1
-             Y        : 2
-              1        2        3     
-              1        2        3
- 1   / 1:  3.00000  5.00000  7.00000
- 2   / 2:  4.00000  6.00000  8.00000
- 3   / 3:  5.00000  7.00000  9.00000
-LIST/K=2/L=3 a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567
-             VARIABLE : I[I=1:5] * J[J=1:4] * K[K=1:3] + L[L=1:3]
-             FILENAME : longvname.nc
-             SUBSET   : 5 by 4 points (X-Y)
-             Z        : 2
-             T        : 3
-              1        2        3        4        5     
-              1        2        3        4        5
- 1   / 1:   5.0000   7.0000   9.0000  11.0000  13.0000
- 2   / 2:   7.0000  11.0000  15.0000  19.0000  23.0000
- 3   / 3:   9.0000  15.0000  21.0000  27.0000  33.0000
- 4   / 4:  11.0000  19.0000  27.0000  35.0000  43.0000
- 
-GO bn_reset
-cancel mode verify
-GO 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
-! - Previously ALL OF kx_lo, kx_hi,ky_lo, ky_hi had to be set, or none of them
-!   were applied. With changes as of 3/3/03 can set any of these independently.
-!   If, say only x1 and y1 are set, the other corners are set, keeping the default
-!   width and/or height.
- 
-use ocean_atlas_temp
-set region/x=130:290/y=-45:45
- 
-shade/title="shift shakey left and up"/set temp[l=1]
- 
-let x1 = `($ppl$xorg)+($ppl$xlen)`
- !-> DEFINE VARIABLE x1 = 9.94
-let y1 = `($ppl$yorg)+.4`
- !-> DEFINE VARIABLE y1 = 1.8
- 
-ppl shakey ,,.12,,,,`x1`,,`y1`
- !-> ppl shakey ,,.12,,,,9.94,,1.8
-ppl shade
-ppl list shakey
-
-         DO KEY  ORIENT  LAB SIZE  LAB INC  LAB DIG  LAB LEN
-              1       1      0.12        0        3        9
-
-
-         X LO     X HI     Y LO     Y HI
-         9.94    10.23     1.80     7.20
- 
-shade/title="set only x2,y2"/set temp[l=1]
- 
-let x2 = `($ppl$xorg)+($ppl$xlen)`
- !-> DEFINE VARIABLE x2 = 9.94
-let y2 = `($ppl$yorg)+($ppl$ylen) - .4`
- !-> DEFINE VARIABLE y2 = 6.405
- 
-ppl shakey ,,.12,,,,,`x2`,,`y2`
- !-> ppl shakey ,,.12,,,,,9.94,,6.405
-ppl shade
-ppl list shakey
-
-         DO KEY  ORIENT  LAB SIZE  LAB INC  LAB DIG  LAB LEN
-              1       1      0.12        0        3        9
-
-
-         X LO     X HI     Y LO     Y HI
-         9.65     9.94     1.00     6.41
- 
- 
-! resetting location of horizontal shade keys
- 
-shade/title="shakey labels above it"/set temp[l=1]
- 
-let x1 = `($ppl$xorg)+0.1`
- !-> DEFINE VARIABLE x1 = 1.3
-let y1 = `($ppl$yorg)+($ppl$ylen)+0.1`
- !-> DEFINE VARIABLE y1 = 6.905
-let y2 = `($ppl$yorg)+($ppl$ylen)+0.5`
- !-> DEFINE VARIABLE y2 = 7.305
- 
-ppl shakey ,0,-.12,2,,,`x1`,,`y1`,`y2`
- !-> ppl shakey ,0,-.12,2,,,1.3,,6.905,7.305
-go unlabel 4
-go unlabel 5
-ppl shade
-ppl list shakey
-
-         DO KEY  ORIENT  LAB SIZE  LAB INC  LAB DIG  LAB LEN
-              1       0     -0.12        2        3        9
-
-
-         X LO     X HI     Y LO     Y HI
-         1.30    10.04     6.91     7.30
- 
- 
-let x1 = `($ppl$xorg)+1`
- !-> DEFINE VARIABLE x1 = 2.2
-let x2 = `($ppl$xorg)+($ppl$xlen)-1`
- !-> DEFINE VARIABLE x2 = 8.94
-let y1 = `($ppl$yorg)`
- !-> DEFINE VARIABLE y1 = 1.4
-shade/title="shorter, at bottom"/set temp[l=1]
-ppl shakey ,0,-.12,3,,,`x1`,`x2`,`y1`
- !-> ppl shakey ,0,-.12,3,,,2.2,8.94,1.4
-ppl shade
-ppl list shakey
-
-         DO KEY  ORIENT  LAB SIZE  LAB INC  LAB DIG  LAB LEN
-              1       0     -0.12        3        3        9
-
-
-         X LO     X HI     Y LO     Y HI
-         2.20     8.94     1.40     1.77
- 
-shade/title="on left, labelled on left"/set temp[l=1]
-ppl axlabp, 1,1
- 
-let x1 = `($ppl$xorg)`  - .5
- !-> DEFINE VARIABLE x1 = 1.2  - .5
-let x2 = `($ppl$xorg)`  - 0.1
- !-> DEFINE VARIABLE x2 = 1.2  - 0.1
-ppl shakey ,1,-.1,2,,,`x1`,`x2`
- !-> ppl shakey ,1,-.1,2,,,0.7,1.1
-ppl shade
- 
-ppl axlabp, -1, -1
- 
-set view upper
-ppl window off
-let y1 = -1* `($ppl$yorg)`
- !-> DEFINE VARIABLE y1 = -1* 1.4
-shade/title="In viewport, shakey located anywhere on page"/set temp[l=1]
-ppl shakey ,0,-.1,2,,,,,`y1`
- !-> ppl shakey ,0,-.1,2,,,,,-1.4
-ppl shade
-ppl list shakey
-
-         DO KEY  ORIENT  LAB SIZE  LAB INC  LAB DIG  LAB LEN
-              1       0     -0.10        2        3        9
-
-
-         X LO     X HI     Y LO     Y HI
-         1.20     9.94    -1.40    -1.30
- 
-GO bn_reset
-cancel mode verify
-GO bn_eof_4d.jnl
-! bn_eof_4d.jnl
-! test EOFs on XYZT grids
- 
-! In version 6.8 (double precision), the old eof functions are not available
-! Run the script calling eofsvd functions and exit, leaving old eof function calls.
- 
- 
-! dataset with 4 dimensions; compute EOF at each vertical level.
- 
-use gt4d011.cdf
- 
-let eofsp = eofsvd_space (temp[i=91:95,j=36:40,k=1:4])
-save/file=eofsp.cdf/clobber eofsp
- 
-can data/all
-can var/all
-use eofsp
- 
-set view ul
-shade eofsp[k=1,l=1]
-list eofsp[k=1,l=1]
-             VARIABLE : EOFSVD_SPACE (TEMP[I=91:95,J=36:40,K=1:4])
-             FILENAME : eofsp.cdf
-             SUBSET   : 5 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             T        : 1
-              139.5W   138.5W   137.5W   136.5W   135.5W  
-                1        2        3        4        5
- 1.83S / 5:  2.25380  2.34749  2.42382  2.47460  2.50064
- 2.17S / 4:  2.26997  2.36147  2.43073  2.47739  2.50277
- 2.5S  / 3:  2.26576  2.35100  2.41285  2.45516  2.48145
- 2.83S / 2:  2.23354  2.30728  2.35946  2.39631  2.42393
- 3.17S / 1:  2.16829  2.22692  2.26870  2.30046  2.33013
-set view ur
-shade eofsp[k=2,l=1]
-list eofsp[k=2,l=1]
-             VARIABLE : EOFSVD_SPACE (TEMP[I=91:95,J=36:40,K=1:4])
-             FILENAME : eofsp.cdf
-             SUBSET   : 5 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 15
-             T        : 1
-              139.5W   138.5W   137.5W   136.5W   135.5W  
-                1        2        3        4        5
- 1.83S / 5:  2.28179  2.37704  2.45447  2.50708  2.53486
- 2.17S / 4:  2.29644  2.38952  2.46056  2.50887  2.53607
- 2.5S  / 3:  2.29075  2.37736  2.44104  2.48452  2.51240
- 2.83S / 2:  2.25743  2.33286  2.38636  2.42369  2.45233
- 3.17S / 1:  2.19089  2.25118  2.29360  2.32531  2.35557
- 
-set view ll
-shade eofsp[k=3,l=1]
-list eofsp[k=3,l=1]
-             VARIABLE : EOFSVD_SPACE (TEMP[I=91:95,J=36:40,K=1:4])
-             FILENAME : eofsp.cdf
-             SUBSET   : 5 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 25
-             T        : 1
-              139.5W   138.5W   137.5W   136.5W   135.5W  
-                1        2        3        4        5
- 1.83S / 5:  1.72333  1.84007  1.94120  2.00514  2.04715
- 2.17S / 4:  1.63876  1.74435  1.83141  1.88234  1.91985
- 2.5S  / 3:  1.51509  1.60488  1.67644  1.71352  1.74562
- 2.83S / 2:  1.35750  1.42836  1.48145  1.50285  1.52819
- 3.17S / 1:  1.17476  1.22230  1.25622  1.26294  1.28236
-set view lr
-shade eofsp[k=4,l=1]
-list eofsp[k=4,l=1]
-             VARIABLE : EOFSVD_SPACE (TEMP[I=91:95,J=36:40,K=1:4])
-             FILENAME : eofsp.cdf
-             SUBSET   : 5 by 5 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 35
-             T        : 1
-              139.5W   138.5W   137.5W   136.5W   135.5W  
-                1        2        3        4        5
- 1.83S / 5:  1.21576  1.30112  1.37420  1.42210  1.45249
- 2.17S / 4:  1.08595  1.16417  1.22895  1.26976  1.29822
- 2.5S  / 3:  0.93683  1.00553  1.05923  1.09102  1.11580
- 2.83S / 2:  0.77184  0.82972  0.86888  0.89054  0.91114
- 3.17S / 1:  0.59936  0.64140  0.66649  0.68065  0.69951
- 
-can data/all
- 
- 
-use gt4d011.cdf
- 
-let eofti = eofsvd_tfunc (temp[i=91:95,j=36:40,k=1:10])
-save/file=eofti.cdf/clobber eofti
- 
-can data/all
-can var/all
-can view
-use eofti
- 
-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
-             DEPTH (m): 5
-                         1     
-                         1
- 17-AUG-1982 12 / 1: -1.81161
- 23-AUG-1982 14 / 2: -1.75761
- 29-AUG-1982 16 / 3: -1.67763
- 04-SEP-1982 18 / 4: -1.57055
- 10-SEP-1982 20 / 5: -1.42678
-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
-             DEPTH (m): 45
-                         1     
-                         1
- 17-AUG-1982 12 / 1: -2.21821
- 23-AUG-1982 14 / 2: -2.04941
- 29-AUG-1982 16 / 3: -1.77359
- 04-SEP-1982 18 / 4: -1.41208
- 10-SEP-1982 20 / 5: -1.05323
- 
-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
-             DEPTH (m): 75
-                         1     
-                         1
- 17-AUG-1982 12 / 1: -1.77560
- 23-AUG-1982 14 / 2: -1.45491
- 29-AUG-1982 16 / 3: -1.24196
- 04-SEP-1982 18 / 4: -1.05135
- 10-SEP-1982 20 / 5: -0.84706
-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
-             DEPTH (m): 95
-                         1      
-                          1
- 17-AUG-1982 12 / 1:  0.003693
- 23-AUG-1982 14 / 2: -0.189178
- 29-AUG-1982 16 / 3: -0.298222
- 04-SEP-1982 18 / 4: -0.405668
- 10-SEP-1982 20 / 5: -0.517797
- 
-can data/all
- 
- 
- 
-use gt4d011.cdf
- 
-let eofst = eofsvd_stat (temp[i=91:95,j=36:40,k=1:10])
-save/file=eofst.cdf/clobber eofst
- 
-can data/all
-can var/all
-use eofst
- 
-list/nohead/i=1/j=1/k=1:10 eofst   ! # eigenfcns, same at all depths
- 5     /  1:  25.0000
- 15    /  2:  25.0000
- 25    /  3:  25.0000
- 35    /  4:  25.0000
- 45    /  5:  25.0000
- 55    /  6:  25.0000
- 65    /  7:  25.0000
- 75    /  8:  25.0000
- 85    /  9:  25.0000
- 95    / 10:  25.0000
- 
-list/nohead/i=1:5/j=2 eofst[k=1:10:4]  ! pct variance explained
- 5     / 1:  99.2678   0.6794   0.0319   0.0157   0.0031
- 45    / 2:  98.6525   1.1464   0.1451   0.0296   0.0198
- 85    / 3:  95.1217   4.5698   0.2195   0.0744   0.0084
- 
-list/nohead/i=1:5/j=3/k=1 eofst  ! eigenvalues
- 1   / 1:  139.576
- 2   / 2:    0.955
- 3   / 3:    0.045
- 4   / 4:    0.022
- 5   / 5:    0.004
-list/nohead/i=1:5/j=3/k=5 eofst
- 1   / 1:  10.8576
- 2   / 2:   0.1262
- 3   / 3:   0.0160
- 4   / 4:   0.0033
- 5   / 5:   0.0022
-list/nohead/i=1:5/j=3/k=9 eofst
- 1   / 1:  2.23641
- 2   / 2:  0.10744
- 3   / 3:  0.00516
- 4   / 4:  0.00175
- 5   / 5:  0.00020
- 
- 
-exit/script
- 
-GO bn_reset
-cancel mode verify
-GO bn_abstract_axis_names.jnl
-! bn_abstract_axis_names.jnl
-! acm 6/12/03
-!
-! Write and read datafiles with no clues about axis orientation from
-! the units or axis name.  Getting the axis direction depends on the AXIS
-! attribute in .nc files, and on use of the new line_direction(iaxis) = 'XX'
-! or 'YY' in cd_get_1_axis, xeq_define, tm_axis_direction, show_line.F
- 
-! Define axes with confusing axis names (z in an X axis, X in a Z axis, etc)
- 
-def axis/x=1:10:1 horiz
-def axis/y=10:80:10 the
-def axis/z=-4:1:1 xxx
-def axis/t=1:13:2 long
- 
-show axis horiz
- name       axis              # pts   start                end
- HORIZ     X                   10 r   1                    10
-   Axis span (to cell edges) = 10
-show axis the
- name       axis              # pts   start                end
- THE       Y                    8 r   10                   80
-   Axis span (to cell edges) = 80
-show axis xxx
- name       axis              # pts   start                end
- XXX       Z                    6 r   -4                   1
-   Axis span (to cell edges) = 6
-show axis long
- name       axis              # pts   start                end
- LONG      T                    7 r   1                    13
-   Axis span (to cell edges) = 14
- 
-! Write files with different combinations of axes.
- 
-let r =  x[gx=horiz]  + z[gz=xxx]
-save/clobber/file=confuse_xz.nc r
- 
-let s =  y[gy=the] + z[gz=xxx]
-save/clobber/file=confuse_yz.nc s
- 
-let u =  y[gy=the] + t[gt=long]
-save/clobber/file=confuse_yt.nc u
- 
-let v =  z[gz=xxx] + t[gt=long]+ y[gy=the]
-save/clobber/file=confuse_yzt.nc v
- 
- 
-! Now read the files and see that the vars have the right shape
-cancel data/all
-cancel var/all
-cancel axis horiz
-cancel axis the
-cancel axis xxx
-cancel axis long
- 
-use confuse_xz.nc
-sh grid r
-    GRID GAP1
- name       axis              # pts   start                end
- HORIZ     X                   10 r   1                    10
- normal    Y
- XXX       Z                    6 r   -4                   1
- normal    T
- normal    E
- normal    F
-can data 1
- 
-use confuse_yz.nc
-sh grid s
-    GRID GBA1
- name       axis              # pts   start                end
- normal    X
- THE       Y                    8 r   10                   80
- XXX       Z                    6 r   -4                   1
- normal    T
- normal    E
- normal    F
-can data 1
- 
-use confuse_yt.nc
-sh grid u
-    GRID GGY1
- name       axis              # pts   start                end
- normal    X
- THE       Y                    8 r   10                   80
- normal    Z
- LONG      T                    7 r   1                    13
- normal    E
- normal    F
-can data 1
- 
-use confuse_yzt.nc
-sh grid v
-    GRID GFA1
- name       axis              # pts   start                end
- normal    X
- THE       Y                    8 r   10                   80
- XXX       Z                    6 r   -4                   1
- LONG      T                    7 r   1                    13
- normal    E
- normal    F
-can data 1
- 
- 
-! Define axes with meaningless axis names.
- 
-def axis/x=1:10:1 aaa
-def axis/y=10:80:10 bbb
-def axis/z=-4:1:1 ccc
-def axis/t=1:13:2 ddd
- 
-show axis aaa
- name       axis              # pts   start                end
- AAA       X                   10 r   1                    10
-   Axis span (to cell edges) = 10
-show axis bbb
- name       axis              # pts   start                end
- BBB       Y                    8 r   10                   80
-   Axis span (to cell edges) = 80
-show axis ccc
- name       axis              # pts   start                end
- CCC       Z                    6 r   -4                   1
-   Axis span (to cell edges) = 6
-show axis ddd
- name       axis              # pts   start                end
- DDD       T                    7 r   1                    13
-   Axis span (to cell edges) = 14
- 
-! Write files with different combinations of axes.
- 
-let r =  x[gx=aaa]  + z[gz=ccc]
-save/clobber/file=confuse_xz.nc r
- 
-let s =  y[gy=bbb] + z[gz=ccc]
-save/clobber/file=confuse_yz.nc s
- 
-let u =  y[gy=bbb] + t[gt=ddd]
-save/clobber/file=confuse_yt.nc u
- 
-let v =  z[gz=ccc] + t[gt=ddd]+ y[gy=bbb]
-save/clobber/file=confuse_yzt.nc v
- 
- 
-! Now read the files and see that the vars have the right shape
-cancel data/all
-cancel var/all
-cancel axis aaa
-cancel axis bbb
-cancel axis ccc
-cancel axis ddd
- 
-use confuse_xz.nc
-sh grid r
-    GRID GAP1
- name       axis              # pts   start                end
- AAA       X                   10 r   1                    10
- normal    Y
- CCC       Z                    6 r   -4                   1
- normal    T
- normal    E
- normal    F
-can data 1
- 
-use confuse_yz.nc
-sh grid s
-    GRID GBA1
- name       axis              # pts   start                end
- normal    X
- BBB       Y                    8 r   10                   80
- CCC       Z                    6 r   -4                   1
- normal    T
- normal    E
- normal    F
-can data 1
- 
-use confuse_yt.nc
-sh grid u
-    GRID GGY1
- name       axis              # pts   start                end
- normal    X
- BBB       Y                    8 r   10                   80
- normal    Z
- DDD       T                    7 r   1                    13
- normal    E
- normal    F
-can data 1
- 
-use confuse_yzt.nc
-sh grid v
-    GRID GFA1
- name       axis              # pts   start                end
- normal    X
- BBB       Y                    8 r   10                   80
- CCC       Z                    6 r   -4                   1
- DDD       T                    7 r   1                    13
- normal    E
- normal    F
-can data 1
- 
-GO bn_reset
-cancel mode verify
-GO bn_many_polygons.jnl
-! testing large number of polygons in a plot.  Map plot has
-! 130501 polygons; previously we had an upper limit of 100K polygons
- 
-use coads_climatology
-def axis/x=0:360:0.5 xq
-def axis/y=-90:90:0.5 yq
-def axis/y=-90:90:1 yq
-let fsst =  sst[l=1,gx=xq,gy=yq]
-shade/title="loading polygon at each grid point" sst[l=1]   ! Set up plot params for polymark.jnl
- 
-let lon = xsequence(x[gx=xq] + 0*y[gy=yq])
-let lat = xsequence(0*x[gx=xq] + y[gy=yq])
-go polymark poly/key/pal=dark_land_sea/title="130501 polygons", lon, lat, xsequence(fsst), square, 0.3
- 
- 
-! Test that everythings properly reset afterwards.
-! single polygon.
- 
-polygon/thick/color=red/palette=blue/axes=1,0,1,0 {1,2,1}, {2,1,0.5}
- 
-! Now test that is still also works with the 2-D mode of polygons.
- 
-let xtriangle = ysequence({-1,0,1})
-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]
- 
-GO bn_reset
-cancel mode verify
-! GO bn_zaxr_fcns.jnl ! move to tests of shared-obj efs.
- 
-GO bn_reset
-cancel mode verify
-GO bn_fill_irregular.jnl
-! FILL on vars with irregular axes
- 
-use gtbc011
-fill/i=70/l=1 temp
-can data/all
- 
-def ax/t tax = {1,5,6,7}
-let v = t[gt=tax]+z[gz=1:3:1]
-fill v
- 
-def ax/x xax = {1,5,6,7}
-let v = x[gx=xax]-z[gz=1:3:1]
-fill v
- 
-use test_subspan_modulo.nc
-fill v2d_irr[x=-100:100]
-fill v2d_irr[t=1-jan-1990:1-jan-1995]
- 
-use coads_clim_irreg.des
-fill/x=180 sst
- 
-! ******** V5.53 Additions below ***********
-GO bn_reset
-cancel mode verify
-GO bn_xml_output.jnl
-!bn_xml_output.jnl
-! new-V553 output in XML-style format
-! Illustrate the SHOW commands with /XML xml-style output
-! V5.80 11/04 new tests for SHOW VAR/XML; global variables.
- 
-! 22-Feb-2005 use SHO AXIS/XML `temp,return=taxis` instead
-! of naming the axes; other axes of the same name (e.g. TIME)
-! may have been defined in other benchmark scrips.
- 
-USE gtsa056_2.cdf
- 
-SHO DATA/XML
-<datasets>
-<dataset name="./gtsa056_2.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">
-<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>
-</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>
- 
-SHO GRID/XML ps3du1
-<grid name="PS3DU1">
-<axes>
-<xaxis>PSXU</xaxis>
-<yaxis>PSYU</yaxis>
-<zaxis>PSZT</zaxis>
-<taxis>TIME6</taxis>
-</axes>
-</grid>
- 
-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*
-!
- 
- 
- 
-! test "nan"
-use test_nan.nc
-set var/bad=nan p1
-list p1
-             VARIABLE : Pressure (dbar)
-             FILENAME : test_nan.nc
-             SUBSET   : 10 points (TIME)
- 13-OCT-2001 07:21:50 /  1:....
- 13-OCT-2001 07:21:51 /  2:....
- 13-OCT-2001 07:21:52 /  3:....
- 13-OCT-2001 07:21:53 /  4:....
- 13-OCT-2001 07:21:54 /  5:....
- 13-OCT-2001 07:21:55 /  6:....
- 13-OCT-2001 07:21:56 /  7:....
- 13-OCT-2001 07:21:57 /  8:....
- 13-OCT-2001 07:21:58 /  9:....
- 13-OCT-2001 07:21:59 / 10:....
-can data/all
-can var/all
- 
-! test "NaN"
-use test_nan.nc
-set var/bad=NaN p1
-list p1
-             VARIABLE : Pressure (dbar)
-             FILENAME : test_nan.nc
-             SUBSET   : 10 points (TIME)
- 13-OCT-2001 07:21:50 /  1:....
- 13-OCT-2001 07:21:51 /  2:....
- 13-OCT-2001 07:21:52 /  3:....
- 13-OCT-2001 07:21:53 /  4:....
- 13-OCT-2001 07:21:54 /  5:....
- 13-OCT-2001 07:21:55 /  6:....
- 13-OCT-2001 07:21:56 /  7:....
- 13-OCT-2001 07:21:57 /  8:....
- 13-OCT-2001 07:21:58 /  9:....
- 13-OCT-2001 07:21:59 / 10:....
-can data/all
-can var/all
- 
-! test "NAN"
-use test_nan.nc
-set var/bad=NAN p1
-list p1
-             VARIABLE : Pressure (dbar)
-             FILENAME : test_nan.nc
-             SUBSET   : 10 points (TIME)
- 13-OCT-2001 07:21:50 /  1:....
- 13-OCT-2001 07:21:51 /  2:....
- 13-OCT-2001 07:21:52 /  3:....
- 13-OCT-2001 07:21:53 /  4:....
- 13-OCT-2001 07:21:54 /  5:....
- 13-OCT-2001 07:21:55 /  6:....
- 13-OCT-2001 07:21:56 /  7:....
- 13-OCT-2001 07:21:57 /  8:....
- 13-OCT-2001 07:21:58 /  9:....
- 13-OCT-2001 07:21:59 / 10:....
-can data/all
-can var/all
- 
- 
- 
- 
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn553_bug_fixes.jnl
-! bn553_bug_fixes.jnl
-! test various fixes that went into version 5.52
-! 9/03 *kob*
-!
- 
-! Make sure numeric filenames works
-GO bn_reset
-cancel mode verify
-GO err553_numeric_filename.jnl
-! err553_numeric_filename.jnl
-! 9/03 kob
- 
- 
-! Use of a filename begining w/ a numberic was a problem
-! w/ g77 - just make sure it works where
-use 123456789000101_100101_test_numeric.nc
- 
-list vwnd_clim
-             VARIABLE : VWND[GT=MONTH_REG at MOD]
-             FILENAME : 123456789000101_100101_test_numeric.nc
-             SUBSET   : 12 points (TIME)
-             LONGITUDE: 161W
-             LATITUDE : 39N
-                     161W    
-                       1
- 16-JAN      /  1:  3.43667
- 15-FEB      /  2:  1.92500
- 17-MAR      /  3:  2.79000
- 16-APR      /  4:  1.79000
- 16-MAY      /  5:  0.80000
- 16-JUN      /  6:  3.80000
- 16-JUL      /  7: -0.20000
- 16-AUG      /  8:  0.46500
- 15-SEP      /  9:  2.57250
- 16-OCT      / 10: -2.53000
- 15-NOV      / 11: -3.09000
- 16-DEC      / 12:  1.78667
- 
- 
- 
-! Make sure long string variables work
-GO bn_reset
-cancel mode verify
-GO err553_long_string_var_name.jnl
-! err553_long_string_var_name.jnl
-! 9/03 kob
- 
- 
- 
-! test long string variables - the were being truncated
-! at 100 characters
- 
- 
-let a = "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
- 
-list a
-             VARIABLE : "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
-        "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
- 
- 
- 
- 
- 
-! Fixes for colorbar key labelling
-GO bn_reset
-cancel mode verify
-GO err551_colorkey.jnl
- 
-! colorkey label bugs
- 
- 
-let zero = 0*x[i=1:10]+0*y[j=1:10]
-set view ul; shade zero            !This one is labeled correctly.
-set view ur; shade 1+zero          !So is this.
-set view ll; shade/lev=c zero      !But here colorkey is 1:1 instead of 0:0.
- 
-! Here the zero level is labelled as -.3e-08 rather than 0. (linux)
-can view
-use coads_climatology
-shade/l=1/lev=30/set (sst-10)/10
-ppl axlen 6
-ppl shakey 1,1,.12
-ppl shade
- 
- 
- 
-! ******** V5.6Additions below ***********
- 
-GO bn_reset
-cancel mode verify
-GO 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.
-!            and cancel mode logo, so that .plt files are comparable.
- 
-ppl axnmtc,2,2
- 
- ! GRAT on plot commands
-PLOT/grat/i=1:100 sin(i/5)
-let a = sin(i/5) * cos(j/8)
-CONTOUR/color=ligh/grat=(color=red)/i=1:100/j=1:80 a
-use coads_climatology
-SHADE/grat=(color=white) sst[L=1]
-FILL/grat=dash sst[l=1]
-VECTOR/color=red/grat=(blue,dash) sst[l=1], sst[l=2]
-let b = {1,2,1}
-let c = {2,1,0.5}
-POLYGON/thick/color=red/pal=blue/grat b,c
- 
-! More complex GRAT arguments
-plot/grat="large(dash),small(dash,color=blue)"/i=1:100 sin(i/5)
-contour/color=ligh/grat="large(color=purple,thick=3,line),small(dash,color=blue)"/i=1:100/j=1:80 a
-shade/grat="small(color=lightblue),large(thick,color=lightblue)" sst[l=1]
-fill/i=1:50/j=1:30/grat="large(line),small(dash,color=lightblue)" i+j
-poly/thi/col=red/pal=blue/grat="lar(col=pur,thi=3,lin),sma(dash,col=whi)" b,c
-vector/i=1:50/j=1:30/grat="small(color=black),large(thick,color=blue)"  sst[l=1], sst[l=2]
- 
-! /HGRAT and /VGRAT
-plot/vg=large(line,color=red),small(dash,color=blue)/i=1:100 sin(i/5)
-plot/hg=small(color=red,dash),large(color=blue,line,thick)/i=1:100 sin(i/5)
-plot/hg=small(color=red,dash,thick=1),large(color=blue,line,thick=3)/vg=large(line,color=red),small(dash,color=blue)/i=1:100 sin(i/5)
- 
-! Log axes: VLOG and HLOG with large and small tics
- 
-set mode meta graticules.plt
-can mode logo
- 
-set view left
-def axis/z zlog=exp(k[k=1:10])
-let fcn = k[gz=zlog]
-plot/vlog/vlimits=1:100000/grat="large(color=black),small(color=lightblue)" fcn
- 
-set view right
-def axis/z/depth dlog=exp(k[k=1:20])
-let fcn = k[gz=dlog]
-plot/vlog/vlimits=1:100000/hg="large(color=red),small(color=lightblue)" fcn
- 
-can mode meta
-set mode logo
- 
-can view
- 
-! HLOG and VLOG
- 
-def axis/x ddlog = exp(-1*(10-i[i=1:10]))
-let fcn = (i[gx=ddlog])^2
-plot/thick/hlog/vlog/grat="large(color=red),small=(color=lightblue)" fcn
- 
-! Time axes
-let a = sin(t[gt=tax]/5)
-let b = sin(t[gt=tax]/100)
- 
-def axis/t=1-jan-1990:1-jan-1998:1/units=months tax
- 
-plot/t=1-jan-1990:31-dec-1992/trans/hg="large(dash,color=blue),small(line,color=lightblue)"/vg="(line,color=blue)" a
- 
-def axis/t=1-jan-1990:1-mar-1990:1/units=days tax
-plot/hg="(line,color=blue)"/vg="large(line,color=blue),small(line,color=lightblue)" a
-plot/trans/vg="(line,color=blue)"/hg="large(line,color=blue),small(line,color=lightblue)" a
- 
-def axis/t=1-jan-1950:1-jan-1990:1/units=years tax
-plot/hg="(line,color=blue)"/vg="large(line,color=blue),small(line,color=lightblue)" a
-plot/trans/vg="(line,color=blue)"/hg="large(line,color=blue),small(line,color=lightblue)" a
- 
-def axis/t=1-jan-1800:1-jan-1990:1/units=years tax
-plot/thick/trans/grat="(line,color=blue)" a
- 
-def axis/t="1-jan-1990:01":"2-jan-1990:12:00":1/units=minutes tax
-plot/thick/grat="large(line,color=blue),small(line,color=lightblue)" b
-plot/trans/thick/vg="(line,color=blue)"/hg="large(line,color=blue),small(line,color=lightblue)" b
- 
-! Tests for MODE GRATICULE  added in Ferret v5.7
-show mode graticule
-      MODE            STATE        ARGUMENT
-      GRATICULE     CANCELLED
-set mode graticule
-show mode graticule
-      MODE            STATE        ARGUMENT
-      GRATICULE        SET
- 
-PLOT/i=1:100 sin(i/5)
-can mode graticule
- 
-PLOT/i=1:100 cos(i/5)
- 
-set mode graticule:color=red
-PLOT/i=1:100 cos(i/5)
-set mode graticule:(thick,color=red)
-PLOT/i=1:100 cos(i/5)
- 
-set mode graticule:(dash,color=blue)
-PLOT/i=1:100 cos(i/5)
-can mode graticule
- 
-pplus/reset   ! restore tics etc
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_repeat_range.jnl
-! REPEAT/RANGE=[/NAME=]  for looping without depending
-! on the grid\
-! ACM March 12, 2004
- 
-! simplest syntax
- 
-repeat/range=5:1:-1 say what
-!-> REPEAT: REPCOUNT:5
-what
-!-> REPEAT: REPCOUNT:4
-what
-!-> REPEAT: REPCOUNT:3
-what
-!-> REPEAT: REPCOUNT:2
-what
-!-> REPEAT: REPCOUNT:1
-what
-repeat/range=1:5:3/name=s (list/nohead s)
-!-> REPEAT: S:1
-          1.00000
-!-> REPEAT: S:4
-          4.00000
-sh var s  ! counter variable goes away after a repeat
- 
-! Nested loops, and calling a function
-repeat/range=1:5:3/name=s (repeat/range=1:3/name=tt list sin(tt))
-!-> REPEAT: S:1
-!-> REPEAT: TT:1
-             VARIABLE : SIN(TT)
-          0.841471
-!-> REPEAT: TT:2
-             VARIABLE : SIN(TT)
-          0.909297
-!-> REPEAT: TT:3
-             VARIABLE : SIN(TT)
-          0.141120
-!-> REPEAT: S:4
-!-> REPEAT: TT:1
-             VARIABLE : SIN(TT)
-          0.841471
-!-> REPEAT: TT:2
-             VARIABLE : SIN(TT)
-          0.909297
-!-> REPEAT: TT:3
-             VARIABLE : SIN(TT)
-          0.141120
- 
-! Nested, use counter variables in computation
-can mode ver
-I / *:     80.0000  6.00000  480.000
-I / *:     80.0000  8.00000  640.000
-I / *:     80.0000  10.0000  800.000
-I / *:     60.0000  6.00000  360.000
-I / *:     60.0000  8.00000  480.000
-I / *:     60.0000  10.0000  600.000
-I / *:     40.0000  6.00000  240.000
-I / *:     40.0000  8.00000  320.000
-I / *:     40.0000  10.0000  400.000
-I / *:     20.0000  6.00000  120.000
-I / *:     20.0000  8.00000  160.000
-I / *:     20.0000  10.0000  200.000
- 
-! Nested with a standard repeat loop over Z
-repeat/range=100:200:50/name=m (repeat/z=8:10 list m*z)
-!-> REPEAT: M:100
-!-> REPEAT: Z=8
-             VARIABLE : M*Z
-             Z        : 8
-          800.000
-!-> REPEAT: Z=9
-             VARIABLE : M*Z
-             Z        : 9
-          900.000
-!-> REPEAT: Z=10
-             VARIABLE : M*Z
-             Z        : 10
-          1000.00
-!-> REPEAT: M:150
-!-> REPEAT: Z=8
-             VARIABLE : M*Z
-             Z        : 8
-          1200.00
-!-> REPEAT: Z=9
-             VARIABLE : M*Z
-             Z        : 9
-          1350.00
-!-> REPEAT: Z=10
-             VARIABLE : M*Z
-             Z        : 10
-          1500.00
-!-> REPEAT: M:200
-!-> REPEAT: Z=8
-             VARIABLE : M*Z
-             Z        : 8
-          1600.00
-!-> REPEAT: Z=9
-             VARIABLE : M*Z
-             Z        : 9
-          1800.00
-!-> REPEAT: Z=10
-             VARIABLE : M*Z
-             Z        : 10
-          2000.00
-repeat/z=1:3 (repeat/range=1000:2000:1000/name=m list m*z)
-!-> REPEAT: Z=1
-!-> REPEAT: M:1000
-             VARIABLE : M*Z
-             Z        : 1
-          1000.00
-!-> REPEAT: M:2000
-             VARIABLE : M*Z
-             Z        : 1
-          2000.00
-!-> REPEAT: Z=2
-!-> REPEAT: M:1000
-             VARIABLE : M*Z
-             Z        : 2
-          2000.00
-!-> REPEAT: M:2000
-             VARIABLE : M*Z
-             Z        : 2
-          4000.00
-!-> REPEAT: Z=3
-!-> REPEAT: M:1000
-             VARIABLE : M*Z
-             Z        : 3
-          3000.00
-!-> REPEAT: M:2000
-             VARIABLE : M*Z
-             Z        : 3
-          6000.00
- 
-! With regions defined
-set reg/x=-9:9
-repeat/range=1:4/name=m (repeat/range=44:45/name=p list p)
-!-> REPEAT: M:1
-!-> REPEAT: P:44
-             VARIABLE : constant
-          44.0000
-!-> REPEAT: P:45
-             VARIABLE : constant
-          45.0000
-!-> REPEAT: M:2
-!-> REPEAT: P:44
-             VARIABLE : constant
-          44.0000
-!-> REPEAT: P:45
-             VARIABLE : constant
-          45.0000
-!-> REPEAT: M:3
-!-> REPEAT: P:44
-             VARIABLE : constant
-          44.0000
-!-> REPEAT: P:45
-             VARIABLE : constant
-          45.0000
-!-> REPEAT: M:4
-!-> REPEAT: P:44
-             VARIABLE : constant
-          44.0000
-!-> REPEAT: P:45
-             VARIABLE : constant
-          45.0000
- 
-set reg/x=-180:-160/y=1:15/z=-10000:-1000/t="1-jan-1990"
-repeat/range=1:5 (let a = 6; list a)
-!-> REPEAT: REPCOUNT:1
-             VARIABLE : 6
-          6.00000
-!-> REPEAT: REPCOUNT:2
-             VARIABLE : 6
-          6.00000
-!-> REPEAT: REPCOUNT:3
-             VARIABLE : 6
-          6.00000
-!-> REPEAT: REPCOUNT:4
-             VARIABLE : 6
-          6.00000
-!-> REPEAT: REPCOUNT:5
-             VARIABLE : 6
-          6.00000
-repeat/range=1:5/name=p (let a = 6; list p)
-!-> REPEAT: P:1
-             VARIABLE : constant
-          1.00000
-!-> REPEAT: P:2
-             VARIABLE : constant
-          2.00000
-!-> REPEAT: P:3
-             VARIABLE : constant
-          3.00000
-!-> REPEAT: P:4
-             VARIABLE : constant
-          4.00000
-!-> REPEAT: P:5
-             VARIABLE : constant
-          5.00000
- 
-! Region applies to data, not to loop index.
-use coads_climatology
-let xx = x[gx=sst]
-set reg/x=-180:-160/y=1:15/z=-10000:-1000/t="1-jan-1990"
-repeat/range=1:5/name=p (list p*xx)
-!-> REPEAT: P:1
-             VARIABLE : P*XX
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 10 points (LONGITUDE)
- 179W    / -99: -179.000
- 177W    / -98: -177.000
- 175W    / -97: -175.000
- 173W    / -96: -173.000
- 171W    / -95: -171.000
- 169W    / -94: -169.000
- 167W    / -93: -167.000
- 165W    / -92: -165.000
- 163W    / -91: -163.000
- 161W    / -90: -161.000
-!-> REPEAT: P:2
-             VARIABLE : P*XX
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 10 points (LONGITUDE)
- 179W    / -99: -358.000
- 177W    / -98: -354.000
- 175W    / -97: -350.000
- 173W    / -96: -346.000
- 171W    / -95: -342.000
- 169W    / -94: -338.000
- 167W    / -93: -334.000
- 165W    / -92: -330.000
- 163W    / -91: -326.000
- 161W    / -90: -322.000
-!-> REPEAT: P:3
-             VARIABLE : P*XX
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 10 points (LONGITUDE)
- 179W    / -99: -537.000
- 177W    / -98: -531.000
- 175W    / -97: -525.000
- 173W    / -96: -519.000
- 171W    / -95: -513.000
- 169W    / -94: -507.000
- 167W    / -93: -501.000
- 165W    / -92: -495.000
- 163W    / -91: -489.000
- 161W    / -90: -483.000
-!-> REPEAT: P:4
-             VARIABLE : P*XX
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 10 points (LONGITUDE)
- 179W    / -99: -716.000
- 177W    / -98: -708.000
- 175W    / -97: -700.000
- 173W    / -96: -692.000
- 171W    / -95: -684.000
- 169W    / -94: -676.000
- 167W    / -93: -668.000
- 165W    / -92: -660.000
- 163W    / -91: -652.000
- 161W    / -90: -644.000
-!-> REPEAT: P:5
-             VARIABLE : P*XX
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 10 points (LONGITUDE)
- 179W    / -99: -895.000
- 177W    / -98: -885.000
- 175W    / -97: -875.000
- 173W    / -96: -865.000
- 171W    / -95: -855.000
- 169W    / -94: -845.000
- 167W    / -93: -835.000
- 165W    / -92: -825.000
- 163W    / -91: -815.000
- 161W    / -90: -805.000
- 
-can region
- 
-! factorial
-can mode ver
-I / *:     1.00000 "factorial"  1.00000
-I / *:     2.00000 "factorial"  2.00000
-I / *:     3.00000 "factorial"  6.00000
-I / *:     4.00000 "factorial"  24.0000
-I / *:     5.00000 "factorial"  120.000
-I / *:     6.00000 "factorial"  720.000
- 
-! with some data
-use coads_climatology
-repeat/range=80:120:40/name=p (list/L=1/y=1 sst[x=1:360:`p`])
-!-> REPEAT: P:80
- !-> list/L=1/y=1 sst[x=1:360:80]
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-                        regrid: 80 deg on X
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 5 points (LONGITUDE)
-             LATITUDE : 1N
-             TIME     : JAN
-                1N     
-                46
- 1E     / 1:  27.8258
- 81E    / 2:  28.1147
- 161E   / 3:  28.7893
- 119W   / 4:  24.5394
- 39W    / 5:  27.4849
-!-> REPEAT: P:120
- !-> list/L=1/y=1 sst[x=1:360:120]
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-                        regrid: 120 deg on X
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 points (LONGITUDE)
-             LATITUDE : 1N
-             TIME     : JAN
-                1N     
-                46
- 1E     / 1:  27.8258
- 121E   / 2:  28.5914
- 119W   / 3:  24.5394
- 
-set reg/x=300:360/y=0:50
-repeat/range=1:12:4/name=m (list sst[l=`m`,x=@ave,y=@ave])
-!-> REPEAT: M:1
- !-> list sst[l=1,x=@ave,y=@ave]
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             FILENAME : coads_climatology.cdf
-             LONGITUDE: 60W to 0E(360) (XY ave)
-             LATITUDE : 0 to 50N (XY ave)
-             TIME     : JAN
-          20.9844
-!-> REPEAT: M:5
- !-> list sst[l=5,x=@ave,y=@ave]
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             FILENAME : coads_climatology.cdf
-             LONGITUDE: 60W to 0E(360) (XY ave)
-             LATITUDE : 0 to 50N (XY ave)
-             TIME     : JAN
-          20.9844
-!-> REPEAT: M:9
- !-> list sst[l=9,x=@ave,y=@ave]
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             FILENAME : coads_climatology.cdf
-             LONGITUDE: 60W to 0E(360) (XY ave)
-             LATITUDE : 0 to 50N (XY ave)
-             TIME     : JAN-0002
-          20.9844
- 
-! Look for "reading SST" lines; each has a different X range
-can data/all
-can mem
-can region
-use coads_climatology
- 
-set mode diag
-set reg/y=0:50/L=1
-repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
-!-> REPEAT: M:300
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: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
- !-> 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
- 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
- doing --> SST[Y=0:50N at AV4,D=1]
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             FILENAME : coads_climatology.cdf
-             LONGITUDE: 80W to 60W (XY ave)
-             LATITUDE : 0 to 50N (XY ave)
-             TIME     : JAN
-          20.7890
-!-> REPEAT: M:330
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: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
- !-> 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
- 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
- doing --> SST[Y=0:50N at AV4,D=1]
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             FILENAME : coads_climatology.cdf
-             LONGITUDE: 80W to 30W (XY ave)
-             LATITUDE : 0 to 50N (XY ave)
-             TIME     : JAN
-          21.2500
-!-> REPEAT: M:360
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: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
- !-> 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
- 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
- doing --> SST[Y=0:50N at AV4,D=1]
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             FILENAME : coads_climatology.cdf
-             LONGITUDE: 80W to 0E(360) (XY ave)
-             LATITUDE : 0 to 50N (XY ave)
-             TIME     : JAN
-          20.9385
-cancel mode diag
- 
-! order of qualifiers doesnt matter
-repeat/name=a/range=1:3 say `a`
-!-> REPEAT: A:1
- !-> MESSAGE/CONTINUE 1
-1
-!-> REPEAT: A:2
- !-> MESSAGE/CONTINUE 2
-2
-!-> REPEAT: A:3
- !-> MESSAGE/CONTINUE 3
-3
- 
-! Test using a file variable name
-use coads_climatology
-repeat/name=sst/range=1:5 (list sst)
-!-> REPEAT: SST:1
-             VARIABLE : constant
-          1.00000
-!-> REPEAT: SST:2
-             VARIABLE : constant
-          2.00000
-!-> REPEAT: SST:3
-             VARIABLE : constant
-          3.00000
-!-> REPEAT: SST:4
-             VARIABLE : constant
-          4.00000
-!-> REPEAT: SST:5
-             VARIABLE : constant
-          5.00000
-list/l=1/x=181/y=1 sst
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             FILENAME : coads_climatology.cdf
-             LONGITUDE: 179W
-             LATITUDE : 1N
-             TIME     : JAN
-          28.2839
-can data/all
- 
-! Intentional errors
-set mode ignore
- 
-! /NAME without /RANGE
-rep/name=a say `a`
- 
-! Cannot use pseudo-variables.
- 
-set mode ignore
-rep/range=1:3/name=L (use coads_climatology; list/nohead [sst=I=1,j=1])
- 
-! Check that the state is reset after error
-rep/range=1:3/name=a say `a`
-!-> REPEAT: A:1
- !-> MESSAGE/CONTINUE 1
-1
-!-> REPEAT: A:2
- !-> MESSAGE/CONTINUE 2
-2
-!-> REPEAT: A:3
- !-> MESSAGE/CONTINUE 3
-3
- 
-rep/range=1:3/name=I (use coads_climatology; list/nohead [sst])
-rep/range=1:3/name=j (use coads_climatology; list/nohead [sst])
-rep/range=1:3/name=k (use coads_climatology; list/nohead [sst])
-rep/range=1:3/name=X (use coads_climatology; list/nohead [sst])
-rep/range=1:3/name=y (use coads_climatology; list/nohead [sst])
-rep/range=1:3/name=z (use coads_climatology; list/nohead [sst])
-rep/range=1:3/name=tbox (use coads_climatology; list/nohead[sst,x=181,y=0,t=`tbox`])
-rep/range=1:3/name=xboxlo (list/nohead xboxlo)
- 
- 
-! Nested REPEAT with the same counter variable name
-repeat/range=1:4/name=a (repeat/range=3:1:-1/name=a list a)
-!-> REPEAT: A:1
-!-> REPEAT: A:2
-!-> REPEAT: A:3
-!-> REPEAT: A:4
-cancel mode ignore
- 
-GO bn_reset
-cancel mode verify
-GO bn554_bug_fixes.jnl
-! bn554_bug_fixes.jnl
-! test various fixes that went into version 5.54
-! 11/03 *acm*
-!
- 
-! Test use of longer strings in region names
-GO bn_reset
-cancel mode verify
-GO err553_regionname_lengths.jnl
-! In v5.50, we upped the region name storage to
-! allow 24-characters.  Wasnt fully implemented.
-! acm 11/03
- 
-SET MODE IGNORE_ERRORS
- 
-def region/x=100e:150e/y=0:40 southeast_asia
-show region southeast_asia
-region southeast_asia
-        X=100:150
-        Y=0:40
-        Z/K is unspecified
-        T/L is unspecified
-        E/M is unspecified
-        F/N is unspecified
-set region southeast_asia
-show region
-default region:
-        X=100:150
-        Y=0:40
-        Z/K is unspecified
-        T/L is unspecified
-        E/M is unspecified
-        F/N is unspecified
- 
-def region/x=150:210/y=-60:0 southwest_pacific
-show region/all
-default region:
-        X=100:150
-        Y=0:40
-        Z/K is unspecified
-        T/L is unspecified
-        E/M is unspecified
-        F/N is unspecified
-region southeast_asia
-        X=100:150
-        Y=0:40
-        Z/K is unspecified
-        T/L is unspecified
-        E/M is unspecified
-        F/N is unspecified
-region southwest_pacific
-        X=150:210
-        Y=-60:0
-        Z/K is unspecified
-        T/L is unspecified
-        E/M is unspecified
-        F/N is unspecified
- 
-SET MODE/LAST IGNORE_ERRORS
- 
- 
-! Reqests for data at times outside range of data
-GO bn_reset
-cancel mode verify
-GO err553_timeregion.jnl
-! try to apply a region whose limits are both below,
-! or both above, the data bounds. In v5.53 the error
-! handling for this got broken for time axes (an error
-! in the fix for err551_no_taxis_errmsg)
-! acm 11/03
- 
-SET MODE IGNORE_ERRORS
- 
-	use gt4d011.cdf
-list/t=1-aug-1980:1-jan-1982/i=92/j=35 temp
- 
- 
-SET MODE/LAST IGNORE_ERRORS
- 
-! Contour plot on fine grid has precision problems
-GO bn_reset
-cancel mode verify
-GO err553_contour_fine_grid.jnl
-! err553_contour_find_grid.jnl
-! 11/21/03 ACM
- 
-! For fine grids, precision isnt sufficient to
-! compute the values to map coordinates to the
-! page.  The bug occurs with smith_sandwell_topo
-! and has to do with large index values in the
-! calculations. This small set ss_small.nc is saved
-! from smith_sandwell_topo.  Then we need to put it on
-! a large grid to see the error.  The first contour
-! command either shows nothing, or a set of contours
-! that are shifted relative to the (correct) second
-! contour plot.
- 
-! The fix is to increase precision for some of the
-! calculations in plotz.F, pltit.F and setax.F
- 
-use ss_small.nc
-def axis/x=0.16e:0.67w/npoints=10800 xax
-def axis/y=72s:72n/npoints=6336 yax
-def grid/x=xax/y=yax fullgrid
-let rrose = rose[g=fullgrid]
-set grid fullgrid
-set reg/x=137.25w:135.75w/y=58.2n:59.15n
-go mp_mercator
-go mp_aspect
-contour rrose,x_page, y_page
-contour/over/color=red rrose, x_page, y_page
- 
-PPLUS/RESET   ! reset aspect ratio
- 
-! PLOT/SYM/SIZE= did not change the size
-GO bn_reset
-cancel mode verify
-GO err553_symsize.jnl
-! PLOT/SYM/SIZE= does not change the size from the default.
-! acm 11/03
-!
-plot/i=1:10/sym=20/siz=.4 i
-plot/over/i=1:10/sym=20/siz=0.2 i
- 
-! test labels on shade keys; consistent number of digits set by 5th shakey arg
-GO bn_reset
-cancel mode verify
-GO err553_shakey_labels.jnl
-! The 5th argument to shakey is supposed to define
-! number of digits in the label.
-! acm 12/03
- 
-shade/set/i=1:10/j=1:10 (i+j)/10
-ppl shakey 1, , , , -2
-ppl shade
-shade/set/i=1:10/j=1:10 (i+j)/10
-ppl shakey 1, , , , -1
-ppl shade
- 
- 
-! couldnt set the number of small tics with arg to %xaxis, %yaxis commands
-GO bn_reset
-cancel mode verify
-GO err553_xaxis_nsmtc.jnl
-! Bug: 5th argument failed to set the number of small
-! tics for the axis.
- 
-! ACM 12/12/03
- 
-ppl %xaxis/nouser 1,100,10,1,4
-ppl %xaxis/nouser 1,100,10,2,6
-ppl %yaxis/nouser 1,100,10,1,4
-ppl %yaxis/nouser 1,100,10,2,6
- 
- 
-! The defined year length was different if we used DEFINE AXIS/UNIT=year
-! vs DEFINE AXIS/UNIT=yr
-GO bn_reset
-cancel mode verify
-GO err553_year_yr.jnl
-! err553_year_yr.jnl
-! 2/2004 ACM
-! DEFINE AXIS/UNITS=year and UNITS=yr should be the same;
-! and year length should match the length of a year in
-! the specified calendar
- 
-def ax/t=1-jan-0001:1-jan-0100:`1/12,p=9`/edge/cal=noleap/unit=year tax1
- !-> def ax/t=1-jan-0001:1-jan-0100:0.0833333333/edge/cal=noleap/unit=year tax1
-def ax/t=1-jan-0001:1-jan-0100:`1/12,p=9`/edge/cal=noleap/unit=yr tax2
- !-> def ax/t=1-jan-0001:1-jan-0100:0.0833333333/edge/cal=noleap/unit=yr tax2
-show axis tax1
- name       axis              # pts   start                end
- TAX1      TIME              1188 r   16-JAN-0001 04:59    16-DEC-0099 18:59
-T0 = 01-JAN-0000
-CALENDAR = NOLEAP
-   Axis span (to cell edges) = 99
-show axis tax2
- name       axis              # pts   start                end
- TAX2      TIME              1188 r   16-JAN-0001 04:59    16-DEC-0099 18:59
-T0 = 01-JAN-0000
-CALENDAR = NOLEAP
-   Axis span (to cell edges) = 99
-list/l=1186:1189 t[gt=tax1]
-             VARIABLE : T
-                        axis TAX1
-             SUBSET   : 3 points (TIME)
-             CALENDAR : NOLEAP
- 16-OCT-0099 / 1186:  99.7917
- 16-NOV-0099 / 1187:  99.8750
- 16-DEC-0099 / 1188:  99.9583
-list/l=1186:1189 t[gt=tax2]
-             VARIABLE : T
-                        axis TAX2
-             SUBSET   : 3 points (TIME)
-             CALENDAR : NOLEAP
- 16-OCT-0099 / 1186:  99.7917
- 16-NOV-0099 / 1187:  99.8750
- 16-DEC-0099 / 1188:  99.9583
- 
-def ax/t=1-jan-0001:1-jan-0100:`1/12,p=9`/edge/cal=julian/unit=year tax1
- !-> def ax/t=1-jan-0001:1-jan-0100:0.0833333333/edge/cal=julian/unit=year tax1
-def ax/t=1-jan-0001:1-jan-0100:`1/12,p=9`/edge/cal=julian/unit=yr tax2
- !-> def ax/t=1-jan-0001:1-jan-0100:0.0833333333/edge/cal=julian/unit=yr tax2
-show axis tax1
- name       axis              # pts   start                end
- TAX1      TIME              1188 r   16-JAN-0001 05:14    17-DEC-0099 12:44
-T0 = 01-JAN-0000
-CALENDAR = JULIAN
-   Axis span (to cell edges) = 99
-show axis tax2
- name       axis              # pts   start                end
- TAX2      TIME              1188 r   16-JAN-0001 05:14    17-DEC-0099 12:44
-T0 = 01-JAN-0000
-CALENDAR = JULIAN
-   Axis span (to cell edges) = 99
-list/l=1186:1189 t[gt=tax1]
-             VARIABLE : T
-                        axis TAX1
-             SUBSET   : 3 points (TIME)
-             CALENDAR : JULIAN
- 17-OCT-0099 / 1186:  99.7937
- 17-NOV-0099 / 1187:  99.8771
- 17-DEC-0099 / 1188:  99.9604
-list/l=1186:1189 t[gt=tax2]
-             VARIABLE : T
-                        axis TAX2
-             SUBSET   : 3 points (TIME)
-             CALENDAR : JULIAN
- 17-OCT-0099 / 1186:  99.7937
- 17-NOV-0099 / 1187:  99.8771
- 17-DEC-0099 / 1188:  99.9604
- 
-def ax/t=1-jan-0001:1-jan-0100:`1/12,p=9`/edge/cal=standard/unit=year tax1
- !-> def ax/t=1-jan-0001:1-jan-0100:0.0833333333/edge/cal=standard/unit=year tax1
-def ax/t=1-jan-0001:1-jan-0100:`1/12,p=9`/edge/cal=standard/unit=yr tax2
- !-> def ax/t=1-jan-0001:1-jan-0100:0.0833333333/edge/cal=standard/unit=yr tax2
-show axis tax1
- name       axis              # pts   start                end
- TAX1      TIME              1188 r   16-JAN-0001 05:14    16-DEC-0099 18:56
-T0 = 01-JAN-0000
-   Axis span (to cell edges) = 99
-show axis tax2
- name       axis              # pts   start                end
- TAX2      TIME              1188 r   16-JAN-0001 05:14    16-DEC-0099 18:56
-T0 = 01-JAN-0000
-   Axis span (to cell edges) = 99
-list/l=1186:1189 t[gt=tax1]
-             VARIABLE : T
-                        axis TAX1
-             SUBSET   : 3 points (TIME)
- 16-OCT-0099 / 1186:  99.7937
- 16-NOV-0099 / 1187:  99.8771
- 16-DEC-0099 / 1188:  99.9604
-list/l=1186:1189 t[gt=tax2]
-             VARIABLE : T
-                        axis TAX2
-             SUBSET   : 3 points (TIME)
- 16-OCT-0099 / 1186:  99.7937
- 16-NOV-0099 / 1187:  99.8771
- 16-DEC-0099 / 1188:  99.9604
- 
-def ax/t=1-jan-0001:1-jan-0100:`1/12,p=9`/edge/unit=year tax1
- !-> def ax/t=1-jan-0001:1-jan-0100:0.0833333333/edge/unit=year tax1
-def ax/t=1-jan-0001:1-jan-0100:`1/12,p=9`/edge/unit=yr tax2
- !-> def ax/t=1-jan-0001:1-jan-0100:0.0833333333/edge/unit=yr tax2
-show axis tax1
- name       axis              # pts   start                end
- TAX1      TIME              1188 r   16-JAN-0001 05:14    16-DEC-0099 18:56
-T0 = 01-JAN-0000
-   Axis span (to cell edges) = 99
-show axis tax2
- name       axis              # pts   start                end
- TAX2      TIME              1188 r   16-JAN-0001 05:14    16-DEC-0099 18:56
-T0 = 01-JAN-0000
-   Axis span (to cell edges) = 99
-list/l=1186:1189 t[gt=tax1]
-             VARIABLE : T
-                        axis TAX1
-             SUBSET   : 3 points (TIME)
- 16-OCT-0099 / 1186:  99.7937
- 16-NOV-0099 / 1187:  99.8771
- 16-DEC-0099 / 1188:  99.9604
-list/l=1186:1189 t[gt=tax2]
-             VARIABLE : T
-                        axis TAX2
-             SUBSET   : 3 points (TIME)
- 16-OCT-0099 / 1186:  99.7937
- 16-NOV-0099 / 1187:  99.8771
- 16-DEC-0099 / 1188:  99.9604
- 
-! v553 and before also had a bug in where D360 not properly defined in
-! calendar_blkdat.F so length of year not correct.
- 
-def ax/t=1-jan-0001:1-jan-0100:`1/12,p=9`/edge/cal=d360/unit=year tax1
- !-> def ax/t=1-jan-0001:1-jan-0100:0.0833333333/edge/cal=d360/unit=year tax1
-def ax/t=1-jan-0001:1-jan-0100:`1/12,p=9`/edge/cal=d360/unit=yr tax2
- !-> def ax/t=1-jan-0001:1-jan-0100:0.0833333333/edge/cal=d360/unit=yr tax2
-show axis tax1
- name       axis              # pts   start                end
- TAX1      TIME              1188 r   15-JAN-0001 23:59    15-DEC-0099 23:59
-T0 = 01-JAN-0000
-CALENDAR = 360_DAY
-   Axis span (to cell edges) = 99
-show axis tax2
- name       axis              # pts   start                end
- TAX2      TIME              1188 r   15-JAN-0001 23:59    15-DEC-0099 23:59
-T0 = 01-JAN-0000
-CALENDAR = 360_DAY
-   Axis span (to cell edges) = 99
-set mode ignore
-list/l=1186:1189 t[gt=tax1]
-             VARIABLE : T
-                        axis TAX1
-             SUBSET   : 3 points (TIME)
-             CALENDAR : 360_DAY
- 15-OCT-0099 23 / 1186:  99.7917
- 15-NOV-0099 23 / 1187:  99.8750
- 15-DEC-0099 23 / 1188:  99.9583
-list/l=1186:1189 t[gt=tax2]
-             VARIABLE : T
-                        axis TAX2
-             SUBSET   : 3 points (TIME)
-             CALENDAR : 360_DAY
- 15-OCT-0099 23 / 1186:  99.7917
- 15-NOV-0099 23 / 1187:  99.8750
- 15-DEC-0099 23 / 1188:  99.9583
-list/l=1168:1171 t[gt=tax1]
-             VARIABLE : T
-                        axis TAX1
-             SUBSET   : 4 points (TIME)
-             CALENDAR : 360_DAY
- 15-APR-0098 23 / 1168:  98.2917
- 15-MAY-0098 23 / 1169:  98.3750
- 15-JUN-0098 23 / 1170:  98.4583
- 15-JUL-0098 23 / 1171:  98.5417
-list/l=1168:1171 t[gt=tax2]
-             VARIABLE : T
-                        axis TAX2
-             SUBSET   : 4 points (TIME)
-             CALENDAR : 360_DAY
- 15-APR-0098 23 / 1168:  98.2917
- 15-MAY-0098 23 / 1169:  98.3750
- 15-JUN-0098 23 / 1170:  98.4583
- 15-JUL-0098 23 / 1171:  98.5417
-can mode ignore
- 
-! When we do a DEFINE GRID/LIKE=var and then try to read the var with
-! strides, Ferret did a regridding instead.  Test the fix for this
-GO bn_reset
-cancel mode verify
-GO err553_stride_def_grid.jnl
- 
-use gtsa056_2.cdf
-set mode diag
-let a = taux[i=50:55:2,j=44:50:3,l=1:168:8]
-load a
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G023)          (AX023)   (AX022)   NORMAL    (AX025)   NORMAL    NORMAL
- dealloc  dynamic grid (G023)          (AX023)   (AX022)   NORMAL    (AX025)   NORMAL    NORMAL
- allocate dynamic grid (G023)          (AX023)   (AX022)   NORMAL    (AX025)   NORMAL    NORMAL
- allocate dynamic grid (G023)          (AX023)   (AX022)   NORMAL    (AX025)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- allocate dynamic grid (G023)          (AX023)   (AX022)   NORMAL    (AX025)   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 (G023)          (AX023)   (AX022)   NORMAL    (AX025)   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
- 
-def grid/like=taux agrid
- dealloc  dynamic grid (G023)          (AX023)   (AX022)   NORMAL    (AX025)   NORMAL    NORMAL
- getgrid EX#1     C:  6 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS2DU1          PSXU      PSYU      NORMAL    TIME6     NORMAL    NORMAL
-set mode diag
-let a = taux[i=50:55:2,j=44:50:3,l=1:168:8]
- dealloc  dynamic grid PS2DU1          PSXU      PSYU      NORMAL    TIME6     NORMAL    NORMAL
- dealloc  dynamic grid (G023)          (AX023)   (AX022)   NORMAL    (AX025)   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 (G023)          (AX022)   (AX023)   NORMAL    (AX009)   NORMAL    NORMAL
- dealloc  dynamic grid (G023)          (AX022)   (AX023)   NORMAL    (AX009)   NORMAL    NORMAL
- allocate dynamic grid (G023)          (AX022)   (AX023)   NORMAL    (AX009)   NORMAL    NORMAL
- allocate dynamic grid (G023)          (AX022)   (AX023)   NORMAL    (AX009)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- allocate dynamic grid (G023)          (AX022)   (AX023)   NORMAL    (AX009)   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 (G023)          (AX022)   (AX023)   NORMAL    (AX009)   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
-can data/all
- dealloc  dynamic grid (G023)          (AX022)   (AX023)   NORMAL    (AX009)   NORMAL    NORMAL
- dealloc  dynamic grid (G023)          (AX022)   (AX023)   NORMAL    (AX009)   NORMAL    NORMAL
- 
-! Some tests taken from  bn_strides_revs_perms.jnl but with
-! DEFINE GRID/LIKE= testing permuting and reversing axes
- 
-! first with an XYZT variable
-set region/i=3:6/j=2:4/k=1:2/l=1
-use bn_strides
-define grid/like=var agrid
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
-define grid/like=midvar bgrid
- getgrid EX#1     C:  6 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GPC2            XAX1_9    YAX1_8    ZAX1_7    TAX1_6    NORMAL    NORMAL
-define grid/like=bigvar cgrid
- dealloc  dynamic grid GPC2            XAX1_9    YAX1_8    ZAX1_7    TAX1_6    NORMAL    NORMAL
- getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GPC3            XAX1_40   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
-define grid/like=unevenvar dgrid
- dealloc  dynamic grid GPC3            XAX1_40   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- getgrid EX#1     C:  8 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
-define grid/like=xytvar egrid
- dealloc  dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- getgrid EX#1     C:  9 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
-canc data/all
- dealloc  dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
- 
- 
-! cache hit from full region cache -- bypass use of strides
-cancel memory/all
-use bn_strides
-load var
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- reading VAR      M:151 dset:   1 I:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
-LIST VAR[i=2:4:2]
- dealloc  dynamic grid AGRID           XAX1_4    YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX040)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX040)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX040)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX040)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G014)           @XACT
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:147 dset:   1 I:    1    2  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:146 dset:   1 I:    2    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX040)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
-             VARIABLE : L*1000 + K*100 + J*10 + I
-                        regrid: 2 delta on X
-             FILENAME : bn_strides.cdf
-             SUBSET   : 2 by 2 by 2 points (X-Y-Z)
-             T        : 1
-              2        4     
-              1        2
- ---- K:1 Z:   1
- 2   / 2:  1122.00  1124.00
- 3   / 3:  1132.00  1134.00
- ---- K:2 Z:   2
- 2   / 2:  1222.00  1224.00
- 3   / 3:  1232.00  1234.00
-LIST VAR[i=2:4:2,j=1:3:2]
- dealloc  dynamic grid (G014)          (AX040)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- -DELETE VAR      M:147 dset:   1 I:    1    2  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX005)   (AX041)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX005)   (AX041)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX005)   (AX041)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX005)   (AX041)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G014)           @XACT
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:146 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:147 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX005)   (AX041)   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
-             SUBSET   : 2 by 2 by 2 points (X-Y-Z)
-             T        : 1
-              2        4     
-              1        2
- ---- K:1 Z:   1
- 1   / 1:  1112.00  1114.00
- 3   / 2:  1132.00  1134.00
- ---- K:2 Z:   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
- 
-! 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)          (AX005)   (AX041)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX005)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX005)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX005)   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)          (AX005)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G014)           @XACT
- strip moduloing VAR on X axis:     1    10 dset:   1
- reading VAR      M:151 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- doing moduloing VAR on X axis:     1     4 dset:   1
- regrid  VAR      M:147 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX005)   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
-             SUBSET   : 4 points (X)
-             Y        : 1
-             Z        : 1
-             T        : 1
-               1     
-               1
- 1    / 1:  1111.00
- 4    / 2:  1114.00
- 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
- 
-! 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)          (AX005)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX041)   (AX040)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX041)   (AX040)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX041)   (AX040)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX041)   (AX040)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G014)           @XACT
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:147 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:151 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX041)   (AX040)   ZAX1_2    TAX1_1    NORMAL    NORMAL
-             VARIABLE : L*1000 + K*100 + J*10 + I
-                        regrid: 2 delta on X, 2 delta on Y
-             FILENAME : bn_strides.cdf
-             SUBSET   : 2 by 2 by 2 points (X-Y-Z)
-             T        : 1
-              2        4     
-              1        2
- ---- K:1 Z:   1
- 1   / 1:  1112.00  1114.00
- 3   / 2:  1132.00  1134.00
- ---- K:2 Z:   2
- 1   / 1:  1212.00  1214.00
- 3   / 2:  1232.00  1234.00
-LIST VAR[i=2:6:2,j=1:5:2]
- dealloc  dynamic grid (G014)          (AX041)   (AX040)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- -DELETE VAR      M:147 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX041)   (AX005)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX041)   (AX005)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX041)   (AX005)   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)   (AX005)   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)   (AX005)   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
-             SUBSET   : 2 by 2 by 2 points (X-Y-Z)
-             T        : 1
-              2        4     
-              1        2
- ---- K:1 Z:   1
- 1   / 1:  1112.00  1114.00
- 3   / 2:  1132.00  1134.00
- ---- K:2 Z:   2
- 1   / 1:  1212.00  1214.00
- 3   / 2:  1232.00  1234.00
- 
-! test sub-region selection on strides axis
-let a = bigvar[i=1:40:5]
- dealloc  dynamic grid (G014)          (AX041)   (AX005)   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
-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
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    3    6  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  7 dset:   1 I:    3    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- strip regrid on X: BIGVAR --> (G014)           @XACT
- rdstride BIGVAR   C: 10 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:147 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:151 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
-             VARIABLE : BIGVAR[I=1:40:5]
-             FILENAME : bn_strides.cdf
-             SUBSET   : 3 points (X)
-             Y        : 1
-             Z        : 1
-             T        : 1
-               1     
-               1
- 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
-list/k=1/l=1 a[i=3:5,j=1:8:2]
- dealloc  dynamic grid (G014)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G001)          (AX041)   (AX040)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G001)          (AX041)   (AX040)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G001)          (AX041)   (AX040)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    3    6  J:    2    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G001)          (AX041)   (AX040)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- strip regrid on Y: A --> (G001)           @XACT
- eval    A        C:  8 dset:   1 I:    3    5  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- strip regrid on X: BIGVAR --> (G014)           @XACT
- rdstride BIGVAR   C: 11 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 74 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:146 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- regrid  A        M:136 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
-             VARIABLE : BIGVAR[I=1:40:5]
-                        regrid: 2 delta on Y
-             FILENAME : bn_strides.cdf
-             SUBSET   : 3 by 4 points (X-Y)
-             Z        : 1
-             T        : 1
-             11       16       21     
-              3        4        5
- 1   / 1:  1121.00  1126.00  1131.00
- 3   / 2:  1141.00  1146.00  1151.00
- 5   / 3:  1161.00  1166.00  1171.00
- 7   / 4:  1181.00  1186.00  1191.00
- 
-! ****** 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:136 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
- 
-! basic strides
-LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
- dealloc  dynamic grid (G001)          (AX041)   (AX040)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G001)          (AX005)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G001)          (AX005)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G001)          (AX005)   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)          (AX005)   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)          (AX005)   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
-             SUBSET   : 2 points (X)
-             Y        : 0
-             Z        : 1
-             T        : 1
-            0.3      0.6    
-             1        2
-          1112.00  1114.00
- 
-! * * * * * MIXED STRIDES and PERMUTATIONS * * * * *
- 
-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)          (AX005)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- -DELETE UNE-NVAR M:147 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G001)          (AX040)   (AX042)   (AX043)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G001)          (AX040)   (AX042)   (AX043)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G001)          (AX040)   (AX042)   (AX043)   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G001)          (AX040)   (AX042)   (AX043)   TAX1_10   NORMAL    NORMAL
- strip regrid on X: BIGVAR --> (G001)           @XACT
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:151 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:147 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G001)          (AX040)   (AX042)   (AX043)   TAX1_10   NORMAL    NORMAL
-             VARIABLE : VAR
-                        regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (X-Y-Z)
-             T        : 1
-              3        5        7        9     
-              1        2        3        4
- ---- K:1 Z:   1
- 2   / 1:  1123.00  1125.00  1127.00  1129.00
- 4   / 2:  1143.00  1145.00  1147.00  1149.00
- 6   / 3:  1163.00  1165.00  1167.00  1169.00
- ---- K:2 Z:   3
- 2   / 1:  1323.00  1325.00  1327.00  1329.00
- 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
- 
-use/order=zyx bn_strides
-list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_10   NORMAL    NORMAL
- strip regrid on X: BIGVAR --> (G014)           @XACT
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:147 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:151 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_10   NORMAL    NORMAL
-             VARIABLE : VAR
-                        regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (X-Y-Z)
-             T        : 1
-              3        5        7        9     
-              1        2        3        4
- ---- K:1 Z:   1
- 2   / 1:  1321.00  1521.00  1721.00  1921.00
- 4   / 2:  1341.00  1541.00  1741.00  1941.00
- 6   / 3:  1361.00  1561.00  1761.00  1961.00
- ---- K:2 Z:   3
- 2   / 1:  1323.00  1523.00  1723.00  1923.00
- 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
- 
-! now with xytvar
-cancel region
-set region/i=1:4/j=1:3/l=1:2
-use bn_strides
- 
-list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX042)   (AX043)   NORMAL    (AX041)   NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   NORMAL    (AX041)   NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX042)   (AX043)   NORMAL    (AX041)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX042)   (AX043)   NORMAL    (AX041)   NORMAL    NORMAL
- strip regrid on X: XYTVAR --> (G014)           @XACT
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:151 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:147 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   NORMAL    (AX041)   NORMAL    NORMAL
-             VARIABLE : L*1000 + J*10 + I
-                        regrid: 2 deg on X, 2 deg on Y, 2 day on T
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (LONGITUDE-LATITUDE-TIME)
-             141E     143E     145E     147E    
-               1        2        3        4
- ---- L:1 T:   JAN-1995
- 6N   / 3:  3061.00  3063.00  3065.00  3067.00
- 4N   / 2:  3041.00  3043.00  3045.00  3047.00
- 2N   / 1:  3021.00  3023.00  3025.00  3027.00
- ---- L:2 T:   JAN-1995
- 6N   / 3:  5061.00  5063.00  5065.00  5067.00
- 4N   / 2:  5041.00  5043.00  5045.00  5047.00
- 2N   / 1:  5021.00  5023.00  5025.00  5027.00
- 
-use/order=tyx bn_strides
-show grid xytvar
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   NORMAL    (AX041)   NORMAL    NORMAL
- -DELETE XYTVAR   M:151 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
-    GRID EGRID
- name       axis              # pts   start                end
- XLON      LONGITUDE           40mr   141E                 180E
- YLAT      LATITUDE            30 r   1N                   30N
- normal    Z
- TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00
- 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
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX043)   (AX042)   NORMAL    (AX040)   NORMAL    NORMAL
- strip regrid on X: XYTVAR --> (G014)           @XACT
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:147 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:151 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   NORMAL    (AX040)   NORMAL    NORMAL
-             VARIABLE : L*1000 + J*10 + I
-                        regrid: 2 deg on X, 2 deg on Y, 2 day on T
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (LONGITUDE-LATITUDE-TIME)
-             141E     143E     145E     147E    
-               1        2        3        4
- ---- L:1 T:   JAN-1995
- 6N   / 3:  3061.00  3063.00  3065.00  3067.00
- 4N   / 2:  3041.00  3043.00  3045.00  3047.00
- 2N   / 1:  3021.00  3023.00  3025.00  3027.00
- ---- L:2 T:   JAN-1995
- 6N   / 3:  5061.00  5063.00  5065.00  5067.00
- 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
- 
-! map into Z instead of T
-use/order=zxy bn_strides
-show grid xytvar
- getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GPC5            TTIME     XLON      YLAT      NORMAL    NORMAL    NORMAL
-    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
- normal    T
- normal    E
- normal    F
- 
-list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
- dealloc  dynamic grid GPC5            TTIME     XLON      YLAT      NORMAL    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   NORMAL    NORMAL    NORMAL
- strip regrid on X: XYTVAR --> (G014)           @XACT
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:151 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:147 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   NORMAL    NORMAL    NORMAL
-             VARIABLE : L*1000 + J*10 + I
-                        regrid: 2 day on X, 2 deg on Y, 2 deg on Z
-             FILENAME : bn_strides.cdf
-             SUBSET   : 4 by 3 by 2 points (X (DAYS)-Y (degrees_east)-Z (degrees_north))
-              34319    34321    34323    34325   
-                1        2        3        4
- ---- K:1 Z:   3
- 142   / 1:  1032.00  3032.00  5032.00  7032.00
- 144   / 2:  1034.00  3034.00  5034.00  7034.00
- 146   / 3:  1036.00  3036.00  5036.00  7036.00
- ---- K:2 Z:   5
- 142   / 1:  1052.00  3052.00  5052.00  7052.00
- 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
- 
- 
-cancel region; set region/l=1
- 
-! reference output
-use/order=yx bn_strides
-list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_6    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_6    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_6    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G014)           @XACT
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:147 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:151 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_6    NORMAL    NORMAL
-             VARIABLE : VAR
-                        regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
-             FILENAME : bn_strides.cdf
-             SUBSET   : 2 by 2 by 2 points (X-Y-Z)
-             T        : 1
-              1        5     
-              1        2
- ---- K:1 Z:   3
- 2   / 1:  1312.00  1352.00
- 5   / 2:  1315.00  1355.00
- ---- K:2 Z:   5
- 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
- 
-use/order=-yx bn_strides
-list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   TAX1_6    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   TAX1_6    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   TAX1_6    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G014)           @XACT
- strip reversing MIDVAR on Y axis:     2     5 dset:   1
- rdstride MIDVAR   C:  8 dset:   1 I:    1    5  J:    5    8  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- doing reversing MIDVAR on Y axis:     2     5 dset:   1
- -DELETE MIDVAR   M:147 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:147 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:151 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   TAX1_6    NORMAL    NORMAL
-             VARIABLE : VAR
-                        regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
-             FILENAME : bn_strides.cdf
-             SUBSET   : 2 by 2 by 2 points (X-Y-Z)
-             T        : 1
-              1        5     
-              1        2
- ---- K:1 Z:   3
- 2   / 1:  1318.00  1358.00
- 5   / 2:  1315.00  1355.00
- ---- K:2 Z:   5
- 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
- 
-! reference output
-use/order=tyx bn_strides
-list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G014)           @XACT
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:151 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:147 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
-             VARIABLE : VAR
-                        regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
-             FILENAME : bn_strides.cdf
-             SUBSET   : 2 by 2 by 2 points (X-Y-Z)
-             T        : 1
-              1        5     
-              1        2
- ---- K:1 Z:   3
- 2   / 1:  1123.00  5123.00
- 5   / 2:  1153.00  5153.00
- ---- K:2 Z:   5
- 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
- 
-! note the reversal on axes 1,2 and 3 (X,Y,Z in memory -- NOT T)
-use/order=-t-y-x bn_strides
-list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G014)           @XACT
- strip reversing MIDVAR on X axis:     1     5 dset:   1
- rdstride MIDVAR   C:  8 dset:   1 I:    2    6  J:    4    7  K:    3    5  L:    7    7  M: -999 -999  N: -999 -999
- doing reversing MIDVAR on X axis:     1     5 dset:   1
- -DELETE MIDVAR   M:151 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:151 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:147 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
-             VARIABLE : VAR
-                        regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
-             FILENAME : bn_strides.cdf
-             SUBSET   : 2 by 2 by 2 points (X-Y-Z)
-             T        : 1
-              1        5     
-              1        2
- ---- K:1 Z:   3
- 2   / 1:  6773.00  2773.00
- 5   / 2:  6743.00  2743.00
- ---- K:2 Z:   5
- 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
- 
-! reference output
-use/order=txy bn_strides
-list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G014)           @XACT
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:147 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:151 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
-             VARIABLE : VAR
-                        regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
-             FILENAME : bn_strides.cdf
-             SUBSET   : 2 by 2 by 2 points (X-Y-Z)
-             T        : 1
-              1        5     
-              1        2
- ---- K:1 Z:   3
- 2   / 1:  1132.00  5132.00
- 5   / 2:  1135.00  5135.00
- ---- K:2 Z:   5
- 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
- 
-use/order=-t-x-y bn_strides
-list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G014)           @XACT
- strip reversing MIDVAR on Y axis:     2     5 dset:   1
- rdstride MIDVAR   C:  8 dset:   1 I:    2    6  J:    5    8  K:    3    5  L:    7    7  M: -999 -999  N: -999 -999
- doing reversing MIDVAR on Y axis:     2     5 dset:   1
- -DELETE MIDVAR   M:147 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:147 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:151 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
-             VARIABLE : VAR
-                        regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
-             FILENAME : bn_strides.cdf
-             SUBSET   : 2 by 2 by 2 points (X-Y-Z)
-             T        : 1
-              1        5     
-              1        2
- ---- K:1 Z:   3
- 2   / 1:  6738.00  2738.00
- 5   / 2:  6735.00  2735.00
- ---- K:2 Z:   5
- 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
- 
-! DEFINE AXIS can get the axis too long (bug 673)
-GO bn_reset
-cancel mode verify
-GO err553_axis_too_long.jnl
-! From Ned Cokelet
-! First definition of axis had last grid cell completely
-! beyond requested end.
- 
-DEF AXIS/X=211:215:3 x_ax
-LIST X[GX=x_ax], XBOXLO[GX=x_ax], XBOXHI[GX=x_ax]
-             X: 209.5 to 215.5
- Column  1: X is X (axis X_AX)
- Column  2: XBOXLO is XBOXLO (axis X_AX)
- Column  3: XBOXHI is XBOXHI (axis X_AX)
-                 X   XBOXLO   XBOXHI
-211   / 1:  211.000  209.500  212.500
-214   / 2:  214.000  212.500  215.500
- 
-DEF AXIS/X=211:215:2.6 x_ax
-LIST X[GX=x_ax], XBOXLO[GX=x_ax], XBOXHI[GX=x_ax]
-             X: 209.7 to 217.5
- Column  1: X is X (axis X_AX)
- Column  2: XBOXLO is XBOXLO (axis X_AX)
- Column  3: XBOXHI is XBOXHI (axis X_AX)
-                 X   XBOXLO   XBOXHI
-211   / 1:  211.000  209.700  212.300
-213.6 / 2:  213.600  212.300  214.900
-216.2 / 3:  216.200  214.900  217.500
- 
-! Under linux, some shade and fill plots with /LEVELS=c had a
-! non-centered shade key
-GO bn_reset
-cancel mode verify
-GO err553_lev_c.jnl
- ! under linux only, this has a non-centered shade key
- 
-shade/lev=c {-1.1,1.1}*ysequence({1,1})
-ppl list shakey
-
-         DO KEY  ORIENT  LAB SIZE  LAB INC  LAB DIG  LAB LEN
-              1       1      0.00        0        3        9
-
-
-         DEFAULT KEY POSITIONING
-         X LO     X HI     Y LO     Y HI
-         9.40     9.69     1.40     7.40
- 
-fill/lev=c {-1.1,1.1}*ysequence({1,1})
-ppl list shakey
-
-         DO KEY  ORIENT  LAB SIZE  LAB INC  LAB DIG  LAB LEN
-              1       1      0.00        0        3        9
-
-
-         DEFAULT KEY POSITIONING
-         X LO     X HI     Y LO     Y HI
-         9.40     9.69     1.40     7.40
- 
- 
-! At lon = 0, we used to have an E; remove this.
-GO bn_reset
-cancel mode verify
-GO err553_lon_ax_0_label.jnl
-! Label longitude axes with the degree sign only
-! at x=0 (previously had an E).
- 
-! ACM 1/6/04
- 
-use coads_climatology
-shade/x=-20:20/y=-40:40/L=1 sst
- 
- 
-! Errors listing string and numeric data together
-GO bn_reset
-cancel mode verify
-GO err553_list_string_numeric.jnl
-! err553_list_string_numeric.jnl
-! 2/2004 ACM
-! LISTing string and numeric variables together.
- 
-def axis/t=1:3:1 tax
-let a = reshape ({1,2,3}, t[gt=tax])
-let b = reshape ({"a", "b", "c"}, t[gt=tax])
-list a, b
-             T: 0.5 to 3.5
- Column  1: A is RESHAPE ({1,2,3}, T[GT=TAX])
- Column  2: B is RESHAPE ({"a", "b", "c"}, T[GT=TAX])
-               A   B
-1   / 1:  1.00000 "a"
-2   / 2:  2.00000 "b"
-3   / 3:  3.00000 "c"
- 
-! Now in 2D
-let c = {"cat", "rat", "spat", "that", "pat"}
-list/i=2:4/l=1:3 b, c
-             T: 0.5 to 3.5
-             X: 1.5 to 4.5
- Column  1: B is RESHAPE ({"a", "b", "c"}, T[GT=TAX])
- Column  2: C is {"cat", "rat", "spat", "that", "pat"}
-          B     C
- ---- I:2 X:   2
-1   / 1: "a" "rat" 
-2   / 2: "b" "rat" 
-3   / 3: "c" "rat" 
- ---- I:3 X:   3
-1   / 1: "a" "spat"
-2   / 2: "b" "spat"
-3   / 3: "c" "spat"
- ---- I:4 X:   4
-1   / 1: "a" "that"
-2   / 2: "b" "that"
-3   / 3: "c" "that"
- 
-let v = y[y=1:5]
-list v
-             VARIABLE : Y[Y=1:5]
-             SUBSET   : 5 points (Y)
- 1   / 1:  1.00000
- 2   / 2:  2.00000
- 3   / 3:  3.00000
- 4   / 4:  4.00000
- 5   / 5:  5.00000
-list/i=3:4/l=1:2 b, c, v
-             T: 0.5 to 2.5
-             X: 2.5 to 4.5
-             Y: 0.5 to 5.5
- Column  1: B is RESHAPE ({"a", "b", "c"}, T[GT=TAX])
- Column  2: C is {"cat", "rat", "spat", "that", "pat"}
- Column  3: V is Y[Y=1:5]
-          B     C       V
- ---- J:1 Y:   1
- ---- I:3 X:   3
-1   / 1: "a" "spat"  1.00000
-2   / 2: "b" "spat"  1.00000
- ---- I:4 X:   4
-1   / 1: "a" "that"  1.00000
-2   / 2: "b" "that"  1.00000
- ---- J:2 Y:   2
- ---- I:3 X:   3
-1   / 1: "a" "spat"  2.00000
-2   / 2: "b" "spat"  2.00000
- ---- I:4 X:   4
-1   / 1: "a" "that"  2.00000
-2   / 2: "b" "that"  2.00000
- ---- J:3 Y:   3
- ---- I:3 X:   3
-1   / 1: "a" "spat"  3.00000
-2   / 2: "b" "spat"  3.00000
- ---- I:4 X:   4
-1   / 1: "a" "that"  3.00000
-2   / 2: "b" "that"  3.00000
- ---- J:4 Y:   4
- ---- I:3 X:   3
-1   / 1: "a" "spat"  4.00000
-2   / 2: "b" "spat"  4.00000
- ---- I:4 X:   4
-1   / 1: "a" "that"  4.00000
-2   / 2: "b" "that"  4.00000
- ---- J:5 Y:   5
- ---- I:3 X:   3
-1   / 1: "a" "spat"  5.00000
-2   / 2: "b" "spat"  5.00000
- ---- I:4 X:   4
-1   / 1: "a" "that"  5.00000
-2   / 2: "b" "that"  5.00000
- 
- 
-! Bug in setting axis to depth when reading from nc file
-GO bn_reset
-cancel mode verify
-GO err553_set_axis_depth.jnl
- ! NOAA/PMEL TMAP
- ! FERRET v5.53
- ! Solaris 5.6 - 12/16/03
- ! 16-Dec-03 10:58
- 
-use xz_nozattrib.nc
-set axis/depth zax
-say "axis should be reversed"
-axis should be reversed
-show axis zax
- name       axis              # pts   start                end
- ZAX       DEPTH (m)           26 r-  0                    1000
-   Axis span (to cell edges) = 1040
-q
- 
-! Set symbols showing levels settings when poly command is called
-GO bn_reset
-cancel mode verify
-GO err553_symbol_lev.jnl
-! err553_symbol_lev.jnl
-! 2/2004 ACM
-! In 5.51 and in 5.53 version, symbols LEV* are not created
-! for polygon plots
- 
-LET XTRIANGLE = YSEQUENCE({-1,0,1})
-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]
- 
-!*************************************
-! List symbols LEV_MIN, LEV_MAX, LEV_DEL
- 
-show symb lev*
-LEV_TEXT = "C"
-LEV_MIN = "1"
-LEV_MAX = "10.2"
-LEV_NUM = "46"
-LEV_DEL = "0.2"
- 
-can sym lev*
-! Now with /LEV=(min,max,del)
- 
-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/nolable/lev=(0,1100,40) xpts+xsqr, ypts+ysqr, x*x/10
-sh sym lev*
-LEV_TEXT = "(0,1100,40)"
-LEV_MIN = "0"
-LEV_MAX = "1120"
-LEV_NUM = "28"
-LEV_DEL = "40"
- 
-can sym lev*
-! Now with /LEV=nl
- 
-LET xpts = 180 + 50*COS(2*3.14*I[I=1:50]/60)
-LET ypts = 15  + 20*SIN(2*3.14*I[I=1:50]/60)
-LET sst = 25 - ypts + RANDN(ypts)
-plot/vs xpts,ypts
-GO polymark POLYGON/KEY/lev=20 xpts,ypts,sst,star
- 
-sh sym lev*
-LEV_TEXT = "20"
-LEV_MIN = "-12"
-LEV_MAX = "32"
-LEV_NUM = "22"
-LEV_DEL = "2"
-can sym lev*
- 
-! Fixes for modulo striding bugs
-GO bn_reset
-cancel mode verify
-GO err553_stride_modulo.jnl
-! err553_stride_modulo_neg.jnl
-! *acm* 3/31/2004
-!  Modulo axis with strides that have negative indices
-! did not work prior to v5.6 of Ferret.
- 
-! mylon.nc created as follows:
-! use etopo20
-! let var = sin(x[gx=var])
-! save/file=mylon.nc var
- 
-use mylon
-list var[i=-400:-40:20]
-             VARIABLE : SIN(X[GX=ROSE])
-                        regrid: 6.7 deg on X
-             FILENAME : mylon.nc
-             SUBSET   : 19 points (LONGITUDE)
- 113.5W  /  1:  0.976269
- 106.8W  /  2:  0.824340
- 100.2W  /  3:  0.552644
- 93.5W   /  4:  0.200690
- 86.8W   /  5: -0.180415
- 80.2W   /  6: -0.535314
- 73.5W   /  7: -0.812473
- 66.8W   /  8: -0.971589
- 60.2W   /  9: -0.989574
- 53.5W   / 10: -0.863802
- 46.8W   / 11: -0.612560
- 40.2W   / 12: -0.272341
- 33.5W   / 13:  0.107469
- 26.8W   / 14:  0.471639
- 20.2W   / 15:  0.767299
- 13.5W   / 16:  0.951514
- 6.8W    / 17:  0.997495
- 0.2W    / 18:  0.898583
- 6.5E    / 19:  0.669123
-list var[i=-400:-40:50]
-             VARIABLE : SIN(X[GX=ROSE])
-                        regrid: 17 deg on X
-             FILENAME : mylon.nc
-             SUBSET   : 8 points (LONGITUDE)
- 113.5W  / 1:  0.976269
- 96.8W   / 2: -0.383713
- 80.2W   / 3: -0.535314
- 63.5W   / 4:  0.998887
- 46.8W   / 5: -0.612560
- 30.2W   / 6: -0.294944
- 13.5W   / 7:  0.951514
- 3.2E    / 8: -0.798487
- 
-! This list, using modulo-ing to go out to a second replication
-! of the data, would have worked under previous versions but
-! with the last point missing, bug 841
- 
-list var[i=`2*1081-400`:`2*1082-40`:50]
- !-> list var[i=1762:2124:50]
-             VARIABLE : SIN(X[GX=ROSE])
-                        regrid: 17 deg on X
-             FILENAME : mylon.nc
-             SUBSET   : 8 points (LONGITUDE)
- 112.8W  / 1:  0.976269
- 96.2W   / 2: -0.383713
- 79.5W   / 3: -0.535314
- 62.8W   / 4:  0.998887
- 46.2W   / 5: -0.612560
- 29.5W   / 6: -0.294944
- 12.8W   / 7:  0.951514
- 3.8E    / 8: -0.798487
- 
-! Previously also, the moduloing could return results
-! that are one index off, also bug 841
- 
-list/nohead/y=0/prec=6 var[i=1100:1400:50]
- 26.5E   / 1:  0.859313
- 43.2E   / 2: -0.912341
- 59.8E   / 3:  0.189118
- 76.5E   / 4:  0.695015
- 93.2E   / 5: -0.987803
- 109.8E  / 6:  0.440136
- 126.5E  / 7:  0.482013
-can mem; list/nohead/y=0/prec=6 var[i=19:319:50,y=0]
- 26.2E  / 1:  0.859313
- 42.8E  / 2: -0.912341
- 59.5E  / 3:  0.189118
- 76.2E  / 4:  0.695015
- 92.8E  / 5: -0.987803
- 109.5E / 6:  0.440136
- 126.2E / 7:  0.482013
-can mem; list/y=0 var[i=69]
-             VARIABLE : SIN(X[GX=ROSE])
-             FILENAME : mylon.nc
-             LONGITUDE: 42.83E(42.83)
-         -0.912341
-can mem; list/y=0 var[i=68]
-             VARIABLE : SIN(X[GX=ROSE])
-             FILENAME : mylon.nc
-             LONGITUDE: 42.5E(42.5)
-         -0.996087
- 
-! Fixes bug creating format for listing a very long line
-GO bn_reset
-cancel mode verify
-GO err553_list_width.jnl
-! err553_list_width.jnl
-! *acm* 4/1/2004
-! Fix for bug 837; creating a format for very wide ascii listing
-! (this caused an outright crash)
- 
-! Note had /wid=9999, but this crashes Ferret under irix,
-! listing to std output and also to an ascii file.
-! Fortran limit for sequential files?  1024 works, 2047 did not.
-! The bug, seen under solaris and linux for pre-v5.6, appears
-! with /WIDTH=9999 but not with /WIDTH=1024.
- 
-set mode ignore
-def axis/x=1:5000:1 xax
-def axis/y=1:2:1 yax
-list/wid=1024/y=1:2 sin(x[gx=xax]) + y[gy=yax]
-             VARIABLE : SIN(X[GX=XAX]) + Y[GY=YAX]
-             SUBSET   : 5000 by 2 points (X-Y)
-      ... listing every  45th point
-              1       46       91       136      181      226      271      316      361      406      451      496      541      586      631      676      721      766      811      856      901      946      991     1036     1081     1126     1171     1216     1261     1306     1351     1396     1441     1486     1531     1576     1621     1666     1711     1756     1801     1846     1891     1936     1981     2026     2071     2116     2161     2206     2251     2296     2341     238 [...]
-              1       46       91      136      181      226      271      316      361      406      451      496      541      586      631      676      721      766      811      856      901      946      991     1036     1081     1126     1171     1216     1261     1306     1351     1396     1441     1486     1531     1576     1621     1666     1711     1756     1801     1846     1891     1936     1981     2026     2071     2116     2161     2206     2251     2296     2341     2386 [...]
- 1   / 1:  1.84147  1.90179  1.10599  0.20957  0.06355  0.80656  1.73321  1.96379  1.27939  0.32975  0.01642  0.63686  1.60205  1.99568  1.44406  0.47087  0.00001  0.47850  1.45208  1.99647  1.59486  0.62851  0.01484  0.33643  1.28799  1.96614  1.72708  0.79776  0.06044  0.21509  1.11490  1.90563  1.83659  0.97333  0.13539  0.11827  0.93823  1.81683  1.91997  1.14973  0.23734  0.04899  0.76349  1.70252  1.97461  1.32145  0.36312  0.00942  0.59613  1.56626  1.99881  1.48313  0.50879  0.00 [...]
- 2   / 2:  2.84147  2.90179  2.10599  1.20957  1.06355  1.80656  2.73321  2.96379  2.27939  1.32975  1.01642  1.63686  2.60205  2.99568  2.44406  1.47087  1.00001  1.47850  2.45208  2.99647  2.59486  1.62851  1.01484  1.33643  2.28799  2.96614  2.72708  1.79776  1.06044  1.21509  2.11490  2.90563  2.83659  1.97333  1.13539  1.11827  1.93823  2.81683  2.91997  2.14973  1.23734  1.04899  1.76349  2.70252  2.97461  2.32145  1.36312  1.00942  1.59613  2.56626  2.99881  2.48313  1.50879  1.00 [...]
- 
-can mode ignore
- 
- 
-! ******** V5.7 Additions below ***********
- 
-GO bn_reset
-cancel mode verify
-GO bn_bounds.jnl
- 
-! bn_bounds.jnl
-! testing CDF read and write of file with irregular axes and bounds
-! and DEFINE AXIS/BOUNDS
-! 5/2005 made changes so the bounds coordinates {1,2} are written to the
-!        file. If axis is Z, write attribute potitive="up". (bug 1196)
-! 2/10   new examples of bounds which overlap each other.
-! 4/13   with climatological axes defined internally the LIST outputs
-!        differ by a digit. This is just roundoff in the listing, the
-!        number 730.485 shown as 730.48 vs 730.49. Just increase precision
-!        for those list commands.
- 
- 
-! Output data on irregular record axis. No need for:
-! save/clobber/RIGID/HEADING=ENHANCED/LLIMITS=1:3/file=a.nc v
- 
-!use climatological_axes
-let v = t[gt=month_irreg]
-save/clobber/file=a.nc v
- 
-sp echo "bn_bounds.jnl --- 1 output of bounds on irreg axes." >> all_ncdump.out
-sp ncdump a.nc >> all_ncdump.out
-can data/all
-can var v
- 
-! Now use coads with long irregular time axis.
- 
-can data/all
-use coads_vwnd
-let v = missing(vwnd,28.5)
-save/clobber/file=a.nc/x=199/y=41/l=40:44 v
-sp echo "bn_bounds.jnl --- 2 long irreg axes." >> all_ncdump.out
-sp ncdump a.nc >> all_ncdump.out
- 
-! Append later time steps: we add a void point between non-contiguous bounds
- 
-save/append/file=a.nc/x=199/y=41/l=50:53 v
-sp echo "bn_bounds.jnl --- 3 Append later time steps, adding a void point" >> all_ncdump.out
-sp ncdump a.nc >> all_ncdump.out
-can data/all
-can var/all
- 
-! Depth axis; bounds {1,2} positive up
- 
-define axis/z/depth/units=meters zirr = {0,10,40,70}
-let t2 = z[gz=zirr]
-save/clobber/file=a.nc t2
-sp echo "bn_bounds.jnl --- 4 depth axis, bounds positive up" >> all_ncdump.out
-sp ncdump a.nc >> all_ncdump.out
-can data/all
-can var/all
- 
-! SAVE on irregular time axis, multi-dimensional save.
-! Void point is one time, all X and Y
- 
-!use climatological_axes
-use coads_climatology
-let v = missing(sst[gt=month_irreg], 28)
-save/clobber/x=181:185/y=1:7/L=1:5/file=a.nc v
-save/append/x=181:185/y=1:7/L=8:9/file=a.nc v
-sp echo "bn_bounds.jnl --- 5 SAVE on irregular time axis, multi-dimensional save." >> all_ncdump.out
-sp ncdump a.nc >> all_ncdump.out
-can var v
- 
-use a.nc
-list/y=3 v
-             VARIABLE : MISSING(SST[GT=MONTH_IRREG], 28)
-             FILENAME : a.nc
-             SUBSET   : 3 by 8 points (LONGITUDE-TIME)
-             LATITUDE : 3N
-                       179W     177W     175W    
-                         1        2        3
- 16-JAN 12      / 1:  27.9765  28.2538  28.2807
- 15-FEB 02      / 2:  28.3564  28.4117  27.9982
- 15-MAR 17      / 3:  27.9418  28.0035  27.7238
- 15-APR 05      / 4:  28.0000  28.0000  28.0000
- 15-MAY 17      / 5:  28.0000  28.0000  28.0000
- 30-JUN 17      / 6:     ....     ....     ....
- 15-AUG 17      / 7:  28.0000  28.0000  28.0000
- 15-SEP 05      / 8:  28.0000  28.0000  28.0000
-list/x=177w v
-             VARIABLE : MISSING(SST[GT=MONTH_IRREG], 28)
-             FILENAME : a.nc
-             SUBSET   : 4 by 8 points (LATITUDE-TIME)
-             LONGITUDE: 177W
-                        1N       3N       5N       7N     
-                         1        2        3        4
- 16-JAN 12      / 1:  28.4146  28.2538  28.0640  28.1024
- 15-FEB 02      / 2:  28.4018  28.4117  28.1639  27.7498
- 15-MAR 17      / 3:  27.5907  28.0035  27.8730  27.8183
- 15-APR 05      / 4:  28.0000  28.0000  28.0000  28.0000
- 15-MAY 17      / 5:  28.0000  28.0000  28.0000  28.0000
- 30-JUN 17      / 6:     ....     ....     ....     ....
- 15-AUG 17      / 7:  28.0000  28.0000  28.0000  28.0000
- 15-SEP 05      / 8:  28.0000  28.0000  28.0000  28.0000
-can data/all
-can var/all
- 
-! Define an axis using edges
-def axis/t/edges tax={0.5,1.5,2.5,3.5,6.5,7.5,8.5,9.5}
-list t[gt=tax], tboxlo[gt=tax], tboxhi[gt=tax], tbox[gt=tax]
-             T: 0.5 to 9.5
- Column  1: T is T (axis TAX)
- Column  2: TBOXLO is TBOXLO (axis TAX)
- Column  3: TBOXHI is TBOXHI (axis TAX)
- Column  4: TBOX is TBOX (axis TAX)
-               T   TBOXLO   TBOXHI    TBOX
-1   / 1:  1.00000  0.50000  1.50000  1.00000
-2   / 2:  2.00000  1.50000  2.50000  1.00000
-3   / 3:  3.00000  2.50000  3.50000  1.00000
-5   / 4:  5.00000  3.50000  6.50000  3.00000
-7   / 5:  7.00000  6.50000  7.50000  1.00000
-8   / 6:  8.00000  7.50000  8.50000  1.00000
-9   / 7:  9.00000  8.50000  9.50000  1.00000
- 
-! Define an axis using bounds.  Note the coordinates need not be
-! centered in the axis cells.
-def axis/t/bounds tax={1.2, 2, 3.2, 5, 7, 8.4, 9}, {0.5,1.5, 1.5,2.5, 2.5,3.5, 3.5,6.5, 6.5,7.5, 7.5,8.5, 8.5,9.5}
-list t[gt=tax], tboxlo[gt=tax], tboxhi[gt=tax], tbox[gt=tax]
-             T: 0.5 to 9.5
- Column  1: T is T (axis TAX)
- Column  2: TBOXLO is TBOXLO (axis TAX)
- Column  3: TBOXHI is TBOXHI (axis TAX)
- Column  4: TBOX is TBOX (axis TAX)
-               T   TBOXLO   TBOXHI    TBOX
-1.2 / 1:  1.20000  0.50000  1.50000  1.00000
-2   / 2:  2.00000  1.50000  2.50000  1.00000
-3.2 / 3:  3.20000  2.50000  3.50000  1.00000
-5   / 4:  5.00000  3.50000  6.50000  3.00000
-7   / 5:  7.00000  6.50000  7.50000  1.00000
-8.4 / 6:  8.40000  7.50000  8.50000  1.00000
-9   / 7:  9.00000  8.50000  9.50000  1.00000
- 
-! Define an axis using bounds, with discontinuity between bounds,
-! detected and changed to contiguous bounds, using lower bound for all cells.
-def axis/t/bounds tax={1,2,3,5,7,8,9}, {0.5,1.5,1.5,2.5,2.5,3.5,4.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5}
-list t[gt=tax], tboxlo[gt=tax], tboxhi[gt=tax], tbox[gt=tax]
-             T: 0.5 to 9.5
- Column  1: T is T (axis TAX)
- Column  2: TBOXLO is TBOXLO (axis TAX)
- Column  3: TBOXHI is TBOXHI (axis TAX)
- Column  4: TBOX is TBOX (axis TAX)
-               T   TBOXLO   TBOXHI    TBOX
-1   / 1:  1.00000  0.50000  1.50000  1.00000
-2   / 2:  2.00000  1.50000  2.50000  1.00000
-3   / 3:  3.00000  2.50000  3.50000  1.00000
-5   / 4:  5.00000  3.50000  6.50000  3.00000
-7   / 5:  7.00000  6.50000  7.50000  1.00000
-8   / 6:  8.00000  7.50000  8.50000  1.00000
-9   / 7:  9.00000  8.50000  9.50000  1.00000
- 
-! intentional errors
-! coordinate point not inside bounds
-set mode ignore
-def axis/t/bounds tax={1.2,2,3.2,5,7,8.8,9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5}
- 
-! First coordinate lower than first lower bound
-def axis/t/bounds tax={0.1,2,3.2,5,7,8,9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5}
- 
-! Last coordinate higher than last upper bound
-def axis/t/bounds tax={0,2,3.2,5,7,8,9.9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5}
- 
-! Too few or too many bounds values
-def axis/t/bounds tax={0,2,3.2,5,7,8,9.9}, {0.5,1.5,2.5,3.5,6.5,7.5,8.5,9.5}
-def axis/t/bounds tax={1.2,2,3.2,5,7,8.4,9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5,10.5}
- 
- 
-! This set of bounds has overlapping bounds. Use midpoints instead.
-def axis/t/bounds tax=\
- {12, 12.2, 36, 36.2, 60, 60.2, 84, 84.2, 108} ,\
- {0,24, 0,24, 24,48, 24,48, 48,72, 48,72, 72,96, 72,96, 96,120}
- 
-cancel axis tax
-can mode ignore
- 
-! SAVE on regular time axis with bounds and edges attributes
- 
-use coads_climatology
-list/x=181/y=1/form=(f6.2, 3f10.4) sst, t[gt=sst], tboxlo[gt=sst], tboxhi[gt=sst]
-             DATA SET: ./coads_climatology.cdf
-             TIME: JAN to APR
-             LONGITUDE: 179W
-             LATITUDE: 1N
- Column  1: SST is SEA SURFACE TEMPERATURE (Deg C)
- Column  2: T is T (axis TIME4)
- Column  3: TBOXLO is TBOXLO (axis TIME4)
- Column  4: TBOXHI is TBOXHI (axis TIME4)
- 28.28  366.0000    0.7575  731.2425
- 28.42 1096.4850  731.2425 1461.7275
- 28.05 1826.9700 1461.7275 2192.2125
- 
-save/clobber/bounds/file=a.nc/x=181/y=1 sst
-sp echo "bn_bounds.jnl --- 6 SAVE on regular time axis with bounds attribute" >> all_ncdump.out
-sp ncdump a.nc >> all_ncdump.out
- 
-save/clobber/edges/file=a.nc/x=181/y=1 sst
-sp echo "bn_bounds.jnl --- 7 SAVE on regular time axis with edges attributes" >> all_ncdump.out
-sp ncdump a.nc >> all_ncdump.out
- 
-! Intentional errors; combinations of qualifiers on SAVE
-set mode ignore
- 
-use coads_climatology
-save/clobber/rigid/heading=enhanced/llimits=1:3/bounds/file=a.nc/x=181/y=1 sst
-save/clobber/edges/bounds/file=a.nc/x=181/y=1 sst
-can mode ignore
- 
-can data/all
- 
-! outputting bounds on all irregular axes
-! test of DEPTH axis
- 
-def axis/x xax = {1,2,5,6,7,8}
-def axis/z/depth/bounds zax = {0,20,50,75,120}, {0, 10, 10, 30, 30, 60, 60, 90, 90, 150}
-def axis/t tax = {1,2,9,10,11}
-let v = x[gx=xax] +z[gz=zax] + t[gt=tax]
-save/clobber/file=irrxzt.nc v
-sp echo "bn_bounds.jnl --- 8 outputting bounds on all irregular axes, depth axis" >> all_ncdump.out
-sp ncdump irrxzt.nc >> all_ncdump.out
- 
-can data/all
-can var/all
-use irrxzt
-list/x=5/t=5 v, z[gz=v] , zboxlo[gz=v], zboxhi[gz=v]
-             DATA SET: ./irrxzt.nc
-             Z: 0 to 150
-             X: 5
-             T: 2
- Column  1: V is X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]
- Column  2: Z is Z (axis ZAX)
- Column  3: ZBOXLO is ZBOXLO (axis ZAX)
- Column  4: ZBOXHI is ZBOXHI (axis ZAX)
-                 V      Z     ZBOXLO   ZBOXHI
-0     / 1:    7.000    0.000   0.0000   10.000
-20    / 2:   27.000   20.000  10.0000   30.000
-50    / 3:   57.000   50.000  30.0000   60.000
-75    / 4:   82.000   75.000  60.0000   90.000
-120   / 5:  127.000  120.000  90.0000  150.000
-can data/all
- 
-! RIGID/HEAD=ENHANCED works the same; issues a note
- 
-!use climatological_axes
-use coads_climatology
-let v = sst[gt=month_irreg]
-save/clobber/rigid/head=enh/llimits=1:3/x=181:191/y=1:7/l=1:3/file=a.nc v
- 
-! Saving data with regular axes
-! First save without the bounds attribute, result is a file with
-! irregular time axis, possibly unintended large boxes.
- 
-! 4/13 Increase precision for those list commands, see comment above
- 
-!use climatological_axes
-use coads_climatology
-let v = missing(sst[gt=month_reg], 28)
- 
-save/clobber/file=a.nc/x=181/y=1/L=1:4 v
-save/append/file=a.nc/x=181/y=1/L=8:10 v
-can data/all
-can var v
-use a.nc
-list/prec=7 v, t[gt=v], tbox[gt=v]
-             DATA SET: ./a.nc
-             TIME: JAN to OCT
-             LONGITUDE: 179W
-             LATITUDE: 1N
- Column  1: V is MISSING(SST[GT=MONTH_REG], 28)
- Column  2: T is T (axis MONTH_REG1)
- Column  3: TBOX is TBOX (axis MONTH_REG1)
-                        V      T        TBOX
-16-JAN      / 1:  28.28389   366.000   730.485
-15-FEB      / 2:  28.41851  1096.485   730.485
-17-MAR      / 3:  28.04680  1826.970   730.485
-16-APR      / 4:  28.00000  2557.455  1826.213
-16-AUG      / 5:  28.00000  5479.395  1826.213
-15-SEP      / 6:  28.00000  6209.880   730.485
-16-OCT      / 7:  28.00000  6940.365   730.485
-can data a
- 
-! Now save with /bounds
- 
-!use climatological_axes
-use coads_climatology
-let v = missing(sst[gt=month_reg], 28)
-save/clobber/BOUNDS/file=a.nc/x=181/y=1/L=1:4 v
-save/append/file=a.nc/x=181/y=1/L=8:10 v
-can data/all
-can var v
-use a.nc
- 
-list/prec=7 v, t[gt=v], tbox[gt=v]
-             DATA SET: ./a.nc
-             TIME: JAN to OCT
-             LONGITUDE: 179W
-             LATITUDE: 1N
- Column  1: V is MISSING(SST[GT=MONTH_REG], 28)
- Column  2: T is T (axis MONTH_REG1)
- Column  3: TBOX is TBOX (axis MONTH_REG1)
-                        V      T        TBOX
-16-JAN      / 1:  28.28389   366.000   730.485
-15-FEB      / 2:  28.41851  1096.485   730.485
-17-MAR      / 3:  28.04680  1826.970   730.485
-16-APR      / 4:  28.00000  2557.455   730.485
-16-JUN      / 5:      ....  4018.425  2191.455
-16-AUG      / 6:  28.00000  5479.395   730.485
-15-SEP      / 7:  28.00000  6209.880   730.485
-16-OCT      / 8:  28.00000  6940.365   730.485
-can data/all
- 
-! gappy_bounds.nc has discontiguous bounds
-! We use the LOWER bound of all axis cells.
- 
-use gappy_bounds.nc
-list/prec=7 a, t[gt=a], tboxlo[gt=a], tboxhi[gt=a]
-             DATA SET: ./gappy_bounds.nc
-             TIME: JAN-1990 to JAN-1990
- Column  1: A is SST[X=150:180 at AVE,Y=-10:0 at AVE]
- Column  2: T is T (axis TGAP)
- Column  3: TBOXLO is TBOXLO (axis TGAP)
- Column  4: TBOXHI is TBOXHI (axis TGAP)
-                           A      T       TBOXLO    TBOXHI
-02-JAN-1990 00 / 1:  29.69704  1.000000  0.500000  1.500000
-03-JAN-1990 00 / 2:  29.37104  2.000000  1.500000  2.500000
-04-JAN-1990 00 / 3:  29.11568  3.000000  2.500000  3.500000
-08-JAN-1990 00 / 4:  29.29205  7.000000  3.500000  7.500000
-09-JAN-1990 00 / 5:  28.89826  8.000000  7.500000  8.500000
-10-JAN-1990 00 / 6:  28.93826  9.000000  8.500000  9.500000
- 
-cancel dat/all
- 
-! bounds_noenclose has bounds that dont enclose the axis coordinate
-! points.  Use axis midpoints instead.
- 
-use bounds_noenclose
-sh axis/t tax
- name       axis              # pts   start                end
- TAX       T                    5 i   1                    11
-   Axis span (to cell edges) = 11
- 
-       L     T                   TBOX      TBOXLO
-       1>  1                     1          0.5
-       2>  2                     4          1.5
-       3>  9                     4          5.5
-       4>  10                    1          9.5
-       5>  11                    1          10.5
- 
-! bounds_overlapping has bounds overlap.  Use axis midpoints instead.
- 
-use bounds_overlapping
-sh axis/t tax
- name       axis              # pts   start                end
- TAX       T                    5 i   1                    11
-   Axis span (to cell edges) = 11
- 
-       L     T                   TBOX      TBOXLO
-       1>  1                     1          0.5
-       2>  2                     4          1.5
-       3>  9                     4          5.5
-       4>  10                    1          9.5
-       5>  11                    1          10.5
- 
-GO bn_reset
-cancel mode verify
-GO bn_all_leap.jnl
-! bn_all_leap.jnl
-! ACM 6/2004
-! Added ALL_LEAP, or 366_DAY calendar (which is in the CF conventions).
-! leap year every year
- 
-define axis/t="1-jan-1988":"1-jan-1990":1/units=days/calendar=366_DAY tdays
-define grid/t=tdays tgrid
-let my_data = sin(l[g=tgrid])
-list my_data[t="27-feb-1988":"1-mar-1988"]
-             VARIABLE : SIN(L[G=TGRID])
-             SUBSET   : 4 points (TIME)
-             CALENDAR : ALL_LEAP
- 27-FEB-1988 00 / 58:  0.992873
- 28-FEB-1988 00 / 59:  0.636738
- 29-FEB-1988 00 / 60: -0.304811
- 01-MAR-1988 00 / 61: -0.966118
-list my_data[t="27-feb-1989":"1-mar-1989"]
-             VARIABLE : SIN(L[G=TGRID])
-             SUBSET   : 4 points (TIME)
-             CALENDAR : ALL_LEAP
- 27-FEB-1989 00 / 424:  0.114755
- 28-FEB-1989 00 / 425: -0.773910
- 29-FEB-1989 00 / 426: -0.951045
- 01-MAR-1989 00 / 427: -0.253794
- 
-define axis/t="1-jan-1988":"1-jan-1990":1/units=days/calendar=all_leap tdays
- 
-list my_data[t="27-feb-1988":"1-mar-1988"]
-             VARIABLE : SIN(L[G=TGRID])
-             SUBSET   : 4 points (TIME)
-             CALENDAR : ALL_LEAP
- 27-FEB-1988 00 / 58:  0.992873
- 28-FEB-1988 00 / 59:  0.636738
- 29-FEB-1988 00 / 60: -0.304811
- 01-MAR-1988 00 / 61: -0.966118
-list my_data[t="27-feb-1989":"1-mar-1989"]
-             VARIABLE : SIN(L[G=TGRID])
-             SUBSET   : 4 points (TIME)
-             CALENDAR : ALL_LEAP
- 27-FEB-1989 00 / 424:  0.114755
- 28-FEB-1989 00 / 425: -0.773910
- 29-FEB-1989 00 / 426: -0.951045
- 01-MAR-1989 00 / 427: -0.253794
- 
-! Check the error message
-set mode ignore_error
-def axis/t/cal=nogood/t=1-jan-2000:1-jan-2010:1/units=months tax
- 
-can mode ignore
- 
-GO bn_reset
-cancel mode verify
-GO bn_reset_attributes.jnl
-! bn_reset_attributes.jnl
-! acm 6/14/2004
-! tests of SET AXIS/CALENDAR  /T0  /UNITS  also CANCEL AXIS/DEPTH
-! also RETURN=calendar
- 
-use gt4d011.cdf
-set region/x=130w/y=1/k=1
- 
-sh axis `temp,return=taxis`
- !-> sh axis TIME11
- name       axis              # pts   start                end
- TIME11    TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00
-T0 = 14-JAN-1980 14:00:00
-   Axis span (to cell edges) = 3650
-list/l=20:25 t[gt=temp]
-             VARIABLE : T
-                        axis TIME11
-             FILENAME : gt4d011.cdf
-             SUBSET   : 6 points (TIME)
- 11-DEC-1982 02 / 20:  25476.0
- 17-DEC-1982 04 / 21:  25622.0
- 23-DEC-1982 06 / 22:  25768.0
- 29-DEC-1982 08 / 23:  25914.0
- 04-JAN-1983 10 / 24:  26060.0
- 10-JAN-1983 12 / 25:  26206.0
- 
-! New RETURN=calendar
-def sym calname = `temp,return=calendar`
- !-> def sym calname = GREGORIAN
- 
-! SET AXIS/CALENDAR=  julian, 360-day, 365_day=julian, 366_day=all_leap, standard=gregorian
-set axis/calendar=julian `temp,return=taxis`
- !-> set axis/calendar=julian TIME11
-list/l=20:25 temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 6 points (TIME)
-             CALENDAR : JULIAN
-             LONGITUDE: 130.5W
-             LATITUDE : 0.833N
-             DEPTH (m): 5
-                        130.5W  
-                        100
- 11-DEC-1982 02 / 20:  32.6698
- 17-DEC-1982 04 / 21:  32.7830
- 23-DEC-1982 06 / 22:  32.7033
- 29-DEC-1982 08 / 23:  32.4479
- 04-JAN-1983 10 / 24:  32.2491
- 10-JAN-1983 12 / 25:  32.1819
-say `temp,return=calendar`
- !-> MESSAGE/CONTINUE JULIAN
-JULIAN
- 
-set axis/calendar=360_day `temp,return=taxis`
- !-> set axis/calendar=360_day TIME11
-list/l=20:25 temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 6 points (TIME)
-             CALENDAR : 360_DAY
-             LONGITUDE: 130.5W
-             LATITUDE : 0.833N
-             DEPTH (m): 5
-                        130.5W  
-                        100
- 26-DEC-1982 02 / 20:  32.6698
- 02-JAN-1983 04 / 21:  32.7830
- 08-JAN-1983 06 / 22:  32.7033
- 14-JAN-1983 08 / 23:  32.4479
- 20-JAN-1983 10 / 24:  32.2491
- 26-JAN-1983 12 / 25:  32.1819
-say `temp,return=calendar`
- !-> MESSAGE/CONTINUE 360_DAY
-360_DAY
- 
-set axis/calendar=365_day `temp,return=taxis`
- !-> set axis/calendar=365_day TIME11
-say `temp,return=calendar`
- !-> MESSAGE/CONTINUE NOLEAP
-NOLEAP
- 
-set axis/calendar=nol `temp,return=taxis`
- !-> set axis/calendar=nol TIME11
-list/l=20:25 temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 6 points (TIME)
-             CALENDAR : NOLEAP
-             LONGITUDE: 130.5W
-             LATITUDE : 0.833N
-             DEPTH (m): 5
-                        130.5W  
-                        100
- 12-DEC-1982 02 / 20:  32.6698
- 18-DEC-1982 04 / 21:  32.7830
- 24-DEC-1982 06 / 22:  32.7033
- 30-DEC-1982 08 / 23:  32.4479
- 05-JAN-1983 10 / 24:  32.2491
- 11-JAN-1983 12 / 25:  32.1819
-say `temp,return=calendar`
- !-> MESSAGE/CONTINUE NOLEAP
-NOLEAP
- 
-set axis/calendar=366 `temp,return=taxis`
- !-> set axis/calendar=366 TIME11
-say `temp,return=calendar`
- !-> MESSAGE/CONTINUE ALL_LEAP
-ALL_LEAP
- 
-set axis/calendar=all_leap `temp,return=taxis`
- !-> set axis/calendar=all_leap TIME11
-say `temp,return=calendar`
- !-> MESSAGE/CONTINUE ALL_LEAP
-ALL_LEAP
-list/l=20:25 temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 6 points (TIME)
-             CALENDAR : ALL_LEAP
-             LONGITUDE: 130.5W
-             LATITUDE : 0.833N
-             DEPTH (m): 5
-                        130.5W  
-                        100
- 09-DEC-1982 02 / 20:  32.6698
- 15-DEC-1982 04 / 21:  32.7830
- 21-DEC-1982 06 / 22:  32.7033
- 27-DEC-1982 08 / 23:  32.4479
- 02-JAN-1983 10 / 24:  32.2491
- 08-JAN-1983 12 / 25:  32.1819
- 
-! Now resetting T0
-CAN DATA/ALL
-use gt4d011.cdf
-set region/x=130w/y=1/k=1
- 
-set axis/calendar="standard" `temp,return=taxis`
- !-> set axis/calendar="standard" TIME11
-list/l=20:25 temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 6 points (TIME)
-             LONGITUDE: 130.5W
-             LATITUDE : 0.833N
-             DEPTH (m): 5
-                        130.5W  
-                        100
- 11-DEC-1982 02 / 20:  32.6698
- 17-DEC-1982 04 / 21:  32.7830
- 23-DEC-1982 06 / 22:  32.7033
- 29-DEC-1982 08 / 23:  32.4479
- 04-JAN-1983 10 / 24:  32.2491
- 10-JAN-1983 12 / 25:  32.1819
- 
-! One day earlier
-set axis/t0="13-jan-1980:14:00" `temp,return=taxis`
- !-> set axis/t0="13-jan-1980:14:00" TIME11
-say `temp,return=calendar`
- !-> MESSAGE/CONTINUE GREGORIAN
-GREGORIAN
-list/l=20:25 t[gt=temp]
-             VARIABLE : T
-                        axis TIME11
-             FILENAME : gt4d011.cdf
-             SUBSET   : 6 points (TIME)
- 10-DEC-1982 02 / 20:  25476.0
- 16-DEC-1982 04 / 21:  25622.0
- 22-DEC-1982 06 / 22:  25768.0
- 28-DEC-1982 08 / 23:  25914.0
- 03-JAN-1983 10 / 24:  26060.0
- 09-JAN-1983 12 / 25:  26206.0
- 
- 
-! Now resetting UNITS
-CAN DATA/ALL
-CAN REGION
-use gt4d011.cdf
- 
-set axis/units=feet `temp,return=zaxis`
- !-> set axis/units=feet PSZT
-show axis `temp,return=zaxis`
- !-> show axis PSZT
- name       axis              # pts   start                end
- PSZT      Z (FEET)            27 i-  5                    3824
-   Axis span (to cell edges) = 4149
- 
-! unrecognized units
-set axis/units="something" `temp,return=xaxis`
- !-> set axis/units="something" PSXT1
-show axis `temp,return=xaxis`
- !-> show axis PSXT1
- name       axis              # pts   start                end
- PSXT1     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
-show axis `temp,return=xaxis`
- !-> show axis PSXT1
- name       axis              # pts   start                end
- PSXT1     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
-show axis `temp,return=xaxis`
- !-> show axis PSXT1
- name       axis              # pts   start                end
- PSXT1     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
-show axis `temp,return=xaxis`
- !-> show axis PSXT1
- name       axis              # pts   start                end
- PSXT1     LONGITUDE          160mr   130.5E               70.5W
-   Axis span (to cell edges) = 160 (modulo length = 360)
- 
-set axis/units=zorro  `temp,r=zaxis`
- !-> set axis/units=zorro  PSZT
-list/x=130w/y=1/k=1/L=1:5 temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 points (TIME)
-             LONGITUDE: 130.5W
-             LATITUDE : 0.833N
-             Z (ZORRO): 5
-                       130.5W  
-                       100
- 17-AUG-1982 12 / 1:  25.9777
- 23-AUG-1982 14 / 2:  26.2025
- 29-AUG-1982 16 / 3:  26.4463
- 04-SEP-1982 18 / 4:  26.6606
- 10-SEP-1982 20 / 5:  26.7818
- 
-! not a geographic axis
-set axis/units=meters `temp,return=yaxis`
- !-> set axis/units=meters PSYT
-list/x=222/k=1/l=1/y=-0.5:0.5 temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 4 points (Y (METERS))
-             LONGITUDE: 138.5W
-             Z (ZORRO): 5
-             TIME     : AUG-1982
-               138.5W  
-                92
- -0.5  / 44:  26.3422
- -0.17 / 45:  26.2807
- 0.17  / 46:  26.2649
- 0.5   / 47:  26.2916
- 
-set axis/units=deg `temp,return=yaxis`
- !-> set axis/units=deg PSYT
-show axis `temp,return=yaxis`
- !-> show axis PSYT
- name       axis              # pts   start                end
- PSYT      LATITUDE           100 i   28.836S              48.568N
-   Axis span (to cell edges) = 80.00004
-list/x=222/k=1/l=1/y=-0.5:0.5 temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 4 points (LATITUDE)
-             LONGITUDE: 138.5W
-             Z (ZORRO): 5
-             TIME     : AUG-1982
-               138.5W  
-                92
- 0.5N  / 47:  26.2916
- 0.17N / 46:  26.2649
- 0.17S / 45:  26.2807
- 0.5S  / 44:  26.3422
- 
-! inappropriate units for axis direction
-set axis/units=meters `temp,return=taxis`
- !-> set axis/units=meters TIME11
-list/x=130w/y=1/k=1/l=1:5 temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 points (T (METERS))
-             LONGITUDE: 130.5W
-             LATITUDE : 0.833N
-             Z (ZORRO): 5
-                130.5W  
-                100
- 22702   / 1:  25.9777
- 22848   / 2:  26.2025
- 22994   / 3:  26.4463
- 23140   / 4:  26.6606
- 23286   / 5:  26.7818
- 
-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
- normal    E
- normal    F
- 
-! assign time units to an abstract axis
-def axis/t=1:5:1 tax
- 
-set axis/units=days/t0=1-jan-1990 tax
-sh axis tax
- name       axis              # pts   start                end
- TAX       TIME                 5 r   02-JAN-1990 00:00    06-JAN-1990 00:00
-T0 = 1-JAN-1990
-   Axis span (to cell edges) = 5
-list t[gt=tax]
-             VARIABLE : T
-                        axis TAX
-             SUBSET   : 5 points (TIME)
- 02-JAN-1990 00 / 1:  1.00000
- 03-JAN-1990 00 / 2:  2.00000
- 04-JAN-1990 00 / 3:  3.00000
- 05-JAN-1990 00 / 4:  4.00000
- 06-JAN-1990 00 / 5:  5.00000
- 
-! assign longitude units to an abstract axis
-! by default this becomes modulo
-def axis/x=0:120:20 xax
- 
-set axis/units=lon xax
-sh axis xax
- name       axis              # pts   start                end
- XAX       LONGITUDE            7mr   0E                   120E
-   Axis span (to cell edges) = 140 (modulo length = 360)
-list x[gx=xax]
-             VARIABLE : X
-                        axis XAX
-             SUBSET   : 7 points (LONGITUDE)
- 0E     / 1:    0.000
- 20E    / 2:   20.000
- 40E    / 3:   40.000
- 60E    / 4:   60.000
- 80E    / 5:   80.000
- 100E   / 6:  100.000
- 120E   / 7:  120.000
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn570_bug_fixes.jnl
-! bn554_bug_fixes.jnl
-! test various fixes that went into version 5.70
-! 11/03 *acm*
-!
- 
-! Test use of automatic levels in SHADE
-GO bn_reset
-cancel mode verify
-GO err560_shade_levels.jnl
-! err560_shade_levels.jnl  *acm* 4/28/04
-! Missing levels on SHADE auto-level
- 
-! Fix for bug 801 went too far: shade levels need adjusting
-! (and were wrong always for negative levels)
- 
-! Here is a simpler example (acm)
-set view upper; shade/i=1:10/j=1:10 i*j*0.0034   !levels only go up to 0.003
-set view lower; shade/i=1:10/j=1:10 -1*i*j*0.0034
- 
-! Test use of reading irregular-time mc datasets
-GO bn_reset
-cancel mode verify
-GO err560_mc_irreg_t.jnl
-! err560_mc_irreg_t.jnl
-! 4/2004  ACM
- 
-! Under Solaris, crashes Ferret;
-! Under linux get a NC error.
-! Its  a precision bug in mc_read.F, determining what
-! stepfile to read from, when the point requested is
-! just at or between the range of the stepfiles.
- 
-set data coads_clim_irreg.des
-list/x=180/y=0/t=1-apr-1900 sst
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             DATA SET : COAD
-             FILENAME : coads_clim_irreg.des
-             LONGITUDE: 179E
-             LATITUDE : 1S
-             TIME     : FEB-1900
-          28.3646
- 
-can mem/all
-can data/all
-set data coads_clim_irreg.des
-list/x=180/y=0/t=2000 sst
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             DATA SET : COAD
-             FILENAME : coads_clim_irreg.des
-             LONGITUDE: 179E
-             LATITUDE : 1S
-             TIME     : FEB-1900
-          28.3646
- 
- 
-! Crashed on SHADE of variable with NOLEAP axis, and subregion.
-GO bn_reset
-cancel mode verify
-GO err560_shade_noleap.jnl
-! err560_shade_noleap.jnl
-! 4/30/04 ACM
- 
-! Crashes on SHADE of variable with NOLEAP axis, and subregion.
- 
-def axis/t/t0=1-jan-2000/units=months/calendar=noleap tax = {1,3,4,5,6,8,9,12}
-def axis/depth/z=0:1000:15 zax
-let a = z[gz=zax] + t[gt=tax]
- 
-shade/t=4-jan-2000:10-nov-2000 a
- 
-! err560_regriding_gaps.jnl
-! If the index has a negative range including the value
-! -111, was treated as missing rather than a valid index.
-GO bn_reset
-cancel mode verify
-GO err560_regridding_gaps.jnl
-! err560_regrid
-!
-! If the index has a negative range including the value
-! -111, was treated as missing rather than a valid index.
- 
-def axis/modulo/x=1:360:1/units=lon xax
-def axis/modulo/x=-180:179:1/units=lon xaxshift
- 
-let a = x[gx=xax]
-let b = x[gx=xaxshift]
-save/clobber/file=xlong.nc a
-save/clobber/file=xlongshift.nc b
- 
-can data/all
-can var/all
-use xlongshift
-use xlong
- 
-list/x=115w:108w a[gx=b[d=1]]
-             VARIABLE : X[GX=XAX]
-                        regrid: B[D=xlongshift]
-             FILENAME : xlong.nc
-             SUBSET   : 8 points (LONGITUDE)
- 115W   / 426:  245.000
- 114W   / 427:  246.000
- 113W   / 428:  247.000
- 112W   / 429:  248.000
- 111W   / 430:  249.000
- 110W   / 431:  250.000
- 109W   / 432:  251.000
- 108W   / 433:  252.000
- 
-list/x=115w:108w a[gx=b[d=1]@ave]
-             VARIABLE : X[GX=XAX]
-                        regrid: B[D=xlongshift] on X at AVE
-             FILENAME : xlong.nc
-             SUBSET   : 8 points (LONGITUDE)
- 115W   / 426:  245.000
- 114W   / 427:  246.000
- 113W   / 428:  247.000
- 112W   / 429:  248.000
- 111W   / 430:  249.000
- 110W   / 431:  250.000
- 109W   / 432:  251.000
- 108W   / 433:  252.000
- 
-list/x=115w:108w a[gx=b[d=1]@ave]
-             VARIABLE : X[GX=XAX]
-                        regrid: B[D=xlongshift] on X at AVE
-             FILENAME : xlong.nc
-             SUBSET   : 8 points (LONGITUDE)
- 115W   / 426:  245.000
- 114W   / 427:  246.000
- 113W   / 428:  247.000
- 112W   / 429:  248.000
- 111W   / 430:  249.000
- 110W   / 431:  250.000
- 109W   / 432:  251.000
- 108W   / 433:  252.000
- 
-list/x=115w:108w a[gx=b[d=1]@sum]
-             VARIABLE : X[GX=XAX]
-                        regrid: B[D=xlongshift] on X at SUM
-             FILENAME : xlong.nc
-             SUBSET   : 8 points (LONGITUDE)
- 115W   / 426:  245.000
- 114W   / 427:  246.000
- 113W   / 428:  247.000
- 112W   / 429:  248.000
- 111W   / 430:  249.000
- 110W   / 431:  250.000
- 109W   / 432:  251.000
- 108W   / 433:  252.000
- 
-list/x=115w:108w a[gx=b[d=1]@ngd]
-             VARIABLE : X[GX=XAX] (# of points)
-                        regrid: B[D=xlongshift] on X at NGD
-             FILENAME : xlong.nc
-             SUBSET   : 8 points (LONGITUDE)
- 115W   / 426:  1.00000
- 114W   / 427:  1.00000
- 113W   / 428:  1.00000
- 112W   / 429:  1.00000
- 111W   / 430:  1.00000
- 110W   / 431:  1.00000
- 109W   / 432:  1.00000
- 108W   / 433:  1.00000
- 
-list/x=115w:108w a[gx=b[d=1]@nrst]
-             VARIABLE : X[GX=XAX]
-                        regrid: B[D=xlongshift] on X at NRST
-             FILENAME : xlong.nc
-             SUBSET   : 8 points (LONGITUDE)
- 115W   / 426:  245.000
- 114W   / 427:  246.000
- 113W   / 428:  247.000
- 112W   / 429:  248.000
- 111W   / 430:  249.000
- 110W   / 431:  250.000
- 109W   / 432:  251.000
- 108W   / 433:  252.000
- 
-list/x=115w:108w a[gx=b[d=1]@xact]
-             VARIABLE : X[GX=XAX]
-                        regrid: B[D=xlongshift] on X at XACT
-             FILENAME : xlong.nc
-             SUBSET   : 8 points (LONGITUDE)
- 115W   / 426:  245.000
- 114W   / 427:  246.000
- 113W   / 428:  247.000
- 112W   / 429:  248.000
- 111W   / 430:  249.000
- 110W   / 431:  250.000
- 109W   / 432:  251.000
- 108W   / 433:  252.000
- 
-sp rm xlong.nc
-sp rm xlongshift.nc
- 
-! err560_leap_years.jnl
-! inconsistency in computing whether year is a leap year;
-! bug in drawing the time axis.
-GO bn_reset
-cancel mode verify
-GO err560_leap_years.jnl
-! err560_leap_years.jnl
-! Fixes for bug 882, inconsistency in computing whether
-! year is a leap year.
- 
-def axis/t="07-FEB-1899:12:00":"07-FEB-1900:12:00":365.2425/units=days/t0="1-jan-1800" tax
-let v = tsequence({55,65})
-plot v[gt=tax at asn]
- 
-! err560_dyn_grids.jnl
-!  plot missing in upper plot; error counting dynamic grids
-! GO bn_reset
-! GO err560_dyn_grids.jnl
- 
-! err560_century.jnl
-! Century portion of years were not properly tested in numdm1.F
-GO bn_reset
-cancel mode verify
-GO err560_century
-! err560_century.jnl.jnl  *acm* 4/28/04
-! Century portion of years were not properly tested in numdm1.F
- 
-! Crashes Ferret with STOP: ,2
- 
-def axis/t="07-FEB-1899:12:00":"07-FEB-1900:12:00":365.2425/units=days/t0="1-jan-1800" tax
-let v = tsequence({55,65})
-plot/step=connected  v[gt=tax at asn]
-plot/over v[gt=tax at asn]
- 
-plot v[gt=tax at asn]
- 
- 
-! Also need to test this, years 599 - 600
- 
-def axis/t=07-feb-0599:07-feb-0600:1/units=years tt
-plot t[gt=tt]
- 
-! ******** V5.8 Additions below ***********
- 
-GO bn_reset
-cancel mode verify
-GO bn_modstats.jnl
-! bn_modstats.jnl
-! acm 8/25/04
-! There was never a benchmark test of modulo statistics.
-! (and a bug had crept into @MODVAR when there was missing data)
- 
-use  gtsa056_2.cdf
-set region/x=140/y=1/k=1
-let var = if temp gt 29.5 then temp
- 
-!use climatological_axes
-!can data climatological_axes
- 
-list var[gt=month_reg at mod]
-             VARIABLE : IF TEMP GT 29.5 THEN TEMP
-                        regrid: 730 hour on T at MOD
-             FILENAME : gtsa056_2.cdf
-             SUBSET   : 12 points (TIME)
-             LONGITUDE: 139.5E
-             LATITUDE : 0.833N
-             DEPTH (m): 5
-                     139.5E  
-                      10
- 16-JAN      /  1:  29.5559
- 15-FEB      /  2:  29.5316
- 17-MAR      /  3:  29.6615
- 16-APR      /  4:  29.8829
- 16-MAY      /  5:  29.8907
- 16-JUN      /  6:  29.9644
- 16-JUL      /  7:  29.6883
- 16-AUG      /  8:     ....
- 15-SEP      /  9:  29.6661
- 16-OCT      / 10:  29.7464
- 15-NOV      / 11:  29.9058
- 16-DEC      / 12:  29.7728
- 
-! bug had values of Inf surrounding missing data
-list var[gt=month_reg at modvar]
-             VARIABLE : Variance of IF TEMP GT 29.5 THEN TEMP
-                        regrid: 730 hour on T at MODVAR
-             FILENAME : gtsa056_2.cdf
-             SUBSET   : 12 points (TIME)
-             LONGITUDE: 139.5E
-             LATITUDE : 0.833N
-             DEPTH (m): 5
-                      139.5E   
-                       10
- 16-JAN      /  1:  0.0020743
- 15-FEB      /  2:  0.0005012
- 17-MAR      /  3:  0.0079502
- 16-APR      /  4:  0.0015034
- 16-MAY      /  5:  0.0035104
- 16-JUN      /  6:  0.0096970
- 16-JUL      /  7:  0.0188794
- 16-AUG      /  8:       ....
- 15-SEP      /  9:  0.0055797
- 16-OCT      / 10:  0.0068064
- 15-NOV      / 11:  0.0019084
- 16-DEC      / 12:  0.0048345
-list var[gt=month_reg at modmin]
-             VARIABLE : IF TEMP GT 29.5 THEN TEMP
-                        regrid: 730 hour on T at MODMIN
-             FILENAME : gtsa056_2.cdf
-             SUBSET   : 12 points (TIME)
-             LONGITUDE: 139.5E
-             LATITUDE : 0.833N
-             DEPTH (m): 5
-                     139.5E  
-                      10
- 16-JAN      /  1:  29.5018
- 15-FEB      /  2:  29.5157
- 17-MAR      /  3:  29.5182
- 16-APR      /  4:  29.7809
- 16-MAY      /  5:  29.7883
- 16-JUN      /  6:  29.8047
- 16-JUL      /  7:  29.5034
- 16-AUG      /  8:     ....
- 15-SEP      /  9:  29.5334
- 16-OCT      / 10:  29.6438
- 15-NOV      / 11:  29.8575
- 16-DEC      / 12:  29.6620
-list var[gt=month_reg at modmax]
-             VARIABLE : IF TEMP GT 29.5 THEN TEMP
-                        regrid: 730 hour on T at MODMAX
-             FILENAME : gtsa056_2.cdf
-             SUBSET   : 12 points (TIME)
-             LONGITUDE: 139.5E
-             LATITUDE : 0.833N
-             DEPTH (m): 5
-                     139.5E  
-                      10
- 16-JAN      /  1:  29.6371
- 15-FEB      /  2:  29.5474
- 17-MAR      /  3:  29.8171
- 16-APR      /  4:  29.9306
- 16-MAY      /  5:  29.9564
- 16-JUN      /  6:  30.0834
- 16-JUL      /  7:  29.8189
- 16-AUG      /  8:     ....
- 15-SEP      /  9:  29.7498
- 16-OCT      / 10:  29.9003
- 15-NOV      / 11:  29.9684
- 16-DEC      / 12:  29.8558
-list var[gt=month_reg at modsum]
-             VARIABLE : IF TEMP GT 29.5 THEN TEMP
-                        regrid: 730 hour on T at MODSUM
-             FILENAME : gtsa056_2.cdf
-             SUBSET   : 12 points (TIME)
-             LONGITUDE: 139.5E
-             LATITUDE : 0.833N
-             DEPTH (m): 5
-                     139.5E  
-                      10
- 16-JAN      /  1:  295.559
- 15-FEB      /  2:   59.063
- 17-MAR      /  3:  533.908
- 16-APR      /  4:  597.657
- 16-MAY      /  5:  597.813
- 16-JUN      /  6:  359.572
- 16-JUL      /  7:  207.818
- 16-AUG      /  8:     ....
- 15-SEP      /  9:  237.329
- 16-OCT      / 10:  297.464
- 15-NOV      / 11:  299.058
- 16-DEC      / 12:  297.728
-list var[gt=month_reg at modngd]
-             VARIABLE : IF TEMP GT 29.5 THEN TEMP (# of points)
-                        regrid: 730 hour on T at MODNGD
-             FILENAME : gtsa056_2.cdf
-             SUBSET   : 12 points (TIME)
-             LONGITUDE: 139.5E
-             LATITUDE : 0.833N
-             DEPTH (m): 5
-                     139.5E  
-                      10
- 16-JAN      /  1:  10.0000
- 15-FEB      /  2:   2.0000
- 17-MAR      /  3:  18.0000
- 16-APR      /  4:  20.0000
- 16-MAY      /  5:  20.0000
- 16-JUN      /  6:  12.0000
- 16-JUL      /  7:   7.0000
- 16-AUG      /  8:   0.0000
- 15-SEP      /  9:   8.0000
- 16-OCT      / 10:  10.0000
- 15-NOV      / 11:  10.0000
- 16-DEC      / 12:  10.0000
- 
-GO bn_reset
-cancel mode verify
-GO bn_mc_vary_scale.jnl
-! bn_mc_vary_scale.jnl
-!   Allow stepfiles to have different internal scale and offset.
-!   read and apply when opening each stepfile. Previously, the
-!   scale and offset from the first stepfile were applied.
-!   `var,return=nc_offset` and `var,return=nc_scale1` contain the
-!   latest scaling applied
- 
- 
-set data vary_scale.des
-! With two different scalings applied for the two stepfiles, there
-! is a change in slope and offset in the middle of this data
- 
-list tt
-             VARIABLE : 1 + 0*T[GT=DAYT]
-             DATA SET : Model Output, Daily Averages
-             FILENAME : vary_scale.des
-             SUBSET   : 20 points (TIME)
- 01-JAN-1990 00 /  1:  -0.5000
- 02-JAN-1990 00 /  2:  -1.5000
- 03-JAN-1990 00 /  3:  -2.5000
- 04-JAN-1990 00 /  4:  -3.5000
- 05-JAN-1990 00 /  5:  -4.5000
- 06-JAN-1990 00 /  6:  -5.5000
- 07-JAN-1990 00 /  7:  -6.5000
- 08-JAN-1990 00 /  8:  -7.5000
- 09-JAN-1990 00 /  9:  -8.5000
- 10-JAN-1990 00 / 10:  -9.5000
- 11-JAN-1990 00 / 11:   1.9800
- 12-JAN-1990 00 / 12:   3.9800
- 13-JAN-1990 00 / 13:   5.9800
- 14-JAN-1990 00 / 14:   7.9800
- 15-JAN-1990 00 / 15:   9.9800
- 16-JAN-1990 00 / 16:  11.9800
- 17-JAN-1990 00 / 17:  13.9800
- 18-JAN-1990 00 / 18:  15.9800
- 19-JAN-1990 00 / 19:  17.9800
- 20-JAN-1990 00 / 20:  19.9800
-list/quiet/nohead `tt,return=nc_scale`, `tt,return=nc_offset`
- !-> list/quiet/nohead 2, -0.02
-I / *:     2.00000 -0.0200000
- 
- 
-can data/all
-can mem
-set data vary_scale.des
- 
-! The scale and offset from the first stepfile
-list/L=2:4 tt
-             VARIABLE : 1 + 0*T[GT=DAYT]
-             DATA SET : Model Output, Daily Averages
-             FILENAME : vary_scale.des
-             SUBSET   : 3 points (TIME)
- 02-JAN-1990 00 / 2: -1.50000
- 03-JAN-1990 00 / 3: -2.50000
- 04-JAN-1990 00 / 4: -3.50000
-list/quiet/nohead `tt,return=nc_scale`, `tt,return=nc_offset`
- !-> list/quiet/nohead -1, 0.5
-I / *:    -1.00000  0.500000
- 
- 
-can data/all
-can mem
-set data vary_scale.des
- 
-! The scale and offset from the second stepfile
-list/L=12:14 tt
-             VARIABLE : 1 + 0*T[GT=DAYT]
-             DATA SET : Model Output, Daily Averages
-             FILENAME : vary_scale.des
-             SUBSET   : 3 points (TIME)
- 12-JAN-1990 00 / 12:  3.98000
- 13-JAN-1990 00 / 13:  5.98000
- 14-JAN-1990 00 / 14:  7.98000
-list/quiet/nohead `tt,return=nc_scale`, `tt,return=nc_offset`
- !-> list/quiet/nohead 2, -0.02
-I / *:     2.00000 -0.0200000
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_plot_nokey.jnl
-! bn_plot_nokey.jnl (bug 1089)
-! 22-nov-2004
- 
-! Test new PLOT/NOKEY qualifier
-! Plot several lines together, then plot/over
- 
-PLOT/NOKEY/I=1:100 cos(i/20), sin(i/30), cos(i/30)*sin(i/20)
-PLOT/OVER/NOKEY/I=1:100 cos(i/10), sin(i/50), cos(i/40)*sin(i/10)
- 
-! plot/vs
-PLOT/VS/LINE/NOKEY/I=1:314 i*cos(i/20), i*sin(i/20)
-PLOT/OVER/VS/LINE/NOKEY/I=1:314 i*cos(i/30), i*sin(i/30)
- 
-! time series
-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
- 
-GO bn_reset
-cancel mode verify
-GO bn580_bug_fixes.jnl
-! bn580_bug_fixes.jnl
-! test various fixes that went into version 5.80
-! 7/04 *acm*
-!
- 
-! POLYGON (or SHADE) plots with a single level had no fill color
-GO bn_reset
-cancel mode verify
-GO err570_singlecolor.jnl
-! err570_singlecolor.jnl
-! 7/6/2004
- 
-! See bug 901. When a single fill color is sent to
-! the POLYGON, SHADE, or FILL, the code sends the command
-! PPL LEV (val).  But, the value was formatted so that the
-! value got rounded off, so the precise value wasnt specified
-! and the graphics call then didn't find the value.
- 
-! This polygon was filled
-let a = 111
-poly/fill/line {0,1,2},{1,2,1},a
- 
-! This polygon was not filled
-let a = 111.55
-poly/fill/over/line {0,1,2},{2,1,2},a
- 
-! This shade plot did not fill in.
-define axis/x=1:10:1 xax
-define axis/y=1:12:1 yax
-let b = x[gx=xax] + y[gy=yax]
-shade/y=0:90 a + 0*b
- 
-! FILL doesnt make the graphics call to do the fil plot
-! when there is just one level ...
- 
-! ... and this is bug 957; similar symptoms but a different
-! cause. SHADE and POLY need level defined when there is just
-! one level.
- 
-let v = 15
-shade/lev=1/x=1:10/y=1:10 v + 0*x + 0*y
- 
- 
-def axis/x=1:1:1 xaxj
-def grid/x=xaxj gaxj
-let a = 111241*x[gx=gaxj at asn]
-poly/lev=2 {0,1,2},{1,2,1},a ! OR lev=1
- 
-! colorbar labels too close to the bar, when user sets bar location
-GO bn_reset
-cancel mode verify
-GO err570_shakeylab.jnl
- 
-! err570_shakeylab.jnl
-! 7/6/2004
- 
-!  When user defines the location of the color key, the key
-!  labels are too close to the edge of the key.
- 
-! Test with both SHADE and FILL, as some of the scaling is
-! different internally.
- 
- 
-use coads_climatology
-ppl dfltfnt cr
- 
-define viewport/axes/text=1/xlim=0.1:0.85/ylim=`1/3`:`2/3` vp_1
- !-> define viewport/axes/text=1/xlim=0.1:0.85/ylim=0.3333333333333333:0.6666666666666666 vp_1
-set viewport vp_1
- 
-fill/set/L=2 sst
-ppl shakey 1, 1, 0.1, 0, -2, 8,  `($ppl$xorg)+($ppl$xlen)+0.3`,  `($ppl$xorg)+($ppl$xlen)+0.6`, `($ppl$yorg)`, `($ppl$yorg)+($ppl$ylen)`
- !-> ppl shakey 1, 1, 0.1, 0, -2, 8,  8.97,  9.27, 1.4, 4.333
-ppl fill
- 
-fill/set/L=2 sst* 10000
-ppl shakey 1, 1, 0.1, 0, -2, 8,  `($ppl$xorg)+($ppl$xlen)+0.3`,  `($ppl$xorg)+($ppl$xlen)+0.6`, `($ppl$yorg)`, `($ppl$yorg)+($ppl$ylen)`
- !-> ppl shakey 1, 1, 0.1, 0, -2, 8,  8.97,  9.27, 1.4, 4.333
-ppl fill
- 
-fill/set/L=2 sst/ 10000
-ppl shakey 1, 1, 0.1, 0, -2, 8,  `($ppl$xorg)+($ppl$xlen)+0.3`,  `($ppl$xorg)+($ppl$xlen)+0.6`, `($ppl$yorg)`, `($ppl$yorg)+($ppl$ylen)`
- !-> ppl shakey 1, 1, 0.1, 0, -2, 8,  8.97,  9.27, 1.4, 4.333
-ppl fill
- 
-!
- 
-define viewport/axes/text=1/xlim=0.1:0.85/ylim=`1/3`:`2/3` vp_1
- !-> define viewport/axes/text=1/xlim=0.1:0.85/ylim=0.3333333333333333:0.6666666666666666 vp_1
-set viewport vp_1
- 
-shade/set/L=2 sst
-ppl shakey 1, 1, 0.1, 0, -2, 8,  `($ppl$xorg)+($ppl$xlen)+0.3`,  `($ppl$xorg)+($ppl$xlen)+0.6`, `($ppl$yorg)`, `($ppl$yorg)+($ppl$ylen)`
- !-> ppl shakey 1, 1, 0.1, 0, -2, 8,  8.97,  9.27, 1.4, 4.333
-ppl shade
- 
-shade/set/L=2 sst* 10000
-ppl shakey 1, 1, 0.1, 0, -2, 8,  `($ppl$xorg)+($ppl$xlen)+0.3`,  `($ppl$xorg)+($ppl$xlen)+0.6`, `($ppl$yorg)`, `($ppl$yorg)+($ppl$ylen)`
- !-> ppl shakey 1, 1, 0.1, 0, -2, 8,  8.97,  9.27, 1.4, 4.333
-ppl shade
- 
-shade/set/L=2 sst/ 10000
-ppl shakey 1, 1, 0.1, 0, -2, 8,  `($ppl$xorg)+($ppl$xlen)+0.3`,  `($ppl$xorg)+($ppl$xlen)+0.6`, `($ppl$yorg)`, `($ppl$yorg)+($ppl$ylen)`
- !-> ppl shakey 1, 1, 0.1, 0, -2, 8,  8.97,  9.27, 1.4, 4.333
-ppl shade
- 
- 
-ppl dfltfnt sr
- 
-! Null input gives wierd error message
-GO bn_reset
-cancel mode verify
-GO err570_null_symbol.jnl
-! err570_null_symbol.jnl
-! null input -- > wierd error message see bug 919
-!
-!    **ERROR: invalid command: DEFINE what name?
-!    DEFINE VARIABLE
- 
-set mode ignore
- 
-def sym a " "
-($a)
- 
-can mode ignore
- 
-! Replace text expression with its value: string variable was too short
-GO bn_reset
-cancel mode verify
-GO err570_parse_labelcommand.jnl
-! err570_parse_labelcommand.jnl
-! fix for bug 956.
-!
-! When a command is issued with an argument being a variable containing
-! a long string, the string is cut off when the command is parsed to
-! substitude the value of the variable.
-! (bug fix is lengthening the length of variable repl in repl_exprns.F)
- 
-can view
-pplus/reset
-PLOT/i=1:10  1/i
- 
-let line1 = "1234567891123456789212345678931234567894123456789512345678961234567897123456789812345678991234567890"
-let line2 = "<nl>abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
-let tsulab = strcat(line1, line2)
-list tsulab
-             VARIABLE : STRCAT(LINE1, LINE2)
-        "1234567891123456789212345678931234567894123456789512345678961234567897123456789812345678991234567890<nl>abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
- 
-! Previously when the value of tsulab is replaced in the command and
-! echoed back to the terminal, the string was truncated, with bad appended
-! to the end of the shortened second line.
- 
-label/nouser 3.6,`($ppl$ylen)+0.2`,0,0,0.08, `tsulab`
- !-> PPL %LABEL/nouser 3.6,6.2,0,0,0.08, 1234567891123456789212345678931234567894123456789512345678961234567897123456789812345678991234567890<nl>abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
- 
-! result of COMPRESSK_BY function does not vary in X
-GO bn_reset
-cancel mode verify
-GO err570_compressk_by.jnl
-! err570_compress_by.jnl
-! fix for bug 925
- 
-!--------------------------------------------------------------
-! create a file with 3-d data and 2-d array of sampling levels
-! define xy and xyz grids
- 
-def axis/x=1:5:1 xax ; def axis/y=1:4:1 yax ; def axis/z=1:3:1 zax
-def grid/x=xax/y=yax gxy ; def grid/x=xax/y=yax/z=zax gxyz
- 
-let/title="Sampling Levels" ind=int(3*randu(x[g=gxy]+y[g=gxy])+1)
-let/title="3-D Data" temp=x[g=gxyz]+10*(y[g=gxyz]+10*z[g=gxyz])
- 
-list ind
-             VARIABLE : Sampling Levels
-             SUBSET   : 5 by 4 points (X-Y)
-              1        2        3        4        5     
-              1        2        3        4        5
- 1   / 1:  3.00000  2.00000  1.00000  1.00000  3.00000
- 2   / 2:  1.00000  3.00000  2.00000  2.00000  3.00000
- 3   / 3:  2.00000  3.00000  3.00000  2.00000  3.00000
- 4   / 4:  3.00000  2.00000  1.00000  1.00000  2.00000
-!             1      2      3      4      5
-! 1   / 1:  3.000  2.000  1.000  1.000  3.000
-! 2   / 2:  1.000  3.000  2.000  2.000  3.000
-! 3   / 3:  2.000  3.000  3.000  2.000  3.000
-! 4   / 4:  3.000  2.000  1.000  1.000  2.000
- 
-list temp
-             VARIABLE : 3-D Data
-             SUBSET   : 5 by 4 by 3 points (X-Y-Z)
-              1        2        3        4        5     
-              1        2        3        4        5
- ---- K:1 Z:   1
- 1   / 1:  111.000  112.000  113.000  114.000  115.000
- 2   / 2:  121.000  122.000  123.000  124.000  125.000
- 3   / 3:  131.000  132.000  133.000  134.000  135.000
- 4   / 4:  141.000  142.000  143.000  144.000  145.000
- ---- K:2 Z:   2
- 1   / 1:  211.000  212.000  213.000  214.000  215.000
- 2   / 2:  221.000  222.000  223.000  224.000  225.000
- 3   / 3:  231.000  232.000  233.000  234.000  235.000
- 4   / 4:  241.000  242.000  243.000  244.000  245.000
- ---- K:3 Z:   3
- 1   / 1:  311.000  312.000  313.000  314.000  315.000
- 2   / 2:  321.000  322.000  323.000  324.000  325.000
- 3   / 3:  331.000  332.000  333.000  334.000  335.000
- 4   / 4:  341.000  342.000  343.000  344.000  345.000
-!             1      2      3      4      5
-! ---- K:1 Z:   1
-! 1   / 1:  111.0  112.0  113.0  114.0  115.0
-! 2   / 2:  121.0  122.0  123.0  124.0  125.0
-! 3   / 3:  131.0  132.0  133.0  134.0  135.0
-! 4   / 4:  141.0  142.0  143.0  144.0  145.0
-! ---- K:2 Z:   2
-! 1   / 1:  211.0  212.0  213.0  214.0  215.0
-! 2   / 2:  221.0  222.0  223.0  224.0  225.0
-! 3   / 3:  231.0  232.0  233.0  234.0  235.0
-! 4   / 4:  241.0  242.0  243.0  244.0  245.0
-! ---- K:3 Z:   3
-! 1   / 1:  311.0  312.0  313.0  314.0  315.0
-! 2   / 2:  321.0  322.0  323.0  324.0  325.0
-! 3   / 3:  331.0  332.0  333.0  334.0  335.0
-! 4   / 4:  341.0  342.0  343.0  344.0  345.0
- 
-let mask=if(ind+0*z[g=gxyz] eq k[g=gxyz])then 1
-let tlev=compressk_by(temp,mask)
- 
-!**** here is the bug behavior ... column 1 is as expected but not the others
-! list tlev[k=1]
-!             1      2      3      4      5
-! 1   / 1:  311.0  311.0  311.0  311.0  311.0
-! 2   / 2:  121.0  121.0  121.0  121.0  121.0
-! 3   / 3:  231.0  231.0  231.0  231.0  231.0
-! 4   / 4:  341.0  341.0  341.0  341.0  341.0
- 
-list tlev[k=1]
-             VARIABLE : COMPRESSK_BY(TEMP,MASK)
-             SUBSET   : 5 by 4 points (X-Y)
-             Z        : 1
-              1        2        3        4        5     
-              1        2        3        4        5
- 1   / 1:  311.000  212.000  113.000  114.000  315.000
- 2   / 2:  121.000  322.000  223.000  224.000  325.000
- 3   / 3:  231.000  332.000  333.000  234.000  335.000
- 4   / 4:  341.000  242.000  143.000  144.000  245.000
- 
- 
- 
-! Command parsing on PPL side had string lengths too short
-GO bn_reset
-cancel mode verify
-GO err570_long_label.jnl
-! err570_long_label.jnl
-! Fix for bug 956
- 
-! Very long multi-line label truncated on %LABEL command
-! (string lengths hardwired to 255 deep in PPLUS command parsing)
- 
-PLOT/i=1:10  1/i
- 
-set mod verify
-! from Jean Newman's facts_ttl_src_lst.jnl
- 
-define symbol clrmod = 2
-let source_list = "Mw 9.2, 14.76*a12+14.76*b12+14.76*a13+14.76*b13+14.76*a14+14.76*b14+14.76*a15+14.76*b15+14.76*a16+14.76*b16+14.76*a17+14.76*b17+14.76*a18+14.76*b18+14.76*a19+14.76*b19+14.76*a20+14.76*b20+14.76*a21+14.76*b21+14.76*a22+14.76*b22+14.76*a23+14.76*b23+14.76*a24+14.76*b24"
-let tit_x = 3.6035
-let sl_y = 6.5
- 
-  define symbol lenline = `strlen(source_list)+8`
- !-> define symbol lenline = 275
-      let tsuchr = 0.09
-      let ntsulns = if `($VP_WIDTH)/((($lenline)/2.)*.9) lt 0.09` then 3 else 2
- !-> DEFINE VARIABLE ntsulns = if 1 then 3 else 2
-      let nctsulns = `int(($lenline)/ntsulns)`
- !-> DEFINE VARIABLE nctsulns = 91
-      let lstr1 = `strrindex(substring(source_list,0,nctsulns),"+")`
- !-> DEFINE VARIABLE lstr1 = 88
-        let lstr2 = `strrindex(substring(source_list,lstr1+1,nctsulns),"+")`
- !-> DEFINE VARIABLE lstr2 = 90
-        let str3a = substring(source_list,0,lstr1)
-        let str3 = strcat(str3a,"<nl>")
-        let str4a = substring(source_list,lstr1+1,lstr2)
-        let str4 = strcat(str4a,"<nl>")
-        let str1 = strcat(str3,str4)
-        let lstr3 = `lstr1+lstr2`
- !-> DEFINE VARIABLE lstr3 = 178
-        let str2 = substring(source_list,lstr3+1,($lenline)-lstr3)
- !-> DEFINE VARIABLE str2 = substring(source_list,lstr3+1,275-lstr3)
-        let tsustr = strcat(str1,str2)
-      let tsulab = strcat("@P($clrmod)Source: ",tsustr)
- !-> DEFINE VARIABLE tsulab = strcat("@P2Source: ",tsustr)
-      list/noheader tsulab
-        "@P2Source: Mw 9.2, 14.76*a12+14.76*b12+14.76*a13+14.76*b13+14.76*a14+14.76*b14+14.76*a15+14.76*b15+<nl>14.76*a16+14.76*b16+14.76*a17+14.76*b17+14.76*a18+14.76*b18+14.76*a19+14.76*b19+14.76*a20+<nl>14.76*b20+14.76*a21+14.76*b21+14.76*a22+14.76*b22+14.76*a23+14.76*b23+14.76*a24+14.76*b24"
-    label/nouser `tit_x`,`sl_y`,0,0,`tsuchr` `tsulab`
- !-> PPL %LABEL/nouser 3.6035,6.5,0,0,0.09 @P2Source: Mw 9.2, 14.76*a12+14.76*b12+14.76*a13+14.76*b13+14.76*a14+14.76*b14+14.76*a15+14.76*b15+<nl>14.76*a16+14.76*b16+14.76*a17+14.76*b17+14.76*a18+14.76*b18+14.76*a19+14.76*b19+14.76*a20+<nl>14.76*b20+14.76*a21+14.76*b21+14.76*a22+14.76*b22+14.76*a23+14.76*b23+14.76*a24+14.76*b24
- 
-set mode/last verify
- 
-! Allow PPL POLYGON after a POLY/SET (previously was PPL FILLPOL)
-GO bn_reset
-cancel mode verify
-GO err570_ppl_poly.jnl
-! err570_ppl_poly.jnl
- 
-! bug 959
-! When we use polygon/set; ppl shakey; ppl polygon
-! to control the vector key, the numerical labels on
-! the key disappear.  (allow PPL POLYGON as well as
-! PPL FILLPOL after a POLY/SET)
- 
-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/nolable/set xpts+xsqr, ypts+ysqr, x*x/10
-ppl shakey 1, 1, .1
-ppl polygon
- 
-! Fix formatting of coordinates on LIST/FORMAT=tab or /FORMAT=comma
-GO bn_reset
-cancel mode verify
-GO err570_list_tab_coords.jnl
-! err570_list_tab_coords.jnl
-! acm 9/7/04
-! LIST/FORMAT=tab or /FORMAT=comma listed
-! coordinates in a fixed format not sufficient
-! to distinguish finely spaced coordinates
- 
-def axis/x=100:100.25:0.05/units=deg xax
-def axis/y=0.11:0.25:0.018/units=deg yax
-let aa = (x[gx=xax] + y[gy=yax])/100
-list/form=tab aa
-             VARIABLE : (X[GX=XAX] + Y[GY=YAX])/100
-             BAD FLAG : -1.E+34       
-             SUBSET   : 6 by 9 points (LONGITUDE-LATITUDE)
-  	100E     	100.E    	100.1E   	100.2E   	100.2E   	100.3E   
-0.11N	1.0011	1.0016	1.0021	1.0026	1.0031	1.0036
-0.128N	1.00128	1.00178	1.00228	1.00278	1.00328	1.00378
-0.146N	1.00146	1.00196	1.00246	1.00296	1.00346	1.00396
-0.164N	1.00164	1.00214	1.00264	1.00314	1.00364	1.00414
-0.182N	1.00182	1.00232	1.00282	1.00332	1.00382	1.00432
-0.2N	1.002	1.0025	1.003	1.0035	1.004	1.0045
-0.218N	1.00218	1.00268	1.00318	1.00368	1.00418	1.00468
-0.236N	1.00236	1.00286	1.00336	1.00386	1.00436	1.00486
-0.254N	1.00254	1.00304	1.00354	1.00404	1.00454	1.00504
-def axis/x=100:100.11:0.033/units=deg xax
-list/form=comma aa
-             VARIABLE : (X[GX=XAX] + Y[GY=YAX])/100
-             BAD FLAG : -1.E+34       
-             SUBSET   : 4 by 9 points (LONGITUDE-LATITUDE)
-   100E     ,100E     ,100.1E   ,100.1E   
-0.11N,1.0011,1.00143,1.00176,1.00209
-0.128N,1.00128,1.00161,1.00194,1.00227
-0.146N,1.00146,1.00179,1.00212,1.00245
-0.164N,1.00164,1.00197,1.0023,1.00263
-0.182N,1.00182,1.00215,1.00248,1.00281
-0.2N,1.002,1.00233,1.00266,1.00299
-0.218N,1.00218,1.00251,1.00284,1.00317
-0.236N,1.00236,1.00269,1.00302,1.00335
-0.254N,1.00254,1.00287,1.0032,1.00353
- 
-! Fix bug in HASH_CX for large numbers of varibles
-GO bn_reset
-cancel mode verify
-GO err570_many_variables.jnl
-! err570_many_variables.jnl
-! 27-sep-2004  ACM
-! See bug 993
- 
-! Script derived from Jean Newman script where she
-! opens up many files and defines a bunch of variables.
- 
-! Jean Newman's script opens 25 data files, defines over 200 variables, and uses
-! very long strings.  It uses string functions to break up a long string
-! describing the data into reasonable length lines for labels, inserting <NL>
-! linebreak character.  Crashes with seg fault or with messages like this:
-!
-! yes? load str4a
-! Subscript out of range on file re_assign_variable.F, line 78, procedure
-! re_assign_variable.
-! Subscript number 1 has value -111 in array mv_flink.
-!
-!  (different errors if we define a slightly different number of variables or list
-! some of them, causing them to be evaluated in a different order.)  Generally
-! crashes on execution of a string function.
-!
-! See ~ansley/ans_ferret/users/jnewman/facts/x_r.jnl
-!     ~ansley/ans_ferret/users/jnewman/facts/example_crash.jnl
-!
-!set mode diag
- 
-DEFINE SYMBOL SOURCE_LIST = Mw 9.2, 14.76*a12+14.76*b12+14.76*a13+14.76*b13+14.76*a14+14.76*b14+14.76*a15+14.76*b15+14.76*a16+14.76*b16+14.76*a17+14.76*b17+14.76*a18+14.76*b18+14.76*a19+14.76*b19+14.76*a20+14.76*b20+14.76*a21+14.76*b21+14.76*a22+14.76*b22+14.76*a23+14.76*b23
- 
- 
-! set data "facts/s_1936_533.nc"
-LET TOTAL_TIMESTEPS = 420
-LET HA12 = 14.76 * HA[D=s_1936_533.nc]
-LET AA12 = SLAT[D=s_1936_533.nc]
-LET OA12 = SLON[D=s_1936_533.nc]
-LET SA12 = 245
-LET DA12 = 15
-LET HB12 = 14.76 * HA[D=s_1936_533.nc]   !! [D=S_1939_529.NC]
-LET AB12 = SLAT[D=s_1936_533.nc]   !! [D=S_1939_529.NC]
-LET OB12 = SLON[D=s_1936_533.nc]   !! [D=S_1939_529.NC]
-LET SB12 = 245
-LET DB12 = 15
-LET HA13 = 14.76 * HA[D=s_1936_533.nc]   !! [D=S_1950_537.NC]
-LET AA13 = SLAT[D=s_1936_533.nc]   !! [D=S_1950_537.NC]
-LET OA13 = SLON[D=s_1936_533.nc]   !! [D=S_1950_537.NC]
-LET SA13 = 245
-LET DA13 = 15
-LET HB13 = 14.76 * HA[D=s_1936_533.nc]   !! [D=S_1953_533.NC]
-LET AB13 = SLAT[D=s_1936_533.nc]   !! [D=S_1953_533.NC]
-LET OB13 = SLON[D=s_1936_533.nc]   !! [D=S_1953_533.NC]
-LET SB13 = 245
-LET DB13 = 15
-LET HA14 = 14.76 * HA[D=s_1936_533.nc]   !! [D=S_1964_541.NC]
-LET AA14 = SLAT[D=s_1936_533.nc]   !! [D=S_1964_541.NC]
-LET OA14 = SLON[D=s_1936_533.nc]   !! [D=S_1964_541.NC]
-LET SA14 = 250
-LET DA14 = 15
-LET HB14 = 14.76 * HA[D=s_1936_533.nc]   !! [D=S_1967_537.NC]
-LET AB14 = SLAT[D=s_1936_533.nc]   !! [D=S_1967_537.NC]
-LET OB14 = SLON[D=s_1936_533.nc]   !! [D=S_1967_537.NC]
-LET SB14 = 250
-LET DB14 = 15
-LET HA15 = 14.76 * HA[D=s_1936_533.nc]   !! [D=S_1979_544.NC]
-LET AA15 = SLAT[D=s_1936_533.nc]   !! [D=S_1979_544.NC]
-LET OA15 = SLON[D=s_1936_533.nc]   !! [D=S_1979_544.NC]
-LET SA15 = 253
-LET DA15 = 15
-LET HB15 = 14.76 * HA[D=s_1936_533.nc]   !! [D=S_1981_539.NC]
-LET AB15 = SLAT[D=s_1936_533.nc]   !! [D=S_1981_539.NC]
-LET OB15 = SLON[D=s_1936_533.nc]   !! [D=S_1981_539.NC]
-LET SB15 = 253
-LET DB15 = 15
-LET HA16 = 14.76 * HA[D=s_1936_533.nc]   !! [D=S_1994_546.NC]
-LET AA16 = SLAT[D=s_1936_533.nc]   !! [D=S_1994_546.NC]
-LET OA16 = SLON[D=s_1936_533.nc]   !! [D=S_1994_546.NC]
-LET SA16 = 256
-LET DA16 = 15
-LET HB16 = 14.76 * HA[D=s_1936_533.nc]   !! [D=S_1996_542.NC]
-LET AB16 = SLAT[D=s_1936_533.nc]   !! [D=S_1996_542.NC]
-LET OB16 = SLON[D=s_1936_533.nc]   !! [D=S_1996_542.NC]
-LET SB16 = 256
-LET DB16 = 15
-LET HA17 = 14.76 * HA[D=s_1936_533.nc]   !! [D=S_2009_548.NC]
-LET AA17 = SLAT[D=s_1936_533.nc]   !! [D=S_2009_548.NC]
-LET OA17 = SLON[D=s_1936_533.nc]   !! [D=S_2009_548.NC]
-LET SA17 = 253
-LET DA17 = 15
-LET HB17 = 14.76 * HA[D=s_1936_533.nc]   !! [D=S_2011_544.NC]
-LET AB17 = SLAT[D=s_1936_533.nc]   !! [D=S_2011_544.NC]
-LET OB17 = SLON[D=s_1936_533.nc]   !! [D=S_2011_544.NC]
-LET SB17 = 253
-LET DB17 = 15
-LET HA18 = 14.76 * HA[D=s_1936_533.nc]   !! [D=S_2023_551.NC]
-LET AA18 = SLAT[D=s_1936_533.nc]   !! [D=S_2023_551.NC]
-LET OA18 = SLON[D=s_1936_533.nc]   !! [D=S_2023_551.NC]
-LET SA18 = 247
-LET DA18 = 15
-LET HB18 = 14.76 * HA[D=s_1936_533.nc]   !! [D=S_2026_547.NC]
-LET AB18 = SLAT[D=s_1936_533.nc]   !! [D=S_2026_547.NC]
-LET OB18 = SLON[D=s_1936_533.nc]   !! [D=S_2026_547.NC]
-LET SB18 = 247
-LET DB18 = 15
-LET HA19 = 14.76 * HA[D=s_1936_533.nc]   !! [D=S_2036_555.NC]
-LET AA19 = SLAT[D=s_1936_533.nc]   !! [D=S_2036_555.NC]
-LET OA19 = SLON[D=s_1936_533.nc]   !! [D=S_2036_555.NC]
-LET SA19 = 240
-LET DA19 = 15
-LET HB19 = 14.76 * HA[D=s_1936_533.nc]   !! [D=S_2040_551.NC]
-LET AB19 = SLAT[D=s_1936_533.nc]   !! [D=S_2040_551.NC]
-LET OB19 = SLON[D=s_1936_533.nc]   !! [D=S_2040_551.NC]
-LET SB19 = 240
-LET DB19 = 15
-LET HA20 = 14.76 * HA[D=s_1936_533.nc]   !! [D=S_2049_560.NC]
-LET AA20 = SLAT[D=s_1936_533.nc]   !! [D=S_2049_560.NC]
-LET OA20 = SLON[D=s_1936_533.nc]   !! [D=S_2049_560.NC]
-LET SA20 = 236
-LET DA20 = 15
-LET HB20 = 14.76 * HA[D=s_1936_533.nc]   !! [D=S_2053_556.NC]
-LET AB20 = SLAT[D=s_1936_533.nc]   !! [D=S_2053_556.NC]
-LET OB20 = SLON[D=s_1936_533.nc]   !! [D=S_2053_556.NC]
-LET SB20 = 236
-LET DB20 = 15
-LET HA21 = 14.76 * HA[D=s_1936_533.nc]   !! [D=S_2062_565.NC]
-LET AA21 = SLAT[D=s_1936_533.nc]   !! [D=S_2062_565.NC]
-LET OA21 = SLON[D=s_1936_533.nc]   !! [D=S_2062_565.NC]
-LET SA21 = 236
-LET DA21 = 15
-LET HB21 = 14.76 * HA[D=s_1936_533.nc]   !! [D=S_2067_561.NC]
-LET AB21 = SLAT[D=s_1936_533.nc]   !! [D=S_2067_561.NC]
-LET OB21 = SLON[D=s_1936_533.nc]   !! [D=S_2067_561.NC]
-LET SB21 = 236
-LET DB21 = 15
-LET HA22 = 14.76 * HA[D=s_1936_533.nc]   !! [D=S_2075_570.NC]
-LET AA22 = SLAT[D=s_1936_533.nc]   !! [D=S_2075_570.NC]
-LET OA22 = SLON[D=s_1936_533.nc]   !! [D=S_2075_570.NC]
-LET SA22 = 236
-LET DA22 = 15
-LET HB22 = 14.76 * HA[D=s_1936_533.nc]   !! [D=S_2080_566.NC]
-LET AB22 = SLAT[D=s_1936_533.nc]   !! [D=S_2080_566.NC]
-LET OB22 = SLON[D=s_1936_533.nc]   !! [D=S_2080_566.NC]
-LET SB22 = 236
-LET DB22 = 15
-LET HA23 = 14.76 * HA[D=s_1936_533.nc]   !! [D=S_2089_575.NC]
-LET AA23 = SLAT[D=s_1936_533.nc]   !! [D=S_2089_575.NC]
-LET OA23 = SLON[D=s_1936_533.nc]   !! [D=S_2089_575.NC]
-LET SA23 = 236
-LET DA23 = 15
-LET HB23 = 14.76 * HA[D=s_1936_533.nc]   !! [D=S_2094_571.NC]
-LET AB23 = SLAT[D=s_1936_533.nc]   !! [D=S_2094_571.NC]
-LET OB23 = SLON[D=s_1936_533.nc]   !! [D=S_2094_571.NC]
-LET SB23 = 236
-LET DB23 = 15
-LET HA_LC = HA12+HB12+HA13+HB13+HA14+HB14+HA15+HB15+HA16+HB16+HA17+HB17+HA18+HB18+HA19+HB19+HA20+HB20+HA21+HB21+HA22+HB22+HA23+HB23
-LET HA_LC_TPLV = 64
-LET HA_LC_T1DLV = 16
-LET HA_LC_BTLV = -64
-LET HA_LC_B1DLV = -16
-LET HA_LC_SCL = 10
-LET UA_LC = UA12+UB12+UA13+UB13+UA14+UB14+UA15+UB15+UA16+UB16+UA17+UB17+UA18+UB18+UA19+UB19+UA20+UB20+UA21+UB21+UA22+UB22+UA23+UB23
-LET UA_LC_TPLV = 8
-LET UA_LC_T1DLV = 0.64
-LET UA_LC_BTLV = -8
-LET UA_LC_B1DLV = -0.64
-LET UA_LC_SCL = 1000
-LET VA_LC = VA12+VB12+VA13+VB13+VA14+VB14+VA15+VB15+VA16+VB16+VA17+VB17+VA18+VB18+VA19+VB19+VA20+VB20+VA21+VB21+VA22+VB22+VA23+VB23
-LET VA_LC_TPLV = 8
-LET VA_LC_T1DLV = 0.64
-LET VA_LC_BTLV = -8
-LET VA_LC_B1DLV = -0.64
-LET VA_LC_SCL = 1000
-LET SPEED = (UA_LC^2 + VA_LC^2) ^ 0.5
-LET SPEED_TPLV = 40
-LET SPEED_1DLV = 16
-LET SPEED_SCL = 100
-LET MAX_SPEED = SPEED[L=1:420 at MAX]
-LET MAX_SPEED_TPLV = 40
-LET MAX_SPEED_1DLV = 16
-LET MAX_SPEED_SCL = 10
-LET MAX_ALL = HA_LC[L=1:420 at MAX]
-LET MIN_MASK = IF MAX_ALL GT .001 THEN 1
-LET MAX_WAVE = MAX_ALL*MIN_MASK
-LET MAX_WAVE_TPLV = 500
-LET MAX_WAVE_1DLV = 400
-LET MAX_WAVE_SCL = 10
-LET SIG_WAVE = HA_LC[L=1:420] - MAX_WAVE
-LET MAX_TTIME = SIG_WAVE[L=1:420 at LOC:0]
-LET THRESHOLD_PRCNT = .30
-LET NOISE_MASK = IF HA_LC[L=1:420] LE MAX_ALL*THRESHOLD_PRCNT THEN 0 ELSE 1
-LET ON_MASK = IF NOISE_MASK[L=1:420 at RSUM] GE 1 THEN 0.5
-LET OFF_EVENTS = IF NOISE_MASK - NOISE_MASK[L=1:420 at SHF:-1] LT 0 THEN 1 ELSE 0
-LET OFF_MASK = IF OFF_EVENTS[L=1:420 at RSUM] LT 1 THEN 0.5
-LET WAVE1 = (ON_MASK+OFF_MASK)*HA_LC[L=1:420]
-LET FIRST_WAVE = WAVE1[L=1:420 at MAX]*MIN_MASK
-LET FIRST_WAVE_TPLV = 500
-LET FIRST_WAVE_1DLV = 400
-LET FIRST_WAVE_SCL = 10
-LET SIG_WAVE1 = WAVE1[L=1:420] - FIRST_WAVE
-LET FIRST_TTIME = SIG_WAVE1[L=1:420 at LOC:0]
-LET DTOR = 0.017453
-LET FAULT_LENGTH = 50
-LET FAULT_WIDTH = 50
-LET BO1 = SRCO-FAULT_LENGTH*COS((270-STRK)*DTOR)/111.32/COS(SRCA*DTOR)
-LET BA1 = SRCA-FAULT_LENGTH*SIN((270-STRK)*DTOR)/111.32
-LET BO4 = SRCO+FAULT_LENGTH*COS((270-STRK)*DTOR)/111.32/COS(SRCA*DTOR)
-LET BA4 = SRCA+FAULT_LENGTH*SIN((270-STRK)*DTOR)/111.32
-LET BO2 = BO1+FAULT_WIDTH*COS(DIP*DTOR)*SIN((270-STRK)*DTOR)/111.32/COS(SRCA*DTOR)
-LET BA2 = BA1-FAULT_WIDTH*COS(DIP*DTOR)*COS((270-STRK)*DTOR)/111.32
-LET BO3 = BO4+FAULT_WIDTH*COS(DIP*DTOR)*SIN((270-STRK)*DTOR)/111.32/COS(SRCA*DTOR)
-LET BA3 = BA4-FAULT_WIDTH*COS(DIP*DTOR)*COS((270-STRK)*DTOR)/111.32
-LET SRC_LAT = {53.307,52.9,53.687,53.28,54.076,53.654,54.36,53.93,54.596,54.16,54.83,54.4,55.133,54.72,55.509,55.12,55.97,55.598,56.473,56.1,56.975,56.603,57.512,57.14}
-LET SRC_LON = {193.63,193.94,194.97,195.29,196.43,196.69,197.9,198.12,199.43,199.62,200.88,201.11,202.26,202.57,203.6,204,204.9,205.34,206.21,206.66,207.54,207.99,208.94,209.4}
-LET NSRCS = 24
-LET MX_MX = 474.27
-LET MXTOP = IF MX_MX GT HA_LC_T1DLV THEN MX_MX ELSE HA_LC_TPLV
-LET MN_MN = -284.33
-LET MXBOT = IF MN_MN LT HA_LC_B1DLV THEN MN_MN ELSE HA_LC_BTLV
-LET SL_X = 0.
-LET SL_X2 = 7.207
-LET SL_Y = 5.518+.26
-LET TIT_X = 7.207/2
-LET TIT_Y = 5.518+.85
-LET TSUCHR = 0.09
-LET NTSULNS = IF 1 THEN 3 ELSE 2
-LET NCTSULNS = 85
- 
-let str1a = STRLEN("($source_list)")
- !-> DEFINE VARIABLE str1a = STRLEN("Mw 9.2, 14.76*a12+14.76*b12+14.76*a13+14.76*b13+14.76*a14+14.76*b14+14.76*a15+14.76*b15+14.76*a16+14.76*b16+14.76*a17+14.76*b17+14.76*a18+14.76*b18+14.76*a19+14.76*b19+14.76*a20+14.76*b20+14.76*a21+14.76*b21+14.76*a22+14.76*b22+14.76*a23+14.76*b23")
-let lstr1 = STRLEN("+")
- 
-let str2a = STRLEN("{193.63,193.94,194.97,195.29,196.43,196.69,197.9,198.12,199.43,199.62,200.88,201.11,202.26,202.57,203.6,204,204.9,205.34,206.21,206.66,207.54,207.99,208.94,209.4}")
-list str2a
-             VARIABLE : STRLEN("{193.63,193.94,194.97,195.29,196.43,196.69,197.9,198.12,199.43,199.62,200.88,201.11,202.26,202.57,203.6,204,204.9,205.34,206.21,206.66,207.54,207.99,208.94,209.4}")
-          162.000
- 
-def sym aLIST = Mw 9.2, 14.76*a12+14.76*b12+14.76*a13+14.7
- 
-let lstr2 = STRLEN("($alist)")
- !-> DEFINE VARIABLE lstr2 = STRLEN("Mw 9.2, 14.76*a12+14.76*b12+14.76*a13+14.7")
- 
-let str3a = STRLEN("($source_list)")
- !-> DEFINE VARIABLE str3a = STRLEN("Mw 9.2, 14.76*a12+14.76*b12+14.76*a13+14.76*b13+14.76*a14+14.76*b14+14.76*a15+14.76*b15+14.76*a16+14.76*b16+14.76*a17+14.76*b17+14.76*a18+14.76*b18+14.76*a19+14.76*b19+14.76*a20+14.76*b20+14.76*a21+14.76*b21+14.76*a22+14.76*b22+14.76*a23+14.76*b23")
-list str3a
-             VARIABLE : STRLEN("Mw 9.2, 14.76*a12+14.76*b12+14.76*a13+14.76*b13+14.76*a14+14.76*b14+14.76*a15+14.76*b15+14.76*a16+14.76*b16+14.76*a17+14.76*b17+14.76*a18+14.76*b18+14.76*a19+14.76*b19+14.7
-          247.000
- 
-!let a = 12; list a
- 
-LET STR3 = STRLEN("abcd")
-list str3
-             VARIABLE : STRLEN("abcd")
-          4.00000
- 
-let str4a = STRLEN("($source_list)")
- !-> DEFINE VARIABLE str4a = STRLEN("Mw 9.2, 14.76*a12+14.76*b12+14.76*a13+14.76*b13+14.76*a14+14.76*b14+14.76*a15+14.76*b15+14.76*a16+14.76*b16+14.76*a17+14.76*b17+14.76*a18+14.76*b18+14.76*a19+14.76*b19+14.76*a20+14.76*b20+14.76*a21+14.76*b21+14.76*a22+14.76*b22+14.76*a23+14.76*b23")
- 
-list str4a
-             VARIABLE : STRLEN("Mw 9.2, 14.76*a12+14.76*b12+14.76*a13+14.76*b13+14.76*a14+14.76*b14+14.76*a15+14.76*b15+14.76*a16+14.76*b16+14.76*a17+14.76*b17+14.76*a18+14.76*b18+14.76*a19+14.76*b19+14.7
-          247.000
- 
- 
-! Fix bug in @CNNN within multi-line labels
-GO bn_reset
-cancel mode verify
-GO err570_cnnn_multiline.jnl
-! Changing pen with @Cnnn did not work in
-! multi-line labels
- 
-plot/hl=0:1/vl=0:1/vs 0,0
-label 0.2, 0.7, 0, 0, 0.2, "@p2This<NL>@P3works<NL>@p4fine."
-label 0.5, 0.7, 0, 0, 0.2, "@C002this<NL>@c003does<NL>@C004not."
-label 0.8, 0.7, 0, 0, 0.2, "@C002this<NL>does<NL>not @C004either."
- 
-label 0.1, 0.3, 0, 0, 0.2, "greek<NL>@SGt at SR_y<NL>works"
- 
-! For a very fine grid, coordinates not listed with enough precision.
-GO bn_reset
-cancel mode verify
-GO err570_fine_grid_list.jnl
-! err570_fine_grid_list.jnl
-! ACM 10/2004
-! ACM  6/2007 CANCEL LIST/PREC at the end to restore the default state.
- 
-! For a very fine grid in longitude and latitude, the coordinates
-! are not listed with enough precision to resolve them.
- 
- 
-let hlon= {204.89923, 204.89975, 204.90025, 204.90076, 204.90126}
-let hlat = { 19.70020, 19.70071, 19.70122, 19.70173, 19.70223, 19.70274}
- 
-def axis/x/units=lon xfine = hlon
-def axis/y/units=lat yfine = hlat
- 
-let myvar = x[gx=xfine] + y[gy=yfine]
- 
-set list/prec=8
-list/form=tab myvar
-             VARIABLE : X[GX=XFINE] + Y[GY=YFINE]
-             BAD FLAG : -1.E+34       
-             SUBSET   : 5 by 6 points (LONGITUDE-LATITUDE)
-  	155.1W   	155.1W   	155.1W   	155.1W   	155.1W   
-19.7N	224.59943	224.59995	224.60045	224.60096	224.60146
-19.7N	224.59994	224.60046	224.60096	224.60147	224.60197
-19.7N	224.60045	224.60097	224.60147	224.60198	224.60248
-19.7N	224.60096	224.60148	224.60198	224.60249	224.60299
-19.7N	224.60146	224.60198	224.60248	224.60299	224.60349
-19.7N	224.60197	224.60249	224.60299	224.6035	224.604
- 
-set list/prec=8
-list/form=comma myvar
-             VARIABLE : X[GX=XFINE] + Y[GY=YFINE]
-             BAD FLAG : -1.E+34       
-             SUBSET   : 5 by 6 points (LONGITUDE-LATITUDE)
-   155.1W   ,155.1W   ,155.1W   ,155.1W   ,155.1W   
-19.7N,224.59943,224.59995,224.60045,224.60096,224.60146
-19.7N,224.59994,224.60046,224.60096,224.60147,224.60197
-19.7N,224.60045,224.60097,224.60147,224.60198,224.60248
-19.7N,224.60096,224.60148,224.60198,224.60249,224.60299
-19.7N,224.60146,224.60198,224.60248,224.60299,224.60349
-19.7N,224.60197,224.60249,224.60299,224.6035,224.604
- 
-list/clobber/head=enh/form=(f9.5)/file=fine.dat myvar
-sp cat fine.dat
-             VARIABLE : X[GX=XFINE] + Y[GY=YFINE]
-             LONGITUDE: 155.1W(204.9) to 155.1W(204.9)
-             LATITUDE : 19.7N to 19.7N
-             GEOMETRY: XY 
-             SIZE:  5  6  
-             FORTRAN FORMAT: (f9.5)
-             MISSING VALUES FLAG: -1.0000000E+34
-X COORDINATES: degrees_east
-204.89923
-204.89975
-204.90025
-204.90076
-204.90126
-Y COORDINATES: degrees_north
- 19.70020
- 19.70071
- 19.70122
- 19.70173
- 19.70223
- 19.70274
-DATA:
-224.59943
-224.59995
-224.60045
-224.60096
-224.60146
-224.59994
-224.60046
-224.60096
-224.60147
-224.60197
-224.60045
-224.60097
-224.60147
-224.60198
-224.60248
-224.60096
-224.60148
-224.60198
-224.60249
-224.60299
-224.60146
-224.60198
-224.60248
-224.60299
-224.60349
-224.60197
-224.60249
-224.60299
-224.60350
-224.60400
-sp rm -f fine.dat
- 
-cancel list/precision
- 
-! Range includes just one coordinate point on the axis
-! Plot using /HLIM
-GO bn_reset
-cancel mode verify
-GO err570_hlimit_onepoint
-!err570_hlimit_onepoint.jnl
-! 15-Oct-2004  ACM
- 
-! range includes just one coordinate point on the axis
-! Fix so we can plot this with /HLIMIT (previously gave
-! misleading error)
-! If no /HLIMIT, should issue an error
- 
-set mode ignore_error
- 
-use coads_vwnd
-set reg/x=180:200/y=35:45/t=1-jan-1985:1-feb-1985
-plot/sym/siz=0.3/hlim="1-jan-1985 18": "1-feb-1985 20" 0*t[gt=vwnd]
- 
-plot/sym/siz=0.3 0*t[gt=vwnd]
-set mode/last ignore_error
- 
-! Regridding between Gregorian and Julian time axes with @NRST
-! caused a segfault.
-GO bn_reset
-cancel mode verify
-GO err570_index111.jnl
-! err570_index111.jnl
-! 3-nov-04 ACM
-! Fixes for bug 1049.
-!
-! See ~ansley/ans_ferret/users/wittenberg/bug1049.jnl
-! This was due to a bug in the fix for bug 562. In
-! that fix we allowed subscripts of -111 when there
-! was a range of subscripts including that value.
-! The fix didnt correctly distinguish between that
-! case and -111 used as the missing-integer flag.
- 
- 
-DEF AXIS/T/UNITs=days/T0="01-JAN-1979 00:00:00"/CAL=gregorian \
-  tgreg = {6590.5,6620.0,6649.5,6680.0,6710.5,6741.0,6771.5,\
-  6802.5,6833.0,6863.5,6894.0,6924.5,6955.5,6985.0,7014.5,\
-  7045.0,7075.5,7106.00}
-DEF AXIS/T/UNITS=hours/t0="01-JAN-1900 00:00:00"/CAL=julian \
-  tjul = { 850692,851400,852108,852840,853572,854304,855036,\
-  855780,856512,857244,857976,858708}
- 
-LET s1 = T[GT=tgreg]
-LET s2 = T[GT=tjul]
- 
-LIST/T=1-jan-1997:1-jan-1998 s2[GT=s1 at NRST]
-             VARIABLE : T[GT=TJUL]
-                        regrid: on T at NRST
-             SUBSET   : 12 points (TIME)
- 16-JAN-1997 12 /  1:  850692.
- 15-FEB-1997 00 /  2:  851400.
- 16-MAR-1997 12 /  3:  852108.
- 16-APR-1997 00 /  4:  852840.
- 16-MAY-1997 12 /  5:  853572.
- 16-JUN-1997 00 /  6:  854304.
- 16-JUL-1997 12 /  7:  855036.
- 16-AUG-1997 12 /  8:  855780.
- 16-SEP-1997 00 /  9:  856512.
- 16-OCT-1997 12 / 10:  857244.
- 16-NOV-1997 00 / 11:  857976.
- 16-DEC-1997 12 / 12:  858708.
- 
- 
-! Data has missing value flag of NaN. Under linux, SHOW DATA/FULL
-! crashed on trying to format value for the output buffer.
-GO bn_reset
-cancel mode verify
-GO err570_sh_dat_nan.jnl
-! err570_sh_dat_nan.jnl
-! 4-Nov-2004 acm
- 
-! See bug 1070.
-! Data has missing value flag of NaN. Under linux, SHOW DATA/FULL
-! crashed on trying to format value for the output buffer.
- 
-use nan_missing.nc
-show data/full
-     currently SET data sets:
-    1> ./nan_missing.nc  (default)
-     NCEP Ocean Analysis
- name     title                             I         J         K         L         M         N
- TEMP     temperature                      1:1       1:1       1:19      1:1       ...       ...
-             degree_Celsius on grid GGH1 with 1.E-34 & NaN for missing data
-             X=139.8E:140.8E  Y=0.5S:0.5N  Z=0:375  
- 
-  time range: FEB-1980
- 
- 
- 
-! Time reqest out of range on NOLEAP axes.
-GO bn_reset
-cancel mode verify
-GO err570_time_range.jnl
-! err570_time_range.jnl  bug1080
-! time request out of range with calendar axis and RETURN=
- 
-def axis/t="16-Jan-1861 12:00:00":"16-mar-1881 12:00:00":1/units=months/calendar=noleap tax
-let a = t[gt=tax]
-save/clob/file=aa.nc a
-save/clob/file=cc.nc a
-use aa
-use cc
- 
-define grid/like=a[d=1] var1_grid_
-let var1_ = a[d=1,t="16-Jan-1861 12:00:00"]
-let var2_ = a[gx=var1_grid_,gy=var1_grid_,d=2,t="16-Jan-1861 12:00:00"]
-set var/units="`a[d=1,t="16-Jan-1861 12:00:00"],return=units`" var1_
- !-> set var/units=" " var1_
-set var/units="`a[gx=var1_grid_,gy=var1_grid_,d=2,t="16-Jan-1861 12:00:00"],return=units`" var2_
- !-> set var/units=" " var2_
-!  error message on this last command; noleap calendar not treated correctly.
- 
-! Fix for bug 1066; error doing 2-D polygon overlaying
-! a non-standard calendar axis
-GO bn_reset
-cancel mode verify
-GO err570_poly_over_julian.jnl
-! err570_poly_over_julian.jnl
-! ACM 11/12/04
- 
-! Bug 1066
-! Overlaying data on a Julian time axis got an error:
-!          Differing calendar axes:
-!          first variable is on JULIAN axis
-!          overlaid variable is on GREGORIAN axis
- 
-use coads_climatology
-set axis/CAL=JULIAN time
-plot/x=140w/y=0 sst
-plot/ov/vs/line=3 {400,900,900,400}, {25.5,25.5,26.5,25.5}
-poly/ov/pal=green {400,900,900,400}, {25.5,25.5,26.5,25.5}
- 
- 
-! Fix for bug 1077; return ERROR rather than NOTE when
-! exiting from a script where query/ignore or other coached
-! string substitution returns the user-given error message
-GO bn_reset
-cancel mode verify
-GO err570_coaching hello
-! err570_coaching.jnl
-! ACM 11/12/04  Bug 1077
- 
-! test this with GO err570_coaching hello
- 
-! We are changing NOTE to ERROR in coached_str_sub
-! when the script gives the user-defined error text.
-! We still may have an ERROR and then NOTE to explain
-! the list of valid arguments.
- 
-set mode ignore_errors
- 
-! incorrect argument with query/ignore
-query/ignore $1%q|a|b|c|d|<First argument is a letter of the alphabet%
-query/ignore $2%|a|b|c|d|%
- 
-! These example message commands taken from bn_dollar
- 
-! doesn't match on "hello"; the first line below now
-! uses ERROR instead of NOTE when writing my error message
- 
-message/cont $1"|xxxxx|goodbye<my error message"
-message/cont $1"greetings|xxxxx|goodbye"
- 
-! no argument supplied;  the first line below now
-! uses ERROR instead of NOTE when writing my error message
- 
-message/cont $3"|hello|goodbye<my error message"
-message/cont $3">greetings|hello|goodbye"
- 
-! Here are some lines from bn_symbols; the first and third now use ERROR instead of NOTE
- 
-message/continue ($test2"<my error message")
-message/continue ($test2"|hello|bye|")
-message/continue ($test2"|hello|bye|<my error message")    ! silent error
-message/continue ($t2"|solong>really hello|bye|")
- 
-set mode/last ignore_errors
- 
-! Fix for bug 485: say ($0) in a script should return the
-! name of the script
-GO bn_reset
-cancel mode verify
-GO err570_dollar_zero.jnl
-! err570_dollar_zero.jnl
-! (bug 485) Got a command syntax error;
-! $0 in script should return the script name
- 
-SET MODE ignore_error
-SAY ($0)
- !-> MESSAGE/CONTINUE err570_dollar_zero.jnl
-err570_dollar_zero.jnl
- 
-SET MODE/LAST ignore_error
- 
-! Fix for bug 596; list/i=0:300:0 var crashed Ferret
-GO bn_reset
-cancel mode verify
-GO err570_illegal_stride.jnl
-! err570_illegal_stride.jnl
-! (bug 596) list/i=0:300:0 var crashed Ferret
- 
-SET MODE ignore_error
-use coads_climatology
-list/l=1/j=40/i=0:300:0 sst
- 
-SET MODE/LAST ignore_error
- 
-! Fix for bug 1085; /THICK without color specifier caused all lines to revert to black
-GO bn_reset
-cancel mode verify
-GO err570_thick_colors.jnl
-! err570_thick_colors.jnl  bug1085
-! /THICK without color specifier causes all lines to revert to black
- 
-PLOT/THICK/I=1:100 cos(i/20), sin(i/30)
-PLOT/OVER/THICK=3/I=1:100 cos(i/30)*sin(i/20)
-PLOT/OVER/THICK=1/I=1:100 cos(i/10), sin(i/50), cos(i/40)*sin(i/10)
- 
-! time series
-USE gtsa056_2
-PLOT/THICK/X=180/Y=0/K=1 temp
-PLOT/OVER/THICK/X=180/Y=-1/K=1 temp
-PLOT/OVER/THICK/X=180/Y=1/K=1 temp
- 
-! plot/vs
-PLOT/VS/LINE/THICK/I=1:314 i*cos(i/20), i*sin(i/20)
-PLOT/OVER/VS/LINE/THICK/I=1:314 i*cos(i/18), i*sin(i/18)
-PLOT/OVER/VS/LINE/THICK=3/I=1:314 i*cos(i/16), i*sin(i/16)
-PLOT/OVER/VS/LINE/THICK=1/I=1:314 i*cos(i/14), i*sin(i/14)
- 
- 
-! Fix for bug 1102: under linux, var[d=filename] fails if filename
-! starts with a digit.
-GO bn_reset
-cancel mode verify
-GO err570_digit_filename.jnl
-! err570_digit_filename.jnl
-! Bug 1102: under linux, var[d=filename] fails if filename
-! starts with a digit.
- 
-let a = x[i=1:10]
-save/clobber/file=10a.nc a
-can var/all
-use 10a
-list a[x=1:4,d=10a]
-             VARIABLE : X[I=1:10]
-             FILENAME : 10a.nc
-             SUBSET   : 4 points (X)
- 1   / 1:  1.000
- 2   / 2:  2.000
- 3   / 3:  3.000
- 4   / 4:  4.000
-list a[x=1:4,d=1]
-             VARIABLE : X[I=1:10]
-             FILENAME : 10a.nc
-             SUBSET   : 4 points (X)
- 1   / 1:  1.000
- 2   / 2:  2.000
- 3   / 3:  3.000
- 4   / 4:  4.000
- 
- 
-use coads_climatology
-list a[x=1:4,d=1]
-             VARIABLE : X[I=1:10]
-             FILENAME : 10a.nc
-             SUBSET   : 4 points (X)
- 1   / 1:  1.000
- 2   / 2:  2.000
- 3   / 3:  3.000
- 4   / 4:  4.000
-list a[i=1:4,d=1]
-             VARIABLE : X[I=1:10]
-             FILENAME : 10a.nc
-             SUBSET   : 4 points (X)
- 1   / 1:  1.000
- 2   / 2:  2.000
- 3   / 3:  3.000
- 4   / 4:  4.000
- 
-list a[i=1:4,d=10a]
-             VARIABLE : X[I=1:10]
-             FILENAME : 10a.nc
-             SUBSET   : 4 points (X)
- 1   / 1:  1.000
- 2   / 2:  2.000
- 3   / 3:  3.000
- 4   / 4:  4.000
-list a[i=1:4,d=10a.nc]
-             VARIABLE : X[I=1:10]
-             FILENAME : 10a.nc
-             SUBSET   : 4 points (X)
- 1   / 1:  1.000
- 2   / 2:  2.000
- 3   / 3:  3.000
- 4   / 4:  4.000
- 
-! Fix for bug 1098: DODS URL label was cut off
-GO bn_reset
-cancel mode verify
-GO err570_dods_url_label.jnl
-! err570_dods_url_label.jnl
-!
-! Bug 1098. Look for the label with the URL: it should include
-! everything up to the last slash.
-! acm 11/04
- 
- 
-!! Change to another dataset, our server down...
-!!use  "http://www.ferret.noaa.gov/cgi-bin/nph-nc/data/bn_strides.cdf"
-!!sh data
-!!plot/i=1/j=1 temp
-!!ppl list labels
- 
-!!set data "http://ferret.pmel.noaa.gov:8080/thredds/dodsC/data/COADS_climatology.nc"
-!!sh data
-!!plot/x=180/y=0 airt
-!!ppl list labels
- 
-!!set data "http://apdrc.soest.hawaii.edu/thredds/dodsC/woa/1994/annual"
-!!sh data
-!!plot/x=180/y=0 otemp
-!!ppl list labels
- 
-! Change to the OPeNDAP test server.
-!!use "http://test.opendap.org/opendap/data/nc/coads_climatology.nc"
-!!sh data
-!!plot/x=180/y=0 sst
-!!ppl list labels
- 
-!! Change to another server, this one not working 3/2012
-!! use "http://iridl.ldeo.columbia.edu/SOURCES/.LEVITUS/.MONTHLY/.temp/dods"
-!!sh data
-!!plot/x=180/y=0/k=1 temp
-!!ppl list labels
- 
- 
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/coads_climatology.nc"
-sh data
-     currently SET data sets:
-    1> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/coads_climatology.nc  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:12      ...       ...
- AIRT     AIR TEMPERATURE                  1:180     1:90      ...       1:12      ...       ...
- SPEH     SPECIFIC HUMIDITY                1:180     1:90      ...       1:12      ...       ...
- WSPD     WIND SPEED                       1:180     1:90      ...       1:12      ...       ...
- UWND     ZONAL WIND                       1:180     1:90      ...       1:12      ...       ...
- VWND     MERIDIONAL WIND                  1:180     1:90      ...       1:12      ...       ...
- SLP      SEA LEVEL PRESSURE               1:180     1:90      ...       1:12      ...       ...
- 
-plot/x=180/y=0 sst
-ppl list labels
- @ACSEA SURFACE TEMPERATURE (Deg C)                                             
-                                                                                
- @ASDeg C                                                                       
-
-          XPOS       YPOS     HGT   ROT   UNITS
- LAB 1  8.000E+00  7.200E+00 0.060    0  SYSTEM  @ASFERRET Ver. 6.85
- 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  @AS12-NOV-2013 15:13:02
- 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
- LAB 5  0.000E+00  6.600E+00 0.120    0  SYSTEM  @ASLATITUDE : 1S
- LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
- LAB 6  8.000E+00  6.540E+00 0.090    0  SYSTEM  @ASDATA SET: coads_climatology
- 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/
- LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
- 
- 
-! Fix for bug 906: auto-formatting of labels on color keys loses precision
-GO bn_reset
-cancel mode verify
-GO err570_keylabels.jnl
-! err570_keylabels.jnl
-! 11/2004
- 
-! (bug 906)
-! auto-formatting of labels on color keys loses precision
-! key labels are 370, 371, 371, 372, 372, ...
- 
-let a = 370 + x[x=1:10:1] + 0.2*y[y=1:10:1]
-shade/lev=(370,382,0.5) a
- 
-! Fix for bug 1130: error and crash on some systems polygon command
-! where polygon arguments have latitude or longitude units
-GO bn_reset
-cancel mode verify
-GO err570_poly_lonlat_axis.jnl
-! err570_poly_lonlat_axis.jnl
-! 12/14/04
-!
-! The polygon command gave error messages and under version 5.7
-!    Symbol not found
-!    XFOR (I7,'LONE')
-! and similarly for the y axis.
-!
-! RedHat 7 binary, under Debian 3.0 Linux the poly command crashes Ferret.
- 
-LET XTRIANGLE = YSEQUENCE({-1,0,1})
-LET YTRIANGLE = YSEQUENCE({-1,1,-1})
-LET XPTS = 120+30*RANDU(I[i=1:10])
-LET YPTS = 30*RANDU(1+I[i=1:10])
-LET/title="longitude"/units="degrees_east" XT = XTRIANGLE+XPTS
-LET/title="latitude"/units="degrees_north" YT = YTRIANGLE+YPTS
-POLYGON XT, YT, I[I=1:10]
- 
-! Add the same fix to plot_set_up.F for PLOT/VS commands
- 
-PLOT/VS XT, YT
- 
-! ******** V5.81 Additions below ***********
-GO bn_reset
-cancel mode verify
-GO bn_inf_levels.jnl
-! Run FERRET/fer/ferretdods_gui
-! test open upper and lower levels (-INF) (INF)
- 
-can mode logo
-set win/siz=0.4
- 
-use coads_climatology
- 
-shade/set/lev=(-inf),(4,28,2)(inf) sst[l=1]
-ppl shakey,1,0,-0.1,,,,,,`($ppl$ylen)+($ppl$yorg)+0.1`
- !-> ppl shakey,1,0,-0.1,,,,,,7.5
-ppl shade
- 
-can view
- 
-! many levels: triangles forced to be 5% of total key length
-! (add SHOW SYM LEV* to catch behavior of bug 1519 which
-!  did not plot color in the entire area for FILL plots.)
- 
-set view left
-fill/x=20e:150e/lev=(-inf),(4,28,0.5)(inf) sst[l=1]
-sh sym lev*
-LEV_TEXT = "(-INF),(4,28,0.5)(INF)"
-LEV_MIN = "-2.8"
-LEV_MAX = "32"
-LEV_NUM = "50"
-LEV_DEL = "6.8"
- 
-set view right
-shade/lev=(-inf),(4,28,0.5)(inf)/key=cont sst[l=1]
-sh sym lev*
-LEV_TEXT = "(-INF),(4,28,0.5)(INF)"
-LEV_MIN = "-2.8"
-LEV_MAX = "32"
-LEV_NUM = "50"
-LEV_DEL = "6.8"
- 
- 
-can view
- 
-! horizontal.
- 
-set view upper
-fill/x=20e:150e/set/lev=(-inf),(4,28,0.5)(inf)/y=0:90 sst[l=1]
-ppl shakey,1,0,-0.1,10,,,,,`($ppl$ylen)+($ppl$yorg)+0.1`
- !-> ppl shakey,1,0,-0.1,10,,,,,3.1
-ppl fill
- 
-set view lower
-shade/set/lev=(-inf),(4,28,0.5)(inf)/y=0:90/key=cont sst[l=1]
-ppl shakey,1,0,-0.1,10,,,,,`($ppl$ylen)+($ppl$yorg)+0.1`
- !-> ppl shakey,1,0,-0.1,10,,,,,3.1
-ppl shade
- 
-! Some one-sided examples
-can view
- 
-fill/lev=(-2,28,1)(inf) sst[l=1]
- 
-shade/set/lev=(-inf),(4,30,0.5)/key=cont/pal=rainbow sst[l=1]
-ppl shakey,1,0,-0.1,10,,,,,`($ppl$ylen)+($ppl$yorg)+0.1`
- !-> ppl shakey,1,0,-0.1,10,,,,,7.5
-ppl shade
- 
-let filler = missing(sst[l=1],-999)
-shade/over/pal=black/nolab/lev=(-999,-999,-999) filler
- 
-can view
- 
-! polygon command
- 
-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/nolable/lev=(-inf)(200,900,50)(inf) xpts+xsqr, ypts+ysqr, x*x/10
- 
- 
-use coads_climatology
-def axis/x=0:360:5 xq
-def axis/y=-90:90:4 yq
-let fsst =  sst[l=1,gx=xq,gy=yq]
- 
-let lon = xsequence(x[gx=xq] + 0*y[gy=yq])
-let lat = xsequence(0*x[gx=xq] + y[gy=yq])
-shade/nokey/pal=white/nolab/axes=0,0,0,0 fsst  ! set up
-go polymark poly/key/title="polygons"/lev=(-inf)(4,26,1)(inf), lon, lat, xsequence(fsst), square, 0.4
- 
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_regulart.jnl
-! bn_regulart.jnl
-! 5/12/2005 ACM
- 
-! Test of the USE/REGULART qualifier
-! The axis is irregular in the first instance, and regular in the second
- 
-use coads_vwnd
-show axis tcoads
- name       axis              # pts   start                end
- TCOADS    TIME               648 i   16-JAN-1946 12:00    16-DEC-1999 12:00
-T0 = 01-JAN-1700 00:00:00
-   Axis span (to cell edges) = 19723
-list/l=1:6 t[gt=tcoads], tbox[gt=tcoads]
-             TIME: JAN-1946 to JUL-1946
- Column  1: T is T (axis TCOADS)
- Column  2: TBOX is TBOX (axis TCOADS)
-                         T   TBOX
-16-JAN-1946 12 / 1:  89865.  31.00
-15-FEB-1946 00 / 2:  89894.  28.00
-16-MAR-1946 12 / 3:  89924.  31.00
-16-APR-1946 00 / 4:  89954.  30.00
-16-MAY-1946 12 / 5:  89985.  31.00
-16-JUN-1946 00 / 6:  90015.  30.00
-can data/all
- 
-use/regulart coads_vwnd
-show axis tcoads
- name       axis              # pts   start                end
- TCOADS    TIME               648 r   16-JAN-1946 12:00    16-DEC-1999 12:00
-T0 = 01-JAN-1700 00:00:00
-   Axis span (to cell edges) = 19722.44
-list/l=1:6 t[gt=tcoads], tbox[gt=tcoads]
-             TIME: JAN-1946 to JUL-1946
- Column  1: T is T (axis TCOADS)
- Column  2: TBOX is TBOX (axis TCOADS)
-                      T   TBOX
-16-JAN-1946 / 1:  89865.  30.44
-15-FEB-1946 / 2:  89895.  30.44
-18-MAR-1946 / 3:  89925.  30.44
-17-APR-1946 / 4:  89956.  30.44
-18-MAY-1946 / 5:  89986.  30.44
-17-JUN-1946 / 6:  90017.  30.44
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_labwid.jnl
-! LABWID returns the length in Denbo inches of the
-! string.  For multi-line strings, returns length of
-! the longest line.
- 
-LIST LABWID("aaaaabbbbb", .15)
-             VARIABLE : LABWID("aaaaabbbbb", .15)
-             X        : 1
-          1.357
-LIST LABWID("aaaaabbbbb", .10)
-             VARIABLE : LABWID("aaaaabbbbb", .10)
-             X        : 1
-          0.9048
-LIST LABWID("aaaaabbbbb<NL>ee", .15)
-             VARIABLE : LABWID("aaaaabbbbb<NL>ee", .15)
-             X        : 1
-          1.357
-LIST LABWID("ee<NL>aaaaabbbbb", .15)
-             VARIABLE : LABWID("ee<NL>aaaaabbbbb", .15)
-             X        : 1
-          1.357
- 
- 
-LIST LABWID("@IISTRING", .15)
-             VARIABLE : LABWID("@IISTRING", .15)
-             X        : 1
-          0.9808
-LIST LABWID("@SSSTRING", .15)
-             VARIABLE : LABWID("@SSSTRING", .15)
-             X        : 1
-          0.9143
-LIST LABWID("@SSSTRING<NL>@IISTRING", .15)
-             VARIABLE : LABWID("@SSSTRING<NL>@IISTRING", .15)
-             X        : 1
-          0.9808
-LIST LABWID("@IISTRING<NL>@SSSTRING", .15)
-             VARIABLE : LABWID("@IISTRING<NL>@SSSTRING", .15)
-             X        : 1
-          0.9808
- 
- 
-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)
- 
- 
-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"
- 
-GO bn_reset
-cancel mode verify
-GO bn_redefine_taxis_mc.jnl
-! bn_redefine_taxis_mc.jnl
-! ACM 15-Apr-2005
- 
-! Redefine the time axis of a multi-file data set.
-! Lets us fix a time axis, which may in fact be irregular, but
-! the multi-file reading always makes into a regularly-spaced axis.
- 
-set data coads_clim.des
-list/x=180/y=0 sst
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             DATA SET : COAD
-             FILENAME : coads_clim.des
-             SUBSET   : 6 points (TIME)
-             LONGITUDE: 179E
-             LATITUDE : 1S
-                   179E   
-                    80
- 16-JAN-1900 / 1:  28.20
- 15-FEB-1900 / 2:  28.36
- 18-MAR-1900 / 3:  28.35
- 17-APR-1900 / 4:  28.22
- 17-MAY-1900 / 5:  28.49
- 17-JUN-1900 / 6:  28.32
- 
-def sym taxisname  `sst,return=taxis`
- !-> def sym taxisname  TIME1
- 
-def axis/t=1-mar-1990:6-mar-1990:1/units=days ($taxisname)
- !-> def axis/t=1-mar-1990:6-mar-1990:1/units=days TIME1
-list/x=180/y=0 sst
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             DATA SET : COAD
-             FILENAME : coads_clim.des
-             SUBSET   : 6 points (TIME)
-             LONGITUDE: 179E
-             LATITUDE : 1S
-                      179E   
-                       80
- 01-MAR-1990 00 / 1:  28.20
- 02-MAR-1990 00 / 2:  28.36
- 03-MAR-1990 00 / 3:  28.35
- 04-MAR-1990 00 / 4:  28.22
- 05-MAR-1990 00 / 5:  28.49
- 06-MAR-1990 00 / 6:  28.32
- 
-def axis/t=1:6:1 ($taxisname)
- !-> def axis/t=1:6:1 TIME1
-list/x=180/y=0 sst
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             DATA SET : COAD
-             FILENAME : coads_clim.des
-             SUBSET   : 6 points (T)
-             LONGITUDE: 179E
-             LATITUDE : 1S
-           179E   
-            80
- 1   / 1:  28.20
- 2   / 2:  28.36
- 3   / 3:  28.35
- 4   / 4:  28.22
- 5   / 5:  28.49
- 6   / 6:  28.32
- 
-GO bn_reset
-cancel mode verify
-GO bn_illegal_axisname.jnl
-! Some OPenDAP HDF files have illegal axis names, e.g. with a dot in the name.
-! This is a test of using such names, in a redefinition of the axes of the data.
-! The file has a variable with axis names COADSX.ILLEGAL, COADSY.ILLEGAL. The axes contain
-! just indices.  The file also has variables NEW.LONGITUDES and NEW.LATITUDES which contain
-! geographic coordinates that we want to substitute for the axes.
- 
-use illeg_axname.nc
-sh data
-     currently SET data sets:
-    1> ./illeg_axname.nc  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:21      1:16      ...       ...       ...       ...
- NEW.LONGITUDES
-          X[GX=SST]                        1:21      ...       ...       ...       ...       ...
- NEW.LATITUDES
-          Y[GY=SST]                        ...       1:16      ...       ...       ...       ...
- 
-list/i=1:5 x[gx=sst]
-             VARIABLE : X
-                        axis COADSX.ILLEGAL
-             FILENAME : illeg_axname.nc
-             SUBSET   : 5 points (X)
- 60   / 1:  60.00
- 61   / 2:  61.00
- 62   / 3:  62.00
- 63   / 4:  63.00
- 64   / 5:  64.00
-set view upper; shade sst
- 
-define axis/x/modulo/units=degrees_east 'coadsx.illegal' = XSEQUENCE('NEW.LONGITUDES')
-define axis/y/units=degrees_north 'coadsy.illegal' = XSEQUENCE('NEW.LATITUDES')
- 
-list/i=1:5 x[gx=sst]
-             VARIABLE : X
-                        axis 'COADSX.ILLEGAL'
-             FILENAME : illeg_axname.nc
-             SUBSET   : 5 points (LONGITUDE)
- 21E   / 1:  21.00
- 23E   / 2:  23.00
- 25E   / 3:  25.00
- 27E   / 4:  27.00
- 29E   / 5:  29.00
-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
- normal    Z
- normal    T
- normal    E
- normal    F
- 
-GO bn_reset
-cancel mode verify
-GO bn_exit_script.jnl
-! bn_exit_script.jnl
-! 5/2005 ACM
-! tests of EXIT/SCRIPT command, in combination with IF and REPEAT
-! 3/2007 add a check for exit/script within a loop (fixes for bug 1304)
- 
-! Simple EXIT/SCRIPT command in a script
-go exit_script_1
-! test exit/script
- 
-exit/script
- 
-! EXIT/SCRIPT from an IF clause
-go exit_script_if
-! test exit/script from an IF clause
- 
-let a = 1
-if `a lt 10` then exit/script
- !-> if 1 then exit/script
- 
-! EXIT/SCRIPT inside REPEAT loop
-go exit_script_loop
-! test exit/script inside REPEAT loop
- 
-repeat/i=3:5 (list/nohead i; exit/script)
-!-> REPEAT: I=3
-          3.000
- 
-! EXIT/SCRIPT with IF clause and REPEAT loop
-go exit_script_if_loop
-! test exit/script with IF clause and REPEAT loop
- 
-repeat/i=3:10:2 (list/nohead i; if `i ge 6` then exit/script)
-!-> REPEAT: I=3
-          3.000
- !-> if 0 then exit/script
-!-> REPEAT: I=5
-          5.000
- !-> if 0 then exit/script
-!-> REPEAT: I=7
-          7.000
- !-> if 1 then exit/script
- 
-! EXIT/SCRIPT two levels down
-go exit_script_twolev
-! test exit/script called another level down
- 
-go exit_script_if
-! test exit/script from an IF clause
- 
-let a = 1
-if `a lt 10` then exit/script
- !-> if 1 then exit/script
- 
-say "returned from exit_script_if"
-returned from exit_script_if
-say "here is the next line"
-here is the next line
- 
-! EXIT/SCRIPT two levels down
-go exit_script_twolev
-! test exit/script called another level down
- 
-go exit_script_if
-! test exit/script from an IF clause
- 
-let a = 1
-if `a lt 10` then exit/script
- !-> if 1 then exit/script
- 
-say "returned from exit_script_if"
-returned from exit_script_if
-say "here is the next line"
-here is the next line
- 
-! EXIT/SCRIPT from a script within a loop.
-! Should see output from 3 repeats of the loop but not
-! the SAY SCRIPT at each iteration of the repeat loop
- 
-cancel mode verify
-1
-loop
-2
-loop
-3
-loop
- 
-GO bn_reset
-cancel mode verify
-GO bn_exit_cycle.jnl
-! bn_exit_cycle.jnl
-! 5/2005 ACM
-! EXIT/CYCLE skips remaining commands in this repetition of a loop
- 
-can mode ver
-32
-64
-128
-256
-512
-1024
- 
- test exit/loop combined with exit/cycle
-32
-64
-128
-256
-say 512 if bigger than 500
-512
-say 1024 if bigger than 500
-1024
-say 2048 if bigger than 500
-say 4096 if bigger than 500
-say 8192 if bigger than 500
-say 16384 if bigger than 500
- 
-loop finished 16384 gt 10000
- 
-GO bn_reset
-cancel mode verify
-GO bn_curv_mod.jnl
-! bn_curv_mod
-! Test of fill/mod and contour/mod
-! 5/24/2005 Ferret v5.81
- 
-! The dataset is a portion of example tripolar grid.
- 
-! use "/home/ja3/hankin/user/gfdl/tri_polar/mom4_grid_example.nc"
-! save/clobber/file=tripolar_subset.nc geolon_vert_t[j=150:174], geolat_vert_t[j=150:174], ht[j=150:173]
- 
-! Note that this coord data is actually cell edges and so
-! isnt really what one would use for FILL and CONTOUR commands --
- 
-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]
- 
- 
-GO bn_reset
-cancel mode verify
-GO 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
- 
-use ocean_atlas_temp
-set region/x=130:290/y=-45:45
- 
-set view ul
-shade/title="default shade key" temp[l=1]
- 
-set view ur
-shade/key=cont/title="shade/key=cont" temp[l=1]
- 
-set view ll
-shade/key=cont/title="cont key with shakey call"/set temp[l=1]
- 
-let/quiet x1 = `($ppl$xorg)+0.1`
- !-> DEFINE VARIABLE/quiet x1 = 1.3
-let/quiet y1 = `($ppl$yorg)+($ppl$ylen)+0.1`
- !-> DEFINE VARIABLE/quiet y1 = 4.923
-let/quiet y2 = `($ppl$yorg)+($ppl$ylen)+0.5`
- !-> DEFINE VARIABLE/quiet y2 = 5.323
- 
-ppl shakey ,0,-.12,2,,,`x1`,,`y1`,`y2`
- !-> ppl shakey ,0,-.12,2,,,1.3,,4.923,5.323
-go unlabel 4
-go unlabel 5
-ppl shade
-ppl list shakey
-
-         DO KEY  ORIENT  LAB SIZE  LAB INC  LAB DIG  LAB LEN
-              1       0     -0.12        2        3        9
-
-
-         X LO     X HI     Y LO     Y HI
-         1.30     6.31     4.92     5.32
- 
-set view lr
-let/quiet x1 = `($ppl$xorg)+1`
- !-> DEFINE VARIABLE/quiet x1 = 2.2
-let/quiet x2 = `($ppl$xorg)+($ppl$xlen)-1`
- !-> DEFINE VARIABLE/quiet x2 = 5.212
-let/quiet y1 = `($ppl$yorg)`
- !-> DEFINE VARIABLE/quiet y1 = 1.4
-shade/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 shade
- 
-can view
- 
-set view ul
-fill/title="default fill key" temp[l=1]
- 
-set view ur
-fill/key=cont/title="fill/key=cont" temp[l=1]
- 
-set view ll
-fill/key=cont/title="cont key with shakey call"/set temp[l=1]
- 
-let/quiet x1 = `($ppl$xorg)+0.1`
- !-> DEFINE VARIABLE/quiet x1 = 1.3
-let/quiet y1 = `($ppl$yorg)+($ppl$ylen)+0.1`
- !-> DEFINE VARIABLE/quiet y1 = 4.923
-let/quiet y2 = `($ppl$yorg)+($ppl$ylen)+0.5`
- !-> DEFINE VARIABLE/quiet y2 = 5.323
- 
-ppl shakey ,0,-.12,2,,,`x1`,,`y1`,`y2`
- !-> ppl shakey ,0,-.12,2,,,1.3,,4.923,5.323
-go unlabel 4
-go unlabel 5
-ppl fill
-ppl list shakey
-
-         DO KEY  ORIENT  LAB SIZE  LAB INC  LAB DIG  LAB LEN
-              1       0     -0.12        2        3        9
-
-
-         X LO     X HI     Y LO     Y HI
-         1.30     6.31     4.92     5.32
- 
-set view lr
-let/quiet x1 = `($ppl$xorg)+1`
- !-> DEFINE VARIABLE/quiet x1 = 2.2
-let/quiet x2 = `($ppl$xorg)+($ppl$xlen)-1`
- !-> DEFINE VARIABLE/quiet x2 = 5.212
-let/quiet y1 = `($ppl$yorg)`
- !-> DEFINE VARIABLE/quiet y1 = 1.4
-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
- 
-GO bn_reset
-cancel mode verify
-GO bn581_bug_fixes.jnl
-! bn581_bug_fixes.jnl
-! test various fixes that went into version 5.81
-! 2/05 *acm*
-!
- 
-! Bug 1160 short axis with irreg bounds seen as regular.
-GO bn_reset
-cancel mode verify
-GO err580_irreg_bounds.jnl
-! err580_irreg_bounds.jnl
-! Define a short irregular time axis with some time_bounds,
-! and then read it into Ferret.  When the file is read in,
-! the bounds seem to be ignored; axis is seen as regular.
-! Bug 1160 reported by Andrew.
- 
-yes? def ax/t/edge time = {0,1,3}
-yes? let a = t[gt=time]
-yes? show grid/t a
-    GRID (G011)
- name       axis              # pts   start                end
- normal    X
- normal    Y
- normal    Z
- TIME      T                    2 i   0.5                  2
- normal    E
- normal    F
- 
-       L     T                   TBOX      TBOXLO
-       1>  0.5                   1          0
-       2>  2                     2          1
- 
-yes? save/clob/file=a.nc a
-sp echo "err580_irreg_bounds.jnl --- " >> all_ncdump.out
-yes? sp ncdump a.nc >> all_ncdump.out
- 
-can data/all
-can var/all
-can mem
- 
-!  T axis was marked as regular
-yes? use a.nc
-yes? show grid/t a
-    GRID GSI1
- name       axis              # pts   start                end
- normal    X
- normal    Y
- normal    Z
- TIME7     T                    2 i   0.5                  2
- normal    E
- normal    F
- 
-       L     T                   TBOX      TBOXLO
-       1>  0.5                   1          0
-       2>  2                     2          1
- 
-! Bug 1179 Cartesian_axis and positive="down" resulted in depth axis not being recognized
-GO bn_reset
-cancel mode verify
-GO err580_cartesian_depth.jnl
- ! err580_cartesian_depth.jnl
-! cartesian_axis attribute
-! combined with positive="down"
-! caused the axis not to be recognized as a depth axis
-! should be i- on the axis ZT
- 
-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
- normal    E
- normal    F
- 
-! Bug 1181 Titles were truncated at 80 characters
-GO bn_reset
-cancel mode verify
-GO err580_long_title.jnl
- 
- ! err580_long_title.jnl
- ! Titles were truncated at 80 characters
- 
-save/clobber/title="a long title longer than 80 characters a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789"/file=longtitle.nc x[x=1:10]
- 
-sp echo "err580_long_title.jnl --- " >> all_ncdump.out
-sp ncdump longtitle.nc >> all_ncdump.out
- 
-! Bug 1180 Allow "use filename.des"
-GO bn_reset
-cancel mode verify
-GO err580_use_des.jnl
-! err580_use_des.jnl
-! Allow "use filename.des"   (previously gave an "is this a CDF file?" error)
- 
-use vary_scale.des
-sh data
-     currently SET data sets:
-    1> ./vary_scale.des  (default)
- name     title                             I         J         K         L         M         N
- TT       1 + 0*T[GT=DAYT]                 ...       ...       ...       1:20      ...       ...
- 
- 
- 
-! Bug 1180 Allow "use filename.des"
-GO bn_reset
-cancel mode verify
-GO err580_use_des.jnl
-! err580_use_des.jnl
-! Allow "use filename.des"   (previously gave an "is this a CDF file?" error)
- 
-use vary_scale.des
-sh data
-     currently SET data sets:
-    1> ./vary_scale.des  (default)
- name     title                             I         J         K         L         M         N
- TT       1 + 0*T[GT=DAYT]                 ...       ...       ...       1:20      ...       ...
- 
- 
-! fix for bug 1181: dataset title was limited to 80 characters.
-GO bn_reset
-cancel mode verify
-GO err580_long_dsettitle.jnl
-! err580_long_dsettitle
-! fix for bug 1181
-! previously dataset title was limited to 80 characters.
- 
-! File has a dataset title 1000 characters long.
-use longtitle1000.nc
-say `a,return=dsettitle`
- !-> MESSAGE/CONTINUE 
-123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012 [...]
-
-123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012 [...]
- 
-! Set a dataset title over 80 characters.
-save/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.  "/clobber/file=longtitle.nc a
- 
-sp echo "err580_long_dsettitle.jnl --- " >> all_ncdump.out
-sp ncdump longtitle.nc >> all_ncdump.out
- 
-! fix for bug 1200:crash due to the long veckey format spec.
-GO bn_reset
-cancel mode verify
-GO err580_long_veckey.jnl
-! err580_long_veckey.jnl
-! Bug 1200 The following caused a crash due to the long veckey format spec.
- 
-vector/i=1:50/j=1:50/set  j-20+(i-i),i-20+(j-j)
- 
-ppl veckey,1,-3,,"(f4.0," x10^-^2 N m^-^2")"
-ppl vector
- 
-! restore the default setting
-ppl veckey,0,0,,"(1PG10.3)"
- 
-! fix for bug 1201: mistranslation of time region.
-GO bn_reset
-cancel mode verify
-GO err580_cal360_region.jnl
-! err580_cal360_region.jnl
-! Wrong output region: the set region mistakenly tranlated
- 
-def axis/t=15-apr-1990:15-apr-2000:15/units=days/t0=15-apr-1990/calendar=d360 tax
-let a = t[gt=tax]
-load a
-set reg/t=15-apr-1990:15-apr-1991
-sho reg
-default region:
-        X/I is unspecified
-        Y/J is unspecified
-        Z/K is unspecified
-        T=15-APR-1990 00:00:00:15-APR-1991 00:00:0
-        E/M is unspecified
-        F/N is unspecified
- 
- 
-! fix for bug 1203: crash if time range left off.
-GO bn_reset
-cancel mode verify
-GO err580_def_tax_norange.jnl
-! err580_def_t_norange.jnl
-! bug 1203. without the T range, these statements cause a STOP.
- 
-SET MODE ignore
-DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/t myt
- 
-DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/T/CALENDAR=noleap myt
- 
-! fix for bug 1207: closest distance and closest index transformations.
-GO bn_reset
-cancel mode verify
-GO err580_cdb.jnl
-! err580_cdb.jnl
-! bug 1207
- 
-! Bug in closest distance and closest index transformations
-! Code needs range below for CDB, CIB and above for CDA, CIA.
-! Instead it asked for a range above AND below the specified index.
-! So result is missing when it should not be.
- 
-def axis/x=1:20:1 aax
-let var = if mod(i,5) eq 1 then x[gx=aax]
- 
-list var[i=15 at cdb:5]
-             VARIABLE : IF MOD(I,5) EQ 1 THEN X[GX=AAX]
-             X        : 15 (closest dist below by 5 pts)
-          4.000
-list var[i=14 at cdb:5]
-             VARIABLE : IF MOD(I,5) EQ 1 THEN X[GX=AAX]
-             X        : 14 (closest dist below by 5 pts)
-          3.000
- 
-! These returned MISSING data with the bug, should not be missing.
- 
-list var[i=15 at cdb:10]
-             VARIABLE : IF MOD(I,5) EQ 1 THEN X[GX=AAX]
-             X        : 15 (closest dist below by 10 pts)
-          4.000
-list var[i=15 at cib:10]
-             VARIABLE : IF MOD(I,5) EQ 1 THEN X[GX=AAX]
-             X        : 15 (closest index below by 10 pts)
-          4.000
-list var[i=5 at cda:10]
-             VARIABLE : IF MOD(I,5) EQ 1 THEN X[GX=AAX]
-             X        : 5 (closest dist above by 10 pts)
-          1.000
-list var[i=5 at cia:10]
-             VARIABLE : IF MOD(I,5) EQ 1 THEN X[GX=AAX]
-             X        : 5 (closest index above by 10 pts)
-          1.000
- 
-! fix for bug 1214: crash on repeating a SET VIEW when viewport defined with /AXES
-GO bn_reset
-cancel mode verify
-GO err580_def_view_axes.jnl
-! err580_def_view_axes.jnl
-! BUG 1214
-! crashed with seg fault on the second SET VIEW v1
- 
-! Does not crash if we define viewports without the /AXES
-! Does not crash if we CAN MODE META and SET MODE META
-! between the two SET VIEW v1
-! Does not crash if we skip the SET WINDOW/CLEAR
- 
-! Does not crash with Ferret v5.50
- 
-define view/x=0.2:0.4/y=.2:.4/text=0.75/axes v1
- 
-set window/clear
-set mode metafile viewaxes.plt
- 
-set view v1
-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)
- 
- 
-set window/clear
- 
-! can mode meta
-set mode meta
- 
-set view v1
-shade/i=1:12/j=1:12 i+j
- 
-can mode metafile
-sp rm -f viewaxes.plt*
- 
- 
-! fix for bug 1205: symbol LEV_DEL wrong when single level specified
-GO bn_reset
-cancel mode verify
-GO err580_lev_del.jnl
-! err580_lev_del.jnl
-! demonstrates bug 1205; precision of LEV_DEL when single level specified.
- 
-shade/lev=.4d/x=1:10/y=1:10 cos(i/10)*9*sin(j/5)
-sh sym lev_del
-LEV_DEL = "0.4"
-show sym lev*
-LEV_TEXT = ".4D"
-LEV_MIN = "0.8"
-LEV_MAX = "9.2"
-LEV_NUM = "21"
-LEV_DEL = "0.4"
- 
-use coads_climatology
-shade/l=1/lev=1.2d sst; sho sym lev_del
-LEV_DEL = "1.2"
- 
-show sym lev*
-LEV_TEXT = "1.2D"
-LEV_MIN = "-2.4"
-LEV_MAX = "31.2"
-LEV_NUM = "28"
-LEV_DEL = "1.2"
- 
-! Fix for bug 1174: strfloat_c("nonsense") gave result of 0 rather than missing.
-GO bn_reset
-cancel mode verify
-GO err580_strfloat_errors.jnl
-! err580_strfloat_errors.jnl
-! Previously a nonsense input gave a result of 0.
-! See bug 1174.
- 
-let b = {"3.34", "0", "nonsense", "0.0", "153q51", "9..32", "7.e03", "3.2e-2"}
-list/prec=6 strfloat(b)
-             VARIABLE : STRFLOAT(B)
-             SUBSET   : 8 points (X)
- 1   / 1:     3.34
- 2   / 2:     0.00
- 3   / 3:     ....
- 4   / 4:     0.00
- 5   / 5:   153.00
- 6   / 6:     9.00
- 7   / 7:  7000.00
- 8   / 8:     0.03
- 
-! Fixes for bugs 1249, 1250: uppercase not recognized for qualifier argument
-GO bn_reset
-cancel mode verify
-GO err580_arg_case.jnl
-! err580_arg_case.jnl
-! 5/2005
-! bugs 1249, 1250
-!
-! key=CONTINUOUS and step=CONNECTED
-! were not recognized if the value was in uppercase
- 
-shade/key=cont/i=1:10/j=1:4 i-j
-shade/key=CONT/i=1:10/j=1:4 i-j
- 
-plot/step=conn/i=1:10 sin(i)
-plot/step=CONN/i=1:10 sin(i)
- 
- 
- 
-! Fixes for bugs 1019: kludge for CDC time axes made time origin incorrect on outputs
-GO bn_reset
-cancel mode verify
-GO err580_cdc_timeaxis.jnl
-! err580_cdc_timeaxis.jnl
-! 6/3/05
-! See comments under bug 1019.
-!
-! CDC time axes have the convention that if the start date is 1-jan-0001:00:00 then
-! a shift of 2 days is made in year 1590.  Ferret corrects for this by resetting the
-! time origin back by 2 days.  This is ok for internal time coordinate computations,
-! but the time origin written to the user and in cdf files is incorrect: 30-dec-0000
-!
-! fix this in the RETURN=t0, SHOW AXIS, SHOW/XML AXIS and SAVE commands
-!
-! CDC file, save a  portion of it.  Check that time origin is 0001-01-01 00:00:00
-! (it will not be unless the bug-fix version of Ferret writes the file.)
- 
- 
-! set data "http://www.cdc.noaa.gov/cgi-bin/nph-nc/Datasets/ncep.pac.ocean/taux.mnmean.nc"
-! save/clobber/file=cdc_timeaxis.nc/i=15/j=45 taux
-! can data/all
- 
- 
-def axis/t=1-jan-1990:1-feb-1990:1/units=days/t0="01-JAN-0001 00:00:00" tcdc
-let a = sin(t[gt=tcdc]/10000)
- 
-save/clobber/file=t0_cdc.nc a
-can var/all
-can axis tcdc
-use t0_cdc
- 
-sh axis tcdc
- name       axis              # pts   start                end
- TCDC      TIME                32 r   30-DEC-1989 00:00    30-JAN-1990 00:00
-T0 = 01-JAN-0001 00:00:00
-   Axis span (to cell edges) = 32
-save/clobber/file=my_cdc_timeaxis.nc/L=1:15 a
-sp echo "err580_cdc_timeaxis.jnl --- " >> all_ncdump.out
-sp ncdump -h my_cdc_timeaxis.nc >> all_ncdump.out
-say `a,return=t0`
- !-> MESSAGE/CONTINUE 01-JAN-0001 00:00:00
-01-JAN-0001 00:00:00
- 
-sp rm -f t0_cdc.nc
-sp rm -f my_cdc_timeaxis.nc
- 
- 
- 
-! Fix for bug 1272: show axis/t= with NOLEAP calendar
-GO bn_reset
-cancel mode verify
-GO err580_show_axis_t.jnl
-! err580_show_axis_t
-! bug 1272: wrong range shown when nonstd calendar
-! 5/22/06 acm
- 
- ! SHOW AXIS/T= gives wrong date when calendar not gregorian
- 
-def axis/t=1-jan-2000:1-jan-2005:1/units=days/caleandar=noleap tnoleap
-sh axis/t=25-jan-2001:1-feb-2001 tnoleap
- name       axis              # pts   start                end
- TNOLEAP   TIME              1826 r   01-JAN-2000 00:00    01-JAN-2005 00:00
-T0 = 15-JAN-1901
-CALENDAR = NOLEAP
-   Axis span (to cell edges) = 1826
- 
-       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
-     390>  25-JAN-2001 00:00:00  1          24-JAN-2001 12:00:00    36510
-     391>  26-JAN-2001 00:00:00  1          25-JAN-2001 12:00:00    36511
-     392>  27-JAN-2001 00:00:00  1          26-JAN-2001 12:00:00    36512
-     393>  28-JAN-2001 00:00:00  1          27-JAN-2001 12:00:00    36513
-     394>  29-JAN-2001 00:00:00  1          28-JAN-2001 12:00:00    36514
-     395>  30-JAN-2001 00:00:00  1          29-JAN-2001 12:00:00    36515
-     396>  31-JAN-2001 00:00:00  1          30-JAN-2001 12:00:00    36516
-     397>  01-FEB-2001 00:00:00  1          31-JAN-2001 12:00:00    36517
- 
- 
-def axis/t=1-jan-2000:1-jan-2005:1/units=days/caleandar=gregorian tgreg
-sh axis/t=25-jan-2001:1-feb-2001 tgreg
- name       axis              # pts   start                end
- TGREG     TIME              1828 r   01-JAN-2000 00:00    01-JAN-2005 00:00
-T0 = 15-JAN-1901
-   Axis span (to cell edges) = 1828
- 
-       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
-     391>  25-JAN-2001 00:00:00  1          24-JAN-2001 12:00:00    36535
-     392>  26-JAN-2001 00:00:00  1          25-JAN-2001 12:00:00    36536
-     393>  27-JAN-2001 00:00:00  1          26-JAN-2001 12:00:00    36537
-     394>  28-JAN-2001 00:00:00  1          27-JAN-2001 12:00:00    36538
-     395>  29-JAN-2001 00:00:00  1          28-JAN-2001 12:00:00    36539
-     396>  30-JAN-2001 00:00:00  1          29-JAN-2001 12:00:00    36540
-     397>  31-JAN-2001 00:00:00  1          30-JAN-2001 12:00:00    36541
-     398>  01-FEB-2001 00:00:00  1          31-JAN-2001 12:00:00    36542
- 
-! Fix for bug 1279 which was only in the first iteration of v5.81 release
-GO bn_reset
-cancel mode verify
-GO err581_nlev.jnl
-! err580_nlev.jnl
-! bug 1279
- 
-!FILL/lev=n var
-! gave us exactly n levels, not approximately n levels.
- 
-use coads_climatology
-fill/lev=30 sst[l=2]
- 
-! Fix for bug 1349: formatted axis labels on PLOT/VS and POLYGON plot
-! acm 8/29/2005
-GO bn_reset
-cancel mode verify
-GO err581_vs_poly_axis.jnl
-! err581_vs_poly_axis.jnl
-! Test fix of bug 1349: formatted axis labels on PLOT/VS and POLYGON plot
-! acm 8/29/2005
- 
-LET xpts= {144.616,144.621,144.651,144.658,144.660,144.664,144.670,144.670,144.672,144.674,144.676,144.677,144.678,144.679,144.683,144.685,144.686,144.687,144.688,144.690,144.691,144.692,144.693,144.693,144.694,144.694,144.695,144.696,144.697,144.698}
-LET ypts= {32.3793,32.3279,32.308,32.3972,32.3938,32.3958,32.3112,32.3924,32.309,32.3095,32.3828,32.3135,32.3861,32.385,32.3265,32.3264,32.3821,32.3772,32.355,32.3657,32.3691,32.3371,32.3495,32.3672,32.3458,32.3625,32.3604,32.3518,32.3643,32.3531}
- 
-SET VAR/UNITS=degrees_east/TITLE="LONGITUDES" xpts
-SET VAR/UNITS=degrees_north/TITLE="LATITUDES" ypts
-PLOT/VS xpts, ypts
- 
-LET ysqr = YSEQUENCE({0,0,.1,.1}*0.01)
-LET xsqr = YSEQUENCE({0,.1,.1,0}*0.01)
-DEF VAR/UNITS=degrees_east/TITLE="LONGITUDES" xp =  xpts+xsqr
-DEF VAR/UNITS=degrees_north/TITLE="LATITUDES" yp =  ypts+ysqr
- 
-SET VAR/TITLE="COLORED BY LATITUDE" ypts
-POLYGON/LINE/fill xp, yp, ypts
- 
-! Fix for bug 1270: regridding leakage between cells: monthly-> seasonal regridding
-! needs file short_bug1270.nc
-! ( this fix not checked in for v5.81 release.)
-! GO bn_reset
-! GO err580_regrid_prec.jnl
- 
- 
-! ******** V6.00 Additions below ***********
-GO bn_reset
-cancel mode verify
-GO bn_tab_comma_multivar.jnl
-! bn_tab_comma_multivar.jnl
-!
-! Fixes for bug 1273
-! v5.90 8/9/2005
-! LIST/FORM=tab and /FORM=comma with more than one variable
-! no longer behave as if /SINGLY was specified. New qualifier
-! LIST/NOROWLAB removes coordinate labels from the rows listing data
- 
-let country =  {"JP", "JP", "US"}
-let id = {1,2,3}
-let aa = 4000* id
-let bb = 1000000* id + 500
-let newcountry = {"w", "c", "e"}
-let the_data_var = {4,5,4}
- 
- 
-list/format=comma country, id, aa, bb, newcountry, the_data_var
-             X: 0.5 to 3.5
- Column  1: COUNTRY is {"JP", "JP", "US"}    BAD FLAG : -1.E+34
- Column  2: ID is {1,2,3}    BAD FLAG : -1.E+34
- Column  3: AA is 4000* ID    BAD FLAG : -1.E+34
- Column  4: BB is 1000000* ID + 500    BAD FLAG : -1.E+34
- Column  5: NEWCOUNTRY is {"w", "c", "e"}    BAD FLAG : -1.E+34
- Column  6: THE_DATA_VAR is {4,5,4}    BAD FLAG : -1.E+34
-     COUNTRY,ID,AA,BB,NEWCOUNTRY,THE_DATA_VAR
-1   / 1:"JP",1,4000,1000500,"w",4  
-2   / 2:"JP",2,8000,2000500,"c",5  
-3   / 3:"US",3,12000,3000500,"e",4  
- 
-list/format=tab/norow country, id, aa, bb, newcountry, the_data_var
-             X: 0.5 to 3.5
- Column  1: COUNTRY is {"JP", "JP", "US"}    BAD FLAG : -1.E+34
- Column  2: ID is {1,2,3}    BAD FLAG : -1.E+34
- Column  3: AA is 4000* ID    BAD FLAG : -1.E+34
- Column  4: BB is 1000000* ID + 500    BAD FLAG : -1.E+34
- Column  5: NEWCOUNTRY is {"w", "c", "e"}    BAD FLAG : -1.E+34
- Column  6: THE_DATA_VAR is {4,5,4}    BAD FLAG : -1.E+34
-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  
- 
-GO bn_reset
-cancel mode verify
-GO bn_element_functions.jnl
- ! NOAA/PMEL TMAP
- ! FERRET v5.81
- ! Solaris 5.6 - 08/08/05
- !  9-Aug-05 14:36
- 
-use coads_climatology
-let a = x[gx=sst]*y[gy=sst]*l[gt=sst]
-list/i=1:2/j=1:2/l=3 a
-             VARIABLE : X[GX=SST]*Y[GY=SST]*L[GT=SST]
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
-             TIME     : MAR
-              21E    23E   
-               1      2
- 87S   / 2: -5481. -6003.
- 89S   / 1: -5607. -6141.
-list is_element_of (a, -6003)
-             VARIABLE : IS_ELEMENT_OF (A, -6003)
-             FILENAME : coads_climatology.cdf
-             X        : 1
-          1.000
- list/i=1:2/j=1:2/l=3 element_index (a, {-6003})
-             VARIABLE : ELEMENT_INDEX (A, {-6003})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
-             TIME     : MAR
-              21E    23E   
-               1      2
- 87S   / 2:   ....  1.000
- 89S   / 1:   ....   ....
-use string4d.nc
-list/j=1:2/k=1:2 axy
-             VARIABLE : RESHAPE (A,RVAR)
-             FILENAME : string4d.nc
-             SUBSET   : 2 by 2 by 2 by 2 points (X-Y-Z-T)
-             1      2    
-             1      2
- ---- L:1 T:   1
- ---- K:1 Z:   1
- 1   / 1:"alpha""a2"   
- 2   / 2:"a3"   "a4"   
- ---- K:2 Z:   2
- 1   / 1:"a7"   "a8"   
- 2   / 2:"a9"   "a10"  
- ---- L:2 T:   2
- ---- K:1 Z:   1
- 1   / 1:"c5"   "c6"   
- 2   / 2:"c7"   "c8"   
- ---- K:2 Z:   2
- 1   / 1:"d1"   "d2"   
- 2   / 2:"d3"   "d4"   
-list is_element_of_str (axy[k=1:2,j=1:2], "a10")
-             VARIABLE : IS_ELEMENT_OF_STR (AXY[K=1:2,J=1:2], "a10")
-             FILENAME : string4d.nc
-             X        : 1
-          1.000
-list is_element_of_str (axy[k=1:2,j=1:2], "A10")
-             VARIABLE : IS_ELEMENT_OF_STR (AXY[K=1:2,J=1:2], "A10")
-             FILENAME : string4d.nc
-             X        : 1
-          0.0000
-list is_element_of_str (axy[k=1:2,j=1:2], {"B0", "QQ", "d4", "m5"})
-             VARIABLE : IS_ELEMENT_OF_STR (AXY[K=1:2,J=1:2], {"B0", "QQ", "d4", "m5"})
-             FILENAME : string4d.nc
-             X        : 1
-          1.000
-list element_index_str (axy[k=1:2,j=1:2], {"a10", "a2", "d4", "c5"})
-             VARIABLE : ELEMENT_INDEX_STR (AXY[K=1:2,J=1:2], {"a10", "a2", "d4", "c5"})
-             FILENAME : string4d.nc
-             SUBSET   : 2 by 2 by 2 by 2 points (X-Y-Z-T)
-             1      2    
-             1      2
- ---- L:1 T:   1
- ---- K:1 Z:   1
- 1   / 1:   ....  2.000
- 2   / 2:   ....   ....
- ---- K:2 Z:   2
- 1   / 1:   ....   ....
- 2   / 2:   ....  1.000
- ---- L:2 T:   2
- ---- K:1 Z:   1
- 1   / 1:  4.000   ....
- 2   / 2:   ....   ....
- ---- K:2 Z:   2
- 1   / 1:   ....   ....
- 2   / 2:   ....  3.000
- 
-list is_element_of_str_n (axy[k=1:2,j=1:2], "a10")
-             VARIABLE : IS_ELEMENT_OF_STR_N (AXY[K=1:2,J=1:2], "a10")
-             FILENAME : string4d.nc
-             X        : 1
-          1.000
-list is_element_of_str_n (axy[k=1:2,j=1:2], "A10")
-             VARIABLE : IS_ELEMENT_OF_STR_N (AXY[K=1:2,J=1:2], "A10")
-             FILENAME : string4d.nc
-             X        : 1
-          2.000
-list is_element_of_str_n (axy[k=1:2,j=1:2], {"B0", "QQ", "d4", "m5"})
-             VARIABLE : IS_ELEMENT_OF_STR_N (AXY[K=1:2,J=1:2], {"B0", "QQ", "d4", "m5"})
-             FILENAME : string4d.nc
-             X        : 1
-          1.000
-list element_index_str_n (axy[k=1:2,j=1:2], {"a10", "a2", "d4", "c5"})
-             VARIABLE : ELEMENT_INDEX_STR_N (AXY[K=1:2,J=1:2], {"a10", "a2", "d4", "c5"})
-             FILENAME : string4d.nc
-             SUBSET   : 2 by 2 by 2 by 2 points (X-Y-Z-T)
-             1      2    
-             1      2
- ---- L:1 T:   1
- ---- K:1 Z:   1
- 1   / 1:   ....  2.000
- 2   / 2:   ....   ....
- ---- K:2 Z:   2
- 1   / 1:   ....   ....
- 2   / 2:   ....  1.000
- ---- L:2 T:   2
- ---- K:1 Z:   1
- 1   / 1:  4.000   ....
- 2   / 2:   ....   ....
- ---- K:2 Z:   2
- 1   / 1:   ....   ....
- 2   / 2:   ....  3.000
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_long_revision_num.jnl
-! bn_long_revision_num.jnl
-! ACM 8/30/05
-! revision numbers were previously limited to 2 decimal places: v5.81
-! Now they can be longer, for minor revisions between releases: v5.8101
- 
-! ferret version
-sh sym FERRET_VERSION
-FERRET_VERSION = "6.85"
- 
-! history attribute
-let a = 12
-sp echo "bn_long_revision_num.jnl --- history attribute" >> all_ncdump.out
-save/clobber/file=revision.nc a; sp ncdump revision.nc | grep history >> all_ncdump.out
- 
-! label in upper right
-go ptest; sh sym lab1
-! Description: create a simple test line plot
- 
-! spirograph picture ...
-PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
- 
-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.85:
- 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/UNIT/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE
- SET GRID/SAVE/RESTORE
- SET AXIS/MODULO/DEPTH/CALENDAR/T0/UNITS/STRIDE/OFFSET/REGULAR/OUTTYPE
- SET MEMORY/SIZE
- SET ATTRIBUT/TYPE/DATASET/OUTPUT/LIKE
- SET NCCACHE/SIZE/NELEMS/PREEMPT
- SET REDIRECT/TEE/JOURNAL/FILE/APPEND/CLOBBER
- SET GIFFILE
- 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/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE
- SHOW COMMANDS/ALL
- 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
- 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
- CANCEL AXIS/MODULO/ALL/DEPTH/STRIDE
- CANCEL GRID
- CANCEL ATTRIBUT/OUTPUT/DATA
- 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
-          /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
- 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
- GO/HELP
- HELP
- LOAD/TEMPORY/PERMANT/I/J/K/L/M/N/X/Y/Z/T/E/F/D/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
- DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
- DEFINE ALIAS
- DEFINE SYMBOL
- DEFINE ATTRIBUT/D/TYPE/OUTPUT
- DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/E/TITLE/QUIET/HIDE
- 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
- 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
- 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
- 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
-          /NOLABEL/LEVELS/LINE/COLOR/PALETTE/XLIMITS/YLIMITS/TITLE/THICKNES
-          /NOAXES/PATTERN/FILL/KEY/NOKEY/AXES/HLIMITS/VLIMITS/HLOG/VLOG
-          /HGRATICU/VGRATICU/GRATICUL/MODULO
- 
- Use SHOW ALIAS to see alternative command names
- 
-GO bn_reset
-cancel mode verify
-GO 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
- 
-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)
- 
-sh sym win_title
-WIN_TITLE = "12-Nov-13:15:12"
- 
-set win/title="set the title"
-sho sym win_title
-WIN_TITLE = "set_the_title"
- 
-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)
- 
-set win/new
-set win/title=""/new
-sho sym win_title
-WIN_TITLE = "_"
- 
-set win/title="($session_date):($session_time)"
- !-> set win/title="12-Nov-13:15:12"
- 
-! If the date or time starts with a blank then we get an extra
-! underscore in the window title. Evaluating the symbols into
-! new ones gets rid of this blank at the start.
-! the symbols session_date and session_time may have been canceled.
-! If so substitute another string.
- 
-DEFINE SYMBOL the_date = ($session_date"SESSION_DATE")
- !-> DEFINE SYMBOL the_date = 12-Nov-13
-DEFINE SYMBOL the_time = ($session_time"SESSION_TIME")
- !-> DEFINE SYMBOL the_time = 15:12
-SET WIN/TITLE="($the_date):($the_time)"
- !-> SET WIN/TITLE="12-Nov-13:15:12"
- 
-can win/all
-set win/new
-sh sym win_title
-WIN_TITLE = "12-Nov-13:15:12"
- 
-GO bn_reset
-cancel mode verify
-GO bn_last_error.jnl
-! bn_last_error.jnl
-! acm Nov 2005
-!
-! - test the symbol FER_LAST_ERROR (Commands from various bn scripts)
- 
- 
- 
-SET MODE IGNORE_ERRORS
- 
-LIST/ORDER=X  IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333	! err
-SHOW SYM FER_LAST_ERROR
-FER_LAST_ERROR = "**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 "
- 
- 
-LET A = IF I LT 5 THEN I ELSE -9
-SHOW SYM FER_LAST_ERROR
-FER_LAST_ERROR = "**ERROR: command syntax: IF I LT 5 THEN I ELSE -9 \ELSE before - is illegal\negative constants need to be enclosed in parentheses "
- 
- 
-load a1,a2,a3
-SHOW SYM FER_LAST_ERROR
-FER_LAST_ERROR = "**ERROR: variable unknown or not in data set: A1 "
- 
-set data nofile.nc
-SHOW SYM FER_LAST_ERROR
-FER_LAST_ERROR = "**TMAP ERR: non-existent or not on line nofile.nc "
- 
- 
-! Repeat/range errors
-repeat/name=a (say `a`)
-SHOW SYM FER_LAST_ERROR
-FER_LAST_ERROR = "**ERROR: invalid command: REPEAT/NAME requires /RANGE "
- 
- 
-! Cannot use pseudo-variables.
-repeat/range=1:3/name=L (use coads_climatology; list/nohead [sst=I=1,j=1])
-SHOW SYM FER_LAST_ERROR
-FER_LAST_ERROR = "**ERROR: command syntax: L is a pseudo-variable; cannot use with REPEAT/RANGE/NAME. Instead use REPEAT/L= "
- 
- 
-! external function errors via ef_bail_out
- 
-! This  bails out w/Time axis error
-USE  "coads_vwnd.cdf"
-SET REGION/I=90/J=65
-LET vw_fft = ffta(vwnd[l=37:60])
-LOAD vw_fft
-SHOW SYM FER_LAST_ERROR
-FER_LAST_ERROR = "**ERROR: error in external function. Bailing out of external function FFTA\ Time axis must be a regular axis"
- 
- 
-SET MODE/LAST IGNORE_ERROR
- 
-GO bn_reset
-cancel mode verify
-GO bn_deg_min.jnl
-! bn_deg_min.jnl
-! label axes with degrees and minutes rather than degrees and decimal degrees.
-! 19-May-06 add seconds as well...
- 
-use ss_small.nc
- 
-shade/set/x=222.9:223.1/y=58.22:59.1 rose
-ppl xfor (dm)
-ppl yfor (dm)
-ppl shade
- 
-! plot/vs plots
- 
-let xpts= {144.616,144.621,144.651,144.658,144.660,144.664,144.670,144.670,144.672,144.674,144.676,144.677,144.678,144.679,144.683,144.685,144.686,144.687,144.688,144.690,144.691,144.692,144.693,144.693,144.694,144.694,144.695,144.696,144.697,144.698}
-let ypts= {32.3793,32.3279,32.308,32.3972,32.3938,32.3958,32.3112,32.3924,32.309,32.3095,32.3828,32.3135,32.3861,32.385,32.3265,32.3264,32.3821,32.3772,32.355,32.3657,32.3691,32.3371,32.3495,32.3672,32.3458,32.3625,32.3604,32.3518,32.3643,32.3531}
- 
-set var/units=degrees_east/title="longitudes" xpts
-set var/units=degrees_north/title="latitudes" ypts
- 
-plot/vs/set xpts, ypts
-ppl xfor (dm)
-ppl yfor (dm)
-ppl plot
- 
-! DMS degrees-minutes-seconds
-plot/vs/set xpts, ypts
-ppl xfor (dms)
-ppl yfor (dms)
-ppl axlint,3,1
-ppl plot
- 
-! Restore the default settings
-ppl axlint,2,2
- 
-GO bn_reset
-cancel mode verify
-GO bn_dp_readscale.jnl
-! bn_dp_readscale.jnl
-! 9-Feb-2006 ACM
- 
-! When there is a double precision variable,
-! and when the user specifies an offset, read the
-! variable in double precision, apply the offset and
-! then convert to single precision.  When plotting
-! the user specifies the offset to add back to the
-! axis labels.
- 
-set list/prec=8
- 
-use adouble.nc
- 
-list xax
-             VARIABLE : test double prec. data
-             FILENAME : adouble.nc
-             SUBSET   : 10 points (X)
- 1    /  1:  140.00000
- 2    /  2:  140.00000
- 3    /  3:  140.00000
- 4    /  4:  140.00000
- 5    /  5:  140.00000
- 6    /  6:  140.00001
- 7    /  7:  140.00010
- 8    /  8:  140.00100
- 9    /  9:  140.01000
- 10   / 10:  140.10000
-let xlon = 140
- 
-! Now read xax with an offset
-set var/offset=`-1*xlon` xax
- !-> set var/offset=-140 xax
-can mem
- 
-list xax
-             VARIABLE : test double prec. data
-             FILENAME : adouble.nc
-             SUBSET   : 10 points (X)
- 1    /  1:  0.000000000
- 2    /  2:  0.000000001
- 3    /  3:  0.000000010
- 4    /  4:  0.000000100
- 5    /  5:  0.000001000
- 6    /  6:  0.000010000
- 7    /  7:  0.000100000
- 8    /  8:  0.001000000
- 9    /  9:  0.010000000
- 10   / 10:  0.100000000
- 
-! define an axis from xax
-define axis/x/units=lon xir = xax
-let pvar = yvar[gx=xir at asn]
- 
-! Plot, adding back the offset on axis labels.
-plot/set/color=red/line/sym=22 pvar
-ppl xvaloff `xlon`
- !-> ppl xvaloff 140
-ppl plot
- 
-! Test a 2-D double precision variable
-can data/all
-use adouble_2D.nc
-set var/offset=`-1*xlon` xax
- !-> set var/offset=-140 xax
-list xax
-             VARIABLE : test double prec. data
-             FILENAME : adouble_2D.nc
-             SUBSET   : 5 by 2 points (X-Y)
-                1            2            3            4            5       
-                1            2            3            4            5
- 1   / 1:  0.000000000  0.000000001  0.000000010  0.000000100  0.000001000
- 2   / 2:  0.000010000  0.000100000  0.001000000  0.010000000  0.100000000
- 
-cancel list/precision
- 
-GO bn_reset
-cancel mode verify
-GO bn_bounds_defineax.jnl
-! bn_bounds_defineax.jnl
-! 3/22/2006
-! Previously only allowed 2*N definition of bounds in DEFINE AXIS/BOUNDS
-! Now allow N+1 definition of bounds, or three equal-lenght lists of
-! coords, lo_bounds, hi_bounds
-!
-! Define an axis using bounds.  Note the coordinates need not be
-! centered in the axis cells.
- 
-def axis/t/bounds tax={1.2, 2, 3.2, 5, 7, 8.4, 9}, {0.5,1.5, 1.5,2.5, 2.5,3.5, 3.5,6.5, 6.5,7.5, 7.5,8.5, 8.5,9.5}
-list t[gt=tax], tboxlo[gt=tax], tboxhi[gt=tax], tbox[gt=tax]
-             T: 0.5 to 9.5
- Column  1: T is T (axis TAX)
- Column  2: TBOXLO is TBOXLO (axis TAX)
- Column  3: TBOXHI is TBOXHI (axis TAX)
- Column  4: TBOX is TBOX (axis TAX)
-             T  TBOXLO TBOXHI  TBOX
-1.2 / 1:  1.200  0.500  1.500  1.000
-2   / 2:  2.000  1.500  2.500  1.000
-3.2 / 3:  3.200  2.500  3.500  1.000
-5   / 4:  5.000  3.500  6.500  3.000
-7   / 5:  7.000  6.500  7.500  1.000
-8.4 / 6:  8.400  7.500  8.500  1.000
-9   / 7:  9.000  8.500  9.500  1.000
- 
-def axis/t/bounds tax={1.2, 2, 3.2, 5, 7, 8.4, 9}, {0.5,1.5,2.5,3.5,6.5,7.5,8.5,9.5}
-list t[gt=tax], tboxlo[gt=tax], tboxhi[gt=tax], tbox[gt=tax]
-             T: 0.5 to 9.5
- Column  1: T is T (axis TAX)
- Column  2: TBOXLO is TBOXLO (axis TAX)
- Column  3: TBOXHI is TBOXHI (axis TAX)
- Column  4: TBOX is TBOX (axis TAX)
-             T  TBOXLO TBOXHI  TBOX
-1.2 / 1:  1.200  0.500  1.500  1.000
-2   / 2:  2.000  1.500  2.500  1.000
-3.2 / 3:  3.200  2.500  3.500  1.000
-5   / 4:  5.000  3.500  6.500  3.000
-7   / 5:  7.000  6.500  7.500  1.000
-8.4 / 6:  8.400  7.500  8.500  1.000
-9   / 7:  9.000  8.500  9.500  1.000
- 
-! test of DEPTH axis
- 
-def axis/x xax = {1,2,5,6,7,8}
-def axis/z/depth/bounds zax = {0,20,50,75,120}, {0,10,30,60,90,150}
-def axis/t tax = {1,2,9,10,11}
-let v = x[gx=xax] +z[gz=zax] + t[gt=tax]
-save/clobber/file=irrxzt.nc v
-sp echo "bn_bounds_defineax.jnl --- N+1 def of bounds." >> all_ncdump.out
-sp ncdump irrxzt.nc >> all_ncdump.out
- 
-! 3-argument bounds definitions
-def axis/z/bounds zax={1,2,4,8,16,32,64,128}, {0.5,1.5,2.5,4.5,8.5,16.5,32.5,64.5}, {1.5,2.5,4.5,8.5,16.5,32.5,64.5,200}
-list zboxlo[gz=zax], z[gz=zax], zboxhi[gz=zax]
-             Z: 0.5 to 200
- Column  1: ZBOXLO is ZBOXLO (axis ZAX)
- Column  2: Z is Z (axis ZAX)
- Column  3: ZBOXHI is ZBOXHI (axis ZAX)
-          ZBOXLO     Z   ZBOXHI
-1     / 1:   0.50    1.0    1.5
-2     / 2:   1.50    2.0    2.5
-4     / 3:   2.50    4.0    4.5
-8     / 4:   4.50    8.0    8.5
-16    / 5:   8.50   16.0   16.5
-32    / 6:  16.50   32.0   32.5
-64    / 7:  32.50   64.0   64.5
-128   / 8:  64.50  128.0  200.0
- 
- 
-! define some new bounds by subsampling:
- 
-let n = `z[gz=zax],return=ksize`
- !-> DEFINE VARIABLE n = 8
- 
-! Note this syntax --let zl2 = zboxlo[gz=zax,k=1:`1+n-2`:2]--
-! creates a new axis [gz=zax,k=1:`1+n-2`:2]
-! and computes its zboxlo. Instead make varibles containing
-! the bounds and sample those variables.
- 
-let boxlo = zboxlo[gz=zax]
-let boxhi = zboxhi[gz=zax]
-let zl2 = boxlo[k=1:`1+n-2`:2]
- !-> DEFINE VARIABLE zl2 = boxlo[k=1:7:2]
-let zh2 = boxhi[k=2:`n`:2]
- !-> DEFINE VARIABLE zh2 = boxhi[k=2:8:2]
- 
-list  zl2,(zl2+zh2)/2,zh2
- WARNING: Listed variables have ambiguous coordinates on axes: Z
- Column  1: ZL2 is BOXLO[K=1:7:2]
- Column  2: EX#2 is (ZL2+ZH2)/2
- Column  3: ZH2 is BOXHI[K=2:8:2]
-         ZL2   EX#2    ZH2
-K / 1:   0.50    1.5    2.5
-K / 2:   2.50    5.5    8.5
-K / 3:   8.50   20.5   32.5
-K / 4:  32.50  116.3  200.0
-def axis/z/bounds zax2 = (zl2+zh2)/2, zl2, zh2
- 
-list zboxlo[gz=zax2], z[gz=zax2], zboxhi[gz=zax2]
-             Z: 0.5 to 200
- Column  1: ZBOXLO is ZBOXLO (axis ZAX2)
- Column  2: Z is Z (axis ZAX2)
- Column  3: ZBOXHI is ZBOXHI (axis ZAX2)
-          ZBOXLO     Z   ZBOXHI
-1.5   / 1:   0.50    1.5    2.5
-5.5   / 2:   2.50    5.5    8.5
-20.5  / 3:   8.50   20.5   32.5
-116.3 / 4:  32.50  116.3  200.0
- 
-use gt4d011
- 
-! define some new bounds by subsampling:
- 
-let n = `z[gz=temp],return=ksize`
- !-> DEFINE VARIABLE n = 27
- 
-let boxlo = zboxlo[gz=temp]
-let boxhi = zboxhi[gz=temp]
-let zl2 = boxlo[k=1:`1+n-2`:2]
- !-> DEFINE VARIABLE zl2 = boxlo[k=1:26:2]
-let zh2 = boxhi[k=2:`n`:2]
- !-> DEFINE VARIABLE zh2 = boxhi[k=2:27:2]
- 
-list  zl2,(zl2+zh2)/2,zh2
- WARNING: Listed variables have ambiguous coordinates on axes: Z
-             DATA SET: ./gt4d011.cdf
- Column  1: ZL2[Z=0:3174] is BOXLO[K=1:26:2]
- Column  2: EX#2 is (ZL2+ZH2)/2
- Column  3: ZH2[Z=0:4149] is BOXHI[K=2:27:2]
-          ZL2   EX#2    ZH2
-K /  1:     0.    10.    20.
-K /  2:    20.    30.    40.
-K /  3:    40.    50.    60.
-K /  4:    60.    70.    80.
-K /  5:    80.    90.   100.
-K /  6:   100.   114.   128.
-K /  7:   128.   146.   165.
-K /  8:   165.   193.   220.
-K /  9:   220.   269.   317.
-K / 10:   317.   438.   559.
-K / 11:   559.   859.  1158.
-K / 12:  1158.  1679.  2199.
-K / 13:  2199.  2849.  3499.
-def axis/z/bounds zax2 = (zl2+zh2)/2, zl2, zh2
- 
-! original axis
-list zboxlo[gz=temp], z[gz=temp], zboxhi[gz=temp]
-             DATA SET: ./gt4d011.cdf
-             DEPTH (m): 0 to 4149
- Column  1: ZBOXLO is ZBOXLO (axis PSZT1)
- Column  2: Z is Z (axis PSZT1)
- Column  3: ZBOXHI is ZBOXHI (axis PSZT1)
-             ZBOXLO     Z   ZBOXHI
-5       /  1:     0.     5.    10.
-15      /  2:    10.    15.    20.
-25      /  3:    20.    25.    30.
-35      /  4:    30.    35.    40.
-45      /  5:    40.    45.    50.
-55      /  6:    50.    55.    60.
-65      /  7:    60.    65.    70.
-75      /  8:    70.    75.    80.
-85      /  9:    80.    85.    90.
-95      / 10:    90.    95.   100.
-106.3   / 11:   100.   106.   113.
-120     / 12:   113.   120.   128.
-136.3   / 13:   128.   136.   145.
-155     / 14:   145.   155.   165.
-177.5   / 15:   165.   178.   190.
-205     / 16:   190.   205.   220.
-240     / 17:   220.   240.   260.
-288.5   / 18:   260.   289.   317.
-362.5   / 19:   317.   363.   408.
-483.5   / 20:   408.   484.   559.
-680     / 21:   559.   680.   801.
-979.5   / 22:   801.   980.  1158.
-1395.5  / 23:  1158.  1396.  1633.
-1916    / 24:  1633.  1916.  2199.
-2524    / 25:  2199.  2524.  2849.
-3174    / 26:  2849.  3174.  3499.
-3824    / 27:  3499.  3824.  4149.
- 
-! sampled axis
-list zboxlo[gz=zax2], z[gz=zax2], zboxhi[gz=zax2]
-             Z: 0 to 3499
- Column  1: ZBOXLO is ZBOXLO (axis ZAX2)
- Column  2: Z is Z (axis ZAX2)
- Column  3: ZBOXHI is ZBOXHI (axis ZAX2)
-            ZBOXLO     Z   ZBOXHI
-10     /  1:     0.    10.    20.
-30     /  2:    20.    30.    40.
-50     /  3:    40.    50.    60.
-70     /  4:    60.    70.    80.
-90     /  5:    80.    90.   100.
-113.8  /  6:   100.   114.   128.
-146.3  /  7:   128.   146.   165.
-192.5  /  8:   165.   193.   220.
-268.5  /  9:   220.   269.   317.
-438    / 10:   317.   438.   559.
-858.5  / 11:   559.   859.  1158.
-1678.5 / 12:  1158.  1679.  2199.
-2849   / 13:  2199.  2849.  3499.
- 
-go bn_reset
-cancel mode verify
-go bn_attributes.jnl
-! bn_attributes
-! test attribute handling on netcdf intput/output and
-! programatic access to attribute information
-! needs new cdf files modfalse.nc, test0.nc
- 
-! 31Aug2006 ACM Remove OPeNDAP references; not essential to the
-! benchmark tests.
- 
- 
-!-----
- 
-! SHOW ATTRIBUTE examples
- 
-can data/all
-can var/all
- 
-use ocean_atlas_temp
-sho att/all temp
-     attributes for dataset: ./ocean_atlas_temp.cdf
- TEMP.missing_value = -1.E+34
- TEMP._FillValue = -1.E+34
- TEMP.long_name = Temperature 
- TEMP.history = From ocean_atlas_monthly 
- TEMP.units = Deg C 
- 
-show attribute temp.units
-     attributes for dataset: ./ocean_atlas_temp.cdf
- TEMP.units = Deg C 
-show attribute temp.missing_value
-     attributes for dataset: ./ocean_atlas_temp.cdf
- TEMP.missing_value = -1.E+34
- 
-!  specifying data set
- 
-use gt4d011
-use levitus_climatology
- 
-sh att/all temp[d=2]
-     attributes for dataset: ./gt4d011.cdf
- TEMP.parent_grid = PS3DT2 
- TEMP.slab_min_index = 91, 35, 1, 0
- TEMP.slab_max_index = 108, 56, 10, 0
- TEMP.missing_value = -1.E+34
- TEMP._FillValue = -1.E+34
- TEMP.long_name = TEMPERATURE 
- TEMP.history = From gt4d011 
- TEMP.units = deg. C 
-sh att temp.units[d=1]
-     attributes for dataset: ./ocean_atlas_temp.cdf
- TEMP.units = Deg C 
- 
-!  global attributes
-use err491_attval
- 
-show att ..remark
-     attributes for dataset: ./err491_attval.cdf
-  .remark = Generated by oar3d                                                                                                                                               
-show att/all .
-     attributes for dataset: ./err491_attval.cdf
- ..simulation = K-Bay OAR3d model (200m) 
- ..start_date = 980105000000 
- ..history = a
- 
- ..option = 1
- ..run_mode = 3
- ..srfc_bndry = 3
- ..rad_penet = 2
- ..dt_external = 1
- ..dt_internal = 15
- ..horiz_diff = 0.2
- ..inv_prandtl = 0.2
- ..min_slope = 0.2
- ..title = K-Bay OAR3d model (200m)                                                         
- ..command =                                                                                                                                                                                                                                                                                                                                  
- ..remark = Generated by oar3d                                                                                                                                               
- ..x_units = degrees                                                                          
- ..y_units = degrees                                                                          
- ..z_units =                                                                                  
- ..nx = 35
- ..ny = 127
- ..x_min = 0
- ..x_max = 0
- ..y_min = 0
- ..y_max = 0
- ..z_min = 0
- ..z_max = 0
- ..x_inc = 0
- ..y_inc = 0
- ..z_scale_factor = 0
- ..z_add_offset = 0
- ..node_offset = 0
- 
-sho att/all .[d=1]
-     attributes for dataset: ./ocean_atlas_temp.cdf
- ..history = FERRET V4.90 (GUI) 04-Feb-98 
- 
-!  Now SHOW DATA/ATT
- 
-can data/all
-use ocean_atlas_temp
-sho data/att
-     currently SET data sets:
-    1> ./ocean_atlas_temp.cdf  (default)
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               history         CHAR        28   T       FERRET V4.90 (GUI) 04-Feb-98
-  
-(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
-  
-(YAX_LEV94)            DOUBLE    units           CHAR        13   T       degrees_north
-                                 point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        9    F       YAX_LEV94
-  
-(ZAXLEVIT191_1)        DOUBLE    units           CHAR        6    T       METERS
-                                 positive        CHAR        4    T       down
-                                 orig_file_axnameCHAR        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
-  
- TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
-                                 _FillValue      FLOAT       1    T       -1.E+34
-                                 long_name       CHAR        11   T       Temperature
-                                 history         CHAR        24   T       From ocean_atlas_monthly
-                                 units           CHAR        5    T       Deg C
-  
- 
-use gt4d011
-use levitus_climatology
- 
-sh data/att gt4d011
-     currently SET data sets:
-    2> ./gt4d011.cdf
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               history         CHAR        28   T       FERRET V4.45 (GUI) 21-Apr-97
-  
- PS3DT2                CHAR      axes            CHAR        20   F       PSXT PSYT PSZT TIME1
-  
-(PSXT1)                DOUBLE    units           CHAR        12   T       degrees_east
-                                 point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        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
-  
-(PSYTedges)            DOUBLE    edges           CHAR        1    F
-                                 orig_file_axnameCHAR        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
-  
-(PSZTedges)            DOUBLE    edges           CHAR        1    F
-                                 orig_file_axnameCHAR        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
-  
-(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
-  
-(PSYT35_56)            DOUBLE    child_axis      CHAR        1    F
-                                 units           CHAR        13   T       degrees_north
-                                 orig_file_axnameCHAR        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
-  
- TEMP                  FLOAT     parent_grid     CHAR        6    F       PS3DT2
-                                 slab_min_index  INT         4    F       91 35 1 0
-                                 slab_max_index  INT         4    F       108 56 10 0
-                                 missing_value   FLOAT       1    T       -1.E+34
-                                 _FillValue      FLOAT       1    T       -1.E+34
-                                 long_name       CHAR        11   T       TEMPERATURE
-                                 history         CHAR        12   T       From gt4d011
-                                 units           CHAR        6    T       deg. C
-  
-(PSYT35_55)            DOUBLE    child_axis      CHAR        1    F
-                                 units           CHAR        13   T       degrees_north
-                                 orig_file_axnameCHAR        9    F       PSYT35_55
-  
- SALT                  FLOAT     parent_grid     CHAR        6    F       PS3DT2
-                                 slab_min_index  INT         4    F       91 35 1 0
-                                 slab_max_index  INT         4    F       108 55 10 0
-                                 missing_value   FLOAT       1    T       0.01
-                                 _FillValue      FLOAT       1    T       0.01
-                                 long_name       CHAR        26   T       (SALINITY(ppt) - 35) /1000
-                                 history         CHAR        12   T       From gt4d011
-                                 units           CHAR        22   T       frac. by wt. less .035
-  
- PS3DU2                CHAR      axes            CHAR        20   F       PSXU PSYU PSZT TIME1
-  
-(PSXU)                 DOUBLE    units           CHAR        12   T       degrees_east
-                                 point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        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
-  
-(PSYUedges)            DOUBLE    edges           CHAR        1    F
-                                 orig_file_axnameCHAR        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
-  
-(PSYU35_55)            DOUBLE    child_axis      CHAR        1    F
-                                 units           CHAR        13   T       degrees_north
-                                 orig_file_axnameCHAR        9    F       PSYU35_55
-  
- U                     FLOAT     parent_grid     CHAR        6    F       PS3DU2
-                                 slab_min_index  INT         4    F       91 35 1 0
-                                 slab_max_index  INT         4    F       108 55 10 0
-                                 missing_value   FLOAT       1    T       -1.E+34
-                                 _FillValue      FLOAT       1    T       -1.E+34
-                                 long_name       CHAR        14   T       ZONAL VELOCITY
-                                 history         CHAR        12   T       From gt4d011
-                                 units           CHAR        6    T       cm/sec
-  
- V                     FLOAT     parent_grid     CHAR        6    F       PS3DU2
-                                 slab_min_index  INT         4    F       91 35 1 0
-                                 slab_max_index  INT         4    F       108 55 10 0
-                                 missing_value   FLOAT       1    T       -1.E+34
-                                 _FillValue      FLOAT       1    T       -1.E+34
-                                 long_name       CHAR        19   T       MERIDIONAL VELOCITY
-                                 history         CHAR        12   T       From gt4d011
-                                 units           CHAR        6    T       cm/sec
-  
- PS3DW2                CHAR      axes            CHAR        20   F       PSXT PSYT PSZW TIME1
-  
-(PSZW)                 DOUBLE    units           CHAR        6    T       METERS
-                                 positive        CHAR        4    T       down
-                                 point_spacing   CHAR        6    T       uneven
-                                 edges           CHAR        9    F       PSZWedges
-                                 orig_file_axnameCHAR        4    F       PSZW
-  
-(PSZWedges)            DOUBLE    edges           CHAR        1    F
-                                 orig_file_axnameCHAR        9    F       PSZWedges
-  
-(PSYT36_55)            DOUBLE    child_axis      CHAR        1    F
-                                 units           CHAR        13   T       degrees_north
-                                 orig_file_axnameCHAR        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
-  
- W                     FLOAT     parent_grid     CHAR        6    F       PS3DW2
-                                 slab_min_index  INT         4    F       91 36 1 0
-                                 slab_max_index  INT         4    F       108 55 10 0
-                                 missing_value   FLOAT       1    T       -1.E+34
-                                 _FillValue      FLOAT       1    T       -1.E+34
-                                 long_name       CHAR        17   T       VERTICAL VELOCITY
-                                 history         CHAR        12   T       From gt4d011
-                                 units           CHAR        6    T       cm/sec
-  
- PS2DU2                CHAR      axes            CHAR        22   F       PSXU PSYU NORMAL TIME1
-  
- TAUX                  FLOAT     parent_grid     CHAR        6    F       PS2DU2
-                                 slab_min_index  INT         4    F       91 35 1 0
-                                 slab_max_index  INT         4    F       108 55 1 0
-                                 missing_value   FLOAT       1    T       -1.E+34
-                                 _FillValue      FLOAT       1    T       -1.E+34
-                                 long_name       CHAR        17   T       ZONAL WIND STRESS
-                                 history         CHAR        12   T       From gt4d011
-                                 units           CHAR        11   T       dynes/cm**2
-  
- TAUY                  FLOAT     parent_grid     CHAR        6    F       PS2DU2
-                                 slab_min_index  INT         4    F       91 35 1 0
-                                 slab_max_index  INT         4    F       108 55 1 0
-                                 missing_value   FLOAT       1    T       -1.E+34
-                                 _FillValue      FLOAT       1    T       -1.E+34
-                                 long_name       CHAR        22   T       MERIDIONAL WIND STRESS
-                                 history         CHAR        12   T       From gt4d011
-                                 units           CHAR        11   T       dynes/cm**2
-  
-(PSYU35_56)            DOUBLE    child_axis      CHAR        1    F
-                                 units           CHAR        13   T       degrees_north
-                                 orig_file_axnameCHAR        9    F       PSYU35_56
-  
- PSI                   FLOAT     parent_grid     CHAR        6    F       PS2DU2
-                                 slab_min_index  INT         4    F       91 35 1 0
-                                 slab_max_index  INT         4    F       108 56 1 0
-                                 missing_value   FLOAT       1    T       -1.E+34
-                                 _FillValue      FLOAT       1    T       -1.E+34
-                                 long_name       CHAR        15   T       STREAM FUNCTION
-                                 history         CHAR        12   T       From gt4d011
-                                 units           CHAR        9    T       cm**3/sec
-  
- 
-!  error messages
- 
-set mode ignore
- 
-! no argument
-sho att/all
- 
-! dataset not open
-can data 2
-show att/all temp[d=2]
- 
-! variable not in default dataset
-use ocean_atlas_temp
-show att/all salt
- 
-! nonexistent attribute
-use gt4d011
-sho att salt.nonsense
- 
-can data/all
- 
-! No datasets open
-sho att/all .
- 
-can mode ignore
- 
-go bn_reset
-cancel mode verify
- 
-!-----
-! attributes of string variables
-let/title="my strings" var_b = {"Seattle", "Skykomish", "Snoqualmie"}
-sho att/all var_b
-     attributes for user-defined variables
- var_b.long_name = my strings 
- var_b.missing_value = -1.E+34
- 
-save/clobber/file=a.nc var_b
-sp echo "bn_attributes.jnl --- 1 attributes of string variables" >> all_ncdump.out
-sp ncdump a.nc >> all_ncdump.out
- 
-go bn_reset
-cancel mode verify
- 
-!-----
-! Demonstrate `var,return=` output for attributes
- 
-use gt4d011
- 
-! RETURN=size gives length of attribute:
-! # values for numeric attributes
-! string length for string attributes
- 
-show att/all temp
-     attributes for dataset: ./gt4d011.cdf
- TEMP.parent_grid = PS3DT2 
- TEMP.slab_min_index = 91, 35, 1, 0
- TEMP.slab_max_index = 108, 56, 10, 0
- TEMP.missing_value = -1.E+34
- TEMP._FillValue = -1.E+34
- TEMP.long_name = TEMPERATURE 
- TEMP.history = From gt4d011 
- TEMP.units = deg. C 
- 
-say `temp.2,return=size`
- !-> MESSAGE/CONTINUE 4
-4
-say `temp.6,return=size`
- !-> MESSAGE/CONTINUE 11
-11
- 
-say `..history,return=size`
- !-> MESSAGE/CONTINUE 28
-28
- 
-! test0 is from the netcdf distribution;
-! vars and attrs of all types
-use test0
-say `broiled.acd,return=size`
- !-> MESSAGE/CONTINUE 2
-2
-say `broiled.acf,return=size`
- !-> MESSAGE/CONTINUE 3
-3
- 
-go bn_reset
-cancel mode verify
- 
-!-----
-! define variables to contain attribute value(s)
- 
-use ocean_atlas_temp
-let a = temp.missing_value
-list a
-             VARIABLE : TEMP.MISSING_VALUE
-             FILENAME : ocean_atlas_temp.cdf
-         -1.000E+34
- 
-use ocean_atlas_temp
-let s = temp.units
-list s
-             VARIABLE : TEMP.UNITS
-             FILENAME : ocean_atlas_temp.cdf
-        "Deg C"
- 
-can data/all
- 
-! global attribute
-use err491_attval
-let s = ..remark
-list s
-             VARIABLE : ..REMARK
-             DATA SET : K-Bay OAR3d model (200m)
-             FILENAME : err491_attval.cdf
-        "Generated by oar3d                                                                                                                                              "
- 
-go bn_reset
-cancel mode verify
- 
-!-----
-! Variables containing number of variables, attributes, dimensions,
-! lists of variable names, attribute names, coordinate variables,
-! global attribute names
- 
-! Given a variable, return the attribute names
-use coads_climatology
-let nat = sst.nattrs
- 
-let anames = sst.attnames
-list nat
-             VARIABLE : SST.NATTRS
-             FILENAME : coads_climatology.cdf
-          5.000
-list anames
-             VARIABLE : SST.ATTNAMES
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 5 points (X)
- 1   / 1:"missing_value"
- 2   / 2:"_FillValue"   
- 3   / 3:"long_name"    
- 4   / 4:"history"      
- 5   / 5:"units"        
- 
-! Given a variable, return the coordinate number and names
-let nd = sst.ndims
-let cnames = sst.dimnames
-list nd
-             VARIABLE : SST.NDIMS
-             FILENAME : coads_climatology.cdf
-          3.000
-list cnames
-             VARIABLE : SST.DIMNAMES
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 points (X)
- 1   / 1:"COADSX"
- 2   / 2:"COADSY"
- 3   / 3:"TIME4" 
- 
-! ..varnames
-can data/all
-use gt4d011
-use coads_climatology
- 
-let nv = ..nvars
-let nd = ..ndims
-let vnames = ..varnames
-list/d=1 nv, nd
-             DATA SET: ./gt4d011.cdf
- Column  1: NV is ..NVARS
- Column  2: ND is ..NDIMS
-             NV    ND
-I / *:     12.00  21.00
-list/d=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"   
- 
-let vnames = ..varnames
-list/d=coads_climatology vnames
-             VARIABLE : ..VARNAMES
-             FILENAME : coads_climatology.cdf
-        "SST"
-list/d=gt4d011 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"   
- 
-can data/all
-can var/all
- 
-! global ..dimnames
- 
-use coads_climatology
-use gt4d011
- 
-let vnames = ..dimnames[d=1]
-let lnames = ..dimnames[d=2]
-list vnames
-             VARIABLE : ..DIMNAMES[D=coads_climatology]
-             SUBSET   : 3 points (X)
- 1   / 1:"COADSX"
- 2   / 2:"COADSY"
- 3   / 3:"TIME4" 
-list lnames
-             VARIABLE : ..DIMNAMES[D=gt4d011]
-             SUBSET   : 20 points (X)
- 1    /  1:"PSXT1"     
- 2    /  2:"PSYT1"     
- 3    /  3:"PSYTedges" 
- 4    /  4:"PSZT1"     
- 5    /  5:"PSZTedges" 
- 6    /  6:"TIME11"    
- 7    /  7:"PSXT91_108"
- 8    /  8:"PSYT35_56" 
- 9    /  9:"PSZT1_10"  
- 10   / 10:"PSYT35_55" 
- 11   / 11:"PSXU"      
- 12   / 12:"PSYU"      
- 13   / 13:"PSYUedges" 
- 14   / 14:"PSXU91_108"
- 15   / 15:"PSYU35_55" 
- 16   / 16:"PSZW"      
- 17   / 17:"PSZWedges" 
- 18   / 18:"PSYT36_55" 
- 19   / 19:"PSZW1_10"  
- 20   / 20:"PSYU35_56" 
- 
-can var/all
-can data/all
- 
-! Global attributes ..attnames
-use err491_attval
- 
-let v = ..ndims
-list v
-             VARIABLE : ..NDIMS
-             DATA SET : K-Bay OAR3d model (200m)
-             FILENAME : err491_attval.cdf
-          3.000
- 
-let na = ..nattrs
-list na
-             VARIABLE : ..NATTRS
-             DATA SET : K-Bay OAR3d model (200m)
-             FILENAME : err491_attval.cdf
-          31.00
- 
-let gnames = ..attnames
-list gnames
-             VARIABLE : ..ATTNAMES
-             DATA SET : K-Bay OAR3d model (200m)
-             FILENAME : err491_attval.cdf
-             SUBSET   : 31 points (X)
- 1    /  1:"simulation"    
- 2    /  2:"start_date"    
- 3    /  3:"history"       
- 4    /  4:"option"        
- 5    /  5:"run_mode"      
- 6    /  6:"srfc_bndry"    
- 7    /  7:"rad_penet"     
- 8    /  8:"dt_external"   
- 9    /  9:"dt_internal"   
- 10   / 10:"horiz_diff"    
- 11   / 11:"inv_prandtl"   
- 12   / 12:"min_slope"     
- 13   / 13:"title"         
- 14   / 14:"command"       
- 15   / 15:"remark"        
- 16   / 16:"x_units"       
- 17   / 17:"y_units"       
- 18   / 18:"z_units"       
- 19   / 19:"nx"            
- 20   / 20:"ny"            
- 21   / 21:"x_min"         
- 22   / 22:"x_max"         
- 23   / 23:"y_min"         
- 24   / 24:"y_max"         
- 25   / 25:"z_min"         
- 26   / 26:"z_max"         
- 27   / 27:"x_inc"         
- 28   / 28:"y_inc"         
- 29   / 29:"z_scale_factor"
- 30   / 30:"z_add_offset"  
- 31   / 31:"node_offset"   
- 
-! attributes of variable number 2
- 
-use ocean_atlas_temp
-use gt4d011
-let names = ..varnames
-let anames = `names[i=2]`.attnames
- !-> DEFINE VARIABLE anames = TEMP.attnames
- 
-go bn_reset
-cancel mode verify
- 
- 
-!-----
-! more on number of attributes
- 
-can data/all
-can var/all
- 
-use ocean_atlas_temp
-let nat = temp.nattrs
-list nat
-             VARIABLE : TEMP.NATTRS
-             FILENAME : ocean_atlas_temp.cdf
-          5.000
- 
-list (`temp,return=xaxis`).nattrs
- !-> list (XAX_LEV9421_380).nattrs
-             VARIABLE : (XAX_LEV9421_380).NATTRS
-             FILENAME : ocean_atlas_temp.cdf
-          4.000
- 
-use gt4d011
-say `temp.nattrs[d=1]`
- !-> MESSAGE/CONTINUE 5
-5
- 
-def sym xaxnam  "(`temp[d=1],return=xaxis`)"
- !-> def sym xaxnam  "(XAX_LEV9421_380)"
-list `($xaxnam).nattrs[d=1]`
- !-> list 4
-             VARIABLE : constant
-          4.000
- 
-say `(yax_lev94).nattrs[d=1]`
- !-> MESSAGE/CONTINUE 3
-3
- 
-go bn_reset
-cancel mode verify
- 
-!-----
-! more on access to attribute names and values as variables
- 
-use coads_climatology
-use levitus_climatology
-use ocean_atlas_temp
-use gt4d011
- 
-let a = temp.units
-list/d=3 a
-             VARIABLE : TEMP.UNITS
-             FILENAME : ocean_atlas_temp.cdf
-        "Deg C"
- 
-list temp.units[d=3]
-             VARIABLE : TEMP.UNITS[D=ocean_atlas_temp]
-             FILENAME : ocean_atlas_temp.cdf
-        "Deg C"
-list/d=3 temp.history
-             VARIABLE : TEMP.HISTORY
-             FILENAME : ocean_atlas_temp.cdf
-        "From ocean_atlas_monthly"
- 
-can data/all
-can var/all
- 
-use test0.nc
-sh data/att
-     currently SET data sets:
-    1> ./test0.nc  (default)
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               glob            CHAR        16   F       Global attribute
-  
- broiled               CHAR      act             CHAR        16   F       text string
-	123
-                                 acb             BYTE        1    F       10
-                                 acs             SHORT       1    F       -200
-                                 acl             INT         1    F       17000
-                                 acf             FLOAT       3    F       -2 1 0
-                                 acd             DOUBLE      2    F       -1 2.718282
-  
- the_bullet            BYTE
-  
- order                 SHORT
-  
- rigue                 INT
-  
- a_loan                FLOAT
-  
- entendre              DOUBLE
-  
- cscalar               CHAR
-  
- dscalar               DOUBLE
-  
- cnodata               CHAR
-  
- bnodata               BYTE
-  
- snodata               SHORT
-  
- inodata               INT
-  
- fnodata               FLOAT
-  
- dnodata               DOUBLE
-  
-(i)                    INT       orig_file_axnameCHAR        1    F       i
-  
-(j)                    FLOAT     orig_file_axnameCHAR        1    F       j
-  
-(l)                    BYTE      orig_file_axnameCHAR        1    F       l
-  
- 
-let a= broiled.acl
-list a
-             VARIABLE : BROILED.ACL
-             FILENAME : test0.nc
-          17000.
- 
-let a= broiled.acf
-list a
-             VARIABLE : BROILED.ACF
-             FILENAME : test0.nc
-             SUBSET   : 3 points (X)
- 1   / 1: -2.000
- 2   / 2:  1.000
- 3   / 3:  0.000
- 
-list/i=2 a
-             VARIABLE : BROILED.ACF
-             FILENAME : test0.nc
-             X        : 2
-          1.000
- 
-list a[i=2:3]
-             VARIABLE : BROILED.ACF
-             FILENAME : test0.nc
-             SUBSET   : 2 points (X)
- 2   / 2:  1.000
- 3   / 3:  0.000
- 
-use coads_climatology
-list sst.dimnames[i=2]
-             VARIABLE : SST.DIMNAMES[I=2]
-             FILENAME : coads_climatology.cdf
-             X        : 2
-        "COADSY"
- 
-list/i=3 sst.dimnames
-             VARIABLE : SST.DIMNAMES
-             FILENAME : coads_climatology.cdf
-             X        : 3
-        "TIME4"
-let a= sst.dimnames
- 
-list a
-             VARIABLE : SST.DIMNAMES
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 points (X)
- 1   / 1:"COADSX"
- 2   / 2:"COADSY"
- 3   / 3:"TIME4" 
-list a[i=1]
-             VARIABLE : SST.DIMNAMES
-             FILENAME : coads_climatology.cdf
-             X        : 1
-        "COADSX"
- 
-go bn_reset
-cancel mode verify
- 
-!-----
-! keyword . to refer to global properties and attributes
- 
-use gt4d011
-list ..nvars
-             VARIABLE : ..NVARS
-             FILENAME : gt4d011.cdf
-          12.00
- 
-use coads_climatology
- 
-list/d=1 ..nvars
-             VARIABLE : ..NVARS
-             FILENAME : gt4d011.cdf
-          12.00
-list/d=2 ..nvars
-             VARIABLE : ..NVARS
-             FILENAME : coads_climatology.cdf
-          1.000
- 
-sh data
-     currently SET data sets:
-    1> ./gt4d011.cdf
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25      ...       ...
- SALT     (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25      ...       ...
- U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25      ...       ...
- V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25      ...       ...
- W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25      ...       ...
- TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25      ...       ...
- TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25      ...       ...
- PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25      ...       ...
- 
-    2> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
- 
-list/d=2 ..varnames
-             VARIABLE : ..VARNAMES
-             FILENAME : coads_climatology.cdf
-        "SST"
- 
-list/d=2 ..dimnames
-             VARIABLE : ..DIMNAMES
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 points (X)
- 1   / 1:"COADSX"
- 2   / 2:"COADSY"
- 3   / 3:"TIME4" 
-list/d=1 ..dimnames
-             VARIABLE : ..DIMNAMES
-             FILENAME : gt4d011.cdf
-             SUBSET   : 20 points (X)
- 1    /  1:"PSXT1"     
- 2    /  2:"PSYT1"     
- 3    /  3:"PSYTedges" 
- 4    /  4:"PSZT1"     
- 5    /  5:"PSZTedges" 
- 6    /  6:"TIME11"    
- 7    /  7:"PSXT91_108"
- 8    /  8:"PSYT35_56" 
- 9    /  9:"PSZT1_10"  
- 10   / 10:"PSYT35_55" 
- 11   / 11:"PSXU"      
- 12   / 12:"PSYU"      
- 13   / 13:"PSYUedges" 
- 14   / 14:"PSXU91_108"
- 15   / 15:"PSYU35_55" 
- 16   / 16:"PSZW"      
- 17   / 17:"PSZWedges" 
- 18   / 18:"PSYT36_55" 
- 19   / 19:"PSZW1_10"  
- 20   / 20:"PSYU35_56" 
- 
-list/d=1 ..nattrs
-             VARIABLE : ..NATTRS
-             FILENAME : gt4d011.cdf
-          1.000
-list/d=1 ..attnames
-             VARIABLE : ..ATTNAMES
-             FILENAME : gt4d011.cdf
-        "history"
- 
-list/d=1 ..ndims
-             VARIABLE : ..NDIMS
-             FILENAME : gt4d011.cdf
-          21.00
-list/d=2 ..ndims
-             VARIABLE : ..NDIMS
-             FILENAME : coads_climatology.cdf
-          3.000
- 
-list ..nvars[d=1]
-             VARIABLE : ..NVARS[D=gt4d011]
-             FILENAME : gt4d011.cdf
-          12.00
-sh var
- Created by DEFINE VARIABLE:
- 
-let pp = ..varnames
-list pp[d=1]
-             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"   
- 
-set data 1
-list/d=2 pp
-             VARIABLE : ..VARNAMES
-             FILENAME : coads_climatology.cdf
-        "SST"
- 
-go bn_reset
-cancel mode verify
- 
-!-----
-! Editing attributes: add new attributes to a variable.
- 
-use ocean_atlas_temp
-def att/type=string temp.strval = 2
-def att/type=float temp.floatval = 22
-def att temp.pp = {1.5, 1.9}
-def att temp.some_text = "some text about the TEMP variable"
-sh att/all temp
-     attributes for dataset: ./ocean_atlas_temp.cdf
- TEMP.missing_value = -1.E+34
- TEMP._FillValue = -1.E+34
- TEMP.long_name = Temperature 
- TEMP.history = From ocean_atlas_monthly 
- TEMP.units = Deg C 
- TEMP.strval = 2 
- TEMP.floatval = 22
- TEMP.pp = 1.5, 1.9
- TEMP.some_text = some text about the TEMP variable 
- 
-! Now change some existing attributes (this redefines
-! the attribute, behaving like DEFINE AXIS...)
- 
-def att temp.pp = {1.5, 1.9, 3.45, 7}
-def att temp.some_text = "some different text"
-sh att temp.pp
-     attributes for dataset: ./ocean_atlas_temp.cdf
- TEMP.pp = 1.5, 1.9, 3.45, 7
-let var = temp.some_text
-list/nohead var
-        "some different text"
- 
-! add an attribute to a variable not in the default dataset
- 
-use gt4d011
-def att/D=1 temp.morenew = 2
-sh att/all temp[d=1]
-     attributes for dataset: ./ocean_atlas_temp.cdf
- TEMP.missing_value = -1.E+34
- TEMP._FillValue = -1.E+34
- TEMP.long_name = Temperature 
- TEMP.history = From ocean_atlas_monthly 
- TEMP.units = Deg C 
- TEMP.strval = 2 
- TEMP.floatval = 22
- TEMP.pp = 1.5, 1.9, 3.45, 7
- TEMP.some_text = some different text 
- TEMP.morenew = 2
- 
-go bn_reset
-cancel mode verify
- 
-!-----
-! Edit existing attributes on variables
- 
-use ocean_atlas_temp
-sh att/all temp
-     attributes for dataset: ./ocean_atlas_temp.cdf
- TEMP.missing_value = -1.E+34
- TEMP._FillValue = -1.E+34
- TEMP.long_name = Temperature 
- TEMP.history = From ocean_atlas_monthly 
- TEMP.units = Deg C 
-set att temp.long_name = "set title via SET ATT temp.longname"
-set att temp.units = "Centigrade"
-plot/y=0/l=1 temp
- 
-! two settings of the missing value change both the missing and bad flags
-set att temp.missing_value = 12
-set att temp.missing_value = 12
-shade/L=2 temp
- 
-!-----
-! access and edit attributes of coordinate variables.
-! Specify names of coord variables inside parentheses
- 
-use ocean_atlas_temp
-use coads_climatology
- 
-! Get attributes of a coordinate variable
- 
-list (coadsx).units
-             VARIABLE : (COADSX).UNITS
-             FILENAME : coads_climatology.cdf
-        "degrees_east"
-list (coadsx).modulo
-             VARIABLE : (COADSX).MODULO
-             FILENAME : coads_climatology.cdf
-        " "
-sho att/all (coadsx)
-     attributes for dataset: ./coads_climatology.cdf
- (COADSX).units = degrees_east 
- (COADSX).modulo =   
- (COADSX).point_spacing = even 
- (COADSX).orig_file_axname = COADSX 
- 
-! Set the attribute output flag
- 
-set att/output (coadsx).modulo
- 
-! Define a new attribute on a coordinate axis
- 
-define att (`sst,return=xaxis`).newatt = 3
- !-> define att (COADSX).newatt = 3
-set att/output (`sst,return=xaxis`).newatt
- !-> set att/output (COADSX).newatt
-save/clobber/file=a.nc/x=130w/y=0 sst
- 
-sp echo "bn_attributes.jnl --- 2 access and edit attributes of coordinate variables." >> all_ncdump.out
-sp ncdump -c a.nc >> all_ncdump.out
- 
-! modfalse.nc is a file with modulo attribute on x axis
-! explicitly set to FALSE
- 
-use modfalse.nc
-set att/output (`sst,return=xaxis`).modulo
- !-> set att/output (COADSX81_81).modulo
-save/clobber/file=a.nc sst
-sp echo "bn_attributes.jnl --- 3 modulo set to false" >> all_ncdump.out
-sp ncdump -c a.nc >> all_ncdump.out
- 
-! Reset attributes as in SET AXIS
- 
-use gt4d011
-set view left; shade/y=0/L=1 temp
-set att (`temp,return=zaxis`).positive="up"
- !-> set att (PSZT1).positive="up"
-set view right; shade/y=0/L=1 temp
-can data gt4d011
- 
-set data coads_climatology
-sho att (coadsx).modulo
-     attributes for dataset: ./coads_climatology.cdf
- (COADSX).modulo =   
-set att (coadsx).modulo=360
- 
-! Note here that Ferret is using the name TIME1 instead of TIME.
-! axis still found and edited.
- 
-set att (`sst,return=taxis`).time_origin="1-jan-1980"
- !-> set att (TIME4).time_origin="1-jan-1980"
-list/x=130w/y=0 sst
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 points (TIME)
-             LONGITUDE: 131W
-             LATITUDE : 1S
-                   131W   
-                   105
- 16-JAN-1980 / 1:  25.02
- 15-FEB-1980 / 2:  26.35
- 17-MAR-1980 / 3:  26.98
- 
-!(coordvar).attname[d=1]
-! Can have the parentheses included in a symbol
- 
-def sym xaxnam  "(`temp[d=1],return=xaxis`)"
- !-> def sym xaxnam  "(XAX_LEV9421_380)"
-list `($xaxnam).nattrs[d=1]`
- !-> list 4
-             VARIABLE : constant
-          4.000
- 
-! Or parentheses added when symbol is evaluated
-def sym yaxnam  "`temp[d=1],return=yaxis`"
- !-> def sym yaxnam  "YAX_LEV94"
-list `(($yaxnam)).nattrs[d=1]`
- !-> list 3
-             VARIABLE : constant
-          3.000
- 
-! just the name of the axis
-list (`sst,return=xaxis`).nattrs[d=2]
- !-> list (COADSX).nattrs[d=2]
-             VARIABLE : (COADSX).NATTRS[D=coads_climatology]
-             FILENAME : coads_climatology.cdf
-          5.000
- 
-! using dimension names from the linked list structure
- 
-let cnames = sst.dimnames
-list cnames
-             VARIABLE : SST.DIMNAMES
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 points (X)
- 1   / 1:"COADSX"
- 2   / 2:"COADSY"
- 3   / 3:"TIME4" 
-show axis (`cnames[i=1]`)
- !-> show axis (COADSX)
- name       axis              # pts   start                end
-list (`cnames[i=1]`).nattrs
- !-> list (COADSX).nattrs
-             VARIABLE : (COADSX).NATTRS
-             FILENAME : coads_climatology.cdf
-          5.000
- 
-! Intentional errors.
- 
-SET MODE IGNORE
- 
-! Need parentheses around axis name.
-list coadsx.units
-sh att/all coadsy
- 
-! Cannot change the direction of an axis
-use modfalse.nc
-set att (`sst,return=xaxis`).axis = "Z"
- !-> set att (COADSX81_81).axis = "Z"
- 
-can view
- 
-can mode ignore
-go bn_reset
-cancel mode verify
- 
-!-----
-! Edit attributes: inherit all attrs from another variable
- 
-use gt4d011
-sh att/all salt
-     attributes for dataset: ./gt4d011.cdf
- SALT.parent_grid = PS3DT2 
- SALT.slab_min_index = 91, 35, 1, 0
- SALT.slab_max_index = 108, 55, 10, 0
- SALT.missing_value = 0.01
- SALT._FillValue = 0.01
- SALT.long_name = (SALINITY(ppt) - 35) /1000 
- SALT.history = From gt4d011 
- SALT.units = frac. by wt. less .035 
- 
-set att/like=temp salt
-sh att/all salt
-     attributes for dataset: ./gt4d011.cdf
- SALT.parent_grid = PS3DT2 
- SALT.slab_min_index = 91, 35, 1, 0
- SALT.slab_max_index = 108, 56, 10, 0
- SALT.missing_value = -1.E+34
- SALT._FillValue = -1.E+34
- SALT.long_name = TEMPERATURE 
- SALT.history = From gt4d011 
- SALT.units = deg. C 
- 
-! If a user variable is defined based on another variable,
-! it gets only default attributes. All attributes must be
-! specified with qualifiers (/UNITS=) or with DEF ATT
- 
-! Define a new attribute on a file variable, then a new var as fcn of that
- 
-define attribute temp.description = "description of TEMP in gt4d011"
-let temp2 = temp*2
-sh att/all temp2
-     attributes for user-defined variables
- temp2.long_name = TEMP*2 
- temp2.missing_value = -1.E+34
- 
-! Can inherit attributes explicitly, either all at once or individually.
-def att temp2.units = "`temp,return=units`"
- !-> def att temp2.units = "deg. C"
-sh att/all temp2
-     attributes for user-defined variables
- temp2.long_name = TEMP*2 
- temp2.missing_value = -1.E+34
- temp2.units = deg. C 
- 
-let temp3 = temp*3
-set att/like=temp temp3
-sh att/all temp3
-     attributes for user-defined variables
- temp3.parent_grid = PS3DT2 
- temp3.slab_min_index = 91, 35, 1, 0
- temp3.slab_max_index = 108, 56, 10, 0
- temp3.missing_value = -1.E+34
- temp3._FillValue = -1.E+34
- temp3.long_name = TEMPERATURE 
- temp3.history = From gt4d011 
- temp3.units = deg. C 
- temp3.description = description of TEMP in gt4d011 
- 
-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
-sh att/all temp2
-     attributes for user-defined variables
- temp2.long_name = my new TEMP 
- temp2.units = degrees C 
- temp2.missing_value = -1.E+34
- 
-go bn_reset
-cancel mode verify
- 
-!-----
-! Edit attributes, changing type
-! change values, type, and length of attributes.
- 
-use ocean_atlas_temp
-def att/type=string temp.strval = 2
-def att/type=float temp.floatval = 22
-def att temp.pp = {1.5, 1.9}
-def att temp.some_text = "some text about the TEMP variable"
-sh att/all temp
-     attributes for dataset: ./ocean_atlas_temp.cdf
- TEMP.missing_value = -1.E+34
- TEMP._FillValue = -1.E+34
- TEMP.long_name = Temperature 
- TEMP.history = From ocean_atlas_monthly 
- TEMP.units = Deg C 
- TEMP.strval = 2 
- TEMP.floatval = 22
- TEMP.pp = 1.5, 1.9
- TEMP.some_text = some text about the TEMP variable 
- 
-! Change attribute values
- 
-set att temp.pp = {1.5, 1.9, 3.45, 7}
-set att temp.some_text = "some different text"
-sh att temp.pp
-     attributes for dataset: ./ocean_atlas_temp.cdf
- TEMP.pp = 1.5, 1.9, 3.45, 7
-let var = temp.some_text
-list/nohead var
-        "some different text"
- 
-! Now change attribute types
- 
-set att temp.pp = "PP now has some text."
-set att temp.some_text = 745.
- 
-! Does changing the type of an attribute cause any trouble for a variable
-! defined based on that variable?
- 
-list/nohead var
-          745.0
-let pq = temp.pp
-list pq
-             VARIABLE : TEMP.PP
-             FILENAME : ocean_atlas_temp.cdf
-        "PP now has some text."
- 
-! set an attribute when the variable is not in the default dataset.
- 
-use gt4d011
-def att/d=1 temp.morenew = 33
-sho att/all temp[d=1]
-     attributes for dataset: ./ocean_atlas_temp.cdf
- TEMP.missing_value = -1.E+34
- TEMP._FillValue = -1.E+34
- TEMP.long_name = Temperature 
- TEMP.history = From ocean_atlas_monthly 
- TEMP.units = Deg C 
- TEMP.strval = 2 
- TEMP.floatval = 22
- TEMP.pp = PP now has some text. 
- TEMP.some_text = 745
- TEMP.morenew = 33
- 
-! Edit the text in some of the attributes, make a plot where we see
-! the resulting change in title and units.
- 
-set data ocean_atlas_temp
-set att temp.long_name = "Ocean Atlas Temperature"
-set att temp.units = "Centigrade"
-shade/L=2 temp
- 
-! Define an attr that already exists: redefines
- 
-def att temp.pp = {1.5, 1.9, 3}
-let pq = temp.pp
-list pq
-             VARIABLE : TEMP.PP
-             FILENAME : ocean_atlas_temp.cdf
-             SUBSET   : 3 points (X)
- 1   / 1:  1.500
- 2   / 2:  1.900
- 3   / 3:  3.000
- 
-go bn_reset
-cancel mode verify
- 
-! When we CANCEL MODE upcase_output, writing a netcdf file preserves
-! case of variable and axis names. This file has lower case and some
-! mixed-case names.
- 
-use err491_attval.cdf
-sp echo "bn_attributes.jnl --- 4 CANCEL MODE upcase_output; original file:" >> all_ncdump.out
-sp ncdump -h err491_attval.cdf >> all_ncdump.out
-save/clobber/file=a.nc elev[i=3,j=2:4]
-sp echo "bn_attributes.jnl --- 5 before CANCEL MODE upcase_output" >> all_ncdump.out
-sp ncdump -h a.nc >> all_ncdump.out
- 
-cancel mode upcase_output
-save/clobber/file=a.nc elev[i=3,j=2:4]
-sp echo "bn_attributes.jnl --- 6 after CANCEL MODE upcase_output" >> all_ncdump.out
-sp ncdump -h a.nc >> all_ncdump.out
- 
-set mode/last upcase_output
- 
-go bn_reset
-cancel mode verify
- 
-!-----
- 
-! outtput flags to control attribute output to netcdf files
- 
-! SET ATT/OUTPUT varname.attname sets individual attr to be written
-! SET ATT/OUTPUT=all varname     output all attributes defined when var written
-! SET ATT/OUTPUT=default varname output default Ferret attributes
-! SET ATT/OUTPUT=none varname    output no attrbutes
- 
-let aa = 12
-let bb = {3,4.5,6,7,4}
- 
-def att bb.my_title = "This is my new variable bb"
-def att bb.another_attr = 6
- 
-! Output just one of these new attributes
- 
-set att/output bb.my_title
- 
-save/clobber/file=a.nc aa,bb
-sp echo "bn_attributes.jnl --- 7 outtput flags to control attribute output" >> all_ncdump.out
-sp ncdump -c a.nc >> all_ncdump.out
- 
-! Output all attributes
- 
-set att/output=all bb
-save/clobber/file=a.nc aa,bb
-sp echo "bn_attributes.jnl --- 8 outtput all flags" >> all_ncdump.out
-sp ncdump -c a.nc >> all_ncdump.out
- 
-! Just output the default attributes
- 
-set att/output=default bb
-save/clobber/file=a.nc bb
-sp echo "bn_attributes.jnl --- 9 Just output the default attributes" >> all_ncdump.out
-sp ncdump -c a.nc >> all_ncdump.out
- 
-! Output none of the attributes for aa
- 
-set att/output=none aa
-save/clobber/file=a.nc aa,bb
-sp echo "bn_attributes.jnl --- 10 Output none of the attributes for aa" >> all_ncdump.out
-sp ncdump -c a.nc >> all_ncdump.out
- 
-go bn_reset
-cancel mode verify
- 
- 
-!-----
-! CANCEL ATTRIBUTE/OUTPUT= to surpress output of attributes
- 
-use ocean_atlas_temp
-sh att/all  (`temp,return=xaxis`)
- !-> sh att/all  (XAX_LEV9421_380)
-     attributes for dataset: ./ocean_atlas_temp.cdf
- (XAX_LEV9421_380).units = degrees_east 
- (XAX_LEV9421_380).modulo =   
- (XAX_LEV9421_380).point_spacing = even 
- (XAX_LEV9421_380).orig_file_axname = XAX_LEV9421_380 
- 
-! Surpress output of existing attribute
-can att/out (`temp,return=xaxis`).point_spacing
- !-> can att/out (XAX_LEV9421_380).point_spacing
- 
-! Surpress output of an attribute that Ferret would otherwise add.
- 
-can att/out (`temp,return=xaxis`).axis
- !-> can att/out (XAX_LEV9421_380).axis
-save/file=a.nc/clobber temp
-sp echo "bn_attributes.jnl --- 11 Surpress output of an attribute that Ferret would otherwise add." >> all_ncdump.out
-sp ncdump -h a.nc >> all_ncdump.out
- 
-! subregions create child axes with new names
-! Check that settings hold for such an output file.
- 
-set reg/x=300:360/y=30:45
-sh att/all  (`temp,return=xaxis`)
- !-> sh att/all  (XAX_LEV9421_380)
-     attributes for dataset: ./ocean_atlas_temp.cdf
- (XAX_LEV9421_380).units = degrees_east 
- (XAX_LEV9421_380).modulo =   
- (XAX_LEV9421_380).point_spacing = even 
- (XAX_LEV9421_380).orig_file_axname = XAX_LEV9421_380 
- (XAX_LEV9421_380).axis = 1
-can att/out (`temp,return=xaxis`).point_spacing
- !-> can att/out (XAX_LEV9421_380).point_spacing
-can att/out (`temp,return=xaxis`).axis
- !-> can att/out (XAX_LEV9421_380).axis
-save/file=a.nc/clobber temp
-sp echo "bn_attributes.jnl --- 12 Check that settings hold for child axis." >> all_ncdump.out
-sp ncdump -h a.nc >> all_ncdump.out
- 
-! cancel output of attributes of the variable itself
-can region
-sh att/all  temp
-     attributes for dataset: ./ocean_atlas_temp.cdf
- TEMP.missing_value = -1.E+34
- TEMP._FillValue = -1.E+34
- TEMP.long_name = Temperature 
- TEMP.history = From ocean_atlas_monthly 
- TEMP.units = Deg C 
-can att/out temp.history
-can att/out temp.long_name
-save/file=a.nc/clobber temp
-sp echo "bn_attributes.jnl --- 13 cancel output of attributes of the variable." >> all_ncdump.out
-sp ncdump -h a.nc >> all_ncdump.out
- 
-go bn_reset
-cancel mode verify
- 
-!-----
-! Read EZ ascii, delimited, and stream data files,
-! add attributes to their variables.
- 
-! read file as an ez file
- 
-file/var="a1,a2,a3" EZ.DAT
-def att a1.three={1,2,3}
-sh att/all a1
-     attributes for dataset: ./EZ.DAT
- A1.long_name = A1 
- A1.missing_value = -1.E+34
- A1.three = 1, 2, 3
-sh dat/att
-     currently SET data sets:
-    1> ./EZ.DAT  (default)
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               history         CHAR        6    F       EZ.DAT
-  
- A1                    FLOAT     long_name       CHAR        2    T       A1
-                                 missing_value   FLOAT       1    T       -1.E+34
-                                 three           FLOAT       3    T       1 2 3
-  
- A2                    FLOAT     long_name       CHAR        2    T       A2
-                                 missing_value   FLOAT       1    T       -1.E+34
-  
- A3                    FLOAT     long_name       CHAR        2    T       A3
-                                 missing_value   FLOAT       1    T       -1.E+34
-  
-save/file=a.nc/clobber a1,a2,a3
-sp echo "bn_attributes.jnl --- 14 attributes of data from ez data." >> all_ncdump.out
-sp ncdump a.nc >> all_ncdump.out
- 
-! now read it as a delimited file
- 
-can data/all
- 
-columns/delim=" " EZ.DAT
-def att/type=string v1.strval = 2
-set att/output v1.strval
-sh att/all v1
-     attributes for dataset: ./EZ.DAT
- V1.long_name = V1 
- V1.missing_value = -1.E+34
- V1.strval = 2 
-save/clobber/file=a.nc v1,v4
-sp echo "bn_attributes.jnl --- 15 attributes of data from delimited data." >> all_ncdump.out
-sp ncdump a.nc >> all_ncdump.out
- 
-! and a stream dataset
- 
-def axis/x=1:1:1 xax
-def axis/y=1:2:1 yax
-def axis/z=1:3:1 zax
-def axis/t=1:4:1 tax
-def grid/x=xax/y=yax/z=zax/t=tax mygrid
-file/format=str/var=num,num1/grid=mygrid/order=xyztv permutedBinaryTest.dat
- 
-define att/type=string num.new = "a string attribute"
-sh att/all num
-     attributes for dataset: ./permutedBinaryTest.dat
- NUM.long_name = NUM 
- NUM.missing_value = -1.E+34
- NUM.new = a string attribute 
-go bn_reset
-cancel mode verify
- 
-!-----
-! manipulate attributes of user-defined variables
- 
-let a = {12,14,15}
-def att a.three={1,2,3}
-set att/output a.three
-def att a.four = {"theory"}
-set att/output a.four
-sh att/all a
-     attributes for user-defined variables
- a.long_name = {12,14,15} 
- a.missing_value = -1.E+34
- a.three = 1, 2, 3
- a.four = theory 
-sh dat/att
-     currently SET data sets:
-save/file=a.nc/clobber a
-sp echo "bn_attributes.jnl --- 16 attributes of user vars" >> all_ncdump.out
-sp ncdump a.nc >> all_ncdump.out
- 
- 
-!-----
-! write global attributes (Note this implementation needs work;
-! what is the right syntax?? Perhaps an undocumented feature for
-! the first release)
- 
-use err491_attval
-set att/out=all .   ! from the default data set
- 
-save/file=a.nc/clobber elev
-sp echo "bn_attributes.jnl --- 17 global attrs." >> all_ncdump.out
-sp ncdump -h a.nc >> all_ncdump.out
- 
-! Choose a single global attribute to write, from dataset 1
-can data/all
-use err491_attval
-use gt4d011
-set att/output/d=1 ..dt_internal
-save/clobber/file=a.nc elev[d=1], temp[d=2,x=130w,k=1,y=-20:20]
- 
-sp echo "bn_attributes.jnl --- 18 choose global attr to write" >> all_ncdump.out
-sp ncdump -h a.nc >> all_ncdump.out
- 
-! Note: this syntax does not work
-! use err491_attval
-! use ocean_atlas_temp
-! set att/out  ..min_slope[d=1]
-! save/file=a.nc/clobber elev[d=1]
- 
-go bn_reset
-cancel mode verify
- 
-!-----
- 
-! File with scale_factor and add_offset
-! If we request to write the variable with its scale factor
-! and offset attributes, then the data and its missing and fill
-! flags are rescaled.  Lets us re-pack data on output, or specify
-! new packing.
- 
-use err491_attval
-set att/output elev.scale_factor
-set att/output elev.add_offset
-set var/outtype=input elev
- 
-save/clobber/file=a.nc/j=1 elev
-sp echo "bn_attributes.jnl --- 19 scale and offset attr." >> all_ncdump.out
- 
-! Both of these should be scaled the same by Ferret
-use a.nc
-list/j=1 elev[d=1], elev[d=2]
-             LONGITUDE: 135.5W(-135.5) to 135W(-135)
-             LATITUDE: 58.6N
-             T (day): 1.8
- Column  1: ELEV[D=err491_attval] is Surface elevation (meter)
- Column  2: ELEV[D=a] is Surface elevation (meter)
-                 ELEV   ELEV
-135.51W   /  1:   ....   ....
-135.496W  /  2:   ....   ....
-135.483W  /  3:   ....   ....
-135.469W  /  4:   ....   ....
-135.456W  /  5:   ....   ....
-135.442W  /  6:   ....   ....
-135.429W  /  7:   ....   ....
-135.415W  /  8:   ....   ....
-135.402W  /  9:   ....   ....
-135.389W  / 10:   ....   ....
-135.375W  / 11:   ....   ....
-135.362W  / 12:  2.940  2.940
-135.348W  / 13:  2.940  2.940
-135.335W  / 14:  2.940  2.940
-135.321W  / 15:  2.940  2.940
-135.308W  / 16:  2.940  2.940
-135.294W  / 17:  2.940  2.940
-135.281W  / 18:  2.940  2.940
-135.267W  / 19:  2.940  2.940
-135.254W  / 20:  2.940  2.940
-135.241W  / 21:  2.940  2.940
-135.227W  / 22:  2.940  2.940
-135.214W  / 23:  2.940  2.940
-135.2W    / 24:  2.940  2.940
-135.187W  / 25:  2.940  2.940
-135.173W  / 26:   ....   ....
-135.16W   / 27:   ....   ....
-135.146W  / 28:   ....   ....
-135.133W  / 29:   ....   ....
-135.12W   / 30:   ....   ....
-135.106W  / 31:   ....   ....
-135.093W  / 32:   ....   ....
-135.079W  / 33:   ....   ....
-135.066W  / 34:   ....   ....
-135.052W  / 35:   ....   ....
-sp ncdump a.nc  >> all_ncdump.out
- 
-go bn_reset
-cancel mode verify
- 
-!-----
-! Set type of data on output, uses netcdf call to output
-! the requseted type.
- 
-use gt4d011
-set var/bad=-1000 temp
-set var/outtype=int4 temp
-save/file=a.nc/clobber/y=1/k=1/L=1 temp
-sp echo "bn_attributes.jnl --- 20 set data type on output int4" >> all_ncdump.out
-sp ncdump a.nc | grep -A2 -i temp >> all_ncdump.out
- 
-can data/all
-use gt4d011
- 
-set var/outtype=double salt
-save/clobber/file=a.nc/y=1/k=1/L=1 salt
-sp echo "bn_attributes.jnl --- 21 set data type on output double" >> all_ncdump.out
-sp ncdump a.nc | grep -A2 -i salt >> all_ncdump.out
- 
-can data gt4d011
- 
-! Force output type to equal input type (should we have a MODE setting for this??)
- 
-use test0
-let nam = ..varnames
- 
-repeat/range=1:4/name=q (def sym va = nam[i=`q`]; sh sym va; \
-  set var/outtype=input `($va)`;\
-  if `q eq 1` THEN save/clobber/file=a.nc `($va)` \
-  ELSE save/append/file=a.nc `($va)`)
- !-> repeat/range=1:4/name=q (def sym va = nam[i=`q`]; sh sym va;   set var/outtype=input `($va)`;  if `q eq 1` THEN save/clobber/file=a.nc `($va)`   ELSE save/append/file=a.nc `($va)`)
-!-> REPEAT: Q:1
- !-> def sym va = nam[i=1]
-VA = "nam[i=1]"
- !-> set var/outtype=input broiled
- !-> if 1 THEN save/clobber/file=a.nc `nam[i=1]`   ELSE save/append/file=a.nc `nam[i=1]`
- !-> LIST/FORMAT=CDF/clobber/file=a.nc broiled
-!-> REPEAT: Q:2
- !-> def sym va = nam[i=2]
-VA = "nam[i=2]"
- !-> set var/outtype=input the_bullet
- !-> if 0 THEN save/clobber/file=a.nc `nam[i=2]`   ELSE save/append/file=a.nc `nam[i=2]`
- !-> LIST/FORMAT=CDF/append/file=a.nc the_bullet
-!-> REPEAT: Q:3
- !-> def sym va = nam[i=3]
-VA = "nam[i=3]"
- !-> set var/outtype=input order
- !-> if 0 THEN save/clobber/file=a.nc `nam[i=3]`   ELSE save/append/file=a.nc `nam[i=3]`
- !-> LIST/FORMAT=CDF/append/file=a.nc order
-!-> REPEAT: Q:4
- !-> def sym va = nam[i=4]
-VA = "nam[i=4]"
- !-> set var/outtype=input rigue
- !-> if 0 THEN save/clobber/file=a.nc `nam[i=4]`   ELSE save/append/file=a.nc `nam[i=4]`
- !-> LIST/FORMAT=CDF/append/file=a.nc rigue
- 
-sp echo "bn_attributes.jnl --- 22 outtype=input" >> all_ncdump.out
-sp ncdump a.nc >> all_ncdump.out
- 
-set var/outtype=double a_loan
-save/file=a.nc/clobber a_loan
- 
-can data test0
- 
-go bn_reset
-cancel mode verify
- 
-!-----
-! More tests of user-defined variables. Bug 1427, now fixed, problem with varid of user vars
- 
-let v = {1,2,3,4}
-let a = is_element_of(1,v)
-let/title="hello" b = 1
-save/clobber/file=a.nc b
-sp echo "bn_attributes.jnl --- 23 more user-defined vars" >> all_ncdump.out
-sp ncdump a.nc >> all_ncdump.out
- 
- 
-!-----
-! Bug 1492, now fixed, output user-defined or redefined attributes
- 
-! A new setting for the point_spacing attribute using either SET or DEFINE
- 
-use coads_vwnd
-set att (`vwnd,return=xaxis`).point_spacing = "uneven"
- !-> set att (COADSX).point_spacing = "uneven"
-define att (`vwnd,return=yaxis`).point_spacing = "uneven"
- !-> define att (COADSY).point_spacing = "uneven"
-save/file=a.nc/clobber/L=1 vwnd
- 
-sp echo "bn_attributes.jnl --- 24 output redefined attr" >> all_ncdump.out
-sp ncdump a.nc >> all_ncdump.out
- 
-! new attribute written to file
- 
-let t2 = 2*vwnd
-DEFINE ATT/OUTPUT  (`t2,return=yaxis`).new_att = "somthing"
- !-> DEFINE ATT/OUTPUT  (COADSY).new_att = "somthing"
- 
-! shows up on the output of
- 
-SHOW ATT/ALL (`t2,return=yaxis`)
- !-> SHOW ATT/ALL (COADSY)
-     attributes for dataset: ./coads_vwnd.cdf
- (COADSY).units = degrees_north 
- (COADSY).point_spacing = uneven 
- (COADSY).orig_file_axname = COADSY 
- (COADSY).new_att = somthing 
- 
-! Check the new attribute is saved to a file. (if we
-! save uwnd to a file, it is output)
- 
-save/file=a.nc/clobber/L=1 t2
- 
-sp echo "bn_attributes.jnl --- 25 output new attr on user-defined var" >> all_ncdump.out
-sp ncdump a.nc >> all_ncdump.out
- 
- 
-! intentional errors
- 
-set mode ignore_error
- 
-! missing value and fill value too large for INT output.
- 
-use gt4d011
-set var/outtype=int4 temp
-save/file=a.nc/clobber/x=132w/k=1 temp
-can data gt4d011
- 
-sp rm a.nc
- 
-! specify incorrect output types
- 
-use test0
-set var/outtype=char broiled
- 
-set var/outtype=garbage broiled
- 
-can mode ignore
-go bn_reset
-cancel mode verify
- 
- 
-!---!!!---
-! Manipulate attributes of axes from datasets
-! A user-defined variable is used to refer to the axes.
- 
-use gt4d011.cdf
- 
-let t2 = t*temp
-set att (`t2,return=xaxis`).units = "degrees"
- !-> set att (PSXT1).units = "degrees"
-sh att/all (`t2,return=xaxis`)
- !-> sh att/all (PSXT1)
-     attributes for dataset: ./gt4d011.cdf
- (PSXT1).units = degrees 
- (PSXT1).point_spacing = even 
- (PSXT1).orig_file_axname = PSXT 
-set att/output (`t2,return=xaxis`).point_spacing
- !-> set att/output (PSXT1).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"
-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 (`temp,return=yaxis`).units="meters"
- !-> set att (PSYT1).units="meters"
-sho att/all (`temp,return=yaxis`)
- !-> sho att/all (PSYT1)
-     attributes for dataset: ./gt4d011.cdf
- (PSYT1).units = meters 
- (PSYT1).point_spacing = uneven 
- (PSYT1).edges = PSYTedges 
- (PSYT1).orig_file_axname = PSYT 
-save/file=a.nc/clobber/L=1 t2
- 
-sp ncdump -h a.nc >> all_ncdump.out
-go bn_reset
-cancel mode verify
- 
-! User-defined axes and variables
- 
-def axis/x=1:200:1  x2ax
-sh att/all (x2ax)
-     attributes for coordinate axis
- (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 =   
- 
-! 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 
- 
-! Define new attribute on an axis.
-! Save file var, and a user var defined from the file var
- 
-go bn_reset
-cancel mode verify
- 
-use levitus_climatology
-define att/out (`temp,return=xaxis`).new_att = "something"
- !-> define att/out (XAXLEVITR1_160).new_att = "something"
-sh dat/att
-     currently SET data sets:
-    1> ./levitus_climatology.cdf  (default)
- 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_axnameCHAR        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
-  
-(ZAXLEVITR1_1)         DOUBLE    units           CHAR        6    T       METERS
-                                 positive        CHAR        4    T       down
-                                 orig_file_axnameCHAR        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
-  
-save/file=a.nc/clobber/y=0:5 temp
-sp ncdump -h a.nc >> all_ncdump.out
- 
-let two = 2*temp[y=0:15,x=180:200]
-save/file=a.nc/clobber/y=0:5 two
-sp ncdump -h a.nc >> all_ncdump.out
-go bn_reset
-cancel mode verify
- 
-! defining more axes with attributes
- 
-show axis x2ax
- name       axis              # pts   start                end
- X2AX      X                  200mr   1                    200
-   Axis span (to cell edges) = 200 (modulo length = axis span)
-def axis/x=1:2:1/modulo=360 x2ax
-def axis/y=1:3:1 y3ax
-def axis/z=1:4:1/depth z4ax
-def axis/t=1:2:1 t2ax
-let a = {"alpha","a2","a3","a4","a5","a6","a7","a8","a9","a10",\
-"bravo","b2","b3","b4","b5","b6","b7","b8","b9","b10",\
-"c1","c2","c3","c4","c5","c6","c7","c8","c9","c10",\
-"d1","d2","d3","d4","d5","d6","d7","d8","d9","d10",\
-"echo","e2","e3","e4","e5","e6","e7","e8"}
-let rvar = x[gx=x2ax] + y[gy=y3ax] + z[gz=z4ax] + t[gt=t2ax]
- 
-let axy = reshape (a,rvar)
- 
-show att/all (z4ax)
-     attributes for coordinate axis
- (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
-save/clobber/file=string4d.nc axy
-sp ncdump -h string4d.nc >> all_ncdump.out
- 
-go bn_reset
-cancel mode verify
-! For SET ATT timeaxis.units or SET ATT timeaxis.time_origin
-! include the correct time origin as part of the units attribute.
- 
-! Note original attributes
-use coads_climatology
-show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
-     attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = hour since 0000-01-01 00:00:00 
- (TIME7).time_origin = 1-JAN-0000 00:00:00 
- (TIME7).modulo =   
- (TIME7).orig_file_axname = TIME 
- 
-! change units to days since time origin
-set att (`sst,return=taxis`).units="days"
- !-> set att (TIME7).units="days"
-show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
-     attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = days since 1-JAN-0000 00:00:00 
- (TIME7).time_origin = 1-JAN-0000 00:00:00 
- (TIME7).modulo =   
- (TIME7).orig_file_axname = TIME 
- 
-define attribute (`sst,return=taxis`).units = "months"
- !-> define attribute (TIME7).units = "months"
-show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
-     attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = months since 1-JAN-0000 00:00:00 
- (TIME7).time_origin = 1-JAN-0000 00:00:00 
- (TIME7).modulo =   
- (TIME7).orig_file_axname = TIME 
- 
-! change time origin and also units to include time origin
-set att (`sst,return=taxis`).time_origin = "1-mar-1955"
- !-> set att (TIME7).time_origin = "1-mar-1955"
-show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
-     attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = months since 1-mar-1955 
- (TIME7).time_origin = 1-mar-1955 
- (TIME7).modulo =   
- (TIME7).orig_file_axname = TIME 
- 
-define attribute (`sst,return=taxis`).time_origin = "15-jan-2002"
- !-> define attribute (TIME7).time_origin = "15-jan-2002"
-show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
-     attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = months since 15-jan-2002 
- (TIME7).time_origin = 15-jan-2002 
- (TIME7).modulo =   
- (TIME7).orig_file_axname = TIME 
- 
-! Likewise on DEFINE AXIS or SET AXIS, change units to
-! include the correct since time_origin.
- 
-use coads_climatology
-show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
-     attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = months since 15-jan-2002 
- (TIME7).time_origin = 15-jan-2002 
- (TIME7).modulo =   
- (TIME7).orig_file_axname = TIME 
-def axis/t=1:12:1/unit=months/t0="1-jan-0001" time
-show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
-     attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = months since 15-jan-2002 
- (TIME7).time_origin = 15-jan-2002 
- (TIME7).modulo =   
- (TIME7).orig_file_axname = TIME 
- 
-set axis/t0="15-jan-0000" time
-show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
-     attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = months since 15-jan-2002 
- (TIME7).time_origin = 15-jan-2002 
- (TIME7).modulo =   
- (TIME7).orig_file_axname = TIME 
- 
-set axis/units=days time
-show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
-     attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = months since 15-jan-2002 
- (TIME7).time_origin = 15-jan-2002 
- (TIME7).modulo =   
- (TIME7).orig_file_axname = TIME 
- 
-! Fix bug 1518: previously var.attnames for a user-defined variable resulted in an error
-use coads_climatology
-let sst2 = 2*sst
-set att/like=sst sst2
-list sst2.attnames
-             VARIABLE : SST2.ATTNAMES
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 5 points (X)
- 1   / 1:"missing_value"
- 2   / 2:"_FillValue"   
- 3   / 3:"long_name"    
- 4   / 4:"history"      
- 5   / 5:"units"        
- 
- 
-! Add a global attribute
-use test0
- 
-DEFINE ATT/OUTPUT ..FERRET_comment = "File written via LAS. Attributes are inherited from originating dataset"
-SET ATT/OUTPUT=all .
- 
-SET ATT/OUTPUT=all broiled
-SAVE/CLOBBER/FILE=a.nc broiled
- 
-sp echo "bn_attributes.jnl --- 28 Define a new global attribute" >> all_ncdump.out
-sp echo "bn_attributes.jnl --- 29 SET ATT/OUTPUT=all for global attrs and a var" >> all_ncdump.out
-sp ncdump a.nc >> all_ncdump.out
- 
- 
-!-----
-! Set type of data on output for a user var
-! the requseted type.
- 
-sp echo "bn_attributes.jnl --- 29 SET VAR/OUTTYPE for user variable" >> all_ncdump.out
- 
-use gt4d011
-let/units="Deg F" faren = temp*9/5 + 32
-set var/outtype=double faren
-save/file=a.nc/clobber faren
- 
-sp ncdump -h a.nc  >> all_ncdump.out
- 
-let/units="Deg F"/bad=-999 faren = temp*9/5 + 32
-set var/outtype=int faren
-save/file=a.nc/clobber faren
- 
-sp ncdump -h a.nc  >> all_ncdump.out
- 
-! Tests for simplified syntax for SHOW ATTRIBUTE:
- 
-! SHOW ATT varname   is like SHOW ATT/ALL varname
-! SHOW ATT dset      same output as SHOW DATA/ATT dset
- 
-can data/all
-use ocean_atlas_temp
-sho att temp
-     attributes for dataset: ./ocean_atlas_temp.cdf
- TEMP.missing_value = -1.E+34
- TEMP._FillValue = -1.E+34
- TEMP.long_name = Temperature 
- TEMP.history = From ocean_atlas_monthly 
- TEMP.units = Deg C 
-sho att ocean_atlas_temp
-     currently SET data sets:
-    1> ./ocean_atlas_temp.cdf  (default)
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               history         CHAR        28   T       FERRET V4.90 (GUI) 04-Feb-98
-  
-(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
-  
-(YAX_LEV94)            DOUBLE    units           CHAR        13   T       degrees_north
-                                 point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        9    F       YAX_LEV94
-  
-(ZAXLEVIT191_1)        DOUBLE    units           CHAR        6    T       METERS
-                                 positive        CHAR        4    T       down
-                                 orig_file_axnameCHAR        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
-  
- TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
-                                 _FillValue      FLOAT       1    T       -1.E+34
-                                 long_name       CHAR        11   T       Temperature
-                                 history         CHAR        24   T       From ocean_atlas_monthly
-                                 units           CHAR        5    T       Deg C
-  
-sho att (`temp,return=xaxis`)
- !-> sho att (XAX_LEV9421_380)
-     attributes for dataset: ./ocean_atlas_temp.cdf
- (XAX_LEV9421_380).units = degrees_east 
- (XAX_LEV9421_380).modulo =   
- (XAX_LEV9421_380).point_spacing = even 
- (XAX_LEV9421_380).orig_file_axname = XAX_LEV9421_380 
- 
-use levitus_climatology
-sho att 1
-     currently SET data sets:
-    1> ./ocean_atlas_temp.cdf
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               history         CHAR        28   T       FERRET V4.90 (GUI) 04-Feb-98
-  
-(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
-  
-(YAX_LEV94)            DOUBLE    units           CHAR        13   T       degrees_north
-                                 point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        9    F       YAX_LEV94
-  
-(ZAXLEVIT191_1)        DOUBLE    units           CHAR        6    T       METERS
-                                 positive        CHAR        4    T       down
-                                 orig_file_axnameCHAR        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
-  
- TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
-                                 _FillValue      FLOAT       1    T       -1.E+34
-                                 long_name       CHAR        11   T       Temperature
-                                 history         CHAR        24   T       From ocean_atlas_monthly
-                                 units           CHAR        5    T       Deg C
-  
-sho 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_axnameCHAR        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
-  
-(ZAXLEVITR1_1)         DOUBLE    units           CHAR        6    T       METERS
-                                 positive        CHAR        4    T       down
-                                 orig_file_axnameCHAR        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
-  
- 
-sho att temp[d=1]
-     attributes for dataset: ./ocean_atlas_temp.cdf
- TEMP.missing_value = -1.E+34
- TEMP._FillValue = -1.E+34
- TEMP.long_name = Temperature 
- TEMP.history = From ocean_atlas_monthly 
- TEMP.units = Deg C 
-sho att temp[d=2]
-     attributes for dataset: ./levitus_climatology.cdf
- TEMP.missing_value = -1.E+10
- TEMP._FillValue = -1.E+10
- TEMP.long_name = TEMPERATURE 
- TEMP.history = From levitus_climatology 
- TEMP.units = DEG C 
- 
-sho att (`temp[d=1],return=taxis`[d=1])
- !-> sho att (TIME3[d=1])
-     attributes for dataset: ./ocean_atlas_temp.cdf
- (TIME3).units = hour since 0000-01-01 00:00:00 
- (TIME3).time_origin = 01-JAN-0000 00:00:00 
- (TIME3).modulo =   
- (TIME3).orig_file_axname = TIME 
- 
-sho att .
-     attributes for dataset: ./levitus_climatology.cdf
- ..history = FERRET V5.22    5-Apr-01 
- 
-!=======
-! 10/06 *acm* Remove tests of nco funcions: we dont want to require them to be installed
-!             on a system in order for it to pass the benchmarks.
-!go bn_reset
-!go bn_nco_functions.jnl
- 
-go bn_reset
-cancel mode verify
-go bn_transforms.jnl
-! Test the transforms
- 
-use coads_climatology
- 
-list/L=1/prec=7 sst[x=100:120 at ave,y=10:30 at ave]
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             FILENAME : coads_climatology.cdf
-             LONGITUDE: 100E to 120E (XY ave)
-             LATITUDE : 10N to 30N (XY ave)
-             TIME     : JAN
-          24.02076
- 
-list/L=1/prec=7 sst[x=100:120 at din,y=10:30 at din]
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             FILENAME : coads_climatology.cdf
-             LONGITUDE: 100E to 120E (XY integ.)
-             LATITUDE : 10N to 30N (XY integ.)
-             TIME     : JAN
-          6.008341E+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
-             LONGITUDE: 83W to 49W
-             LATITUDE: 1S
-             TIME: JAN
- Column  1: SST is SEA SURFACE TEMPERATURE (Deg C)
- Column  2: SST[X=@CDA:1] is SEA SURFACE TEMPERATURE (Deg C)(closest dist above on X)
- Column  3: SST[X=@CDB:1] is SEA SURFACE TEMPERATURE (Deg C)(closest dist below on X)
- Column  4: SST[X=@CIA:1] is SEA SURFACE TEMPERATURE (Deg C)(closest index above on X)
- Column  5: SST[X=@CIB:1] is SEA SURFACE TEMPERATURE (Deg C)(closest index below on X)
-               SST    SST    SST    SST    SST
-83W   / 129:  24.60   0.00   0.00   0.00   0.00
-81W   / 130:  25.44   0.00   0.00   0.00   0.00
-79W   / 131:   ....  26.00   2.00  13.00   1.00
-77W   / 132:   ....  24.00   4.00  12.00   2.00
-75W   / 133:   ....  22.00   6.00  11.00   3.00
-73W   / 134:   ....  20.00   8.00  10.00   4.00
-71W   / 135:   ....  18.00  10.00   9.00   5.00
-69W   / 136:   ....  16.00  12.00   8.00   6.00
-67W   / 137:   ....  14.00  14.00   7.00   7.00
-65W   / 138:   ....  12.00  16.00   6.00   8.00
-63W   / 139:   ....  10.00  18.00   5.00   9.00
-61W   / 140:   ....   8.00  20.00   4.00  10.00
-59W   / 141:   ....   6.00  22.00   3.00  11.00
-57W   / 142:   ....   4.00  24.00   2.00  12.00
-55W   / 143:   ....   2.00  26.00   1.00  13.00
-53W   / 144:  27.35   0.00   0.00   0.00   0.00
-51W   / 145:  27.13   0.00   0.00   0.00   0.00
-49W   / 146:  27.38   0.00   0.00   0.00   0.00
- 
-list/L=1/y=10:33/x=93w sst, sst[y=@ddb], sst[y=@ddc], sst[y=@ddf]
-             DATA SET: ./coads_climatology.cdf
-             LATITUDE: 10N to 33N
-             LONGITUDE: 93W
-             TIME: JAN
- Column  1: SST is SEA SURFACE TEMPERATURE (Deg C)
- Column  2: SST[Y=@DDB] is SEA SURFACE TEMPERATURE (Deg C)(backwards derivative on Y)
- Column  3: SST[Y=@DDC] is SEA SURFACE TEMPERATURE (Deg C)(centered derivative on Y)
- Column  4: SST[Y=@DDF] is SEA SURFACE TEMPERATURE (Deg C)(forward derivative on Y)
-              SST      SST        SST        SST
-11N   / 51:  26.99  2.217E-06  1.611E-06  1.005E-06
-13N   / 52:  27.21  1.005E-06  1.468E-06  1.932E-06
-15N   / 53:  27.64  1.932E-06  5.847E-07 -7.622E-07
-17N   / 54:  27.47 -7.622E-07 -7.072E-06 -1.338E-05
-19N   / 55:  24.50 -1.338E-05 -7.908E-06 -2.435E-06
-21N   / 56:  23.95 -2.435E-06 -1.473E-06 -5.111E-07
-23N   / 57:  23.84 -5.111E-07 -1.898E-06 -3.286E-06
-25N   / 58:  23.11 -3.286E-06 -3.738E-06 -4.190E-06
-27N   / 59:  22.18 -4.190E-06 -9.122E-06 -1.405E-05
-29N   / 60:  19.05 -1.405E-05       ....       ....
-31N   / 61:   ....       ....       ....       ....
-33N   / 62:   ....       ....       ....       ....
- 
-list/L=1/y=10:33/x=93w sst, sst[y=@evnt:23.84]
-             DATA SET: ./coads_climatology.cdf
-             LATITUDE: 10N to 33N
-             LONGITUDE: 93W
-             TIME: JAN
- Column  1: SST is SEA SURFACE TEMPERATURE (Deg C)
- Column  2: SST[Y=@EVN: 23.84] is SEA SURFACE TEMPERATURE (Deg C)(event mask at 23.84 on Y)
-              SST    SST
-11N   / 51:  26.99  0.000
-13N   / 52:  27.21  0.000
-15N   / 53:  27.64  0.000
-17N   / 54:  27.47  0.000
-19N   / 55:  24.50  0.000
-21N   / 56:  23.95  0.000
-23N   / 57:  23.84  0.000
-25N   / 58:  23.11  1.000
-27N   / 59:  22.18  1.000
-29N   / 60:  19.05  1.000
-31N   / 61:   ....  1.000
-33N   / 62:   ....  1.000
- 
-list/L=1/y=23:51/x=93w sst, sst[y=@fav], sst[y=@fln], sst[y=@fnr]
-             DATA SET: ./coads_climatology.cdf
-             LATITUDE: 23N to 51N
-             LONGITUDE: 93W
-             TIME: JAN
- Column  1: SST is SEA SURFACE TEMPERATURE (Deg C)
- Column  2: SST[Y=@FAV:3] is SEA SURFACE TEMPERATURE (Deg C)(ave-filled by 3 pts on Y)
- Column  3: SST[Y=@FLN:1] is SEA SURFACE TEMPERATURE (Deg C)(linear-filled by 1 pts on Y)
- Column  4: SST[Y=@FNR:1] is SEA SURFACE TEMPERATURE (Deg C)(nearest-filled by 1 pts on Y)
-              SST    SST    SST    SST
-23N   / 57:  23.84  23.84  23.84  23.84
-25N   / 58:  23.11  23.11  23.11  23.11
-27N   / 59:  22.18  22.18  22.18  22.18
-29N   / 60:  19.05  19.05  19.05  19.05
-31N   / 61:   ....  19.05  18.15  19.05
-33N   / 62:   ....   ....  17.24  19.05
-35N   / 63:   ....   ....  16.33  19.05
-37N   / 64:   ....   ....  15.43  15.43
-39N   / 65:   ....   ....  14.52  11.80
-41N   / 66:   ....   ....  13.61  11.80
-43N   / 67:   ....  11.80  12.71  11.80
-45N   / 68:  11.80  11.80  11.80  11.80
-47N   / 69:   2.47   2.47   2.47   2.47
-49N   / 70:   ....   2.47   ....   2.47
-51N   / 71:   ....   ....   ....   2.47
- 
-list/L=1/y=23:51/x=93w sst[y=23:51 at min], sst[y=23:51 at max]
-             DATA SET: ./coads_climatology.cdf
-             LONGITUDE: 93W
-             LATITUDE: 23N to 51N
-             TIME: JAN
- Column  1: SST[Y=@MIN] is SEA SURFACE TEMPERATURE (Deg C)
- Column  2: SST[Y=@MAX] is SEA SURFACE TEMPERATURE (Deg C)
-            SST    SST
-I / *:     2.466  23.84
- 
-list/L=1/y=23:51/x=93w sst[y=23:51 at nbd], sst[y=23:51 at ngd]
-             DATA SET: ./coads_climatology.cdf
-             LONGITUDE: 93W
-             LATITUDE: 23N to 51N
-             TIME: JAN
- Column  1: SST[Y=@NBD] is SEA SURFACE TEMPERATURE (# of points)
- Column  2: SST[Y=@NGD] is SEA SURFACE TEMPERATURE (# of points)
-            SST    SST
-I / *:     9.000  6.000
- 
-list/L=1/y=1:11/x=93w sst, sst[y=@iin]
-             DATA SET: ./coads_climatology.cdf
-             LATITUDE: 1N to 11N
-             LONGITUDE: 93W
-             TIME: JAN
- Column  1: SST is SEA SURFACE TEMPERATURE (Deg C)
- Column  2: SST[Y=@IIN] is SEA SURFACE TEMPERATURE (Deg C)(indef. integ. on Y)
-              SST      SST
-1N    / 46:  25.77  2.865E+06
-3N    / 47:  26.60  8.780E+06
-5N    / 48:  26.86  1.475E+07
-7N    / 49:  26.57  2.066E+07
-9N    / 50:  26.49  2.656E+07
-11N   / 51:  26.99  2.956E+07
- 
-list/L=1/y=23:25/x=93w sst, sst[y=24 at itp]
-             DATA SET: ./coads_climatology.cdf
-             LONGITUDE: 93W
-             TIME: JAN
- Column  1: SST[Y=23N:25N] is SEA SURFACE TEMPERATURE (Deg C)
- Column  2: SST[Y=24N at ITP] is SEA SURFACE TEMPERATURE (Deg C)
-              SST    SST
-23N   / 57:  23.84  23.47
-25N   / 58:  23.11  23.47
- 
-list/L=1/y=11:23/x=93w sst, sst[y=@rsum], sst[y=@sbn], sst[y=@sbx], sst[y=@shf:-1]
-             DATA SET: ./coads_climatology.cdf
-             LATITUDE: 11N to 23N
-             LONGITUDE: 93W
-             TIME: JAN
- Column  1: SST is SEA SURFACE TEMPERATURE (Deg C)
- Column  2: SST[Y=@RSU] is SEA SURFACE TEMPERATURE (Deg C)(running sum on Y)
- Column  3: SST[Y=@SBN:3] is SEA SURFACE TEMPERATURE (Deg C)(binomial smoothed by 3 pts on Y)
- Column  4: SST[Y=@SBX:3] is SEA SURFACE TEMPERATURE (Deg C)(box smoothed by 3 pts on Y)
- Column  5: SST[Y=@SHF:-1] is SEA SURFACE TEMPERATURE (Deg C)(shifted by -1 pts on Y)
-              SST    SST    SST    SST    SST
-11N   / 51:  26.99   27.0  26.92  26.90  26.49
-13N   / 52:  27.21   54.2  27.26  27.28  26.99
-15N   / 53:  27.64   81.8  27.49  27.44  27.21
-17N   / 54:  27.47  109.3  26.77  26.54  27.64
-19N   / 55:  24.50  133.8  25.10  25.31  27.47
-21N   / 56:  23.95  157.8  24.06  24.10  24.50
-23N   / 57:  23.84  181.6  23.69  23.63  23.95
- 
-list/L=1/y=11:23/x=93w sst, sst[y=@shn] , sst[y=@spz], sst[y=@sum], sst[y=@swl], sst[y=@weq:26]
-             DATA SET: ./coads_climatology.cdf
-             LATITUDE: 11N to 23N
-             LONGITUDE: 93W
-             TIME: JAN
- Column  1: SST is SEA SURFACE TEMPERATURE (Deg C)
- Column  2: SST[Y=@SHN:3] is SEA SURFACE TEMPERATURE (Deg C)(Hanning smoothed by 3 pts on Y)
- Column  3: SST[Y=@SPZ:3] is SEA SURFACE TEMPERATURE (Deg C)(Parzen smoothed by 3 pts on Y)
- Column  4: SST[Y=@SUM] is SEA SURFACE TEMPERATURE (Deg C)
- Column  5: SST[Y=@SWL:3] is SEA SURFACE TEMPERATURE (Deg C)(Welch smoothed by 3 pts on Y)
- Column  6: SST[Y=@WEQ:26] is SEA SURFACE TEMPERATURE (Deg C)(weighted equal of 26 on Y)
-              SST    SST    SST    SST    SST    SST
-11N   / 51:  26.99  26.92  26.92  181.6  26.91    ....
-13N   / 52:  27.21  27.26  27.26  181.6  27.27    ....
-15N   / 53:  27.64  27.49  27.49  181.6  27.46    ....
-17N   / 54:  27.47  26.77  26.77  181.6  26.63  0.5056
-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    ....
- 
-go bn_reset
-cancel mode verify
-go bn_variance.jnl
- ! bn_variance.jnl
- ! the @VAR transform is not tested in bn_transforms.jnl script.
- 
-use coads_climatology
-list/x=100/y=10 sst[t=@var]
-             VARIABLE : Variance of SEA SURFACE TEMPERATURE ((Deg C)^2)
-             FILENAME : coads_climatology.cdf
-             LONGITUDE: 99E
-             LATITUDE : 9N
-             TIME     : JAN to APR (variance)
-          0.4424
-list/x=100/L=1 sst[y=@var]
-             VARIABLE : Variance of SEA SURFACE TEMPERATURE ((Deg C)^2)
-             FILENAME : coads_climatology.cdf
-             LONGITUDE: 99E
-             LATITUDE : 90S to 90N (variance)
-             TIME     : JAN
-          102.3
-list/y=10/L=1 sst[x=@var]
-             VARIABLE : Variance of SEA SURFACE TEMPERATURE ((Deg C)^2)
-             FILENAME : coads_climatology.cdf
-             LONGITUDE: 20E to 20E(380) (variance)
-             LATITUDE : 9N
-             TIME     : JAN
-          0.5010
- 
-use gt4d011.cdf
-list/y=3/l=1/x=233 u[z=@var]
-             VARIABLE : Variance of ZONAL VELOCITY ((cm/sec)^2)
-             FILENAME : gt4d011.cdf
-             LONGITUDE: 127W
-             LATITUDE : 3N
-             DEPTH (m): 0 to 100 (variance)
-             TIME     : AUG-1982
-          11.33
- 
-go bn_reset
-cancel mode verify
-go bn_linecolors.jnl
-! bn_linecolors.jnl
-! 5/2006 ACM
-! test setting more line colors
- 
-set mode meta linecolors.plt
- 
-set mode linec:12
-sho mode linecolors
-      MODE            STATE        ARGUMENT
-      LINECOLORS       SET              12
- 
-can win/all
-set win/new
- 
-ppl color,7,100,65,51   ! orange
-ppl color,8,0,55,0      ! dark green
-ppl color,9,60,0,100    ! purple
-ppl color,10,100,70,100 ! magenta
-ppl color,11,80,70,60   ! tan
-ppl color,12,100,88,0   ! yellow
- 
-plot/thick/line/i=1:100 \
- cos(i/20), cos(i/24), cos(i/28), cos(i/32), \
- cos(i/36), cos(i/40), cos(i/44), cos(i/48), \
- cos(i/52), cos(i/56), cos(i/60), cos(i/64)
- 
-set mode/last meta
- 
-! Test choosing individual colors and thickness combinations
-! All commands except for contour have /THICK
- 
-plot/color=7/thick=3/i=1:100 cos(i/10)
-plot/over/color=8/thick=2/i=1:100 cos(i/12)
-plot/over/color=12/thick=1/i=1:100 cos(i/8)
- 
-vector/color=11/thick=2/i=1:100/j=1:100 cos(i/10)+sin(j/14), cos(i/20)-sin(j/30)
- 
-polygon/thick=3/color=12/palette=purple {1,2,1}, {2,1,0.5}
- 
-contour/color=7/i=1:100/j=1:100 cos(i/10)+sin(j/14)
-contour/over/color=20/i=1:100/j=1:100 cos(i/15)+sin(j/20)
- 
-can mode linecolors
-sho mode linecolors
-      MODE            STATE        ARGUMENT
-      LINECOLORS       SET               6
- 
-! resetting line colors with cancel mode does not
-! take effect until we do a SET WIN/NEW
- 
-plot/line/i=1:100 \
- cos(i/20), cos(i/24), cos(i/28), cos(i/32), \
- cos(i/36), cos(i/40), cos(i/44), cos(i/48), \
- cos(i/52), cos(i/56), cos(i/60), cos(i/64)
- 
-set win/new
-plot/line/i=1:100\
- cos(i/20), cos(i/24), cos(i/28), cos(i/32), \
- cos(i/36), cos(i/40), cos(i/44), cos(i/48), \
- cos(i/52), cos(i/56), cos(i/60), cos(i/64)
- 
-can win/all
-set win/new
- 
- 
-go bn_reset
-cancel mode verify
-go bn_cdf_errmsg.jnl
-! bn_cdf_errmsg.jnl
-! ACM 7/13/2006
-! test reporting of cdf error messages from OPeNDAP library v3.6.2
- 
-set mode ignore
- 
-! bad file names; file missing or misspelled
-use this_is_not_a_file.nc
- 
- 
-!! Change to another server, our server down...
-!!use  "http://www.ferret.noaa.gov/cgi-bin/nph-nc/data/nofile.cdf"
-!! Not working either as of 7/5/2007
-!! use "http://ferret.pmel.noaa.gov:8080/thredds/dodsC/data/nofile.cdf"
- 
-!! Change to another server, this one not working 3/2012
-!! This is a valid address
-!!use "http://iridl.ldeo.columbia.edu/SOURCES/.FSU/.FULL/.tauy/dods"
- 
-!! change the variable name to something nonexistent
-!!use "http://iridl.ldeo.columbia.edu/SOURCES/.FSU/.FULL/.tauyyyyy/dods"
- 
-! This is a valid address
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_air.cdf"
- 
-! change the variable name to something nonexistent
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf"
- 
-! bad server
-use  "http://noserver/a/nofile.cdf"
- 
-! Not a netCDF file: Create an ascii file with extension .nc
- 
-list/nohead/file=asc.dat {1,2,3}
- 
-sp rm -f asc.nc
-sp mv asc.dat asc.nc
-use asc.nc
- 
-set mode/last ignore
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn600_bug_fixes.jnl
-! bn600_bug_fixes.jnl
-! test various fixes that went into version 6.00
-! 8/05 *acm*
-!
- 
-! Bug 1129 axis formatting when /HLIM sets axis length < 0.15 deg
-GO bn_reset
-cancel mode verify
-GO err581_hlim_axislab.jnl
-! err581_hlim_axislab.jn
-! bug 1129
-! When longitude range is small (<0.15 deg) using /HLIMITS
-! axis labels do not have longitude labelling
- 
-def axis/x=-180:360:180/units=degrees xfull
-def axis/y=90s:90n:90/units=degrees yfull
-fill/hlim=312.23:312.380/vlim=37.03:40.91 0*x[gx=xfull] * y[gy=yfull]
- 
-!  Previously, list xaxis showed LABEL FORMAT is auto, not LONE
-ppl list xaxis
-
-
-         XAXIS QUALITIES
-         LO= 3.12E+02 HI= 3.12E+02 TIC= 2.00E-02 LEN= 8.00E+00 CSIZE= 1.00E-01
-          TOP AXIS= ON  BOTTOM AXIS= ON 
-         MANUAL  NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
-         XORG= 1.20E+00  LABEL FORMAT=  (F8.3,'LONE')       
- 
-! But /HLIM=312.23:312.3801/... works.
-fill/hlim=312.23:312.3801/vlim=37.03:40.91 0*x[gx=xfull] * y[gy=yfull]
-ppl list xaxis
-
-
-         XAXIS QUALITIES
-         LO= 3.12E+02 HI= 3.12E+02 TIC= 2.00E-02 LEN= 8.00E+00 CSIZE= 1.00E-01
-          TOP AXIS= ON  BOTTOM AXIS= ON 
-         MANUAL  NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
-         XORG= 1.20E+00  LABEL FORMAT=  (F8.2,'LONE')       
- 
-! Bug 1275 stray characters appear in data lines listing string data
-GO bn_reset
-cancel mode verify
-GO err581_list_stray_chars.jnl
-! err581_list_stray_chars.jnl
-! 8/2005 (acm) bug 1275  stray characters in data listing
-!   (they are leftovers from the buffer containing the header line, was not reinitialized)
-!   Also fix the header line so characters are chopped off less.
- 
-let id = {1, 2, 3, 4}
-let country = {"US", "US", "XX", "CN"}
-let type = {"MOORED BUOY", "MOORED BUOY", "MOORED BUOY", "MOORED BUOY"}
- 
-list/i=1:5 id, type, country
-             X: 0.5 to 4.5
- Column  1: ID is {1, 2, 3, 4}
- Column  2: TYPE is {"MOORED BUOY", "MOORED BUOY", "MOORED BUOY", "MOORED BUOY"}
- Column  3: COUNTRY is {"US", "US", "XX", "CN"}
-            ID       TYPE     COUNTRY
-1   / 1:  1.000 "MOORED BUOY" "US"
-2   / 2:  2.000 "MOORED BUOY" "US"
-3   / 3:  3.000 "MOORED BUOY" "XX"
-4   / 4:  4.000 "MOORED BUOY" "CN"
- 
-list/i=1:5 id, country, type
-             X: 0.5 to 4.5
- Column  1: ID is {1, 2, 3, 4}
- Column  2: COUNTRY is {"US", "US", "XX", "CN"}
- Column  3: TYPE is {"MOORED BUOY", "MOORED BUOY", "MOORED BUOY", "MOORED BUOY"}
-            ID  COUN      TYPE
-1   / 1:  1.000 "US" "MOORED BUOY"
-2   / 2:  2.000 "US" "MOORED BUOY"
-3   / 3:  3.000 "XX" "MOORED BUOY"
-4   / 4:  4.000 "CN" "MOORED BUOY"
- 
- 
- 
-! pattern matching for SHO FUNC failed to match all EF's
-GO bn_reset
-cancel mode verify
-GO err581_sho_func_pattern_match.jnl
-! err581_sho_func_pattern_match.jnl
-! bug 1186
-! 8/2006
-! Pattern matching for SHOW FUNCTION did not match *str  or *str*
-! on external functions.
- 
-! Should list SIN and ASIN
-sh func *sin
-SIN(theta)
-    theta: angle (radians)
-ASIN(X)
-    arcsin(X) in radians
-    X: ABS(X) must be less than or equal to 1
-! SHOULD list ELEMENT_INDEX, ELEMENT_INDEX_STRING, IS_ELEMENT_OF, IS_ELEMENT_OF_STR
-sh func *element*
-ELEMENT_INDEX(VAR,VALUES)
-    Return index value in ARG2 for each point in ARG1
-    VAR: Variable
-    VALUES: list of indices
-ELEMENT_INDEX_STR(VAR,STRINGS)
-    Return index value in ARG2 for each string in ARG1 (case insensitive matching)
-    VAR: string data to mask (STRING)
-    STRINGS: list of strings to match (STRING)
-ELEMENT_INDEX_STR_N(VAR,STRINGS)
-    Return index value in ARG2 for each string in ARG1 (case sensitive matching)
-    VAR: string data to mask (STRING)
-    STRINGS: list of strings to match (STRING)
-IS_ELEMENT_OF(VAR,VALUES)
-    Returns 1 if first argument contains any of the values in argument 2, else 0
-    VAR: data to test
-    VALUES: values to search for
-IS_ELEMENT_OF_STR(VAR,VALUES)
-    Returns 1 if first argument contains any of the values in 2nd argument (case sensitive), else 0
-    VAR: string (STRING)
-    VALUES: strings to search (STRING)
-IS_ELEMENT_OF_STR_N(VAR,VALUES)
-    Returns 1 if 1st arg contains any of the values in 2nd arg, 2 if case-insensitve match, else 0
-    VAR: string (STRING)
-    VALUES: strings to search (STRING)
- 
-! FILL on data with subspan modulo axis, got wrong data
-GO bn_reset
-cancel mode verify
-GO err581_subspanx_fill_bug.jnl
-! err581_subspanx_fill_bug.jnl
-! bug 900: subspan longitude axis and hlimits gets wrong data
- 
-use coads_climatology
-save/clobber/y=0/x=130e:80w/file=err581_subspanx_fill_bug.nc sst
-can data/all; use err581_subspanx_fill_bug.nc
- 
-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
-PPL$XMIN = "131.0"
-PPL$XMAX = "281.0"
-sh sym ppl$xlow, ppl$xhigh   ! should be 165, 259
-PPL$XHIGH = "165.0"
-PPL$XLOW = "259.0"
- 
-sp rm -f err581_subspanx_fill_bug.nc
- 
-! bug 1318 Spurious error message on USE file where file has axes with bounds.
-GO bn_reset
-cancel mode verify
-GO err581_use_bounds.jnl
-! err581_use_bounds.jnl
-! bug 1318 Spurious error message on USE file where file has axes with bounds.
-! 8/17/05 ACM
- 
-def axis/x xir = {1,4,6}
-def axis/y yir = {12,42,50}
-let aa = x[gx=xir]+ y[gy=yir]
- 
-save/clobber/file=xyir.nc aa
-use xyir
- 
-! Bug 1332 variable not scaled unless it is first variable in stepfile.
-GO bn_reset
-cancel mode verify
-GO err581_des_scale.jnl
-! err581_des_scale.jnl  bug 1332. When using a descriptor file and
-! a varriable has scale_factor and/or add_offset attributes, the
-! variable is not scaled unless it is first variable in stepfile.
-! acm 8/29/2005
- 
-! tok_short.des behaves correctly; the stepfile in it, sstok_short.nc lists
-! variable sst first.
- 
-! tnok_short.des, containing sstnok_short.nc results in sst NOT being scaled
-! because it is the second variable in the file.
- 
-! Data in SST should be rescaled in both des files to values 0.1699, 0.1799, ...
- 
-EXIT/SCRIPT   ! error in namelist record...
- 
-! Bug 1335 Zero-contour should be dark line.
-GO bn_reset
-cancel mode verify
-GO err581_contour_zero_lev.jnl
-! err581_contour_zero_lev.jnl
-! acm 9/7/2005
-! See bug report 1335
-! Zero-contour should be dark line.
- 
-use coads_climatology
-contour/lev=(-20,20,2) sst[L=1] - 20
- 
-! Bug 1339, code hangs with this combination of (-INF)(INF) levels and shakey
-GO bn_reset
-cancel mode verify
-GO err581_shakey_inf.jnl
-! err581_shakey_inf.jnl
-! acm 9/7/2005
- 
-! see bug report 1339; code hangs with this combination of (-INF)(INF) levels
-! and SHAKEY with klab_dig=0 (argument 5)
- 
-use coads_climatology
-fill/l=1/lev=(-inf)(0,30,2)(inf)/key/set sst
-ppl shakey 1,0,.12,0,0,4,2,8,7.1,7.4
-ppl fill
- 
-ppl/reset  ! undo the SHAKEY setting.
- 
- 
-! Bug 918, immediate mode parsing in IF blocks
-GO bn_reset
-cancel mode verify
-GO err581_if_conditional.jnl
-! err581_if_conditional.jnl  bug 918.
-! acm 10/2005
-! Immediate mode parsing: when in an IF block, and when
-! the IF is false and therefore not being executed.
-! Previously ferret attempted to parse the IF `a` THEN
-! but could not because LET a=1 has not been executed/
-!
-! This should skip to the end, not trying to execute anything inside the IF 0 THEN
- 
-if 0 then
-     endif
-  endif
-endif
- 
-say "finished the if block"
-finished the if block
- 
-! Further tests, after this fix, we get an error
-! **ERROR: variable unknown or not in data set: DXYMIN
-! The code that skips statements inside the IF false THEN
-! was bumping a stack on the internal IF statement...
- 
-define symbol xend -180
-let key_flag = 0
- 
-IF `($xend) GT 360` THEN
- !-> IF 0 THEN
-ENDIF
-let dxymin = 0.20
-if `dxymin lt 0.12` then
- !-> if 0 then
-elif `dxymin lt 0.25` then
- !-> elif 1 then
-  SAY "point G"
-point G
-endif
- 
- 
- 
-! try yet another test with a nested block if, not executed.
- 
-define symbol xend -180
-let key_flag = 0
- 
-IF `($xend) GT 360` THEN
- !-> IF 0 THEN
-  ENDIF
-ENDIF
-let dxymin = 0.20
-if `dxymin lt 0.12` then
- !-> if 0 then
-elif `dxymin lt 0.25` then
- !-> elif 1 then
-  SAY "point G"
-point G
-endif
- 
-! an entire IF ELSE ENDIF inside an IF clause which is not to be executed
- 
-IF `($xend) GT 360` THEN
- !-> IF 0 THEN
-   ENDIF
-ELSE
-  say "this is the ELSE that should execute"
-this is the ELSE that should execute
-ENDIF
- 
-! ELIF examples
- 
-go non_std_refmap 122.0 228.5 5 5 xline 0
- 
-! std_refmap.jnl -- requires Ferret V4.3 or later
-! 5/96
- 
-! Mods 6.98 *jd/sh* to improve the aspect ratio of the refmap for t and z
-! profiles.  Separate consideration given for each case:
- 
-! The case of "pt_orient == tseries" which has a horizontally oriented
-! reference map, and the case of the default value for pt_orient == 0
-! (zprofile), with a vertically oriented reference map, are optimized.
- 
-! The symbol pt_orient is set in std_gif_t.jnl.
- 
-! 7.2004 *jmclean* add symbol and min,max functions to keep longitude region with 360 degrees
- 
- 
-! For example:
-!	yes? go refmap 180 230 0 20 box 1
-! and
-!	yes? go refmap 80 80 0 20 yline 2
-! and
-!	yes? go refmap 70 90 0 20 yline 2 1
-! and
-!	yes? go refmap 30 180 30 30 xline 2
-! and
-!	yes? go refmap 30 180 20 60 xline 2 0 1
-! and
-!	yes? go refmap 180 180 -40 -40 point 2
-! and
-!	yes? go refmap 20 180 -40 60 point 2 1 1
- 
-! Description: draw a reference map with region indicated
- 
-! arguments:	     1    2    3    4    5     6        7         8
-! Usage: GO refmap xmin xmax ymin ymax type magnify xcompress ycompress
- 
-! mins and maxs should be numerical values for lat/long
-! type - may be "box", "xline", "yline", or "point" (default: "box")
-! xcompress - may be 1 (indicating that X compression is applied or 0
-!		(default: "0")
- 
-! e.g. to indicate a Y line in which X compression has been applied send
-! type="yline" and xcompress="1"
- 
-! this script assumes that the viewport has already been set
- 
-! NOTE:  MAGNIFY FACTOR
-! The argument magnify determines what resolution of land mask is used.
- 
-!       magnify = 1 - INT(LOG(fraction)/LOG(2))
-!               then clip magnify to the interval [1 to 5]
- 
-! check the region arguments
-let refmap_xmin = $1%<Usage: GO refmap xmin xmax ymin ymax type magnify xcompress ycompress%
- !-> DEFINE VARIABLE refmap_xmin = 122.0
-let refmap_xmax = $2%<Usage: GO refmap xmin xmax ymin ymax type magnify xcompress ycompress%
- !-> DEFINE VARIABLE refmap_xmax = 228.5
-let refmap_ymin = $3%<Usage: GO refmap xmin xmax ymin ymax type magnify xcompress ycompress%
- !-> DEFINE VARIABLE refmap_ymin = 5
-let refmap_ymax = $4%<Usage: GO refmap xmin xmax ymin ymax type magnify xcompress ycompress%
- !-> DEFINE VARIABLE refmap_ymax = 5
- 
-! set default args
-DEFINE SYMBOL refmap_type $5%box|xline|yline|box|point|%
- !-> DEFINE SYMBOL refmap_type xline
-DEFINE SYMBOL refmap_xcompress $7%0%
- !-> DEFINE SYMBOL refmap_xcompress 0
-DEFINE SYMBOL refmap_ycompress $8%0%
- !-> DEFINE SYMBOL refmap_ycompress 0
- 
-! set the layout in the viewport
-! (for performance the code from margins can be inserted in here and optimized)
-! GO margins blah blah
- 
-! determine the lat/long limits to plot
-set region/x=$1:$2/Y=$3:$4
- !-> set region/x=122.0:228.5/Y=5:5
- 
-! Keep longitude region within 360 degrees. Supposes that xhi-xlo <= 360
-def sym ref_dx = `(360-ABS($2-$1))/2`
- !-> def sym ref_dx = 126.75
- 
-IF ($refmap_type%|box>1|*>0%) THEN    ! IF "box"
- !-> IF 0 THEN
-ELIF ($refmap_type%|xline>1|*>0%) THEN    ! ELSE IF "xline"
- !-> ELIF 1 THEN
-  define region/default/dy=$6"-30:30|1>-30:30|*>-20:20"/dx=$6"0:0|1>0:0|2>0:0|*>`max(-($ref_dx),-50)`:`min(($ref_dx),50)`" band
- !-> define region/default/dy=-20:20/dx=-50:50 band
- 
-ELIF ($refmap_type%|yline>1|*>0%) THEN    ! ELSE IF "yline"
- !-> ELIF 0 THEN
-   ENDIF
-ENDIF
-! init the land mask data set
-set data coads_climatology
-set region/L=1
-! draw gray shaded continents
-! known potential bug: if X region begins at, say, 0E then magnification 3
-!	or greater results in negative modulo subscripts
- 
-shade/lev=(0,10000,10000)/nokey/nolab/palette=grey/@band/set sst
-! ==> may want various IF tests to stylize plots: tics, numbering, etc.
- 
-IF ($refmap_type%|box>1|*>0) THEN    ! IF "box"
- !-> IF 0 THEN
-ELIF ($refmap_type%|xline>1|*>0) THEN    ! ELSE IF "xline"
- !-> ELIF 1 THEN
-  ppl axlint 3
-  ppl shade
-  ppl axlint 2
-ELIF ($refmap_type%|yline>1|*>0) THEN    ! ELSE IF "yline"
- !-> ELIF 0 THEN
-ENDIF
- 
-! some clean up now to assist with repeated testing
-cancel region band
- 
-set data coads_climatology
-set region/L=1
- 
-! draw a thick red region marker on the reference map
-let refmap_xrng = IF i EQ 1 THEN refmap_xmin ELSE refmap_xmax
-let refmap_yrng = IF i EQ 1 THEN refmap_ymin ELSE refmap_ymax
-let refmap_xmid = ((refmap_xmin)+(refmap_xmax))/2
-let refmap_ymid = ((refmap_ymin)+(refmap_ymax))/2
- 
-IF ($refmap_type%|box>1|*>0) THEN    ! IF "box"
- !-> IF 0 THEN
-ELIF ($refmap_type%|xline>1|*>0) THEN    ! ELSE IF "xline"
- !-> ELIF 1 THEN
- 
-  IF ($refmap_ycompress) THEN
- !-> IF 0 THEN
-  ENDIF
- 
-  plot/over/vs/nolab/line=8/i=1:2 refmap_xrng, refmap_ymid+(i-i)
- 
-ELIF ($refmap_type%|yline>1|*>0) THEN    ! ELSE IF "yline"
- !-> ELIF 0 THEN
-  ENDIF
-  ENDIF
-ENDIF
- 
- 
-palette rainbow
- 
-! Bug 899
-! Ungraceful STOP if we asl for multi-var transformations on axis where there is no data
-GO bn_reset
-cancel mode verify
-GO err581_illegal_trans.jnl
-! err581_illegal_trans.jnl
-! Ungraceful STOP if we do @VAR on an axis where there is no data
- 
-set mode ignore_error
-use coads_climatology
-shade sst[x=@var,k=@var]
- 
-shade sst[t=@AVE,Z=@ave]
-can mode ignore_error
- 
- 
-! Bug 491
-! missing flag gets scaled by scale and offset factors!
-GO bn_reset
-cancel mode verify
-GO err581_missing_scale_off.jnl
-! err581_missing_scale_off.jnl
-! ACM 11/8/05
-! Bug 491 was not correctly fixed... missing flag was scaled with scale, offset
-! attribute values.
- 
-! data contains missing value flag of -999 and scale of 0.1
-! Previously this resulted in data values of -99 where should be missing.
- 
-use missing_scale_off.nc
-say `tt,return=bad`
- !-> MESSAGE/CONTINUE -999
--999
-list tt
-             VARIABLE : 1 + 0*T[GT=DAYT]
-             FILENAME : missing_scale_off.nc
-             SUBSET   : 10 points (TIME)
- 01-JAN-1990 00 /  1:  0.100
- 02-JAN-1990 00 /  2:  0.200
- 03-JAN-1990 00 /  3:  0.300
- 04-JAN-1990 00 /  4:   ....
- 05-JAN-1990 00 /  5:  0.500
- 06-JAN-1990 00 /  6:  0.600
- 07-JAN-1990 00 /  7:  0.700
- 08-JAN-1990 00 /  8:   ....
- 09-JAN-1990 00 /  9:  0.900
- 10-JAN-1990 00 / 10:  1.000
- 
- 
-! bug 1363
-! SHOW GRID and other output have wrong dates, non-std calendar axesv
-GO bn_reset
-cancel mode verify
-GO err581_cal_dates_output.jnl
-! err581_cal_dates_output.jnl
-! bug 1363:
-! SHOW GRID and other output have wrong dates, non-std calendar axesv
- 
-! create a time axis with 360-day calendar
-def axis/t=1-jan-2000:1-jan-2005:1/units=months/cal=d360/t0=1-jan-1960 t360
-let t3 = t[gt=t360]
-save/clobber/file=t3file.nc t3
-can var/all
-can axis t360
- 
-! Bug showed date range of 30-JUL-2000 to  26-AUG-2005
-set data t3file
-sho grid t3
-    GRID GCG1
- name       axis              # pts   start                end
- normal    X
- normal    Y
- normal    Z
- T360      TIME                61 r   01-JAN-2000 00:00    01-JAN-2005 00:00
- normal    E
- normal    F
- 
-! bug 1365
-! STOP on shade command when modulo-regridding a time-limited nonstd calendar
-GO bn_reset
-cancel mode verify
-GO err581_noleap_mod.jnl
-! err581_noleap_mod.jnl
-! This is bug 1365: STOP on shade command
-! when modulo-regridding a time-limited NOLEAP calendar
- 
-use gt4d011.cdf
-set axis/cal=noleap `u,return=taxis`
- !-> set axis/cal=noleap TIME11
-let a = u[t=1-sep-1982:1-jan-1983]
-def axis/t/edge/mod/cal=noleap/unit=days/t0=1-jan-0001 mon_irreg_nlp = {0,31,59,90,120,151,181,212,243,273,304,334,365}
- 
-let a_clim = a[gt=mon_irreg_nlp at mod]
-shade/y=0/k=1 a_clim
- 
- 
-! bug 1392
-! CANCEL DATA errors
-GO bn_reset
-cancel mode verify
-GO err581_cancel_data.jnl
-! err581_cancel_data.jnl
- 
-!  test fixes for bug 1392:
-!  cancel data 0000_a.nc
-!  cancel data with a pathname, not just the dataset name
- 
-let a = {1,5,6}
-save/clobber/file=0000_a.nc a
-set data 0000_a.nc
-can data 0000_a
- 
-sp rm -f subdir/a.dat
-sp mkdir -p subdir
- 
-save/clobber/file="subdir/a.nc" a
-use "subdir/a.nc"
-sh data
-     currently SET data sets:
-    1> subdir/a.nc  (default)
- name     title                             I         J         K         L         M         N
- A        {1,5,6}                          1:3       ...       ...       ...       ...       ...
- 
-can data "subdir/a.nc"
-sh data
-     currently SET data sets:
-save/clobber/file="subdir/0000_a.nc" a
-set data "subdir/0000_a.nc"
-sh data
-     currently SET data sets:
-    1> subdir/0000_a.nc  (default)
- name     title                             I         J         K         L         M         N
- A        {1,5,6}                          1:3       ...       ...       ...       ...       ...
- 
-can dat 0000_a
-set data "subdir/0000_a.nc"
-can dat 0000_a.nc
-sh data
-     currently SET data sets:
-set data "subdir/0000_a.nc"
-can dat "subdir/0000_a.nc"
-sh data
-     currently SET data sets:
- 
-sp rm -f subdir/a.nc
-sp rm -f subdir/0000_a.nc
- 
-! bug 1394
-! parsing time units of "months_since_event"
-! CANCEL DATA errors
-GO bn_reset
-cancel mode verify
-GO err581_since_units.jnl
-! err581_since_units.jnl
-! bug 1394: units of months_since_event
-! the "since" causes Ferret to try to parse "event" as a
-! date for time origin.  Change so that if its not a date,
-! we just keep the whole units string.
-! also increase length of strings in line_units array.
- 
-def axis/t=1:3:1/unit="months_since_event" tax
-let a = t[gt=tax]
-save/clobber/file=a.nc a
- 
-can var a
-can ax tax
-use a
-say `a,ret=tunits`
- !-> MESSAGE/CONTINUE months_since_event
-months_since_event
-list a
-             VARIABLE : T[GT=TAX]
-             FILENAME : a.nc
-             SUBSET   : 3 points (T (months_since_event))
- 1   / 1:  1.000
- 2   / 2:  2.000
- 3   / 3:  3.000
- 
- 
-! bug 1395
-! parsing exponent expressions: 1.0e-5+0*7 misinterpreted
-! CANCEL DATA errors
-GO bn_reset
-cancel mode verify
-GO err581_exp_spaces.jnl
-! err581_exp_spaces.jnl
-! bug 1395
-! Expressions with an exponent immediately followed by an operator
-! are parsed incorrectly, including the operator in the exponent:
-!
-! 1.0e-5+0*7  was parsed as (1.0e-5 + 0)* 7
-! 1.0e-5 + 0*7  was parsed correctly
- 
-set mode ignore
- 
-list 1.0e-5+ 0*7
-             VARIABLE : 1.0E-5+ 0*7
-          1.000E-05
-list 1.0e-5 + 0*7
-             VARIABLE : 1.0E-5 + 0*7
-          1.000E-05
-list 1.0e-5+0*7
-             VARIABLE : 1.0E-5+0*7
-          1.000E-05
-list 1000.6+ 0*7
-             VARIABLE : 1000.6+ 0*7
-          1001.
- 
-let xx= x[x=1:5]
- 
-list 1.0e-5 + 0*xx
-             VARIABLE : 1.0E-5 + 0*XX
-             SUBSET   : 5 points (X)
- 1   / 1:  1.000E-05
- 2   / 2:  1.000E-05
- 3   / 3:  1.000E-05
- 4   / 4:  1.000E-05
- 5   / 5:  1.000E-05
-list 1.0e-5 + 0*xx
-             VARIABLE : 1.0E-5 + 0*XX
-             SUBSET   : 5 points (X)
- 1   / 1:  1.000E-05
- 2   / 2:  1.000E-05
- 3   / 3:  1.000E-05
- 4   / 4:  1.000E-05
- 5   / 5:  1.000E-05
-list 1.0e-5+0*xx
-             VARIABLE : 1.0E-5+0*XX
-             SUBSET   : 5 points (X)
- 1   / 1:  1.000E-05
- 2   / 2:  1.000E-05
- 3   / 3:  1.000E-05
- 4   / 4:  1.000E-05
- 5   / 5:  1.000E-05
- 
-can mode ignore
- 
-! bugs 439,1390: applying command context
-GO bn_reset.jnl
-cancel mode verify
-GO err581_command_cx.jnl
-! err590_command_cx.jnl
-! bugs 439 and 1390: the command context should apply to immed. mode evaluation
-! only for action commands, not for commands like define
- 
-use gt4d011
-def ax/np=`temp,r=lsize`/t=0:100 tax
- !-> def ax/np=25/t=0:100 tax
-let n = `temp,r=lsize`
- !-> DEFINE VARIABLE n = 25
-def ax/np=`n`/t=0:100 tax
- !-> def ax/np=25/t=0:100 tax
- 
- 
-! but for an action command, the /I= should apply to the grave-accent
-! expression, correctly giving an error
- 
-set mode ignore
-plot/i=100/k=1 temp[x=`temp,r=xend`]
- !-> plot/i=100/k=1 temp[x=122.5W]
- 
-can mode ignore
- 
-! bug 1401: define 1-point axis with bounds; gets bounds wrong
-GO bn_reset.jnl
-cancel mode verify
-GO err581_define_1pt_bounds.jnl
-! err581_define_1pt_bounds.jnl
-! see bug 1401:
- 
-! Define a multipoint axis and it works fine.  Then define a 1-point axis and
-! the result is wrong.  Then we repeat the first multipoint axis definition
-! again, and even that result is now very wrong!! Same results in both v5.81
-! for Linux and v5.70 for Irix.
- 
-yes? def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
-             X: -2 to 6
- Column  1: XBOXLO is XBOXLO (axis XAX)
- Column  2: XBOXHI is XBOXHI (axis XAX)
- Column  3: X is X (axis XAX)
-        XBOXLO  XBOXHI    X
-0   / 1: -2.000  2.000  0.000
-3   / 2:  2.000  4.000  3.000
-5   / 3:  4.000  6.000  5.000
- 
-yes? def ax/x/bounds xax = {0},{-2,2}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
-             X: 0
- Column  1: XBOXLO is XBOXLO (axis XAX)
- Column  2: XBOXHI is XBOXHI (axis XAX)
- Column  3: X is X (axis XAX)
-         XBOXLO  XBOXHI    X
-I / *:    -2.000  2.000  0.0000
- 
-yes? def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
-             X: -2 to 6
- Column  1: XBOXLO is XBOXLO (axis XAX)
- Column  2: XBOXHI is XBOXHI (axis XAX)
- Column  3: X is X (axis XAX)
-        XBOXLO  XBOXHI    X
-0   / 1: -2.000  2.000  0.000
-3   / 2:  2.000  4.000  3.000
-5   / 3:  4.000  6.000  5.000
- 
-! Bug in strrindex when 1st argument is a list of strings
-GO bn_reset.jnl
-cancel mode verify
-GO err581_strrindex.jnl
-! err581_strrindex.jnl
-! 5/2/2006
-! Bug in strrindex when 1st argument is a list of strings
-! This resulted in a crash
- 
-let var = {"strings", "a.b", "cs.ds", "mmm", "amss.ffst"}
-list strrindex(var,"s")
-             VARIABLE : STRRINDEX(VAR,"s")
-             SUBSET   : 5 points (X)
- 1   / 1:  7.000
- 2   / 2:  0.000
- 3   / 3:  5.000
- 4   / 4:  0.000
- 5   / 5:  8.000
- 
-! POLYGON/LINE over a depth axis.
-GO bn_reset.jnl
-cancel mode verify
-GO err581_poly_rev.jnl
-! err581_poly_rev.jnl
-! POLYGON/LINE mis-locates the line when there is a depth or
-! other reversed axis. Bugs 842, 843, 844
-! ACM 8/10/2006
- 
-! From Patrick, polygon/line on a depth axis
- 
-set mem /size=200
- 
-use gt4d011
- 
-shade temp[i=@ave,l=1]
- 
-let v1={-3,2,0.5,2}
-let v2={20,80,50,30}
-let v3={10,-3,16,3}
- 
-! Overlay sample data over a variable with a depth axis
-! /line=1 did not work
- 
-go polymark poly/lev=(-5,30,1)/pal=white/fill/line=1/nolab/over v1 v2 v3 circle 2
- 
- 
-! XZ plot
-shade temp[j=@ave,l=1]
-let v1={221,225,232,235}
-let v2={20,80,50,30}
-let v3={10,-3,16,3}
- 
-go polymark poly/lev=(-5,30,1)/pal=white/fill/line=1/nolab/over v1 v2 v3 circle 2
- 
- 
-! ZT plot
-shade temp[i=@ave,j=@ave]
-let v1={22800,23500,24800,26000}
-let v2={20,80,50,30}
-let v3={10,-3,16,3}
- 
-go polymark poly/lev=(-5,30,1)/pal=white/fill/line=1/nolab/over v1 v2 v3 circle 2
- 
- 
-! And, from Andrew with other reversed axes.
- 
-yes? ppl cross 1
-yes? plot/vl=4:-4/hl=4:-4/vs/line/title="there should be just one triangle" {1,2,3,1},{0,2,1,0}
-yes? poly/ov/col=2/pal=yellow {1,2,3,1},{0,2,1,0}
- 
-ppl cross 0
- 
-set mem /size=25.6
- 
- 
- 
-! ******** V6.01 Additions below ***********
-GO bn_reset
-cancel mode verify
-GO bn601_bug_fixes.jnl
-! bn601_bug_fixes.jnl
-! test various fixes that went into version 6.01
-! 20-Sep-2006 ACM
-!
-! Long name for bounds attribute was not read by Ferret
-! Bug 1443
-GO bn_reset
-cancel mode verify
-GO err600_long_bounds_name
-! err600_long_bounds_name.jnl
-! Long name for bounds attribute was not read by Ferret
-! Bug 1443
-! 20-Sep-2006 ACM
- 
- 
-def axis/x/bounds layer_between_two_pressure_difference_from_ground = {0,3,5},{-6,2,2,4.5,4.5,9}
-let var = x[gx=layer_between_two_pressure_difference_from_ground] + 1
- 
-save/clobber/file=a.nc var
-can var/all
- 
-! previously the following generated an error
-use a
-list  x[gx=var], xbox[gx=var], xboxlo[gx=var], xboxhi[gx=var]
-             DATA SET: ./a.nc
-             X: -6 to 9
- Column  1: X is X (axis LAYER_BETWEEN_TWO_PRESSURE_DIFFERENCE_FROM_GROUND)
- Column  2: XBOX is XBOX (axis LAYER_BETWEEN_TWO_PRESSURE_DIFFERENCE_FROM_GROUND)
- Column  3: XBOXLO is XBOXLO (axis LAYER_BETWEEN_TWO_PRESSURE_DIFFERENCE_FROM_GROUND)
- Column  4: XBOXHI is XBOXHI (axis LAYER_BETWEEN_TWO_PRESSURE_DIFFERENCE_FROM_GROUND)
-             X   XBOX  XBOXLO XBOXHI
-0   / 1:  0.000  8.000 -6.000  2.000
-3   / 2:  3.000  2.500  2.000  4.500
-5   / 3:  5.000  4.500  4.500  9.000
- 
- 
-! Previously TM_CHECK_BNDS had not been used to check bounds on regular axes.
-! bug1434
-GO bn_reset
-cancel mode verify
-GO err600_check_bounds_regular.jnl
-! err600_check_bounds_regular.jnl
-! Previously TM_CHECK_BNDS had not been used to check bounds on regular axes.
-! bug1434
- 
-! 19-Sep-2006 ACM
- 
-use coads_climatology
-save/clobber/l=1/j=45/file=b.nc/bounds sst
-can data/all
-use b
- 
-! previously had errors:
-! bounds COADSX_bnds do not enclose point on axis COADSX
-! Substituting coordinate midpoints
- 
-! Long values for symbols: previously symbol strings were cut off at 255 characters.
-! Bug 1439
-GO bn_reset
-cancel mode verify
-GO err600_long_symbol_string.jnl
-! err600_longsym_symbol_string.jnl
-! Long values for symbols: previously strings were cut off at 255 characters.
-! Bug 1439
-! 20-Sep-2006 ACM
- 
-! Define a long symbol and use it in a function call
- 
-DEFINE SYMBOL longsym_a = "........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"
-DEFINE SYMBOL longsym_b = "300.......310"
-SHOW SYMBOL longsym_a, longsym_b
-LONGSYM_A = ""........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""
-LONGSYM_B = ""300.......310""
- 
-LIST STRINDEX(($longsym_a),($longsym_b))
- !-> LIST STRINDEX("........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","300.......310")
-             VARIABLE : STRINDEX("........10........20........30........40........50........60........70........80........90.......100.......110.......120.......130.......140.......150.......160.......170
-          298.0
- 
-! Now define a symbol from a file variable
-use "longtitle1000.nc"
-DEFINE SYMBOL longsym_1000 = "`a,return=dsettitle`"
- !-> DEFINE SYMBOL longsym_1000 = "
-123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012 [...]
- 
-SHOW SYMBOL longsym_1000
-LONGSYM_1000 = ""
-123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012 [...]
- 
-DEFINE SYMBOL longsym_very_long = strcat (($longsym_a), ($longsym_1000))
- !-> DEFINE SYMBOL longsym_very_long = strcat ("........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", "
-123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012 [...]
-SHOW SYMBOL longsym_very_long
-LONGSYM_VERY_LONG = "strcat ("........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", "
-123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012 [...]
- 
-CANCEL SYMBOL longsym*
- 
-! Global missing-value flag for dataset was not initialized and so was
-! set to 0 when there was no global attribute in the file
-! bug 1445
-GO bn_reset
-cancel mode verify
-GO err600_missing_flag.jnl
-! noglobalhistory.nc has no global history attribute, and
-! also the variable B has no missing or fill value flag
-! Bug 1445: the missing-value flag got set to 0: (data values are 0,1,2,3)
- 
-use noglobalhistory.nc
-list b
-             VARIABLE : {0,1,2,3}
-             FILENAME : noglobalhistory.nc
-             SUBSET   : 4 points (X)
- 1   / 1:  0.000
- 2   / 2:  1.000
- 3   / 3:  2.000
- 4   / 4:  3.000
- 
-! should be 0,1,2,3; bug had first value missing.
- 
- 
-! err600_returnsize.jnl
-! bug 1447, where say `var[d=fname.cdf],return=size` failed
-! ( a parsing error, confusing the dot in the filename with dot in `var.att,return=size` )
-GO bn_reset
-cancel mode verify
-GO err600_returnsize.jnl
-! err600_returnsize.jnl
-! ACM 10-4-2006
-! bug 1447, where say `var[d=fname.cdf],return=size` failed
-! ( a parsing error, confusing the dot in the filename with dot in `var.att,return=size` )
- 
- 
-use coads_climatology.cdf
- 
-say `sst[d=coads_climatology.cdf],return=size`
- !-> MESSAGE/CONTINUE 48600
-48600
-say `sst.units,return=size`
- !-> MESSAGE/CONTINUE 5
-5
- 
-define symbol the_x_axis = `sst,return=xaxis`
- !-> define symbol the_x_axis = COADSX
-say `(($the_x_axis)).units,return=size`
- !-> MESSAGE/CONTINUE 12
-12
- 
-! err600_if_comments_tab.jnl
-! bug 1446  When there is a tab before a comment, the parsing gets
-! thrown off and we got an error about an invalid ENDIF
-GO bn_reset
-cancel mode verify
-GO err600_if_comments_tab.jnl
-! err600_if_comments_tab.jnl
-! ACM 10-4-2006
-! bug 1446  When there is a tab before a comment, the parsing gets
-! thrown off and we got an error about an invalid ENDIF
- 
-IF 0 THEN
-   ENDIF
-ENDIF
- 
-! Here there is a tab before the ! which throws off the parsing...
-IF 0 THEN
-   ENDIF
-ENDIF
- 
-! err600_set_var_title.jnl
-! Bug 1454 Settings made by SET VAR/TITLE=/UNITS= were not saved in output file
-GO bn_reset
-cancel mode verify
-GO err600_set_var_title.jnl
-! err600_set_var_title.jnl
-! Bug 1454
-! The settings made by SET VAR/TITLE=/UNITS= were not saved in output file
-! ACM 10/11/06
- 
-! check the variable name and title in the list command output
-use gtbc011
-list/y=1/k=1/l=1 temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gtbc011.cdf
-             SUBSET   : 3 points (LONGITUDE)
-             LATITUDE : 0.833N
-             DEPTH (m): 5
-             TIME     : MAR-1983
-                0.83N 
-                48
- 160.5W / 70:  31.20
- 159.5W / 71:  31.34
- 158.5W / 72:  31.45
- 
-set var/title="Temp"/units="DegC" temp
-list/y=1/k=1/l=1 temp  ! new title and units
-             VARIABLE : Temp (DegC)
-             FILENAME : gtbc011.cdf
-             SUBSET   : 3 points (LONGITUDE)
-             LATITUDE : 0.833N
-             DEPTH (m): 5
-             TIME     : MAR-1983
-                0.83N 
-                48
- 160.5W / 70:  31.20
- 159.5W / 71:  31.34
- 158.5W / 72:  31.45
- 
-save/file=a.nc/clobber temp
-can data/all
-use a.nc
-! This listing should have the NEW var title and units
- list/y=1/k=1/l=1 temp
-             VARIABLE : Temp (DegC)
-             FILENAME : a.nc
-             SUBSET   : 3 points (LONGITUDE)
-             LATITUDE : 0.833N
-             DEPTH (m): 5
-             TIME     : MAR-1983
-               0.83N 
-               48
- 160.5W / 1:  31.20
- 159.5W / 2:  31.34
- 158.5W / 3:  31.45
- 
-! err600_var_label.jnl
-! bug1442 If there is no long_name attribute, the plot should
-! be labelled with the var name but it only has units label
-GO bn_reset
-cancel mode verify
-GO err600_var_label.jnl
-! err600_var_label.jnl
-! bug1442
-! If there is no long_name attribute, the plot or listing
-! should be labeled with the var name but it has only the units
- 
-use gtbc011
- 
-! line VARIABLE has longname (units)  which is TEMPERATURE (deg. C)
-list/i=70/l=1/j=30/k=1 temp
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gtbc011.cdf
-             LONGITUDE: 160.5W
-             LATITUDE : 5.167S
-             DEPTH (m): 5
-             TIME     : MAR-1983
-          29.54
- 
-! Write, without the long_name attribute.
-can att/output temp.long_name
-save/file=a.nc/clobber temp
- 
-can data/all
-use a.nc
-sh att/all temp
-     attributes for dataset: ./a.nc
- TEMP.missing_value = -1.E+34
- TEMP._FillValue = -1.E+34
- TEMP.history = From gt160w011 
- TEMP.units = deg. C 
- 
-! Label should be variablename (units) which is TEMP (deg. C)
-list/i=70/l=1/j=30/k=1 temp
-             VARIABLE : TEMP (deg. C)
-             FILENAME : a.nc
-             LONGITUDE: 159.5W(6321)
-             LATITUDE : 5.167S
-             DEPTH (m): 5
-             TIME     : MAR-1983
-          29.72
- 
-! err600_upcase.jnl
-! Bug 1461 upcasing of axis name on creating bounds variable for output
-GO bn_reset
-cancel mode verify
-GO err600_upcase.jnl
- ! err600_upcase.jnl
- ! 10/23/2006
- ! acm
- ! bug 1461: bounds variable is created for netcdf output with upcased axis name,
- !           but cd_write_var looked for it with original lowercase axis name.
- 
-SET MODE ignore_error
- 
-USE err600_upcase.nc
-SAVE/CLOBBER/FILE=b.nc v
- 
-! this was the workaround for v6.0. After the fix this works the same as the above
-CANCEL MODE upcase
-SAVE/CLOBBER/FILE=b.nc v
- 
-SET MODE/LAST upcase_output
-SET MODE/LAST ignore_error
- 
-! err600_let_d.jnl
-! Making a LET/D= assignment caused the return of dimension names from the attribute
-! structure fail, and the list of variable names was incorrect.
-GO bn_reset
-cancel mode verify
-GO err600_let_d.jnl
-! err600_let_d.jnl
-! Making a LET/D= assignment caused the return of dimension
-! names from the attribute structure fail, and the list of
-! variable names was incorrect.
-! 28-Nov-2006
- 
-use levitus_climatology
-let/d=levitus_climatology temp_20 = temp[d=levitus_climatology,z=0:20 at sum]
-list ..dimnames
-             VARIABLE : ..DIMNAMES
-             FILENAME : levitus_climatology.cdf
-             SUBSET   : 3 points (X)
- 1   / 1:"XAXLEVITR1_160"
- 2   / 2:"YAXLEVITR1_90" 
- 3   / 3:"ZAXLEVITR1_1"  
-list ..varnames
-             VARIABLE : ..VARNAMES
-             FILENAME : levitus_climatology.cdf
-        "TEMP"
- 
-! err600_nc_des_order.jnl
-! Bug 1459 order of multiple descriptor file opening causes netCDF error
-GO bn_reset
-cancel mode verify
-GO err600_nc_des_order.jnl
-! err600_nc_des_order.jnl
-! 11/07/2006 ACM
-!
-! Bug 1459 order of multiple descriptor file opening causes netCDF error
-! The bug results in:
-!  ** netCDF error: NCSYSERR
-! Due to incorrect resetting of sf_lunit in cd_init_dset.F
- 
-set data tok_short.des
-set data ss_small.nc
-set data mc_test.des
-set data sstok_short.nc
- 
-stat rose[d=2]
- 
-             Surface relief
-             LONGITUDE: 137.3W(222.7) to 135.7W(224.3)
-             LATITUDE: 58.19N to 59.16N
-             Z:  N/A
-             T:  N/A
-             E:  N/A
-             F:  N/A
-             DATA SET: ./ss_small.nc
- 
- Total # of data points: 2576 (46*56*1*1*1*1)
- # flagged as bad  data: 0
- Minimum value: -592
- Maximum value: 3005
- Mean    value: 436.64 (unweighted average)
- Standard deviation: 563.43
- 
-can data/all
- 
-set data/form=cdf "ss_small.nc"
-set data/form=cdf "sstok_short.nc"
-SET DAT/FORM=CDF "mc_test.des"
- 
-stat rose[j=12,d=1]
- 
-             Surface relief
-             LONGITUDE: 137.3W(222.7) to 135.7W(224.3)
-             LATITUDE: 58.39N
-             Z:  N/A
-             T:  N/A
-             E:  N/A
-             F:  N/A
-             DATA SET: ./ss_small.nc
- 
- Total # of data points: 46 (46*1*1*1*1*1)
- # flagged as bad  data: 0
- Minimum value: -168
- Maximum value: 509
- Mean    value: 62.717 (unweighted average)
- Standard deviation: 156.25
- 
-! Bug 1470; redefine or reset attributes of an axis
-! should change the axis definition and its attributes
-! in the attribute structure.
-GO bn_reset
-cancel mode verify
-GO err600_reset_redefine_axis.jnl
-! err600_reset_redefine_axis.jnl
-! Bug 1470; redefine or reset attributes of an axis
-!   should change the axis definition and its attributes
-!   in the attribute structure.
- 
-use coads_climatology
-def sym timeax = `sst,return=taxis`
- !-> def sym timeax = TIME9
- 
-show att/all ($timeax)
- !-> show att/all TIME9
-show axis ($timeax)
- !-> show axis TIME9
- name       axis              # pts   start                end
- TIME9     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
-T0 = 01-JAN-0000 00:00:00
-   Axis span (to cell edges) = 2191.455 (modulo length = 8765.82)
-define axis/t0=1-jan-0001/t=1:3:1/unit=months ($timeax)
- !-> define axis/t0=1-jan-0001/t=1:3:1/unit=months TIME9
-show att/all ($timeax)
- !-> show att/all TIME9
-show axis ($timeax)
- !-> show axis TIME9
- name       axis              # pts   start                end
- TIME9     TIME                 3 r   31-JAN-0001 10:29    02-APR-0001 07:27
-T0 = 1-JAN-0001
-   Axis span (to cell edges) = 3
- 
-! Changing axis with the SET AXIS command
- 
-can data/all
-use gt4d011
-def sym timeax = `temp,return=taxis`
- !-> def sym timeax = TIME11
-show att/all ($timeax)
- !-> show att/all TIME11
-show axis ($timeax)
- !-> show axis TIME11
- name       axis              # pts   start                end
- TIME11    TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00
-T0 = 14-JAN-1980 14:00:00
-   Axis span (to cell edges) = 3650
- 
-set ax/modulo/calendar=noleap/t0=1-jan-1900/units=days ($timeax)
- !-> set ax/modulo/calendar=noleap/t0=1-jan-1900/units=days TIME11
-show att/all ($timeax)
- !-> show att/all TIME11
-show axis ($timeax)
- !-> show axis TIME11
- name       axis              # pts   start                end
- TIME11    TIME                25mr   14-MAR-1962 00:00    19-OCT-1971 00:00
-T0 = 1-JAN-1900
-CALENDAR = NOLEAP
-   Axis span (to cell edges) = 3650 (modulo length = axis span)
- 
- 
-! Changing axis with the CANCEL AXIS/ command
- 
-can data/all
-use gt4d011
-def sym timeax = `temp,return=taxis`
- !-> def sym timeax = TIME11
-def sym zax = `temp,return=zaxis`
- !-> def sym zax = PSZT1
-show att/all ($timeax)
- !-> show att/all TIME11
-show axis ($zax)
- !-> show axis PSZT1
- name       axis              # pts   start                end
- PSZT1     DEPTH (m)           27 i-  5                    3824
-   Axis span (to cell edges) = 4149
- 
-cancel axis/modulo ($timeax)
- !-> cancel axis/modulo TIME11
-show att/all ($timeax)
- !-> show att/all TIME11
-show axis ($timeax)
- !-> show axis TIME11
- name       axis              # pts   start                end
- TIME11    TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00
-T0 = 14-JAN-1980 14:00:00
-   Axis span (to cell edges) = 3650
-cancel axis/depth ($zax)
- !-> cancel axis/depth PSZT1
-show att/all ($zax)
- !-> show att/all PSZT1
-show axis ($zax)
- !-> show axis PSZT1
- name       axis              # pts   start                end
- PSZT1     Z (METERS)          27 i   5                    3824
-   Axis span (to cell edges) = 4149
- 
- 
-! err600_ferret_axis_names.jnl
-! If Ferret needed to rename an axis on file initialization for uniqueness,
-! we now keep that new name in the attr structure, and an attribute
-! orig_file_axname keeps the input name.
-GO bn_reset
-cancel mode verify
-GO err600_ferret_axis_names.jnl
-! err600_ferret_axis_names.jnl
-! If Ferret needed to rename an axis on file initialization for uniqueness,
-! we now keep that new name in the attr structure, and add an attribute
-! orig_file_axname with the input name. That orig name is used only on output.
- 
-def axis/t=1:5:1 time
-use coads_climatology
- 
-! Note TIME1 with attribute orig_file_axname
-sh dat/att
-     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_axnameCHAR        6    F       COADSX
-  
-(COADSY)               DOUBLE    units           CHAR        13   T       degrees_north
-                                 point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        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
-  
- 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
-  
-save/clobber/bounds/file=a.nc/x=181/y=1 sst
- 
-can data/all
-use gt4d011
-save/clobber/file=t2.nc temp[L=2:6]
-save/clobber/file=t12.nc temp[L=12:16]
-can data/all
- 
-use t2.nc; use t12.nc
- 
-sho dat/att
-     currently SET data sets:
-    1> ./t2.nc
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               history         CHAR        24   T       FERRET V6.85   12-Nov-13
-                                 Conventions     CHAR        6    F       CF-1.0
-  
-(PSXT91_108)           DOUBLE    units           CHAR        12   T       degrees_east
-                                 modulo          DOUBLE      1    T       360
-                                 point_spacing   CHAR        4    T       even
-                                 axis            CHAR        1    T       X
-                                 standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        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
-  
- PSYT35_56_bnds        DOUBLE
-  
-(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        13   T       PSZT1_10_bnds
-                                 orig_file_axnameCHAR        8    F       PSZT1_10
-  
- 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        5    F       TIME1
-  
- TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
-                                 _FillValue      FLOAT       1    T       -1.E+34
-                                 long_name       CHAR        11   T       TEMPERATURE
-                                 history         CHAR        12   T       From gt4d011
-                                 units           CHAR        6    T       deg. C
-  
-    2> ./t12.nc  (default)
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               history         CHAR        24   T       FERRET V6.85   12-Nov-13
-                                 Conventions     CHAR        6    F       CF-1.0
-  
-(PSXT91_108)           DOUBLE    units           CHAR        12   T       degrees_east
-                                 modulo          DOUBLE      1    T       360
-                                 point_spacing   CHAR        4    T       even
-                                 axis            CHAR        1    T       X
-                                 standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        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
-  
- PSYT35_56_bnds        DOUBLE
-  
-(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        13   T       PSZT1_10_bnds
-                                 orig_file_axnameCHAR        8    F       PSZT1_10
-  
- PSZT1_10_bnds         DOUBLE
-  
-(TIME12)               DOUBLE    units           CHAR        30   T       hour since 1980-01-14 14:00:00
-                                 time_origin     CHAR        20   T       14-JAN-1980 14:00:00
-                                 axis            CHAR        1    T       T
-                                 standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        5    F       TIME1
-  
- TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
-                                 _FillValue      FLOAT       1    T       -1.E+34
-                                 long_name       CHAR        11   T       TEMPERATURE
-                                 history         CHAR        12   T       From gt4d011
-                                 units           CHAR        6    T       deg. C
-  
- 
-! err600_tab_comma_missingdat.jnl
-! when data contains missing values list/format=comma or list/format=tab
-! should output a comma or tab as placeholder for the missing value
-GO bn_reset
-cancel mode verify
-GO err600_tab_comma_missingdat.jnl
-! err600_tab_comma_missingdat.jnl
-! 11/21/2006 acm
- 
-! when data contains missing values: extra comma as placeholder
-let a = {1,1,2,1,1,2,1,1}
-let b = {4,4,4,4,4,4,4,4}
-set var/bad=2 a
-list/form=comma a,b
-             X: 0.5 to 8.5
- Column  1: A is {1,1,2,1,1,2,1,1}    BAD FLAG : 2
- Column  2: B is {4,4,4,4,4,4,4,4}    BAD FLAG : -1.E+34
-       A,B
-1   / 1:1,4  
-2   / 2:1,4  
-3   / 3:2,4  
-4   / 4:1,4  
-5   / 5:1,4  
-6   / 6:2,4  
-7   / 7:1,4  
-8   / 8:1,4  
-list/form=comma a,b,a
-             X: 0.5 to 8.5
- Column  1: A is {1,1,2,1,1,2,1,1}    BAD FLAG : 2
- Column  2: B is {4,4,4,4,4,4,4,4}    BAD FLAG : -1.E+34
- Column  3: A is {1,1,2,1,1,2,1,1}    BAD FLAG : 2
-       A,B,A
-1   / 1:1,4,1  
-2   / 2:1,4,1  
-3   / 3:2,4,2  
-4   / 4:1,4,1  
-5   / 5:1,4,1  
-6   / 6:2,4,2  
-7   / 7:1,4,1  
-8   / 8:1,4,1  
- 
-! when data contains missing values: extra tab as placeholder
-let a = {1,1,2,1,1,2,1,1}
-let b = {4,4,4,4,4,4,4,4}
-set var/bad=2 a
-list/form=tab a,b
-             X: 0.5 to 8.5
- Column  1: A is {1,1,2,1,1,2,1,1}    BAD FLAG : 2
- Column  2: B is {4,4,4,4,4,4,4,4}    BAD FLAG : -1.E+34
-       A	B
-1   / 1:1	4  
-2   / 2:1	4  
-3   / 3:2	4  
-4   / 4:1	4  
-5   / 5:1	4  
-6   / 6:2	4  
-7   / 7:1	4  
-8   / 8:1	4  
-list/form=tab a,b,a
-             X: 0.5 to 8.5
- Column  1: A is {1,1,2,1,1,2,1,1}    BAD FLAG : 2
- Column  2: B is {4,4,4,4,4,4,4,4}    BAD FLAG : -1.E+34
- Column  3: A is {1,1,2,1,1,2,1,1}    BAD FLAG : 2
-       A	B	A
-1   / 1:1	4	1  
-2   / 2:1	4	1  
-3   / 3:2	4	2  
-4   / 4:1	4	1  
-5   / 5:1	4	1  
-6   / 6:2	4	2  
-7   / 7:1	4	1  
-8   / 8:1	4	1  
- 
-! err600_vec_aspect.jnl
-! VECTOR/ASPECT plots are wrong (incorrect fix for bug 1348)
-GO bn_reset
-cancel mode verify
-GO err600_vec_aspect.jnl
-! err600_vec_aspect.jnl
-! VECTOR/ASPECT plots are wrong (incorrect fix for bug 1348)
-! 12/04/2006
- 
-use gt4d011.cdf
-vec/k=1/l=1 u,v
-vec/over/asp/k=1/l=1 u,v
- 
-! Irregular axes
- 
-def axis/from_data/x/name=xirr/units=deg/modulo  {0,1,2,4,6,7,8,10,14,16,20,23,24}
-def axis/from_data/y/name=yirr/units=deg  {0,2,4,5,6,7,8,9,12,13,14,15,18}
-let a = 0.1*x[gx=xirr] + 4*y[gy=yirr]
-let b = 3*x[gx=xirr] + y[gy=yirr]
-vec a,b
-vec/asp/over a,b
- 
-! err600_save_two.jnl
-! Bug 1478: save two variables with the same time axis to a file, error
-! when checking whether 2nd variable has same grid.
-GO bn_reset
-cancel mode verify
-GO err600_save_two.jnl
-! err600_save_two.jnl
-! 12/11/2006
-! Bug 1478: save two variables with the same time axis to a file.
-! got error attempt to redefine line; axis TIME doesnt match CDF file
-! This was due to upcasing of output axis TIME, which needed to be upcased
-! before checking whether record axis of the second variable matched the
-! one just written to the output file.
- 
-use "a1478.nc"
-use "b1478.nc"
-save/clobber/file="out.nc" olr[d=1], swdn_toa[d=2]
- 
-! err600_nc_des_order.jnl
-! Bug 1459 order of multiple descriptor file opening causes netCDF error
-GO bn_reset
-cancel mode verify
-GO err600_nc_des_order.jnl
-! err600_nc_des_order.jnl
-! 11/07/2006 ACM
-!
-! Bug 1459 order of multiple descriptor file opening causes netCDF error
-! The bug results in:
-!  ** netCDF error: NCSYSERR
-! Due to incorrect resetting of sf_lunit in cd_init_dset.F
- 
-set data tok_short.des
-set data ss_small.nc
-set data mc_test.des
-set data sstok_short.nc
- 
-stat rose[d=2]
- 
-             Surface relief
-             LONGITUDE: 137.3W(222.7) to 135.7W(224.3)
-             LATITUDE: 58.19N to 59.16N
-             Z:  N/A
-             T:  N/A
-             E:  N/A
-             F:  N/A
-             DATA SET: ./ss_small.nc
- 
- Total # of data points: 2576 (46*56*1*1*1*1)
- # flagged as bad  data: 0
- Minimum value: -592
- Maximum value: 3005
- Mean    value: 436.64 (unweighted average)
- Standard deviation: 563.43
- 
-can data/all
- 
-set data/form=cdf "ss_small.nc"
-set data/form=cdf "sstok_short.nc"
-SET DAT/FORM=CDF "mc_test.des"
- 
-stat rose[j=12,d=1]
- 
-             Surface relief
-             LONGITUDE: 137.3W(222.7) to 135.7W(224.3)
-             LATITUDE: 58.39N
-             Z:  N/A
-             T:  N/A
-             E:  N/A
-             F:  N/A
-             DATA SET: ./ss_small.nc
- 
- Total # of data points: 46 (46*1*1*1*1*1)
- # flagged as bad  data: 0
- Minimum value: -168
- Maximum value: 509
- Mean    value: 62.717 (unweighted average)
- Standard deviation: 156.25
- 
-! ******** V6.02 Additions below ***********
-GO bn_reset
-cancel mode verify
-GO bn_set_strides.jnl
-! bn_set_strides.jnl
-! Jing Li, 11/2006
-! tests for SET AXIS/STRIDES
- 
-! 1/2007 ACM change show axis/all to show commands for individual axes;
-!            When run among other benchmark tests, there are a bunch of
-!            unrelated axes already defined, which get in the way of
-!            seeing the desired output.
- 
-set mode ignore_error
- 
-!..............1. ignore STRIDE = 1
-use coads_climatology
-show axis `sst,return=xaxis`
- !-> show axis COADSX
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
-   Axis span (to cell edges) = 360 (modulo length = axis span)
-show axis `sst,return=yaxis`
- !-> show axis COADSY
- name       axis              # pts   start                end
- COADSY    LATITUDE            90 r   89S                  89N
-   Axis span (to cell edges) = 180
-show axis `sst,return=taxis`
- !-> show axis TIME10
- name       axis              # pts   start                end
- TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58
-T0 = 01-JAN-0000 00:00:00
-   Axis span (to cell edges) = 2191.455 (modulo length = 8765.82)
-set axis/stride=1/offset=1 `sst, return=xaxis`
- !-> set axis/stride=1/offset=1 COADSX
-show axis `sst,return=xaxis`
- !-> show axis COADSX
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
-   Axis span (to cell edges) = 360 (modulo length = axis span)
-cancel data/all
- 
-!..............2. illegal to stride an already strided axis
-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)
- name       axis              # pts   start                end
- (AX047)   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)
-show axis `sst,return=xaxis`
- !-> show axis (AX047)
- name       axis              # pts   start                end
- (AX047)   LONGITUDE           90mr   23E                  19E(379)
-   Axis span (to cell edges) = 360 (modulo length = axis span)
-cancel data/all
- 
-!..............3. only set STRIDE
-use coads_climatology
- 
-! --- before striding
- 
-list sst[i=21:30,j=50,k=1,l=50]
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 10 points (LONGITUDE)
-             LATITUDE : 9N
-             TIME     : FEB-0012
-               9N    
-               50
- 61E   / 21:  26.86
- 63E   / 22:  27.00
- 65E   / 23:  27.29
- 67E   / 24:  27.69
- 69E   / 25:  27.93
- 71E   / 26:  28.08
- 73E   / 27:  28.23
- 75E   / 28:  28.32
- 77E   / 29:  28.23
- 79E   / 30:  27.82
- 
-! --- after set striding
- 
-set axis/stride=2 `sst, return=xaxis`
- !-> set axis/stride=2 COADSX
-list sst[i=11:15,j=50,k=1,l=50]
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 5 points (LONGITUDE)
-             LATITUDE : 9N
-             TIME     : FEB-0012
-               9N    
-               50
- 61E   / 11:  26.86
- 65E   / 12:  27.29
- 69E   / 13:  27.93
- 73E   / 14:  28.23
- 77E   / 15:  28.23
- 
- 
-! --- after cancel striding
-cancel axis/stride `sst,return=xaxis`
- !-> cancel axis/stride (AX042)
-list sst[i=21:30,j=50,k=1,l=50]
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 10 points (LONGITUDE)
-             LATITUDE : 9N
-             TIME     : FEB-0012
-               9N    
-               50
- 61E   / 21:  26.86
- 63E   / 22:  27.00
- 65E   / 23:  27.29
- 67E   / 24:  27.69
- 69E   / 25:  27.93
- 71E   / 26:  28.08
- 73E   / 27:  28.23
- 75E   / 28:  28.32
- 77E   / 29:  28.23
- 79E   / 30:  27.82
-cancel data/all
- 
-!.............4. only set OFFSET
-! ingored if you only set OFFSET
- 
-use coads_climatology
-set axis/offset=1 `sst, return=xaxis`
- !-> set axis/offset=1 COADSX
-show axis `sst,return=xaxis`
- !-> show axis COADSX
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
-   Axis span (to cell edges) = 360 (modulo length = axis span)
-cancel axis/stride `sst,return=xaxis`
- !-> cancel axis/stride COADSX
-cancel data/all
- 
- 
-!.............5. OFFSET .LE. STRIDE
-use coads_climatology
-set axis/stride=2/offset=4 `sst, return=xaxis`
- !-> set axis/stride=2/offset=4 COADSX
-cancel data/all
- 
-!.............6. SHOW GRID/DYNAMIC
-use coads_climatology
-set axis/stride=4/offset=2 `sst, return=xaxis`
- !-> set axis/stride=4/offset=2 COADSX
-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
-cancel data/all
- 
-!.............7. cancel stride on a non-strided axis
-use coads_climatology
-cancel axis/stride `sst,return=xaxis`
- !-> cancel axis/stride COADSX
-cancel data/all
- 
-!.............8. striding on a modulo axis
- 
-! --- 8.1 stride value is an integer factor of the axis length
-! the strided axis will inherit the modulo property of its parent
- 
-use coads_climatology
-set axis/stride=6/offset=5 `sst,return=xaxis`
- !-> set axis/stride=6/offset=5 COADSX
-show axis `sst,return=xaxis`
- !-> show axis (AX005)
- name       axis              # pts   start                end
- (AX005)   LONGITUDE           30mr   31E                  19E(379)
-   Axis span (to cell edges) = 360 (modulo length = axis span)
-cancel axis/stride `sst,return=xaxis`
- !-> cancel axis/stride (AX005)
- 
-!--- 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)
- name       axis              # pts   start                end
- (AX042)   LONGITUDE           25 r   31E                  7E(367)
-   Axis span (to cell edges) = 350
-cancel axis/stride `sst,return=xaxis`
- !-> cancel axis/stride (AX042)
-cancel data/all
- 
-! --- 8.3 testing strided modulo axis
-use coads_climatology
-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 data/all
- 
-!.............9. two datasets share the same grid
- 
-! --- 9.1 test: use A - use B - stride
-! use A; use B; set axis/stride=2 `var[d=A], return=axis`
-! -- will affect variables in B
-use coads_climatology
-save/clobber/file=d2.nc sst[L=1]
-use d2
-list/x=180:195/j=30/L=1 sst[d=d2]
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             FILENAME : d2.nc
-             SUBSET   : 8 points (LONGITUDE)
-             LATITUDE : 31S
-             TIME     : JAN
-                31S   
-                30
- 179W   / 81:  22.53
- 177W   / 82:  22.71
- 175W   / 83:  22.44
- 173W   / 84:  22.21
- 171W   / 85:  21.86
- 169W   / 86:  22.07
- 167W   / 87:  22.30
- 165W   / 88:  22.28
-set axis/stride=2 `sst[d=coads_climatology], return=xaxis`
- !-> set axis/stride=2 COADSX
-list/x=180:195/j=30/L=1 sst[d=d2]
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             FILENAME : d2.nc
-             SUBSET   : 4 points (LONGITUDE)
-             LATITUDE : 31S
-             TIME     : JAN
-                31S   
-                30
- 179W   / 41:  22.53
- 175W   / 42:  22.44
- 171W   / 43:  21.86
- 167W   / 44:  22.30
- 
-cancel data/all
- 
-! --- 9.2 test: use A -stride -useB
-! use A; set axis/stride=2 `var[d=A], return=xaxis`; use B
-! -- will not affect variables in B
-use coads_climatology
-set axis/stride=2 `sst[d=coads_climatology], return=xaxis`
- !-> set axis/stride=2 COADSX
-list/x=180:195/j=30/L=1 sst[d=coads_climatology]
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 4 points (LONGITUDE)
-             LATITUDE : 31S
-             TIME     : JAN
-                31S   
-                30
- 179W   / 41:  22.53
- 175W   / 42:  22.44
- 171W   / 43:  21.86
- 167W   / 44:  22.30
-use d2
-list/x=180:195/j=30/L=1 sst[d=d2]
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             FILENAME : d2.nc
-             SUBSET   : 8 points (LONGITUDE)
-             LATITUDE : 31S
-             TIME     : JAN
-                31S   
-                30
- 179W   / 81:  22.53
- 177W   / 82:  22.71
- 175W   / 83:  22.44
- 173W   / 84:  22.21
- 171W   / 85:  21.86
- 169W   / 86:  22.07
- 167W   / 87:  22.30
- 165W   / 88:  22.28
- 
-can data/all
- 
-!.............10. strides on permuted and reversed axes
- 
-! --- 10.1 stride on a permuted axis
-use/order=yzt coads_climatology
-show data/all
-     currently SET data sets:
-    1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          ...       1:180     1:90      1:3       ...       ...
- 
-set axis/stride=5 `sst,return=yaxis`
- !-> set axis/stride=5 COADSX
-show axis `sst,return=yaxis`
- !-> show axis (AX049)
- name       axis              # pts   start                end
- (AX049)   LONGITUDE           36mr   21E                  11E(371)
-   Axis span (to cell edges) = 360 (modulo length = axis span)
- 
-can data/all
- 
-! --- 10.2 stride on a reversed axis -- YAXIS
-use/order=x-yt coads_climatology
-list/x=180/l=5 sst[j=1:30]
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 30 points (LATITUDE)
-             LONGITUDE: 179E
-             TIME     : JAN
-              179E   
-               80
- 31S   / 30:  18.47
- 33S   / 29:  17.05
- 35S   / 28:  15.94
- 37S   / 27:  14.53
- 39S   / 26:  12.83
- 41S   / 25:  11.11
- 43S   / 24:   8.80
- 45S   / 23:   6.42
- 47S   / 22:   4.83
- 49S   / 21:   4.08
- 51S   / 20:   3.89
- 53S   / 19:   3.48
- 55S   / 18:   3.20
- 57S   / 17:   2.52
- 59S   / 16:   1.90
- 61S   / 15:   1.04
- 63S   / 14:   0.14
- 65S   / 13:   ....
- 67S   / 12:   ....
- 69S   / 11:   ....
- 71S   / 10:   ....
- 73S   /  9:   ....
- 75S   /  8:   ....
- 77S   /  7:   ....
- 79S   /  6:   ....
- 81S   /  5:   ....
- 83S   /  4:   ....
- 85S   /  3:   ....
- 87S   /  2:   ....
- 89S   /  1:   ....
-set axis/stride=5/offset=3 `sst,return=yaxis`
- !-> set axis/stride=5/offset=3 COADSY
-list/x=180/l=5  sst
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 18 points (LATITUDE)
-             LONGITUDE: 179E
-             TIME     : JAN
-              179E   
-               80
- 87N   / 18:   ....
- 77N   / 17:  -0.20
- 67N   / 16:   0.06
- 57N   / 15:   7.30
- 47N   / 14:  13.13
- 37N   / 13:  19.97
- 27N   / 12:  24.01
- 17N   / 11:  28.03
- 7N    / 10:  29.14
- 3S    /  9:  28.01
- 13S   /  8:  27.10
- 23S   /  7:  24.41
- 33S   /  6:  17.05
- 43S   /  5:   8.80
- 53S   /  4:   3.48
- 63S   /  3:   0.14
- 73S   /  2:   ....
- 83S   /  1:   ....
-list/x=180/l=5 sst[j=3:14:2]
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-                        regrid: 20 deg on Y
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 6 points (LATITUDE)
-             LONGITUDE: 179E
-             TIME     : JAN
-             179E   
-              80
- 37N   / 6:  19.97
- 17N   / 5:  28.03
- 3S    / 4:  28.01
- 23S   / 3:  24.41
- 43S   / 2:   8.80
- 63S   / 1:   0.14
- 
-cancel data/all
- 
-!.............11. stride on all axes
-use coads_climatology
-set axis/stride=2 `sst, return=xaxis`
- !-> set axis/stride=2 COADSX
-set axis/stride=2 `sst, return=yaxis`
- !-> set axis/stride=2 COADSY
-set axis/stride=2 `sst, return=taxis`
- !-> set axis/stride=2 TIME10
- 
-show axis `sst,return=xaxis`
- !-> show axis (AX051)
- name       axis              # pts   start                end
- (AX051)   LONGITUDE           90mr   21E                  17E(377)
-   Axis span (to cell edges) = 360 (modulo length = axis span)
-show axis `sst,return=yaxis`
- !-> show axis (AX005)
- name       axis              # pts   start                end
- (AX005)   LATITUDE            45 r   89S                  87N
-   Axis span (to cell edges) = 180
-show axis `sst,return=taxis`
- !-> show axis (AX048)
- name       axis              # pts   start                end
- (AX048)   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
- 
-can data/all
- 
-!.............12. stride on a NORMAL axis
-set mode ignore_error
-use coads_climatology
-set axis/stride=2 `sst,return=zaxis`
- !-> set axis/stride=2 NORMAL
-set mode/last ignore_error
- 
-show axis `sst,return=xaxis`
- !-> show axis COADSX
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
-   Axis span (to cell edges) = 360 (modulo length = axis span)
-show axis `sst,return=yaxis`
- !-> show axis COADSY
- name       axis              # pts   start                end
- COADSY    LATITUDE            90 r   89S                  89N
-   Axis span (to cell edges) = 180
-show axis `sst,return=taxis`
- !-> show axis TIME10
- name       axis              # pts   start                end
- TIME10    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)
- 
-GO bn_reset
-cancel mode verify
-GO bn_lsl_lowpass.jnl
-! bn_lsl_lowpass.jnl
-! Test lsl_lowpass, now included as a statically-linked external function
- 
-use gtsa056_2
-let my_temp = temp[x=180,y=0,k=1]
-let f_filtered = lsl_lowpass(my_temp, 40,10)
-! plot my_temp
-! plot/over f_filtered
- 
-! List the output so its not just a graphical test;
-! Compute based on the whole T region, but just list a portion.
-LIST/L=10:20 MY_TEMP[L=1:110], F_FILTERED[L=1:110]
-             DATA SET: ./gtsa056_2.cdf
-             TIME: FEB-1982 to MAR-1982
-             LONGITUDE: 179.5E
-             LATITUDE: 0.167S
-             DEPTH (m): 5
- Column  1: MY_TEMP is TEMP[X=180,Y=0,K=1]
- Column  2: F_FILTERED is LSL_LOWPASS(MY_TEMP, 40,10)
-                    MY_TEMP  F_FILTERED
-11-FEB-1982 23 / 10:   27.50   27.51
-15-FEB-1982 00 / 11:   27.47   27.48
-18-FEB-1982 01 / 12:   27.45   27.44
-21-FEB-1982 02 / 13:   27.41   27.42
-24-FEB-1982 03 / 14:   27.37   27.40
-27-FEB-1982 04 / 15:   27.35   27.39
-02-MAR-1982 05 / 16:   27.39   27.39
-05-MAR-1982 06 / 17:   27.43   27.40
-08-MAR-1982 07 / 18:   27.41   27.41
-11-MAR-1982 08 / 19:   27.41   27.42
-14-MAR-1982 09 / 20:   27.42   27.43
- 
- 
-GO bn_reset
-cancel mode verify
-GO 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
- TIME3     TIME                 2mr   16-JAN 06:00         15-FEB 16:29
- normal    E
- normal    F
-sh axis XAX_LEV9421_380
- name       axis              # pts   start                end
- XAX_LEV9421_380 LONGITUDE    360mr   20.5E                19.5E(379.5)
-   Axis span (to cell edges) = 360 (modulo length = axis span)
-sh axis time
- name       axis              # pts   start                end
- TIME      T                    5 r   1                    5
-   Axis span (to cell edges) = 5
-say `temp,return=xmod`
- !-> MESSAGE/CONTINUE 360
-360
-say `temp,return=tmod`
- !-> MESSAGE/CONTINUE 8765.81982421875
-8765.81982421875
- 
-! X is modulo but not T
-use levitus_climatology.cdf
-say `temp,return=xmod`
- !-> MESSAGE/CONTINUE 360
-360
-say `temp,return=tmod`
- !-> MESSAGE/CONTINUE
-
- 
-! Define some subspan modulo axes and check the results
-! Modulo because start year in 0000
-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
- 
-! Modulo because defined on longitude coordinates
-define axis/x=130e:80w:10 xsub
-let a = x[gx=xsub]
-say `a,return=xmod`
- !-> MESSAGE/CONTINUE 360
-360
- 
-! This file has an x axis with modulo = " " so its modulo, but it
-! does not have units of degrees. Thus axis length = modulo length
-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
- normal    E
- normal    F
-show axis x2ax
- name       axis              # pts   start                end
- X2AX      X                    2mr   1                    2
-   Axis span (to cell edges) = 2 (modulo length = 360)
-say `axy,return=xmod`
- !-> MESSAGE/CONTINUE 2
-2
- 
-GO bn_reset
-cancel mode verify
-GO bn602_bug_fixes
-! bn602_bug_fixes.jnl
-! test various fixes that went into version 6.02
-! 09-Nov-2006 ACM
- 
-! err601_sho_ax_xml_calendar.jnl
-! bug 1468: SHOW AXIS/ALL/XML listed the wrong info for the calendar
-GO bn_reset
-cancel mode verify
-GO err601_sho_ax_xml_calendar.jnl
-! err601_sho_ax_xml_calendar.jnl
-! 11/8/2006 ACM
-! bug 1468: SHOW AXIS/XML listed the wrong info for the calendar
-! when a time axis has a non-standard calendar.
- 
-def axis/cal=noleap/t=1-jan-2000:1-jan-2002:1/units=days timenoleap
-let v = sin(t[gt=timenoleap]/100)
-save/clobber/file=noleap.nc v
-use noleap.nc
-sh axis/xml timenoleap
-<axes>
-<axis name="TIMENOLEAP">
-<attribute name="direction" type="char">
-   <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[DAYS since 1901-01-15 00:00:00]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>731</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>2000-01-01 00:00:00</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>2002-01-01 00:00:00</value>
-</attribute>
-<attribute name="point_spacing" type="char">
-   <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
-   <value>no</value>
-</attribute>
-<attribute name="time_origin" type="char">
-   <value><![CDATA[1901-01-15 00:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
-   <value><![CDATA[NOLEAP]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="axis" type="char">
-   <value><![CDATA[T]]></value>
-</attribute>
-</axis>
-</axes>
- 
-! err601_index_111.jnl
-! bug 1463 region that points to index -111 on modulo axis confused
-! with unspecified_int4.
-GO bn_reset
-cancel mode verify
-GO err601_index_111.jnl
- 
-! err601_index_111.jnl
-! 11/09/2006 ACM
-! bug 1463 region that points to index -111 on modulo axis confused
-! with unspecified_int4. Fixed by changing to -999.
- 
-! x=-203 corresponds to I=-111.
-use coads_climatology
-list x[gx=sst,x=-193:-203]
-             VARIABLE : X
-                        axis COADSX
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 6 points (LONGITUDE)
- 157E    / -111: -203.0
- 159E    / -110: -201.0
- 161E    / -109: -199.0
- 163E    / -108: -197.0
- 165E    / -107: -195.0
- 167E    / -106: -193.0
- 
- 
-! err601_irregular_axis.jnl
-! Check for irregular axis actually being irregular failed; bug 1483
-GO bn_reset
-cancel mode verify
-GO err601_irregular_axis.jnl
-! err601_irregular_axis.jnl
-! V6.0 had a new scheme to check for irregular axes; for an axis
-! whose delta-coordinates vary widely this failed.  See bug 1483
-! The axis should be 6.792e-10, 1.368e-09, ..., 800, 1100, 1400
- 
-USE z_wide_variation.nc
-SHOW GRID/Z atmos
-    GRID GOR1
- name       axis              # pts   start                end
- normal    X
- normal    Y
- ALTITUDE  Z (Pa)              50 i   6.791595619E-10      1400
- TIME11    TIME                 1mr   01-JAN 04:00         01-JAN 04:00
- 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
-       6>  0.00000002249072      1.706E-08  0.00000001682964
-       7>  0.00000004529075      3.436E-08  0.00000003389074
-       8>  0.00000009120437      6.919E-08  0.00000006824756
-       9>  0.000000183663        1.393E-07  0.0000001374337
-      10>  0.000000369852        2.806E-07  0.0000002767575
-      11>  0.0000007447904       5.65E-07   0.0000005573212
-      12>  0.000001499824        1.138E-06  0.000001122307
-      13>  0.000003020274        2.291E-06  0.000002260049
-      14>  0.000006082086        4.614E-06  0.00000455118
-      15>  0.00001224782         9.291E-06  0.000009164951
-      16>  0.00002466407         1.871E-05  0.00001845594
-      17>  0.00004966735         3.768E-05  0.00003716571
-      18>  0.0001000177          7.587E-05  0.00007484254
-      19>  0.000201411           0.0001528  0.0001507144
-      20>  0.0004055919          0.0003077  0.0003035015
-      21>  0.0008167619          0.0006196  0.0006111769
-      22>  0.001644756           0.0012477  0.001230759
-      23>  0.003312133           0.0025125  0.002478445
-      24>  0.006669816           0.0050596  0.004990974
-      25>  0.01343142            0.0101889  0.01005062
-      26>  0.02704768            0.020518   0.02023955
-      27>  0.05446739            0.0413181  0.04075754
-      28>  0.1096839             0.0832044  0.08207565
-      29>  0.2208762             0.1675531  0.1652801
-      30>  0.44479               0.3374103  0.3328331
-      31>  0.8956969             0.679461   0.6702434
-      32>  1.803712              1.368287   1.349704
-      33>  3.63227               2.098144   2.717991
-      34>  6                     2.683865   4.816135
-      35>  9                     3.5        7.5
-      36>  13                    4.5        11
-      37>  18                    6          15.5
-      38>  25                    8.5        21.5
-      39>  35                    12.5       30
-      40>  50                    17.5       42.5
-      41>  70                    25         60
-      42>  100                   35         85
-      43>  140                   50         120
-      44>  200                   70         170
-      45>  280                   100        240
-      46>  400                   142.5      340
-      47>  565                   200        482.5
-      48>  800                   267.5      682.5
-      49>  1100                  300        950
-      50>  1400                  300        1250
- 
- 
-! err601_check_missing_3arg.jnl
-! see bug 1485, check on missing coordinates for 3-argument graphics
-GO bn_reset
-cancel mode verify
-GO err601_check_missing_3arg.jnl
-! err601_check_missing_3arg.jnl
-! see bug 1485: if missing coordinates in a curvilinear dataset, we should be
-! able to still plot other portions of the data. Check was too broad.
- 
-! Create a dataset in curvilinear coordinates with a few missing coordinates.
-use tripolar_subset
-let lon = IF geolon_vert_t gt -276 then geolon_vert_t
-let lat = geolat_vert_t
-save/clobber/file=tripolar_missing_lon.nc lon, lat, ht
-can data/all
-can var/all
- 
-! Use this data. If we just look at /I=50:100 the plot works ok
-use tripolar_missing_lon
-stat/i=50:100 lon
- 
-             IF GEOLON_VERT_T GT -276 THEN GEOLON_VERT_T
-             LONGITUDE: 177E(-183) to 81W(-81)
-             LATITUDE: 71.51N to 90.37N
-             Z:  N/A
-             T:  N/A
-             E:  N/A
-             F:  N/A
-             DATA SET: ./tripolar_missing_lon.nc
- 
- Total # of data points: 1275 (51*25*1*1*1*1)
- # flagged as bad  data: 0
- Minimum value: -181.5
- Maximum value: -83.015
- Mean    value: -121.95 (unweighted average)
- Standard deviation: 24.836
-shade/i=50:100 HT,lon,lat
- 
-! The STAT command loads all the coordinates, then when
-! we plot, the check of coordinates looked at all of them
-! rather than just those needed. (error  was
-! X coordinates missing value where val is needed
- 
-can mem/all
-stat LON, LAT
- 
-             IF GEOLON_VERT_T GT -276 THEN GEOLON_VERT_T
-             LONGITUDE: 79E(-281) to 81E
-             LATITUDE: 71.51N to 90.37N
-             Z:  N/A
-             T:  N/A
-             E:  N/A
-             F:  N/A
-             DATA SET: ./tripolar_missing_lon.nc
- 
- Total # of data points: 4525 (181*25*1*1*1*1)
- # flagged as bad  data: 186
- Minimum value: -275.98
- Maximum value: 80
- Mean    value: -92.341 (unweighted average)
- Standard deviation: 106.62
- 
-             GEOLAT_VERT_T
-             LONGITUDE: 79E(-281) to 81E
-             LATITUDE: 71.51N to 90.37N
-             Z:  N/A
-             T:  N/A
-             E:  N/A
-             F:  N/A
-             DATA SET: ./tripolar_missing_lon.nc
- 
- Total # of data points: 4525 (181*25*1*1*1*1)
- # flagged as bad  data: 0
- Minimum value: 64.383
- Maximum value: 90
- Mean    value: 74.619 (unweighted average)
- Standard deviation: 5.9864
-shade/i=50:100 HT,lon,lat
- 
-sp rm -f tripolar_missing_lon.nc
- 
- 
-! err601_missing_string_element.jnl
-! Bug 1488; Seg fault when try to list a string variable
-!  when the last element is missing.
-GO bn_reset
-cancel mode verify
-GO err601_missing_string_element.jnl
-! err601_missing_string_element.jnl
-!  Bug 1488. Seg fault when try to list a string variable
-!  when the last element is missing.
- 
-let a = {"a", "b",  }
-list a
-             VARIABLE : {"a", "b",  }
-             SUBSET   : 3 points (X)
- 1   / 1:"a"
- 2   / 2:"b"
- 3   / 3:"" 
- 
- 
- 
-! ******** V6.03 Additions below ***********
-GO bn_reset
-cancel mode verify
-GO bn_modnbd.jnl
-! Test MODNBD regridding statistic.
- 
-use gtsa056_2.cdf
-!use climatological_axes
-!cancel data climatological_axes
- 
-set region/x=140/y=1/k=1
- 
-! What is the total number of possible data going into each month avg?
-let nomiss = missing(temp,30)
-list nomiss[gt=month_reg at MODNGD]
-             VARIABLE : MISSING(TEMP,30) (# of points)
-                        regrid: 730 hour on T at MODNGD
-             FILENAME : gtsa056_2.cdf
-             SUBSET   : 12 points (TIME)
-             LONGITUDE: 139.5E
-             LATITUDE : 0.833N
-             DEPTH (m): 5
-                    139.5E 
-                     10
- 16-JAN      /  1:  16.00
- 15-FEB      /  2:  20.00
- 17-MAR      /  3:  20.00
- 16-APR      /  4:  20.00
- 16-MAY      /  5:  20.00
- 16-JUN      /  6:  12.00
- 16-JUL      /  7:  10.00
- 16-AUG      /  8:  10.00
- 15-SEP      /  9:  10.00
- 16-OCT      / 10:  10.00
- 15-NOV      / 11:  10.00
- 16-DEC      / 12:  10.00
- 
-! Define a new var with some missing data. See what MODNGD and MODNBD
-! are, and check that the sum is the same as the number of pts in each
-! month in the no-missing-data variable
- 
-let var = if temp gt 29.5 then temp
-list var[gt=month_reg at MODNGD], var[gt=month_reg at MODNBD], var[gt=month_reg at MODNGD]+var[gt=month_reg at MODNBD], nomiss[gt=month_reg at MODNGD]
-             DATA SET: ./gtsa056_2.cdf
-             TIME: JAN to DEC
-             LONGITUDE: 139.5E
-             LATITUDE: 0.833N
-             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)
- Column  3: EX#3 is VAR[GT=MONTH_REG at MODNGD]+VAR[GT=MONTH_REG at MODNBD]
- Column  4: NOMISS[G=730 hour on T at MODNGD] is MISSING(TEMP,30) (# of points)(regrid: 730 hour on T at MODNGD)
-                    VAR    VAR   EX#3  NOMISS
-16-JAN      /  1:  10.00   6.00  16.00  16.00
-15-FEB      /  2:   2.00  18.00  20.00  20.00
-17-MAR      /  3:  18.00   2.00  20.00  20.00
-16-APR      /  4:  20.00   0.00  20.00  20.00
-16-MAY      /  5:  20.00   0.00  20.00  20.00
-16-JUN      /  6:  12.00   0.00  12.00  12.00
-16-JUL      /  7:   7.00   3.00  10.00  10.00
-16-AUG      /  8:   0.00  10.00  10.00  10.00
-15-SEP      /  9:   8.00   2.00  10.00  10.00
-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
- 
-GO bn_reset
-cancel mode verify
-GO bn_fifty_files.jnl
-! bn_fifty_files.jnl
-! We build OPeNDAP so that 100 files can be opened at a time.
-! Test with fifty.
- 
-set mode ignore_error
- 
-use 123456789000101_100101_test_numeric.nc
-use a1478.nc
-use a_cartesian_bug1179.nc
-use adouble_2D.nc
-use adouble.nc
-use b1478.nc
-use bad_taxis.nc
-use bounds_noenclose.nc
-use dstitle.nc
-use err542_poly_over_calendar.nc
-use err600_upcase.nc
-use err_calendar.nc
-use gappy_bounds.nc
-use illeg_axname.nc
-use longtitle1000.nc
-use missing_scale_off.nc
-use modfalse.nc
-use modulo_lon_time.nc
-use mylon.nc
-use nan_missing.nc
-use noglobalhistory.nc
-use ss_small.nc
-use sstnok_short.nc
-use sstok_short.nc
-use test0.nc
-use test_nan.nc
-use time_axis_seconds.nc
-use tripolar_subset.nc
-use varyscale_1.nc
-use varyscale_2.nc
-use xz_nozattrib.nc
-use z_wide_variation.nc
-use bn_strides.cdf
-use clim_airt_lev.cdf
-use climatological_axes.cdf
-use coads_climatology.cdf
-use coads_vwnd.cdf
-use err491_attval.cdf
-use geo_borders.cdf
-use gt4d011.cdf
-use gtbc011.cdf
-use gtsa056_1.cdf
-use gtsa056_2.cdf
-use levitus_climatology.cdf
-use non_COARDS.cdf
-use ocean_atlas_temp.cdf
-use reverse_axes.cdf
-use TAO_SST_clim.cdf
-use epic_formatted_file.nc
-use weird_name1.cdf
- 
-cancel mode ignore_error
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn603_bug_fixes
-! bn603_bug_fixes.jnl
-! test various fixes that went into version 6.03
-! 11-May-2006 ACM
- 
-! Fix for bug 904
-! SHADE/LEV did not keep same levels after a SHADE/LINE
-GO bn_reset
-cancel mode verify
-GO err602_shade_line_lev.jnl
-! err602_shade_line_lev.jnl
-! Bug 904.
-! SHADE/LEV does not keep same levels after a SHADE/LINE
-! Was due to fact that SHADE/LINE makes PPL SHADE  call
-! followed by PPL CONTOUR/OVER call, but without indicating
-! that the same contour levels should be used.
- 
-! Note that SHOW SYM LEV* indicates that the SHADE/LINE/KEY changes the levels.
- 
-let a = {1,1}* ysequence({-.29,1.09})
-set view ul; shade/key a; sh sym lev*
-LEV_TEXT = "(-5,30,1)"
-LEV_MIN = "-0.3"
-LEV_MAX = "1.1"
-LEV_NUM = "28"
-LEV_DEL = "0.05"
-set view ur; shade/lev a; sh sym lev*
-LEV_TEXT = ""
-LEV_MIN = "-0.3"
-LEV_MAX = "1.1"
-LEV_NUM = "28"
-LEV_DEL = "0.05"
-set view ll; shade/line/key a; sh sym lev*
-LEV_TEXT = ""
-LEV_MIN = "-0.3"
-LEV_MAX = "1.1"
-LEV_NUM = "28"
-LEV_DEL = "0.05"
-set view lr; shade/lev a; sh sym lev*
-LEV_TEXT = ""
-LEV_MIN = "-0.3"
-LEV_MAX = "1.1"
-LEV_NUM = "28"
-LEV_DEL = "0.05"
- 
-! Fix for bug 1302
-! Draw correct SHADE and FILL plots across the modulo branch cut.
-GO bn_reset
-cancel mode verify
-GO err602_curvi_modulo_cut
-! err602_curvi_modulo_cut.jnl
-! 5/07  bug 1302
-!
-! For the curvilinear modulo forms of SHADE and FILL, there appears to
-! be some inconsistency in plotting across the modulo cut.  SHADE omits
-! the half-cells that ought to touch the modulo cut.  FILL looks like
-! it's tryingto interpolate across the cut, but something's wrong.
- 
-! Note this needs an update to tripolar_subset.nc to add some
-! coordinate center locations.
- 
-use tripolar_subset.nc
-set view upper
-shade/hlim=75:85/vlim=-10:0/mod/pal=rnb2 0*u+mod(i+j,2),geolon_c,geolat_c
-set view lower
-fill/hlim=75:85/vlim=-10:0/mod u,geolon_c,geolat_c
- 
-! Fix for bug 1388
-! SET LIST/PREC worked for multi-var listings, LIST/PREC= var1,var2 did not
-GO bn_reset
-cancel mode verify
-GO err602_list_prec
-! err602_list_prec.jnl
-! fixes for bug 1388: SET LIST/PREC worked for multi-variable listings,
-! but LIST/PRECISION= did not.
- 
-use gt4d011.cdf
- 
-! Here is a listing with default precision
-LIST/NOHEAD/I=91:94/J=37/K=1/L=1 temp,salt
-139.5W / 91:  27.29  2.370E-04
-138.5W / 92:  27.25  2.380E-04
-137.5W / 93:  27.24  2.383E-04
-136.5W / 94:  27.18  2.380E-04
- 
-! Previously this did not have the effect of changing the precision.
-LIST/NOHEAD/I=91:94/J=37/K=1/L=1/PREC=3 temp,salt
-139.5W / 91:  27.3  2.37E-04
-138.5W / 92:  27.3  2.38E-04
-137.5W / 93:  27.2  2.38E-04
-136.5W / 94:  27.2  2.38E-04
- 
-! This has always worked
-SET LIST/PREC=7
-LIST/NOHEAD/I=91:94/J=37/K=1/L=1 temp,salt
-139.5W / 91:  27.29276  2.369705E-04
-138.5W / 92:  27.25388  2.379802E-04
-137.5W / 93:  27.23906  2.382890E-04
-136.5W / 94:  27.17807  2.380348E-04
- 
-! This should override the SET LIST/PREC setting
-LIST/NOHEAD/I=91:94/J=37/K=1/L=1/PREC=2 TEMP,SALT
-139.5W / 91:  27.  2.4E-04
-138.5W / 92:  27.  2.4E-04
-137.5W / 93:  27.  2.4E-04
-136.5W / 94:  27.  2.4E-04
- 
-! And then things should go back to the SET LIST/PREC setting
-LIST/NOHEAD/I=91:94/J=37/K=1/L=1 TEMP,SALT
-139.5W / 91:  27.29276  2.369705E-04
-138.5W / 92:  27.25388  2.379802E-04
-137.5W / 93:  27.23906  2.382890E-04
-136.5W / 94:  27.17807  2.380348E-04
- 
- 
-! ******** V6.05 Additions below ***********
- 
-GO bn_reset
-cancel mode verify
-GO bn_set_var_name.jnl
-! bn_set_var_name.jnl
-! This has been in Ferret since v5.3 but never a benchmark test of it!
-! ACM 8/2007
- 
-USE coads_climatology
- 
-! Use SET VAR/NAME= to give a variable from the file a new name.
-SET VAR/NAME=my_sst sst
-SHOW DATA
-     currently SET data sets:
-    1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- MY_SST   SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
- 
- 
-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.
-LIST/X=179:183/Y=40/L=3 my_sst
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 points (LONGITUDE)
-             LATITUDE : 39N
-             TIME     : MAR
-                 39N     
-                  65
- 179E   / 80:  11.89756
- 179W   / 81:  12.11905
- 177W   / 82:  12.07976
- 
-! Now use a LET command to "fix" the data in any way we wish
-! Give it the original name, and now it has the new characteristics
-! but the old name.
- 
-LET sst = 3*my_sst
-LIST/X=179:183/Y=40/L=3 sst
-             VARIABLE : 3*MY_SST
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 points (LONGITUDE)
-             LATITUDE : 39N
-             TIME     : MAR
-                 39N     
-                  65
- 179E   / 80:  35.69268
- 179W   / 81:  36.35714
- 177W   / 82:  36.23927
- 
- 
-GO bn_reset
-cancel mode verify
-! This routine executes a ppl error which exits us from Ferret
-! when run in the benchmark suite. Should test this, but dont do it
-! here, for now.
-!GO bn_ppl_errors.jnl
- 
-GO bn_reset
-cancel mode verify
-GO bn_memory_symbol
-! bn_memory_symbol.jnl
-! Ferret v6.06 15-Aug-07
-! Symbol FERRET_MEMORY shows current size of Ferret memory in MWords
- 
-sh sym ferret_memory
-FERRET_MEMORY = "25.6"
- 
-set mem/siz=90
-sh sym ferret_memory
-FERRET_MEMORY = "90"
-show memory
- Current size of FERRET memory cache: 90 MegaWords  (1 word = 4 bytes)
- 
-set mem/size=0.05
-sh sym ferret_memory
-FERRET_MEMORY = "0.2"
- 
-set mem/siz=500000  ! too large to allow
-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 = 4 bytes)
- 
-GO bn_reset
-cancel mode verify
-GO bn605_bug_fixes
-! bn604_bug_fixes.jnl
-! test various fixes that went into version 6.05
-! 27-July-2007 ACM
- 
-! Fix for Bug 1524: irregular axis detected as REGULAR
-GO bn_reset
-cancel mode verify
-GO err604_irreg_axis.jnl
-! Bug 1524: irregular axis detected as REGULAR!
- 
-!use climatological_axes
-sh ax 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)
-list t[gt=month_irreg], tbox[gt=month_irreg]
-             TIME: JAN to DEC
- Column  1: T is T (axis MONTH_IRREG)
- Column  2: TBOX is TBOX (axis MONTH_IRREG)
-                            T     TBOX
-16-JAN 12      /  1:   15.5000  31.00000
-15-FEB 02      /  2:   45.1213  28.24250
-15-MAR 17      /  3:   74.7425  31.00000
-15-APR 05      /  4:  105.2425  30.00000
-15-MAY 17      /  5:  135.7425  31.00000
-15-JUN 05      /  6:  166.2425  30.00000
-15-JUL 17      /  7:  196.7425  31.00000
-15-AUG 17      /  8:  227.7425  31.00000
-15-SEP 05      /  9:  258.2425  30.00000
-15-OCT 17      / 10:  288.7425  31.00000
-15-NOV 05      / 11:  319.2425  30.00000
-15-DEC 17      / 12:  349.7425  31.00000
- 
- 
-! SHOW FUNCTIONS caused a crash or a message
-GO bn_reset
-cancel mode verify
-GO err605_show_func.jnl
-! err605_show_func.jnl
-! Reported by Andrew W.
-! SHOW FUNCTIONS caused a crash on his system; I see it only as a message
-! in SHOW FUNC/BRIEF
- 
-SHOW FUNCTION/BRIEF
-Functions internal to Ferret:
-EXP(X)
-LOG(X)
-MAX(A,B)
-MIN(A,B)
-INT(X)
-ABS(X)
-SIN(theta)
-COS(theta)
-TAN(theta)
-LN(X)
-MOD(A,B)
-MISSING(A,B)
-IGNORE0(X)
-ATAN(X)
-ATAN2(A,B)
-ASIN(X)
-ACOS(X)
-RANDU(A)
-RANDN(A)
-RHO_UN(salt,temp,p)
-THETA_FO(salt,temp,p,ref)
-DAYS1900(year,month,day)
-RANDU2(A,ISEED)
-RANDN2(A,ISEED)
-XSEQUENCE(VAR)
-ECHO(STR,NUM)
-RESHAPE(A,B)
-ZAXREPLACE(V,ZVALS,ZAX)
-YSEQUENCE(VAR)
-ZSEQUENCE(VAR)
-TSEQUENCE(VAR)
-ESEQUENCE(VAR)
-FSEQUENCE(VAR)
-SAMPLEI(TO_BE_SAMPLED,X_INDICES)
-SAMPLEJ(TO_BE_SAMPLED,Y_INDICES)
-SAMPLEK(TO_BE_SAMPLED,Z_INDICES)
-SAMPLEL(TO_BE_SAMPLED,T_INDICES)
-SAMPLEM(TO_BE_SAMPLED,E_INDICES)
-SAMPLEN(TO_BE_SAMPLED,F_INDICES)
-SPAWN(STR)
-STRCMP(STR1,STR2)
-STRLEN(STR)
-UPCASE(STR)
-STRINDEX(STR1,SUBSTR)
-STRRINDEX(STR1,SUBSTR)
-DNCASE(STR)
-STRCAT(STR1,STR2)
-SUBSTRING(STR,OFFSET,LENGTH)
-STRFLOAT(STR)
- 
-Externally defined functions available to Ferret:
-AVE_SCAT2GRID_T(TPTS,VPTS,TAXIS)
-BIN_INDEX_WT(INDEX,WT,INDXMAX)
-COMPRESSI(DAT)
-COMPRESSI_BY(dat,mask)
-COMPRESSJ(DAT)
-COMPRESSJ_BY(dat,mask)
-COMPRESSK(DAT)
-COMPRESSK_BY(dat,mask)
-COMPRESSL(DAT)
-COMPRESSL_BY(dat,mask)
-COMPRESSM(DAT)
-COMPRESSM_BY(dat,mask)
-COMPRESSN(DAT)
-COMPRESSN_BY(dat,mask)
-CONVOLVEI(COM,WEIGHT)
-CONVOLVEJ(COM,WEIGHT)
-CONVOLVEK(COM,WEIGHT)
-CONVOLVEL(COM,WEIGHT)
-CONVOLVEM(COM,WEIGHT)
-CONVOLVEN(COM,WEIGHT)
-CURV_RANGE(LONGITUDES,LATITUDES,xrange_lo,xrange_hi,yrange_lo,yrange_hi,modulo flag for X coordinates)
-CURV_TO_RECT(V,mapping)
-CURV_TO_RECT_MAP(lon_in,lat_in,grid_out,radius)
-DATE1900(formatted date)
-DAYS1900TOYMDHMS(day1900)
-ECAT(A,B)
-ECAT_STR(A,B)
-ELEMENT_INDEX(VAR,VALUES)
-ELEMENT_INDEX_STR(VAR,STRINGS)
-ELEMENT_INDEX_STR_N(VAR,STRINGS)
-EOF_SPACE(A,frac_timeser)
-EOF_STAT(A,frac_timeser)
-EOF_TFUNC(A,frac_timeser)
-EREVERSE(A)
-EXPNDI_BY(dat,mask,outsize)
-EXPNDI_BY_T(dat,mask,n_profiles,max_profile_len)
-EXPNDI_BY_Z(dat,mask,n_profiles,max_profile_len)
-FCAT(A,B)
-FCAT_STR(A,B)
-FFTA(A)
-FFT_IM(A)
-FFT_INVERSE(A,B)
-FFTP(A)
-FFT_RE(A)
-FILL_XY(DATA,MASK,N)
-FINDHI(A,XRANGE,YRANGE)
-FINDLO(A,XRANGE,YRANGE)
-FLOATSTR(A,FMT)
-FREVERSE(A)
-IS_ELEMENT_OF(VAR,VALUES)
-IS_ELEMENT_OF_STR(VAR,VALUES)
-IS_ELEMENT_OF_STR_N(VAR,VALUES)
-LABWID(STR,HT)
-LANCZOS(A,F1,F2,N)
-LIST_VALUE_XML(tag,value,cdata_flag,outputfile)
-LSL_LOWPASS(A,cutoff_period,filter_span)
-MINMAX(A)
-MINUTES24(formatted time)
-NCO(operator,arguments)
-NCO_ATTR(FileName,VariableName,AttributeName,AttType,Mode,AttributeValue)
-PT_IN_POLY(A,XVERT,YVERT)
-RECT_TO_CURV(V,lon_bounds_out,lat_bounds_out,missing_allowed)
-SAMPLEIJ(DAT_TO_SAMPLE,XPTS,YPTS)
-SAMPLEI_MULTI(I_INDICES,DAT_TO_SAMPLE)
-SAMPLEJ_MULTI(J_INDICES,DAT_TO_SAMPLE)
-SAMPLEK_MULTI(K_INDICES,DAT_TO_SAMPLE)
-SAMPLEL_MULTI(L_INDICES,DAT_TO_SAMPLE)
-SAMPLET_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
-SAMPLEXY(DAT_TO_SAMPLE,XPTS,YPTS)
-SAMPLEXY_CLOSEST(DAT_TO_SAMPLE,XPTS,YPTS)
-SAMPLEXY_CURV(DAT_TO_SAMPLE,DAT_LON,DAT_LAT,XPTS,YPTS)
-SAMPLEXY_CURV_AVG(DAT_TO_SAMPLE,DAT_LON,DAT_LAT,XPTS,YPTS)
-SAMPLEXY_CURV_NRST(DAT_TO_SAMPLE,DAT_LON,DAT_LAT,XPTS,YPTS)
-SAMPLEXYT(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
-SAMPLEXZ(DAT_TO_SAMPLE,XPTS,ZPTS)
-SAMPLEYZ(DAT_TO_SAMPLE,YPTS,ZPTS)
-SCAT2DDUPS(coord 1,coord 2,epsilon 1,epsilon 2)
-SCAT2GRID_BIN_XY(XPTS,YPTS,F,XAXPTS,YAXPTS)
-SCAT2GRID_BIN_XYT(XPTS,YPTS,TPTS,F,XAXPTS,YAXPTS,TAXPTS)
-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)
-SCAT2GRIDGAUSS_XY_V0(XPTS,YPTS,F,XAXPTS,YAXPTS,XSCALE,YSCALE,CUTOFF,0)
-SCAT2GRIDGAUSS_XZ(XPTS,ZPTS,F,XAXPTS,ZAXPTS,XSCALE,ZSCALE,CUTOFF,0)
-SCAT2GRIDGAUSS_XZ_V0(XPTS,ZPTS,F,XAXPTS,ZAXPTS,XSCALE,ZSCALE,CUTOFF,0)
-SCAT2GRIDGAUSS_YT(YPTS,TPTS,F,YAXPTS,TAXPTS,YSCALE,TSCALE,CUTOFF,0)
-SCAT2GRIDGAUSS_YT_V0(YPTS,TPTS,F,YAXPTS,TAXPTS,YSCALE,TSCALE,CUTOFF,0)
-SCAT2GRIDGAUSS_YZ(YPTS,ZPTS,F,YAXPTS,ZAXPTS,YSCALE,ZSCALE,CUTOFF,0)
-SCAT2GRIDGAUSS_YZ_V0(YPTS,ZPTS,F,YAXPTS,ZAXPTS,YSCALE,ZSCALE,CUTOFF,0)
-SCAT2GRIDGAUSS_ZT(ZPTS,TPTS,F,ZAXPTS,TAXPTS,ZSCALE,TSCALE,CUTOFF,0)
-SCAT2GRIDGAUSS_ZT_V0(ZPTS,TPTS,F,ZAXPTS,TAXPTS,ZSCALE,TSCALE,CUTOFF,0)
-SCAT2GRIDLAPLACE_XT(XPTS,TPTS,F,XAXPTS,TAXPTS,KAY,NRNG)
-SCAT2GRIDLAPLACE_XY(XPTS,YPTS,F,XAXPTS,YAXPTS,KAY,NRNG)
-SCAT2GRIDLAPLACE_XZ(XPTS,ZPTS,F,XAXPTS,ZAXPTS,KAY,NRNG)
-SCAT2GRIDLAPLACE_YT(YPTS,TPTS,F,YAXPTS,TAXPTS,KAY,NRNG)
-SCAT2GRIDLAPLACE_YZ(YPTS,ZPTS,F,YAXPTS,ZAXPTS,KAY,NRNG)
-SCAT2GRIDLAPLACE_ZT(ZPTS,TPTS,F,ZAXPTS,TAXPTS,KAY,NRNG)
-SCAT2GRID_NBIN_XY(XPTS,YPTS,F,XAXPTS,YAXPTS)
-SCAT2GRID_NBIN_XYT(XPTS,YPTS,TPTS,F,XAXPTS,YAXPTS,TAXPTS)
-SCAT2GRID_NOBS_XY(XPTS,YPTS,XAXPTS,YAXPTS)
-SCAT2GRID_NOBS_XYT(XPTS,YPTS,TPTS,XAXPTS,YAXPTS,TAXPTS)
-SCAT2GRID_T(TPTS,TAXIS)
-SORTI(DAT)
-SORTI_STR(STR)
-SORTJ(DAT)
-SORTJ_STR(STR)
-SORTK(DAT)
-SORTK_STR(STR)
-SORTL(DAT)
-SORTL_STR(STR)
-SORTM(DAT)
-SORTM_STR(STR)
-SORTN(DAT)
-SORTN_STR(STR)
-TAUTO_COR(A)
-TAX_DATESTRING(A,B,C)
-TAX_DAY(A,B)
-TAX_DAYFRAC(A,B)
-TAX_JDAY(A,B)
-TAX_JDAY1900(A,B)
-TAX_MONTH(A,B)
-TAX_TIMES(A)
-TAX_TSTEP(A,B)
-TAX_UNITS(A)
-TAX_YEAR(A,B)
-TAX_YEARFRAC(A,B)
-TCAT(A,B)
-TCAT_STR(A,B)
-TEST_OPENDAP(url)
-TRANSPOSE_XT(VAR)
-TRANSPOSE_XY(VAR)
-TRANSPOSE_XZ(VAR)
-TRANSPOSE_YT(VAR)
-TRANSPOSE_YZ(VAR)
-TRANSPOSE_ZT(VAR)
-TREVERSE(A)
-UNIQUE_STR2INT(A)
-WRITE_WEBROW(id,name,Cruise_Mask,filename)
-XAUTO_COR(A)
-XCAT(A,B)
-XCAT_STR(A,B)
-XREVERSE(A)
-YCAT(A,B)
-YCAT_STR(A,B)
-YREVERSE(A)
-ZAXREPLACE_AVG(V,ZVALS,ZAX)
-ZAXREPLACE_BIN(V,ZVALS,ZAX)
-ZAXREPLACE_REV(ZVALS,V,ZAX)
-ZAXREPLACE_ZLEV(V,THICKNESS,ZAX)
-ZCAT(A,B)
-ZCAT_STR(A,B)
-ZREVERSE(A)
-EOFSVD_SPACE(A)
-EOFSVD_STAT(A)
-EOFSVD_TFUNC(A)
-EXPND_BY_LEN(var,len,nx)
-EXPND_BY_LEN_STR(var,len,nx)
-FC_ISUBSET(index_list,lengths,nx,FullData)
-EXPNDI_BY_Z_COUNTS(dat,counts,max_profile_len)
-EXPNDI_ID_BY_Z_COUNTS(counts,max profile len)
-STR_MASK(STRING,MASK,--)
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn608_bug_fixes
-! bn608_bug_fixes
-! test various fixes that went into version 6.08
-! 24-Sep ACM
- 
-! Fix for Bug 1539: SHOW VAR/XML
-GO bn_reset
-cancel mode verify
-GO err607_show_var_xml
-! Bug 1539 SHOW VAR/XML didnt show all vars.
- 
- 
-use gt4d011.cdf
-use coads_climatology
- 
-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]
-let sst_final=sst_2_regrid[d=2,gxy=temp_1_regrid[d=1]]
- 
-! This shows all 3 vars
-show var
- Created by DEFINE VARIABLE:
- >>> Definitions that replace any file variable of same name:
-     SST_FINAL = SST_2_REGRID[D=2,GXY=TEMP_1_REGRID[D=1]]
-     SST_2_REGRID = SST[D=2,T="15-Feb":"15-Mar"@AVE]
-     TEMP_1_REGRID = TEMP[D=1,Z=5.00:75.00 at AVE]
- 
-! But this showed only sst_final and sst_2_regrid (twice)
-show var/xml
-<global>
-<var name="SST_FINAL">
-<attribute name="definition" type="char">
-   <value><![CDATA[SST_2_REGRID[D=2,GXY=TEMP_1_REGRID[D=1]]]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<grid name="(G103)">
-<axes>
-<xaxis>PSXT1</xaxis>
-<yaxis>PSYT1</yaxis>
-</axes>
-</grid>
-</var>
-<var name="SST_2_REGRID">
-<attribute name="definition" type="char">
-   <value><![CDATA[SST[D=2,T="15-Feb":"15-Mar"@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>
-<var name="TEMP_1_REGRID">
-<attribute name="definition" type="char">
-   <value><![CDATA[TEMP[D=1,Z=5.00:75.00 at AVE]]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<grid name="PS3DT2">
-<axes>
-<xaxis>PSXT1</xaxis>
-<yaxis>PSYT1</yaxis>
-<taxis>TIME11</taxis>
-</axes>
-</grid>
-</var>
-</global>
- 
-! err607_set_new_history_att
-GO bn_reset
-cancel mode verify
-GO err607_set_new_history_att
-! err607_set_new_history_att.jnl
-! Previously if we set a history attribute on a user-defined variable that
-! was based on a dataset variable, the default history attribute, From dataset
-! was always written. Now if we define our own, that is what is written.
- 
-use coads_climatology.cdf
-let var = sst
-def att/output var.history = "from Sea Surface Temperature, coads_climatology.cdf"
-save/file=a.nc/clobber/x=180:200/y=1 var
- 
-can data/all
-use a.nc
-show data
-     currently SET data sets:
-    1> ./a.nc  (default)
- name     title                             I         J         K         L         M         N
- VAR      SST                              1:10      1:1       ...       1:3       ...       ...
- 
-show att/all var
-     attributes for user-defined variables
- var.long_name = SST 
- var.missing_value = -1.E+34
- var.history = from Sea Surface Temperature, coads_climatology.cdf 
- 
-! Symbols YAXIS_MIN, YAXIS_MAX were 0 when values small
-GO bn_reset
-cancel mode verify
-GO err607_axis_minmax_syms
-! Bug 1542
-! Symbols YAXIS_MIN, YAXIS_MAX were 0 when values small
-! Should use scientific notation
- 
-use coads_climatology
-let plotvar = sst[L=1]
-plot/y=35 plotvar/10000; sh sym yax*
-YAXIS_REVERSED = "0"
-YAXL = "4.737"
-YAXIS_MIN = "7.9999998E-04"
-YAXIS_MAX = "2.0999999E-03"
-YAXNAM = "YAX_LEV94"
-plot/y=35 plotvar/10000000; sh sym yax*
-YAXIS_REVERSED = "0"
-YAXL = "4.737"
-YAXIS_MIN = "8.0000001E-07"
-YAXIS_MAX = "2.1000001E-06"
-YAXNAM = "YAX_LEV94"
-plot/y=35 plotvar*10000000; sh sym yax*
-YAXIS_REVERSED = "0"
-YAXL = "4.737"
-YAXIS_MIN = "8.0000000E+07"
-YAXIS_MAX = "2.1000000E+08"
-YAXNAM = "YAX_LEV94"
- 
-def axis/x=0.000004:0.000005/npoints=100 xax
-def axis/y=0.000001:0.000002/npoints=100 yax
-let a = x[gx=xax] + y[gy=yax]
-shade a; sh sym xax*; ; sh sym yax*
-XAXIS_REVERSED = "0"
-XAXIS_MIN = "3.99494949E-06"
-XAXL = "4.737"
-XAXNAME = "XIRREG_SUBSPAN"
-XAXIS_MAX = "5.0050505E-06"
-XAXNAM = "(XAX_LEV9421_380)"
-YAXIS_REVERSED = "0"
-YAXL = "4.737"
-YAXIS_MIN = "9.94949495E-07"
-YAXIS_MAX = "2.0050505E-06"
-YAXNAM = "YAX_LEV94"
- 
- 
- 
-! Error message for too many contour levels requested
-GO bn_reset
-cancel mode verify
-GO err607_lev_errmsg
-! err607_lev_errmsg.F
-! Make the error message more detailed, saying it is the choice of
-! number of contours that caused the error.
- 
-SET MODE ignore
-SHADE/LEV=300/I=1:100/J=1:100 i+j
- 
-SET MODE/LAST ignore
- 
- 
-! ******** V6.1 Additions below ***********
- 
-GO bn_reset
-cancel mode verify
-GO bn_shade_trim
-! bn_shade_trim.jnl
-! Test new qualifier SHADE/TRIM which trims the region of
-! shade plot as is done by FILL. For LAS scripts which do
-! shade underlay for FILL plots.
- 
-USE ocean_atlas_temp
- 
-! See the region used by FILL
-SET VIEW upper
-FILL temp[L=2,X=180:200,Y=30:44]
-SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.50000"
-XAXIS_MAX = "199.5000"
-YAXIS_MIN = "30.500000"
-YAXIS_MAX = "43.50000"
- 
-! See the larger region used by default for SHADE
-SHADE temp[L=2,X=180:200,y=30:44]
-SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.00000"
-XAXIS_MAX = "200.0000"
-YAXIS_MIN = "30.000000"
-YAXIS_MAX = "44.00000"
- 
-! SHADE/TRIM trims the region as for a FILL plot
-SET VIEW lower
-SHADE/TRIM temp[L=2,X=180:200,y=30:44]
-SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.50000"
-XAXIS_MAX = "199.5000"
-YAXIS_MIN = "30.500000"
-YAXIS_MAX = "43.50000"
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_mode_nlevels
-! bn_mode_nlevels.jnl
-! 3-mar-2008
-! v6.1 MODE NLEVELS (default is 40)
- 
-show mode nlevels
-      MODE            STATE        ARGUMENT
-      NLEVELS          SET              30
-use levitus_climatology
- 
-shade temp
-show sym lev*
-LEV_TEXT = "300"
-LEV_MIN = "-2"
-LEV_MAX = "30"
-LEV_NUM = "32"
-LEV_DEL = "1"
- 
-! Old default value was 10
-set mode nlevels 10
-shade temp
-show sym lev*
-LEV_TEXT = "300"
-LEV_MIN = "-2"
-LEV_MAX = "30"
-LEV_NUM = "16"
-LEV_DEL = "2"
- 
-! set even higher
-set mode nlevels 80
-shade temp
-show sym lev*
-LEV_TEXT = "300"
-LEV_MIN = "-2"
-LEV_MAX = "30"
-LEV_NUM = "64"
-LEV_DEL = "0.5"
- 
-! restore (new) default
-set mode nlevels 40
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn61_bug_fixes
-! bn608_bug_fixes
-! test various fixes that went into version 6.1
-! 2-Jan-2008 ACM
- 
-! Fix for Bug 1556:
-! Error processing parentheses on abstract axis names.
-GO bn_reset
-cancel mode verify
-GO err608_bug1556
-! err608_bug1556.jnl
-! Error processing parentheses on abstract axis names.
-!
-! The file was created with these commands, which MUST BE
-! in a separate Ferret session to see the bug.
-!
-!  use coads_climatology
-!  set axis/stride=20 `sst,return=xaxis`
-!  set axis/stride=10 `sst,return=yaxis`
-!  save/file=err608_bug1556.nc/clobber sst[L=1:2]
- 
-USE err608_bug1556.nc
-SAVE/FILE=a.nc/CLOBBER sst[i=1:5:1,j=1:5:1,l=1:1:1]
- 
-! The error was,
-!      LISTing to file out.nc
-!      **TMAP ERR: error in line definition
-!             file coords dont match variable coords on axis AX0
-!
-! The bug was fixed in cd_axis_outname.F
- 
- 
-! Fix for Bug 1538:
-! Precision of immediate-mode output of negative values
-GO bn_reset
-cancel mode verify
-GO err608_precision_neg_numbers
-! err608_precision_neg_numbers.jnl
-! ACM 1/2/2008
-! Bug 1538, precision of immediate-mode output of negative values
-! Fixed in tm_fmt.F
- 
-! The output from a LIST command is correct:
-LIST/PREC=10 1.23456789e-15
-             VARIABLE : constant
-          1.234567890E-15
- 
-! In immediate mode, output is incorrect, not enough precision:
-SAY `1.23456789e-15`
- !-> MESSAGE/CONTINUE 1.23456789E-15
-1.23456789E-15
-SAY `1.23456789e-15,prec=10`
- !-> MESSAGE/CONTINUE 1.23456789E-15
-1.23456789E-15
- 
- 
-! ******** V6.11 Additions below ***********
-GO bn_reset
-cancel mode verify
-GO bn_test_opendap
-! Test the test_opendap function: returns 0 if successful, or error code if not.
-SET MODE IGNORE
- 
-!! Change to another server, this one not working 3/2012
-!!list test_opendap ("http://iridl.ldeo.columbia.edu/SOURCES/.LEVITUS/.MONTHLY/.temp/dods")
-!!list test_opendap ("http://iridl.ldeo.NOT.columbia.edu/SOURCES/.LEVITUS/.MONTHLY/.temp/dods")
- 
-!! Change to another server, this one not working 8/2012
-list test_opendap ("http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/WOA05nc/monthly/s0112an1.nc")
-             VARIABLE : TEST_OPENDAP ("http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/WOA05nc/monthly/s0112an1.nc")
-             X        : 1
-          0.0000000
-list test_opendap ("http://ferret.pmel.NOT.noaa.gov/thredds/dodsC/data/PMEL/WOA05nc/monthly/s0112an1.nc")
-             VARIABLE : TEST_OPENDAP ("http://ferret.pmel.NOT.noaa.gov/thredds/dodsC/data/PMEL/WOA05nc/monthly/s0112an1.nc")
-             X        : 1
-         -68.00000
- 
- 
-CANCEL MODE IGNORE
- 
-GO bn_reset
-cancel mode verify
-GO bn611_bug_fixes
-! bn611_bug_fixes.jnl
-! Fixes that go into v6.11 release
- 
-GO bn_reset
-cancel mode verify
-GO err61_write_bounds
-! err61_write_bounds.jnl
-! test fixes for bugzilla 1534: write correct bounds
-! when bounds were read in from a netCDF file.
- 
-def ax/x/edges xax={1,2,4,8,9}
-let a = x[gx=xax]
-save/clobber/file=a.nc a
-sp ncdump a.nc >> all_ncdump.out
- 
-! This is the original bug report
-! The bounds attribute was written but the values were bad,
-! shown as _, _ in the netcdf output.
-can var a
-use a.nc
-save/clobber/file=b.nc a
-sp ncdump a.nc >> all_ncdump.out
- 
-! It would also be useful to be able to tell Ferret
-! not to save the bounds at all.
- 
-can data/all
-use a.nc
-can att/output (xax).bounds
-save/clobber/file=b.nc a
-sp ncdump a.nc >> all_ncdump.out
- 
-GO bn_reset
-cancel mode verify
-GO err61_poly_shade_over_noaxes
-! err61_poly_shade_over_noaxes.jnl
-! See bug 1571
- 
-! plot/ax=0,0,0,0 ; poly/over ! redraws the box
- 
-set v ul; plot/ax=0,0,0,0 {0,1}; poly/ov {0,1},{0,1}
-set v ur; plot/set/ax=0,0,0,0 {0,1}; ppl plot; poly/ov {0,1},{0,1}
-set v ll; plot/ax=0,0,0,0 {0,1}; plot/ov {0,1}
-set v lr; plot/set/ax=0,0,0,0 {0,1}; ppl plot; plot/ov {0,1}
-can view
- 
-! shade over polygon
-set view upper; polygon/thick/color=red/palette=blue/axes=0,0,0,0 {1,2,1}, {2,1,0.5}
-shade/over/i=1:2/j=0:2/patt i+j
- 
-set view lower; polygon/thick/color=red/palette=blue/axes=1,1,1,0 {1,2,1}, {2,1,0.5}
-fill/over/i=1:2/j=0:2/patt i+j
-can view
- 
-! Polygon over shade
-set view ul
-use err542_poly_over_calendar.nc
-shade/ax=0,1,1,0 pc
-poly/over/fill/pal=red/line/color=black/title="polygon" {220,240,280,250},{-20,70,40,-30}
- 
-! Polygon over fill
-set view ur
-use gt4d011
-let v1={221,225,232,235}
-let v2={20,80,50,30}
-let v3={10,-3,16,3}
-fill/ax=1,0,0,1 temp[j=@ave,l=1]
-go polymark poly/lev=(-5,30,1)/pal=brown/fill/line=1/nolab/over v1 v2 v3 circle 2
- 
- 
-set view ll
-plot/ax=0,0,1,1/vl=4:-4/hl=4:-4/vs/line/title="there should be just one triangle" {1,2,3,1},{0,2,1,0}
-poly/ov/col=2/pal=yellow {1,2,3,1},{0,2,1,0}
- 
-set view lr
-vector/ax=0,1,1,0/k=1/l=1 u,v
-let v1={221,225,232,235}
-let v2={-3,2,0.5,2}
-let v3={10,-3,16,3}
-go polymark poly/lev=(-5,30,1)/fill/line=1/nolab/over v1 v2 v3 circle 2
- 
- 
-GO bn_reset
-cancel mode verify
-GO err61_context_scalar_strings
-! err61_context_scalar_strings.jnl
-! Bug 1558, first present in Ferret v6.02
-! After SET GRID EZ error was about var not being a scalar.
- 
-say `"a" EQ "a"`
- !-> MESSAGE/CONTINUE 1
-1
-set grid ez
-say `"a" EQ "a"`
- !-> MESSAGE/CONTINUE 1
-1
- 
- 
-GO bn_reset
-cancel mode verify
-GO err61_exit_script
-! Bug 1566 Andrew Wittenberb
-!
-! I discovered this when testing for an error condition, for which I wanted to
-! exit the current script with EXIT/SCRIPT.  It seems that EXIT doesn't always pop
-! the IF..ENDIF stack, resulting in a nesting error upon repeated invocations of
-! the script.
-!
-! Note also how the REPEAT at first works, then fails, then works, then fails, in
-! an alternating pattern.
- 
-!        NOAA/PMEL TMAP
-!        FERRET v6.08
-!        Linux(g77) 2.4.21-32 - 11/13/07
-!         7-Mar-08 18:32
- 
-sp rm -f b1566.jnl
-sp echo if 1 then > b1566.jnl
-sp echo if 1 then >> b1566.jnl
-sp echo exit/script >> b1566.jnl
-sp echo endif >> b1566.jnl
-sp echo endif >> b1566.jnl
-rep/l=1:7 go b1566.jnl
-!-> REPEAT: L=1
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=2
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=3
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=4
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=5
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=6
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=7
-if 1 then
-if 1 then
-exit/script
-rep/l=1:7 go b1566.jnl
-!-> REPEAT: L=1
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=2
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=3
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=4
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=5
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=6
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=7
-if 1 then
-if 1 then
-exit/script
- 
-!!  IFs nested too deep
- 
-rep/l=1:7 go b1566.jnl
-!-> REPEAT: L=1
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=2
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=3
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=4
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=5
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=6
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=7
-if 1 then
-if 1 then
-exit/script
-rep/l=1:7 go b1566.jnl
-!-> REPEAT: L=1
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=2
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=3
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=4
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=5
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=6
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=7
-if 1 then
-if 1 then
-exit/script
- 
- 
- 
-GO bn_reset
-cancel mode verify
-GO err61_new_attr_on_axis
-! err61_new_attr_on_axis.jnl
-! For any var or axis, allow adding an attribute
-! Fix for bug 1574
- 
-use ocean_atlas_temp
-sh dat
-     currently SET data sets:
-    1> ./ocean_atlas_temp.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     Temperature                      1:360     1:180     1:1       1:2       ...       ...
- 
-define att/output (`temp,return=xaxis`).long_name = "Here is a long name for the x axis of TEMP"
- !-> define att/output (XAX_LEV9421_380).long_name = "Here is a long name for the x axis of TEMP"
-save/file=a.nc/clobber/j=50/l=2 temp
-sp ncdump -h a.nc >> all_ncdump.out
- 
-! It is saved even on a subset of the axis
-save/file=a.nc/clobber/i=1:12/j=50/l=2 temp
-sp ncdump -h a.nc >> all_ncdump.out
- 
-DEFINE AXIS/y=-60:60:2/units=deg yaxis
-LET v = y[gy=yaxis]
- 
-DEFINE att/output (yaxis).standard_name = "latitude"
- 
-save/file=a.nc/clobber v
-sp ncdump -h a.nc >> all_ncdump.out
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_varcontext_attributes
-! Examples from bn_attributes, where instead of var.att[specifiers]
-! we use var[specifiers].att  where appropriate.
- 
-!-----
- 
-! SHOW ATTRIBUTE examples
- 
-can data/all
-can var/all
- 
-use ocean_atlas_temp
-use gt4d011
-use levitus_climatology
- 
-sh att temp[d=1].units
-     attributes for dataset: ./ocean_atlas_temp.cdf
- TEMP.units = Deg C 
- 
- 
-! note .[d=1].dimnames does not work
-use coads_climatology
-use gt4d011
- 
-let vnames = ..dimnames[d=1]
-let lnames = ..dimnames[d=2]
-list vnames
-             VARIABLE : ..DIMNAMES[D=ocean_atlas_temp]
-             SUBSET   : 4 points (X)
- 1   / 1:"XAX_LEV9421_380"
- 2   / 2:"YAX_LEV94"      
- 3   / 3:"ZAXLEVIT191_1"  
- 4   / 4:"TIME3"          
-list lnames
-             VARIABLE : ..DIMNAMES[D=gt4d011]
-             SUBSET   : 20 points (X)
- 1    /  1:"PSXT1"     
- 2    /  2:"PSYT1"     
- 3    /  3:"PSYTedges" 
- 4    /  4:"PSZT1"     
- 5    /  5:"PSZTedges" 
- 6    /  6:"TIME11"    
- 7    /  7:"PSXT91_108"
- 8    /  8:"PSYT35_56" 
- 9    /  9:"PSZT1_10"  
- 10   / 10:"PSYT35_55" 
- 11   / 11:"PSXU"      
- 12   / 12:"PSYU"      
- 13   / 13:"PSYUedges" 
- 14   / 14:"PSXU91_108"
- 15   / 15:"PSYU35_55" 
- 16   / 16:"PSZW"      
- 17   / 17:"PSZWedges" 
- 18   / 18:"PSYT36_55" 
- 19   / 19:"PSZW1_10"  
- 20   / 20:"PSYU35_56" 
- 
-go bn_reset
-cancel mode verify
- 
- 
-!-----
-! more on number of attributes
- 
-use levitus_climatology
-use ocean_atlas_temp
-let nat = temp.nattrs
-list nat
-             VARIABLE : TEMP.NATTRS
-             FILENAME : ocean_atlas_temp.cdf
-          5.000000
- 
-list (`temp,return=xaxis`)[d=2].nattrs
- !-> list (XAX_LEV9421_380)[d=2].nattrs
-             VARIABLE : (XAX_LEV9421_380)[d=ocean_atlas_temp].NATTRS
-             FILENAME : ocean_atlas_temp.cdf
-          4.000000
- 
-use gt4d011
-say `temp[d=1].nattrs`
- !-> MESSAGE/CONTINUE 5
-5
- 
-def sym xaxnam  "(`temp[d=1],return=xaxis`)"
- !-> def sym xaxnam  "(XAXLEVITR1_160)"
-def sym yaxnam  "(`temp[d=1],return=yaxis`)"
- !-> def sym yaxnam  "(YAXLEVITR1_90)"
-list `($xaxnam)[d=1].nattrs`
- !-> list 4
-             VARIABLE : constant
-          4.000000
-say `($yaxnam)[d=1].nattrs`
- !-> MESSAGE/CONTINUE 3
-3
- 
-go bn_reset
-cancel mode verify
- 
-!-----
-! more on access to attribute names and values as variables
- 
-use coads_climatology
-use levitus_climatology
-use ocean_atlas_temp
-use gt4d011
- 
-let a = temp.units
-list/d=3 a
-             VARIABLE : TEMP.UNITS
-             FILENAME : ocean_atlas_temp.cdf
-        "Deg C"
-list temp[d=3].units
-             VARIABLE : TEMP[d=ocean_atlas_temp].UNITS
-             FILENAME : gt4d011.cdf
-        "Deg C"
-list/d=3 temp.history
-             VARIABLE : TEMP.HISTORY
-             FILENAME : ocean_atlas_temp.cdf
-        "From ocean_atlas_monthly"
- 
-can data/all
-can var/all
- 
-use coads_climatology
-! This syntax does not work:
-! list sst[d=1].dimnames[i=2]
- 
-! But this does
-let a = sst[d=1].dimnames
-list a[i=2]
-             VARIABLE : SST[d=coads_climatology].DIMNAMES
-             FILENAME : coads_climatology.cdf
-             X        : 2
-        "COADSY"
- 
-go bn_reset
-cancel mode verify
- 
-! When the variable context is given in an attribute
-! spec, we want to ignore the information except for the
-! dataset, and just return the attribute of the variable.
- 
-use coads_climatology
-define symbol ferret_plot_var sst[x=30:39,y=-90:90]
-list ($ferret_plot_var).long_name
- !-> list sst[x=30:39,y=-90:90].long_name
-             VARIABLE : SST.LONG_NAME
-             FILENAME : coads_climatology.cdf
-        "SEA SURFACE TEMPERATURE"
- 
-use coads_climatology
-define symbol ferret_plot_var sst[d=1,x=30:35,y=-90:90]
-list ($ferret_plot_var).units
- !-> list sst[d=1,x=30:35,y=-90:90].units
-             VARIABLE : SST[d=coads_climatology].UNITS
-             FILENAME : coads_climatology.cdf
-        "Deg C"
- 
-use coads_climatology
-use levitus_climatology
-define symbol ferret_plot_var sst[d=1,x=30:35,y=-90:90]
-list ($ferret_plot_var).history
- !-> list sst[d=1,x=30:35,y=-90:90].history
-             VARIABLE : SST[d=coads_climatology].HISTORY
-             FILENAME : levitus_climatology.cdf
-        "From coads_climatology"
- 
-go bn_reset
-cancel mode verify
- 
-use levitus_climatology
-use coads_climatology
- 
-def sym xaxnam  "(`temp[d=1],return=xaxis`)"
- !-> def sym xaxnam  "(XAXLEVITR1_160)"
-def sym yaxnam  "(`temp[d=1],return=yaxis`)"
- !-> def sym yaxnam  "(YAXLEVITR1_90)"
- 
-list ($xaxnam)[d=1].modulo
- !-> list (XAXLEVITR1_160)[d=1].modulo
-             VARIABLE : (XAXLEVITR1_160)[d=levitus_climatology].MODULO
-             FILENAME : coads_climatology.cdf
-        " "
-list ($yaxnam).point_spacing[d=1]
- !-> list (YAXLEVITR1_90).point_spacing[d=1]
-             VARIABLE : (YAXLEVITR1_90).POINT_SPACING[D=levitus_climatology]
-             FILENAME : levitus_climatology.cdf
-        "even"
- 
- 
-GO bn_reset
-cancel mode verify
-GO err61_show_dat_var_xml
-! err61_show_dat_var_xml.jnl
-! See bug 1580. Intermediate variablels associated with a
-! variable that uses a grid-changing function should be
-! skipped when writing variables by SHOW DATA/VAR/XML
- 
-! Define some varibles as in some of the tests of
-! zaxreplace. Write to files.
- 
-! Define some variables as in some of the benchmark
-! tests of zaxreplace. Write to files.
- 
-LET ddat = ZSEQUENCE({1126,1136,1146,1156,1166})
-LET cycle = ZSEQUENCE({346, 347, 349, 350, 351})
-DEFINE AXIS/Z=10:50:10 zaxis_orig
-LET cycle_orig = cycle[GZ=zaxis_orig at ASN]
-LET ddat_orig = ddat[GZ=zaxis_orig at ASN]
- 
-SAVE/CLOBBER/FILE=z1.nc ddat_orig
-SAVE/CLOBBER/FILE=z2.nc cycle_orig
- 
-! Now use this data and define a user variable
-! associated with datset 2 using ZAXREPLACE
- 
-CAN DAT/ALL; CAN VAR/ALL
-USE z1
-USE z2
-DEFINE AXIS/Z=345:353:1 zaxis_des
-LET dummy = Z[GZ=zaxis_des]
-LET/D=2 ddat_a = ZAXREPLACE(ddat_orig[d=1], cycle_orig[d=2], dummy)
- 
-! Note how there are intermediate variables associated with the
-! regridding operation
- 
-SHOW DATA 2
-     currently SET data sets:
-    2> ./z2.nc  (default)
- name     title                             I         J         K         L         M         N
- CYCLE_ORIG
-          CYCLE[GZ=ZAXIS_ORIG at ASN]         ...       ...       1:5       ...       ...       ...
- ------------------------------
- DDAT_A[D=z2] = ZAXREPLACE(DDAT_ORIG[D=1], CYCLE_ORIG[D=2], DUMMY)
- 
- 
-! Those intermediate variables should be skipped
-! for SHOW DATA/VAR/XML
- 
-SHOW DATA/VAR/XML 2
-<datasets>
-<dataset name="./z2.nc" default="true">
-<title> </title>
-<var name="CYCLE_ORIG">
-<attribute name="long_name" type="char">
-   <value><![CDATA[CYCLE[GZ=ZAXIS_ORIG at ASN]]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<grid name="GIX1">
-<axes>
-<zaxis>ZAXIS_ORIG</zaxis>
-</axes>
-</grid>
-</var>
-<var name="ddat_a">
-<attribute name="definition" type="char">
-   <value><![CDATA[ZAXREPLACE(DDAT_ORIG[D=1], CYCLE_ORIG[D=2], DUMMY)]]></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[ZAXREPLACE(DDAT_ORIG[D=1], CYCLE_ORIG[D=2], DUMMY)]]></value>
-</attribute>
-<grid name="(G103)">
-<axes>
-<zaxis>ZAXIS_DES</zaxis>
-</axes>
-</grid>
-</var>
-</dataset>
-</datasets>
-<axes>
-<axis name="ZAXIS_ORIG">
-<attribute name="direction" type="char">
-   <value><![CDATA[K]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>5</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>10</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>50</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[Z]]></value>
-</attribute>
-<attribute name="standard_name" type="char">
-   <value><![CDATA[altitude]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[ZAXIS_ORIG]]></value>
-</attribute>
-</axis>
-<axis name="ZAXIS_DES">
-<attribute name="direction" type="char">
-   <value><![CDATA[K]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>9</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>345</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>353</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[Z]]></value>
-</attribute>
-</axis>
-</axes>
- 
-GO bn_reset
-cancel mode verify
-GO err61_360_calendar
-! err61_360_calendar.jnl
-!
- 
-! This first has always been ok
-define axis/t=28-feb-1909:07-mar-1909:2/units=days/t0=1-jan-1909/calendar=d360 time
-list t[gt=time]
-             VARIABLE : T
-                        axis TIME
-             SUBSET   : 6 points (TIME)
-             CALENDAR : 360_DAY
- 28-FEB-1909 00 / 1:  57.00000
- 30-FEB-1909 00 / 2:  59.00000
- 02-MAR-1909 00 / 3:  61.00000
- 04-MAR-1909 00 / 4:  63.00000
- 06-MAR-1909 00 / 5:  65.00000
- 08-MAR-1909 00 / 6:  67.00000
- 
-! Should be able to specify 30-feb-1909 for a 360-day calendar but it
-! resulted in an error
-define axis/t=30-feb-1909:07-mar-1909:2/units=days/t0=1-jan-1909/calendar=d360 time
- 
- 
-GO bn_reset
-cancel mode verify
-GO err611_exit_if.jnl
-! err611_exit_if.jnl
-!
-! Bug 1587
-! This only in v6.11 GFDL release bug
-! Fixed in xeq_exit.F
- 
-yes? sp echo if 1 then > a.jnl
-yes? sp echo exit/script >> a.jnl
-yes? sp echo endif >> a.jnl
-yes? sp echo go a > b.jnl
-yes? sp echo say hello >> b.jnl
-yes? go b  !the following fails to say "hello"
-go a
-if 1 then
-exit/script
-say hello
-hello
-go a
-if 1 then
-exit/script
-if 1 then
-exit/script
- 
-GO bn_reset
-cancel mode verify
-GO err611_save_irreg.jnl
-! err611_save_irreg.jnl
-!
-! bug1587
- 
-def axis/t time = {0,1,3}
-let a = t[gt=time]
-save/clob/file=a.nc a
-can var a
-can dat/all
-use a.nc
-save/clob/file=b.nc a
-let b = a
-list b
-             VARIABLE : A
-             FILENAME : a.nc
-             SUBSET   : 3 points (T)
- 0   / 1:  0.000000
- 1   / 2:  1.000000
- 3   / 3:  3.000000
-save/clob/file=b.nc b
- 
- 
-! ******** V6.13 Additions below ***********
-GO bn_reset
-cancel mode verify
-GO bn_no_valid_on_plot
-! bn_no_valid_on_plot.jnl
-! Bug 1038 points out that the No Valid Data label that is
-! put onto 2D plot if there is no good data, is not put onto
-! 1D plots.  Add it to the variable title so it shows up in the key
-!
-! Plot a region where there is no data
-use coads_climatology
-plot/x=56e:100e/y=40 sst[L=1]
-ppl list labels
- @ACSEA SURFACE TEMPERATURE (Deg C) No Valid Data                               
- @ASLONGITUDE                                                                   
- @ASDeg C                                                                       
-
-          XPOS       YPOS     HGT   ROT   UNITS
- LAB 1  0.000E+00  6.800E+00 0.120    0  SYSTEM  @ASLATITUDE : 39N
- LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
- LAB 2  0.000E+00  6.600E+00 0.120    0  SYSTEM  @ASTIME : JAN
- LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
- LAB 3  8.000E+00  6.630E+00 0.120    0  SYSTEM  @ASDATA SET: coads_climatology
- LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
- LAB 4  4.000E+00  6.330E+00 0.120    0  SYSTEM  @A
- LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
- 
-! and now valid data overlaid with all-missing data
- 
-plot/x=56e:100e/y=10 sst[L=1]
-plot/over/x=56e:100e/y=40 sst[L=1]
-ppl list labels
- @ACSEA SURFACE TEMPERATURE (Deg C)                                             
- @ASLONGITUDE                                                                   
- @ASDeg C                                                                       
-
-          XPOS       YPOS     HGT   ROT   UNITS
- LAB 1  0.000E+00  6.800E+00 0.120    0  SYSTEM  @ASLATITUDE : 9N
- LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
- LAB 2  0.000E+00  6.600E+00 0.120    0  SYSTEM  @ASTIME : JAN
- LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
- LAB 3  8.000E+00  6.630E+00 0.120    0  SYSTEM  @ASDATA SET: coads_climatology
- LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
- LAB 4  4.000E+00  6.330E+00 0.120    0  SYSTEM  @A
- LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
- LAB 5 -3.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
-plot/x=56e:100e sst[L=1,y=10], sst[L=1,y=50], sst[L=1,y=20]
-ppl list labels
-                                                                                
- @ASLONGITUDE                                                                   
- @ASDeg C                                                                       
-
-          XPOS       YPOS     HGT   ROT   UNITS
- LAB 1  0.000E+00  6.600E+00 0.120    0  SYSTEM  @ASTIME : JAN
- LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
- LAB 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  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]
- 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
- 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]
- 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
-! the NO VALID DATA across the middle of the plot when there is
-! no data, but allows us to turn this off.
- 
-CANCEL MODE nodata_lab
-SHADE/Y=80:90 sst[L=1]
-FILL/Y=80:90 sst[L=1]
-CONTOUR/Y=80:90 sst[L=1]
- 
-VECTOR/Y=80:90 sst[L=1], sst[L=1]
- 
-SET MODE/last nodata_lab
- 
-GO bn_reset
-cancel mode verify
-GO bn_median
-! Test median smoothing tranform
-! Default length is 3
- 
-use gtsa056_2.cdf
-let var = u[x=180,y=0,k=1,t=1-jan-1982:1-jan-1983]
-plot var, var[t=@med],  var[t=@med:3], var[t=@med:7]
-list/t=1-dec-1982:1-jan-1983 var, var[t=@med],  var[t=@med:3], var[t=@med:7]
-             DATA SET: ./gtsa056_2.cdf
-             TIME: NOV-1982 to JAN-1983
-             LONGITUDE: 180E
-             LATITUDE: 0
-             DEPTH (m): 5
- Column  1: VAR is U[X=180,Y=0,K=1,T=1-JAN-1982:1-JAN-1983]
- Column  2: VAR[T=@MED:3] is U[X=180,Y=0,K=1,T=1-JAN-1982:1-JAN-1983] (median smoothed by 3 pts on T)
- Column  3: VAR[T=@MED:3] is U[X=180,Y=0,K=1,T=1-JAN-1982:1-JAN-1983] (median smoothed by 3 pts on T)
- Column  4: VAR[T=@MED:7] is U[X=180,Y=0,K=1,T=1-JAN-1982:1-JAN-1983] (median smoothed by 7 pts on T)
-                           VAR     VAR       VAR       VAR
-30-NOV-1982 23 / 106: -10.06812 -10.06812 -10.06812 -11.97891
-04-DEC-1982 00 / 107: -13.41848 -13.41848 -13.41848 -10.06812
-07-DEC-1982 01 / 108: -15.06836 -13.41848 -13.41848 -10.06812
-10-DEC-1982 02 / 109: -11.97891 -11.97891 -11.97891 -10.06812
-13-DEC-1982 03 / 110:  -4.63116  -4.63116  -4.63116  -4.63116
-16-DEC-1982 04 / 111:   0.77075   0.77075   0.77075   0.77075
-19-DEC-1982 05 / 112:   1.06240   1.06240   1.06240   1.06240
-22-DEC-1982 06 / 113:   2.75400   2.75400   2.75400   2.75400
-25-DEC-1982 07 / 114:   9.06758   9.06758   9.06758   4.21162
-28-DEC-1982 08 / 115:  10.80434   9.06758   9.06758   4.21162
-31-DEC-1982 09 / 116:   4.21162  10.80434  10.80434   9.06758
- 
-use coads_climatology
-let var= sst[y=0,L=10]
-plot var,var[x=@med:3], var[x=@med:7]
-list/x=80w:50w var,var[x=@med:3], var[x=@med:7]
-             DATA SET: ./coads_climatology.cdf
-             LONGITUDE: 80W to 50W
-             LATITUDE: 1S
-             TIME: FEB-0002
- Column  1: VAR is SST[Y=0,L=10]
- Column  2: VAR[X=@MED:3] is SST[Y=0,L=10] (median smoothed by 3 pts on X)
- Column  3: VAR[X=@MED:7] is SST[Y=0,L=10] (median smoothed by 7 pts on X)
-                  VAR     VAR       VAR
-79W   / 131:      ....  25.98750  25.92824
-77W   / 132:      ....      ....  25.98750
-75W   / 133:      ....      ....  25.98750
-73W   / 134:      ....      ....      ....
-71W   / 135:      ....      ....      ....
-69W   / 136:      ....      ....      ....
-67W   / 137:      ....      ....      ....
-65W   / 138:      ....      ....      ....
-63W   / 139:      ....      ....  27.80000
-61W   / 140:      ....      ....  27.80000
-59W   / 141:      ....  27.80000  27.64737
-57W   / 142:  27.80000  27.80000  27.70333
-55W   / 143:  27.64737  27.64737  27.64737
-53W   / 144:  27.43500  27.64737  27.64737
-51W   / 145:  27.70333  27.43500  27.64737
- 
-let var= sst[x=180,L=10]
-plot var,var[y=@med:3], var[y=@med:7]
-list/y=-20:0 var,var[y=@med:3], var[y=@med:7]
-             DATA SET: ./coads_climatology.cdf
-             LATITUDE: 20S to 0
-             LONGITUDE: 179E
-             TIME: FEB-0002
- Column  1: VAR is SST[X=180,L=10]
- Column  2: VAR[Y=@MED:3] is SST[X=180,L=10] (median smoothed by 3 pts on Y)
- Column  3: VAR[Y=@MED:7] is SST[X=180,L=10] (median smoothed by 7 pts on Y)
-                 VAR     VAR       VAR
-19S   / 36:  28.32244  28.32244  28.32244
-17S   / 37:  28.56983  28.56983  28.56983
-15S   / 38:  29.05953  29.05953  29.05953
-13S   / 39:  29.43250  29.23719  29.23170
-11S   / 40:  29.23719  29.32561  29.23170
-9S    / 41:  29.32561  29.23719  29.23170
-7S    / 42:  29.23170  29.23170  29.23170
-5S    / 43:  28.96976  28.96976  28.96976
-3S    / 44:  28.39779  28.39779  28.44243
-1S    / 45:  28.36456  28.39779  28.39779
- 
-define axis/z=0:1000:20/depth zax
-let var = cos(z[gz=zax]/30) + randu(1+k[gz=zax])
-plot/trans var, var[z=@med:3], var[z=@med:9]
-list/z=1:140 var, var[z=@med:3], var[z=@med:9]
-             Z: 1 to 140
- Column  1: VAR is COS(Z[GZ=ZAX]/30) + RANDU(1+K[GZ=ZAX])
- Column  2: VAR[Z=@MED:3] is COS(Z[GZ=ZAX]/30) + RANDU(1+K[GZ=ZAX]) (median smoothed by 3 pts on Z)
- Column  3: VAR[Z=@MED:9] is COS(Z[GZ=ZAX]/30) + RANDU(1+K[GZ=ZAX]) (median smoothed by 9 pts on Z)
-                VAR     VAR        VAR
-0     / 1:  1.900075  1.900075  0.3281405
-20    / 2:  1.322209  1.322209  0.3281405
-40    / 3:  0.328140  0.328140  0.2405229
-60    / 4: -0.253715 -0.157475  0.3281405
-80    / 5: -0.157475 -0.253715  0.3281405
-100   / 6: -0.785400 -0.157475  0.3281405
-120   / 7:  0.240523  0.240523  0.3281405
-140   / 8:  0.390383  0.390383  0.3903829
- 
-set mode ignore
-! Argument to the median smoother must be odd.
- 
-plot/trans var, var[z=@med:4]
- 
-set mode/last ignore
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn614_bug_fixes
-! bn614_bug_fixes.jnl
-! Fixes that go into v6.14 release
- 
-GO bn_reset
-cancel mode verify
-GO err611_axislab
-! err611_axislab.jnl
-! Fix bug 1582: Horizontal axis label disappeared
-! if PPL AXLABP moves it to the upper axis
- 
-plot/set/i=1:100 sin(i/6)
-ppl axlabp,1,-1
-ppl xlab TEMP(C)
-ppl ylab DEPTH
-ppl plot
- 
- 
-GO bn_reset
-cancel mode verify
-GO err61_360_calendar
-! err61_360_calendar.jnl
-!
- 
-! This first has always been ok
-define axis/t=28-feb-1909:07-mar-1909:2/units=days/t0=1-jan-1909/calendar=d360 time
-list t[gt=time]
-             VARIABLE : T
-                        axis TIME
-             SUBSET   : 6 points (TIME)
-             CALENDAR : 360_DAY
- 28-FEB-1909 00 / 1:  57.00000
- 30-FEB-1909 00 / 2:  59.00000
- 02-MAR-1909 00 / 3:  61.00000
- 04-MAR-1909 00 / 4:  63.00000
- 06-MAR-1909 00 / 5:  65.00000
- 08-MAR-1909 00 / 6:  67.00000
- 
-! Should be able to specify 30-feb-1909 for a 360-day calendar but it
-! resulted in an error
-define axis/t=30-feb-1909:07-mar-1909:2/units=days/t0=1-jan-1909/calendar=d360 time
- 
- 
-GO bn_reset
-cancel mode verify
-GO err611_exit_if.jnl
-! err611_exit_if.jnl
-!
-! Bug 1587
-! This only in v6.11 GFDL release bug
-! Fixed in xeq_exit.F
- 
-yes? sp echo if 1 then > a.jnl
-yes? sp echo exit/script >> a.jnl
-yes? sp echo endif >> a.jnl
-yes? sp echo go a > b.jnl
-yes? sp echo say hello >> b.jnl
-yes? go b  !the following fails to say "hello"
-go a
-if 1 then
-exit/script
-say hello
-hello
-go a
-if 1 then
-exit/script
-if 1 then
-exit/script
- 
-GO bn_reset
-cancel mode verify
-GO err611_save_irreg.jnl
-! err611_save_irreg.jnl
-!
-! bug1587
- 
-def axis/t time = {0,1,3}
-let a = t[gt=time]
-save/clob/file=a.nc a
-can var a
-can dat/all
-use a.nc
-save/clob/file=b.nc a
-let b = a
-list b
-             VARIABLE : A
-             FILENAME : a.nc
-             SUBSET   : 3 points (T)
- 0   / 1:  0.000000
- 1   / 2:  1.000000
- 3   / 3:  3.000000
-save/clob/file=b.nc b
- 
-GO bn_reset
-cancel mode verify
-GO err611_wrong_fineaxis_range
-! err611_wrong_fineaxis_range.jnl
-! Bug 1594
- 
-! (bug was on 64-bit machine only)
-! 7200-point axis in longitude. The coordinates run from -179.725 to 179.725,
-! delta 0.05.  If we give a range in x of -180:180 this is returned as index
-! 1:1  not 1:7200.  If we give a range of x=0:360 the correct range is used.
- 
-! File saved from
-!use/order=xytz "http://apdrc.soest.hawaii.edu/dods/public_data/satellite_product/GHRSST/ghrsst_global"
-! save/clobber/file=fine_x_axis.nc sst[i=1:7200,y=0,L=1]
- 
-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
- normal    E
- normal    F
- 
-! This first was wrong, returned data at x=-180
-list/x=180 sst
-             VARIABLE : sea surface temperature [degc]
-             FILENAME : fine_x_axis.nc
-             LONGITUDE: 180E(180)
-             LATITUDE : 0.025S
-             Z (count): 1
-             TIME     : APR-2006
-          27.53000
- 
-list/i=7200 sst
-             VARIABLE : sea surface temperature [degc]
-             FILENAME : fine_x_axis.nc
-             LONGITUDE: 180E(180)
-             LATITUDE : 0.025S
-             Z (count): 1
-             TIME     : APR-2006
-          27.53000
-list/x=-180 sst
-             VARIABLE : sea surface temperature [degc]
-             FILENAME : fine_x_axis.nc
-             LONGITUDE: 180W(-180)
-             LATITUDE : 0.025S
-             Z (count): 1
-             TIME     : APR-2006
-          27.50000
-list/i=1 sst
-             VARIABLE : sea surface temperature [degc]
-             FILENAME : fine_x_axis.nc
-             LONGITUDE: 180W(-180)
-             LATITUDE : 0.025S
-             Z (count): 1
-             TIME     : APR-2006
-          27.50000
- 
-! This gave a range in x of no points, so size was 1 should be 7200
-let the_plot_var = sst[x=-180:180]
-say `the_plot_var,return=size`
- !-> MESSAGE/CONTINUE 7200
-7200
- 
-let the_plot_var = sst[x=0:360]
-say `the_plot_var,return=size`
- !-> MESSAGE/CONTINUE 7200
-7200
- 
-GO bn_reset
-cancel mode verify
-GO err611_digit_filename
-! err611_digit_filename.jnl
-! Under linux, FILE command fails if filename
-! starts with digit(s)
- 
-! bug 287 (never had a benchmark test)
- 
-REPEAT/RANGE=1:12:2/name=m \
-  (LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=`m`a.dat i; \
-   FILE/VAR="a`m`" `m`a.dat; LIST a`m`)
-!-> REPEAT: M:1
- !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=1a.dat i
- !-> SET DATA/EZ/VAR="a1" 1a.dat
- !-> LIST a1
-             VARIABLE : A1
-             FILENAME : 1a.dat
-             SUBSET   : 3 points (X)
- 1   / 1:  1.000000
- 2   / 2:  2.000000
- 3   / 3:  3.000000
-!-> REPEAT: M:3
- !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=3a.dat i
- !-> SET DATA/EZ/VAR="a3" 3a.dat
- !-> LIST a3
-             VARIABLE : A3
-             FILENAME : 3a.dat
-             SUBSET   : 3 points (X)
- 1   / 1:  1.000000
- 2   / 2:  2.000000
- 3   / 3:  3.000000
-!-> REPEAT: M:5
- !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=5a.dat i
- !-> SET DATA/EZ/VAR="a5" 5a.dat
- !-> LIST a5
-             VARIABLE : A5
-             FILENAME : 5a.dat
-             SUBSET   : 3 points (X)
- 1   / 1:  1.000000
- 2   / 2:  2.000000
- 3   / 3:  3.000000
-!-> REPEAT: M:7
- !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=7a.dat i
- !-> SET DATA/EZ/VAR="a7" 7a.dat
- !-> LIST a7
-             VARIABLE : A7
-             FILENAME : 7a.dat
-             SUBSET   : 3 points (X)
- 1   / 1:  1.000000
- 2   / 2:  2.000000
- 3   / 3:  3.000000
-!-> REPEAT: M:9
- !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=9a.dat i
- !-> SET DATA/EZ/VAR="a9" 9a.dat
- !-> LIST a9
-             VARIABLE : A9
-             FILENAME : 9a.dat
-             SUBSET   : 3 points (X)
- 1   / 1:  1.000000
- 2   / 2:  2.000000
- 3   / 3:  3.000000
-!-> REPEAT: M:11
- !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=11a.dat i
- !-> SET DATA/EZ/VAR="a11" 11a.dat
- !-> LIST a11
-             VARIABLE : A11
-             FILENAME : 11a.dat
-             SUBSET   : 3 points (X)
- 1   / 1:  1.000000
- 2   / 2:  2.000000
- 3   / 3:  3.000000
-SHOW DATA
-     currently SET data sets:
-    1> ./1a.dat
- name     title                             I         J         K         L         M         N
- A1       A1                               1:3       ...       ...       ...       ...       ...
- 
-    2> ./3a.dat
- name     title                             I         J         K         L         M         N
- A3       A3                               1:3       ...       ...       ...       ...       ...
- 
-    3> ./5a.dat
- name     title                             I         J         K         L         M         N
- A5       A5                               1:3       ...       ...       ...       ...       ...
- 
-    4> ./7a.dat
- name     title                             I         J         K         L         M         N
- A7       A7                               1:3       ...       ...       ...       ...       ...
- 
-    5> ./9a.dat
- name     title                             I         J         K         L         M         N
- A9       A9                               1:3       ...       ...       ...       ...       ...
- 
-    6> ./11a.dat  (default)
- name     title                             I         J         K         L         M         N
- A11      A11                              1:3       ...       ...       ...       ...       ...
- 
- 
-GO bn_reset
-cancel mode verify
-GO err611_parse_semicolon
-! err611_parse_semicolon.jnl
-! Bug 1608. The first time it was issued, the first command
-! below was split into two at the ;
-! Test this and some other combinations
- 
-say "c ; d"
-c ; d
-say "c //d"
-c //d
-say "c (d"
-c (d
-say "c (d"; say "a ; b"
-"c (d"; say "a ; b"
-say "c (d; say a ; b"
-c (d; say a ; b
- 
- 
-GO bn_reset
-cancel mode verify
-GO err611_ov_ax
-! err611_ov_ax.jnl
-!
-! bug 1609
-!
-! in the two lower panels, the plot/over/ax=0,0,0,0
-! messes up the ppl axlabp setting in the last command
-!
- 
-can v
-set v ul; ppl axlabp -1 -1; plot/nolab {-1,1,6}
-plot/ov/vs/nolab/line=2 {1,2,2,1},{0,0,3,0}
-set v ur; ppl axlabp 0 0; plot/nolab {-1,1,6}
- 
-set v ll; ppl axlabp -1 -1; plot/nolab {-1,1,6}
-plot/ov/vs/nolab/line=2/ax=0,0,0,0 {1,2,2,1},{0,0,3,0}
-set v lr; ppl axlabp 0 0; plot/nolab {-1,1,6}
- 
-GO bn_reset
-cancel mode verify
-GO err611_context_after_error
-! err611_context_after_error.jnl
-! ACM 11/12/08
-!
-! Bug 1421 - goes back even to older versions of Ferret e.g. 5.41 on stout
-! Context errors after
-!
-!    list a_regrid[d=1,gt=b[d=2]@mod]
-!    ...
-!    cancel data/all
-!
-! if the list command is issued before the variable a_regrid is defined.
- 
- 
-SET MODE ignore_error
-USE bug1421_a
-USE bug1421_b
- 
-SHOW DATA
-     currently SET data sets:
-    1> ./bug1421_a.nc
- name     title                             I         J         K         L         M         N
- A        zonal wind stress                1:1       1:1       ...       1:20      ...       ...
- 
-    2> ./bug1421_b.nc  (default)
- name     title                             I         J         K         L         M         N
- B        T[GT=MON_IRREG_NLP]              ...       ...       ...       1:12      ...       ...
- 
-SHOW AXIS LON88_88
- name       axis              # pts   start                end
- LON88_88  LONGITUDE            1mr   141.25W              141.25W
-   Axis span (to cell edges) = 1 (modulo length = 360)
-SHOW AXIS LAT45_45
- name       axis              # pts   start                end
- LAT45_45  LATITUDE             1 r   1.011S               1.011S
-   Axis span (to cell edges) = 1
-SHOW AXIS MON_IRREG_NLP
- name       axis              # pts   start                end
- MON_IRREG_NLP TIME            12mi   16-JAN 12:00         16-DEC 12:00
-T0 = 1-JAN-0001
-CALENDAR = NOLEAP
-   Axis span (to cell edges) = 365 (modulo length = axis span)
- 
-DEF AXIS/T/UNITS="days"/T0="1-jan-0001"/cal=noleap tnew = tboxlo[GT=a[D=1]]
-LIST a_regrid[D=1,GT=b[D=2]@MOD]
-LET a_regrid = a[D=1,GT=tnew at ASN]
-LIST a_regrid[D=1,GT=b[D=2]@MOD]
-             VARIABLE : A[D=bug1421_a,GT=TNEW at ASN]
-                        regrid: on T at MOD
-             SUBSET   : 12 points (TIME)
-             CALENDAR : NOLEAP
-             LONGITUDE: 141.3W
-             LATITUDE : 1.011S
-                          141.3W   
-                            1
- 16-JAN 12      /  1:  0.05848070
- 15-FEB 00      /  2:  0.05188299
- 16-MAR 12      /  3:  0.04782573
- 16-APR 00      /  4:  0.03808421
- 16-MAY 12      /  5:  0.05937929
- 16-JUN 00      /  6:  0.06571895
- 16-JUL 12      /  7:  0.06152720
- 16-AUG 12      /  8:  0.07460730
- 16-SEP 00      /  9:  0.05815475
- 16-OCT 12      / 10:  0.06169292
- 16-NOV 00      / 11:  0.05654943
- 16-DEC 12      / 12:  0.05768678
- 
-CANCEL DATA/ALL
-SHOW AXIS LON88_88
- name       axis              # pts   start                end
-SHOW AXIS LAT45_45
- name       axis              # pts   start                end
-SHOW AXIS MON_IRREG_NLP
- name       axis              # pts   start                end
- MON_IRREG_NLP TIME            12mi   16-JAN 12:00         16-DEC 12:00
-T0 = 1-JAN-0001
-CALENDAR = NOLEAP
-   Axis span (to cell edges) = 365 (modulo length = axis span)
- 
-SET MODE/LAST ignore_error
- 
-GO bn_reset
-cancel mode verify
-GO err611_isize_gc_fcns
-! err611_isize_gc_fcns.jnl
-! ACM 11/13/2008
-!
-! Testing the fix for bug 1523.  Previously after the SET REGION,
-! the RETURN= always returned a size of 10, the default region size.
- 
-LET a = {1,2,3,4,5,6}
- 
-! Should be 6
-SAY `a,RETURN=isize`
- !-> MESSAGE/CONTINUE 6
-6
-SAY `XSEQUENCE(a),RETURN=isize`
- !-> MESSAGE/CONTINUE 6
-6
- 
-SET REGION/X=1:10
-! Should still be 6
-SAY `XSEQUENCE(a),RETURN=isize`
- !-> MESSAGE/CONTINUE 6
-6
- 
-! Should be 4
-SAY `XSEQUENCE(a[i=1:4]),RETURN=isize`
- !-> MESSAGE/CONTINUE 4
-4
- 
-SAY `XSEQUENCE(a[i=1:4]),RETURN=size`
- !-> MESSAGE/CONTINUE 4
-4
- 
-CANCEL REGION
-! Should be 5 then 6
-SAY `XSEQUENCE(a[i=1:5]),RETURN=size`
- !-> MESSAGE/CONTINUE 5
-5
-SAY `XSEQUENCE(a),RETURN=size`
- !-> MESSAGE/CONTINUE 6
-6
- 
-GO bn_reset
-cancel mode verify
-GO err611_return_precision
-! err611_return_precision.jnl
-! 17-Nov-08 ACM
- 
-! See bug 1611, where say "a`95,p=1`" yielded "a 95" but
-! "a`94,p=1`" yielded "a94"
- 
-say "a`95,p=1`"
- !-> MESSAGE/CONTINUE "a95"
-a95
-say "a`94,p=1`"
- !-> MESSAGE/CONTINUE "a94"
-a94
-say "a`95,p=1`"
- !-> MESSAGE/CONTINUE "a95"
-a95
-say "a`949,p=1`"
- !-> MESSAGE/CONTINUE "a949"
-a949
-say "a`950,p=1`"
- !-> MESSAGE/CONTINUE "a950"
-a950
- 
-! Note that an immediate expr with prec=0 returns an integer.
-say "a`95,p=0`"
- !-> MESSAGE/CONTINUE "a95"
-a95
-say "a`94,p=0`"
- !-> MESSAGE/CONTINUE "a94"
-a94
-say "a`95,p=0`"
- !-> MESSAGE/CONTINUE "a95"
-a95
-say "a`949,p=0`"
- !-> MESSAGE/CONTINUE "a949"
-a949
-say "a`950,p=0`"
- !-> MESSAGE/CONTINUE "a950"
-a950
- 
-! Tests for non-integers
-! We always return at least one sig digit
-say "a`0.1,p=0`"
- !-> MESSAGE/CONTINUE "a0.1"
-a0.1
- 
-say "a`-95,p=1`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
-say "a`-95.99,p=1`"
- !-> MESSAGE/CONTINUE "a-96"
-a-96
-say "a`-95.001,p=1`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
- 
-say "a`-94,p=1`"
- !-> MESSAGE/CONTINUE "a-94"
-a-94
-say "a`-94.99,p=1`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
-say "a`-94.001,p=1`"
- !-> MESSAGE/CONTINUE "a-94"
-a-94
- 
-say "a`-95,p=1`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
-say "a`-95.99,p=1`"
- !-> MESSAGE/CONTINUE "a-96"
-a-96
-say "a`-95.001,p=1`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
- 
-say "a`-949,p=1`"
- !-> MESSAGE/CONTINUE "a-949"
-a-949
-say "a`-949.99,p=1`"
- !-> MESSAGE/CONTINUE "a-950"
-a-950
-say "a`-949.001,p=1`"
- !-> MESSAGE/CONTINUE "a-949"
-a-949
- 
-say "a`-950,p=1`"
- !-> MESSAGE/CONTINUE "a-950"
-a-950
-say "a`-950.99,p=1`"
- !-> MESSAGE/CONTINUE "a-951"
-a-951
-say "a`-950.001,p=1`"
- !-> MESSAGE/CONTINUE "a-950"
-a-950
- 
- 
-say "a`-95,p=0`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
-say "a`-95.99,p=0`"
- !-> MESSAGE/CONTINUE "a-96"
-a-96
-say "a`-95.001,p=0`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
- 
-say "a`-94,p=0`"
- !-> MESSAGE/CONTINUE "a-94"
-a-94
-say "a`-94.99,p=0`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
-say "a`-94.001,p=0`"
- !-> MESSAGE/CONTINUE "a-94"
-a-94
- 
-say "a`-95,p=0`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
-say "a`-95.99,p=0`"
- !-> MESSAGE/CONTINUE "a-96"
-a-96
-say "a`-95.001,p=0`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
- 
-say "a`-949,p=0`"
- !-> MESSAGE/CONTINUE "a-949"
-a-949
-say "a`-949.99,p=0`"
- !-> MESSAGE/CONTINUE "a-950"
-a-950
-say "a`-949.001,p=0`"
- !-> MESSAGE/CONTINUE "a-949"
-a-949
- 
-say "a`-950,p=0`"
- !-> MESSAGE/CONTINUE "a-950"
-a-950
-say "a`-950.99,p=0`"
- !-> MESSAGE/CONTINUE "a-951"
-a-951
-say "a`-950.001,p=0`"
- !-> MESSAGE/CONTINUE "a-950"
-a-950
- 
-GO bn_reset
-cancel mode verify
-GO err611_set_var_ez
-! err611_set_var_ez.jnl
-! 6-Jan-2009
-! Ticket 1615
-!
-! SET VAR/UNITS=  etc for a variable in an EZ dataset
-! The settings were applied within the Ferret session (plots etc)
-! but not added to the attribute structure and not written to
-! output files.
- 
-SP echo "err611_set_var_ez.jnl --- " >> all_ncdump.out
- 
-! Create an ASCII dataset
-LET a = {1,3,5}
-LIST/NOHEAD/FORM=(F8.1)/FILE=dat.dat/CLOBBER a
-FILE/VAR=my_asc dat.dat
- 
-! use SET VAR to add units, title, reset bad value
-SET VAR/UNITS="micrograms/L"/TITLE="chlorophyll"/BAD=3 my_asc
-SHOW DAT/ATT
-     currently SET data sets:
-    1> ./dat.dat  (default)
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               history         CHAR        7    F       dat.dat
-  
- MY_ASC                FLOAT     long_name       CHAR        11   T       chlorophyll
-                                 missing_value   FLOAT       1    T       3
-                                 units           CHAR        12   T       micrograms/L
-  
-SAVE/FILE=a.nc/CLOBBER my_asc
-SP ncdump -h a.nc >> all_ncdump.out
- 
-! Create an Unformatted dataset
-LIST/FORM=UNF/file=unf.dat/CLOBBER a
-FILE/FORM=UNF/VAR=my_unf unf.dat
- 
-! use SET VAR to add units, title, reset bad value
-SET VAR/UNITS="metres"/TITLE="Some Unformatted input"/BAD=5 my_unf
-SAVE/FILE=a.nc/CLOBBER my_unf
-SP ncdump -h a.nc >> all_ncdump.out
- 
- 
-GO bn_reset
-cancel mode verify
-GO err611_convert_missing_type
-! err611_convert_missing_type.jnl
-! Fix for bug 1620 message about converting data type of
-! missing value flag from double to float when the data
-! is from an EZ data set and being written to netCDF file.
- 
-! Save some data and read it in as a delimited file
- 
-LET xx = {-3,4,5}
-LET yy = {1,2,3}
-LIST/CLOBBER/NOHEAD/NOROWHEAD/FORM=(3f8.2)/FILE=lonlat.dat xx,yy
-DEFINE AXIS/X=1:3:1 xobs
-DEFINE GRID/X=xobs gobs
-COL/GRID=gobs/VAR="lon,lat"/TYPE="longitude,latitude"  lonlat.dat
- 
-! On this SAVE, previously got a NOTE about converting the type of the
-! missing-value attribute to match the type of the variable.
- 
-SAVE/CLOBBER/FILE=lonlat.nc lat, lon
- 
-GO bn_reset
-cancel mode verify
-GO err611_shade_fill_levs
-! err611_shade_fill_levs.jnl
-! 2/27/2009
-! Bug 1641: On 32-bit linux, these give different
-! sets of levels. They should be the same.
- 
-shade x[gx=0:1:.1]*y[gy=0:1:.1]; sh sym lev*
-LEV_TEXT = "(-5,30,1)"
-LEV_MIN = "0"
-LEV_MAX = "1.02"
-LEV_NUM = "51"
-LEV_DEL = "0.02"
-fill  x[gx=0:1:.1]*y[gy=0:1:.1]; sh sym lev*
-LEV_TEXT = "(-5,30,1)"
-LEV_MIN = "0"
-LEV_MAX = "1.02"
-LEV_NUM = "51"
-LEV_DEL = "0.02"
- 
- 
- 
-GO bn_reset
-cancel mode verify
-GO err611_set_uvar_outtyp
-! err611_set_uvar_outtyp.jnl
-! fix for bug 1646: set outtype for user variables.
- 
-sp echo "bn_attributes.jnl --- SET VAR/OUTTYPE for user variable" >> all_ncdump.out
- 
-LET a = {1.1,2.2,3.3}
-SET VAR/OUTTYPE = double a
-SAVE/CLOBBER/FILE=a.nc a
-SP ncdump a.nc >> all_ncdump.out
- 
- 
-! When changing to INT, need to also change the
-! missing-value flag.
-LET a = { 3.77, 4.00, 4.10, 4.33, 4.38, 4.27, 4.31, 4.40, 4.75, 5.01, 5.27, 5.52}
-SET VAR/BAD=999/OUTTYPE=int a
-SAVE/CLOBBER/FILE=a.nc a
-SP ncdump a.nc >> all_ncdump.out
- 
- 
-GO bn_reset
-cancel mode verify
-GO err611_save_from_desc
-! err611_save_from_desc.jnl
-!
-! In Ferret v6.19+ this failed with
-!  ** netCDF error: Failed creating coord variable %%
- 
-use coads_clim.des
-save/clobber/file=a.nc/i=100 sst
- 
-GO bn_reset
-cancel mode verify
-GO err611_irregular_axis
- ! err611_irregular_axis.jnl
- 
- ! See bug 1483, all about detecting irregular and regular axes. Finally
- ! did the right thing and test double-precision coordinates in DP and
- ! if single precision axes comes in, test that in SP.
- 
-! The dataset was created as follows to have large time coordinates but
-! irregularly spaced.
- 
-! define axis/t=1-jan-2008:"1-jan-2008:00:02:22":1/units=seconds/t0="1-jan-0001" tax
-! let cc = L[gt=tax]
-! save/file=cc.nc/clobber cc
-! Use ncdump to write a cdl file and edit that file to remove one time
-! coordinate and one value of cc. Run ncgen and write cc_irreg.nc
- 
-! Previous versions of this detected the axis as regular.
- 
-use cc_irreg.nc
-sh grid cc
-    GRID GCZ1
- name       axis              # pts   start                end
- normal    X
- normal    Y
- normal    Z
- TAX3      TIME               142 i   30-DEC-2007 00:00    30-DEC-2007 00:02
- normal    E
- normal    F
- 
- 
-GO bn_reset
-cancel mode verify
-GO err611_ef_string_result
-! err611_ef_string_result.jnl
-! testing the fix for bug 1621
-! call to EFCN_GET_RTN_TYPE wasn't hooked up in gcf_rtn_type.F
-!
- 
-define axis/t=1-jan-1980:1-jan-1990:4/unit=days tax
-define grid/t=tax gg
-let date_list = t[t=29000:29900:100]
-list tax_datestring(date_list,t[g=gg],"day")
-             VARIABLE : TAX_DATESTRING(DATE_LIST,T[G=GG],"day")
-             SUBSET   : 10 points (T)
- 29000   /  1:"09-JUN-1980"
- 29100   /  2:"17-SEP-1980"
- 29200   /  3:"26-DEC-1980"
- 29300   /  4:"05-APR-1981"
- 29400   /  5:"14-JUL-1981"
- 29500   /  6:"22-OCT-1981"
- 29600   /  7:"30-JAN-1982"
- 29700   /  8:"10-MAY-1982"
- 29800   /  9:"18-AUG-1982"
- 29900   / 10:"26-NOV-1982"
-let v = tax_datestring(date_list,t[g=gg],"day")
-list v
-             VARIABLE : TAX_DATESTRING(DATE_LIST,T[G=GG],"day")
-             SUBSET   : 10 points (T)
- 29000   /  1:"09-JUN-1980"
- 29100   /  2:"17-SEP-1980"
- 29200   /  3:"26-DEC-1980"
- 29300   /  4:"05-APR-1981"
- 29400   /  5:"14-JUL-1981"
- 29500   /  6:"22-OCT-1981"
- 29600   /  7:"30-JAN-1982"
- 29700   /  8:"10-MAY-1982"
- 29800   /  9:"18-AUG-1982"
- 29900   / 10:"26-NOV-1982"
- 
-! Combine tax_datestring call with *cat_str function
- 
-let yr = tax_datestring(date_list,t[g=gg],"second")
-let both = tcat_str(v, yr)
-list both
-             VARIABLE : TCAT_STR(V, YR)
-             SUBSET   : 20 points (T)
- 1    /  1:"09-JUN-1980"         
- 2    /  2:"17-SEP-1980"         
- 3    /  3:"26-DEC-1980"         
- 4    /  4:"05-APR-1981"         
- 5    /  5:"14-JUL-1981"         
- 6    /  6:"22-OCT-1981"         
- 7    /  7:"30-JAN-1982"         
- 8    /  8:"10-MAY-1982"         
- 9    /  9:"18-AUG-1982"         
- 10   / 10:"26-NOV-1982"         
- 11   / 11:"09-JUN-1980 00:00:00"
- 12   / 12:"17-SEP-1980 00:00:00"
- 13   / 13:"26-DEC-1980 00:00:00"
- 14   / 14:"05-APR-1981 00:00:00"
- 15   / 15:"14-JUL-1981 00:00:00"
- 16   / 16:"22-OCT-1981 00:00:00"
- 17   / 17:"30-JAN-1982 00:00:00"
- 18   / 18:"10-MAY-1982 00:00:00"
- 19   / 19:"18-AUG-1982 00:00:00"
- 20   / 20:"26-NOV-1982 00:00:00"
- 
-let xt = xcat_str(v, yr)
-list xt
-             VARIABLE : XCAT_STR(V, YR)
-             SUBSET   : 2 by 10 points (X-T)
-                         1                     2            
-                          1                     2
- 29000   /  1:"09-JUN-1980"         "09-JUN-1980 00:00:00"
- 29100   /  2:"17-SEP-1980"         "17-SEP-1980 00:00:00"
- 29200   /  3:"26-DEC-1980"         "26-DEC-1980 00:00:00"
- 29300   /  4:"05-APR-1981"         "05-APR-1981 00:00:00"
- 29400   /  5:"14-JUL-1981"         "14-JUL-1981 00:00:00"
- 29500   /  6:"22-OCT-1981"         "22-OCT-1981 00:00:00"
- 29600   /  7:"30-JAN-1982"         "30-JAN-1982 00:00:00"
- 29700   /  8:"10-MAY-1982"         "10-MAY-1982 00:00:00"
- 29800   /  9:"18-AUG-1982"         "18-AUG-1982 00:00:00"
- 29900   / 10:"26-NOV-1982"         "26-NOV-1982 00:00:00"
- 
- 
-GO bn_reset
-cancel mode verify
-GO err61_contour_subspan_reps
-! err61_contour_subspan_reps.jnl
-! Bug 1659.
-!
-!
-! CONTOUR (or FILL) doesn't work properly with a subspan modulo axis,
-! unlike SHADE. And we get different CONTOUR results if the subspan modulo
-! axis coordinates are supplied on the positive vs. the negative modulo branch.
- 
-use coads_climatology
-let a = sst[x=120:284,y=-2:2 at ave]
-save/clob/file=a.nc a
- 
-can var a
-use a
-set reg/x=125e:70w
-shade/x=-360:360 a
-fill/ov/pal=greyscale/x=-360:360 a
-cont/ov/x=-360:360 a
- 
-! Now region in negative x
- 
-can dat/all; can var/all
- 
-use coads_climatology
-let b = sst[x=-240:-76,y=-2:2 at ave]
-save/clob/file=b.nc b
- 
-can var b
-use b
-set reg/x=125e:70w
-shade/x=-360:360 b
-fill/ov/pal=greyscale/x=-360:360 b
-cont/ov/x=-360:360 b
- 
- 
-! ******** V6.14 Additions below ***********
-GO bn_reset
-cancel mode verify
-GO bn_mode_nodata_lab
-! bn_mode_nodata_lab
-! turns off the No Valid Data label on plots
-! (for line plots this is added to the plot label,
-!  if the mode is SET).
- 
-SHOW MODE nodata_lab
-      MODE            STATE        ARGUMENT
-      NODATA_LAB       SET
- 
-use coads_climatology
-let uwnd = sst
-let vwnd = -1*sst
- 
-plot/y=50/x=70e:110e/L=1 sst
-shade/y=40:50/x=70e:110e/L=1 sst
-vec/y=40:50/x=70e:110e/L=1 uwnd,vwnd
-contour/y=40:50/x=70e:110e/L=1 vwnd
-contour/fill/y=40:50/x=70e:110e/L=1 vwnd
- 
-can mode nodata_lab
-plot/y=50/x=70e:110e/L=1 sst
-shade/y=40:50/x=70e:110e/L=1 sst
-vec/y=40:50/x=70e:110e/L=1 uwnd,vwnd
-contour/y=40:50/x=70e:110e/L=1 vwnd
-contour/fill/y=40:50/x=70e:110e/L=1 vwnd
- 
-set mode/last nodata_lab
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_proleptic_gregorian_calendar
-! proleptic_gregorian_calendar.jnl
-! Allow PROLEPTIC_GREGORIAN as a calendar attribute
-! for the default Ferret calendar.
- 
-set data proleptic_gregorian.nc
-show data
-     currently SET data sets:
-    1> ./proleptic_gregorian.nc  (default)
- name     title                             I         J         K         L         M         N
- MY_DATA  SIN(L[GT=TDAYS])                 ...       ...       ...       1:32      ...       ...
- 
-show axis tdays
- name       axis              # pts   start                end
- TDAYS     TIME               733 r   01-JAN-1988 00:00    01-JAN-1990 00:00
-T0 = 15-JAN-1901
-CALENDAR = ALL_LEAP
-   Axis span (to cell edges) = 733
- 
-GO bn_reset
-cancel mode verify
-GO bn_string_ngd_nbd
-! @NGD and @NBD for strings
-! Bad data is taken to be the null string
-! Compare with results for numeric data
-! *ACM 11/2008
- 
-let a = {"a","b",,"cd"}
-list a[i=@ngd]
-             VARIABLE : {"a","b",,"cd"} (# of points)
-             X        : 0.5 to 4.5 (number of valid)
-          3.000000
- 
-let a = {"a","b",,"c",,"d",,,"e","f","g","h"}
-let b = { 3,  3 ,, 3 ,, 3 ,,, 3,  3,  3,  3}
-list a[i=@nbd]
-             VARIABLE : {"a","b",,"c",,"d",,,"e","f","g","h"} (# of points)
-             X        : 0.5 to 12.5 (number flagged bad)
-          4.000000
-list b[i=@nbd]
-             VARIABLE : { 3,  3 ,, 3 ,, 3 ,,, 3,  3,  3,  3} (# of points)
-             X        : 0.5 to 12.5 (number flagged bad)
-          4.000000
- 
-define axis/x=1:3:1 xax
-define axis/y=1:4:1 yax
-let v = x[gx=xax] + y[gy=yax]
- 
-let av = reshape (a,v)
-let bv = reshape (b,v)
-list av[i=@ngd]
-             VARIABLE : RESHAPE (A,V) (# of points)
-             SUBSET   : 4 points (Y)
-             X        : 0.5 to 3.5 (number of valid)
- 1   / 1:  2.000000
- 2   / 2:  2.000000
- 3   / 3:  1.000000
- 4   / 4:  3.000000
-list bv[i=@ngd]
-             VARIABLE : RESHAPE (B,V) (# of points)
-             SUBSET   : 4 points (Y)
-             X        : 0.5 to 3.5 (number of valid)
- 1   / 1:  2.000000
- 2   / 2:  2.000000
- 3   / 3:  1.000000
- 4   / 4:  3.000000
-list av[j=@ngd]
-             VARIABLE : RESHAPE (A,V) (# of points)
-             SUBSET   : 3 points (X)
-             Y        : 0.5 to 4.5 (number of valid)
- 1   / 1:  3.000000
- 2   / 2:  2.000000
- 3   / 3:  3.000000
-list bv[j=@ngd]
-             VARIABLE : RESHAPE (B,V) (# of points)
-             SUBSET   : 3 points (X)
-             Y        : 0.5 to 4.5 (number of valid)
- 1   / 1:  3.000000
- 2   / 2:  2.000000
- 3   / 3:  3.000000
-list av[i=@ngd,j=@ngd]
-             VARIABLE : RESHAPE (A,V)
-             X        : 0.5 to 3.5 (XY # valid)
-             Y        : 0.5 to 4.5 (XY # valid)
-          8.000000
-list bv[i=@ngd,j=@ngd]
-             VARIABLE : RESHAPE (B,V)
-             X        : 0.5 to 3.5 (XY # valid)
-             Y        : 0.5 to 4.5 (XY # valid)
-          8.000000
- 
- 
-define axis/x=1:3:1 xax
-define axis/z=1:4:1 zax
-let v = x[gx=xax] + z[gz=zax]
- 
-let av = reshape (a,v)
-list av[i=@nbd]
-             VARIABLE : RESHAPE (A,V) (# of points)
-             SUBSET   : 4 points (Z)
-             X        : 0.5 to 3.5 (number flagged bad)
- 1   / 1:  1.000000
- 2   / 2:  1.000000
- 3   / 3:  2.000000
- 4   / 4:  0.000000
-list bv[i=@nbd]
-             VARIABLE : RESHAPE (B,V) (# of points)
-             SUBSET   : 4 points (Z)
-             X        : 0.5 to 3.5 (number flagged bad)
- 1   / 1:  1.000000
- 2   / 2:  1.000000
- 3   / 3:  2.000000
- 4   / 4:  0.000000
-list av[k=@nbd]
-             VARIABLE : RESHAPE (A,V) (# of points)
-             SUBSET   : 3 points (X)
-             Z        : 0.5 to 4.5 (number flagged bad)
- 1   / 1:  1.000000
- 2   / 2:  2.000000
- 3   / 3:  1.000000
-list bv[k=@nbd]
-             VARIABLE : RESHAPE (B,V) (# of points)
-             SUBSET   : 3 points (X)
-             Z        : 0.5 to 4.5 (number flagged bad)
- 1   / 1:  1.000000
- 2   / 2:  2.000000
- 3   / 3:  1.000000
-list av[i=@nbd,k=@nbd]
-             VARIABLE : RESHAPE (A,V)
-             X        : 0.5 to 3.5 (XZ # bad)
-             Z        : 0.5 to 4.5 (XZ # bad)
-          4.000000
-list bv[i=@nbd,k=@nbd]
-             VARIABLE : RESHAPE (B,V)
-             X        : 0.5 to 3.5 (XZ # bad)
-             Z        : 0.5 to 4.5 (XZ # bad)
-          4.000000
- 
-define axis/x=1:3:1 xax
-define axis/t=1:4:1 tax
-let v = x[gx=xax] + t[gt=tax]
- 
-let av = reshape (a,v)
-list av[i=@ngd]
-             VARIABLE : RESHAPE (A,V) (# of points)
-             SUBSET   : 4 points (T)
-             X        : 0.5 to 3.5 (number of valid)
- 1   / 1:  2.000000
- 2   / 2:  2.000000
- 3   / 3:  1.000000
- 4   / 4:  3.000000
-list bv[i=@ngd]
-             VARIABLE : RESHAPE (B,V) (# of points)
-             SUBSET   : 4 points (T)
-             X        : 0.5 to 3.5 (number of valid)
- 1   / 1:  2.000000
- 2   / 2:  2.000000
- 3   / 3:  1.000000
- 4   / 4:  3.000000
-list av[L=@ngd]
-             VARIABLE : RESHAPE (A,V) (# of points)
-             SUBSET   : 3 points (X)
-             T        : 0.5 to 4.5 (number of valid)
- 1   / 1:  3.000000
- 2   / 2:  2.000000
- 3   / 3:  3.000000
-list bv[L=@ngd]
-             VARIABLE : RESHAPE (B,V) (# of points)
-             SUBSET   : 3 points (X)
-             T        : 0.5 to 4.5 (number of valid)
- 1   / 1:  3.000000
- 2   / 2:  2.000000
- 3   / 3:  3.000000
-list av[i=@ngd,L=@ngd]
-             VARIABLE : RESHAPE (A,V)
-             X        : 0.5 to 3.5 (XT # valid)
-             T        : 0.5 to 4.5 (XT # valid)
-          8.000000
-list bv[i=@ngd,L=@ngd]
-             VARIABLE : RESHAPE (B,V)
-             X        : 0.5 to 3.5 (XT # valid)
-             T        : 0.5 to 4.5 (XT # valid)
-          8.000000
- 
-!4D variable
-let a = {"a","b",,"c",,"d",,,"e","f","g","h","ab","bb",,"cb",,"db",,,"eb","fb","gb","hb"}
-let b = {3,3,,3,,3,,,3,3,3,3,3,3,,3,,3,,,3,3,3,3}
- 
-define axis/x=1:2:1 xax
-define axis/y=1:2:1 yax
-define axis/z=1:3:1 zax
-define axis/t=1:2:1 tax
-let v = x[gx=xax] + y[gy=yax] + z[gz=zax] + t[gt=tax]
- 
-let av = reshape (a,v)
-list av[i=@nbd]
-             VARIABLE : RESHAPE (A,V) (# of points)
-             SUBSET   : 2 by 3 by 2 points (Y-Z-T)
-             X        : 0.5 to 2.5 (number flagged bad)
-              1         2      
-               1         2
- ---- L:1 T:   1
- 1   / 1:  0.000000  1.000000
- 2   / 2:  1.000000  2.000000
- 3   / 3:  0.000000  0.000000
- ---- L:2 T:   2
- 1   / 1:  0.000000  1.000000
- 2   / 2:  1.000000  2.000000
- 3   / 3:  0.000000  0.000000
-list bv[i=@nbd]
-             VARIABLE : RESHAPE (B,V) (# of points)
-             SUBSET   : 2 by 3 by 2 points (Y-Z-T)
-             X        : 0.5 to 2.5 (number flagged bad)
-              1         2      
-               1         2
- ---- L:1 T:   1
- 1   / 1:  0.000000  1.000000
- 2   / 2:  1.000000  2.000000
- 3   / 3:  0.000000  0.000000
- ---- L:2 T:   2
- 1   / 1:  0.000000  1.000000
- 2   / 2:  1.000000  2.000000
- 3   / 3:  0.000000  0.000000
-list av[j=@nbd]
-             VARIABLE : RESHAPE (A,V) (# of points)
-             SUBSET   : 2 by 3 by 2 points (X-Z-T)
-             Y        : 0.5 to 2.5 (number flagged bad)
-              1         2      
-               1         2
- ---- L:1 T:   1
- 1   / 1:  1.000000  0.000000
- 2   / 2:  2.000000  1.000000
- 3   / 3:  0.000000  0.000000
- ---- L:2 T:   2
- 1   / 1:  1.000000  0.000000
- 2   / 2:  2.000000  1.000000
- 3   / 3:  0.000000  0.000000
-list bv[j=@nbd]
-             VARIABLE : RESHAPE (B,V) (# of points)
-             SUBSET   : 2 by 3 by 2 points (X-Z-T)
-             Y        : 0.5 to 2.5 (number flagged bad)
-              1         2      
-               1         2
- ---- L:1 T:   1
- 1   / 1:  1.000000  0.000000
- 2   / 2:  2.000000  1.000000
- 3   / 3:  0.000000  0.000000
- ---- L:2 T:   2
- 1   / 1:  1.000000  0.000000
- 2   / 2:  2.000000  1.000000
- 3   / 3:  0.000000  0.000000
-list av[k=@ngd]
-             VARIABLE : RESHAPE (A,V) (# of points)
-             SUBSET   : 2 by 2 by 2 points (X-Y-T)
-             Z        : 0.5 to 3.5 (number of valid)
-              1         2      
-               1         2
- ---- L:1 T:   1
- 1   / 1:  2.000000  3.000000
- 2   / 2:  1.000000  2.000000
- ---- L:2 T:   2
- 1   / 1:  2.000000  3.000000
- 2   / 2:  1.000000  2.000000
-list bv[k=@ngd]
-             VARIABLE : RESHAPE (B,V) (# of points)
-             SUBSET   : 2 by 2 by 2 points (X-Y-T)
-             Z        : 0.5 to 3.5 (number of valid)
-              1         2      
-               1         2
- ---- L:1 T:   1
- 1   / 1:  2.000000  3.000000
- 2   / 2:  1.000000  2.000000
- ---- L:2 T:   2
- 1   / 1:  2.000000  3.000000
- 2   / 2:  1.000000  2.000000
-list av[L=@ngd]
-             VARIABLE : RESHAPE (A,V) (# of points)
-             SUBSET   : 2 by 2 by 3 points (X-Y-Z)
-             T        : 0.5 to 2.5 (number of valid)
-              1         2      
-               1         2
- ---- K:1 Z:   1
- 1   / 1:  2.000000  2.000000
- 2   / 2:  0.000000  2.000000
- ---- K:2 Z:   2
- 1   / 1:  0.000000  2.000000
- 2   / 2:  0.000000  0.000000
- ---- K:3 Z:   3
- 1   / 1:  2.000000  2.000000
- 2   / 2:  2.000000  2.000000
-list bv[L=@ngd]
-             VARIABLE : RESHAPE (B,V) (# of points)
-             SUBSET   : 2 by 2 by 3 points (X-Y-Z)
-             T        : 0.5 to 2.5 (number of valid)
-              1         2      
-               1         2
- ---- K:1 Z:   1
- 1   / 1:  2.000000  2.000000
- 2   / 2:  0.000000  2.000000
- ---- K:2 Z:   2
- 1   / 1:  0.000000  2.000000
- 2   / 2:  0.000000  0.000000
- ---- K:3 Z:   3
- 1   / 1:  2.000000  2.000000
- 2   / 2:  2.000000  2.000000
- 
-list av[i=@nbd,j=@nbd,k=@nbd]
-             VARIABLE : RESHAPE (A,V)
-             SUBSET   : 2 points (T)
-             X        : 0.5 to 2.5 (XYZ # bad)
-             Y        : 0.5 to 2.5 (XYZ # bad)
-             Z        : 0.5 to 3.5 (XYZ # bad)
- 1   / 1:  4.000000
- 2   / 2:  4.000000
-list bv[i=@nbd,j=@nbd,k=@nbd]
-             VARIABLE : RESHAPE (B,V)
-             SUBSET   : 2 points (T)
-             X        : 0.5 to 2.5 (XYZ # bad)
-             Y        : 0.5 to 2.5 (XYZ # bad)
-             Z        : 0.5 to 3.5 (XYZ # bad)
- 1   / 1:  4.000000
- 2   / 2:  4.000000
- 
-list bv[i=@ngd,j=@ngd,k=@ngd,L=@ngd]
-             VARIABLE : RESHAPE (B,V)
-             X        : 0.5 to 2.5 (XYZT # valid)
-             Y        : 0.5 to 2.5 (XYZT # valid)
-             Z        : 0.5 to 3.5 (XYZT # valid)
-             T        : 0.5 to 2.5 (XYZT # valid)
-          16.00000
-list av[i=@ngd,j=@ngd,k=@ngd,L=@ngd]
-             VARIABLE : RESHAPE (A,V)
-             X        : 0.5 to 2.5 (XYZT # valid)
-             Y        : 0.5 to 2.5 (XYZT # valid)
-             Z        : 0.5 to 3.5 (XYZT # valid)
-             T        : 0.5 to 2.5 (XYZT # valid)
-          16.00000
- 
-GO bn_reset
-cancel mode verify
-GO bn_cat_string
-! bn_cat_string.jnl
-! Test concatenation functions for string variables
-! ACM nov 08  See bug 1577
- 
-let a = xsequence({"Q", "R", "S"})
-let b = xsequence({"U", "V", "W"})
-list xcat(a,b)
-             VARIABLE : XCAT(A,B)
-             SUBSET   : 6 points (X)
- 1   / 1:"Q"
- 2   / 2:"R"
- 3   / 3:"S"
- 4   / 4:"U"
- 5   / 5:"V"
- 6   / 6:"W"
- 
-! (when xcat is called, and its args are strings,
-!  Ferret actually runs xcat_string)
-let a = xsequence({"Q", "R", "S"})
-let b = xsequence({"U", "V", "W"})
-list xcat_str(a,b)
-             VARIABLE : XCAT_STR(A,B)
-             SUBSET   : 6 points (X)
- 1   / 1:"Q"
- 2   / 2:"R"
- 3   / 3:"S"
- 4   / 4:"U"
- 5   / 5:"V"
- 6   / 6:"W"
- 
-let a = ysequence({"Q", "R", "S"})
-let b = ysequence({"U", "V", "W"})
-list ycat(a,b)
-             VARIABLE : YCAT(A,B)
-             SUBSET   : 6 points (Y)
- 1   / 1:"Q"
- 2   / 2:"R"
- 3   / 3:"S"
- 4   / 4:"U"
- 5   / 5:"V"
- 6   / 6:"W"
- 
-let a = zsequence({"Q", "R", "S"})
-let b = zsequence({"U", "V", "W"})
-list zcat(a,b)
-             VARIABLE : ZCAT(A,B)
-             SUBSET   : 6 points (Z)
- 1   / 1:"Q"
- 2   / 2:"R"
- 3   / 3:"S"
- 4   / 4:"U"
- 5   / 5:"V"
- 6   / 6:"W"
- 
-let a = tsequence({"Q", "R", "S"})
-let b = tsequence({"U", "V", "W"})
-list tcat(a,b)
-             VARIABLE : TCAT(A,B)
-             SUBSET   : 6 points (T)
- 1   / 1:"Q"
- 2   / 2:"R"
- 3   / 3:"S"
- 4   / 4:"U"
- 5   / 5:"V"
- 6   / 6:"W"
- 
-GO bn_reset
-cancel mode verify
-GO bn_sort_strings
-! bn_sort_strings.jnl
-! 11/08 acm
- 
-! show func/detail now shows the alternative function for
-! other arg types, if it exists.
- 
-SHOW FUNC/DETAIL sorti
-SORTI(DAT)
-    Returns indices of data, sorted on the I axis in increasing order
-        Axes of result:
-          X: ABSTRACT (result will occupy indices 1...N)
-          Y: inherited from argument(s)
-          Z: inherited from argument(s)
-          T: inherited from argument(s)
-          E: inherited from argument(s)
-          F: inherited from argument(s)
-    DAT: variable to sort in I
-        Influence on output axes:
-          X: no influence (indicate argument limits with "[]")
-          Y: passed to result grid
-          Z: passed to result grid
-          T: passed to result grid
-          E: passed to result grid
-          F: passed to result grid
-    Alternative function called for other argument types: SORTI_STR
- 
- 
-let ai = {"a rat in the house will eat the zucchini", \
-  "a rat in the house will eat the ice cream", \
-  "ze rats in the house will eat the ice cream",\
-  "A rat in the house will eat the ICE CREAM" }
- 
-let bi = {"AB", "C", "", "aa", "abc", ,"0"}
- 
-let indx_ai = SORTI_STR(ai)
-list indx_ai, samplei(ai,indx_ai)
-             X: 0.5 to 4.5
- Column  1: INDX_AI is SORTI_STR(AI)
- Column  2: EX#2 is SAMPLEI(AI,INDX_AI)
-          INDX_AI                       EX#2
-1   / 1:  4.000000 "A rat in the house will eat the ICE CREAM"  
-2   / 2:  2.000000 "a rat in the house will eat the ice cream"  
-3   / 3:  1.000000 "a rat in the house will eat the zucchini"   
-4   / 4:  3.000000 "ze rats in the house will eat the ice cream"
- 
-let indx_bi = SORTI_STR(bi)
-list indx_bi, samplei(bi,indx_bi)
-             X: 0.5 to 7.5
- Column  1: INDX_BI is SORTI_STR(BI)
- Column  2: EX#2 is SAMPLEI(BI,INDX_BI)
-          INDX_BI   EX#2
-1   / 1:  7.000000 "0"  
-2   / 2:  1.000000 "AB" 
-3   / 3:  2.000000 "C"  
-4   / 4:  4.000000 "aa" 
-5   / 5:  5.000000 "abc"
-6   / 6:      .... ""   
-7   / 7:      .... ""   
- 
-! Calling via SORTI
-let indx_ai = SORTI(ai)
-list indx_ai, samplei(ai,indx_ai)
-             X: 0.5 to 4.5
- Column  1: INDX_AI is SORTI(AI)
- Column  2: EX#2 is SAMPLEI(AI,INDX_AI)
-          INDX_AI                       EX#2
-1   / 1:  4.000000 "A rat in the house will eat the ICE CREAM"  
-2   / 2:  2.000000 "a rat in the house will eat the ice cream"  
-3   / 3:  1.000000 "a rat in the house will eat the zucchini"   
-4   / 4:  3.000000 "ze rats in the house will eat the ice cream"
- 
-let indx_bi = SORTI(bi)
-list indx_bi, samplei(bi,indx_bi)
-             X: 0.5 to 7.5
- Column  1: INDX_BI is SORTI(BI)
- Column  2: EX#2 is SAMPLEI(BI,INDX_BI)
-          INDX_BI   EX#2
-1   / 1:  7.000000 "0"  
-2   / 2:  1.000000 "AB" 
-3   / 3:  2.000000 "C"  
-4   / 4:  4.000000 "aa" 
-5   / 5:  5.000000 "abc"
-6   / 6:      .... ""   
-7   / 7:      .... ""   
- 
- 
-! SORTJ
-let aj = ysequence(ai)
-let bj = ysequence(bi)
- 
-let indx_aj = SORTJ(aj)
-list indx_aj, samplej(aj,indx_aj)
-             Y: 0.5 to 4.5
- Column  1: INDX_AJ is SORTJ(AJ)
- Column  2: EX#2 is SAMPLEJ(AJ,INDX_AJ)
-          INDX_AJ                       EX#2
-1   / 1:  4.000000 "A rat in the house will eat the ICE CREAM"  
-2   / 2:  2.000000 "a rat in the house will eat the ice cream"  
-3   / 3:  1.000000 "a rat in the house will eat the zucchini"   
-4   / 4:  3.000000 "ze rats in the house will eat the ice cream"
- 
-let indx_bj = SORTJ(bj)
-list indx_bj, samplej(bj,indx_bj)
-             Y: 0.5 to 7.5
- Column  1: INDX_BJ is SORTJ(BJ)
- Column  2: EX#2 is SAMPLEJ(BJ,INDX_BJ)
-          INDX_BJ   EX#2
-1   / 1:  7.000000 "0"  
-2   / 2:  1.000000 "AB" 
-3   / 3:  2.000000 "C"  
-4   / 4:  4.000000 "aa" 
-5   / 5:  5.000000 "abc"
-6   / 6:      .... ""   
-7   / 7:      .... ""   
- 
- 
-! SORTK
-let ak = zsequence(ai)
-let bk = zsequence(bi)
- 
-let indx_ak = SORTK(ak)
-list indx_ak, samplek(ak,indx_ak)
-             Z: 0.5 to 4.5
- Column  1: INDX_AK is SORTK(AK)
- Column  2: EX#2 is SAMPLEK(AK,INDX_AK)
-          INDX_AK                       EX#2
-1   / 1:  4.000000 "A rat in the house will eat the ICE CREAM"  
-2   / 2:  2.000000 "a rat in the house will eat the ice cream"  
-3   / 3:  1.000000 "a rat in the house will eat the zucchini"   
-4   / 4:  3.000000 "ze rats in the house will eat the ice cream"
- 
-let indx_bk = SORTK(bk)
-list indx_bk, samplek(bk,indx_bk)
-             Z: 0.5 to 7.5
- Column  1: INDX_BK is SORTK(BK)
- Column  2: EX#2 is SAMPLEK(BK,INDX_BK)
-          INDX_BK   EX#2
-1   / 1:  7.000000 "0"  
-2   / 2:  1.000000 "AB" 
-3   / 3:  2.000000 "C"  
-4   / 4:  4.000000 "aa" 
-5   / 5:  5.000000 "abc"
-6   / 6:      .... ""   
-7   / 7:      .... ""   
- 
- 
-! SORTL
-let al = tsequence(ai)
-let bl = tsequence(bi)
- 
-let indx_al = SORTL(al)
-list indx_al, samplel(al,indx_al)
-             T: 0.5 to 4.5
- Column  1: INDX_AL is SORTL(AL)
- Column  2: EX#2 is SAMPLEL(AL,INDX_AL)
-          INDX_AL                       EX#2
-1   / 1:  4.000000 "A rat in the house will eat the ICE CREAM"  
-2   / 2:  2.000000 "a rat in the house will eat the ice cream"  
-3   / 3:  1.000000 "a rat in the house will eat the zucchini"   
-4   / 4:  3.000000 "ze rats in the house will eat the ice cream"
- 
-let indx_bl = SORTL(bl)
-list indx_bl, samplel(bl,indx_bl)
-             T: 0.5 to 7.5
- Column  1: INDX_BL is SORTL(BL)
- Column  2: EX#2 is SAMPLEL(BL,INDX_BL)
-          INDX_BL   EX#2
-1   / 1:  7.000000 "0"  
-2   / 2:  1.000000 "AB" 
-3   / 3:  2.000000 "C"  
-4   / 4:  4.000000 "aa" 
-5   / 5:  5.000000 "abc"
-6   / 6:      .... ""   
-7   / 7:      .... ""   
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_samplexyt
-! bn_samplexyt.jnl
-! 1/2009
- 
-! Check the SAMPLEXYT function, should give missing results for T sample points
-! that lie beyond the ends of the T axis of the grid being sampled
- 
-define axis/x=0:360:180/units=longitude/edges/modulo x1
-define axis/y=-90:90:45/units=latitude/edges y1
-define axis/t0=1-jan-1990/t=1-jan-1991:31-dec-1991:1/units=days/edges t1
-define grid/x=x1/y=y1/t=t1 g1
- 
-let my_data = 0*x[g=g1]+y[g=g1]+t[g=g1]
- 
-DEFINE AXIS/T0=1-JAN-1990/T=1-JAN-1990:31-DEC-1992:40/UNITS=DAYS/EDGES TSAMPLES
-LET TPTS = XSEQUENCE(T[GT=TSAMPLES])
-LET YPTS = XSEQUENCE((RANDU(TPTS)-0.5)*90)
-LET XPTS = 180 + 0*YPTS
-LET sampl_pts =  SAMPLEXYT(my_data,xpts,ypts,tpts)
- 
-!  NOTE THAT THE SAMPLEXYT SHOULD FLAG POINTS BEFORE THE START OF THE TIME INTERVAL
-!  AND ALOS THOSE THAT LIE ABOVE THE END OF THE TIME INTERVAL
- 
-! CHECK THE RESULTS WITH A LISTING
-list ypts, tpts, sampl_pts
-             X: 0.5 to 28.5
- Column  1: YPTS is XSEQUENCE((RANDU(TPTS)-0.5)*90)
- Column  2: TPTS is XSEQUENCE(T[GT=TSAMPLES])
- Column  3: SAMPL_PTS is SAMPLEXYT(MY_DATA,XPTS,YPTS,TPTS)
-               YPTS     TPTS   SAMPL_PTS
-1    /  1:  20.53799    20.000      ....
-2    /  2: -29.07481    60.000      ....
-3    /  3:  26.64251   100.000      ....
-4    /  4: -28.97490   140.000      ....
-5    /  5: -17.10210   180.000      ....
-6    /  6:  -8.79040   220.000      ....
-7    /  7: -26.48790   260.000      ....
-8    /  8:  -9.00391   300.000      ....
-9    /  9: -19.19385   340.000      ....
-10   / 10: -19.84003   380.000  360.6600
-11   / 11: -44.10992   420.000  376.3901
-12   / 12:  34.07387   460.000  494.5739
-13   / 13:  34.62830   500.000  535.1283
-14   / 14:  -6.59559   540.000  533.9044
-15   / 15: -39.01164   580.000  541.4884
-16   / 16: -25.63370   620.000  594.8663
-17   / 17: -22.96677   660.000  637.5332
-18   / 18: -30.90969   700.000  669.5903
-19   / 19: -22.52078   740.000      ....
-20   / 20: -20.65415   780.000      ....
-21   / 21: -41.65880   820.000      ....
-22   / 22:  39.13533   860.000      ....
-23   / 23:  22.88071   900.000      ....
-24   / 24: -41.03287   940.000      ....
-25   / 25:  33.34976   980.000      ....
-26   / 26:  22.53505  1020.000      ....
-27   / 27:  13.97536  1060.000      ....
-28   / 28:  21.99063  1100.000      ....
- 
-! AND HERE WE SHOW IT GRAPHICALLY
-cancel mode calendar
-set view upper
-shade/hlim=20:1100 my_data[x=180]
- 
-set view lower
-plot/vs/xlim=20:1100/ylim=0:1000 tpts, 0*MISSING(sampl_pts,0) + 500
-plot/vs/color=red/over tpts, sampl_pts
- 
- 
-set mode calendar
- 
-GO bn_reset
-cancel mode verify
-GO 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"
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_cancel_upcase_uservar.jnl
-! bn_cancel_upcase_uservar.jnl
-!
-! Ferret v6.2
-! MODE upcase_only cancelled, now writes lowercase
-! spelling for user-defined variables and for coordinate
-! variables even coming from two different datasets.
- 
-CANCEL MODE upcase
- 
-! 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]
-save/file=a.nc/clobber MyUpperLowerCaseVar
- 
-! Open two datafiles. These have variable and axis
-! names in lowercase.
- 
-USE a1478.nc
-USE a_cartesian_bug1179.nc
- 
-! Define an output variable with some axes from each dataset.
-LET/D=2 zvar = z[gz=temp[d=2]]
-LET newvar =  0*zvar[d=2] + olr[d=1]
-SET ATT/LIKE=olr[d=1] newvar
-SET ATT/OUTPUT=all newvar
- 
-SAVE/APPEND/FILE=a.nc newvar
-SP ncdump -h a.nc >> all_ncdump.out
- 
-SET MODE/LAST upcase_output
- 
-GO bn_reset
-cancel mode verify
-GO 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.
- 
-! test many simultaneous netCDF files
-GO bn_cdf_keepax.sub1
-! bn230_cdf.sub1
-! benchmark to test multiple netCDF simultaneous accesses
-! requires version 2.30 or later
-! 6/92
- 
-! V5 *sh* 7/99 -- clean up files before writing
- 
-cancel region
-canc var/all
-cancel data/all
- 
-! delete old ones
-sp rm -f test0[a-p].cdf
- 
-! write a bunch of em
-list/format=cdf/keep_axnames/append/l=1:500/file=test0a.cdf l
-list/format=cdf/keep_axnames/append/l=1:500/file=test0b.cdf/rigid l
-list/format=cdf/keep_axnames/append/l=1:500/file=test0c.cdf/rigid l
-list/format=cdf/keep_axnames/append/l=1:500/file=test0d.cdf/rigid l
-list/format=cdf/keep_axnames/append/l=1:500/file=test0e.cdf/rigid l
-list/format=cdf/keep_axnames/append/l=1:500/file=test0f.cdf/rigid l
-list/format=cdf/keep_axnames/append/l=1:500/file=test0g.cdf/rigid l
-list/format=cdf/keep_axnames/append/l=1:500/file=test0h.cdf/rigid l
-list/format=cdf/keep_axnames/append/l=1:500/file=test0i.cdf/rigid l
-list/format=cdf/keep_axnames/append/l=1:500/file=test0j.cdf/rigid l
-list/format=cdf/keep_axnames/append/l=1:500/file=test0k.cdf/rigid l
-list/format=cdf/keep_axnames/append/l=1:500/file=test0l.cdf/rigid l
-list/format=cdf/keep_axnames/append/l=1:500/file=test0m.cdf/rigid l
-list/format=cdf/keep_axnames/append/l=1:500/file=test0n.cdf/rigid l
-list/format=cdf/keep_axnames/append/l=1:500/file=test0o.cdf/rigid l
-list/format=cdf/keep_axnames/append/l=1:500/file=test0p.cdf/rigid l
- 
-! initialize all at once
-set data/format=cdf test0a, test0b, test0c, test0d, test0e, test0f, test0g, test0h, test0i, test0j, test0k, test0l, test0n, test0m, test0o, test0p
-show data 1
-     currently SET data sets:
-    1> ./test0a.cdf
- name     title                             I         J         K         L         M         N
- L_       L                                ...       ...       ...       1:500     ...       ...
-       (axis ABSTRACT)
- 
-show data/br
-     currently SET data sets:
-    1> ./test0a.cdf
-    2> ./test0b.cdf
-    3> ./test0c.cdf
-    4> ./test0d.cdf
-    5> ./test0e.cdf
-    6> ./test0f.cdf
-    7> ./test0g.cdf
-    8> ./test0h.cdf
-    9> ./test0i.cdf
-   10> ./test0j.cdf
-   11> ./test0k.cdf
-   12> ./test0l.cdf
-   13> ./test0n.cdf
-   14> ./test0m.cdf
-   15> ./test0o.cdf
-   16> ./test0p.cdf  (default)
- 
-! test access to one
-stat l_[d=1]
- 
-             L
-             axis ABSTRACT
-             X:  N/A
-             Y:  N/A
-             Z:  N/A
-             T: 0.5 to 501
-             E:  N/A
-             F:  N/A
-             DATA SET: ./test0a.cdf
- 
- Total # of data points: 500 (1*1*1*500*1*1)
- # flagged as bad  data: 0
- Minimum value: 1
- Maximum value: 500
- Mean    value: 250.5 (unweighted average)
- Standard deviation: 144.48
- 
-! test access to all
-stat l_[d=1]-l_[d=2]+l_[d=3]-l_[d=4]+l_[d=5]-l_[d=6]+l_[d=7]-l_[d=8]+l_[d=9]-l_[d=10]+l_[d=11]-l_[d=12]+l_[d=13]-l_[d=14]+l_[d=15]-l_[d=16]
- 
-             L_[D=test0a]-L_[D=test0b]+L_[D=test0c]-L_[D=test0d]+L_[D=test0e]-L_[D=test0f]+L_[D=test0g]-L_[D=test0h]+L_[D=test0i]-L_[D=test0j]+L_[D=test0k]-L_[D=test0l]+L_[D=test0n]-L_[D=test0m
-             X:  N/A
-             Y:  N/A
-             Z:  N/A
-             T: 0.5 to 501
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 500 (1*1*1*500*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
-cancel data/all
- 
-! test abstract variable io
-GO bn_cdf_keepax.sub2
-! bn230_cdf.sub2
-! benchmark to test abstract variable netCDF input and output
-! requires version 2.30 or later
-! 6/92
- 
-! V5 *sh* 7/99 added /CLOBBER
- 
-cancel region
-canc var/all
-cancel data/all
- 
-! define a realistic time series grid
-define axis/t="1-jan-1902":"1-jan-2010":1/unit=day tcentury
-define grid/like=abstract/t=tcentury gcentury
-let tlong = t[g=gcentury]
- 
-let i1 = i
-let j1 = j
-let k1 = k
-let l1 = l[g=gcentury]
-let l2 = l
-let ij = i+j
-let ik = i+k
-let il = i+l1
-let jk = j+k
-let jl = j+l1
-let kl = k+l1
-let ijk = i+j+k
-let ikl = i+k+l1
-let ijl = i+j+l1
-let jkl = j+k+l1
-let ijkl = i+j+k+l1
-let ijk2 = i+j+k
-let ikl2 = i+k+l1
-let ijl2 = i+j+l1
-let jkl2 = j+k+l1
-let iavejkl = ijkl[i=@ave]
-let ijavekl = ijkl[j=@ave]
-let ijkavel = ijkl[k=@ave]
-let ijklave = ijkl[l=@ave]
- 
-! a bunch of basic geometries
-! 1d
-list/format=cdf/keep_axnames/i=1:10/clobber/file=test_abs.cdf i1   ! not /APPEND - must be new
-list/format=cdf/keep_axnames/j=1:20/append/file=test_abs.cdf j1
-list/format=cdf/keep_axnames/k=1:100/append/file=test_abs.cdf k1
-list/format=cdf/keep_axnames/l=1:10/append/file=test_abs.cdf l1           ! record axis
-list/format=cdf/keep_axnames/l=1:10/append/file=test_abs.cdf l2           ! rigid axis
- 
-! 2D
-list/format=cdf/keep_axnames/i=1:10/j=1:20/append/file=test_abs.cdf ij
-list/format=cdf/keep_axnames/i=1:10/k=1:100/append/file=test_abs.cdf ik
-list/format=cdf/keep_axnames/i=1:10/l=5:10/append/file=test_abs.cdf il
-list/format=cdf/keep_axnames/k=1:100/j=1:20/append/file=test_abs.cdf jk
- 
-!3D
-set region/i=1:10/j=1:20/k=1:100/l=4:8
-list/format=cdf/keep_axnames/append/file=test_abs.cdf ijk
-list/format=cdf/keep_axnames/append/file=test_abs.cdf ikl
-list/format=cdf/keep_axnames/append/file=test_abs.cdf ijl
-list/format=cdf/keep_axnames/append/file=test_abs.cdf jkl
- 
-!4D
-list/format=cdf/keep_axnames/append/file=test_abs.cdf ijkl
- 
-! extend along time axis and write sub-regions
-! (note: this may leave undefined regions in other variables)
-list/format=cdf/keep_axnames/append/file=test_abs.cdf/i=1:5 /j=1:5 /l=11:12 ijl
-list/format=cdf/keep_axnames/append/file=test_abs.cdf/i=6:10/j=1:5 /l=11:12 ijl
-list/format=cdf/keep_axnames/append/file=test_abs.cdf/i=1:5 /j=6:10/l=11:12 ijl
-list/format=cdf/keep_axnames/append/file=test_abs.cdf/i=6:10/j=6:10/l=11:12 ijl
- 
-! rewrite a sub-region in the middle of the data
-list/format=cdf/keep_axnames/append/file=test_abs.cdf/i=6:8/j=6:8/l=8:10/k=3:5 ijkl
- 
-! check documentation of transforms
-list/format=cdf/keep_axnames/append/file=test_abs.cdf ijk2[i=@ave]
-list/format=cdf/keep_axnames/append/file=test_abs.cdf ikl2[i=@ave,k=@sbx:3]
-list/format=cdf/keep_axnames/append/file=test_abs.cdf ijl2[i=@ave,j=@ave]
-list/format=cdf/keep_axnames/append/file=test_abs.cdf jkl2[k=@ave,l=@ave]
-list/format=cdf/keep_axnames/append/file=test_abs.cdf iavejkl
-list/format=cdf/keep_axnames/append/file=test_abs.cdf ijavekl
-list/format=cdf/keep_axnames/append/file=test_abs.cdf ijkavel
-list/format=cdf/keep_axnames/append/file=test_abs.cdf ijklave
- 
-! look at what we've created - time axis should be regular
-set data/format=cdf test_abs
-show data/full
-     currently SET data sets:
-    1> ./test_abs.cdf  (default)
- 
- name     title                             I         J         K         L         M         N
- I1       I                                1:10      ...       ...       ...       ...       ...
-               on grid GEU1 with -1.E+34 for missing data
-             X=0.5:10.5  
- J1       J                                ...       1:20      ...       ...       ...       ...
-               on grid GEU2 with -1.E+34 for missing data
-             Y=0.5:20.5  
- K1       K                                ...       ...       1:100     ...       ...       ...
-               on grid GEU3 with -1.E+34 for missing data
-             Z=0.5:100.5  
- L1       L[G=GCENTURY]                    ...       ...       ...       1:12      ...       ...
-               on grid GEU4 with -1.E+34 for missing data
-             
- L2       L                                ...       ...       ...       1:10      ...       ...
-               on grid GEU5 with -1.E+34 for missing data
-             
- IJ       I+J                              1:10      1:20      ...       ...       ...       ...
-               on grid GEU6 with -1.E+34 for missing data
-             X=0.5:10.5  Y=0.5:20.5  
- IK       I+K                              1:10      ...       1:100     ...       ...       ...
-               on grid GEU7 with -1.E+34 for missing data
-             X=0.5:10.5  Z=0.5:100.5  
- IL       I+L1                             1:10      ...       ...       1:12      ...       ...
-               on grid GEU8 with -1.E+34 for missing data
-             X=0.5:10.5  
- JK       J+K                              ...       1:20      1:100     ...       ...       ...
-               on grid GEU9 with -1.E+34 for missing data
-             Y=0.5:20.5  Z=0.5:100.5  
- IJK      I+J+K                            1:10      1:20      1:100     ...       ...       ...
-               on grid GEU10 with -1.E+34 for missing data
-             X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IKL      I+K+L1                           1:10      ...       1:100     1:12      ...       ...
-               on grid GEU11 with -1.E+34 for missing data
-             X=0.5:10.5  Z=0.5:100.5  
- IJL      I+J+L1                           1:10      1:20      ...       1:12      ...       ...
-               on grid GEU12 with -1.E+34 for missing data
-             X=0.5:10.5  Y=0.5:20.5  
- JKL      J+K+L1                           ...       1:20      1:100     1:12      ...       ...
-               on grid GEU13 with -1.E+34 for missing data
-             Y=0.5:20.5  Z=0.5:100.5  
- IJKL     I+J+K+L1                         1:10      1:20      1:100     1:12      ...       ...
-               on grid GEU14 with -1.E+34 for missing data
-             X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IJK2     I+J+K                            ...       1:20      1:100     ...       ...       ...
-       (X=0.5:10.5 at AVE)
-               on grid GEU9 with -1.E+34 for missing data
-             Y=0.5:20.5  Z=0.5:100.5  
- IKL2     I+K+L1                           ...       ...       1:100     1:12      ...       ...
-       (X=0.5:10.5 at AVE, box smoothed by 3 pts on Z)
-               on grid GEU15 with -1.E+34 for missing data
-             Z=0.5:100.5  
- IJL2     I+J+L1                           ...       ...       ...       1:12      ...       ...
-       (X=0.5:10.5 at AV4, Y=0.5:20.5 at AV4)
-               on grid GEU4 with -1.E+34 for missing data
-             
- JKL2     J+K+L1                           ...       1:20      ...       ...       ...       ...
-       (Z=0.5:100.5 at AV4, T=JAN-1902:JAN-1902 at AV4)
-               on grid GEU2 with -1.E+34 for missing data
-             Y=0.5:20.5  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:12      ...       ...
-       (X=0.5:10.5)
-               on grid GEU13 with -1.E+34 for missing data
-             Y=0.5:20.5  Z=0.5:100.5  
- IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:12      ...       ...
-       (Y=0.5:20.5)
-               on grid GEU11 with -1.E+34 for missing data
-             X=0.5:10.5  Z=0.5:100.5  
- IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:12      ...       ...
-       (Z=0.5:100.5)
-               on grid GEU12 with -1.E+34 for missing data
-             X=0.5:10.5  Y=0.5:20.5  
- IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...       ...       ...
-       (T=JAN-1902:JAN-1902)
-               on grid GEU10 with -1.E+34 for missing data
-             X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- 
-  time range: JAN-1902 to JAN-1902
- 
-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
- normal    E
- normal    F
-cancel data test_abs
- 
-! make the time axis irregular by leaving out l=13
-list/format=cdf/keep_axnames/l=14:16/append/file=test_abs.cdf l1
-set data/format=cdf test_abs
-show data/full
-     currently SET data sets:
-    1> ./test_abs.cdf  (default)
- 
- name     title                             I         J         K         L         M         N
- I1       I                                1:10      ...       ...       ...       ...       ...
-               on grid GEU1 with -1.E+34 for missing data
-             X=0.5:10.5  
- J1       J                                ...       1:20      ...       ...       ...       ...
-               on grid GEU2 with -1.E+34 for missing data
-             Y=0.5:20.5  
- K1       K                                ...       ...       1:100     ...       ...       ...
-               on grid GEU3 with -1.E+34 for missing data
-             Z=0.5:100.5  
- L1       L[G=GCENTURY]                    ...       ...       ...       1:15      ...       ...
-               on grid GEU4 with -1.E+34 for missing data
-             
- L2       L                                ...       ...       ...       1:10      ...       ...
-               on grid GEU5 with -1.E+34 for missing data
-             
- IJ       I+J                              1:10      1:20      ...       ...       ...       ...
-               on grid GEU6 with -1.E+34 for missing data
-             X=0.5:10.5  Y=0.5:20.5  
- IK       I+K                              1:10      ...       1:100     ...       ...       ...
-               on grid GEU7 with -1.E+34 for missing data
-             X=0.5:10.5  Z=0.5:100.5  
- IL       I+L1                             1:10      ...       ...       1:15      ...       ...
-               on grid GEU8 with -1.E+34 for missing data
-             X=0.5:10.5  
- JK       J+K                              ...       1:20      1:100     ...       ...       ...
-               on grid GEU9 with -1.E+34 for missing data
-             Y=0.5:20.5  Z=0.5:100.5  
- IJK      I+J+K                            1:10      1:20      1:100     ...       ...       ...
-               on grid GEU10 with -1.E+34 for missing data
-             X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IKL      I+K+L1                           1:10      ...       1:100     1:15      ...       ...
-               on grid GEU11 with -1.E+34 for missing data
-             X=0.5:10.5  Z=0.5:100.5  
- IJL      I+J+L1                           1:10      1:20      ...       1:15      ...       ...
-               on grid GEU12 with -1.E+34 for missing data
-             X=0.5:10.5  Y=0.5:20.5  
- JKL      J+K+L1                           ...       1:20      1:100     1:15      ...       ...
-               on grid GEU13 with -1.E+34 for missing data
-             Y=0.5:20.5  Z=0.5:100.5  
- IJKL     I+J+K+L1                         1:10      1:20      1:100     1:15      ...       ...
-               on grid GEU14 with -1.E+34 for missing data
-             X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IJK2     I+J+K                            ...       1:20      1:100     ...       ...       ...
-       (X=0.5:10.5 at AVE)
-               on grid GEU9 with -1.E+34 for missing data
-             Y=0.5:20.5  Z=0.5:100.5  
- IKL2     I+K+L1                           ...       ...       1:100     1:15      ...       ...
-       (X=0.5:10.5 at AVE, box smoothed by 3 pts on Z)
-               on grid GEU15 with -1.E+34 for missing data
-             Z=0.5:100.5  
- IJL2     I+J+L1                           ...       ...       ...       1:15      ...       ...
-       (X=0.5:10.5 at AV4, Y=0.5:20.5 at AV4)
-               on grid GEU4 with -1.E+34 for missing data
-             
- JKL2     J+K+L1                           ...       1:20      ...       ...       ...       ...
-       (Z=0.5:100.5 at AV4, T=JAN-1902:JAN-1902 at AV4)
-               on grid GEU2 with -1.E+34 for missing data
-             Y=0.5:20.5  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:15      ...       ...
-       (X=0.5:10.5)
-               on grid GEU13 with -1.E+34 for missing data
-             Y=0.5:20.5  Z=0.5:100.5  
- IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:15      ...       ...
-       (Y=0.5:20.5)
-               on grid GEU11 with -1.E+34 for missing data
-             X=0.5:10.5  Z=0.5:100.5  
- IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:15      ...       ...
-       (Z=0.5:100.5)
-               on grid GEU12 with -1.E+34 for missing data
-             X=0.5:10.5  Y=0.5:20.5  
- IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...       ...       ...
-       (T=JAN-1902:JAN-1902)
-               on grid GEU10 with -1.E+34 for missing data
-             X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- 
-  time range: JAN-1902 to JAN-1902
- 
-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
- normal    E
- normal    F
- 
- 
-! list long time series using a rigid (non-record axis) time axis --> FAST
-list/clobber/format=cdf/keep_axnames/l=1:300000/rigid/file=test2.cdf l  ! without record dimension
-! list time series using the record dimension --> SLOW (1/50th as long axis)
-list/clobber/format=cdf/keep_axnames/l=1:5000 l                               ! auto-filename
-list/clobber/format=cdf/keep_axnames/t="1-jan-1902":"1-jan-2010"/rigid tlong  ! auto-filename
- 
-! deliberate errors
-can dat/all
-set mode ignore
-list/format=cdf/keep_axnames/l=1:10/file=test_abs.cdf l    ! file exists error
-list/format=cdf/keep_axnames/i=5:15/l=5:10/append/file=test_abs.cdf il  ! inconsistent i limits
-list/format=cdf/keep_axnames/i=1:10/j=20:25/append/file=test_abs.cdf ij ! inconsistent j limits
-list/format=cdf/keep_axnames/append/file=test_abs.cdf ijl2              ! i and j not avg'd
-list/format=cdf/keep_axnames/append/file=test_abs.cdf ijkl[k=@ave]      ! k axis averaged
-list/format=cdf/keep_axnames/l=13/append/file=test_abs.cdf l1           ! inconsistent time pt
-set data/format=cdf test0a, test0b, test0c, test0d, test0e, test0f, test0g, test0h, test0i, test0j, test0k, test0l, test0n, test0m, test0o, test0p
-list/clobber/format=cdf/keep_axnames/i=1:10 i                                ! too many netcdf files
-canc data/all
-cancel mode ignore
- 
-! show the grids created
-cancel variables/all
-set data/format=cdf test_abs
-show grid j1 jkl jkl2 iavejkl ijkl
-    GRID GEU2
- name       axis              # pts   start                end
- normal    X
- YAX1      Y                   20 r   1                    20
- normal    Z
- normal    T
- normal    E
- normal    F
-    GRID GEU13
- name       axis              # pts   start                end
- 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
- normal    E
- normal    F
-    GRID GEU2
- name       axis              # pts   start                end
- normal    X
- YAX1      Y                   20 r   1                    20
- normal    Z
- normal    T
- normal    E
- normal    F
-    GRID GEU13
- name       axis              # pts   start                end
- 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
- 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
- normal    E
- normal    F
-cancel data test_abs
- 
-! test TMAP data io
-GO bn_cdf_keepax.sub3 	! matches old outputs by using /HEADING=enhanced
-! bn320_cdf.sub3
-! benchmark to test netCDF input and output of TMAP data set variables
-! this routine added 1/26/95 to test the SAVE/HEADING=enhanced option
- 
-! V5 *sh* 7/99 added /CLOBBER
- 
-cancel data/all
-cancel variables/all
-cancel region
- 
-use gtbc011
- 
-let i1 = x[g=temp,i=1:10]
-let j1 = y[g=temp,j=5:10]
-let k1 = z[g=u,k=5:15]
-let l1 = l[g=u,l=1:3]
-let l2 = l
-let ij = taux[l=@ave]
-let ik = i1+k1
-let il = i1+l1
-let jk = j1+k1
-let jl = j1+l1
-let kl = k1+l1
-let ijk = temp[l=@ave]
-let ikl = temp[j=@ave]
-let ijl = temp[k=@ave]
-let jkl = temp[i=@ave]
-let ijkl = u
-let ijk2 = temp
-let iavejkl = ijkl[i=@ave]
-let ijavekl = ijkl[j=@ave]
-let ijkavel = ijkl[k=@ave]
-let ijklave = ijkl[l=@ave]
- 
-set region/l=1:2  ! i,j, and k unspecified
- 
-! a bunch of basic geometries
-! 1d
-list/format=cdf/keep_axnames/clobber/file=test_fil0.cdf/heading="enh" i1      ! not /APPEND - must be new
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" j1
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" k1
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" l1       ! record axis
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" l2       ! rigid axis
- 
-! 2D
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" ij
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" ik
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" il
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" jk
- 
-!3D
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" ijk
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" ikl
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" ijl
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" jkl
- 
-!4D
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" ijkl
- 
-! extend along time axis and write sub-regions
-! (note: this may leave undefined regions in other variables)
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh"/j=1:50/l=2:3 ijl
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh"/j=51:100/l=2:3 ijl
- 
-! rewrite a sub-region in the middle of the data
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh"/j=30:40/k=5/l=1:3 ijkl
- 
-! check documentation of transforms
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" iavejkl
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" ijavekl
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" ijkavel
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" ijklave
- 
-! look at what we've created - time axis should be regular
-set data/format=cdf test_fil0
-show data/full
-     currently SET data sets:
-    1> ./gtbc011.cdf
- 
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
-             deg. C on grid PS3DT1 with -1.E+34 for missing data
-             X=161W:158W  Y=30S:50N  Z=0:4149  
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
-             frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
-             X=161W:159W  Y=30S:50N  Z=0:4149  
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
-             cm/sec on grid PS3DU1 with -1.E+34 for missing data
-             X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
-             cm/sec on grid PS3DU1 with -1.E+34 for missing data
-             X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
-             cm/sec on grid PS3DW1 with -1.E+34 for missing data
-             X=161W:159W  Y=30S:50N  Z=5:4149  
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
-             dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
-             X=161.5W:158.5W  Y=28.84S:51.43N  
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
-             dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
-             X=161.5W:158.5W  Y=28.84S:51.43N  
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
-             cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
-             X=161.5W:156.5W  Y=28.84S:51.43N  
- 
-  time range: MAR-1983 to MAR-1983
- 
-    2> ./test_fil0.cdf  (default)
- 
- name     title                             I         J         K         L         M         N
- I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...       ...       ...
-               on grid PS3DT1_NYZT with -1.E+34 for missing data
-             X=130E:140E  
- J1       Y[G=TEMP,J=5:10]                 ...       5:10      ...       ...       ...       ...
-               on grid PS3DT1_NXZT with -1.E+34 for missing data
-             Y=21.11S:12.52S  
- K1       Z[G=U,K=5:15]                    ...       ...       5:15      ...       ...       ...
-               on grid PS3DU1_NXYT with -1.E+34 for missing data
-             Z=40:190  
- L1       L[G=U,L=1:3]                     ...       ...       ...       1:3       ...       ...
-               on grid GRH1 with -1.E+34 for missing data
-             
- L2       L                                ...       ...       ...       1:2       ...       ...
-               on grid GRH2 with -1.E+34 for missing data
-             
- IJ       TAUX[L=@AVE]                    69:71      1:100     ...       ...       ...       ...
-       (T=MAR-1983:MAR-1983)
-               on grid PS2DU1_NT with -1.E+34 for missing data
-             X=161.5W:158.5W  Y=28.84S:51.43N  
- IK       I1+K1                            1:10      ...       5:15      ...       ...       ...
-               on grid G092_NYT with -1.E+34 for missing data
-             X=130E:140E  Z=40:190  
- IL       I1+L1                            1:10      ...       ...       1:3       ...       ...
-               on grid G092_NYZ with -1.E+34 for missing data
-             X=130E:140E  
- JK       J1+K1                            ...       5:10      5:15      ...       ...       ...
-               on grid G103_NXT with -1.E+34 for missing data
-             Y=21.11S:12.52S  Z=40:190  
- IJK      TEMP[L=@AVE]                    70:72      1:100     1:27      ...       ...       ...
-       (T=MAR-1983:MAR-1983)
-               on grid PS3DT1_NT with -1.E+34 for missing data
-             X=161W:158W  Y=30S:50N  Z=0:4149  
- IKL      TEMP[J=@AVE]                    70:72      ...       1:27      1:3       ...       ...
-       (Y=30S:50N)
-               on grid PS3DT1_NY with -1.E+34 for missing data
-             X=161W:158W  Z=0:4149  
- IJL      TEMP[K=@AVE]                    70:72      1:100     ...       1:3       ...       ...
-       (Z=0:4149)
-               on grid PS3DT1_NZ with -1.E+34 for missing data
-             X=161W:158W  Y=30S:50N  
- JKL      TEMP[I=@AVE]                     ...       1:100     1:27      1:3       ...       ...
-       (X=130E:70W)
-               on grid GRH3 with -1.E+34 for missing data
-             Y=30S:50N  Z=0:4149  
- IJKL     U                               69:72      1:100     1:27      1:3       ...       ...
-               on grid PS3DU1 with -1.E+34 for missing data
-             X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:100     1:27      1:3       ...       ...
-       (X=130.5E:69.5W)
-               on grid GRH4 with -1.E+34 for missing data
-             Y=28.84S:51.43N  Z=0:4149  
- IJAVEKL  IJKL[J=@AVE]                    69:72      ...       1:27      1:3       ...       ...
-       (Y=28.84S:51.43N)
-               on grid PS3DU1_NY with -1.E+34 for missing data
-             X=161.5W:157.5W  Z=0:4149  
- IJKAVEL  IJKL[K=@AVE]                    69:72      1:100     ...       1:3       ...       ...
-       (Z=0:4149)
-               on grid PS3DU1_NZ with -1.E+34 for missing data
-             X=161.5W:157.5W  Y=28.84S:51.43N  
- IJKLAVE  IJKL[L=@AVE]                    69:72      1:100     1:27      ...       ...       ...
-       (T=MAR-1983:MAR-1983)
-               on grid PS3DU1_NT with -1.E+34 for missing data
-             X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- 
-  time range: MAR-1983 to MAR-1983
- 
-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
- normal    E
- normal    F
-cancel data test_fil0
-! 5/99 moved old bn230_cdf.sub3 to bn_cdf_keepax.sub4 to stay inline w/ old benchmarks *kob*
-GO bn_cdf_keepax.sub4
-! bn230_cdf
-! benchmark to test netCDF input and output of TMAP data set variables
-! requires version 2.30 or later
-! 6/92
- 
-! V5 *sh* 7/99 -- added /CLOBBER
- 
-cancel data/all
-cancel variables/all
-cancel region
- 
-use gtbc011
- 
-let i1 = x[g=temp,i=1:10]
-let j1 = y[g=temp,j=5:10]
-let k1 = z[g=u,k=5:15]
-let l1 = l[g=u,l=1:3]
-let l2 = l
-let ij = taux[l=@ave]
-let ik = i1+k1
-let il = i1+l1
-let jk = j1+k1
-let jl = j1+l1
-let kl = k1+l1
-let ijk = temp[l=@ave]
-let ikl = temp[j=@ave]
-let ijl = temp[k=@ave]
-let jkl = temp[i=@ave]
-let ijkl = u
-let ijk2 = temp
-let iavejkl = ijkl[i=@ave]
-let ijavekl = ijkl[j=@ave]
-let ijkavel = ijkl[k=@ave]
-let ijklave = ijkl[l=@ave]
- 
-set region/l=1:2  ! i,j, and k unspecified
- 
-! a bunch of basic geometries
-! 1d
-list/format=cdf/keep_axnames/clobber/file=test_fil.cdf i1      ! not /APPEND - must be new
-list/format=cdf/keep_axnames/append/file=test_fil.cdf j1
-list/format=cdf/keep_axnames/append/file=test_fil.cdf k1
-list/format=cdf/keep_axnames/append/file=test_fil.cdf l1           ! record axis
-list/format=cdf/keep_axnames/append/file=test_fil.cdf l2          ! rigid axis
- 
-! 2D
-list/format=cdf/keep_axnames/append/file=test_fil.cdf ij
-list/format=cdf/keep_axnames/append/file=test_fil.cdf ik
-list/format=cdf/keep_axnames/append/file=test_fil.cdf il
-list/format=cdf/keep_axnames/append/file=test_fil.cdf jk
- 
-!3D
-! The following is an error - axis already in the file
-!
-set mode ignore
- 
-list/format=cdf/keep_axnames/append/file=test_fil.cdf ijk
-list/format=cdf/keep_axnames/append/file=test_fil.cdf ikl
-list/format=cdf/keep_axnames/append/file=test_fil.cdf ijl
-list/format=cdf/keep_axnames/append/file=test_fil.cdf jkl
- 
-!4D
-list/format=cdf/keep_axnames/append/file=test_fil.cdf ijkl
- 
-! extend along time axis and write sub-regions
-! (note: this may leave undefined regions in other variables)
-list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=1:50/l=2:3 ijl
-list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=51:100/l=2:3 ijl
- 
-! rewrite a sub-region in the middle of the data
-list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=30:40/k=5/l=1:3 ijkl
- 
-! check documentation of transforms
-list/format=cdf/keep_axnames/append/file=test_fil.cdf iavejkl
-list/format=cdf/keep_axnames/append/file=test_fil.cdf ijavekl
-list/format=cdf/keep_axnames/append/file=test_fil.cdf ijkavel
-list/format=cdf/keep_axnames/append/file=test_fil.cdf ijklave
- 
-! look at what we've created - time axis should be regular
-set data/format=cdf test_fil
-show data/full
-     currently SET data sets:
-    1> ./gtbc011.cdf
- 
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
-             deg. C on grid PS3DT1 with -1.E+34 for missing data
-             X=161W:158W  Y=30S:50N  Z=0:4149  
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
-             frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
-             X=161W:159W  Y=30S:50N  Z=0:4149  
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
-             cm/sec on grid PS3DU1 with -1.E+34 for missing data
-             X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
-             cm/sec on grid PS3DU1 with -1.E+34 for missing data
-             X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
-             cm/sec on grid PS3DW1 with -1.E+34 for missing data
-             X=161W:159W  Y=30S:50N  Z=5:4149  
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
-             dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
-             X=161.5W:158.5W  Y=28.84S:51.43N  
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
-             dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
-             X=161.5W:158.5W  Y=28.84S:51.43N  
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
-             cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
-             X=161.5W:156.5W  Y=28.84S:51.43N  
- 
-  time range: MAR-1983 to MAR-1983
- 
-    2> ./test_fil.cdf  (default)
- 
- name     title                             I         J         K         L         M         N
- I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...       ...       ...
-               on grid GLZ1 with -1.E+34 for missing data
-             X=130E:140E  
- J1       Y[G=TEMP,J=5:10]                 ...       1:6       ...       ...       ...       ...
-               on grid GLZ2 with -1.E+34 for missing data
-             Y=21.11S:12.52S  
- K1       Z[G=U,K=5:15]                    ...       ...       1:11      ...       ...       ...
-               on grid GLZ3 with -1.E+34 for missing data
-             Z=40:190  
- L1       L[G=U,L=1:3]                     ...       ...       ...       1:3       ...       ...
-               on grid GLZ4 with -1.E+34 for missing data
-             
- L2       L                                ...       ...       ...       1:2       ...       ...
-               on grid GLZ5 with -1.E+34 for missing data
-             
- IJ       TAUX[L=@AVE]                     1:3       1:100     ...       ...       ...       ...
-       (T=MAR-1983:MAR-1983)
-               on grid GLZ6 with -1.E+34 for missing data
-             X=161.5W:158.5W  Y=28.84S:51.43N  
- IK       I1+K1                            1:10      ...       1:11      ...       ...       ...
-               on grid GLZ7 with -1.E+34 for missing data
-             X=130E:140E  Z=40:190  
- IL       I1+L1                            1:10      ...       ...       1:3       ...       ...
-               on grid GLZ8 with -1.E+34 for missing data
-             X=130E:140E  
- JK       J1+K1                            ...       1:6       1:11      ...       ...       ...
-               on grid GLZ9 with -1.E+34 for missing data
-             Y=21.11S:12.52S  Z=40:190  
- 
-  time range: MAR-1983 to MAR-1983
- 
-cancel variable ijkl
-show grid ijkl
-cancel data test_fil
- 
-set mode/last ignore
- 
-GO bn_cdf_reversed_keepax.sub
-! bn320_cdf_reversed.sub
-! benchmark to test netCDF input of reverse-coordinate axes
-! this routine added 3/2/95
- 
-cancel data/all
-cancel variables/all
-cancel region
- 
-set data reverse_axes
- 
-show data/var
-     currently SET data sets:
-    1> ./reverse_axes.cdf  (default)
- 
- name     title                             I         J         K         L         M         N
- FCN_NORM COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...       ...       ...
-               on grid GAF1 with -1.E+34 for missing data
-             X=129.5E:179.5W  Y=10.5S:10.5N  
- FCN_REV  COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...       ...       ...
-               on grid GAF2 with -1.E+34 for missing data
-             X=129.5E:179.5W  Y=10.5S:10.5N  
- FCN_REV_SUB
-          COS(X/10)*SIN(Y/2)               1:51     10:19      ...       ...       ...       ...
-               on grid GREV with -1.E+34 for missing data
-             X=129.5E:179.5W  Y=1.5S:8.5N  
- 
- 
-list/x=180 fcn_norm,fcn_rev
- WARNING: Listed variables have ambiguous coordinates on axes: Y
-             DATA SET: ./reverse_axes.cdf
-             LONGITUDE: 180E
- Column  1: FCN_NORM is COS(X/10)*SIN(Y/2)
- Column  2: FCN_REV is COS(X/10)*SIN(Y/2)
-          FCN_NOR    FCN_REV
-J /  1:  0.6331937 -0.6331937
-J /  2:  0.6454794 -0.6454794
-J /  3:  0.4997293 -0.4997293
-J /  4:  0.2316280 -0.2316280
-J /  5: -0.0931839  0.0931839
-J /  6: -0.3951811  0.3951811
-J /  7: -0.6004243  0.6004243
-J /  8: -0.6586626  0.6586626
-J /  9: -0.5556374  0.5556374
-J / 10: -0.3165727  0.3165727
-J / 11:  0.0000000  0.0000000
-J / 12:  0.3165727 -0.3165727
-J / 13:  0.5556374 -0.5556374
-J / 14:  0.6586626 -0.6586626
-J / 15:  0.6004243 -0.6004243
-J / 16:  0.3951811 -0.3951811
-J / 17:  0.0931839 -0.0931839
-J / 18: -0.2316280  0.2316280
-J / 19: -0.4997293  0.4997293
-J / 20: -0.6454794  0.6454794
-J / 21: -0.6331937  0.6331937
-list/x=180 fcn_rev_sub
-             VARIABLE : COS(X/10)*SIN(Y/2)
-             FILENAME : reverse_axes.cdf
-             SUBSET   : 10 points (LATITUDE)
-             LONGITUDE: 180E
-                180E    
-                51
- 8N   / 19:  0.4997293
- 7N   / 18:  0.2316280
- 6N   / 17: -0.0931839
- 5N   / 16: -0.3951811
- 4N   / 15: -0.6004243
- 3N   / 14: -0.6586626
- 2N   / 13: -0.5556374
- 1N   / 12: -0.3165727
- 0    / 11:  0.0000000
- 1S   / 10:  0.3165727
- 
-GO bn_reset
-cancel mode verify
-GO bn_keep_axisnames.jnl
-! bn_keep_axisnames.jnl
-! 2/2009 ACM
- 
-! save/KEEP_AXISNAMES prevents changes to
-! 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
-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]
-save/file=a.nc/clobber/i=30:40/L=15:28/KEEP_AXISNAMES a
- 
-sp echo "bn_keep_axisnames.jnl --- test SAVE/KEEP_AXISNAMES" >> all_ncdump.out
-sp ncdump -h a.nc >> all_ncdump.out
- 
-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
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_key_label_minmax.jnl
-! bn_key_label_minmax.jnl
- 
-! Label data min and max on vertical and horizontal keys
- 
-can mode logo
- 
-! One setting turns on annotate_key, which persists until turned off.
-PPL SHAKEY 1,,,,,,,,,,1
- 
-use levitus_climatology
-shade/lev=(-inf)(4,28,1)(inf) temp[z=0]
- 
-shade/set/lev=(-inf)(4,28,1)(inf) temp[z=0]
-ppl shakey,1,0
-ppl shade
- 
-! FILL with min and max on vertical and horizontal keys
- 
-fill/lev=(-inf)(4,28,1)(inf) temp[z=0]
- 
-fill/set/lev=(-inf)(4,28,1)(inf) temp[z=0]
-PPL SHAKEY 1,0
-ppl fill
- 
-! POLYGON with min and max on vertical key
- 
-use coads_climatology
-def axis/x=0:360:5 xq
-def axis/y=-90:90:4 yq
-let fsst =  sst[l=1,gx=xq,gy=yq]
- 
-let lon = xsequence(x[gx=xq] + 0*y[gy=yq])
-let lat = xsequence(0*x[gx=xq] + y[gy=yq])
-shade/nokey/pal=white/nolab/axes=0,0,0,0 fsst  ! set up
-go polymark poly/key/title="polygons"/lev=(-inf)(4,26,1)(inf), lon, lat, xsequence(fsst), square, 0.4
- 
- 
-! Now with closed-ended colorbars
-use levitus_climatology
-shade/lev=(4,28,1) temp[z=0]
- 
-shade/set/lev=(4,28,1) temp[z=0]
-ppl shakey,1,0
-ppl shade
- 
- 
-! restore setting: keys not annotated
-PPL SHAKEY 1,,,,,,,,,,0
- 
-! The setting can alternatively be made with the alias KEYMARK
-KEYMARK 1
- 
-! FILL with min and max on vertical and horizontal keys
- 
-fill/lev=(4,28,1) temp[z=0]
- 
-fill/set/lev=(4,28,1) temp[z=0]
-PPL SHAKEY 1,0
-ppl fill
- 
-! POLYGON with min and max on vertical key
- 
-use coads_climatology
-def axis/x=0:360:5 xq
-def axis/y=-90:90:4 yq
-let fsst =  sst[l=1,gx=xq,gy=yq]
- 
-let lon = xsequence(x[gx=xq] + 0*y[gy=yq])
-let lat = xsequence(0*x[gx=xq] + y[gy=yq])
-shade/nokey/pal=white/nolab/axes=0,0,0,0 fsst  ! set up
-go polymark poly/key/title="polygons"/lev=(4,26,1), lon, lat, xsequence(fsst), square, 0.4
- 
- 
-! restore setting: keys not annotated
-KEYMARK 0
- 
-set mode/last logo
-shade/lev=35 sst[L=1]
- 
- 
-! ******** V6.2 Additions below ***********
-GO bn_reset
-cancel mode verify
-GO bn62_bug_fixes.jnl
-! bn62_bug_fixes.jnl
-! Fixes that go into v6.2 release
- 
-GO bn_reset
-cancel mode verify
-GO err618_julday.jnl
-! err618_julday.jnl
-! Bug 1639
-! ACM 2/12/09
- 
-! reported by Martin Shcmidt, 12-Feb-2009
-!
-define axis/t=1-dec-1998:31-mar-2002:12/unit=hours/t0=1-jan-1955/cal=gregorian tax
-define grid/t=tax tgrid
-let tdummy=0*t[gt=tgrid]
- 
-let rjulianday = TAX_JDAY(t[gt=tdummy],tdummy)
-! This is correct
-list/t=27-feb-1999:02-mar-1999 rjulianday
-             VARIABLE : TAX_JDAY(T[GT=TDUMMY],TDUMMY)
-             SUBSET   : 7 points (TIME)
- 27-FEB-1999 00:00 / 177:  58.00000
- 27-FEB-1999 12:00 / 178:  58.00000
- 28-FEB-1999 00:00 / 179:  59.00000
- 28-FEB-1999 12:00 / 180:  59.00000
- 01-MAR-1999 00:00 / 181:  60.00000
- 01-MAR-1999 12:00 / 182:  60.00000
- 02-MAR-1999 00:00 / 183:  61.00000
- 
-! Now look to somewhere else
-list/t=31-dec-1999:02-jan-2000 rjulianday
-             VARIABLE : TAX_JDAY(T[GT=TDUMMY],TDUMMY)
-             SUBSET   : 5 points (TIME)
- 31-DEC-1999 00:00 / 791:  365.0000
- 31-DEC-1999 12:00 / 792:  365.0000
- 01-JAN-2000 00:00 / 793:    1.0000
- 01-JAN-2000 12:00 / 794:    1.0000
- 02-JAN-2000 00:00 / 795:    2.0000
- 
-! Now list the first region again. March 1 was
-! being listed as day 61 not day 60
-list/t=27-feb-1999:02-mar-1999 rjulianday
-             VARIABLE : TAX_JDAY(T[GT=TDUMMY],TDUMMY)
-             SUBSET   : 7 points (TIME)
- 27-FEB-1999 00:00 / 177:  58.00000
- 27-FEB-1999 12:00 / 178:  58.00000
- 28-FEB-1999 00:00 / 179:  59.00000
- 28-FEB-1999 12:00 / 180:  59.00000
- 01-MAR-1999 00:00 / 181:  60.00000
- 01-MAR-1999 12:00 / 182:  60.00000
- 02-MAR-1999 00:00 / 183:  61.00000
- 
-GO bn_reset
-cancel mode verify
-GO err611_polygons.jnl
-! err611_polygons.jnl
-! bug 1661
- 
-! Polygons over a depth axis, where the
-! plot is transposed, didnt appear.
- 
-! (from error_bars_demo script) Z axis
-define axis/z=1:15:1/depth/units=meters z5
-let/quiet xp4 = Z[gz=z5]
-let/quiet yp4 = SIN(xp4/5)
-let/quiet errors = 0.5/(xp4+5)
-plot/title="vertical profile" yp4
- 
-GO error_bars polygon/color=red/thickness=2/title="variability" yp4 errors
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_convolve.jnl
-! bn_convolve.jnl
-! test convolutions, including with missing-data.
-! compare behavior with smoothing transform spz.
- 
-let a = {0,1,1,0,1,0,0,0,,0,0,0}
-list a, a[i=@spz], convolvei(a,{.25,.5,.25})
-             X: 0.5 to 12.5
- Column  1: A is {0,1,1,0,1,0,0,0,,0,0,0}
- Column  2: A[X=@SPZ:3] is {0,1,1,0,1,0,0,0,,0,0,0} (Parzen smoothed by 3 pts on X)
- Column  3: EX#3 is CONVOLVEI(A,{.25,.5,.25})
-                  A       A        EX#3
-1    /  1:  0.000000       ....       ....
-2    /  2:  1.000000  0.7500000  0.7500000
-3    /  3:  1.000000  0.7500000  0.7500000
-4    /  4:  0.000000  0.5000000  0.5000000
-5    /  5:  1.000000  0.5000000  0.5000000
-6    /  6:  0.000000  0.2500000  0.2500000
-7    /  7:  0.000000  0.0000000  0.0000000
-8    /  8:  0.000000       ....       ....
-9    /  9:      ....       ....       ....
-10   / 10:  0.000000       ....       ....
-11   / 11:  0.000000  0.0000000  0.0000000
-12   / 12:  0.000000       ....       ....
- 
-! The second argument does not have to be on the
-! same axis as the first.
-let b = ysequence({0,1,1,0,1,0,0,0,,0,0,0})
-let bpat = ysequence({.25,.5,.25})
-list b, b[j=@spz], convolvej(b,bpat), convolvej(b,{.1,.4,.4,.1})
-             Y: 0.5 to 12.5
- Column  1: B is YSEQUENCE({0,1,1,0,1,0,0,0,,0,0,0})
- Column  2: B[Y=@SPZ:3] is YSEQUENCE({0,1,1,0,1,0,0,0,,0,0,0}) (Parzen smoothed by 3 pts on Y)
- Column  3: EX#3 is CONVOLVEJ(B,BPAT)
- Column  4: EX#4 is CONVOLVEJ(B,{.1,.4,.4,.1})
-                  B       B        EX#3       EX#4
-1    /  1:  0.000000       ....       ....       ....
-2    /  2:  1.000000  0.7500000  0.7500000  0.8000000
-3    /  3:  1.000000  0.7500000  0.7500000  0.6000000
-4    /  4:  0.000000  0.5000000  0.5000000  0.5000000
-5    /  5:  1.000000  0.5000000  0.5000000  0.4000000
-6    /  6:  0.000000  0.2500000  0.2500000  0.1000000
-7    /  7:  0.000000  0.0000000  0.0000000       ....
-8    /  8:  0.000000       ....       ....       ....
-9    /  9:      ....       ....       ....       ....
-10   / 10:  0.000000       ....       ....       ....
-11   / 11:  0.000000  0.0000000  0.0000000       ....
-12   / 12:  0.000000       ....       ....       ....
- 
- 
-let c = zsequence({0,1,1,0,1,0,0,0,,0,0,0})
-list c, c[k=@spz], convolvek(c,{.25,.5,.25})
-             Z: 0.5 to 12.5
- Column  1: C is ZSEQUENCE({0,1,1,0,1,0,0,0,,0,0,0})
- Column  2: C[Z=@SPZ:3] is ZSEQUENCE({0,1,1,0,1,0,0,0,,0,0,0}) (Parzen smoothed by 3 pts on Z)
- Column  3: EX#3 is CONVOLVEK(C,{.25,.5,.25})
-                  C       C        EX#3
-1    /  1:  0.000000       ....       ....
-2    /  2:  1.000000  0.7500000  0.7500000
-3    /  3:  1.000000  0.7500000  0.7500000
-4    /  4:  0.000000  0.5000000  0.5000000
-5    /  5:  1.000000  0.5000000  0.5000000
-6    /  6:  0.000000  0.2500000  0.2500000
-7    /  7:  0.000000  0.0000000  0.0000000
-8    /  8:  0.000000       ....       ....
-9    /  9:      ....       ....       ....
-10   / 10:  0.000000       ....       ....
-11   / 11:  0.000000  0.0000000  0.0000000
-12   / 12:  0.000000       ....       ....
- 
-let d = tsequence({0,1,1,0,1,0,0,0,,0,0,0})
-let dpat = tsequence({.25,.5,.25})
-list d, d[l=@spz], convolvel(d,{.25,.5,.25})
-             T: 0.5 to 13
- Column  1: D is TSEQUENCE({0,1,1,0,1,0,0,0,,0,0,0})
- Column  2: D[T=@SPZ:3] is TSEQUENCE({0,1,1,0,1,0,0,0,,0,0,0}) (Parzen smoothed by 3 pts on T)
- Column  3: EX#3 is CONVOLVEL(D,{.25,.5,.25})
-                  D       D        EX#3
-1    /  1:  0.000000       ....       ....
-2    /  2:  1.000000  0.7500000  0.7500000
-3    /  3:  1.000000  0.7500000  0.7500000
-4    /  4:  0.000000  0.5000000  0.5000000
-5    /  5:  1.000000  0.5000000  0.5000000
-6    /  6:  0.000000  0.2500000  0.2500000
-7    /  7:  0.000000  0.0000000  0.0000000
-8    /  8:  0.000000       ....       ....
-9    /  9:      ....       ....       ....
-10   / 10:  0.000000       ....       ....
-11   / 11:  0.000000  0.0000000  0.0000000
-12   / 12:  0.000000       ....       ....
- 
-! 2D - convolvei convolves in x ...
-let a = {0,1,1,0,1,0,0,0,,0,0,0} + y[y=1:2]
-list a, a[i=@spz], convolvei(a,{.25,.5,.25})
-             X: 0.5 to 12.5
-             Y: 0.5 to 2.5
- Column  1: A is {0,1,1,0,1,0,0,0,,0,0,0} + Y[Y=1:2]
- Column  2: A[X=@SPZ:3] is {0,1,1,0,1,0,0,0,,0,0,0} + Y[Y=1:2] (Parzen smoothed by 3 pts on X)
- Column  3: EX#3 is CONVOLVEI(A,{.25,.5,.25})
-                  A      A        EX#3
- ---- J:1 Y:   1
-1    /  1:  1.000000      ....      ....
-2    /  2:  2.000000  1.750000  1.750000
-3    /  3:  2.000000  1.750000  1.750000
-4    /  4:  1.000000  1.500000  1.500000
-5    /  5:  2.000000  1.500000  1.500000
-6    /  6:  1.000000  1.250000  1.250000
-7    /  7:  1.000000  1.000000  1.000000
-8    /  8:  1.000000      ....      ....
-9    /  9:      ....      ....      ....
-10   / 10:  1.000000      ....      ....
-11   / 11:  1.000000  1.000000  1.000000
-12   / 12:  1.000000      ....      ....
- ---- J:2 Y:   2
-1    /  1:  2.000000      ....      ....
-2    /  2:  3.000000  2.750000  2.750000
-3    /  3:  3.000000  2.750000  2.750000
-4    /  4:  2.000000  2.500000  2.500000
-5    /  5:  3.000000  2.500000  2.500000
-6    /  6:  2.000000  2.250000  2.250000
-7    /  7:  2.000000  2.000000  2.000000
-8    /  8:  2.000000      ....      ....
-9    /  9:      ....      ....      ....
-10   / 10:  2.000000      ....      ....
-11   / 11:  2.000000  2.000000  2.000000
-12   / 12:  2.000000      ....      ....
- 
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_tax_tstep.jnl
-! bn_tax_tstep.jnl
-!
-! Working with the coordinates of this axis loses accuracy because its
-! time origin is so far back from the time it represents
- 
-DEFINE AXIS/T="1-JAN-2000:00:00:01":"1-JAN-2000:00:15:00":2/UNITS=seconds tsec
-LIST/L=440:451 T[GT=tsec]  ! See the accuracy problem here
-             VARIABLE : T
-                        axis TSEC
-             SUBSET   : 12 points (TIME)
- 01-JAN-2000 00:14:39 / 440:  3122928879.
- 01-JAN-2000 00:14:41 / 441:  3122928881.
- 01-JAN-2000 00:14:43 / 442:  3122928883.
- 01-JAN-2000 00:14:45 / 443:  3122928885.
- 01-JAN-2000 00:14:47 / 444:  3122928887.
- 01-JAN-2000 00:14:49 / 445:  3122928889.
- 01-JAN-2000 00:14:51 / 446:  3122928891.
- 01-JAN-2000 00:14:53 / 447:  3122928893.
- 01-JAN-2000 00:14:55 / 448:  3122928895.
- 01-JAN-2000 00:14:57 / 449:  3122928897.
- 01-JAN-2000 00:14:59 / 450:  3122928899.
- 01-JAN-2000 00:15:01 / 451:  3122928901.
- 
-LET bsin = SIN(t[GT=tsec]/40000)
-SAVE/FILE=a.nc/clobber bsin
-CAN VAR/all
-USE a.nc
- 
-SET LIST/PREC=7
-! Reset the date to dec 1999
-! Function lets us leave off the leading 0.
-LIST/L=1:15  TAX_TSTEP(bsin, "1-dec-1999:00:00:00" )
-             VARIABLE : TAX_TSTEP(BSIN, "1-dec-1999:00:00:00" )
-             FILENAME : a.nc
-             SUBSET   : 15 points (TIME)
- 01-JAN-2000 00:00:01 /  1:  2678401.
- 01-JAN-2000 00:00:03 /  2:  2678403.
- 01-JAN-2000 00:00:05 /  3:  2678405.
- 01-JAN-2000 00:00:07 /  4:  2678407.
- 01-JAN-2000 00:00:09 /  5:  2678409.
- 01-JAN-2000 00:00:11 /  6:  2678411.
- 01-JAN-2000 00:00:13 /  7:  2678413.
- 01-JAN-2000 00:00:15 /  8:  2678415.
- 01-JAN-2000 00:00:17 /  9:  2678417.
- 01-JAN-2000 00:00:19 / 10:  2678419.
- 01-JAN-2000 00:00:21 / 11:  2678421.
- 01-JAN-2000 00:00:23 / 12:  2678423.
- 01-JAN-2000 00:00:25 / 13:  2678425.
- 01-JAN-2000 00:00:27 / 14:  2678427.
- 01-JAN-2000 00:00:29 / 15:  2678429.
- 
-! argument can be upper or lowercase
-! Should list values 1, 3, 5...
-LIST/L=1:15  TAX_TSTEP(bsin, "1-JAN-2000:00:00:00" )
-             VARIABLE : TAX_TSTEP(BSIN, "1-JAN-2000:00:00:00" )
-             FILENAME : a.nc
-             SUBSET   : 15 points (TIME)
- 01-JAN-2000 00:00:01 /  1:   1.00000
- 01-JAN-2000 00:00:03 /  2:   3.00000
- 01-JAN-2000 00:00:05 /  3:   5.00000
- 01-JAN-2000 00:00:07 /  4:   7.00000
- 01-JAN-2000 00:00:09 /  5:   9.00000
- 01-JAN-2000 00:00:11 /  6:  11.00000
- 01-JAN-2000 00:00:13 /  7:  13.00000
- 01-JAN-2000 00:00:15 /  8:  15.00000
- 01-JAN-2000 00:00:17 /  9:  17.00000
- 01-JAN-2000 00:00:19 / 10:  19.00000
- 01-JAN-2000 00:00:21 / 11:  21.00000
- 01-JAN-2000 00:00:23 / 12:  23.00000
- 01-JAN-2000 00:00:25 / 13:  25.00000
- 01-JAN-2000 00:00:27 / 14:  27.00000
- 01-JAN-2000 00:00:29 / 15:  29.00000
- 
-! Test  with TAX_DATESTRING to set the date (but argument to
-! TAX_DATESTRING is also limited by precision so use a different
-! axis def.)
- 
-DEFINE AXIS/T="1-JAN-1902:00:00:00":"1-JAN-1902:00:30:00":5/UNITS=seconds tsec
-LIST/L=200:205 T[GT=tsec]  ! accuracy loss in single-precision t
-             VARIABLE : T
-                        axis TSEC
-             SUBSET   : 6 points (TIME)
- 01-JAN-1902 00:16:35 / 200:  30327395.
- 01-JAN-1902 00:16:40 / 201:  30327400.
- 01-JAN-1902 00:16:45 / 202:  30327405.
- 01-JAN-1902 00:16:50 / 203:  30327410.
- 01-JAN-1902 00:16:55 / 204:  30327415.
- 01-JAN-1902 00:17:00 / 205:  30327420.
- 
-LET tt = t[gt=tsec]
-LET reset_date = TAX_DATESTRING(`t[gt=tsec,l=1]`, tt, "sec")
- !-> DEFINE VARIABLE reset_date = TAX_DATESTRING(30326400, tt, "sec")
-LIST/L=1:15 TAX_TSTEP(tt, "`reset_date`")
- !-> LIST/L=1:15 TAX_TSTEP(tt, "01-JAN-1902 00:00:00")
-             VARIABLE : TAX_TSTEP(TT, "01-JAN-1902 00:00:00")
-             SUBSET   : 15 points (TIME)
- 01-JAN-1902 00:00:00 /  1:   0.00000
- 01-JAN-1902 00:00:05 /  2:   5.00000
- 01-JAN-1902 00:00:10 /  3:  10.00000
- 01-JAN-1902 00:00:15 /  4:  15.00000
- 01-JAN-1902 00:00:20 /  5:  20.00000
- 01-JAN-1902 00:00:25 /  6:  25.00000
- 01-JAN-1902 00:00:30 /  7:  30.00000
- 01-JAN-1902 00:00:35 /  8:  35.00000
- 01-JAN-1902 00:00:40 /  9:  40.00000
- 01-JAN-1902 00:00:45 / 10:  45.00000
- 01-JAN-1902 00:00:50 / 11:  50.00000
- 01-JAN-1902 00:00:55 / 12:  55.00000
- 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
- 
-GO bn_reset
-cancel mode verify
-GO bn_grads_z.jnl
-! bn_grads_z.jnl
-! acm 3/31/09
-! Fixing bug 1651.
-! The file has no axis attributes other than units and long_name,
-! does not contain any other clues that Ferret uses to get a Z
-! axis direction but for variable AR, has attribute
-! DAXIS:long_name = "depth" ; This bug came from a question about the file
-! http://www.usgodae.org/dods/GDS_NC/gdem/sspgdemv3s"
-! See the bug report for more.
- 
-USE grads_bug_file.nc
- 
-! Previously A1 thru A4 showed as if on an x axis
-! A1 has z axis with long_name elev
-! A2 has z axis with long name height
-! A3 has z axis with long name level
-! A4 has z axis with long name layer
-SHOW DATA
-     currently SET data sets:
-    1> ./grads_bug_file.nc  (default)
- name     title                             I         J         K         L         M         N
- AM       Z[GZ=CAXIS] + Y[GY=BAXIS] + X[G  1:10      1:5       1:5       ...       ...       ...
- AR       Z[GZ=DAXIS]+ Y[GY=BAXIS] + X[GX  1:10      1:5       1:6       ...       ...       ...
- A1                                        ...       ...       1:5       ...       ...       ...
- A2                                        ...       ...       1:5       ...       ...       ...
- A3                                        ...       ...       1:5       ...       ...       ...
- A4                                        ...       ...       1:5       ...       ...       ...
- 
- 
-! The z axis of AM has no useful clues about its direction.
-! 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
- normal    T
- normal    E
- normal    F
- 
-! This axis has long_name = "depth" so it is (now) reversed.
-! 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
- normal    T
- normal    E
- normal    F
- 
-! Can redefine the axis for variable AM to make it a z depth axis
- 
-DEFINE SYMBOL zname = `am,RETURN=zaxis`
- !-> DEFINE SYMBOL zname = CAXIS
-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
- normal    T
- normal    E
- normal    F
- 
-GO bn_clock_syms
-SH SYM delta_cpu, clock_secs, current_date, current_time
-DELTA_CPU = "37.8522"
-CLOCK_SECS = "78.607"
-CURRENT_DATE = "12-Nov-13"
-CURRENT_TIME = "15:13:28"
-! test special symbols DELTA_CPU, CLOCK_SECS
-!
-! NOTE THAT THE VALUES OF THE SYMBOLS WILL VARY FROM ONE
-! RUN OF THIS TO ANOTHER...
- 
-use gt4d011
-shade/k=1 temp[L=@ave]
-sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.033995"
-CLOCK_SECS = "78.676"
- 
-repeat/k=1:10 shade temp[L=@ave]
-!-> REPEAT: K=1
-!-> REPEAT: K=2
-!-> REPEAT: K=3
-!-> REPEAT: K=4
-!-> REPEAT: K=5
-!-> REPEAT: K=6
-!-> REPEAT: K=7
-!-> REPEAT: K=8
-!-> REPEAT: K=9
-!-> REPEAT: K=10
-let ten_plots = ($DELTA_CPU)
- !-> DEFINE VARIABLE ten_plots = 0.314951
-sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.001"
-CLOCK_SECS = "79.62"
- 
-let  sumclock = 0
-let  sumcpu = 0
-sh sym CLOCK_SECS
-CLOCK_SECS = "79.621"
-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.033996
- !-> DEFINE VARIABLE sumcpu =0.033996
-!-> REPEAT: K=2
- !-> DEFINE VARIABLE dt = 0.037994
- !-> DEFINE VARIABLE sumcpu =0.07199
-!-> REPEAT: K=3
- !-> DEFINE VARIABLE dt = 0.035994
- !-> DEFINE VARIABLE sumcpu =0.107984
-!-> REPEAT: K=4
- !-> DEFINE VARIABLE dt = 0.033995
- !-> DEFINE VARIABLE sumcpu =0.141979
-!-> REPEAT: K=5
- !-> DEFINE VARIABLE dt = 0.036994
- !-> DEFINE VARIABLE sumcpu =0.178973
-!-> REPEAT: K=6
- !-> DEFINE VARIABLE dt = 0.034995
- !-> DEFINE VARIABLE sumcpu =0.213968
-!-> REPEAT: K=7
- !-> DEFINE VARIABLE dt = 0.034995
- !-> DEFINE VARIABLE sumcpu =0.248963
-!-> REPEAT: K=8
- !-> DEFINE VARIABLE dt = 0.036995
- !-> DEFINE VARIABLE sumcpu =0.285958
-!-> REPEAT: K=9
- !-> DEFINE VARIABLE dt = 0.036993
- !-> DEFINE VARIABLE sumcpu =0.322951
-!-> REPEAT: K=10
- !-> DEFINE VARIABLE dt = 0.034996
- !-> DEFINE VARIABLE sumcpu =0.357947
- 
-say `sumcpu`
- !-> MESSAGE/CONTINUE 0.357947
-0.357947
-sh sym CLOCK_SECS
-CLOCK_SECS = "80.865"
- 
-SH SYM session_date, current_date, session_time, current_time
-SESSION_DATE = "12-Nov-13"
-SESSION_TIME = "15:12"
-CURRENT_DATE = "12-Nov-13"
-CURRENT_TIME = "15:13:30"
- 
- 
-! ******** V6.3 Additions below ***********
-! Note that allowing mouse-click operations in the current
-! window, not only in window 1, is implemented in v6.3. Not
-! tested in the benchmarks.
- 
-GO bn_reset
-cancel mode verify
-GO bn63_bug_fixes.jnl
-! bn63_bug_fixes.jnl
-! Fixes that go into v6.3 release
- 
-GO bn_reset
-cancel mode verify
-GO err62_string_write_nc
-! err62_string_write_nc.jnl
-! Bug 1664: string variable written as a float.
-!
- 
-!!!! Make a smaller file from the original file:
- 
-!!!! use "/home/nstout/hankin/SOCAT_triples.nc"
-!!!! save/file=err62_string_write.nc/clobber cruise_id[i=1:104000:1000], cruise_no[i=1:104000:1000]
- 
-! use "/home/nstout/hankin/SOCAT_triples.nc"
-! set mem/siz=200
-!DEFINE SYMBOL clen 3000
- 
-use err62_string_write.nc
-DEFINE SYMBOL clen 30
- 
-let I1d = i[g=cruise_no]
- 
-let cm0 = IF CRUISE_NO NE CRUISE_NO[I=@SHF:-1] THEN 1    ! marks each real cruise
-let cm1 = if i eq 1 then 1 else cm0                      ! start of first cruise, too
-let cm2 = if MOD(cm1[i=@cib], ($clen) ) eq 0 then 1          ! break into chunks
- !-> DEFINE VARIABLE cm2 = if MOD(cm1[i=@cib], 30 ) eq 0 then 1
-let mask = MISSING(cm1, cm2)
- 
-DEFINE SYMBOL nk = `mask[i=@ngd]`
- !-> DEFINE SYMBOL nk = 11
- 
-! **** IF EITHER OF THESE LINES IS COMMENTED OUT
-!      THE STRING VAR cruise_id_xz IS SAVED OK
-let/title="cruise no"  cruise_no_xz = EXPNDI_BY_Z(cruise_no,mask,`($nk)+1`,($clen) )
- !-> DEFINE VARIABLE/title="cruise no"  cruise_no_xz = EXPNDI_BY_Z(cruise_no,mask,12,30 )
-SAVE/CLOBBER/FILE="a.nc"/i=1:10 cruise_no
- 
-let kstarts = mask * i
-let kst = COMPRESSI(kstarts)
-let/title="cruise ID" cruise_id_xz = SAMPLEI(cruise_id, kst[i=1:($nk)])
- !-> DEFINE VARIABLE/title="cruise ID" cruise_id_xz = SAMPLEI(cruise_id, kst[i=1:11])
-list/i=1:10 cruise_id_xz
-             VARIABLE : cruise ID
-             FILENAME : err62_string_write.nc
-             SUBSET   : 10 points (X)
- 1    /  1:"0001SFC_PRT"
- 2    /  2:"0002SFC_PRT"
- 3    /  3:"0003SFC_PRT"
- 4    /  4:"0004SFC_PRT"
- 5    /  5:"0005SFC_PRT"
- 6    /  6:"0006SFC_PRT"
- 7    /  7:"0008SFC_PRT"
- 8    /  8:"007ASFC_PRT"
- 9    /  9:"0101SFC_PRT"
- 10   / 10:"0102SFC_PRT"
- 
-! *** THE VARIABLE cruise_id_xz GETS SAVED AS FLOAT INSTEAD OF STRING
-save/clobber/file=a.nc/i=1:10 cruise_id_xz
- 
-! Check the file
-canc var/all
-use a.nc
- 
-! Should be the same strings as above.
-list cruise_id_xz
-             VARIABLE : cruise ID
-             FILENAME : a.nc
-             SUBSET   : 10 points (X)
- 1    /  1:"0001SFC_PRT"
- 2    /  2:"0002SFC_PRT"
- 3    /  3:"0003SFC_PRT"
- 4    /  4:"0004SFC_PRT"
- 5    /  5:"0005SFC_PRT"
- 6    /  6:"0006SFC_PRT"
- 7    /  7:"0008SFC_PRT"
- 8    /  8:"007ASFC_PRT"
- 9    /  9:"0101SFC_PRT"
- 10   / 10:"0102SFC_PRT"
- 
-GO bn_reset
-cancel mode verify
-GO err62_levset
-! err62_levset.jnl
-! fix for bug 1672, top color level chopped off in some circumstances
-! The color bar should extend to 385.4
- 
-let var = 0*y + x
-shade/x=350:390/y=1:10/lev=(376.6,379.0,0.8)(379.0,385.4,0.2) var
- 
- 
-GO bn_reset
-cancel mode verify
-GO err62_thick_tic_time_axis
-! err62_thick_tic_time_axis.jnl
-! Fixing bug 1668
-!
-! On multi-year or multi-decade time-axis plots, the
-! dark line every year or 5- or 10-years, sometimes
-! disappeared due to pixel aliasing. Fixed by setting
-! the thick-line for these tics.
- 
- 
-define axis/t=1-jan-1990:1-jan-2010:1/units=months tax
- 
-set mode meta timetics.plt
-let tt = l[gt=tax]
-set view upper; plot/thick/line cos(tt/20)
-set view lower; plot/thick/line/t=1-jan-1991:1-jan-1997 cos(tt/20)
-can view
- 
-! Check that we get the thick dark black line for the tics on
-! plots with more line colors
-set mode linec:12
-sho mode linecolors
-      MODE            STATE        ARGUMENT
-      LINECOLORS       SET              12
- 
-can win/all
-set win/new
- 
-set mode meta timetics2.plt
- 
-ppl color,7,100,50,0   ! orange
-ppl color,8,0,55,0     ! dark green
-ppl color,9,60,0,100   ! purple
-ppl color,10,100,60,70 ! pink
-ppl color,11,80,70,60  ! tan
-ppl color,12,100,75,0  ! yellow
- 
- 
-let tt = l[gt=tax]
-plot/thick/line \
- cos(tt/20), cos(tt/24), cos(tt/28), cos(tt/32), \
- cos(tt/36), cos(tt/40), cos(tt/44), cos(tt/48), \
- cos(tt/52), cos(tt/56), cos(tt/60), cos(tt/64)
- 
-can mode linecolors
-can win/all
-set win/new
- 
- 
-GO bn_reset
-cancel mode verify
-GO err62_reset_after_inf
-! err62_reset_after_inf.jnl
-! Bug 1292
-! The levels did not reset to default closed levels
- 
-Set mode meta closed_lev.plt
- 
-use levitus_climatology
-set view left
-shade/lev=(-inf)(2,24,2)(inf) temp[k=1]
- 
-! The bug was that this did not reset to default closed levels
-set view right
-shade/lev=20 temp[k=1]
-cancel mode meta
- 
- 
-GO bn_reset
-cancel mode verify
-GO err62_reversed_up
-! err62_reversed_up.jnl
-!
-! bug 1676:
-! reversed axis, positive up, with edges could
-! not check points-inside-edges and so would
-! just use midpts between coordinates as edges
- 
-use lev_rev_up.nc
- 
-use lev_rev_up.nc
-list z[gz=temp], zboxlo[gz=temp], zboxhi[gz=temp]
-             DATA SET: ./lev_rev_up.nc
-             Z (METERS): -5000 to 0
- Column  1: Z is Z (axis ZAXLEVITR)
- Column  2: ZBOXLO is ZBOXLO (axis ZAXLEVITR)
- Column  3: ZBOXHI is ZBOXHI (axis ZAXLEVITR)
-                     Z    ZBOXLO    ZBOXHI
--5000   /  1: -5000.000 -5000.000 -4500.000
--4000   /  2: -4000.000 -4500.000 -3500.000
--3000   /  3: -3000.000 -3500.000 -2500.000
--2000   /  4: -2000.000 -2500.000 -1800.000
--1500   /  5: -1500.000 -1800.000 -1300.000
--1200   /  6: -1200.000 -1300.000 -1100.000
--1000   /  7: -1000.000 -1100.000  -900.000
--800    /  8:  -800.000  -900.000  -700.000
--600    /  9:  -600.000  -700.000  -500.000
--400    / 10:  -400.000  -500.000  -350.000
--300    / 11:  -300.000  -350.000  -250.000
--200    / 12:  -200.000  -250.000  -180.000
--150    / 13:  -150.000  -180.000  -120.000
--100    / 14:  -100.000  -120.000   -90.000
--75     / 15:   -75.000   -90.000   -60.000
--50     / 16:   -50.000   -60.000   -32.000
--30     / 17:   -30.000   -32.000   -24.000
--20     / 18:   -20.000   -24.000   -12.000
--10     / 19:   -10.000   -12.000    -5.000
-0       / 20:     0.000    -5.000     0.000
- 
-! shade/j=1 temp[z=-55:0]
-! let xpts = xsequence(x[gx=temp] + 0*z[gz=temp])
-! let zpts = xsequence(0*x[gx=temp] + z[gz=temp])
-! plot/over/vs/color=lightblue/sym=27 xpts,zpts
- 
-GO bn_reset
-cancel mode verify
-GO err62_samplexy
-! err62_samplexy
-! bug 1677
- 
-use coads_climatology
- 
-! put the data on 1:360 for convenience in seeing whats going on
-save/clobber/file=xz.nc sst[x=1:360,L=1]
-can dat/all; can mem
- 
-use xz
- 
-let xpts = {357.6,358.8,359.9,360.,0.1,1.2,2.4}
-let ypts = 0*xpts
- 
-let sr = SAMPLEXY(sst[L=1], xpts, ypts)
- 
-! previously the middle 3 points of this were missing.
-list sr
-             VARIABLE : SAMPLEXY(SST[L=1], XPTS, YPTS)
-             FILENAME : xz.nc
-             SUBSET   : 7 points (X)
-             TIME     : JAN
- 1   / 1:  27.46402
- 2   / 2:  27.44937
- 3   / 3:  27.53579
- 4   / 4:  27.54567
- 5   / 5:  27.55554
- 6   / 6:  27.65924
- 7   / 7:  27.74823
- 
- 
-GO bn_reset
-cancel mode verify
-GO err62_one_point_bounds
-! err62_one_point_bounds.jnl
-! Bug 1680
-! If a single-point axis has bounds specified,
-! then on a SAVE/BOUNDS, Ferret did not save the
-! correct bounds (but instead saved coord+/- 0.5)
- 
-DEFINE AXIS/BOUNDS/Z/UNITS=meters myzaxis = {5}, {4.89,5.11}
-LET zz = Z[GZ=myzaxis]
-SAVE/BOUNDS/CLOBBER/FILE=a.nc zz
-LIST Z[GZ=zz], ZBOXLO[GZ=zz], ZBOXHI[GZ=zz]
-             Z (METERS): 5
- Column  1: Z is Z (axis MYZAXIS)
- Column  2: ZBOXLO is ZBOXLO (axis MYZAXIS)
- Column  3: ZBOXHI is ZBOXHI (axis MYZAXIS)
-                 Z    ZBOXLO    ZBOXHI
-I / *:     5.000000  4.890000  5.110000
- 
-CAN DAT/ALL; CAN VAR/ALL
-USE a.nc
-! This should match the output of the LIST above
-LIST Z[GZ=zz], ZBOXLO[GZ=zz], ZBOXHI[GZ=zz]
-             DATA SET: ./a.nc
-             Z (meters): 5
- Column  1: Z is Z (axis MYZAXIS1)
- Column  2: ZBOXLO is ZBOXLO (axis MYZAXIS1)
- Column  3: ZBOXHI is ZBOXHI (axis MYZAXIS1)
-                 Z    ZBOXLO    ZBOXHI
-I / *:     5.000000  4.890000  5.110000
- 
-GO bn_reset
-cancel mode verify
-GO err62_cos_lat_uncentered
-!err62_cos_lat_uncentered.jnl
-! See this thread, here is the esample, with his test.nc renamed to uncentered.nc
-! http://www.pmel.noaa.gov/maillists/tmap/ferret_users/fu_2009/msg00510.html
-! Also see the last comments from Andrew on bug 1348.
- 
-use uncentered.nc
-define grid/like=test grd
- 
-! list edges
-list yboxlo[g=grd],yboxhi[g=grd]
-             LATITUDE: 90S to 90N
- Column  1: YBOXLO is YBOXLO (axis LAT_T)
- Column  2: YBOXHI is YBOXHI (axis LAT_T)
-              YBOXLO    YBOXHI
-76.5S /  1: -90.00000 -70.81186
-66.4S /  2: -70.81186 -62.73396
-59.4S /  3: -62.73396 -56.44269
-53.7S /  4: -56.44269 -51.05756
-48.6S /  5: -51.05756 -46.23826
-44S   /  6: -46.23826 -41.81031
-39.7S /  7: -41.81031 -37.66989
-35.7S /  8: -37.66989 -33.74899
-31.9S /  9: -33.74899 -30.00000
-28.2S / 10: -30.00000 -26.38780
-24.6S / 11: -26.38780 -22.88538
-21.2S / 12: -22.88538 -19.47122
-17.8S / 13: -19.47122 -16.12762
-14.5S / 14: -16.12762 -12.83959
-11.2S / 15: -12.83959  -9.59407
-8S    / 16:  -9.59407  -6.37937
-4.8S  / 17:  -6.37937  -3.18474
-1.6S  / 18:  -3.18474  -0.00000
-1.6N  / 19:  -0.00000   3.18474
-4.8N  / 20:   3.18474   6.37937
-8N    / 21:   6.37937   9.59407
-11.2N / 22:   9.59407  12.83959
-14.5N / 23:  12.83959  16.12762
-17.8N / 24:  16.12762  19.47122
-21.2N / 25:  19.47122  22.88538
-24.6N / 26:  22.88538  26.38780
-28.2N / 27:  26.38780  30.00000
-31.9N / 28:  30.00000  33.74899
-35.7N / 29:  33.74899  37.66989
-39.7N / 30:  37.66989  41.81031
-44N   / 31:  41.81031  46.23826
-48.6N / 32:  46.23826  51.05756
-53.7N / 33:  51.05756  56.44269
-59.4N / 34:  56.44269  62.73396
-66.4N / 35:  62.73396  70.81186
-76.5N / 36:  70.81186  90.00000
- 
-! calculate weights w1 and w2
-let rad = 3.14159265/180
-let w1 = (yboxhi[i=1,g=grd]-yboxlo[i=1,g=grd])*cos(y[i=1,g=grd]*rad)
-let w2 = sin(yboxhi[i=1,g=grd]*rad) - sin(yboxlo[i=1,g=grd]*rad)
- 
-! list normalized weights
-list w1/w1[j=@sum],w2/w2[j=@sum]
-             LATITUDE: 90S to 90N
- Column  1: EX#1 is W1/W1[J=@SUM]
- Column  2: EX#2 is W2/W2[J=@SUM]
-                  EX#1      EX#2
-76.5S /  1:  0.03826170  0.02777778
-66.4S /  2:  0.02750340  0.02777778
-59.4S /  3:  0.02724976  0.02777778
-53.7S /  4:  0.02718343  0.02777778
-48.6S /  5:  0.02715676  0.02777778
-44S   /  6:  0.02714348  0.02777778
-39.7S /  7:  0.02713596  0.02777778
-35.7S /  8:  0.02713132  0.02777778
-31.9S /  9:  0.02712828  0.02777778
-28.2S / 10:  0.02712619  0.02777778
-24.6S / 11:  0.02712471  0.02777778
-21.2S / 12:  0.02712365  0.02777778
-17.8S / 13:  0.02712287  0.02777778
-14.5S / 14:  0.02712229  0.02777778
-11.2S / 15:  0.02712188  0.02777778
-8S    / 16:  0.02712159  0.02777778
-4.8S  / 17:  0.02712141  0.02777778
-1.6S  / 18:  0.02712133  0.02777778
-1.6N  / 19:  0.02712133  0.02777778
-4.8N  / 20:  0.02712141  0.02777778
-8N    / 21:  0.02712159  0.02777778
-11.2N / 22:  0.02712188  0.02777778
-14.5N / 23:  0.02712229  0.02777778
-17.8N / 24:  0.02712287  0.02777778
-21.2N / 25:  0.02712365  0.02777778
-24.6N / 26:  0.02712471  0.02777778
-28.2N / 27:  0.02712619  0.02777778
-31.9N / 28:  0.02712828  0.02777778
-35.7N / 29:  0.02713132  0.02777778
-39.7N / 30:  0.02713596  0.02777778
-44N   / 31:  0.02714348  0.02777778
-48.6N / 32:  0.02715676  0.02777778
-53.7N / 33:  0.02718343  0.02777778
-59.4N / 34:  0.02724976  0.02777778
-66.4N / 35:  0.02750340  0.02777778
-76.5N / 36:  0.03826170  0.02777778
- 
-! list weights calculated by Ferret at j=1,2,3,4,5,18
-let all = if test gt 0 then 1
-let total_area = all[x=@din,y=@din]
-let cell1 = if test eq 1 then 1
-let cell2 = if test eq 2 then 1
-let cell3 = if test eq 3 then 1
-let cell4 = if test eq 4 then 1
-let cell5 = if test eq 5 then 1
-let cell18 = if test eq 18 then 1
-list cell1[x=@din,y=@din]/total_area
-             VARIABLE : CELL1[X=@DIN,Y=@DIN]/TOTAL_AREA
-             FILENAME : uncentered.nc
-             LONGITUDE: 100E to 100E(460)
-             LATITUDE : 90S to 90N
-          0.02777782
-list cell2[x=@din,y=@din]/total_area
-             VARIABLE : CELL2[X=@DIN,Y=@DIN]/TOTAL_AREA
-             FILENAME : uncentered.nc
-             LONGITUDE: 100E to 100E(460)
-             LATITUDE : 90S to 90N
-          0.02777779
-list cell3[x=@din,y=@din]/total_area
-             VARIABLE : CELL3[X=@DIN,Y=@DIN]/TOTAL_AREA
-             FILENAME : uncentered.nc
-             LONGITUDE: 100E to 100E(460)
-             LATITUDE : 90S to 90N
-          0.02777778
-list cell4[x=@din,y=@din]/total_area
-             VARIABLE : CELL4[X=@DIN,Y=@DIN]/TOTAL_AREA
-             FILENAME : uncentered.nc
-             LONGITUDE: 100E to 100E(460)
-             LATITUDE : 90S to 90N
-          0.02777778
-list cell5[x=@din,y=@din]/total_area
-             VARIABLE : CELL5[X=@DIN,Y=@DIN]/TOTAL_AREA
-             FILENAME : uncentered.nc
-             LONGITUDE: 100E to 100E(460)
-             LATITUDE : 90S to 90N
-          0.02777778
-list cell18[x=@din,y=@din]/total_area
-             VARIABLE : CELL18[X=@DIN,Y=@DIN]/TOTAL_AREA
-             FILENAME : uncentered.nc
-             LONGITUDE: 100E to 100E(460)
-             LATITUDE : 90S to 90N
-          0.02777777
- 
-GO bn_reset
-cancel mode verify
-GO err62_if_inside_repeat
-! err62_if_inside_repeat.jnl
-! Bug 1681. Parsing error when, inside the REPEAT, we have
-! endif) on a line of its own.
- 
-! the fix for this bug causes a worse bug for GFDL (see #1706).
-! Thought I had a better fix but it turns out not. For now
-! reverting all the code surrounding these fixes. Do not
-! execute these tests.
- 
-cancel mode verify
-test1
-test2
-test3
-Now try the same tests with IF 1 inside the REPEATs
-test4
-test5
-test6
-Now try the same tests with IF 1 to execute everything.
-test7
-  hello7
-  hello7
-test8
-  hello8
-  hello8
-test9
-  hello9
-  hello9
-Now try the same tests with IF 1 and ELSE.
-test10
-  hello10
-  hello10
-test11
-  hello11
-  hello11
-test12
-  hello12
-  hello12
-Now try the same tests with IF 0 and ELSE.
-test13
-  else13
-  else13
-test14
-  else14
-  else14
-test15
-  else15
-  else15
-Now try the same tests with IF 0 and ELIF.
-test16
-  elif16
-  elif16
-test17
-  elif17
-  elif17
-test18
-  elif18
-  elif18
-Next should a line that says --->here
-And then    a line that says 201.
---->here
-   201.0000
-done
- 
-GO bn_reset
-cancel mode verify
-GO err62_title_curvi_plot
-! err62_title_curvi_plot.jnl
-! bug 1669; when the variable and its coordinate variables
-! come from different datasets, we get the variable def, not
-! its title as the main title.
-! The titles should all be SEA SURFACE TEMPERATURE (Deg C)
- 
-use coads_climatology
-let xval = x[gx=sst[d=1]]+0*y[gy=sst[d=1]]
-let yval = y[gy=sst[d=1]]+0*x[gx=sst[d=1]]
-save/clob/file=a.nc sst[l=1:2], xval, yval
- 
-can var/all
-use a.nc
-set v ul; shade sst[d=1,l=1], xval[d=2], yval[d=2]; sh sym labtit
-LABTIT = "SEA SURFACE TEMPERATURE (Deg C)"
-set v ur; shade sst[d=2,l=1], xval[d=2], yval[d=2]; sh sym labtit
-LABTIT = "SEA SURFACE TEMPERATURE (Deg C)"
- 
-set v ll; fill sst[d=1,l=1], xval[d=2], yval[d=2]; sh sym labtit
-LABTIT = "SEA SURFACE TEMPERATURE (Deg C)"
-set v lr; fill sst[d=2,l=1], xval[d=2], yval[d=2]; sh sym labtit
-LABTIT = "SEA SURFACE TEMPERATURE (Deg C)"
- 
-can view
-set v ul; vector/xskip=10/yskip=10 sst[d=1,l=1],sst[d=1,l=2], xval[d=2], yval[d=2]; sh sym labtit
-LABTIT = "SEA SURFACE TEMPERATURE (Deg C) , SEA SURFACE TEMPERATURE (Deg C)"
-set v ur; vector/xskip=10/yskip=10 sst[d=2,l=1],sst[d=2,l=2], xval[d=2], yval[d=2]; sh sym labtit
-LABTIT = "SEA SURFACE TEMPERATURE (Deg C) , SEA SURFACE TEMPERATURE (Deg C)"
- 
-set v ll; contour sst[d=1,l=1], xval[d=2], yval[d=2]; sh sym labtit
-LABTIT = "SEA SURFACE TEMPERATURE (Deg C)"
-set v lr; contour sst[d=2,l=1], xval[d=2], yval[d=2]; sh sym labtit
-LABTIT = "SEA SURFACE TEMPERATURE (Deg C)"
- 
-GO bn_reset
-cancel mode verify
-go err62_save_missingcoordvar
-! err62_save_missingcoordvar.jnl
-! see bug 1686
-! The dataset doesn't have a coordinate variable, in this case TIME
-! Ferret gives it an abstract axis, but then cant SAVE the variable.
- 
-! This dataset behaves this way
-! use "http://test.opendap.org/opendap/data/nc/data.nc"
- 
-! create a local dataset
-use timemissing.nc
-save/clobber/file=a.nc sst
- 
- 
-GO bn_reset
-cancel mode verify
-GO err62_contourbug
-! err62_contourbug.jnl
-! Bug 1688
-! contours of curvi data when x units not longitude
-! some contour lines draw across the plot
- 
-let xb=x[x=0:290:10]
-let yb=y[y=0:290:10]
-let xb2 = xb + 0*yb
-let zb=I[x=0:290:10]*J[y=0:290:10]
-contour/hlimits=-100:400:50 xb2+zb,xb2,zb
- 
-! A FILL version of the same general thing
-let xb = x[x=0:290:10]
-let yb = y[y=0:290:10]
-let xb2 = xb + 0*yb
-let zb = I[x=0:290:10] * J[y=0:290:10]
-fill/hlimits=-100:400:50 0.0000001*(xb2+zb)^3,xb2,zb
- 
- 
-GO bn_reset
-cancel mode verify
-GO err62_append_irreg_to_reg
-! err62_append_irreg_to_reg.jnl
-! bug 1692
- 
-! See Patrick's report:
-! http://www.pmel.noaa.gov/maillists/tmap/ferret_users/fu_2009/msg00620.html
-! where he points to another example.
-!
-! Turns out he was appending irreg time coords to a regular time axis
-! and Ferret needs a better error message
- 
-SET MODE IGNORE
- 
-! By default a regular axis gets no bounds on a SAVE
-DEFINE AXIS/T t_axis = {1,2,3,4,5}
-LET var = T[GT=t_axis]
-SAVE/CLOBBER/FILE=t_bug.nc var
- 
-! Now try to append this irregularly-spaced data to the above
-DEFINE AXIS/T t_axis = {6,8,9,10,12,13}
-SAVE/FILE=t_bug.nc/APPEND var
- 
-! previously the message just said
-! ** netCDF error: Variable not found
- 
-! Msg should explain that it was the bounds variable, needed
-! for the append, but not found in the existing file.
- 
-SET MODE/LAST IGNORE
- 
-GO bn_reset
-cancel mode verify
-GO err62_axis_stride_off
-! err62_axis_stride_off.jnl
-! fixing bug 1689: offset shifted by 1 so /OFFSET=0 >> start index = 1
- 
-USE truemonth.nc
- 
-SET AXIS/STRIDE=12/OFFSET=0 truemonth  ! every January
-LIST var
-             VARIABLE : COS(T[GT=TRUEMONTH]/100)
-             FILENAME : truemonth.nc
-             SUBSET   : 20 points (TIME)
- 16-JAN-1950 /  1:  0.8458605
- 16-JAN-1951 /  2: -0.4792148
- 16-JAN-1952 /  3: -0.0086413
- 16-JAN-1953 /  4:  0.5029880
- 16-JAN-1954 /  5: -0.8600939
- 16-JAN-1955 /  6:  0.9996375
- 16-JAN-1956 /  7: -0.8863128
- 16-JAN-1957 /  8:  0.5403982
- 16-JAN-1958 /  9: -0.0624683
- 16-JAN-1959 / 10: -0.4312768
- 16-JAN-1960 / 11:  0.8159143
- 16-JAN-1961 / 12: -0.9951944
- 16-JAN-1962 / 13:  0.9169914
- 16-JAN-1963 / 14: -0.6068212
- 16-JAN-1964 / 15:  0.1431603
- 16-JAN-1965 / 16:  0.3660465
- 16-JAN-1966 / 17: -0.7727474
- 16-JAN-1967 / 18:  0.9839827
- 16-JAN-1968 / 19: -0.9463078
- 16-JAN-1969 / 20:  0.6617913
- 
-CAN AXIS/STRIDE `var,return=taxis`
- !-> CAN AXIS/STRIDE (AX133)
-SET AXIS/STRIDE=12/OFFSET=11 truemonth ! every December
-LIST var
-             VARIABLE : COS(T[GT=TRUEMONTH]/100)
-             FILENAME : truemonth.nc
-             SUBSET   : 19 points (TIME)
- DEC-1950 /  1: -0.7241199
- DEC-1951 /  2:  0.2968155
- DEC-1952 /  3:  0.2153545
- DEC-1953 /  4: -0.6634768
- DEC-1954 /  5:  0.9437761
- DEC-1955 /  6: -0.9853337
- DEC-1956 /  7:  0.7713169
- DEC-1957 /  8: -0.3639512
- DEC-1958 /  9: -0.1354919
- DEC-1959 / 10:  0.6006479
- DEC-1960 / 11: -0.9178868
- DEC-1961 / 12:  0.9949715
- DEC-1962 / 13: -0.8203671
- DEC-1963 / 14:  0.4382506
- DEC-1964 / 15:  0.0647143
- DEC-1965 / 16: -0.5422904
- DEC-1966 / 17:  0.8826929
- DEC-1967 / 18: -0.9998160
- DEC-1968 / 19:  0.8589436
- 
-SET MODE IGNORE_ERRROR
-! Previously didnt check for negative offset value
-CAN AXIS/STRIDE `var,return=taxis`
- !-> CAN AXIS/STRIDE (AX139)
-SET AXIS/STRIDE=12/OFFSET=-1 truemonth
- 
-! Previously didnt give err msg; just ignored non-positive stride value
-SET AXIS/STRIDE=-1/OFFSET=1 truemonth
- 
-SET MODE/LAST IGNORE
- 
- 
- 
- 
- 
-GO bn_reset
-cancel mode verify
-GO err62_compound_string_conditional
-! err62_compound_string_conditional
-! Bug 1380
- 
-LIST 1 EQ 2 or 3 EQ 3  ! all numeric
-             VARIABLE : 1 EQ 2 OR 3 EQ 3
-          1.000000
- 
-LIST "a" EQ "b"
-             VARIABLE : "a" EQ "b"
-          0.0000000
-LIST "b" EQ "b"
-             VARIABLE : "b" EQ "b"
-          1.000000
-LIST "a" EQ "b" OR  "b" EQ "b"  ! should be 1
-             VARIABLE : "a" EQ "b" OR  "b" EQ "b"
-          1.000000
-LIST "a" EQ "b" AND "b" EQ "b"  ! should be 0
-             VARIABLE : "a" EQ "b" AND "b" EQ "b"
-          0.0000000
- 
-LIST  "a" LE "b" AND 3 EQ 3  ! should be 1
-             VARIABLE : "a" LE "b" AND 3 EQ 3
-          1.000000
- 
-LIST 1 EQ 2 OR "A" EQ "B"    ! should be 0
-             VARIABLE : 1 EQ 2 OR "A" EQ "B"
-          0.0000000
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_axis_reversed_syms
-! bn_axis_reversed_syms.jnl
-! XAXIS_REVERSED and YAXIS_REVERSED are
-! set to 0 or if the reversed-axis is
-! plotted upside-down, set to 1
- 
-use gt4d011.cdf
-shade/i=91/L=1 temp
-sh sym *axis_reversed
-XAXIS_REVERSED = "0"
-YAXIS_REVERSED = "1"
-contour/i=91/j=35 temp
-sh sym *axis_reversed
-XAXIS_REVERSED = "0"
-YAXIS_REVERSED = "1"
-vector/k=1/l=4 u,v
-sh sym *axis_reversed
-XAXIS_REVERSED = "0"
-YAXIS_REVERSED = "0"
-vector/j=41/l=4 u,v
-sh sym *axis_reversed
-XAXIS_REVERSED = "0"
-YAXIS_REVERSED = "1"
-fill/j=41/l=4 temp
-sh sym *axis_reversed
-XAXIS_REVERSED = "0"
-YAXIS_REVERSED = "1"
-shade/j=41/k=4 temp
-sh sym *axis_reversed
-XAXIS_REVERSED = "0"
-YAXIS_REVERSED = "0"
- 
-! with /TRANS. None of these will have YAXIS_REVERSED=1
-shade/trans/i=91/L=1 temp
-sh sym *axis_reversed
-XAXIS_REVERSED = "0"
-YAXIS_REVERSED = "0"
-contour/trans/i=91/j=35 temp
-sh sym *axis_reversed
-XAXIS_REVERSED = "0"
-YAXIS_REVERSED = "0"
-vector/trans/k=1/l=4 u,v
-sh sym *axis_reversed
-XAXIS_REVERSED = "0"
-YAXIS_REVERSED = "0"
-vector/trans/j=41/l=4 u,v
-sh sym *axis_reversed
-XAXIS_REVERSED = "0"
-YAXIS_REVERSED = "0"
-fill/trans/j=41/l=4 temp
-sh sym *axis_reversed
-XAXIS_REVERSED = "0"
-YAXIS_REVERSED = "0"
-shade/trans/j=41/k=4 temp
-sh sym *axis_reversed
-XAXIS_REVERSED = "0"
-YAXIS_REVERSED = "0"
- 
-! in viewports
-set view ul; shade/i=91/L=1 temp
-sh sym *axis_reversed
-XAXIS_REVERSED = "0"
-YAXIS_REVERSED = "1"
-set view ur; contour/i=91/j=35 temp
-sh sym *axis_reversed
-XAXIS_REVERSED = "0"
-YAXIS_REVERSED = "1"
-set view ll; vector/k=1/l=4 u,v
-sh sym *axis_reversed
-XAXIS_REVERSED = "0"
-YAXIS_REVERSED = "0"
-set view lr; fill/j=41/l=4 temp
-sh sym *axis_reversed
-XAXIS_REVERSED = "0"
-YAXIS_REVERSED = "1"
- 
-! also set with  SHADE/SET
-cancel viewports
- 
-shade/set/i=91/L=1 temp
-sh sym *axis_reversed
-XAXIS_REVERSED = "0"
-YAXIS_REVERSED = "1"
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_isdepth
-! Tests of `var,RETURN=ISDEPTH`
- 
-define axis/units=meters/z=0:100:2 zup
-let zz = z[gz=zup]
-say `zz,return=isdep`
- !-> MESSAGE/CONTINUE 0
-0
- 
-define axis/units=meters/z=0:200:2/depth zdn
-let zz = z[gz=zdn]
-say `zz,return=isdep`
- !-> MESSAGE/CONTINUE 1
-1
- 
-use gtbc011
-say `temp,return=isdepth`
- !-> MESSAGE/CONTINUE 1
-1
- 
-use coads_climatology
-say `sst,return=isdepth`
- !-> MESSAGE/CONTINUE NORMAL
-NORMAL
- 
-can data 2
- 
-cancel axis/depth `temp,return=zaxis`
- !-> cancel axis/depth PSZT1
-say `temp,return=isdepth`
- !-> MESSAGE/CONTINUE 0
-0
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_var_hist_levels.jnl
-! bn_var_hist_levels.jnl
-! Syntax for variance-based or histogram-based levels
-!
- 
-use levitus_climatology
- 
-! Variance levels
-shade/line/lev=50v/title="/LEV=50v" temp[K=1]
- 
-! New symbol LEV_OPNLEVS captures the levels set with /V or VC
-sh sym lev*
-LEV_TEXT = "50V"
-LEV_MIN = "-2"
-LEV_MAX = "30.74"
-LEV_NUM = "56"
-LEV_DEL = "0.5"
-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]
-shade/line/lev=50v,5mean/title="/LEV=50v,5mean" temp[K=1]
-shade/line/lev=50v,25max/title="/LEV=50v,25max" temp[K=1]
-shade/line/lev=50v,1d/title="/LEV=50v,1d" temp[K=1]
- 
-! If the data has lots of negative data, the computation of
-! the std deviation was incorrect.  See ticket 1778.
- 
-let negvar = -1* temp
- 
-shade/line/lev=50v,-20min/title="/LEV=50v,-20min" negvar[K=1]
-shade/line/lev=50v,-15mean/title="/LEV=50v,-15mean" negvar[K=1]
-shade/line/lev=50v,-15max/title="/LEV=50v,-15max" negvar[K=1]
-shade/line/lev=50v,1d/title="/LEV=50v,1d" negvar[K=1]
- 
-! Histogram-based
-shade/line/lev=50h/title="/LEV=50h" temp[K=1]
- 
- 
-! Need some tests with centered levels and with /LINE
- 
-let cvar = temp - 15
- 
-shade/line/key/lev=50v/title="/LEV=50v,-20min" cvar[K=1]
-shade/line/key/lev=50v/title="/LEV=50v,-15mean" cvar[K=1]
-shade/line/key/lev=50v/title="/LEV=50v,-15max" cvar[K=1]
-shade/line/key/lev=50v,1d/title="/LEV=50v,1d" cvar[K=1]
- 
- 
-shade/line/key/lev=cv/title="/LEV=cv" cvar[K=1]
-shade/line/key/lev=50/title="/LEV=50" cvar[K=1]
-shade/line/key/lev=50c/title="/LEV=50c" cvar[K=1]
-shade/line/key/lev=c,1d/title="/LEV=c,1d" cvar[K=1]
-shade/line/key/lev=20c,1d/title="/LEV=20c,1d" cvar[K=1]
- 
-! Histogram-based
-shade/line/key/lev=50h/title="/LEV=50h" cvar[K=1]
- 
- 
- 
-! ******** V6.4 Additions below ***********
- 
-GO bn_reset
-cancel mode verify
-GO bn64_bug_fixes
-! bn64_bug_fixes.jnl
-! Fixes that go into v6.4 release
- 
-! (changes were made to err62_if_inside_repeat.jnl
-!  which is run previously.)
- 
-GO bn_reset
-cancel mode verify
-GO err63_days1900toydmhms
-! err63_days1900toydmhms.jnl
-!
-! Bug reported by Jaison Kurian
-! 32-bit linux, this returned the wrong month
-! and day for start of March.
- 
-define axis/t=21241:21245:1 tax
-let julshift = DAYS1900(1950,1,1)
-let julday   = t[gt=tax] + julshift
-let tpts     = DAYS1900TOYMDHMS(julday)
-list/k=2:3 tpts
-             VARIABLE : DAYS1900TOYMDHMS(JULDAY)
-             SUBSET   : 2 by 5 points (Z-T)
-                  2         3      
-                   2         3
- 21241   / 1:   2.00000  27.00000
- 21242   / 2:   2.00000  28.00000
- 21243   / 3:   2.00000  29.00000
- 21244   / 4:   3.00000   1.00000
- 21245   / 5:   3.00000   2.00000
- 
-GO bn_reset
-cancel mode verify
-GO err63_log_vaxis
-! err63_log_vaxis.jnl
-! fix for bug 1708
-! This example from Patrick Brockmann.
- 
-! ok
-set view left
-def axis/z=10:10000:10 vert_axis_up
-plot/vlog z[gz=vert_axis_up]
- 
- 
-! not ok : left vertical log axis is down. right vertical axis is up
-set view right
-def axis/z=10:10000:10/depth vert_axis_dn
-plot/vlog z[gz=vert_axis_dn]
- 
-GO bn_reset
-cancel mode verify
-GO err63_delim_E.jnl
-! err63_delim_E.jnl
-! bug 1700
-! On delimited reads, looking for strings ending with E for longitudes.
-! But need to check if its just a string ending in E such as ZAIRE
- 
-sp rm -f names
-sp echo ZAIRE > names
-sp echo E >> names
-columns names
-list v1
-             VARIABLE : V1
-             FILENAME : names
-             SUBSET   : 2 points (X)
- 1   / 1:"ZAIRE"
- 2   / 2:"E"    
- 
-can dat/all
-sp rm -f names
-sp echo zaire > names
-columns names
-list v1
-             VARIABLE : V1
-             FILENAME : names
-             X        : 1
-        "zaire"
- 
-can dat/all
-sp rm -f names
-sp echo ZAIRA > names
-columns names
-list v1
-             VARIABLE : V1
-             FILENAME : names
-             X        : 1
-        "ZAIRA"
- 
-GO bn_reset
-cancel mode verify
-GO bn_long_grid_names
-! bn_long_grid_names.jnl
-! test longer grid names (16 --> 64 chars)
-! tests taken from other bn scripts but with longer grid names
- 
-! read onto a 2D grid
-DEFINE AXIS/X=1:3:1 xez1
-DEFINE GRID/X=XEZ1/Y=EZ ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890
- 
-FILE/VAR="X1,X2"/COLUMNS=6/GRID=ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 EZ.DAT
-SHOW DATA/FULL
-     currently SET data sets:
-    1> ./EZ.DAT  (default)
- 
- name     title                             I         J         K         L         M         N
- X1       X1                               1:3       1:20480   ...       ...       ...       ...
-               on grid ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 with -1.E+34 for missing data
-             X=0.5:3.5  Y=0.5:20481  
- X2       X2                               1:3       1:20480   ...       ...       ...       ...
-               on grid ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 with -1.E+34 for missing data
-             X=0.5:3.5  Y=0.5:20481  
- 
- /FORMAT = FREE
- /SKIP = 0
- /COLUMNS = 6
-LIST X1
-             VARIABLE : X1
-             FILENAME : EZ.DAT
-             SUBSET   : 3 by 5 points (X-Y)
-               1          2          3      
-               1          2          3
- 1   / 1:  0.0060000  0.1760000  0.2820000
- 2   / 2:  0.3550000  0.3790000  0.3930000
- 3   / 3:  0.4100000  0.4170000  0.4670000
- 4   / 4:  0.4350000  0.4440000  0.4700000
- 5   / 5:  0.4780000  0.5150000  0.4690000
-SHOW DATA
-     currently SET data sets:
-    1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:3       1:5       ...       ...       ...       ...
- X2       X2                               1:3       1:5       ...       ...       ...       ...
- 
-CAN DATA/ALL
- 
-define axis/x=2:20:2 xeven
-define axis/x=1:19:2 xodd
-define axis/y=2:20:2 yeven
-define axis/y=1:19:2 yodd
-define axis/z=2:20:2 zeven
-define axis/z=1:19:2 zodd
-define axis/t=2:20:2/t0="1-jan-1980"/unit=days teven
-define axis/t=1:19:2/t0="1-jan-1980"/unit=days todd
- 
-define grid/x=xeven/y=yeven/z=zeven/t=teven even
- 
-define grid/x=xodd/y=yodd/z=zodd/t=todd g00abcdefghijklmnopqrstuvwxyz1234567890
- 
-LET veven = 1000*i[g=even] + 100*j[g=even] + 10*k[g=even] + l[g=even]
- 
-LET v1234 = veven[g=g00abcdefghijklmnopqrstuvwxyz1234567890]
- 
-SET REGION/X=4.01:8.99/Y=4.01:8.99/Z=4.01:8.99/T=4.01:8.99
- 
-list veven
-             VARIABLE : 1000*I[G=EVEN] + 100*J[G=EVEN] + 10*K[G=EVEN] + L[G=EVEN]
-             SUBSET   : 3 by 3 by 3 by 3 points (X-Y-Z-TIME)
-              4         6         8      
-               2         3         4
- ---- L:2 T:   JAN-1980
- ---- K:2 Z:   4
- 4   / 2:  2222.000  3222.000  4222.000
- 6   / 3:  2322.000  3322.000  4322.000
- 8   / 4:  2422.000  3422.000  4422.000
- ---- K:3 Z:   6
- 4   / 2:  2232.000  3232.000  4232.000
- 6   / 3:  2332.000  3332.000  4332.000
- 8   / 4:  2432.000  3432.000  4432.000
- ---- K:4 Z:   8
- 4   / 2:  2242.000  3242.000  4242.000
- 6   / 3:  2342.000  3342.000  4342.000
- 8   / 4:  2442.000  3442.000  4442.000
- ---- L:3 T:   JAN-1980
- ---- K:2 Z:   4
- 4   / 2:  2223.000  3223.000  4223.000
- 6   / 3:  2323.000  3323.000  4323.000
- 8   / 4:  2423.000  3423.000  4423.000
- ---- K:3 Z:   6
- 4   / 2:  2233.000  3233.000  4233.000
- 6   / 3:  2333.000  3333.000  4333.000
- 8   / 4:  2433.000  3433.000  4433.000
- ---- K:4 Z:   8
- 4   / 2:  2243.000  3243.000  4243.000
- 6   / 3:  2343.000  3343.000  4343.000
- 8   / 4:  2443.000  3443.000  4443.000
- ---- L:4 T:   JAN-1980
- ---- K:2 Z:   4
- 4   / 2:  2224.000  3224.000  4224.000
- 6   / 3:  2324.000  3324.000  4324.000
- 8   / 4:  2424.000  3424.000  4424.000
- ---- K:3 Z:   6
- 4   / 2:  2234.000  3234.000  4234.000
- 6   / 3:  2334.000  3334.000  4334.000
- 8   / 4:  2434.000  3434.000  4434.000
- ---- K:4 Z:   8
- 4   / 2:  2244.000  3244.000  4244.000
- 6   / 3:  2344.000  3344.000  4344.000
- 8   / 4:  2444.000  3444.000  4444.000
-list v1234
-             VARIABLE : VEVEN[G=G00ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890]
-             SUBSET   : 3 by 3 by 3 by 3 points (X-Y-Z-TIME)
-              5         7         9      
-               3         4         5
- ---- L:3 T:   JAN-1980
- ---- K:3 Z:   5
- 5   / 3:  2777.500  3777.500  4777.500
- 7   / 4:  2877.500  3877.500  4877.500
- 9   / 5:  2977.500  3977.500  4977.500
- ---- K:4 Z:   7
- 5   / 3:  2787.500  3787.500  4787.500
- 7   / 4:  2887.500  3887.500  4887.500
- 9   / 5:  2987.500  3987.500  4987.500
- ---- K:5 Z:   9
- 5   / 3:  2797.500  3797.500  4797.500
- 7   / 4:  2897.500  3897.500  4897.500
- 9   / 5:  2997.500  3997.500  4997.500
- ---- L:4 T:   JAN-1980
- ---- K:3 Z:   5
- 5   / 3:  2778.500  3778.500  4778.500
- 7   / 4:  2878.500  3878.500  4878.500
- 9   / 5:  2978.500  3978.500  4978.500
- ---- K:4 Z:   7
- 5   / 3:  2788.500  3788.500  4788.500
- 7   / 4:  2888.500  3888.500  4888.500
- 9   / 5:  2988.500  3988.500  4988.500
- ---- K:5 Z:   9
- 5   / 3:  2798.500  3798.500  4798.500
- 7   / 4:  2898.500  3898.500  4898.500
- 9   / 5:  2998.500  3998.500  4998.500
- ---- L:5 T:   JAN-1980
- ---- K:3 Z:   5
- 5   / 3:  2779.500  3779.500  4779.500
- 7   / 4:  2879.500  3879.500  4879.500
- 9   / 5:  2979.500  3979.500  4979.500
- ---- K:4 Z:   7
- 5   / 3:  2789.500  3789.500  4789.500
- 7   / 4:  2889.500  3889.500  4889.500
- 9   / 5:  2989.500  3989.500  4989.500
- ---- K:5 Z:   9
- 5   / 3:  2799.500  3799.500  4799.500
- 7   / 4:  2899.500  3899.500  4899.500
- 9   / 5:  2999.500  3999.500  4999.500
-stat veven
- 
-             1000*I[G=EVEN] + 100*J[G=EVEN] + 10*K[G=EVEN] + L[G=EVEN]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: JAN-1980 to JAN-1980
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 2222
- Maximum value: 4444
- Mean    value: 3333 (unweighted average)
- Standard deviation: 825.72
- 
-! first all from one memory variable
-load/x=1:11/y=1:11/z=1:11/t=1:11 veven
-stat v1234[g=even]-veven, v1234
- 
-             V1234[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: JAN-1980 to JAN-1980
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G00ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z: 4.01 to 8.99
-             TIME: JAN-1980 to JAN-1980
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad  data: 0
- Minimum value: 2777.5
- Maximum value: 4999.5
- Mean    value: 3888.5 (unweighted average)
- Standard deviation: 825.72
- 
-go bn_reset
-cancel mode verify
-! regrid_transforms
-use gtsa056_1
-use gtsa056_2
-set mode diag
- 
-define axis/t=15-jan-1982:15-mar-1984:120/unit=hour tax5day
-define axis/x=120e:60w:10/unit=degrees xax10
-define grid/like=u/t=tax5day g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day
- getgrid EX#1     C:  7 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT1     TIME13    NORMAL    NORMAL
-define grid/like=u/x=xax10/z=w/t=tax5day g5_10g00abcdefghijklmnopqrstuvwxyz1234567890
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT1     TIME13    NORMAL    NORMAL
- getgrid EX#1     C:  8 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT1     TIME13    NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT1     TIME13    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      TIME13    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
- 
-use gtsa056_1    	!kob 4/99
- 
-LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
- dealloc  dynamic grid PS3DW11         PSXT1     PSYT1     PSZW      TIME13    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    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
- strip regrid on Z: TEMP --> XNTERMED         @AVE
- strip regrid on T: TEMP --> ZNTERMED         @AVE
- reading TEMP     M: 43 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 42 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 34 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 42 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 42 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 34 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: G5_10G00ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 on X at AAV, on Y at AAV*
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 2 points (LATITUDE-TIME)
-             LONGITUDE: 130W
-             DEPTH (m): 10
-                        0         0.33N     0.67N     1N        1.33N   
-                         45        46        47        48        49
- 20-JAN-1982 00 / 2:  23.88290  23.97420  24.14894  24.37499  24.62556
- 25-JAN-1982 00 / 3:  23.88501  23.98344  24.16565  24.39832  24.65027
-LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gx=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5_10            @AVE
- strip regrid on Y: TEMP --> XNTERMED         @LIN
- strip regrid on Z: TEMP --> YNTERMED         @LIN
- strip regrid on T: TEMP --> ZNTERMED         @LIN
- found   TEMP     M: 43 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 34 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 32 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 34 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 34 dset:   1 I:   95  106  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 32 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 32 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 34 dset:   1 I:   95  106  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: G5_10 on X at AVE, on Y at LIN, on Z at LIN, on T at LIN
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 2 points (LATITUDE-TIME)
-             LONGITUDE: 130W
-             DEPTH (m): 10
-                        0         0.33N     0.67N     1N        1.33N   
-                         45        46        47        48        49
- 20-JAN-1982 00 / 2:  23.88380  23.97520  24.15006  24.37614  24.62650
- 25-JAN-1982 00 / 3:  23.87741  23.97277  24.15346  24.38574  24.63814
- 
-LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gt=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5_10            @LIN
- strip regrid on Z: TEMP --> XNTERMED         @LIN
- strip regrid on T: TEMP --> ZNTERMED         @ASN
- found   TEMP     M: 43 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 34 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 29 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 34 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 34 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 29 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
-             VARIABLE : TEMPERATURE (deg. C)
-                        regrid: G5_10 on X at LIN, on Y at LIN, on Z at LIN, on T at ASN
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 by 2 points (LATITUDE-TIME)
-             LONGITUDE: 130W
-             DEPTH (m): 10
-                        0         0.33N     0.67N     1N        1.33N   
-                         45        46        47        48        49
- 20-JAN-1982 00 / 2:  23.75267  23.76377  23.87293  24.04456  24.25203
- 25-JAN-1982 00 / 3:  23.74388  23.73211  23.81637  23.96577  24.15370
- 
-! T axis
-use gtsa056_2	!kob  4/99
-set region/x=180W/y=0/z=5/t=21-JAN-1982:13-JUN-1983
-load temp[i=50:51,j=45:56,k=1:2,l=1:172]  ! preload to save time
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DT1          PSXT1     PSYT1     PSZT1     TIME13    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     PSZT1     TIME13    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     PSZT1     TIME13    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: 36 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     PSZT1     TIME13    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      PSZT1     TIME13    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     3   170 dset:   2
- strip regrid on X: TEMP --> PS3DU1           @LIN
- found   TEMP     M: 36 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 28 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
- strip regrid on X: TEMP --> PS3DU1           @LIN
- found   TEMP     M: 36 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 27 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
-setting up plot
-PPL plot 754  complete
-plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT1     TIME13    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @LIN
- strip regrid on T: TEMP --> XNTERMED         @LIN
- found   TEMP     M: 36 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 26 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 23 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
-setting up plot
-PPL plot 755  complete
-plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890]
- dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      PSYU      PSZT1     TAX5DAY   NORMAL    NORMAL
- -DELETE TEMP     M: 23 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: 36 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 23 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: 23 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: 23 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
-setting up plot
-PPL plot 756  complete
-plot/over temp[g=u at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT1     TIME13    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     3   170 dset:   2
- strip regrid on X: TEMP --> PS3DU1           @AAV
- found   TEMP     M: 36 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 26 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
- strip regrid on X: TEMP --> PS3DU1           @AAV
- found   TEMP     M: 36 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 19 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
-setting up plot
-PPL plot 757  complete
-plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT1     TIME13    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @AAV
- strip regrid on T: TEMP --> XNTERMED         @AVE
- found   TEMP     M: 36 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 18 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 17 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 18 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
-setting up plot
-PPL plot 758  complete
-plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
- dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      PSYU      PSZT1     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
- getgrid 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
- doing moduloing TEMP on T axis:     1   168 dset:   2
- regrid  TEMP     M: 16 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 13 dset:   2 I:   45   56  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 16 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 16 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 13 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]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT1     TIME13    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     3   170 dset:   2
- 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: 13 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 14 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 13 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: 15 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 12 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 15 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
-plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at asn]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT1     TIME13    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5_10G00ABCDEFGH @ASN
- strip regrid on Y: TEMP --> XNTERMED         @ASN
- strip regrid on Z: TEMP --> YNTERMED         @ASN
- strip regrid on T: TEMP --> ZNTERMED         @ASN
- reading TEMP     M: 15 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 11 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: 11 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 11 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: 11 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]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT1     TIME13    NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT1     TIME13    NORMAL    NORMAL
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT1     TIME13    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      PSZT1     TIME13    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
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT1     TIME13    NORMAL    NORMAL
-setting up plot
-PPL plot 762  complete
-plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day,gt=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT1     TIME13    NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @LIN
- strip regrid on T: TEMP --> XNTERMED         @AVE
- found   TEMP     M: 18 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 11 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: 11 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]
- dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      PSYU      PSZT1     TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- 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: 11 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: 11 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: 11 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
-plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day,gt=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day at asn]  ! invalid interpretation of data
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @LIN
- strip regrid on T: TEMP --> XNTERMED         @ASN
- found   TEMP     M: 18 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 21 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:  9 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
- 
- 
-set mode/last diag
- 
-go bn_reset
-cancel mode verify
-! regrid_to_user
- 
-use coads_climatology
-use levitus_climatology
- 
-! define test objects
-let a = sst[d=coads_climatology] + 1
-let b = sst + 1		! data set unspecified
-DEFINE AXIS/Y=20s:20n:.5/units=degrees yax
-DEFINE GRID/like=sst[d=coads_climatology]/y=yax gg12345678901234567890
- 
-! reference data
-list/x=158e:161e/y=6s:4s temp[d=2,k=1]
-             VARIABLE : TEMPERATURE (DEG C)
-             FILENAME : levitus_climatology.cdf
-             SUBSET   : 3 by 2 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 0
-               158.5E    159.5E    160.5E  
-               139       140       141
- 4.5S / 86:  29.51100  29.44300  29.38000
- 5.5S / 85:  29.58900  29.52500  29.45700
- 
-! basic regrid (implicit grid -- sst and temp geometries are mismatched)
-list/x=160e/y=5s temp[d=2,k=1,g=a[d=1]]
-             VARIABLE : TEMPERATURE (DEG C)
-                        regrid: 2 deg on X, 2 deg on Y
-             FILENAME : levitus_climatology.cdf
-             LONGITUDE: 159E
-             LATITUDE : 5S
-             DEPTH (m): 0
-          29.51700
-show grid
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G105)
-    GRID (G105)
- 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
- normal    T
- normal    E
- normal    F
- 
-! per axis regrid
-! 5/01 note: changed from y=0 yo y=5s to accomodate Y-truncated
-! levitus_climatology.cdf
-list/x=160e/y=5s temp[d=2,k=1,gx=a[d=1],gy=yax]
-             VARIABLE : TEMPERATURE (DEG C)
-                        regrid: 2 deg on X, 0.5 deg on Y
-             FILENAME : levitus_climatology.cdf
-             LONGITUDE: 159E
-             LATITUDE : 5S
-             DEPTH (m): 0
-          29.51700
-list/x=160e/y=5s temp[d=2,k=1,gy=yax,gx=a[d=1]]
-             VARIABLE : TEMPERATURE (DEG C)
-                        regrid: 2 deg on X, 0.5 deg on Y
-             FILENAME : levitus_climatology.cdf
-             LONGITUDE: 159E
-             LATITUDE : 5S
-             DEPTH (m): 0
-          29.51700
-show grid
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G105)
-    GRID (G105)
- 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
- normal    T
- normal    E
- normal    F
- 
-! combined full grid and per-axis
-list/x=160e/y=5s temp[d=2,k=1,g=gg12345678901234567890,gx=a[d=1]]
-             VARIABLE : TEMPERATURE (DEG C)
-                        regrid: 2 deg on X, 0.5 deg on Y
-             FILENAME : levitus_climatology.cdf
-             LONGITUDE: 159E
-             LATITUDE : 5S
-             DEPTH (m): 0
-          29.51700
-list/x=160e/y=5s temp[d=2,k=1,gx=a[d=1],g=gg12345678901234567890]
-             VARIABLE : TEMPERATURE (DEG C)
-                        regrid: 2 deg on X, 0.5 deg on Y
-             FILENAME : levitus_climatology.cdf
-             LONGITUDE: 159E
-             LATITUDE : 5S
-             DEPTH (m): 0
-          29.51700
-show grid
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G105)
-    GRID (G105)
- 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
- normal    T
- normal    E
- normal    F
- 
-! pseudo-variable access
-list/i=1:4 i[g=a]		! a is previously loaded
-             VARIABLE : I
-                        axis COADSX
-             SUBSET   : 4 points (LONGITUDE)
- 21E   / 1:  1.000000
- 23E   / 2:  2.000000
- 25E   / 3:  3.000000
- 27E   / 4:  4.000000
-let c = a
-list/i=1:4 i[g=c]		! c is not previously loaded
-             VARIABLE : I
-                        axis COADSX
-             SUBSET   : 4 points (LONGITUDE)
- 21E   / 1:  1.000000
- 23E   / 2:  2.000000
- 25E   / 3:  3.000000
- 27E   / 4:  4.000000
-let d = c
-list/i=1:4 x[gx=d]
-             VARIABLE : X
-                        axis COADSX
-             SUBSET   : 4 points (LONGITUDE)
- 21E   / 1:  21.00000
- 23E   / 2:  23.00000
- 25E   / 3:  25.00000
- 27E   / 4:  27.00000
- 
-! DEFINE GRID based on a user-defined variable
-let e = d
-DEFINE GRID/LIKE=e/x=temp[d=levitus_climatology] gg123456789012345678901
-show grid gg123456789012345678901
-    GRID GG123456789012345678901
- name       axis              # pts   start                end
- XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- COADSY    LATITUDE            90 r   89S                  89N
- normal    Z
- TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-let f = sst[y=20s:20n:.1,d=coads_climatology]
-DEFINE GRID/LIKE=f/x=temp[d=levitus_climatology] gg123456789012345678902
-cancel variable f
-show grid gg123456789012345678902
-    GRID GG123456789012345678902
- name       axis              # pts   start                end
- XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX020)   LATITUDE           401 r   20S                  20N
- normal    Z
- TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-show grid/dynamic
-Dynamic grids:
-    no implicit grids
-Dynamic axes:
-    AXIS (AX049)                         use count:  13
-    AXIS (AX047)                         use count:  13
-    AXIS (AX020)                         use count:   2
- 
-! demonstrate proper management of dynamic axes
-DEFINE GRID/LIKE=gg123456789012345678902 gg123456789012345678903
-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
-DEFINE GRID/like=temp[d=levitus_climatology] gg123456789012345678902
-show grid gg123456789012345678902
-    GRID GG123456789012345678902
- 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
- normal    T
- normal    E
- normal    F
-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
- 
-! SET GRID using a user-defined variable
-let g = sst[x=0:30:.1,d=coads_climatology]
-set grid g
-show grid
- Default grid for DEFINE VARIABLE is 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
- normal    T
- normal    E
- normal    F
- 
-! The SET GRID (default) definition should be protected -- not altered
-load/d=coads_climatology sst[y=-10:10:.1,l=1,x=160e]
-show grid
- Default grid for DEFINE VARIABLE is G
- Last successful data access was on grid (G105)
-    GRID (G105)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX139)   LATITUDE           201 r   10S                  10N
- normal    Z
- TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-show grid/dynamic
-Dynamic grids:
-    GRID (G105)                          use count:   1
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX139)   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 (AX139)                         use count:   1
-    AXIS (AX049)                         use count:  13
-    AXIS (AX047)                         use count:  13
-    AXIS (AX020)                         use count:   2
- 
-! deliberate errors
-set mode ignore
-load/x=160e/y=5s temp[d=2,k=1,g=no_exist12345678901234567890]	! non-existent target variable
- 
-set mode/last ignore
- 
-go bn_reset
-cancel mode verify
- 
-! dynamic grid commands
- 
-use coads_climatology
-use levitus_climatology
- 
-DEFINE GRID/LIKE="temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5" mygrid_123456789012345678901234567890
-SHOW GRID mygrid_123456789012345678901234567890
-    GRID MYGRID_123456789012345678901234567890
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX128)   LATITUDE            41 r   10S                  2S
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
- normal    T
- normal    E
- normal    F
- 
-GO bn_reset
-cancel mode verify
-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"
-sh dat/xml/var
-<datasets>
-<dataset name="./coads_climatology.cdf" default="true">
-<title> </title>
-<var name="SST">
-<attribute name="units" type="char">
-   <value><![CDATA[<<]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[a title with & and > and < characters]]></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>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 ***********
- 
-GO bn_reset
-cancel mode verify
-GO bn65_bug_fixes
-! bn65_bug_fixes.jnl
-! Fixes that go into v6.5 release
- 
-GO bn_reset
-cancel mode verify
-GO err64_very_small_latlon
-! err64_very_small_latlon.jnl
-! Based on a report and data file from Jean Newman.
- 
-use err64_small_latlon
- 
-! crashed because of formats for lon/lat axis labels.
-shade bathy
- 
-! This one uses so many digits it will not be formatted
-shade/i=1:10/j=1:10 bathy
- 
-GO bn_reset
-cancel mode verify
-GO err64_packed_data
-! err64_packed_data.jnl
-! Test writing packed data. Prior to v6.4 this example shows the
-! crash described in bug 1715.
- 
-! ncpdq from NCO operators
-! sp ncpdq fine_x_axis.nc err64_packed_data.nc
-use err64_packed_data.nc
-sh att/all sst
-     attributes for dataset: ./err64_packed_data.nc
- SST.missing_value = 1.E+20
- SST._FillValue = 1.E+20
- SST.long_name = sea surface temperature [degc] 
- SST.history = From ghrsst_global 
- SST.scale_factor = -0.0001263447
- SST.add_offset = 27.32
- 
-! check that the coordinates packed by ncpdq are unpacked ok.
-list/i=1:15 sst
-             VARIABLE : sea surface temperature [degc]
-             FILENAME : err64_packed_data.nc
-             SUBSET   : 15 points (LONGITUDE)
-             LATITUDE : 0.025S
-             Z (count): 1
-             TIME     : APR-2006
-                     0.03S  
-                      1
- 179.972W  /  1:  27.49991
- 179.922W  /  2:  27.47995
- 179.872W  /  3:  27.46997
- 179.822W  /  4:  27.46997
- 179.772W  /  5:  27.44988
- 179.722W  /  6:  27.42992
- 179.672W  /  7:  27.42992
- 179.622W  /  8:  27.42992
- 179.572W  /  9:  27.44988
- 179.522W  / 10:  27.45999
- 179.472W  / 11:  27.46997
- 179.422W  / 12:  27.45999
- 179.372W  / 13:  27.46997
- 179.322W  / 14:  27.47995
- 179.272W  / 15:  27.48993
- 
-! we can write the data out - saving the scaling to re-pack.
-set att/output sst.scale_factor
-set att/output sst.add_offset
- 
-! With double-precision Ferret, need to write as float,
-! or the FillValue cant be represnted.
- 
-set var/outtype=float sst
- 
-save/clobber/file=mypack.nc/i=1:15 sst
-can data/all; use mypack.nc
-sh att/all sst
-     attributes for dataset: ./mypack.nc
- SST.missing_value = 1.E+20
- SST._FillValue = 1.E+20
- SST.long_name = sea surface temperature [degc] 
- SST.history = From ghrsst_global 
- SST.scale_factor = -0.0001263447
- SST.add_offset = 27.32
- SST.Ferret_Precision_Note = This variable written using Ferret was converted from SHORT to FLOAT 
- 
-list/i=1:15 sst
-             VARIABLE : sea surface temperature [degc]
-             FILENAME : mypack.nc
-             SUBSET   : 15 points (LONGITUDE)
-             LATITUDE : 0.025S
-             Z (count): 1
-             TIME     : APR-2006
-                     0.03S  
-                      1
- 179.972W  /  1:  27.49991
- 179.922W  /  2:  27.47995
- 179.872W  /  3:  27.46997
- 179.822W  /  4:  27.46997
- 179.772W  /  5:  27.44988
- 179.722W  /  6:  27.42992
- 179.672W  /  7:  27.42992
- 179.622W  /  8:  27.42992
- 179.572W  /  9:  27.44988
- 179.522W  / 10:  27.45999
- 179.472W  / 11:  27.46997
- 179.422W  / 12:  27.45999
- 179.372W  / 13:  27.46997
- 179.322W  / 14:  27.47995
- 179.272W  / 15:  27.48993
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_repl_9999999
-! bn_repl_9999999.jnl
-! Bug 1717
-! Bug on 64-bit ferret, replacing variable var= .9999999
-! which should just evaluate to 1. TM_FMT wound up with a
-! fortran FORMAT(I0) to write the value to the new command line.
- 
-let var=0.9999999
-def view/xlim=0,`var`/ylim=0,1 view9999999
- !-> def view/xlim=0,0.9999999/ylim=0,1 view9999999
-can view view9999999
- 
-GO bn_reset
-cancel mode verify
-GO err64_shakey_missingdata
-! err64_shakey_missingdata.jnl
-! starting with v6.2 a polygon plot with all missing data.
-! The shakey is just blank, not the requested colors.
-!
-! was ok ferret_v6193
-!        Linux(g77) 2.4.21-32 - 02/18/09
-!
-! Not   FERRET v6.194
-!        Linux(g77) 2.4.21-32 - 03/03/09
-!
-! This is in fillpol - the fix to bug 1641
- 
-! Define some data; zpts all missing
-let xpts = {3,5,6,7,8,9,10,13,15,16,17,18,19,21,22}
-let ypts = {1,2,3,4,5,6, 7, 8, 9, 4, 5, 6, 7, 8, 9}
-let zpts = { , , , , , ,  ,  ,  ,  ,  ,  ,  ,  ,  }
- 
-plot/vs/line xpts,ypts
-go polytube polygon/over/key/lev=(0,6,1) xpts,ypts,zpts
- 
- 
-GO bn_reset
-cancel mode verify
-GO err64_return_precision
-!err64_return_precision.jnl
-! most of these resulted in *** - format too small.
-! see bug1611
- 
-say `.099,p=-1`
- !-> MESSAGE/CONTINUE 0.1
-0.1
- 
-say `.99,p=-1`
- !-> MESSAGE/CONTINUE 1
-1
- 
-say `9.99,p=-1`
- !-> MESSAGE/CONTINUE 10
-10
- 
-say `99.99,p=-1`
- !-> MESSAGE/CONTINUE 100
-100
- 
-say `999.99,p=-1`
- !-> MESSAGE/CONTINUE 1000
-1000
- 
-say `999.999,p=-2`
- !-> MESSAGE/CONTINUE 1000
-1000
- 
- 
-GO bn_reset
-cancel mode verify
-GO err64_parse_equals
-! err64_parse_equals
-! Bug1469 (and duplicate 1690)
-! Parsing equals sign when it is in a string within
-! grave accents.
- 
-say `"+" EQ " "`
- !-> MESSAGE/CONTINUE 0
-0
- 
-say `"=" EQ "="`
- !-> MESSAGE/CONTINUE 1
-1
- 
-DEFINE SYMBOL my_sym  = `UPCASE("/lev=(0,30,2)")`
- !-> DEFINE SYMBOL my_sym  = /LEV=(0,30,2)
- 
- 
-GO bn_reset
-cancel mode verify
-GO err64_regrid_noleap
-! err64_regrid_noleap.jnl
-!
-! Bug 1723
-! Seen only under 32-bit, exec. built with netcdf4.1 library
- 
-def ax/t/unit=days/t0=1-jan-0001/cal=noleap/edge tax = \
-    {419263, 419293, 419324, 419354, 419385, 419416, \
-    419444, 419475, 419505, 419536, 419566, 419597}
-def ax/t/unit=days/t0=1-jan-0001/cal=noleap/edge/modulo=365 tax_c = \
-    {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365}
- 
-let a = t[gt=tax]
-let a_c = t[gt=tax_c]
-let b = a_c[gt=a]
-list b[t=15-feb-1150]  ! missing??
-             VARIABLE : A_C[GT=A]
-             TIME     : FEB-1150 NOLEAP
-          419430.0
- 
-list b  ! includes Feb 15 1150, not missing...
-             VARIABLE : A_C[GT=A]
-             SUBSET   : 11 points (TIME)
-             CALENDAR : NOLEAP
- 16-SEP-1149 00 /  1:  419278.0
- 16-OCT-1149 12 /  2:  419308.5
- 16-NOV-1149 00 /  3:  419339.0
- 16-DEC-1149 12 /  4:  419369.5
- 16-JAN-1150 12 /  5:  419400.5
- 15-FEB-1150 00 /  6:  419430.0
- 16-MAR-1150 12 /  7:  419459.5
- 16-APR-1150 00 /  8:  419490.0
- 16-MAY-1150 12 /  9:  419520.5
- 16-JUN-1150 00 / 10:  419551.0
- 16-JUL-1150 12 / 11:  419581.5
- 
-list b[t=15-feb-1150]  ! Now ok??
-             VARIABLE : A_C[GT=A]
-             TIME     : FEB-1150 NOLEAP
-          419430.0
- 
-GO bn_reset
-cancel mode verify
-GO err64_polymark_over_calendar
-! err64_polymark_over_calendar.jnl
-! bug1722.  Polymark script failed with calendar mismatch
-!           it should not if the overlay time axis is abstract.
-!
-def ax/t=1-jan-0002:1-jan-0010:1/cal=noleap/unit=year/edges tax
-let tval = t[gt=tax]
-plot tval
-let pos = {`tval[l=4]`,`tval[l=5]`}
- !-> DEFINE VARIABLE pos = {5.5,6.5}
-poly/ov/nolab/line=15 pos,pos      ! this works
- 
-! Here we got an error about mismatched calendars on time axes:
-go polymark "poly/ov/nolab/pal=red/line=1" pos pos " " circle .5
- 
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_txtype_dmy
-! bn_txtype_dmy.jnl
-! 2/2010 ACM
-!
-! Testing Time Axis plot style "DMY" labels the year
-! as well as month or day,month on MON and DAY axes.
-! Symbol TXTYPE_SETTING contains YR, MON, DAY after the
-! axis type has been set for the axis; lets us plot/set
-! and then choose the time axis label style
-! Useful when going across years or plotting with /NOLAB
- 
-set win/asp=1
-use gtsa056_2.cdf
- 
-! Plot the whole series; txtype is YR
-plot/x=140w/y=-1/k=1/set temp
-sh sym TXTYPE_SETTING
-TXTYPE_SETTING = "YR"
-if ($TXTYPE_SETTING"0|MON>1|*>0") THEN PPL TXTYPE,MON,DMY
- !-> if 0 THEN PPL TXTYPE,MON,DMY
-ppl plot
- 
-! This will be MON
-shade/x=140w/k=1/t=1-feb-1982:15-apr-1982/set temp
-sh sym TXTYPE_SETTING
-TXTYPE_SETTING = "MON"
-if ($TXTYPE_SETTING"0|MON>1|*>0") THEN PPL TXTYPE,MON,DMY
- !-> if 1 THEN PPL TXTYPE,MON,DMY
-ppl shade
- 
-! Also MON so setting not changed.
-contour/x=140w/k=1/t=1-feb-1982:15-feb-1982/set temp
-sh sym TXTYPE_SETTING
-TXTYPE_SETTING = "MON"
-if ($TXTYPE_SETTING"0|MON>1|*>0") THEN PPL TXTYPE,MON,DMY
- !-> if 1 THEN PPL TXTYPE,MON,DMY
-ppl contour
- 
- 
-! Is DAY so setting not changed.
- 
-plot/set/x=140w/y=-1/k=1/t=27-feb-1982:2-mar-1982 temp
-sh sym TXTYPE_SETTING
-TXTYPE_SETTING = "DAY"
-if ($TXTYPE_SETTING"0|MON>1|*>0") THEN PPL TXTYPE,MON,DMY
- !-> if 0 THEN PPL TXTYPE,MON,DMY
-ppl plot
- 
-! Set PPL TXTYPE with DAY,DMY
-plot/set/x=140w/y=-1/k=1/t=27-feb-1982:2-mar-1982 temp
-sh sym TXTYPE_SETTING
-TXTYPE_SETTING = "DAY"
-if ($TXTYPE_SETTING"0|DAY>1|*>0") THEN PPL TXTYPE,DAY,DMY
- !-> if 1 THEN PPL TXTYPE,DAY,DMY
-ppl plot
- 
-! If the type is going to be EITHER DAY or MON then set
-! the style to DMY. Leave the 1st argument blank to keep the
-! default
-plot/set/x=140w/y=-1/k=1/t=27-feb-1982:28-mar-1982 temp
-sh sym TXTYPE_SETTING
-TXTYPE_SETTING = "MON"
-if ($TXTYPE_SETTING"0|DAY>1|MON>1|*>0") THEN PPL TXTYPE,,DMY
- !-> if 1 THEN PPL TXTYPE,,DMY
-ppl plot
- 
- 
-! Same commands with the TIME axis on the vertical
-! Plot the whole series; txtype is YR
-plot/x=140w/y=-1/k=1/set temp
-sh sym TXTYPE_SETTING
-TXTYPE_SETTING = "YR"
-if ($TXTYPE_SETTING"0|MON>1|*>0") THEN PPL TXTYPE,MON,DMY
- !-> if 0 THEN PPL TXTYPE,MON,DMY
-ppl plot
- 
-! This will be MON
-shade/y=-1/k=1/t=1-feb-1982:15-apr-1982/set temp
-sh sym TXTYPE_SETTING
-TXTYPE_SETTING = "MON"
-if ($TXTYPE_SETTING"0|MON>1|*>0") THEN PPL TXTYPE,MON,DMY
- !-> if 1 THEN PPL TXTYPE,MON,DMY
-ppl shade
- 
-! Also MON so setting not changed.
-contour/y=-1/k=1/t=1-feb-1982:15-feb-1982/set temp
-sh sym TXTYPE_SETTING
-TXTYPE_SETTING = "MON"
-if ($TXTYPE_SETTING"0|MON>1|*>0") THEN PPL TXTYPE,MON,DMY
- !-> if 1 THEN PPL TXTYPE,MON,DMY
-ppl contour
- 
- 
-! Is DAY so setting not changed.
- 
-plot/set/trans/x=140w/y=-1/k=1/t=27-feb-1982:2-mar-1982 temp
-sh sym TXTYPE_SETTING
-TXTYPE_SETTING = "DAY"
-if ($TXTYPE_SETTING"0|MON>1|*>0") THEN PPL TXTYPE,MON,DMY
- !-> if 0 THEN PPL TXTYPE,MON,DMY
-ppl plot
- 
-! Set PPL TXTYPE with DAY,DMY
-plot/set/trans/x=140w/y=-1/k=1/t=27-feb-1982:2-mar-1982 temp
-sh sym TXTYPE_SETTING
-TXTYPE_SETTING = "DAY"
-if ($TXTYPE_SETTING"0|DAY>1|*>0") THEN PPL TXTYPE,DAY,DMY
- !-> if 1 THEN PPL TXTYPE,DAY,DMY
-ppl plot
- 
-! If the type is going to be EITHER DAY or MON then set
-! the style to DMY. Leave the 1st argument blank to keep the
-! default
-plot/set/trans/x=140w/y=-1/k=1/t=27-feb-1982:28-mar-1982 temp
-sh sym TXTYPE_SETTING
-TXTYPE_SETTING = "MON"
-if ($TXTYPE_SETTING"0|DAY>1|MON>1|*>0") THEN PPL TXTYPE,,DMY
- !-> if 1 THEN PPL TXTYPE,,DMY
-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
- 
-GO bn_reset
-cancel mode verify
-GO bn_n_open_dsets_sym
- !  bn_n_open_dsets_sym.jnl
-! Ferret v6.5
-! New special symbol N_OPEN_DSETS, evaulated when requested.
-! Gives a count of the number of open datasets.
- 
-! Initially should be zero
-sh sym N_OPEN_DSETS
-N_OPEN_DSETS = "0"
- 
-! Open some datasets
-use dstitle
-use TAO_SST_clim
-use clim_airt_lev
- 
-! Check
-sh sym N_OPEN_DSETS
-N_OPEN_DSETS = "3"
- 
-! Open a few more. Any type of data
-set data tok_short.des
- 
-list/clobber/file=list_of_numbers.dat/nohead/norowhead {1,3,4,5,6,8,9}
-file/var=v1 list_of_numbers.dat
- 
-! now  there are five
-sh sym N_OPEN_DSETS
-N_OPEN_DSETS = "5"
- 
-! cancel a couple
-can data 3
-can data TAO_SST_clim
- 
-! Now three
-sh sym N_OPEN_DSETS
-N_OPEN_DSETS = "3"
- 
-can dat/all
-sh sym N_OPEN_DSETS
-N_OPEN_DSETS = "0"
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_multi_decade
-! bn_multi_decade.jnl
-! New default no-small tics for multi-decade plots
-! See bug 670
- 
-def axis/t="01-JAN-1860":"30-DEC-2300":5/edges/units="Days"/cal="360d" simutaxis1
-let tvar = t[gt=simutaxis1]*-1E+34
- 
-define view/x=0:1/y=0.000:0.125 v1
-define view/x=0:1/y=0.125:0.250 v2
-define view/x=0:1/y=0.250:0.375 v3
-define view/x=0:1/y=0.375:0.500 v4
-define view/x=0:1/y=0.500:0.625 v5
-define view/x=0:1/y=0.625:0.750 v6
-define view/x=0:1/y=0.750:0.875 v7
-define view/x=0:1/y=0.875:1.000 v8
- 
-! Plot a variety of time axis lengths.
-set view v1; plot/nolab/ax=0,1,0,0/vlim=0:1 tvar[t=1-jan-1860:1-jan-1870]
-set view v2; plot/nolab/ax=0,1,0,0/vlim=0:1 tvar[t=1-jan-1860:1-jan-1880]
- 
-! New default: no small tics for multi-decade plots
-set view v3; plot/nolab/ax=0,1,0,0/vlim=0:1 tvar[t=1-jan-1860:1-jan-1890]
-set view v4; plot/nolab/ax=0,1,0,0/vlim=0:1 tvar[t=1-jan-1860:1-jan-2000]
-set view v5; plot/nolab/ax=0,1,0,0/vlim=0:1 tvar[t=1-jan-1860:1-jan-2060]
-set view v6; plot/nolab/ax=0,1,0,0/vlim=0:1 tvar[t=1-jan-1860:1-jan-2160]
-set view v7; plot/nolab/ax=0,1,0,0/vlim=0:1 tvar
- 
-! can plot the tics even on a multi-decade axis by specifying PPL TICS.
-set view v8; plot/nolab/ax=0,1,0,0/vlim=0:1/set tvar
-  ppl tics,0.1,0.25
-  ppl plot
- 
-cancel view
- 
-! Test vertical time axes.
- 
-define view/x=0.000:0.125/y=0:1 v1
-define view/x=0.125:0.250/y=0:1 v2
-define view/x=0.250:0.375/y=0:1 v3
-define view/x=0.375:0.500/y=0:1 v4
-define view/x=0.500:0.625/y=0:1 v5
-define view/x=0.625:0.750/y=0:1 v6
-define view/x=0.750:0.875/y=0:1 v7
-define view/x=0.875:1.000/y=0:1 v8
- 
-! Plot a variety of time axis lengths.
-set view v1; plot/trans/nolab/ax=0,0,1,0/hlim=0:1 tvar[t=1-jan-1860:1-jan-1870]
-set view v2; plot/trans/nolab/ax=0,0,1,0/hlim=0:1 tvar[t=1-jan-1860:1-jan-1880]
- 
-! New default: no small tics for multi-decade plots
-set view v3; plot/trans/nolab/ax=0,0,1,0/hlim=0:1 tvar[t=1-jan-1860:1-jan-1890]
-set view v4; plot/trans/nolab/ax=0,0,1,0/hlim=0:1 tvar[t=1-jan-1860:1-jan-2000]
-set view v5; plot/trans/nolab/ax=0,0,1,0/hlim=0:1 tvar[t=1-jan-1860:1-jan-2060]
-set view v6; plot/trans/nolab/ax=0,0,1,0/hlim=0:1 tvar[t=1-jan-1860:1-jan-2160]
-set view v7; plot/trans/nolab/ax=0,0,1,0/hlim=0:1 tvar
- 
-! can plot the tics even on a multi-decade axis by specifying PPL TICS.
-set view v8; plot/trans/nolab/ax=0,0,1,0/hlim=0:1/set tvar
-  ppl tics,0.1,0.25
-  ppl plot
- 
-GO bn_reset
-cancel mode verify
-GO bn_show_xml_file
-! bn_show_xml_file.jnl
-! Testing SHOW DATA/OUTFILE
-!         SHOW AXIS/OUTFILE
-!         SHOW VAR/OUTFILE
-!         SAY/OUTFILE
-!
-! Similar to LAS iosp script header.jnl
-! capability to be expanded to all SHOW commands in the future.
-! 5/2012:
-! Do this on a dataset with just one variable.
-! Dont do show axis/all. Just the axes for one variable is a lot of output.
-! Ferret v685, show/data/var/xml includes the output of show axis, so remove that.
- 
-USE ocean_atlas_temp.cdf
- 
-DEFINE SYMBOL output_xml_file = the_xml_file.xml
- 
-say/quiet/outfile=($output_xml_file)/clobber <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
- !-> MESSAGE/CONTINUE/quiet/outfile=the_xml_file.xml/clobber <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
-say/quiet/outfile=($output_xml_file)/append <data>
- !-> MESSAGE/CONTINUE/quiet/outfile=the_xml_file.xml/append <data>
- 
-show var/xml/append/outfile=($output_xml_file)
- !-> show var/xml/append/outfile=the_xml_file.xml
-show data/var/xml/append/outfile=($output_xml_file)
- !-> show data/var/xml/append/outfile=the_xml_file.xml
-say/quiet/outfile=($output_xml_file)/append </data>
- !-> MESSAGE/CONTINUE/quiet/outfile=the_xml_file.xml/append </data>
- 
-! on 32-bit machine the cat command below doesnt show file contents if
-! the file is still open. Close it by listing to another file.
-list/clobber/file=dummy.dat 1
- 
-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">
-<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="GBS1">
-<axes>
-<xaxis>XAX_LEV9421_380</xaxis>
-<yaxis>YAX_LEV94</yaxis>
-<zaxis>ZAXLEVIT191_1</zaxis>
-<taxis>TIME3</taxis>
-</axes>
-</grid>
-</var>
-</dataset>
-</datasets>
-<axes>
-<axis name="TIME3">
-<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>2</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>0000-01-16 06:00:00</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>0000-02-15 16:29: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="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>
-<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[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>
-<attribute name="start" type="double">
-   <value>-89.5</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>89.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="orig_file_axname" type="char">
-   <value><![CDATA[YAX_LEV94]]></value>
-</attribute>
-</axis>
-<axis name="ZAXLEVIT191_1">
-<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>1</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>0</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>0</value>
-</attribute>
-<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[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[ZAXLEVIT191_1]]></value>
-</attribute>
-</axis>
-</axes>
-</data>
- 
- 
- 
-! GO bn_reset
-! GO bn_encode_url
- 
-! ******** V6.6 Additions below ***********
- 
-GO bn_reset
-cancel mode verify
-GO bn66_bug_fixes
-! bn66_bug_fixes.jnl
-! Fixes that go into v6.6 release
- 
- 
-GO bn_reset
-cancel mode verify
-GO err65_averages.jnl
- 
-use gt4d011
-set region/z=0:90/y=-3.5:3.5
-stat temp[x=@ave,t=@ave]
- 
-             TEMPERATURE
-             LONGITUDE: 140W to 122W (XT ave)
-             LATITUDE: 3.5S to 3.5N
-             DEPTH (m): 0 to 90
-             TIME: AUG-1982 to JAN-1983 (XT ave)
-             E:  N/A
-             F:  N/A
-             DATA SET: ./gt4d011.cdf
- 
- Total # of data points: 198 (1*22*9*1*1*1)
- # flagged as bad  data: 0
- Minimum value: 24.279
- Maximum value: 31.248
- Mean    value: 28.047 (unweighted average)
- Standard deviation: 1.7502
- 
-stat temp[x=@ave,z=@ave]
- 
-             TEMPERATURE
-             LONGITUDE: 140W to 122W (XZ ave)
-             LATITUDE: 3.5S to 3.5N
-             DEPTH (m): 0 to 90 (XZ ave)
-             TIME: AUG-1982 to JAN-1983
-             E:  N/A
-             F:  N/A
-             DATA SET: ./gt4d011.cdf
- 
- Total # of data points: 550 (1*22*1*25*1*1)
- # flagged as bad  data: 0
- Minimum value: 25.194
- Maximum value: 30.027
- Mean    value: 28.047 (unweighted average)
- Standard deviation: 1.1926
- 
-list temp[x=@ave,z=@ave,t=@ave]
-             VARIABLE : TEMPERATURE (deg. C)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 22 points (LATITUDE)
-             LONGITUDE: 140W to 122W (XZT ave)
-             DEPTH (m): 0 to 90 (XZT ave)
-             TIME     : AUG-1982 to JAN-1983 (XZT ave)
- 3.5N  / 56:  27.59128
- 3.17N / 55:  27.76072
- 2.83N / 54:  27.89503
- 2.5N  / 53:  28.00175
- 2.17N / 52:  28.08330
- 1.83N / 51:  28.13652
- 1.5N  / 50:  28.15913
- 1.17N / 49:  28.15796
- 0.83N / 48:  28.14635
- 0.5N  / 47:  28.13609
- 0.17N / 46:  28.13627
- 0.17S / 45:  28.15042
- 0.5S  / 44:  28.17639
- 0.83S / 43:  28.20504
- 1.17S / 42:  28.22684
- 1.5S  / 41:  28.23347
- 1.83S / 40:  28.21657
- 2.17S / 39:  28.16886
- 2.5S  / 38:  28.08460
- 2.83S / 37:  27.96112
- 3.17S / 36:  27.80014
- 3.5S  / 35:  27.60770
- 
-stat temp[z=@ave,t=@ave,y=-2:2]
- 
-             TEMPERATURE
-             LONGITUDE: 140W to 122W
-             LATITUDE: 2S to 2N
-             DEPTH (m): 0 to 90 (ZT ave)
-             TIME: AUG-1982 to JAN-1983 (ZT ave)
-             E:  N/A
-             F:  N/A
-             DATA SET: ./gt4d011.cdf
- 
- Total # of data points: 234 (18*13*1*1*1*1)
- # flagged as bad  data: 0
- Minimum value: 27.445
- Maximum value: 28.925
- Mean    value: 28.173 (unweighted average)
- Standard deviation: 0.40997
- 
-cancel region
- 
-GO bn_reset
-cancel mode verify
-GO bn_netcdf4
-! bn_netcdf4.jnl
-! test syntax for controling NetCDF-4 intput and output.
- 
- 
- 
-show nccache
-Current NCDF Chunk Cache size 4.1943 MB, n_elems = 1009, preemption = 75
- 
-set nccache/siz=4
- 
-show nccache
-Current NCDF Chunk Cache size 4 MB, n_elems = 1009, preemption = 75
-cancel nccache
- 
-show nccache
-Current NCDF Chunk Cache size 4.1943 MB, n_elems = 1009, preemption = 75
- 
-set nccache/siz=8
-show nccache
-Current NCDF Chunk Cache size 8 MB, n_elems = 1009, preemption = 75
-cancel nccache
- 
-! --------------------------
-! Set choice of chunking.
-can dat/all; can var/all; can mem/all
- 
-use coads_climatology
-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
- 
-! --------------------------
-! Compare choices of chunking.
-can var/all; can mem/all
- 
-set var/title=deflate_x180_y90 sst
-save/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk=180/ychunk=90/tchunk=1 sst
- 
- 
-set var/title=undeflated sst
- 
-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
- 
- 
-! Write variable as INT
-CAN DAT/all; can var/all; can mem/all
-use levitus_climatology
-SET VAR/OUTTYPE=int/BAD=-99999 temp
-save/clobber/ncformat=classic/file=nc4_inttemp_classic.nc temp
- 
-set list/ncformat=4/deflate=1/xchunk=10/ychunk=10/zchunk=1
-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
- 
-cancel list/all
-set list/ncformat=classic
-save/clobber/file=nc4_inttemp_set_classic.nc temp
- 
-cancel list/all
- 
-! Check SHOW LIST, and CANCEL LIST
- 
-set list/xchunk=30/ychunk=20/tchunk=5/zchunk=1/deflate=1/shuffle=0/ncformat=4
-sh list/all
-        SET LIST/PRECISION =   4
-        SET LIST/FORMAT = [Default]
-        SET LIST/HEADING is ENABLED
-        SET LIST/APPEND is DISABLED
-        SET LIST/FILE=AUTO [created by program] ( when LIST/FILE is used )
-        SET LIST/OUTTYPE = [Default]
-           ----
-        NetCDF-4 settings:
-        NetCDF file type = NetCDF-4
-        Compression (deflate) level set to 1
-        XCHUNK size set to 30
-        YCHUNK size set to 20
-        ZCHUNK size set to 1
-        TCHUNK size set to 5
-        SHUFFLE set to on
-        ENDIAN set to native
- 
-can list/all
-sh list/all
-        SET LIST/PRECISION =   4
-        SET LIST/FORMAT = [Default]
-        SET LIST/HEADING is ENABLED
-        SET LIST/APPEND is DISABLED
-        SET LIST/FILE=AUTO [created by program] ( when LIST/FILE is used )
-        SET LIST/OUTTYPE = [Default]
-           ----
-        NetCDF-4 settings:
-        NetCDF file type = classic
-        NetCDF chunk sizes = default
-        SHUFFLE set to on
-        ENDIAN set to native
- 
-! Intentional errors:
-can dat/all
-use coads_climatology
-set mode ignore
-! If set any chunksizes, must set them all
-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
-can mode ignore
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_scat2grid_bin.jnl
-! bn_scat2grid_bin.jnl
-! Tests of scat2grid_bin and scat2grid_nbin functions.
- 
-! define some variables (as in bench_gridding)
- 
-define axis/t=1-jan-2010:30-mar-2010:1/units=days tin
-define axis/t=1-jan-2010:30-mar-2010:10/units=days tout
-let tt = t[gt=tout,L=1:10]
-sh grid tt
-    GRID (G088)
- name       axis              # pts   start                end
- normal    X
- normal    Y
- normal    Z
- TOUT      TIME                10 r   01-JAN-2010 00:00    01-APR-2010 00:00
- normal    E
- normal    F
- 
- 
-define axis/x=0:10:0.05 x10
-define axis/y=0:10:0.05 y10
-define grid/x=x10/y=y10 g10x10
-set grid g10x10
- 
-let WAVE = SIN(KX*XPTS + KY*YPTS - PHASE) / 3
-let PHASE = 0
-let KAPPA = 0.4
-let KX = 0.4
-let KY = 0.7
-let FCN1 = SIN(R)/(R+1)
-let R = ((XPTS-X0)^2+ 5*(YPTS-Y0)^2)^0.5
-let X0 = 3
-let Y0 = 8
-LET sample_function = fcn1 + wave
-set view ul
-let xpts = x; let ypts = y
-SHADE/title="A field with 200 sample points marked" sample_function
-let xpts = 10*randu(i); let ypts = 10*randu(i+2)
-set region/i=1:200
-plot/vs/over/symbols xpts,ypts
-define axis/x=1:10:.5 xax5
-define axis/y=1:10:.5 yax5
-define axis/x=1:10:.2 xax2
-define axis/y=1:10:.2 yax2
-set view ll
-let sgrid = scat2grid_bin_xy (xpts, ypts, sample_function, x[gx=xax5], y[gy=yax5])
-SHADE/TITLE="Bin Gridding (5,5) to 20x20 grid" sgrid
-list/x=2:3 sgrid
-             VARIABLE : SCAT2GRID_BIN_XY (XPTS, YPTS, SAMPLE_FUNCTION, X[GX=XAX5], Y[GY=YAX5])
-             SUBSET   : 3 by 19 points (X-Y)
-                2       2.5     3     
-                 3       4       5
- 1     /  1:    ....    ....    ....
- 1.5   /  2:    ....  0.3250    ....
- 2     /  3:  0.3365    ....    ....
- 2.5   /  4:    ....  0.0915    ....
- 3     /  5:    .... -0.0921 -0.1235
- 3.5   /  6:    ....    ....    ....
- 4     /  7:    ....    ....    ....
- 4.5   /  8: -0.1083    .... -0.1934
- 5     /  9: -0.2851 -0.2127 -0.2336
- 5.5   / 10: -0.4247    .... -0.4259
- 6     / 11: -0.4858 -0.4472 -0.3515
- 6.5   / 12: -0.2793    .... -0.3158
- 7     / 13: -0.1265    ....    ....
- 7.5   / 14:    ....    ....  0.4598
- 8     / 15:    ....    ....  0.4264
- 8.5   / 16:    ....    ....  0.6377
- 9     / 17:  0.4793    ....  0.5147
- 9.5   / 18:    ....  0.2919    ....
- 10    / 19:    ....    ....    ....
- 
-set view lr
-let sgrid = scat2grid_bin_xy(xpts, ypts, sample_function, x[gx=xax2], y[gy=yax2])
-SHADE/TITLE="Bin Gridding (1,1) to 100x100" sgrid
-list/x=2:3 sgrid
-             VARIABLE : SCAT2GRID_BIN_XY(XPTS, YPTS, SAMPLE_FUNCTION, X[GX=XAX2], Y[GY=YAX2])
-             SUBSET   : 6 by 46 points (X-Y)
-                2       2.2     2.4     2.6     2.8     3     
-                 6       7       8       9      10      11
- 1     /  1:    ....    ....    ....    ....    ....    ....
- 1.2   /  2:    ....    ....    ....    ....    ....    ....
- 1.4   /  3:    ....    ....    ....    ....    ....    ....
- 1.6   /  4:    ....    ....    ....    ....  0.3250    ....
- 1.8   /  5:    ....    ....    ....    ....    ....    ....
- 2     /  6:    ....    ....    ....    ....    ....    ....
- 2.2   /  7:    ....    ....    ....    ....    ....    ....
- 2.4   /  8:    ....    ....    ....    ....    ....    ....
- 2.6   /  9:    ....    ....  0.0915    ....    ....    ....
- 2.8   / 10:    ....    ....    ....    ....    ....    ....
- 3     / 11:    ....    ....    .... -0.0921 -0.1235    ....
- 3.2   / 12:    ....    ....    ....    ....    ....    ....
- 3.4   / 13:    ....    ....    ....    ....    ....    ....
- 3.6   / 14:    ....    ....    ....    ....    ....    ....
- 3.8   / 15:    ....    ....    ....    ....    ....    ....
- 4     / 16:    ....    ....    ....    ....    ....    ....
- 4.2   / 17: -0.1083    ....    ....    ....    ....    ....
- 4.4   / 18:    ....    ....    ....    ....    ....    ....
- 4.6   / 19:    ....    ....    ....    .... -0.1934    ....
- 4.8   / 20:    ....    .... -0.2127    .... -0.2336    ....
- 5     / 21:    .... -0.2851    ....    ....    ....    ....
- 5.2   / 22:    ....    ....    ....    ....    ....    ....
- 5.4   / 23:    ....    ....    ....    ....    ....    ....
- 5.6   / 24: -0.4552    ....    ....    .... -0.4259    ....
- 5.8   / 25:    .... -0.4810    ....    ....    ....    ....
- 6     / 26:    ....    ....    ....    ....    ....    ....
- 6.2   / 27:    ....    .... -0.4134    ....    ....    ....
- 6.4   / 28:    ....    ....    ....    .... -0.3158    ....
- 6.6   / 29: -0.2793    ....    ....    ....    ....    ....
- 6.8   / 30:    ....    ....    ....    ....    ....    ....
- 7     / 31:    ....    ....    ....    ....    ....    ....
- 7.2   / 32:    ....    ....    ....    ....    ....    ....
- 7.4   / 33:    ....    ....    ....    ....    ....    ....
- 7.6   / 34:    ....    ....    ....    ....    ....    ....
- 7.8   / 35:    ....    ....    ....    ....    ....  0.4264
- 8     / 36:    ....    ....    ....    ....    ....    ....
- 8.2   / 37:    ....    ....    ....    ....    ....    ....
- 8.4   / 38:    ....    ....    ....    ....  0.6377    ....
- 8.6   / 39:    ....    ....    ....    ....    ....    ....
- 8.8   / 40:  0.4703    ....    ....    ....    ....    ....
- 9     / 41:    ....  0.4883    ....    ....    ....    ....
- 9.2   / 42:    ....    ....    ....    ....    ....    ....
- 9.4   / 43:    ....    ....    ....    ....  0.3475    ....
- 9.6   / 44:    ....    ....    ....    ....  0.2364    ....
- 9.8   / 45:    ....    ....    ....    ....    ....    ....
- 10    / 46:    ....    ....    ....    ....    ....    ....
- 
-! Now the NBIN functios
- 
-let sgrid = scat2grid_nbin_xy (xpts, ypts, sample_function, x[gx=xax5], y[gy=yax5])
-SHADE/TITLE="NBIN Gridding (5,5) to 20x20 grid" sgrid
-list/x=2:3 sgrid
-             VARIABLE : SCAT2GRID_NBIN_XY (XPTS, YPTS, SAMPLE_FUNCTION, X[GX=XAX5], Y[GY=YAX5])
-             SUBSET   : 3 by 19 points (X-Y)
-               2      2.5    3     
-                3      4      5
- 1     /  1:  0.000  0.000  0.000
- 1.5   /  2:  0.000  1.000  0.000
- 2     /  3:  2.000  0.000  0.000
- 2.5   /  4:  0.000  1.000  0.000
- 3     /  5:  0.000  1.000  1.000
- 3.5   /  6:  0.000  0.000  0.000
- 4     /  7:  0.000  0.000  0.000
- 4.5   /  8:  1.000  0.000  1.000
- 5     /  9:  1.000  1.000  1.000
- 5.5   / 10:  2.000  0.000  1.000
- 6     / 11:  1.000  2.000  1.000
- 6.5   / 12:  1.000  0.000  1.000
- 7     / 13:  1.000  0.000  0.000
- 7.5   / 14:  0.000  0.000  2.000
- 8     / 15:  0.000  0.000  1.000
- 8.5   / 16:  0.000  0.000  1.000
- 9     / 17:  2.000  0.000  1.000
- 9.5   / 18:  0.000  2.000  0.000
- 10    / 19:  0.000  0.000  0.000
- 
-set view lr
-let sgrid = scat2grid_nbin_xy(xpts, ypts, sample_function, x[gx=xax2], y[gy=yax2])
-SHADE/TITLE="NBIN Gridding (1,1) to 100x100" sgrid
-list/x=2:3 sgrid
-             VARIABLE : SCAT2GRID_NBIN_XY(XPTS, YPTS, SAMPLE_FUNCTION, X[GX=XAX2], Y[GY=YAX2])
-             SUBSET   : 6 by 46 points (X-Y)
-               2      2.2    2.4    2.6    2.8    3     
-                6      7      8      9     10     11
- 1     /  1:  0.000  0.000  0.000  0.000  0.000  0.000
- 1.2   /  2:  0.000  0.000  0.000  0.000  0.000  0.000
- 1.4   /  3:  0.000  0.000  0.000  0.000  0.000  0.000
- 1.6   /  4:  0.000  0.000  0.000  0.000  1.000  0.000
- 1.8   /  5:  0.000  0.000  0.000  0.000  0.000  0.000
- 2     /  6:  0.000  0.000  0.000  0.000  0.000  0.000
- 2.2   /  7:  0.000  0.000  0.000  0.000  0.000  0.000
- 2.4   /  8:  0.000  0.000  0.000  0.000  0.000  0.000
- 2.6   /  9:  0.000  0.000  1.000  0.000  0.000  0.000
- 2.8   / 10:  0.000  0.000  0.000  0.000  0.000  0.000
- 3     / 11:  0.000  0.000  0.000  1.000  1.000  0.000
- 3.2   / 12:  0.000  0.000  0.000  0.000  0.000  0.000
- 3.4   / 13:  0.000  0.000  0.000  0.000  0.000  0.000
- 3.6   / 14:  0.000  0.000  0.000  0.000  0.000  0.000
- 3.8   / 15:  0.000  0.000  0.000  0.000  0.000  0.000
- 4     / 16:  0.000  0.000  0.000  0.000  0.000  0.000
- 4.2   / 17:  1.000  0.000  0.000  0.000  0.000  0.000
- 4.4   / 18:  0.000  0.000  0.000  0.000  0.000  0.000
- 4.6   / 19:  0.000  0.000  0.000  0.000  1.000  0.000
- 4.8   / 20:  0.000  0.000  1.000  0.000  1.000  0.000
- 5     / 21:  0.000  1.000  0.000  0.000  0.000  0.000
- 5.2   / 22:  0.000  0.000  0.000  0.000  0.000  0.000
- 5.4   / 23:  0.000  0.000  0.000  0.000  0.000  0.000
- 5.6   / 24:  1.000  0.000  0.000  0.000  1.000  0.000
- 5.8   / 25:  0.000  1.000  0.000  0.000  0.000  0.000
- 6     / 26:  0.000  0.000  0.000  0.000  0.000  0.000
- 6.2   / 27:  0.000  0.000  1.000  0.000  0.000  0.000
- 6.4   / 28:  0.000  0.000  0.000  0.000  1.000  0.000
- 6.6   / 29:  1.000  0.000  0.000  0.000  0.000  0.000
- 6.8   / 30:  0.000  0.000  0.000  0.000  0.000  0.000
- 7     / 31:  0.000  0.000  0.000  0.000  0.000  0.000
- 7.2   / 32:  0.000  0.000  0.000  0.000  0.000  0.000
- 7.4   / 33:  0.000  0.000  0.000  0.000  0.000  0.000
- 7.6   / 34:  0.000  0.000  0.000  0.000  0.000  0.000
- 7.8   / 35:  0.000  0.000  0.000  0.000  0.000  1.000
- 8     / 36:  0.000  0.000  0.000  0.000  0.000  0.000
- 8.2   / 37:  0.000  0.000  0.000  0.000  0.000  0.000
- 8.4   / 38:  0.000  0.000  0.000  0.000  1.000  0.000
- 8.6   / 39:  0.000  0.000  0.000  0.000  0.000  0.000
- 8.8   / 40:  1.000  0.000  0.000  0.000  0.000  0.000
- 9     / 41:  0.000  1.000  0.000  0.000  0.000  0.000
- 9.2   / 42:  0.000  0.000  0.000  0.000  0.000  0.000
- 9.4   / 43:  0.000  0.000  0.000  0.000  1.000  0.000
- 9.6   / 44:  0.000  0.000  0.000  0.000  1.000  0.000
- 9.8   / 45:  0.000  0.000  0.000  0.000  0.000  0.000
- 10    / 46:  0.000  0.000  0.000  0.000  0.000  0.000
- 
- 
-! Now the XYT functions
- 
-let tpts = 39798 + 87*RANDU(I)
-show grid tt
-    GRID (G095)
- name       axis              # pts   start                end
- X10       X                  201 r   0                    10
- Y10       Y                  201 r   0                    10
- normal    Z
- TOUT      TIME                10 r   01-JAN-2010 00:00    01-APR-2010 00:00
- normal    E
- normal    F
- 
-let sgrid = scat2grid_bin_xyt (xpts, ypts, tpts, sample_function, x[gx=xax5], y[gy=yax5], tt)
-SAVE/FILE=a.nc/clobber sgrid
- 
- 
-let ngrid = scat2grid_nbin_xyt (xpts, ypts, tpts, sample_function, x[gx=xax5], y[gy=yax5], tt)
-SAVE/FILE=a.nc/append ngrid
- 
-can var/all
-use a.nc
-stat sgrid
- 
-             SCAT2GRID_BIN_XYT (XPTS, YPTS, TPTS, SAMPLE_FUNCTION, X[GX=XAX5], Y[GY=YAX5], TT)
-             X: 0.75 to 10.25
-             Y: 0.75 to 10.25
-             Z:  N/A
-             TIME: DEC-2009 to APR-2010
-             E:  N/A
-             F:  N/A
-             DATA SET: ./a.nc
- 
- Total # of data points: 3610 (19*19*1*10*1*1)
- # flagged as bad  data: 3464
- Minimum value: -0.48583
- Maximum value: 0.63765
- Mean    value: 0.014003 (unweighted average)
- Standard deviation: 0.28222
-stat ngrid
- 
-             SCAT2GRID_NBIN_XYT (XPTS, YPTS, TPTS, SAMPLE_FUNCTION, X[GX=XAX5], Y[GY=YAX5], TT)
-             X: 0.75 to 10.25
-             Y: 0.75 to 10.25
-             Z:  N/A
-             TIME: DEC-2009 to APR-2010
-             E:  N/A
-             F:  N/A
-             DATA SET: ./a.nc
- 
- Total # of data points: 3610 (19*19*1*10*1*1)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 3
- Mean    value: 0.047645 (unweighted average)
- Standard deviation: 0.24679
-list/x=2:3/L=3 sgrid
-             VARIABLE : SCAT2GRID_BIN_XYT (XPTS, YPTS, TPTS, SAMPLE_FUNCTION, X[GX=XAX5], Y[GY=YAX5], TT)
-             FILENAME : a.nc
-             SUBSET   : 3 by 19 points (X-Y)
-             TIME     : JAN-2010
-                2       2.5     3     
-                 3       4       5
- 1     /  1:    ....    ....    ....
- 1.5   /  2:    ....  0.3250    ....
- 2     /  3:  0.3365    ....    ....
- 2.5   /  4:    ....  0.0915    ....
- 3     /  5:    .... -0.0921 -0.1235
- 3.5   /  6:    ....    ....    ....
- 4     /  7:    ....    ....    ....
- 4.5   /  8: -0.1083    .... -0.1934
- 5     /  9: -0.2851 -0.2127 -0.2336
- 5.5   / 10: -0.4247    .... -0.4259
- 6     / 11: -0.4858 -0.4472    ....
- 6.5   / 12: -0.2793    .... -0.3158
- 7     / 13: -0.1265    ....    ....
- 7.5   / 14:    ....    ....    ....
- 8     / 15:    ....    ....    ....
- 8.5   / 16:    ....    ....  0.6377
- 9     / 17:  0.4793    ....    ....
- 9.5   / 18:    ....  0.2919    ....
- 10    / 19:    ....    ....    ....
-list/x=2:3/L=3 ngrid
-             VARIABLE : SCAT2GRID_NBIN_XYT (XPTS, YPTS, TPTS, SAMPLE_FUNCTION, X[GX=XAX5], Y[GY=YAX5], TT)
-             FILENAME : a.nc
-             SUBSET   : 3 by 19 points (X-Y)
-             TIME     : JAN-2010
-               2      2.5    3     
-                3      4      5
- 1     /  1:  0.000  0.000  0.000
- 1.5   /  2:  0.000  1.000  0.000
- 2     /  3:  2.000  0.000  0.000
- 2.5   /  4:  0.000  1.000  0.000
- 3     /  5:  0.000  1.000  1.000
- 3.5   /  6:  0.000  0.000  0.000
- 4     /  7:  0.000  0.000  0.000
- 4.5   /  8:  1.000  0.000  1.000
- 5     /  9:  1.000  1.000  1.000
- 5.5   / 10:  2.000  0.000  1.000
- 6     / 11:  1.000  2.000  0.000
- 6.5   / 12:  1.000  0.000  1.000
- 7     / 13:  1.000  0.000  0.000
- 7.5   / 14:  0.000  0.000  0.000
- 8     / 15:  0.000  0.000  0.000
- 8.5   / 16:  0.000  0.000  1.000
- 9     / 17:  2.000  0.000  0.000
- 9.5   / 18:  0.000  2.000  0.000
- 10    / 19:  0.000  0.000  0.000
- 
-can mem /all
-can var /all
-can data /all
-set grid abstract
-can grid g10x10
- 
-can axis yax2
-can axis xax2
-can axis yax5
-can axis xax5
-can axis y10
-can axis x10
-can axis tout
-can axis tin
- 
- 
-! *********** v6.62 Additions ***********
- 
-GO bn_reset
-cancel mode verify
-GO bn_axis_dir_symbols
-! bn_axis_dir_symbols.jnl
-! 5/2010
-!
-! For LAS:
-! SYMBOL AX_HORIZ and AX_VERT identify the direction of
-! the plot axes (x, y, z, or t).  Add this for 1D plots
-! as well as 2D ones.
- 
-plot/i=1:10 i; show sym ax*; can sym ax*
-AX_HORIZ = "X"
-AX_VERT = "Y"
-plot/j=1:10 j; show sym ax*; can sym ax*
-AX_HORIZ = "Y"
- 
-use gt4d011
-plot/i=100/j=40/L=1 temp; show sym ax*; can sym ax*
-AX_VERT = "Z"
- 
-use coads_climatology
-plot/x=180/y=0 sst; show sym ax*; can sym ax*
-AX_HORIZ = "T"
-plot/x=180/y=0/trans sst; show sym ax*; can sym ax*
-AX_VERT = "T"
-shade/x=180 sst; show sym ax*; can sym ax*
-AX_HORIZ = "T"
-AX_VERT = "Y"
- 
-! *********** v6.63 Additions ***********
- 
-GO bn_reset
-cancel mode verify
-GO bn663_bug_fixes
-! bn663_bug_fixes.jnl
-! Fixes that go into v6.63 release
- 
- 
-GO bn_reset
-cancel mode verify
-GO err65_dots_in_dashes.jnl
-! err65_dots_in_dashes.jnl
-! Test fix to bug 1396: dots where there should
-! be gaps in dashed lines.
-! Same test has been added for -gif mode and
-! metafile batch mode
- 
-can view
-set mode metafile dashbug.plt
-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=dashbug.gif
- 
-cancel mode meta
- 
- 
-GO bn_reset
-cancel mode verify
-GO err66_all_missing_lev_v.jnl
-! err66_all_missing_lev_v.jnl
-! Ferret hangs with /LEV=V and all missing data
- 
-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
- 
-GO bn_reset
-cancel mode verify
-GO bn_set_axis_regular
-! bn_set_axis_regular.jnl
-! Karl Smith, 5/2010
-! tests for SET AXIS /REGULAR
- 
-! --- create irregular but monotonic data with integer endpoints
-set region /i=1:10 /j=1:10
-let deltax = if (i gt 1 and i lt 10) then 0.5 * sin((x - 1.0) * 3.14159265 / 2.33333333) else 0.0
-let xdata = x + deltax
-let deltay = if (j gt 1 and j lt 10) then 0.5 * sin((y - 1.0) * 3.14159265 / 2.33333333) else 0.0
-let ydata = y - deltay
- 
-! --- define axes and grid from this data
-define axis /x /from_data /name=myx xdata
-define axis /y /from_data /name=myy ydata
-define grid /x=myx /y=myy mygrid
-set grid mygrid
- 
-! --- define a variable using this grid; show everything is irregular
-let myvar = 2 * x + y
-list /format=(F8.5) x
-             VARIABLE : X
-                        axis MYX
-             BAD FLAG : -1.E+34       
-             SUBSET   : 10 points (X)
-             X        : 0.2563 to 10.74
- 1.00000
- 2.48746
- 3.21694
- 3.60908
- 4.60908
- 6.21694
- 7.48746
- 8.00000
- 8.51254
-10.00000
-list /format=(F8.5) y
-             VARIABLE : Y
-                        axis MYY
-             BAD FLAG : -1.E+34       
-             SUBSET   : 10 points (Y)
-             Y        : 0.7437 to 10.26
- 1.00000
- 1.51254
- 2.78306
- 4.39092
- 5.39092
- 5.78306
- 6.51254
- 8.00000
- 9.48746
-10.00000
-list myvar
-             VARIABLE : 2 * X + Y
-             SUBSET   : 10 by 10 points (X-Y)
-               1      2.49   3.22   3.61   4.61   6.22   7.49   8      8.51   10    
-                1      2      3      4      5      6      7      8      9     10
- 1     /  1:   3.00   5.97   7.43   8.22  10.22  13.43  15.97  17.00  18.03  21.00
- 1.51  /  2:   3.51   6.49   7.95   8.73  10.73  13.95  16.49  17.51  18.54  21.51
- 2.78  /  3:   4.78   7.76   9.22  10.00  12.00  15.22  17.76  18.78  19.81  22.78
- 4.39  /  4:   6.39   9.37  10.82  11.61  13.61  16.82  19.37  20.39  21.42  24.39
- 5.39  /  5:   7.39  10.37  11.82  12.61  14.61  17.82  20.37  21.39  22.42  25.39
- 5.78  /  6:   7.78  10.76  12.22  13.00  15.00  18.22  20.76  21.78  22.81  25.78
- 6.51  /  7:   8.51  11.49  12.95  13.73  15.73  18.95  21.49  22.51  23.54  26.51
- 8     /  8:  10.00  12.97  14.43  15.22  17.22  20.43  22.97  24.00  25.03  28.00
- 9.49  /  9:  11.49  14.46  15.92  16.71  18.71  21.92  24.46  25.49  26.51  29.49
- 10    / 10:  12.00  14.97  16.43  17.22  19.22  22.43  24.97  26.00  27.03  30.00
-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
- normal    Z
- normal    T
- normal    E
- normal    F
- 
-! --- force the x axis to be regular
-set axis /regular myx
-list /format=(F8.5) x
-             VARIABLE : X
-                        axis MYX
-             BAD FLAG : -1.E+34       
-             SUBSET   : 10 points (X)
-             X        : 0.5 to 10.5
- 1.00000
- 2.00000
- 3.00000
- 4.00000
- 5.00000
- 6.00000
- 7.00000
- 8.00000
- 9.00000
-10.00000
-list /format=(F8.5) y
-             VARIABLE : Y
-                        axis MYY
-             BAD FLAG : -1.E+34       
-             SUBSET   : 10 points (Y)
-             Y        : 0.7437 to 10.26
- 1.00000
- 1.51254
- 2.78306
- 4.39092
- 5.39092
- 5.78306
- 6.51254
- 8.00000
- 9.48746
-10.00000
-list myvar
-             VARIABLE : 2 * X + Y
-             SUBSET   : 10 by 10 points (X-Y)
-                1      2      3      4      5      6      7      8      9     10    
-                1      2      3      4      5      6      7      8      9     10
- 1     /  1:   3.00   5.97   7.43   8.22  10.22  13.43  15.97  17.00  18.03  21.00
- 1.51  /  2:   3.51   6.49   7.95   8.73  10.73  13.95  16.49  17.51  18.54  21.51
- 2.78  /  3:   4.78   7.76   9.22  10.00  12.00  15.22  17.76  18.78  19.81  22.78
- 4.39  /  4:   6.39   9.37  10.82  11.61  13.61  16.82  19.37  20.39  21.42  24.39
- 5.39  /  5:   7.39  10.37  11.82  12.61  14.61  17.82  20.37  21.39  22.42  25.39
- 5.78  /  6:   7.78  10.76  12.22  13.00  15.00  18.22  20.76  21.78  22.81  25.78
- 6.51  /  7:   8.51  11.49  12.95  13.73  15.73  18.95  21.49  22.51  23.54  26.51
- 8     /  8:  10.00  12.97  14.43  15.22  17.22  20.43  22.97  24.00  25.03  28.00
- 9.49  /  9:  11.49  14.46  15.92  16.71  18.71  21.92  24.46  25.49  26.51  29.49
- 10    / 10:  12.00  14.97  16.43  17.22  19.22  22.43  24.97  26.00  27.03  30.00
-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
- normal    Z
- normal    T
- normal    E
- normal    F
- 
-! --- setting a regular axis as regular does nothing
-set axis /regular myx
-list /format=(F8.5) x
-             VARIABLE : X
-                        axis MYX
-             BAD FLAG : -1.E+34       
-             SUBSET   : 10 points (X)
-             X        : 0.5 to 10.5
- 1.00000
- 2.00000
- 3.00000
- 4.00000
- 5.00000
- 6.00000
- 7.00000
- 8.00000
- 9.00000
-10.00000
-list /format=(F8.5) y
-             VARIABLE : Y
-                        axis MYY
-             BAD FLAG : -1.E+34       
-             SUBSET   : 10 points (Y)
-             Y        : 0.7437 to 10.26
- 1.00000
- 1.51254
- 2.78306
- 4.39092
- 5.39092
- 5.78306
- 6.51254
- 8.00000
- 9.48746
-10.00000
-list myvar
-             VARIABLE : 2 * X + Y
-             SUBSET   : 10 by 10 points (X-Y)
-                1      2      3      4      5      6      7      8      9     10    
-                1      2      3      4      5      6      7      8      9     10
- 1     /  1:   3.00   5.97   7.43   8.22  10.22  13.43  15.97  17.00  18.03  21.00
- 1.51  /  2:   3.51   6.49   7.95   8.73  10.73  13.95  16.49  17.51  18.54  21.51
- 2.78  /  3:   4.78   7.76   9.22  10.00  12.00  15.22  17.76  18.78  19.81  22.78
- 4.39  /  4:   6.39   9.37  10.82  11.61  13.61  16.82  19.37  20.39  21.42  24.39
- 5.39  /  5:   7.39  10.37  11.82  12.61  14.61  17.82  20.37  21.39  22.42  25.39
- 5.78  /  6:   7.78  10.76  12.22  13.00  15.00  18.22  20.76  21.78  22.81  25.78
- 6.51  /  7:   8.51  11.49  12.95  13.73  15.73  18.95  21.49  22.51  23.54  26.51
- 8     /  8:  10.00  12.97  14.43  15.22  17.22  20.43  22.97  24.00  25.03  28.00
- 9.49  /  9:  11.49  14.46  15.92  16.71  18.71  21.92  24.46  25.49  26.51  29.49
- 10    / 10:  12.00  14.97  16.43  17.22  19.22  22.43  24.97  26.00  27.03  30.00
-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
- normal    Z
- normal    T
- normal    E
- normal    F
- 
-! --- clean up
-go bn_reset
-cancel mode verify
-cancel grid mygrid
- 
-! --- read a NetCDF file with the irregular axes and data
-use bn_set_axis_regular
-show data
-     currently SET data sets:
-    1> ./bn_set_axis_regular.nc  (default)
- name     title                             I         J         K         L         M         N
- MYDATA   2 * X + Y                        1:10      1:10      ...       ...       ...       ...
- 
-list mydata
-             VARIABLE : 2 * X + Y
-             FILENAME : bn_set_axis_regular.nc
-             SUBSET   : 10 by 10 points (X-Y)
-               1      2.49   3.22   3.61   4.61   6.22   7.49   8      8.51   10    
-                1      2      3      4      5      6      7      8      9     10
- 1     /  1:   3.00   5.97   7.43   8.22  10.22  13.43  15.97  17.00  18.03  21.00
- 1.51  /  2:   3.51   6.49   7.95   8.73  10.73  13.95  16.49  17.51  18.54  21.51
- 2.78  /  3:   4.78   7.76   9.22  10.00  12.00  15.22  17.76  18.78  19.81  22.78
- 4.39  /  4:   6.39   9.37  10.82  11.61  13.61  16.82  19.37  20.39  21.42  24.39
- 5.39  /  5:   7.39  10.37  11.82  12.61  14.61  17.82  20.37  21.39  22.42  25.39
- 5.78  /  6:   7.78  10.76  12.22  13.00  15.00  18.22  20.76  21.78  22.81  25.78
- 6.51  /  7:   8.51  11.49  12.95  13.73  15.73  18.95  21.49  22.51  23.54  26.51
- 8     /  8:  10.00  12.97  14.43  15.22  17.22  20.43  22.97  24.00  25.03  28.00
- 9.49  /  9:  11.49  14.46  15.92  16.71  18.71  21.92  24.46  25.49  26.51  29.49
- 10    / 10:  12.00  14.97  16.43  17.22  19.22  22.43  24.97  26.00  27.03  30.00
-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
- normal    Z
- normal    T
- normal    E
- normal    F
- 
-! --- force the x axis to be regular
-set axis /regular `..dimnames[i=1]`
- !-> set axis /regular MYX1
-list mydata
-             VARIABLE : 2 * X + Y
-             FILENAME : bn_set_axis_regular.nc
-             SUBSET   : 10 by 10 points (X-Y)
-                1      2      3      4      5      6      7      8      9     10    
-                1      2      3      4      5      6      7      8      9     10
- 1     /  1:   3.00   5.97   7.43   8.22  10.22  13.43  15.97  17.00  18.03  21.00
- 1.51  /  2:   3.51   6.49   7.95   8.73  10.73  13.95  16.49  17.51  18.54  21.51
- 2.78  /  3:   4.78   7.76   9.22  10.00  12.00  15.22  17.76  18.78  19.81  22.78
- 4.39  /  4:   6.39   9.37  10.82  11.61  13.61  16.82  19.37  20.39  21.42  24.39
- 5.39  /  5:   7.39  10.37  11.82  12.61  14.61  17.82  20.37  21.39  22.42  25.39
- 5.78  /  6:   7.78  10.76  12.22  13.00  15.00  18.22  20.76  21.78  22.81  25.78
- 6.51  /  7:   8.51  11.49  12.95  13.73  15.73  18.95  21.49  22.51  23.54  26.51
- 8     /  8:  10.00  12.97  14.43  15.22  17.22  20.43  22.97  24.00  25.03  28.00
- 9.49  /  9:  11.49  14.46  15.92  16.71  18.71  21.92  24.46  25.49  26.51  29.49
- 10    / 10:  12.00  14.97  16.43  17.22  19.22  22.43  24.97  26.00  27.03  30.00
-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
- normal    Z
- normal    T
- normal    E
- normal    F
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_set_cancel_redirect
-! bn_set_cancel_redirect.jnl
-! Karl Smith, 5/2010
-! test for SET REDIRECT and CANCEL REDIRECT
- 
-! --- 1. redirect/tee both stdout and stderr to a file
-set redirect /tee /file="redirect.txt" /clobber stdout stderr
- 
-! --- 2. produce some output to both stdout and stderr
-define axis /x=0:6:0.5 myaxis
-set axis myaxis
-define grid /x=myaxis mygrid
-set grid mygrid
-let wave=sin(x)
-list wave
-             VARIABLE : SIN(X)
-             SUBSET   : 13 points (X)
- 0    /  1:  0.0000
- 0.5  /  2:  0.4794
- 1    /  3:  0.8415
- 1.5  /  4:  0.9975
- 2    /  5:  0.9093
- 2.5  /  6:  0.5985
- 3    /  7:  0.1411
- 3.5  /  8: -0.3508
- 4    /  9: -0.7568
- 4.5  / 10: -0.9775
- 5    / 11: -0.9589
- 5.5  / 12: -0.7055
- 6    / 13: -0.2794
-go /help
- 
-! --- 3. cancel the stderr redirect and produce output
-cancel redirect stderr
-show axis myaxis
- name       axis              # pts   start                end
- MYAXIS    X                   13 r   0                    6
-   Axis span (to cell edges) = 6.5
-go /help
- 
-! --- 4. cancel all redirection and produce some output
-cancel redirect
-show grid mygrid
-    GRID MYGRID
- name       axis              # pts   start                end
- MYAXIS    X                   13 r   0                    6
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
-go /help
- 
-! --- 5. show the contents of the redirect file
-! ---    should be all contents of 2., stdout of 3. and nothing but the cancel from 4.
-let contents = { spawn:"cat redirect.txt" }
-list contents
-             VARIABLE : { SPAWN:"cat redirect.txt" }
-             SUBSET   : 39 points (X)
- 1    /  1:" "                                                                         
- 2    /  2:"! --- 2. produce some output to both stdout and stderr"                    
- 3    /  3:"define axis /x=0:6:0.5 myaxis"                                             
- 4    /  4:"set axis myaxis"                                                           
- 5    /  5:"define grid /x=myaxis mygrid"                                              
- 6    /  6:"set grid mygrid"                                                           
- 7    /  7:"let wave=sin(x)"                                                           
- 8    /  8:"list wave"                                                                 
- 9    /  9:"             VARIABLE : SIN(X)"                                            
- 10   / 10:"             SUBSET   : 13 points (X)"                                     
- 11   / 11:" 0    /  1:  0.0000"                                                       
- 12   / 12:" 0.5  /  2:  0.4794"                                                       
- 13   / 13:" 1    /  3:  0.8415"                                                       
- 14   / 14:" 1.5  /  4:  0.9975"                                                       
- 15   / 15:" 2    /  5:  0.9093"                                                       
- 16   / 16:" 2.5  /  6:  0.5985"                                                       
- 17   / 17:" 3    /  7:  0.1411"                                                       
- 18   / 18:" 3.5  /  8: -0.3508"                                                       
- 19   / 19:" 4    /  9: -0.7568"                                                       
- 20   / 20:" 4.5  / 10: -0.9775"                                                       
- 21   / 21:" 5    / 11: -0.9589"                                                       
- 22   / 22:" 5.5  / 12: -0.7055"                                                       
- 23   / 23:" 6    / 13: -0.2794"                                                       
- 24   / 24:"go /help"                                                                  
- 25   / 25:" Use the GO command to name a file of FERRET commands to be executed."     
- 26   / 26:"     e.g.   yes? GO filename"                                              
- 27   / 27:" "                                                                         
- 28   / 28:" Use "GO/HELP filename" to read documentation in  the file to be executed."
- 29   / 29:" "                                                                         
- 30   / 30:"! --- 3. cancel the stderr redirect and produce output"                    
- 31   / 31:"cancel redirect stderr"                                                    
- 32   / 32:"show axis myaxis"                                                          
- 33   / 33:" name       axis              # pts   start                end"            
- 34   / 34:" MYAXIS    X                   13 r   0                    6"              
- 35   / 35:"   Axis span (to cell edges) = 6.5"                                        
- 36   / 36:"go /help"                                                                  
- 37   / 37:" "                                                                         
- 38   / 38:"! --- 4. cancel all redirection and produce some output"                   
- 39   / 39:"cancel redirect"                                                           
-cancel var contents
- 
-! --- 6. redirect/tee both stdout and stderr, appending to the redirect file
-set redirect /tee /file="redirect.txt" /append stdout stderr
- 
-! --- 7. produce output to both stdout and stderr
-list wave
-             VARIABLE : SIN(X)
-             SUBSET   : 13 points (X)
- 0    /  1:  0.0000
- 0.5  /  2:  0.4794
- 1    /  3:  0.8415
- 1.5  /  4:  0.9975
- 2    /  5:  0.9093
- 2.5  /  6:  0.5985
- 3    /  7:  0.1411
- 3.5  /  8: -0.3508
- 4    /  9: -0.7568
- 4.5  / 10: -0.9775
- 5    / 11: -0.9589
- 5.5  / 12: -0.7055
- 6    / 13: -0.2794
-go /help
- 
-! --- 8. cancel the stdout redirect and produce output
-cancel redirect stdout
-show axis myaxis
- name       axis              # pts   start                end
- MYAXIS    X                   13 r   0                    6
-   Axis span (to cell edges) = 6.5
-go /help
- 
-! --- 9. cancel all redirection and produce some output
-cancel redirect stderr
-show grid mygrid
-    GRID MYGRID
- name       axis              # pts   start                end
- MYAXIS    X                   13 r   0                    6
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
-go /help
- 
-! --- 10. results of CANCEL REDIRECT when nothing is redirected
-cancel redirect
- 
-! --- 11. show the updated contents of the redirect file
-! ---     should be all contents of 2., stdout of 3. and nothing but the cancel from 4.
-! ---     plus all contents of 7. and stderr of 8.
-let contents = { spawn:"cat redirect.txt" }
-list contents
-             VARIABLE : { SPAWN:"cat redirect.txt" }
-             SUBSET   : 69 points (X)
- 1    /  1:" "                                                                         
- 2    /  2:"! --- 2. produce some output to both stdout and stderr"                    
- 3    /  3:"define axis /x=0:6:0.5 myaxis"                                             
- 4    /  4:"set axis myaxis"                                                           
- 5    /  5:"define grid /x=myaxis mygrid"                                              
- 6    /  6:"set grid mygrid"                                                           
- 7    /  7:"let wave=sin(x)"                                                           
- 8    /  8:"list wave"                                                                 
- 9    /  9:"             VARIABLE : SIN(X)"                                            
- 10   / 10:"             SUBSET   : 13 points (X)"                                     
- 11   / 11:" 0    /  1:  0.0000"                                                       
- 12   / 12:" 0.5  /  2:  0.4794"                                                       
- 13   / 13:" 1    /  3:  0.8415"                                                       
- 14   / 14:" 1.5  /  4:  0.9975"                                                       
- 15   / 15:" 2    /  5:  0.9093"                                                       
- 16   / 16:" 2.5  /  6:  0.5985"                                                       
- 17   / 17:" 3    /  7:  0.1411"                                                       
- 18   / 18:" 3.5  /  8: -0.3508"                                                       
- 19   / 19:" 4    /  9: -0.7568"                                                       
- 20   / 20:" 4.5  / 10: -0.9775"                                                       
- 21   / 21:" 5    / 11: -0.9589"                                                       
- 22   / 22:" 5.5  / 12: -0.7055"                                                       
- 23   / 23:" 6    / 13: -0.2794"                                                       
- 24   / 24:"go /help"                                                                  
- 25   / 25:" Use the GO command to name a file of FERRET commands to be executed."     
- 26   / 26:"     e.g.   yes? GO filename"                                              
- 27   / 27:" "                                                                         
- 28   / 28:" Use "GO/HELP filename" to read documentation in  the file to be executed."
- 29   / 29:" "                                                                         
- 30   / 30:"! --- 3. cancel the stderr redirect and produce output"                    
- 31   / 31:"cancel redirect stderr"                                                    
- 32   / 32:"show axis myaxis"                                                          
- 33   / 33:" name       axis              # pts   start                end"            
- 34   / 34:" MYAXIS    X                   13 r   0                    6"              
- 35   / 35:"   Axis span (to cell edges) = 6.5"                                        
- 36   / 36:"go /help"                                                                  
- 37   / 37:" "                                                                         
- 38   / 38:"! --- 4. cancel all redirection and produce some output"                   
- 39   / 39:"cancel redirect"                                                           
- 40   / 40:" "                                                                         
- 41   / 41:"! --- 7. produce output to both stdout and stderr"                         
- 42   / 42:"list wave"                                                                 
- 43   / 43:"             VARIABLE : SIN(X)"                                            
- 44   / 44:"             SUBSET   : 13 points (X)"                                     
- 45   / 45:" 0    /  1:  0.0000"                                                       
- 46   / 46:" 0.5  /  2:  0.4794"                                                       
- 47   / 47:" 1    /  3:  0.8415"                                                       
- 48   / 48:" 1.5  /  4:  0.9975"                                                       
- 49   / 49:" 2    /  5:  0.9093"                                                       
- 50   / 50:" 2.5  /  6:  0.5985"                                                       
- 51   / 51:" 3    /  7:  0.1411"                                                       
- 52   / 52:" 3.5  /  8: -0.3508"                                                       
- 53   / 53:" 4    /  9: -0.7568"                                                       
- 54   / 54:" 4.5  / 10: -0.9775"                                                       
- 55   / 55:" 5    / 11: -0.9589"                                                       
- 56   / 56:" 5.5  / 12: -0.7055"                                                       
- 57   / 57:" 6    / 13: -0.2794"                                                       
- 58   / 58:"go /help"                                                                  
- 59   / 59:" Use the GO command to name a file of FERRET commands to be executed."     
- 60   / 60:"     e.g.   yes? GO filename"                                              
- 61   / 61:" "                                                                         
- 62   / 62:" Use "GO/HELP filename" to read documentation in  the file to be executed."
- 63   / 63:" "                                                                         
- 64   / 64:"! --- 8. cancel the stdout redirect and produce output"                    
- 65   / 65:"cancel redirect stdout"                                                    
- 66   / 66:" Use the GO command to name a file of FERRET commands to be executed."     
- 67   / 67:"     e.g.   yes? GO filename"                                              
- 68   / 68:" "                                                                         
- 69   / 69:" Use "GO/HELP filename" to read documentation in  the file to be executed."
-cancel var contents
- 
-! --- 12. redirect only stdout to a file and produce some output to show stdout redirected, stderr normal
-! ---     warning: can get confusing - look ahead for file contents
-! ---     immediately following redirect line should be stderr of 12 and contents of 13,
-! ---     which shows file contents of stdout of 12 and cancel redirect of 13
-set redirect /file="redirect.txt" /clobber stdout
-let contents = { spawn:"cat redirect.txt" }
-list contents
-             VARIABLE : { SPAWN:"cat redirect.txt" }
-             SUBSET   : 21 points (X)
- 1    /  1:"list wave"                                                           
- 2    /  2:"             VARIABLE : SIN(X)"                                      
- 3    /  3:"             SUBSET   : 13 points (X)"                               
- 4    /  4:" 0    /  1:  0.0000"                                                 
- 5    /  5:" 0.5  /  2:  0.4794"                                                 
- 6    /  6:" 1    /  3:  0.8415"                                                 
- 7    /  7:" 1.5  /  4:  0.9975"                                                 
- 8    /  8:" 2    /  5:  0.9093"                                                 
- 9    /  9:" 2.5  /  6:  0.5985"                                                 
- 10   / 10:" 3    /  7:  0.1411"                                                 
- 11   / 11:" 3.5  /  8: -0.3508"                                                 
- 12   / 12:" 4    /  9: -0.7568"                                                 
- 13   / 13:" 4.5  / 10: -0.9775"                                                 
- 14   / 14:" 5    / 11: -0.9589"                                                 
- 15   / 15:" 5.5  / 12: -0.7055"                                                 
- 16   / 16:" 6    / 13: -0.2794"                                                 
- 17   / 17:"go /help"                                                            
- 18   / 18:" "                                                                   
- 19   / 19:"! --- 13. cancel the redirection and show the redirect file contents"
- 20   / 20:"! ---     should be the "missing" stdout of 12."                     
- 21   / 21:"cancel redirect stdout"                                              
-cancel var contents
- 
-! --- 14. redirect only stderr, appending to a file and produce some output to show stdout normal, stderr redirected
-set redirect /file="redirect.txt" /append stderr
-show axis myaxis
- name       axis              # pts   start                end
- MYAXIS    X                   13 r   0                    6
-   Axis span (to cell edges) = 6.5
-go /help
- 
-! --- 15. cancel the redirection and show the redirect file contents
-! ---     should be the stdout of 12, cancel redirect of 13, and stderr of 14
-cancel redirect stderr
-let contents = { spawn:"cat redirect.txt" }
-list contents
-             VARIABLE : { SPAWN:"cat redirect.txt" }
-             SUBSET   : 25 points (X)
- 1    /  1:"list wave"                                                                 
- 2    /  2:"             VARIABLE : SIN(X)"                                            
- 3    /  3:"             SUBSET   : 13 points (X)"                                     
- 4    /  4:" 0    /  1:  0.0000"                                                       
- 5    /  5:" 0.5  /  2:  0.4794"                                                       
- 6    /  6:" 1    /  3:  0.8415"                                                       
- 7    /  7:" 1.5  /  4:  0.9975"                                                       
- 8    /  8:" 2    /  5:  0.9093"                                                       
- 9    /  9:" 2.5  /  6:  0.5985"                                                       
- 10   / 10:" 3    /  7:  0.1411"                                                       
- 11   / 11:" 3.5  /  8: -0.3508"                                                       
- 12   / 12:" 4    /  9: -0.7568"                                                       
- 13   / 13:" 4.5  / 10: -0.9775"                                                       
- 14   / 14:" 5    / 11: -0.9589"                                                       
- 15   / 15:" 5.5  / 12: -0.7055"                                                       
- 16   / 16:" 6    / 13: -0.2794"                                                       
- 17   / 17:"go /help"                                                                  
- 18   / 18:" "                                                                         
- 19   / 19:"! --- 13. cancel the redirection and show the redirect file contents"      
- 20   / 20:"! ---     should be the "missing" stdout of 12."                           
- 21   / 21:"cancel redirect stdout"                                                    
- 22   / 22:" Use the GO command to name a file of FERRET commands to be executed."     
- 23   / 23:"     e.g.   yes? GO filename"                                              
- 24   / 24:" "                                                                         
- 25   / 25:" Use "GO/HELP filename" to read documentation in  the file to be executed."
-cancel var contents
- 
-! --- 16. redirect/tee stdout to one file and stderr to another file
-set redirect /tee /file="redirect_stdout.txt" /clobber stdout
-set redirect /tee /file="redirect_stderr.txt" /clobber stderr
- 
-! --- 17. produce some output
-show grid mygrid
-    GRID MYGRID
- name       axis              # pts   start                end
- MYAXIS    X                   13 r   0                    6
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
-go /help
- 
-! --- 18. see what happens to messages (say, warn, error)
-say "   This is a say message"
-   This is a say message
-set axis /regular myaxis
-set mode ignore_error
-show grid garbage
-cancel mode ignore_error
- 
-! --- 19. cancel redirections and show the contents of the files
-cancel redirect
-let contents = { spawn:"cat redirect_stdout.txt" }
-! ---     should be the stdout of 17, whatever stdout of 18, and cancel redirect from 19
-list contents
-             VARIABLE : { SPAWN:"cat redirect_stdout.txt" }
-             SUBSET   : 24 points (X)
- 1    /  1:"set redirect /tee /file="redirect_stderr.txt" /clobber stderr"   
- 2    /  2:" "                                                               
- 3    /  3:"! --- 17. produce some output"                                   
- 4    /  4:"show grid mygrid"                                                
- 5    /  5:"    GRID MYGRID"                                                 
- 6    /  6:" name       axis              # pts   start                end"  
- 7    /  7:" MYAXIS    X                   13 r   0                    6"    
- 8    /  8:" normal    Y"                                                    
- 9    /  9:" normal    Z"                                                    
- 10   / 10:" normal    T"                                                    
- 11   / 11:" normal    E"                                                    
- 12   / 12:" normal    F"                                                    
- 13   / 13:"go /help"                                                        
- 14   / 14:" "                                                               
- 15   / 15:"! --- 18. see what happens to messages (say, warn, error)"       
- 16   / 16:"say "   This is a say message""                                  
- 17   / 17:"   This is a say message"                                        
- 18   / 18:"set axis /regular myaxis"                                        
- 19   / 19:"set mode ignore_error"                                           
- 20   / 20:"show grid garbage"                                               
- 21   / 21:"cancel mode ignore_error"                                        
- 22   / 22:" "                                                               
- 23   / 23:"! --- 19. cancel redirections and show the contents of the files"
- 24   / 24:"cancel redirect"                                                 
-cancel var contents
-let contents = { spawn:"cat redirect_stderr.txt" }
-! ---     should be the stderr of 17.
-list contents
-             VARIABLE : { SPAWN:"cat redirect_stderr.txt" }
-             SUBSET   : 7 points (X)
- 1   / 1:" Use the GO command to name a file of FERRET commands to be executed."     
- 2   / 2:"     e.g.   yes? GO filename"                                              
- 3   / 3:" "                                                                         
- 4   / 4:" Use "GO/HELP filename" to read documentation in  the file to be executed."
- 5   / 5:" *** NOTE: Axis is already regular: MYAXIS"                                
- 6   / 6:" **ERROR: variable unknown or not in data set: GARBAGE"                    
- 7   / 7:"show grid garbage"                                                         
-cancel var contents
- 
-! --- 20. turn on journal mode to a special filename
-set mode journal:redirect_journal.txt
- 
-! --- 21. turn on redirection to the journal with default source (stdout)
-set redirect /tee /journal
- 
-! --- 22. produce some output to stdout and stderr
-list wave
-             VARIABLE : SIN(X)
-             SUBSET   : 13 points (X)
- 0    /  1:  0.0000
- 0.5  /  2:  0.4794
- 1    /  3:  0.8415
- 1.5  /  4:  0.9975
- 2    /  5:  0.9093
- 2.5  /  6:  0.5985
- 3    /  7:  0.1411
- 3.5  /  8: -0.3508
- 4    /  9: -0.7568
- 4.5  / 10: -0.9775
- 5    / 11: -0.9589
- 5.5  / 12: -0.7055
- 6    / 13: -0.2794
-go /help
- 
-! --- 23. cancel journal redirect and produce some output
-! ---     should warn that stderr not redirected
-cancel redirect stdout stderr
-show axis myaxis
- name       axis              # pts   start                end
- MYAXIS    X                   13 r   0                    6
-   Axis span (to cell edges) = 6.5
-go /help
- 
-! --- 24. redirect/tee both stdout and stderr to the journal
-set redirect /tee /journal stderr stdout
- 
-! --- 25. produce some output to stdout and stderr
-show grid mygrid
-    GRID MYGRID
- name       axis              # pts   start                end
- MYAXIS    X                   13 r   0                    6
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
-go /help
- 
-! --- 26. turn off journal mode
-set mode journal:ferret.jnl
-cancel mode journal
- 
-! --- 27. produce some output to show journal redirect with no journal is not a problem
-list wave
-             VARIABLE : SIN(X)
-             SUBSET   : 13 points (X)
- 0    /  1:  0.0000
- 0.5  /  2:  0.4794
- 1    /  3:  0.8415
- 1.5  /  4:  0.9975
- 2    /  5:  0.9093
- 2.5  /  6:  0.5985
- 3    /  7:  0.1411
- 3.5  /  8: -0.3508
- 4    /  9: -0.7568
- 4.5  / 10: -0.9775
- 5    / 11: -0.9589
- 5.5  / 12: -0.7055
- 6    / 13: -0.2794
-go /help
- 
-! --- 28. cancel journal redirect and show contents of the journal file
-! ---     all redirected output should be commented, and should be the stdout of 22.,
-! ---     cancel redirect of 23., all contents of 25, and set mode journal of 26
-cancel redirect
-let contents = { spawn:"cat redirect_journal.txt" }
-list contents
-             VARIABLE : { SPAWN:"cat redirect_journal.txt" }
-             SUBSET   : 47 points (X)
- 1    /  1:" ! NOAA/PMEL TMAP"                                                          
- 2    /  2:" ! FERRET v6.85  "                                                          
- 3    /  3:" ! Linux 2.6.32-358.23.2.el6.x86_64 32-bit - 11/12/13"                      
- 4    /  4:" ! 12-Nov-13 15:12     "                                                    
- 5    /  5:""                                                                           
- 6    /  6:"! "                                                                         
- 7    /  7:"!! --- 22. produce some output to stdout and stderr"                        
- 8    /  8:"!list wave"                                                                 
- 9    /  9:"!             VARIABLE : SIN(X)"                                            
- 10   / 10:"!             SUBSET   : 13 points (X)"                                     
- 11   / 11:"! 0    /  1:  0.0000"                                                       
- 12   / 12:"! 0.5  /  2:  0.4794"                                                       
- 13   / 13:"! 1    /  3:  0.8415"                                                       
- 14   / 14:"! 1.5  /  4:  0.9975"                                                       
- 15   / 15:"! 2    /  5:  0.9093"                                                       
- 16   / 16:"! 2.5  /  6:  0.5985"                                                       
- 17   / 17:"! 3    /  7:  0.1411"                                                       
- 18   / 18:"! 3.5  /  8: -0.3508"                                                       
- 19   / 19:"! 4    /  9: -0.7568"                                                       
- 20   / 20:"! 4.5  / 10: -0.9775"                                                       
- 21   / 21:"! 5    / 11: -0.9589"                                                       
- 22   / 22:"! 5.5  / 12: -0.7055"                                                       
- 23   / 23:"! 6    / 13: -0.2794"                                                       
- 24   / 24:"!go /help"                                                                  
- 25   / 25:"! "                                                                         
- 26   / 26:"!! --- 23. cancel journal redirect and produce some output"                 
- 27   / 27:"!! ---     should warn that stderr not redirected"                          
- 28   / 28:"!cancel redirect stdout stderr"                                             
- 29   / 29:"! "                                                                         
- 30   / 30:"!! --- 25. produce some output to stdout and stderr"                        
- 31   / 31:"!show grid mygrid"                                                          
- 32   / 32:"!    GRID MYGRID"                                                           
- 33   / 33:"! name       axis              # pts   start                end"            
- 34   / 34:"! MYAXIS    X                   13 r   0                    6"              
- 35   / 35:"! normal    Y"                                                              
- 36   / 36:"! normal    Z"                                                              
- 37   / 37:"! normal    T"                                                              
- 38   / 38:"! normal    E"                                                              
- 39   / 39:"! normal    F"                                                              
- 40   / 40:"!go /help"                                                                  
- 41   / 41:"! Use the GO command to name a file of FERRET commands to be executed."     
- 42   / 42:"!     e.g.   yes? GO filename"                                              
- 43   / 43:"! "                                                                         
- 44   / 44:"! Use "GO/HELP filename" to read documentation in  the file to be executed."
- 45   / 45:"! "                                                                         
- 46   / 46:"!! --- 26. turn off journal mode"                                           
- 47   / 47:"!set mode journal:ferret.jnl"                                               
-cancel var contents
- 
-! --- clean-up: get rid of mygrid
-set grid abstract
-cancel grid mygrid
- 
-!!! NOTE: journal mode is now turned off !!!
- 
-GO bn_reset
-cancel mode verify
-GO bn_min_max_smoothers
-! bn_min_max_smoothers.jnl
-! New transforms @SMN and @SMX, smoothers based on the
-! min and max of the data in the window.
-sh trans
-variable transforms e.g.SST[T=1-jan:15-mar at DDC]
-   code        description                  code        description
-   ----        -----------                  ----        -----------
-   @ITP        interpolated                 @SPZ        Parzen smoothed
-   @AVE        averaged                     @FAV        ave-filled
-   @VAR        variance                     @FLN        linear-filled
-   @SUM        summed                       @FNR        nearest-filled
-   @RSU        running sum                  @NGD        number of valid
-   @SHF        shifted                      @NBD        number flagged bad
-   @MIN        minimum                      @LOC        location
-   @MAX        maximum                      @WEQ        weighted equal
-   @DDC        centered derivative          @CDA        closest dist above
-   @DDF        forward derivative           @CDB        closest dist below
-   @DDB        backwards derivative         @CIA        closest index above
-   @DIN        integrated                   @CIB        closest index below
-   @IIN        indef. integ.                @EVN        event mask
-   @SBX        box smoothed                 @MED        median smoothed
-   @SBN        binomial smoothed            @SMX        maximum smoothed
-   @SWL        Welch smoothed               @SMN        minimum smoothed
-   @SHN        Hanning smoothed
- 
-regridding transforms e.g.SST[GX=x5deg at AVE]
-   code        description                  code        description
-   ----        -----------                  ----        -----------
-   @LIN        lin. interp.                 @MOD        modulo ave
-   @AVE        box avgd                     @MODVAR     modulo var
-   @XACT       exact match                  @MODNGD     # gd mod pts
-   @ASN        index assn                   @MODNBD     #bad mod pts
-   @VAR        variance                     @MODSUM     modulo sum
-   @MIN        minimum                      @MODMIN     modulo min
-   @MAX        maximum                      @MODMAX     modulo max
-   @SUM        sum                          @NRST       nearst coord
-   @NGD        # gd pts
-use gt4d011
-plot/x=123.5w/y=2.5/k=1 temp, temp[L=@med], temp[L=@smx], temp[L=@smn]
- 
-plot/x=123.5w/y=2.5/k=1 temp, temp[L=@med:3], temp[L=@smx:3], temp[L=@smn:3]
-plot/x=123.5w/y=2.5/k=1 temp, temp[L=@med:5], temp[L=@smx:5], temp[L=@smn:5]
-plot/x=123.5w/y=2.5/k=1 temp, temp[L=@med:5], temp[L=@smx:6], temp[L=@smn:6]
- 
-plot/y=2.5/k=1/l=1/x=139.5W:122.5W temp, temp[i=@med], temp[i=@smx], temp[i=@smn]
-plot/k=1/l=1/x=123.5w temp, temp[j=@med], temp[j=@smx], temp[j=@smn]
-plot/l=1/x=123.5w/y=2.5/z=0:100 temp, temp[k=@med], temp[k=@smx], temp[k=@smn]
- 
-! Numeric results
-list/x=123.5w/y=2.5/k=1 temp, temp[L=@med], temp[L=@smx], temp[L=@smn]
-             DATA SET: ./gt4d011.cdf
-             TIME: AUG-1982 to JAN-1983
-             LONGITUDE: 123.5W
-             LATITUDE: 2.5N
-             DEPTH (m): 5
- Column  1: TEMP is TEMPERATURE (deg. C)
- Column  2: TEMP[T=@MED:3] is TEMPERATURE (deg. C)(median smoothed by 3 pts on T)
- Column  3: TEMP[T=@SMX:3] is TEMPERATURE (deg. C)(maximum smoothed by 3 pts on T)
- Column  4: TEMP[T=@SMN:3] is TEMPERATURE (deg. C)(minimum smoothed by 3 pts on T)
-                      TEMP   TEMP   TEMP   TEMP
-17-AUG-1982 12 /  1:  27.15  27.23  27.23  27.15
-23-AUG-1982 14 /  2:  27.23  27.23  27.36  27.15
-29-AUG-1982 16 /  3:  27.36  27.36  27.54  27.23
-04-SEP-1982 18 /  4:  27.54  27.54  27.79  27.36
-10-SEP-1982 20 /  5:  27.79  27.79  28.09  27.54
-16-SEP-1982 22 /  6:  28.09  28.09  28.33  27.79
-23-SEP-1982 00 /  7:  28.33  28.33  28.47  28.09
-29-SEP-1982 02 /  8:  28.47  28.47  28.61  28.33
-05-OCT-1982 04 /  9:  28.61  28.61  28.91  28.47
-11-OCT-1982 06 / 10:  28.91  28.91  29.34  28.61
-17-OCT-1982 08 / 11:  29.34  29.34  29.76  28.91
-23-OCT-1982 10 / 12:  29.76  29.76  30.20  29.34
-29-OCT-1982 12 / 13:  30.20  30.20  30.75  29.76
-04-NOV-1982 14 / 14:  30.75  30.75  31.42  30.20
-10-NOV-1982 16 / 15:  31.42  31.42  31.84  30.75
-16-NOV-1982 18 / 16:  31.84  31.84  31.98  31.42
-22-NOV-1982 20 / 17:  31.98  31.98  32.13  31.84
-28-NOV-1982 22 / 18:  32.13  32.13  32.41  31.98
-05-DEC-1982 00 / 19:  32.41  32.41  32.73  32.13
-11-DEC-1982 02 / 20:  32.73  32.73  32.94  32.41
-17-DEC-1982 04 / 21:  32.94  32.94  32.97  32.73
-23-DEC-1982 06 / 22:  32.97  32.94  32.97  32.94
-29-DEC-1982 08 / 23:  32.94  32.94  32.97  32.81
-04-JAN-1983 10 / 24:  32.81  32.81  32.94  32.59
-10-JAN-1983 12 / 25:  32.59  32.81  32.81  32.59
- 
-list/x=123.5w/y=2.5/k=1 temp, temp[L=@med:3], temp[L=@smx:3], temp[L=@smn:3]
-             DATA SET: ./gt4d011.cdf
-             TIME: AUG-1982 to JAN-1983
-             LONGITUDE: 123.5W
-             LATITUDE: 2.5N
-             DEPTH (m): 5
- Column  1: TEMP is TEMPERATURE (deg. C)
- Column  2: TEMP[T=@MED:3] is TEMPERATURE (deg. C)(median smoothed by 3 pts on T)
- Column  3: TEMP[T=@SMX:3] is TEMPERATURE (deg. C)(maximum smoothed by 3 pts on T)
- Column  4: TEMP[T=@SMN:3] is TEMPERATURE (deg. C)(minimum smoothed by 3 pts on T)
-                      TEMP   TEMP   TEMP   TEMP
-17-AUG-1982 12 /  1:  27.15  27.23  27.23  27.15
-23-AUG-1982 14 /  2:  27.23  27.23  27.36  27.15
-29-AUG-1982 16 /  3:  27.36  27.36  27.54  27.23
-04-SEP-1982 18 /  4:  27.54  27.54  27.79  27.36
-10-SEP-1982 20 /  5:  27.79  27.79  28.09  27.54
-16-SEP-1982 22 /  6:  28.09  28.09  28.33  27.79
-23-SEP-1982 00 /  7:  28.33  28.33  28.47  28.09
-29-SEP-1982 02 /  8:  28.47  28.47  28.61  28.33
-05-OCT-1982 04 /  9:  28.61  28.61  28.91  28.47
-11-OCT-1982 06 / 10:  28.91  28.91  29.34  28.61
-17-OCT-1982 08 / 11:  29.34  29.34  29.76  28.91
-23-OCT-1982 10 / 12:  29.76  29.76  30.20  29.34
-29-OCT-1982 12 / 13:  30.20  30.20  30.75  29.76
-04-NOV-1982 14 / 14:  30.75  30.75  31.42  30.20
-10-NOV-1982 16 / 15:  31.42  31.42  31.84  30.75
-16-NOV-1982 18 / 16:  31.84  31.84  31.98  31.42
-22-NOV-1982 20 / 17:  31.98  31.98  32.13  31.84
-28-NOV-1982 22 / 18:  32.13  32.13  32.41  31.98
-05-DEC-1982 00 / 19:  32.41  32.41  32.73  32.13
-11-DEC-1982 02 / 20:  32.73  32.73  32.94  32.41
-17-DEC-1982 04 / 21:  32.94  32.94  32.97  32.73
-23-DEC-1982 06 / 22:  32.97  32.94  32.97  32.94
-29-DEC-1982 08 / 23:  32.94  32.94  32.97  32.81
-04-JAN-1983 10 / 24:  32.81  32.81  32.94  32.59
-10-JAN-1983 12 / 25:  32.59  32.81  32.81  32.59
-list/x=123.5w/y=2.5/k=1 temp, temp[L=@med:5], temp[L=@smx:5], temp[L=@smn:5]
-             DATA SET: ./gt4d011.cdf
-             TIME: AUG-1982 to JAN-1983
-             LONGITUDE: 123.5W
-             LATITUDE: 2.5N
-             DEPTH (m): 5
- Column  1: TEMP is TEMPERATURE (deg. C)
- Column  2: TEMP[T=@MED:5] is TEMPERATURE (deg. C)(median smoothed by 5 pts on T)
- Column  3: TEMP[T=@SMX:5] is TEMPERATURE (deg. C)(maximum smoothed by 5 pts on T)
- Column  4: TEMP[T=@SMN:5] is TEMPERATURE (deg. C)(minimum smoothed by 5 pts on T)
-                      TEMP   TEMP   TEMP   TEMP
-17-AUG-1982 12 /  1:  27.15  27.23  27.36  27.15
-23-AUG-1982 14 /  2:  27.23  27.36  27.54  27.15
-29-AUG-1982 16 /  3:  27.36  27.36  27.79  27.15
-04-SEP-1982 18 /  4:  27.54  27.54  28.09  27.23
-10-SEP-1982 20 /  5:  27.79  27.79  28.33  27.36
-16-SEP-1982 22 /  6:  28.09  28.09  28.47  27.54
-23-SEP-1982 00 /  7:  28.33  28.33  28.61  27.79
-29-SEP-1982 02 /  8:  28.47  28.47  28.91  28.09
-05-OCT-1982 04 /  9:  28.61  28.61  29.34  28.33
-11-OCT-1982 06 / 10:  28.91  28.91  29.76  28.47
-17-OCT-1982 08 / 11:  29.34  29.34  30.20  28.61
-23-OCT-1982 10 / 12:  29.76  29.76  30.75  28.91
-29-OCT-1982 12 / 13:  30.20  30.20  31.42  29.34
-04-NOV-1982 14 / 14:  30.75  30.75  31.84  29.76
-10-NOV-1982 16 / 15:  31.42  31.42  31.98  30.20
-16-NOV-1982 18 / 16:  31.84  31.84  32.13  30.75
-22-NOV-1982 20 / 17:  31.98  31.98  32.41  31.42
-28-NOV-1982 22 / 18:  32.13  32.13  32.73  31.84
-05-DEC-1982 00 / 19:  32.41  32.41  32.94  31.98
-11-DEC-1982 02 / 20:  32.73  32.73  32.97  32.13
-17-DEC-1982 04 / 21:  32.94  32.94  32.97  32.41
-23-DEC-1982 06 / 22:  32.97  32.94  32.97  32.73
-29-DEC-1982 08 / 23:  32.94  32.94  32.97  32.59
-04-JAN-1983 10 / 24:  32.81  32.94  32.97  32.59
-10-JAN-1983 12 / 25:  32.59  32.81  32.94  32.59
-list/x=123.5w/y=2.5/k=1 temp, temp[L=@med:5], temp[L=@smx:6], temp[L=@smn:6]
-             DATA SET: ./gt4d011.cdf
-             TIME: AUG-1982 to JAN-1983
-             LONGITUDE: 123.5W
-             LATITUDE: 2.5N
-             DEPTH (m): 5
- Column  1: TEMP is TEMPERATURE (deg. C)
- Column  2: TEMP[T=@MED:5] is TEMPERATURE (deg. C)(median smoothed by 5 pts on T)
- Column  3: TEMP[T=@SMX:6] is TEMPERATURE (deg. C)(maximum smoothed by 6 pts on T)
- Column  4: TEMP[T=@SMN:6] is TEMPERATURE (deg. C)(minimum smoothed by 6 pts on T)
-                      TEMP   TEMP   TEMP   TEMP
-17-AUG-1982 12 /  1:  27.15  27.23  27.54  27.15
-23-AUG-1982 14 /  2:  27.23  27.36  27.79  27.15
-29-AUG-1982 16 /  3:  27.36  27.36  28.09  27.15
-04-SEP-1982 18 /  4:  27.54  27.54  28.33  27.15
-10-SEP-1982 20 /  5:  27.79  27.79  28.47  27.23
-16-SEP-1982 22 /  6:  28.09  28.09  28.61  27.36
-23-SEP-1982 00 /  7:  28.33  28.33  28.91  27.54
-29-SEP-1982 02 /  8:  28.47  28.47  29.34  27.79
-05-OCT-1982 04 /  9:  28.61  28.61  29.76  28.09
-11-OCT-1982 06 / 10:  28.91  28.91  30.20  28.33
-17-OCT-1982 08 / 11:  29.34  29.34  30.75  28.47
-23-OCT-1982 10 / 12:  29.76  29.76  31.42  28.61
-29-OCT-1982 12 / 13:  30.20  30.20  31.84  28.91
-04-NOV-1982 14 / 14:  30.75  30.75  31.98  29.34
-10-NOV-1982 16 / 15:  31.42  31.42  32.13  29.76
-16-NOV-1982 18 / 16:  31.84  31.84  32.41  30.20
-22-NOV-1982 20 / 17:  31.98  31.98  32.73  30.75
-28-NOV-1982 22 / 18:  32.13  32.13  32.94  31.42
-05-DEC-1982 00 / 19:  32.41  32.41  32.97  31.84
-11-DEC-1982 02 / 20:  32.73  32.73  32.97  31.98
-17-DEC-1982 04 / 21:  32.94  32.94  32.97  32.13
-23-DEC-1982 06 / 22:  32.97  32.94  32.97  32.41
-29-DEC-1982 08 / 23:  32.94  32.94  32.97  32.59
-04-JAN-1983 10 / 24:  32.81  32.94  32.97  32.59
-10-JAN-1983 12 / 25:  32.59  32.81  32.97  32.59
- 
-list/y=2.5/k=1/l=1/x=139.5W:122.5W temp, temp[i=@med], temp[i=@smx], temp[i=@smn]
-             DATA SET: ./gt4d011.cdf
-             LONGITUDE: 139.5W to 122.5W
-             LATITUDE: 2.5N
-             DEPTH (m): 5
-             TIME: AUG-1982
- Column  1: TEMP is TEMPERATURE (deg. C)
- Column  2: TEMP[X=@MED:3] is TEMPERATURE (deg. C)(median smoothed by 3 pts on X)
- Column  3: TEMP[X=@SMX:3] is TEMPERATURE (deg. C)(maximum smoothed by 3 pts on X)
- Column  4: TEMP[X=@SMN:3] is TEMPERATURE (deg. C)(minimum smoothed by 3 pts on X)
-               TEMP   TEMP   TEMP   TEMP
-139.5W /  91:  26.58  26.65  26.65  26.58
-138.5W /  92:  26.65  26.65  26.90  26.58
-137.5W /  93:  26.90  26.90  27.14  26.65
-136.5W /  94:  27.14  27.14  27.24  26.90
-135.5W /  95:  27.24  27.18  27.24  27.14
-134.5W /  96:  27.18  27.18  27.24  26.91
-133.5W /  97:  26.91  26.91  27.18  26.70
-132.5W /  98:  26.70  26.81  26.91  26.70
-131.5W /  99:  26.81  26.81  27.01  26.70
-130.5W / 100:  27.01  27.01  27.16  26.81
-129.5W / 101:  27.16  27.16  27.21  27.01
-128.5W / 102:  27.21  27.20  27.21  27.16
-127.5W / 103:  27.20  27.20  27.21  27.18
-126.5W / 104:  27.18  27.18  27.20  27.14
-125.5W / 105:  27.14  27.14  27.18  27.13
-124.5W / 106:  27.13  27.14  27.15  27.13
-123.5W / 107:  27.15  27.15  27.17  27.13
-122.5W / 108:  27.17  27.17  27.17  27.15
-list/k=1/l=1/x=123.5w temp, temp[j=35:56 at med], temp[j=35:56 at smx], temp[j=35:56 at smn]
-             DATA SET: ./gt4d011.cdf
-             LATITUDE: 3.667S to 3.667N
-             LONGITUDE: 123.5W
-             DEPTH (m): 5
-             TIME: AUG-1982
- Column  1: TEMP is TEMPERATURE (deg. C)
- Column  2: TEMP[Y=@MED:3] is TEMPERATURE (deg. C)(median smoothed by 3 pts on Y)
- Column  3: TEMP[Y=@SMX:3] is TEMPERATURE (deg. C)(maximum smoothed by 3 pts on Y)
- Column  4: TEMP[Y=@SMN:3] is TEMPERATURE (deg. C)(minimum smoothed by 3 pts on Y)
-             TEMP   TEMP   TEMP   TEMP
-3.5S  / 35:  26.00  26.00  26.00  25.95
-3.17S / 36:  25.95  25.95  26.00  25.89
-2.83S / 37:  25.89  25.89  25.95  25.82
-2.5S  / 38:  25.82  25.82  25.89  25.74
-2.17S / 39:  25.74  25.74  25.82  25.66
-1.83S / 40:  25.66  25.66  25.74  25.60
-1.5S  / 41:  25.60  25.60  25.66  25.54
-1.17S / 42:  25.54  25.54  25.60  25.50
-0.83S / 43:  25.50  25.50  25.54  25.50
-0.5S  / 44:  25.50  25.50  25.54  25.50
-0.17S / 45:  25.54  25.54  25.63  25.50
-0.17N / 46:  25.63  25.63  25.76  25.54
-0.5N  / 47:  25.76  25.76  25.93  25.63
-0.83N / 48:  25.93  25.93  26.15  25.76
-1.17N / 49:  26.15  26.15  26.42  25.93
-1.5N  / 50:  26.42  26.42  26.69  26.15
-1.83N / 51:  26.69  26.69  26.92  26.42
-2.17N / 52:  26.92  26.92  27.15  26.69
-2.5N  / 53:  27.15  27.15  27.40  26.92
-2.83N / 54:  27.40  27.40  27.70  27.15
-3.17N / 55:  27.70  27.70  28.06  27.40
-3.5N  / 56:  28.06  28.06  28.06  27.70
- 
-list/l=1/x=123.5w/y=2.5/z=0:100 temp, temp[k=@med], temp[k=@smx], temp[k=@smn]
-             DATA SET: ./gt4d011.cdf
-             DEPTH (m): 0 to 100
-             LONGITUDE: 123.5W
-             LATITUDE: 2.5N
-             TIME: AUG-1982
- Column  1: TEMP is TEMPERATURE (deg. C)
- Column  2: TEMP[Z=@MED:3] is TEMPERATURE (deg. C)(median smoothed by 3 pts on Z)
- Column  3: TEMP[Z=@SMX:3] is TEMPERATURE (deg. C)(maximum smoothed by 3 pts on Z)
- Column  4: TEMP[Z=@SMN:3] is TEMPERATURE (deg. C)(minimum smoothed by 3 pts on Z)
-             TEMP   TEMP   TEMP   TEMP
-5     /  1:  27.15  27.15  27.15  27.10
-15    /  2:  27.10  27.10  27.15  27.10
-25    /  3:  27.10  27.10  27.10  27.10
-35    /  4:  27.10  27.10  27.10  27.09
-45    /  5:  27.09  27.09  27.10  26.84
-55    /  6:  26.84  26.84  27.09  26.21
-65    /  7:  26.21  26.21  26.84  25.40
-75    /  8:  25.40  25.40  26.21  24.51
-85    /  9:  24.51  24.51  25.40  23.54
-95    / 10:  23.54  24.51  24.51  23.54
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_vector_symbols
-! bn_vector_symbols.jnl
-! ACM 7/16/21010 Ferret V6.6.3
-!
-! On any vector plot command, define symbols
-! PPL_VECLEN containing the vector length scale
-! PPL_VEC_XSKIP, PPL_VEC_YSKIP containing the skip
-!
-! They are defined whether they are automatically set or
-! set via qualifiers.
- 
-VECTOR/I=1:10/J=1:20 i/j,j/i
-SHOW SYMBOL ppl_vec*
-PPL_VECLEN = "  7.39"
-PPL_VEC_XSKIP = "1"
-PPL_VEC_YSKIP = "1"
- 
-VECTOR/I=1:10/J=1:20/LEN=8 i/j,j/i
-SHOW SYMBOL ppl_vec*
-PPL_VECLEN = "  8.00"
-PPL_VEC_XSKIP = "1"
-PPL_VEC_YSKIP = "1"
- 
-VECTOR/I=1:300/J=1:200/LEN=8.2 i/j,j/i
-SHOW SYMBOL ppl_vec*
-PPL_VECLEN = "  8.20"
-PPL_VEC_XSKIP = "8"
-PPL_VEC_YSKIP = "7"
- 
-VECTOR/I=1:300/J=1:200/XSKIP=10/YSKIP=8 i/j,j/i
-SHOW SYMBOL ppl_vec*
-PPL_VECLEN = "  25.1"
-PPL_VEC_XSKIP = "10"
-PPL_VEC_YSKIP = "8"
- 
-VECTOR/I=1:300/J=1:200/LEN=12.2/XSKIP=10/YSKIP=8 i/j,j/i
-SHOW SYMBOL ppl_vec*
-PPL_VECLEN = "  12.2"
-PPL_VEC_XSKIP = "10"
-PPL_VEC_YSKIP = "8"
- 
-! Also, vector/KEY turns on the key even if /NOLAB was set.
-VECTOR/NOLAB/KEY/I=1:300/J=1:200/LEN=12.2/XSKIP=10/YSKIP=6 i/j,j/i
- 
-VECTOR/OVER/KEY/NOLAB/I=1:300/J=1:200/LEN=12.2/XSKIP=10/YSKIP=4 i/j,j/i
- 
-GO bn_reset
-cancel mode verify
-GO bn_variance_large
-! bn_variance_large.jnl
-! Previous to v6.6.4, these returned messages **too big**
- 
-USE coads_climatology
-LET huge = sst*1.e18
-STAT/L=1 huge
- 
-             SST*1.E18
-             LONGITUDE: 20E to 20E(380)
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 16200 (180*90*1*1*1*1)
- # flagged as bad  data: 6694
- Minimum value: -1.8E+18
- Maximum value: 3.1E+19
- Mean    value: 1.652E+19 (unweighted average)
- Standard deviation: 1.0139E+19
-SHADE/L=1/LEV=v huge
- 
-LET huge = sst*1.e25
-STAT/L=1 huge
- 
-             SST*1.E25
-             LONGITUDE: 20E to 20E(380)
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: JAN
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 16200 (180*90*1*1*1*1)
- # flagged as bad  data: 6694
- Minimum value: -1.8E+25
- Maximum value: 3.1E+26
- Mean    value: 1.652E+26 (unweighted average)
- Standard deviation: 1.0139E+26
-SHADE/L=1/LEV=v huge
- 
-CANCEL SYMBOL lev*
- 
-GO bn_reset
-cancel mode verify
-GO bn_labnum_calendar
-! bn_labnum_calendar.jn.
-! Define new symbol, when a Calendar label is on
-! the plot, pointing to its ppl label number.
- 
-! Use a non-standard calendar
-! label LABNUM_CALEN is defined.
- 
-use gt4d011
-set axis/calendar=noleap `temp,return=taxis`
- !-> set axis/calendar=noleap TIME12
-plot/x=132w/y=2n/k=1 temp
-sh sym LABNUM_CALEND
-LABNUM_CALEND = "4"
-sh sym lab($labnum_calend)
- !-> sh sym lab4
-LAB4 = "CALENDAR: NOLEAP"
- 
- 
- 
-! *********** v6.65 Additions ***********
-GO bn_reset
-cancel mode verify
-GO bn665_bug_fixes
-! bn65_bug_fixes.jnl
-! test various fixes that went into version 6.6.5
-! 11/2010 ACM
-!
- 
-GO bn_reset
-cancel mode verify
-GO err664_xml_keep_case
-! err664_xml_keep_case.jnl
-!
-! See bug 1177, xml output should keep the original case of
-! variables and axis names.  Previously xml output upcased
-! variable and coordinate axis names.
-!
-! This dataset has variables and axes in various cases:
-! upper case axis TIME
-! lower case axis zt, variable temp
-! mixed case axes grid_x_T, grid_y_T
- 
-!******* Note this is NOT implemented in the V6.65 release ******!
-!******* Needs further changes to integrate it with LAS    ******!
- 
-use a_cartesian_bug1179.nc
-sh var/xml
- 
-! List the xml for just the axes in this file. sho axis/all/xml
-! lists all axes here at the end of the benchmarks.
- 
-LET axis_names = ..dimnames
-LET nd = ..ndims
-REPEAT/RANGE=1:`nd`/name=m (DEFINE SYMBOL m = `m`; SH AXIS/XML `axis_names[i=($m)]`)
- !-> REPEAT/RANGE=1:4/name=m (DEFINE SYMBOL m = `m`; SH AXIS/XML `axis_names[i=($m)]`)
-!-> REPEAT: M:1
- !-> DEFINE SYMBOL m = 1
- !-> SH AXIS/XML TIME12
-<axes>
-<axis name="TIME12">
-<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>
-!-> REPEAT: M:2
- !-> DEFINE SYMBOL m = 2
- !-> SH 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>
-!-> REPEAT: M:3
- !-> DEFINE SYMBOL m = 3
- !-> SH 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>
-!-> REPEAT: M:4
- !-> DEFINE SYMBOL m = 4
- !-> SH 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>
- 
- 
-GO bn_reset
-cancel mode verify
-GO err664_xml_one_point_axis
-! err664_xml_one_point_axis.jnl
-! See LAS ticket 969.
-! Previously the xml listing incorrectly skipped valid one-point axes.
-! (When an axis is averaged away xml listings correctly
-! skip the now-degenerate axis.
- 
-USE a_cartesian_bug1179.nc
-SH DAT
-     currently SET data sets:
-    1> ./a_cartesian_bug1179.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1       ...       ...
- 
- 
-LET/D=1 a = temp
-! These listings should show the X,Y, and T axes, valid one-point axes
-! and also the Z axis which has 10 points.
-SH VAR/XML
-<global>
-<var name="A[D=./a_cartesian_bug1179.nc]">
-<attribute name="definition" type="char">
-   <value><![CDATA[TEMP]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<grid name="GHU1">
-<axes>
-<xaxis>GRID_X_T</xaxis>
-<yaxis>GRID_Y_T</yaxis>
-<zaxis>ZT</zaxis>
-<taxis>TIME12</taxis>
-</axes>
-</grid>
-</var>
-</global>
- 
-CANCEL VAR a
- 
-LET/D=1 temp_ave_t = temp[Z=37.5:112.5 at AVE]
-! These listings should show the X,Y, and T axes, valid one-point axes
-! but not the Z axis, which has been averaged away.
-SH VAR/XML
-<global>
-<var name="TEMP_AVE_T[D=./a_cartesian_bug1179.nc]">
-<attribute name="definition" type="char">
-   <value><![CDATA[TEMP[Z=37.5:112.5 at AVE]]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<grid name="GHU1">
-<axes>
-<xaxis>GRID_X_T</xaxis>
-<yaxis>GRID_Y_T</yaxis>
-<taxis>TIME12</taxis>
-</axes>
-</grid>
-</var>
-</global>
- 
- 
-GO bn_reset
-cancel mode verify
-GO err65_read_epic_cdf
-! Ned Cokelet reports that the time coordinate is read incorrectly
-! from this file.  Should translate to  04-MAY-2007 05:02
-! Bug was in v6.4 - 6.6 Ferret
- 
-set mode calendar:minutes ! this was set to months, back in bn_pattern.jnl
-use epic_formatted_file.nc
-list/prec=7 t[gt=t_28]
-             VARIABLE : T
-                        axis TIME12
-             FILENAME : epic_formatted_file.nc
-             TIME     : 04-MAY-2007 05:02
-          38825.21
- 
- 
-GO bn_reset
-cancel mode verify
-GO err664_tax_fcns
-! err664_tax_fcns.jnl
-! Fixes for tickets 1766 and 1765
- 
-! 1765 Functions did not test for missing data.
- 
- 
-! tax_ functions
-use gt4d011
-let tval = t[gt=temp]
- 
-list tax_dayfrac({`tval[l=1]`,`tval[l=13]`,},tval)
- !-> list tax_dayfrac({22702,24454,},tval)
-             VARIABLE : TAX_DAYFRAC({22702,24454,},TVAL)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 points (X)
- 1   / 1:  0.5000
- 2   / 2:  0.5000
- 3   / 3:    ....
-list tax_day({`tval[l=1]`,`tval[l=13]`,},tval)
- !-> list tax_day({22702,24454,},tval)
-             VARIABLE : TAX_DAY({22702,24454,},TVAL)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 points (X)
- 1   / 1:  17.00
- 2   / 2:  29.00
- 3   / 3:   ....
-list tax_month({`tval[l=1]`,`tval[l=13]`,},tval)
- !-> list tax_month({22702,24454,},tval)
-             VARIABLE : TAX_MONTH({22702,24454,},TVAL)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 points (X)
- 1   / 1:   8.00
- 2   / 2:  10.00
- 3   / 3:   ....
-list tax_year({`tval[l=1]`,`tval[l=13]`,},tval)
- !-> list tax_year({22702,24454,},tval)
-             VARIABLE : TAX_YEAR({22702,24454,},TVAL)
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 points (X)
- 1   / 1:  1982.
- 2   / 2:  1982.
- 3   / 3:   ....
- 
-! 1766 tax_year retured 0 for year 0001
- 
-def ax/edge/t=1-jan-0000:1-jan-0005:1/unit=year tax
-let a = t[gt=tax]
-list tax_year(a,a)
-             VARIABLE : TAX_YEAR(A,A)
-             SUBSET   : 6 points (TIME)
- JUL-0000 / 1:  0.000
- JUL-0001 / 2:  1.000
- JUL-0002 / 3:  2.000
- JUL-0003 / 4:  3.000
- JUL-0004 / 5:  4.000
- JUL-0005 / 6:  5.000
- 
-! Likewise no year for year 0000 and 0001 in tax_datestring
- list tax_datestring(a, a, "day")
-             VARIABLE : TAX_DATESTRING(A, A, "day")
-             SUBSET   : 6 points (TIME)
- JUL-0000 / 1:"01-JUL-0000"
- JUL-0001 / 2:"01-JUL-0001"
- JUL-0002 / 3:"02-JUL-0002"
- JUL-0003 / 4:"02-JUL-0003"
- JUL-0004 / 5:"01-JUL-0004"
- JUL-0005 / 6:"01-JUL-0005"
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_floatstr
-! bn_floatstr.jnl
-! testing new function to convert floating-point
-! variables to strings.
- 
-LET string = FLOATSTR({3.14159,2.71828},"(f3.1)")
-LIST string
-             VARIABLE : FLOATSTR({3.14159,2.71828},"(f3.1)")
-             SUBSET   : 2 points (X)
- 1   / 1:"3.1"
- 2   / 2:"2.7"
- 
-! Missing data returned as the null string
-LET string = FLOATSTR({3.14159,2.71828,},"(g8.2)")
-LIST string
-             VARIABLE : FLOATSTR({3.14159,2.71828,},"(g8.2)")
-             SUBSET   : 3 points (X)
- 1   / 1:" 3.1"
- 2   / 2:" 2.7"
- 3   / 3:""    
- 
-! Test some large and small values
-LET var = {3.14159,2.71828,}
-LIST FLOATSTR(36*var,"(e9.4)")
-             VARIABLE : FLOATSTR(36*VAR,"(e9.4)")
-             SUBSET   : 3 points (X)
- 1   / 1:".1131E+03"
- 2   / 2:".9786E+02"
- 3   / 3:""         
-LIST FLOATSTR(1.e14*var,"(e9.4)")
-             VARIABLE : FLOATSTR(1.E14*VAR,"(e9.4)")
-             SUBSET   : 3 points (X)
- 1   / 1:".3142E+15"
- 2   / 2:".2718E+15"
- 3   / 3:""         
-LIST FLOATSTR(1.e-14*var,"(e9.4)")
-             VARIABLE : FLOATSTR(1.E-14*VAR,"(e9.4)")
-             SUBSET   : 3 points (X)
- 1   / 1:".3142E-13"
- 2   / 2:".2718E-13"
- 3   / 3:""         
-LIST FLOATSTR(1.e-14*var,"(f4.1)")
-             VARIABLE : FLOATSTR(1.E-14*VAR,"(f4.1)")
-             SUBSET   : 3 points (X)
- 1   / 1:" 0.0"
- 2   / 2:" 0.0"
- 3   / 3:""    
-LIST FLOATSTR(1.e-14*var,"(1pg9.2)")
-             VARIABLE : FLOATSTR(1.E-14*VAR,"(1pg9.2)")
-             SUBSET   : 3 points (X)
- 1   / 1:" 3.14E-14"
- 2   / 2:" 2.72E-14"
- 3   / 3:""         
- 
-! Result shape is inherited from the input variable
-USE gt4d011.cdf
-LIST/I=100/J=36:38/T=1-dec-1982:1-jan-1983 FLOATSTR(tauy, "(f8.4)")
-             VARIABLE : FLOATSTR(TAUY, "(f8.4)")
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 by 6 points (LATITUDE-TIME)
-             LONGITUDE: 130W
-                         3S        2.67S     2.33S   
-                          36        37        38
- 28-NOV-1982 22 / 18:" -0.0272"" -0.0240"" -0.0208"
- 05-DEC-1982 00 / 19:" -0.0283"" -0.0252"" -0.0220"
- 11-DEC-1982 02 / 20:" -0.0294"" -0.0263"" -0.0232"
- 17-DEC-1982 04 / 21:" -0.0357"" -0.0324"" -0.0291"
- 23-DEC-1982 06 / 22:" -0.0470"" -0.0434"" -0.0397"
- 29-DEC-1982 08 / 23:" -0.0583"" -0.0543"" -0.0503"
- 
-USE coads_climatology
-LET var =  FLOATSTR(sst,"(1pg8.3)")
- 
-LIST/X=165W:135W/Y=-50/L=1 var
-             VARIABLE : FLOATSTR(SST,"(1pg8.3)")
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 16 points (LONGITUDE)
-             LATITUDE : 51S
-             TIME     : 16-JAN 06:00
-                51S   
-                 20
- 165W   /  88:"10.5"
- 163W   /  89:"11.2"
- 161W   /  90:"11.8"
- 159W   /  91:"11.0"
- 157W   /  92:"10.7"
- 155W   /  93:"10.9"
- 153W   /  94:"10.7"
- 151W   /  95:"10.5"
- 149W   /  96:"10.6"
- 147W   /  97:"11.0"
- 145W   /  98:"10.1"
- 143W   /  99:"11.0"
- 141W   / 100:""    
- 139W   / 101:""    
- 137W   / 102:""    
- 135W   / 103:""    
-LIST/X=165W:135W/Y=-50/L=1 STRLEN(var)
-             VARIABLE : STRLEN(VAR)
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 16 points (LONGITUDE)
-             LATITUDE : 51S
-             TIME     : 16-JAN 06:00
-                 51S   
-                 20
- 165W   /  88:  4.000
- 163W   /  89:  4.000
- 161W   /  90:  4.000
- 159W   /  91:  4.000
- 157W   /  92:  4.000
- 155W   /  93:  4.000
- 153W   /  94:  4.000
- 151W   /  95:  4.000
- 149W   /  96:  4.000
- 147W   /  97:  4.000
- 145W   /  98:  4.000
- 143W   /  99:  4.000
- 141W   / 100:  0.000
- 139W   / 101:  0.000
- 137W   / 102:  0.000
- 135W   / 103:  0.000
- 
-! *********** v6.7 Additions ***********
-GO bn_reset
-cancel mode verify
-GO bn67_bug_fixes
-! bn67_bug_fixes.jnl
-! test various fixes that went into version 6.7
-! 2/2011 ACM
- 
-GO bn_reset
-cancel mode verify
-GO err665_sum_4d_labels
-! A multi-dimensioned sum is now done as a 4D transformation.
-! the labels on a LISTing of the result contained ???
-! ticket 1788
- 
-use coads_climatology
-list sst[X=125E,Y=75S:75N at sum,l=1:12 at sum]
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             FILENAME : coads_climatology.cdf
-             LONGITUDE: 125E
-             LATITUDE : 75S to 75N (YT summed)
-             TIME     : 01-JAN 00:45 to 31-DEC-0002 18:13 (YT summed)
-          7563.
- 
-GO bn_reset
-cancel mode verify
-GO err665_din
-! err665_din
-! Fixing incorrect latitude corrections for single-point y axis,
-! and the @DIN transformation. See ticket 1348, comment 12.
- 
-! Compute the correct area of a 10m-deep, 1-deglon cell at 26.5N.
-let pi = 3.1415926
-let/unit="m"/title="authalic radius of earth" r_authalic = 6371005
-let/unit="degrees_north" lat = 26.5
-let/unit="degrees_east" dx = 1
-let/unit="m" dz = 10
-let dx_meters = r_authalic * cos(lat * pi/180) * (dx * pi/180)
-list dx_meters*dz
-             VARIABLE : DX_METERS*DZ
-          995122.
- 
-! Next try to reproduce this with Ferret.
-! First make a one-cell XYZ variable, with a value of 1.
-def ax/x=279:280:1/modulo=360/unit=degrees_east/edge xax
-def ax/y=`lat-0.5`:`lat+0.5`:1/unit=degrees_north/edge yax
- !-> def ax/y=26:27:1/unit=degrees_north/edge yax
-def ax/z=0:10:10/unit=m/edge/depth zax
-let p = 1+0*(x[gx=xax]+y[gy=yax]+z[gz=zax])
- 
-! Compute its integral (area) over XZ.
-list p[x=279:380 at din,z=0:10 at din]
-             VARIABLE : 1+0*(X[GX=XAX]+Y[GY=YAX]+Z[GZ=ZAX])
-             LONGITUDE: 81W to 20E(380) (XZ integ.)
-             LATITUDE : 26.5N
-             DEPTH (m): 0 to 10 (XZ integ.)
-          995121.
- 
- 
-! Now do it farther north.
-LET/unit="degrees_north" lat = 72.5
-list dx_meters*dz
-             VARIABLE : DX_METERS*DZ
-          334370.
- 
-! Next try to reproduce this with Ferret.
-! Compute its integral (area) over XZ.
-def ax/y=`lat-0.5`:`lat+0.5`:1/unit=degrees_north/edge yax
- !-> def ax/y=72:73:1/unit=degrees_north/edge yax
-list p[x=279:380 at din,z=0:10 at din]
-             VARIABLE : 1+0*(X[GX=XAX]+Y[GY=YAX]+Z[GZ=ZAX])
-             LONGITUDE: 81W to 20E(380) (XZ integ.)
-             LATITUDE : 72.5N
-             DEPTH (m): 0 to 10 (XZ integ.)
-          334370.
- 
-! Now in the south.
-LET/unit="degrees_north" lat = -72.5
-list dx_meters*dz
-             VARIABLE : DX_METERS*DZ
-          334370.
- 
-! Next try to reproduce this with Ferret.
-! Compute its integral (area) over XZ.
-def ax/y=`lat-0.5`:`lat+0.5`:1/unit=degrees_north/edge yax
- !-> def ax/y=-73:-72:1/unit=degrees_north/edge yax
-list p[x=279:380 at din,z=0:10 at din]
-             VARIABLE : 1+0*(X[GX=XAX]+Y[GY=YAX]+Z[GZ=ZAX])
-             LONGITUDE: 81W to 20E(380) (XZ integ.)
-             LATITUDE : 72.5S
-             DEPTH (m): 0 to 10 (XZ integ.)
-          334370.
- 
-GO bn_reset
-cancel mode verify
-GO err665_centered_lev
-! err665_centered_lev
-! Bug 1803; computation of new levels isnt requested for
-! centered levels after a SHADE/LINE/LEV=c or FILL/LINE/LEV=c
- 
-USE coads_climatology
-SHADE/L=1/LINE/KEY/LEV=c sst
-SHO SYM lev*
-LEV_TEXT = "C"
-LEV_MIN = "-32"
-LEV_MAX = "32"
-LEV_NUM = "32"
-LEV_DEL = "2"
- 
-SHADE/L=1/LINE/KEY/LEV=10c sst
-SHO SYM lev*
-LEV_TEXT = "10C"
-LEV_MIN = "-35"
-LEV_MAX = "35"
-LEV_NUM = "14"
-LEV_DEL = "5"
- 
-FILL/L=3/LINE/KEY/LEV=c sst
-SHO SYM lev*
-LEV_TEXT = "C"
-LEV_MIN = "-34"
-LEV_MAX = "34"
-LEV_NUM = "34"
-LEV_DEL = "2"
- 
-FILL/L=3/LINE/KEY/LEV=10c sst
-SHO SYM lev*
-LEV_TEXT = "10C"
-LEV_MIN = "-35"
-LEV_MAX = "35"
-LEV_NUM = "14"
-LEV_DEL = "5"
- 
-GO bn_reset
-cancel mode verify
-GO err665_hours_since_T
-! err665_hours_since_T.jnl
-! Ticket 1806: allow time-axis units string to
-! be written with a T between the date and time parts,
-! e.g. units: "hours since 2011-03-08T12:00:00Z"
- 
-! Check that T0 includes hour 12:00
-! Previously the hours, minutes, seconds were set to 00
- 
-use hourst.nc
-sh axis/all hourax
- name       axis              # pts   start                end
- HOURAX    TIME                29 r   01-JAN-2001 12:00    15-JAN-2001 12:00
-T0 = 15-JAN-1901 12:00:00
-   Axis span (to cell edges) = 348
- 
-GO bn_reset
-cancel mode verify
-GO err667_att_too_long
-! err667_att_too_long.jnl
-! 3/25/2011 ACM
-! bug 1820; too-long string attribute causes crash or hang
- 
-use toolong.nc
-sh dat/att
-     currently SET data sets:
-    1> ./toolong.nc  (default)
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               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        2048 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.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2. [...]
-  
-(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
-  
-(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
-  
-(TIME12)               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
-  
- SFCO2                 FLOAT     units           CHAR        7    T       kg/m2/s
-                                 long_name       CHAR        16   T       CO2 surface flux
-                                 history         CHAR        10   T       From SFCO2
-  
-save/file=aa.nc/clobber sfco2
- 
- 
-GO bn_reset
-cancel mode verify
-GO err667_mode_desperate
-! err667_mode_desperate
-! 3/25/2011 ACM
-! Fixing bug 1819: too-large requests for value of
-! MODE DESPERATE, and formatting of the value of the
-! setting in SHOW MODE.
- 
-set mode ignore
- 
-! setting too large
-set mode desperate `9999999999`
- !-> set mode desperate 1.E+10
-show mode desperate
-      MODE            STATE        ARGUMENT
-      DESPERATE     CANCELLED      2560000
- 
-! another setting too large (previously value
-! was set to the first 10 digits of this)
-set mode desperate 1234567890123456789
-show mode desperate
-      MODE            STATE        ARGUMENT
-      DESPERATE     CANCELLED      2560000
- 
-! Previously couldnt handle a floating point
-! input. Now we can.
-set mode desperate `96 * 1024 * 1024`
- !-> set mode desperate 1.006633E+08
-show mode desperate
-      MODE            STATE        ARGUMENT
-      DESPERATE        SET           100663300
-can mode ignore
- 
-GO bn_reset
-cancel mode verify
-GO err667_dup_axnames
-! err667_dup_axnames.jnl
-! See bug 1750
-!
-! create two files with same-named y-axis
-def ax/y=-90:90:5 yax_dup_axnames
-let g = y[gy=yax_dup_axnames]
-save/clob/file=g.nc g
-def ax/y=-30:30:5 yax_dup_axnames
-let h = y[gy=yax_dup_axnames]
-save/clob/file=h.nc h
- 
-can var g h
-can ax yax_dup_axnames
-! collect variables into a single file
-use g.nc
-use h.nc
- 
-save/clob/file="gh.nc" g[d=1], h[d=2]
- 
-! When the two datasets are opened, they both have Y axes with the same name
-! but different contents, so internally the axis of H is named yax_dup_axnames1.
-! If there is not a duplicate name in the output file, we want to write H with
-! the original axis name. Check for that.
- 
-save/clob/file="justh.nc" h[d=2]
-save/clob/file="justg.nc" g[d=1]
- 
-GO bn_reset
-cancel mode verify
-GO err667_string_if
-! err667_string_if.jnl
-! Previously both of these LIST commands caused a crash.
-! tickets 1764, 1795
-!
- 
-let a = {"x","y"}
-let b = IF a EQ "x" THEN "z" ELSE a
-list b
-             VARIABLE : IF A EQ "x" THEN "z" ELSE A
-             SUBSET   : 2 points (X)
- 1   / 1:"z"
- 2   / 2:"y"
- 
-let strings = {"a","b"}
-list IF strings EQ "a" THEN "" ELSE strings
-             VARIABLE : IF STRINGS EQ "a" THEN "" ELSE STRINGS
-             SUBSET   : 2 points (X)
- 1   / 1:"" 
- 2   / 2:"b"
- 
- 
- 
-GO bn_reset
-cancel mode verify
-GO err667_show_var_twice
- ! err667_show_var_twice.jnl
- ! ticket 1825
- 
-use coads_climatology
-sh var sst[d=1]
- SST[D=1]: SEA SURFACE TEMPERATURE, in dataset ./coads_climatology.cdf
-sh var sst[d=1]
- SST[D=1]: SEA SURFACE TEMPERATURE, in dataset ./coads_climatology.cdf
- 
-!should return nothing
-sh var airt
- 
-let/d=1 airt2 = airt*2
-sh var airt2[d=1]
- AIRT2[D=coads_climatology] = AIRT*2
-sh var airt2[d=1]
- AIRT2[D=coads_climatology] = AIRT*2
- 
-GO bn_reset
-cancel mode verify
-GO err667_5d_netcdf
-exit/script  ! this test is not valid for 6D Ferret.
- 
-GO bn_reset
-cancel mode verify
-GO err67_save_append_open
-! err67_save_append_open.jnl
-! ticket 1832
-! SAVE to a file that's open for reading
- 
-! Create a file
-use gt4d011.cdf
-save/clobber/file=a.nc temp
-can data/all
- 
-! Open for reading
-use a.nc
-let tempave = temp[t=@ave]
-let temp_mm = temp - tempave
- 
-! read from the file and then append to it
-save/append/file=a.nc temp_mm
- 
-! The dataset still shows just the original contents
-sh dat
-     currently SET data sets:
-    1> ./a.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25      ...       ...
- 
-can dat/all
- 
-! Close it and open again.
-! Now it shows the variable we appended
-use a.nc
-sh dat
-     currently SET data sets:
-    1> ./a.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25      ...       ...
- TEMP_MM  TEMP - TEMPAVE                   1:18      1:22      1:10      1:25      ...       ...
-       (T=14-AUG-1982 11:00:13-JAN-1983 13:00)
- 
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_NaN_note
-! bn_NaN_note.jnl
-! Ferret v6.7  2/2011
-! The message about no missing flags, and assuming NaN,
-! is issued only when MODE DIAGNOSTIC is turned on.
- 
-! This dataset has no missing-valueu flags on its variables
-! No notes on opening it
-USE test0
-!
-! Close it and then open it with MODE DIAG
-! Now we get the NOTE
-GO bn_reset
-cancel mode verify
-SET MODE diag
-USE test0
-CANCEL MODE diag
- 
-! *********** v6.71 Additions ***********
-GO bn_reset
-cancel mode verify
-GO bn671_bug_fixes
-! bn671_bug_fixes.jnl
-! test various fixes that went into version 6.71
-! 4/2011 ACM
- 
-GO bn_reset
-cancel mode verify
-GO err67_tax_modtime
-! err67_tax_modtime.jnl
-! 5/17/2011
-! tickets 1853, 1854: TAX_* functions returned
-! incorrect results when the time axis is modulo
-set mode ignore_error
- 
-!use climatological_axes
-!can dat climatological_axes
-let tvar = t[gt=month_reg]
- 
-list/L=15:20 tax_datestring(t[gt=tvar],tvar,"hour")
-             VARIABLE : TAX_DATESTRING(T[GT=TVAR],TVAR,"hour")
-             SUBSET   : 6 points (TIME)
- 17-MAR      / 15:"17-MAR 08"
- 16-APR      / 16:"16-APR 19"
- 17-MAY      / 17:"17-MAY 05"
- 16-JUN      / 18:"16-JUN 16"
- 17-JUL      / 19:"17-JUL 02"
- 16-AUG      / 20:"16-AUG 13"
-list/L=15:20 tax_datestring(t[gt=tvar],tvar,"day")
-             VARIABLE : TAX_DATESTRING(T[GT=TVAR],TVAR,"day")
-             SUBSET   : 6 points (TIME)
- 17-MAR      / 15:"17-MAR"
- 16-APR      / 16:"16-APR"
- 17-MAY      / 17:"17-MAY"
- 16-JUN      / 18:"16-JUN"
- 17-JUL      / 19:"17-JUL"
- 16-AUG      / 20:"16-AUG"
-list/L=15:20 tax_dayfrac(t[gt=tvar],tvar), tax_dayfrac(t[gt=tvar],tvar)*24.
-             TIME: 02-MAR 03:32 to 31-AUG 18:27
- Column  1: TAX_DAYFRAC(T[GT=TVAR],TVAR)
- Column  2: EX#2 is TAX_DAYFRAC(T[GT=TVAR],TVAR)*24.
-             (C001,V002)   EX#2
-17-MAR      / 15:  0.3663   8.79
-16-APR      / 16:  0.8031  19.27
-17-MAY      / 17:  0.2400   5.76
-16-JUN      / 18:  0.6769  16.25
-17-JUL      / 19:  0.1138   2.73
-16-AUG      / 20:  0.5506  13.21
-list/L=15:20 tax_day(t[gt=tvar],tvar), tax_jday(t[gt=tvar],tvar)
-             TIME: 02-MAR 03:32 to 31-AUG 18:27
- Column  1: TAX_DAY(T[GT=TVAR],TVAR)
- Column  2: TAX_JDAY(T[GT=TVAR],TVAR)
-             (C001,V002)  (C001,V005)
-17-MAR      / 15:   17.00    76.0
-16-APR      / 16:   16.00   106.0
-17-MAY      / 17:   17.00   137.0
-16-JUN      / 18:   16.00   167.0
-17-JUL      / 19:   17.00   198.0
-16-AUG      / 20:   16.00   228.0
-list/L=15:20 tax_month(t[gt=tvar],tvar), tax_yearfrac(t[gt=tvar],tvar)
-             TIME: 02-MAR 03:32 to 31-AUG 18:27
- Column  1: TAX_MONTH(T[GT=TVAR],TVAR)
- Column  2: TAX_YEARFRAC(T[GT=TVAR],TVAR)
-             (C001,V002)  (C001,V005)
-17-MAR      / 15:   3.000  0.2082
-16-APR      / 16:   4.000  0.2904
-17-MAY      / 17:   5.000  0.3753
-16-JUN      / 18:   6.000  0.4575
-17-JUL      / 19:   7.000  0.5425
-16-AUG      / 20:   8.000  0.6247
-! the following is an error for a modulo time axis
-list/L=15:20 tax_year(t[gt=tvar],tvar)
-list tax_units(tvar)
-             VARIABLE : TAX_UNITS(TVAR)
-          3600.
- 
-GO bn_reset
-cancel mode verify
-GO err67_save_append_open
-! err67_save_append_open.jnl
-! ticket 1832
-! SAVE to a file that's open for reading
- 
-! Create a file
-use gt4d011.cdf
-save/clobber/file=a.nc temp
-can data/all
- 
-! Open for reading
-use a.nc
-let tempave = temp[t=@ave]
-let temp_mm = temp - tempave
- 
-! read from the file and then append to it
-save/append/file=a.nc temp_mm
- 
-! The dataset still shows just the original contents
-sh dat
-     currently SET data sets:
-    1> ./a.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25      ...       ...
- 
-can dat/all
- 
-! Close it and open again.
-! Now it shows the variable we appended
-use a.nc
-sh dat
-     currently SET data sets:
-    1> ./a.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25      ...       ...
- TEMP_MM  TEMP - TEMPAVE                   1:18      1:22      1:10      1:25      ...       ...
-       (T=14-AUG-1982 11:00:13-JAN-1983 13:00)
- 
- 
-GO bn_reset
-cancel mode verify
-GO err67_regridding_dyn
-! err67_regridding_dyn.jnl
-!  6/2011
-! See ticket 1862
-! Create three variables. Regrid one to the grid
-! of the other two which share an X axis and
-! have different Y axes; one coarser than the other.
-! The regridding and modulo operatinons incorrectly
-! re-use intermediate results.
- 
-! Create test datasets to use
-use coads_climatology
-let filled = MISSING(sst[L=1], 0)
-save/file=cc.nc/clobber filled[x=-179:179]
- 
-! Define an x axis over a different x range from above,
-! and two y axes, same y range but different resoloutions.
- 
-define axis/x=0:356.25:3.75/units=deg lon
-define axis/y=-90:90/npoints=72/units=deg lat1
-define axis/y=-90:90/npoints=92/units=deg lat2
- 
-save/clobber/file=c1.nc filled[gx=lon,gy=lat1]
-can mem
-save/clobber/file=c2.nc filled[gx=lon,gy=lat2]
- 
-can dat/all; can mem; can var/all;
- 
-! Now regrid the data coming in on x=-179:179 to the other grids
-use c1
-use c2
-use cc
- 
-set view upper
-shade filled[d=3,gxy=filled[d=1]]
-list/x=330/y=40:90 filled[d=3,gxy=filled[d=1]]
-             VARIABLE : MISSING(SST[L=1], 0)
-                        regrid: FILLED[D=c1]
-             FILENAME : cc.nc
-             SUBSET   : 21 points (LATITUDE)
-             LONGITUDE: 30W
-             TIME     : 16-JAN 06:00
-               30W   
-               89
- 90N   / 72:   ....
- 87.5N / 71:   0.00
- 84.9N / 70:   0.00
- 82.4N / 69:   0.00
- 79.9N / 68:   0.00
- 77.3N / 67:   0.00
- 74.8N / 66:   0.00
- 72.3N / 65:   0.00
- 69.7N / 64:   0.96
- 67.2N / 63:   3.25
- 64.6N / 62:   5.60
- 62.1N / 61:   6.40
- 59.6N / 60:   7.31
- 57N   / 59:   7.79
- 54.5N / 58:   7.79
- 52N   / 57:   9.27
- 49.4N / 56:  11.43
- 46.9N / 55:  12.80
- 44.4N / 54:  14.01
- 41.8N / 53:  15.02
- 39.3N / 52:  15.98
- 
-! The bug has data wrapped around incorrectly
-set view lower
-shade  filled[d=3,gxy=filled[d=2]]
-list/x=330/y=40:90 filled[d=3,gxy=filled[d=2]]
-             VARIABLE : MISSING(SST[L=1], 0)
-                        regrid: FILLED[D=c2]
-             FILENAME : cc.nc
-             SUBSET   : 26 points (LATITUDE)
-             LONGITUDE: 30W
-             TIME     : 16-JAN 06:00
-               30W   
-               89
- 90N   / 92:   ....
- 88N   / 91:   0.00
- 86N   / 90:   0.00
- 84.1N / 89:   0.00
- 82.1N / 88:   0.00
- 80.1N / 87:   0.00
- 78.1N / 86:   0.00
- 76.2N / 85:   0.00
- 74.2N / 84:   0.00
- 72.2N / 83:   0.00
- 70.2N / 82:   0.59
- 68.2N / 81:   2.23
- 66.3N / 80:   4.17
- 64.3N / 79:   5.74
- 62.3N / 78:   6.37
- 60.3N / 77:   6.93
- 58.4N / 76:   7.66
- 56.4N / 75:   7.76
- 54.4N / 74:   7.81
- 52.4N / 73:   8.75
- 50.4N / 72:  10.77
- 48.5N / 71:  11.99
- 46.5N / 70:  13.01
- 44.5N / 69:  13.95
- 42.5N / 68:  14.76
- 40.5N / 67:  15.50
- 
-GO bn_reset
-cancel mode verify
-GO err67_reverse_bounds
-! err67_reverse_bounds.jnl
-!
-! Bug in reversing the bounds when an axis is reversed
-! previously this gave a warning:
-! NOTE: Error in bounds "lev_bnds" or bounds do not enclose point
- 
-use reverse_z_bnds.nc
-list lev_var, zboxlo[gz=lev_var], zboxhi[gz=lev_var]
-             DATA SET: ./reverse_z_bnds.nc
-             Z: 0 to 1
- Column  1: LEV_VAR is a variable on the depth axis (none)
- Column  2: ZBOXLO is ZBOXLO (axis LEV)
- Column  3: ZBOXHI is ZBOXHI (axis LEV)
-            LEV_VAR   ZBOXLO ZBOXHI
-0      /  1:   24.00  0.0000  0.009
-0.0216 /  2:   23.00  0.0089  0.034
-0.0542 /  3:   22.00  0.0343  0.074
-0.1001 /  4:   21.00  0.0741  0.126
-0.1574 /  5:   20.00  0.1262  0.189
-0.2239 /  6:   19.00  0.1886  0.259
-0.2977 /  7:   18.00  0.2593  0.336
-0.3765 /  8:   17.00  0.3361  0.417
-0.4565 /  9:   16.00  0.4170  0.496
-0.5318 / 10:   15.00  0.4961  0.568
-0.5998 / 11:   14.00  0.5676  0.632
-0.6608 / 12:   13.00  0.6320  0.690
-0.7152 / 13:   12.00  0.6896  0.741
-0.7635 / 14:   11.00  0.7408  0.786
-0.806  / 15:   10.00  0.7861  0.826
-0.8432 / 16:    9.00  0.8259  0.860
-0.8754 / 17:    8.00  0.8605  0.890
-0.9031 / 18:    7.00  0.8903  0.916
-0.9266 / 19:    6.00  0.9158  0.937
-0.9464 / 20:    5.00  0.9374  0.955
-0.9628 / 21:    4.00  0.9554  0.970
-0.9763 / 22:    3.00  0.9703  0.982
-0.9873 / 23:    2.00  0.9824  0.992
-0.9961 / 24:    1.00  0.9922  1.000
- 
-GO bn_reset
-cancel mode verify
-GO err67_nrst_trans
-! err67_nrst_trans.jnl
-!
-! See ticket 1875: for short axes the @NRST transform
-! missed points - no valid data was returned from this LIST.
- 
-define axis/x=333:335:1 xax
-define axis/x=300:400:10 xlong
-let x3 = x[gx=xax]
-let var = x3[gx=xlong at nrst]
-list var
-             VARIABLE : X3[GX=XLONG at NRST]
-             SUBSET   : 11 points (X)
- 300   /  1:   ....
- 310   /  2:   ....
- 320   /  3:   ....
- 330   /  4:  333.0
- 340   /  5:  335.0
- 350   /  6:   ....
- 360   /  7:   ....
- 370   /  8:   ....
- 380   /  9:   ....
- 390   / 10:   ....
- 400   / 11:   ....
- 
-! *********** v6.8 Additions ***********
-GO bn_reset
-cancel mode verify
-GO bn68_bug_fixes
-! bn68_bug_fixes.jnl
-! test various fixes that went into version 6.8
-!
-GO bn_reset
-cancel mode verify
-GO err672_stray_line
-! err672_stray_line.jnl
-! bug 1545, present in older versions of Ferret too.
-! Lines ( as in go land ), that go near but outside the outer
-! corners of the plot, either from the bottom to the left side
-! of the plot, or from the top to the left, but not crossing
-! any axis, may cause a stray line to be drawn outward from the
-! corner.
- 
-use coads_climatology
-shade/noax/nolab/nokey sst[x=148.68:262.0,y=-29.83:45.35,L=1]
- 
-! Line near but not crossing from top to left
-plot/vs/over/nolab/line/sym {148.83, 148.33}, {45.5, 45.25}
- 
-! Line near but not crossing from bottom to the left
-plot/over/vs/nolab/line/sym {148.83, 148.17}, {-29.96, -29.68}
- 
-GO bn_reset
-cancel mode verify
-GO err672_tax_functions_prec
-! See ticket 1642: arg 1 of TAX_* functions
-! is a single-precision variale representing double-precision coords.
- 
- 
-set mode ignore
- 
-define axis/t=30-jan-2010:31-dec-2010:86400/unit=seconds taxis
-let var = t[gt=taxis]
- 
-! Previously this was incorrect- varied in the seconds place
-list/l=1:7 TAX_DATESTRING(t[gt=var],var,"seconds")
-             VARIABLE : TAX_DATESTRING(T[GT=VAR],VAR,"seconds")
-             SUBSET   : 7 points (TIME)
- 30-JAN-2010 00 / 1:"30-JAN-2010 00:00:00"
- 31-JAN-2010 00 / 2:"31-JAN-2010 00:00:00"
- 01-FEB-2010 00 / 3:"01-FEB-2010 00:00:00"
- 02-FEB-2010 00 / 4:"02-FEB-2010 00:00:00"
- 03-FEB-2010 00 / 5:"03-FEB-2010 00:00:00"
- 04-FEB-2010 00 / 6:"04-FEB-2010 00:00:00"
- 05-FEB-2010 00 / 7:"05-FEB-2010 00:00:00"
- 
-! Note there is no complete fix. This axis needs more than single-
-! precision representation at the far end.
-list/t=1-dec-2010:5-dec-2010 TAX_DATESTRING(t[gt=var],var,"seconds")
-             VARIABLE : TAX_DATESTRING(T[GT=VAR],VAR,"seconds")
-             SUBSET   : 5 points (TIME)
- 01-DEC-2010 00 / 306:"01-DEC-2010 00:00:00"
- 02-DEC-2010 00 / 307:"02-DEC-2010 00:00:00"
- 03-DEC-2010 00 / 308:"03-DEC-2010 00:00:00"
- 04-DEC-2010 00 / 309:"04-DEC-2010 00:00:00"
- 05-DEC-2010 00 / 310:"05-DEC-2010 00:00:00"
- 
-! Likewise all these were off by a bit (except month and year)
-list/l=1:7 TAX_DAY(t[gt=var], var)
-             VARIABLE : TAX_DAY(T[GT=VAR], VAR)
-             SUBSET   : 7 points (TIME)
- 30-JAN-2010 00 / 1:  30.00
- 31-JAN-2010 00 / 2:  31.00
- 01-FEB-2010 00 / 3:   1.00
- 02-FEB-2010 00 / 4:   2.00
- 03-FEB-2010 00 / 5:   3.00
- 04-FEB-2010 00 / 6:   4.00
- 05-FEB-2010 00 / 7:   5.00
-list/l=1:7 TAX_DAYFRAC(t[gt=var], var)
-             VARIABLE : TAX_DAYFRAC(T[GT=VAR], VAR)
-             SUBSET   : 7 points (TIME)
- 30-JAN-2010 00 / 1:  0.0000
- 31-JAN-2010 00 / 2:  0.0000
- 01-FEB-2010 00 / 3:  0.0000
- 02-FEB-2010 00 / 4:  0.0000
- 03-FEB-2010 00 / 5:  0.0000
- 04-FEB-2010 00 / 6:  0.0000
- 05-FEB-2010 00 / 7:  0.0000
-list/l=1:7 TAX_jday1900(t[gt=var], var)
-             VARIABLE : TAX_JDAY1900(T[GT=VAR], VAR)
-             SUBSET   : 7 points (TIME)
- 30-JAN-2010 00 / 1:  40206.
- 31-JAN-2010 00 / 2:  40207.
- 01-FEB-2010 00 / 3:  40208.
- 02-FEB-2010 00 / 4:  40209.
- 03-FEB-2010 00 / 5:  40210.
- 04-FEB-2010 00 / 6:  40211.
- 05-FEB-2010 00 / 7:  40212.
-list/l=1:7 TAX_jday(t[gt=var], var)
-             VARIABLE : TAX_JDAY(T[GT=VAR], VAR)
-             SUBSET   : 7 points (TIME)
- 30-JAN-2010 00 / 1:  30.00
- 31-JAN-2010 00 / 2:  31.00
- 01-FEB-2010 00 / 3:  32.00
- 02-FEB-2010 00 / 4:  33.00
- 03-FEB-2010 00 / 5:  34.00
- 04-FEB-2010 00 / 6:  35.00
- 05-FEB-2010 00 / 7:  36.00
-list/l=1:7 TAX_month(t[gt=var], var)
-             VARIABLE : TAX_MONTH(T[GT=VAR], VAR)
-             SUBSET   : 7 points (TIME)
- 30-JAN-2010 00 / 1:  1.000
- 31-JAN-2010 00 / 2:  1.000
- 01-FEB-2010 00 / 3:  2.000
- 02-FEB-2010 00 / 4:  2.000
- 03-FEB-2010 00 / 5:  2.000
- 04-FEB-2010 00 / 6:  2.000
- 05-FEB-2010 00 / 7:  2.000
-list/l=1:7 TAX_year(t[gt=var], var)
-             VARIABLE : TAX_YEAR(T[GT=VAR], VAR)
-             SUBSET   : 7 points (TIME)
- 30-JAN-2010 00 / 1:  2010.
- 31-JAN-2010 00 / 2:  2010.
- 01-FEB-2010 00 / 3:  2010.
- 02-FEB-2010 00 / 4:  2010.
- 03-FEB-2010 00 / 5:  2010.
- 04-FEB-2010 00 / 6:  2010.
- 05-FEB-2010 00 / 7:  2010.
-list/l=1:7 TAX_yearfrac(t[gt=var], var)
-             VARIABLE : TAX_YEARFRAC(T[GT=VAR], VAR)
-             SUBSET   : 7 points (TIME)
- 30-JAN-2010 00 / 1:  0.08219
- 31-JAN-2010 00 / 2:  0.08493
- 01-FEB-2010 00 / 3:  0.08767
- 02-FEB-2010 00 / 4:  0.09041
- 03-FEB-2010 00 / 5:  0.09315
- 04-FEB-2010 00 / 6:  0.09589
- 05-FEB-2010 00 / 7:  0.09863
- 
-! This axis even worse, all results the same
-! All of these will bail out with repeated ARG1 values
-define axis/t=1-jan-2010:2-jan-2010:5/unit=seconds taxis
-let var = t[gt=taxis]
-list/l=1:7 TAX_DATESTRING(t[gt=var,L=1:50],var[L=1:50],"seconds")
-             VARIABLE : TAX_DATESTRING(T[GT=VAR,L=1:50],VAR[L=1:50],"seconds")
-             SUBSET   : 7 points (TIME)
- 01-JAN-2010 00:00:00 / 1:"01-JAN-2010 00:00:00"
- 01-JAN-2010 00:00:05 / 2:"01-JAN-2010 00:00:05"
- 01-JAN-2010 00:00:10 / 3:"01-JAN-2010 00:00:10"
- 01-JAN-2010 00:00:15 / 4:"01-JAN-2010 00:00:15"
- 01-JAN-2010 00:00:20 / 5:"01-JAN-2010 00:00:20"
- 01-JAN-2010 00:00:25 / 6:"01-JAN-2010 00:00:25"
- 01-JAN-2010 00:00:30 / 7:"01-JAN-2010 00:00:30"
- 
-list/l=1:7 TAX_DAY(t[gt=var], var)
-             VARIABLE : TAX_DAY(T[GT=VAR], VAR)
-             SUBSET   : 7 points (TIME)
- 01-JAN-2010 00:00:00 / 1:  1.000
- 01-JAN-2010 00:00:05 / 2:  1.000
- 01-JAN-2010 00:00:10 / 3:  1.000
- 01-JAN-2010 00:00:15 / 4:  1.000
- 01-JAN-2010 00:00:20 / 5:  1.000
- 01-JAN-2010 00:00:25 / 6:  1.000
- 01-JAN-2010 00:00:30 / 7:  1.000
-list/l=1:7 TAX_DAYFRAC(t[gt=var], var)
-             VARIABLE : TAX_DAYFRAC(T[GT=VAR], VAR)
-             SUBSET   : 7 points (TIME)
- 01-JAN-2010 00:00:00 / 1:  0.000E+00
- 01-JAN-2010 00:00:05 / 2:  5.787E-05
- 01-JAN-2010 00:00:10 / 3:  1.157E-04
- 01-JAN-2010 00:00:15 / 4:  1.736E-04
- 01-JAN-2010 00:00:20 / 5:  2.315E-04
- 01-JAN-2010 00:00:25 / 6:  2.894E-04
- 01-JAN-2010 00:00:30 / 7:  3.472E-04
-list/l=1:7 TAX_jday1900(t[gt=var], var)
-             VARIABLE : TAX_JDAY1900(T[GT=VAR], VAR)
-             SUBSET   : 7 points (TIME)
- 01-JAN-2010 00:00:00 / 1:  40177.
- 01-JAN-2010 00:00:05 / 2:  40177.
- 01-JAN-2010 00:00:10 / 3:  40177.
- 01-JAN-2010 00:00:15 / 4:  40177.
- 01-JAN-2010 00:00:20 / 5:  40177.
- 01-JAN-2010 00:00:25 / 6:  40177.
- 01-JAN-2010 00:00:30 / 7:  40177.
-list/l=1:7 TAX_jday(t[gt=var], var)
-             VARIABLE : TAX_JDAY(T[GT=VAR], VAR)
-             SUBSET   : 7 points (TIME)
- 01-JAN-2010 00:00:00 / 1:  1.000
- 01-JAN-2010 00:00:05 / 2:  1.000
- 01-JAN-2010 00:00:10 / 3:  1.000
- 01-JAN-2010 00:00:15 / 4:  1.000
- 01-JAN-2010 00:00:20 / 5:  1.000
- 01-JAN-2010 00:00:25 / 6:  1.000
- 01-JAN-2010 00:00:30 / 7:  1.000
-list/l=1:7 TAX_month(t[gt=var], var)
-             VARIABLE : TAX_MONTH(T[GT=VAR], VAR)
-             SUBSET   : 7 points (TIME)
- 01-JAN-2010 00:00:00 / 1:  1.000
- 01-JAN-2010 00:00:05 / 2:  1.000
- 01-JAN-2010 00:00:10 / 3:  1.000
- 01-JAN-2010 00:00:15 / 4:  1.000
- 01-JAN-2010 00:00:20 / 5:  1.000
- 01-JAN-2010 00:00:25 / 6:  1.000
- 01-JAN-2010 00:00:30 / 7:  1.000
-list/l=1:7 TAX_year(t[gt=var], var)
-             VARIABLE : TAX_YEAR(T[GT=VAR], VAR)
-             SUBSET   : 7 points (TIME)
- 01-JAN-2010 00:00:00 / 1:  2010.
- 01-JAN-2010 00:00:05 / 2:  2010.
- 01-JAN-2010 00:00:10 / 3:  2010.
- 01-JAN-2010 00:00:15 / 4:  2010.
- 01-JAN-2010 00:00:20 / 5:  2010.
- 01-JAN-2010 00:00:25 / 6:  2010.
- 01-JAN-2010 00:00:30 / 7:  2010.
-list/l=1:7 TAX_yearfrac(t[gt=var], var)
-             VARIABLE : TAX_YEARFRAC(T[GT=VAR], VAR)
-             SUBSET   : 7 points (TIME)
- 01-JAN-2010 00:00:00 / 1:  0.002740
- 01-JAN-2010 00:00:05 / 2:  0.002740
- 01-JAN-2010 00:00:10 / 3:  0.002740
- 01-JAN-2010 00:00:15 / 4:  0.002740
- 01-JAN-2010 00:00:20 / 5:  0.002740
- 01-JAN-2010 00:00:25 / 6:  0.002740
- 01-JAN-2010 00:00:30 / 7:  0.002740
- 
-! This example from Patrick B. Output of TAX_dayfrac repeats.
-! We need to just return an error mesage. Cant represent 2.5 years
-! of seconds as a single-precision variable. (Can't represent even a month...)
- 
-def axis/t="1-jan-2008":"31-dec-2010":1/units=seconds/t0="1-jan-2008" mytaxis
-let tt = t[gt=mytaxis]
- 
-let a =  TAX_year(tt[t="02-JUN-2010:13:34:40":"02-JUN-2010:13:34:50"], tt[L=76340000:76350000])
-let b =  TAX_jday(tt[t="02-JUN-2010:13:34:40":"02-JUN-2010:13:34:50"], tt[L=76340000:76350000])
-let c =  TAX_dayfrac(tt[t="02-JUN-2010:13:34:40":"02-JUN-2010:13:34:50"], tt[L=76340000:76350000])
- 
-list/prec=7 a
-             VARIABLE : TAX_YEAR(TT[T="02-JUN-2010:13:34:40":"02-JUN-2010:13:34:50"], TT[L=76340000:76350000])
-             SUBSET   : 11 points (TIME)
- 02-JUN-2010 13:34:40 / 76340081:  2010.000
- 02-JUN-2010 13:34:41 / 76340082:  2010.000
- 02-JUN-2010 13:34:42 / 76340083:  2010.000
- 02-JUN-2010 13:34:43 / 76340084:  2010.000
- 02-JUN-2010 13:34:44 / 76340085:  2010.000
- 02-JUN-2010 13:34:45 / 76340086:  2010.000
- 02-JUN-2010 13:34:46 / 76340087:  2010.000
- 02-JUN-2010 13:34:47 / 76340088:  2010.000
- 02-JUN-2010 13:34:48 / 76340089:  2010.000
- 02-JUN-2010 13:34:49 / 76340090:  2010.000
- 02-JUN-2010 13:34:50 / 76340091:  2010.000
-list/prec=7 b
-             VARIABLE : TAX_JDAY(TT[T="02-JUN-2010:13:34:40":"02-JUN-2010:13:34:50"], TT[L=76340000:76350000])
-             SUBSET   : 11 points (TIME)
- 02-JUN-2010 13:34:40 / 76340081:  153.0000
- 02-JUN-2010 13:34:41 / 76340082:  153.0000
- 02-JUN-2010 13:34:42 / 76340083:  153.0000
- 02-JUN-2010 13:34:43 / 76340084:  153.0000
- 02-JUN-2010 13:34:44 / 76340085:  153.0000
- 02-JUN-2010 13:34:45 / 76340086:  153.0000
- 02-JUN-2010 13:34:46 / 76340087:  153.0000
- 02-JUN-2010 13:34:47 / 76340088:  153.0000
- 02-JUN-2010 13:34:48 / 76340089:  153.0000
- 02-JUN-2010 13:34:49 / 76340090:  153.0000
- 02-JUN-2010 13:34:50 / 76340091:  153.0000
-list/prec=7 c
-             VARIABLE : TAX_DAYFRAC(TT[T="02-JUN-2010:13:34:40":"02-JUN-2010:13:34:50"], TT[L=76340000:76350000])
-             SUBSET   : 11 points (TIME)
- 02-JUN-2010 13:34:40 / 76340081:  0.5657407
- 02-JUN-2010 13:34:41 / 76340082:  0.5657523
- 02-JUN-2010 13:34:42 / 76340083:  0.5657639
- 02-JUN-2010 13:34:43 / 76340084:  0.5657755
- 02-JUN-2010 13:34:44 / 76340085:  0.5657870
- 02-JUN-2010 13:34:45 / 76340086:  0.5657986
- 02-JUN-2010 13:34:46 / 76340087:  0.5658102
- 02-JUN-2010 13:34:47 / 76340088:  0.5658218
- 02-JUN-2010 13:34:48 / 76340089:  0.5658333
- 02-JUN-2010 13:34:49 / 76340090:  0.5658449
- 02-JUN-2010 13:34:50 / 76340091:  0.5658565
- 
-! Can do this example
-let a =  TAX_year(tt[t="13-JAN-2008:13:34:40":"13-JAN-2008:13:34:50"], tt[L=1080000:1090000])
-let b =  TAX_jday(tt[t="13-JAN-2008:13:34:40":"13-JAN-2008:13:34:50"], tt[L=1080000:1090000])
-let c =  TAX_dayfrac(tt[t="13-JAN-2008:13:34:40":"13-JAN-2008:13:34:50"], tt[L=1080000:1090000])
- 
-list/prec=7 a
-             VARIABLE : TAX_YEAR(TT[T="13-JAN-2008:13:34:40":"13-JAN-2008:13:34:50"], TT[L=1080000:1090000])
-             SUBSET   : 11 points (TIME)
- 13-JAN-2008 13:34:40 / 1085681:  2008.000
- 13-JAN-2008 13:34:41 / 1085682:  2008.000
- 13-JAN-2008 13:34:42 / 1085683:  2008.000
- 13-JAN-2008 13:34:43 / 1085684:  2008.000
- 13-JAN-2008 13:34:44 / 1085685:  2008.000
- 13-JAN-2008 13:34:45 / 1085686:  2008.000
- 13-JAN-2008 13:34:46 / 1085687:  2008.000
- 13-JAN-2008 13:34:47 / 1085688:  2008.000
- 13-JAN-2008 13:34:48 / 1085689:  2008.000
- 13-JAN-2008 13:34:49 / 1085690:  2008.000
- 13-JAN-2008 13:34:50 / 1085691:  2008.000
-list/prec=7 b
-             VARIABLE : TAX_JDAY(TT[T="13-JAN-2008:13:34:40":"13-JAN-2008:13:34:50"], TT[L=1080000:1090000])
-             SUBSET   : 11 points (TIME)
- 13-JAN-2008 13:34:40 / 1085681:  13.00000
- 13-JAN-2008 13:34:41 / 1085682:  13.00000
- 13-JAN-2008 13:34:42 / 1085683:  13.00000
- 13-JAN-2008 13:34:43 / 1085684:  13.00000
- 13-JAN-2008 13:34:44 / 1085685:  13.00000
- 13-JAN-2008 13:34:45 / 1085686:  13.00000
- 13-JAN-2008 13:34:46 / 1085687:  13.00000
- 13-JAN-2008 13:34:47 / 1085688:  13.00000
- 13-JAN-2008 13:34:48 / 1085689:  13.00000
- 13-JAN-2008 13:34:49 / 1085690:  13.00000
- 13-JAN-2008 13:34:50 / 1085691:  13.00000
-list/prec=7 c
-             VARIABLE : TAX_DAYFRAC(TT[T="13-JAN-2008:13:34:40":"13-JAN-2008:13:34:50"], TT[L=1080000:1090000])
-             SUBSET   : 11 points (TIME)
- 13-JAN-2008 13:34:40 / 1085681:  0.5657407
- 13-JAN-2008 13:34:41 / 1085682:  0.5657523
- 13-JAN-2008 13:34:42 / 1085683:  0.5657639
- 13-JAN-2008 13:34:43 / 1085684:  0.5657755
- 13-JAN-2008 13:34:44 / 1085685:  0.5657870
- 13-JAN-2008 13:34:45 / 1085686:  0.5657986
- 13-JAN-2008 13:34:46 / 1085687:  0.5658102
- 13-JAN-2008 13:34:47 / 1085688:  0.5658218
- 13-JAN-2008 13:34:48 / 1085689:  0.5658333
- 13-JAN-2008 13:34:49 / 1085690:  0.5658449
- 13-JAN-2008 13:34:50 / 1085691:  0.5658565
- 
-can mode ignore
- 
-GO bn_reset
-cancel mode verify
-GO err672_subscr_precision
-! err672_subscr_precision.jnl
-! See ticket 1888.
- 
- 
-def axis/t="1-jan-2008":"31-dec-2010":1/units=sec/t0="1-jan-2008" mytaxis
-let tt = t[gt=mytaxis]
- 
-! This command should list 11 timesteps, previously listed only 8 (64-bit)
-! or 9 (32-bit).
-list/t="02-JUN-2010:13:34:40":"02-JUN-2010:13:34:50" tt
-             VARIABLE : T[GT=MYTAXIS]
-             SUBSET   : 11 points (TIME)
- 02-JUN-2010 13:34:40 / 76340081:  7.634E+07
- 02-JUN-2010 13:34:41 / 76340082:  7.634E+07
- 02-JUN-2010 13:34:42 / 76340083:  7.634E+07
- 02-JUN-2010 13:34:43 / 76340084:  7.634E+07
- 02-JUN-2010 13:34:44 / 76340085:  7.634E+07
- 02-JUN-2010 13:34:45 / 76340086:  7.634E+07
- 02-JUN-2010 13:34:46 / 76340087:  7.634E+07
- 02-JUN-2010 13:34:47 / 76340088:  7.634E+07
- 02-JUN-2010 13:34:48 / 76340089:  7.634E+07
- 02-JUN-2010 13:34:49 / 76340090:  7.634E+07
- 02-JUN-2010 13:34:50 / 76340091:  7.634E+07
- 
-GO bn_reset
-cancel mode verify
-GO err672_vert_axislabel
-! err672_vert_axislabel.jnl
-! bug 1896
-!
-! When the vertical axis needs a lot of characters
-! in the numeric axis, the axis label runs off the edge
-! of the plot
- 
-! starting w/ v683, shrink yaxis lab size only if
-! MODE shrink_ylab is set. (ticket 1958)
- 
-SET MODE shrink_ylab
- 
-define axis/x=1:100:1 xax
-let/units="Observation value" var = 1.e37 * sin(randu(x[gx=xax])-1)
-plot var
- 
-use gt4d011
-plot/x=130w psi[t=@din]
- 
-! If the margins are too small the method just makes a nominal setting.
-go margins 0.2 0.6 0.2, 0.2
-plot/i=1:200 (sin(x/30))
- 
-go margins "reset"
- 
-SET MODE/LAST shrink_ylab
- 
-GO bn_reset
-cancel mode verify
-GO err672_axis_label_prec
-! See ticket 1907
-! Axis label format didnt give enough precision for accurate labels
-! for some cases where the range is between -1 and 1.
- 
-! The upper tic was labeled 0.04 (or 0.05 depending on the OS and compiler)
-! Should be 0.045
-let v = {0.02, 0.047,0.007, 0.02}
-set view left
-plot v
- 
-! This was a workaround
-set view right
-plot/set v
-ppl yfor (f5.3)
-ppl plot
- 
-can view
- 
-! Here are more variables that caused similar
-! inadequate precision in the format.
- 
-let v = -1*{0.02, 0.042, 0.007, 0.02}
-set view left
-plot v
- 
-! This one had labels -0.02, -0.02, -0.02, -0.01, -0.01, 0.00, 0.00, 0.1
-let v = {-0.023, -0.01, 0.007, 0.004}
-set view right
-plot v
- 
-GO bn_reset
-cancel mode verify
-GO err672_long_show_axis
-! See ticket 1905 - axes with very large number of points overflowed
-! the format in SHOW AXIS commands
- 
-define axis/t=1-jan-1900:1-jan-2000:1/units=minutes huge
-sh axis huge
- name       axis              # pts   start                end
- HUGE      TIME          52594561 r   01-JAN-1900 00:00    01-JAN-2000 00:00
-T0 = 01-JAN-1900
-   Axis span (to cell edges) = 52594561
-can axis huge
- 
- 
-GO bn_reset
-cancel mode verify
-GO err672_axis_order
-! err672_axis_order
-! See comment 5 under ticket 1774.
- 
- 
-use err67_axis_order.nc
-sp cp err67_axis_order.nc err67_axis_order_copy.nc
-use err67_axis_order_copy.nc
-sh dat
-     currently SET data sets:
-    1> ./err67_axis_order.nc
- name     title                             I         J         K         L         M         N
- UCOV     UCOV                             1:6       1:9       1:3       1:1       ...       ...
- CONTROLE CONTROLE                         1:6       ...       ...       ...       ...       ...
- NIVSIGS  NIVSIGS                          ...       ...       1:3       ...       ...       ...
- NIVSIG   NIVSIG                           1:6       ...       ...       ...       ...       ...
- AP       AP                               1:6       ...       ...       ...       ...       ...
- 
-    2> ./err67_axis_order_copy.nc  (default)
- name     title                             I         J         K         L         M         N
- UCOV     UCOV                             1:6       1:9       1:3       1:1       ...       ...
- CONTROLE CONTROLE                         1:6       ...       ...       ...       ...       ...
- NIVSIGS  NIVSIGS                          ...       ...       1:3       ...       ...       ...
- NIVSIG   NIVSIG                           1:6       ...       ...       ...       ...       ...
- AP       AP                               1:6       ...       ...       ...       ...       ...
- 
- 
-! Listings should be identical with the bug they are reversed.
-list/k=3/i=1 ucov[d=1]
-             VARIABLE : UCOV
-             FILENAME : err67_axis_order.nc
-             SUBSET   : 9 points (Y)
-             X        : 1.014
-             Z        : 3
-             TIME     : 08-JAN-1980 00:00
-                1.014  
-                 1
- -1.554 / 1: -642176.
- -1.521 / 2: -621550.
- -1.488 / 3: -700065.
- -1.455 / 4: -640073.
- 0.033  / 5: -375011.
- 1.455  / 6: -153460.
- 1.488  / 7:   10663.
- 1.521  / 8:   60693.
- 1.554  / 9:       0.
-list/k=3/i=1 ucov[d=2]
-             VARIABLE : UCOV
-             FILENAME : err67_axis_order_copy.nc
-             SUBSET   : 9 points (Y)
-             X        : 1.014
-             Z        : 3
-             TIME     : 08-JAN-1980 00:00
-                1.014  
-                 1
- -1.554 / 1: -642176.
- -1.521 / 2: -621550.
- -1.488 / 3: -700065.
- -1.455 / 4: -640073.
- 0.033  / 5: -375011.
- 1.455  / 6: -153460.
- 1.488  / 7:   10663.
- 1.521  / 8:   60693.
- 1.554  / 9:       0.
- 
- 
-GO bn_reset
-cancel mode verify
-GO err672_runoff_page
-! err672_runoff_page
-! acm 5/3/2012
-! Test for the fix to ticket 1896 . Y-Axis labels may run off the
-! edge of the page if the numbers have lots of digits.
-! We change the ax-label size just for this axis issue a note.
-!
-! starting w/ v683, shrink yaxis lab size only if
-! MODE shrink_ylab is set. (ticket 1958)
- 
-SET MODE shrink_ylab
- 
-define axis/x=1:100:1 xax
-let/units="Observation value" var = 1.e37 * sin(randu(x[gx=xax])-1)
-plot var
- 
-SET MODE/LAST shrink_ylab
- 
-GO bn_reset
-cancel mode verify
-GO err672_samplexy_modulo
-! err672_samplexy_modulo.jnl
-! See ticket 1950: samplexy doesnt correctly do modulo operations.
- 
-use coads_climatology
-! There is data at x=-20,y=0:
-list  sst[x=-20,y=0]
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 points (TIME)
-             LONGITUDE: 21W(-21)
-             LATITUDE : 1S
-                   21W    
-                   -20
- 16-JAN      / 1:  26.91
- 15-FEB      / 2:  27.39
- 17-MAR      / 3:  27.85
- 
-! But samplexy doesn't find it.
-! Previously the last column was all-missing.
-list samplexy(sst,{160,180,-20},{0,0,0})
-             VARIABLE : SAMPLEXY(SST,{160,180,-20},{0,0,0})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 by 3 points (X-TIME)
-                     1      2      3    
-                     1      2      3
- 16-JAN      / 1:  29.09  28.36  26.90
- 15-FEB      / 2:  29.09  28.38  27.42
- 17-MAR      / 3:  29.01  28.00  27.87
- 
-! Check that we get data back at the edges of the longitude axis
-list  samplexy(sst,{21,379},{-41,-41})
-             VARIABLE : SAMPLEXY(SST,{21,379},{-41,-41})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 2 by 3 points (X-TIME)
-                     1      2    
-                     1      2
- 16-JAN      / 1:  16.45  18.15
- 15-FEB      / 2:  17.85  17.90
- 17-MAR      / 3:  17.19  17.11
- 
-! Check samplexyt
-let t1 = `t[gt=sst,L=1]`
- !-> DEFINE VARIABLE t1 = 366
-list samplexyt(sst,{160,180,-20},{0,0,0},{`t1`,`t1`,`t1`})
- !-> list samplexyt(sst,{160,180,-20},{0,0,0},{366,366,366})
-             VARIABLE : SAMPLEXYT(SST,{160,180,-20},{0,0,0},{366,366,366})
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 points (X)
- 1   / 1:  29.09
- 2   / 2:  28.36
- 3   / 3:  26.90
- 
- 
- 
- 
-GO bn_reset
-cancel mode verify
-GO err672_varnames
-! err672_varnames.jnl
-! ticket 1938
-!
-! We can define variable names that match operators,
-! but not use them.
-!   yes? let ne = 5
-!   yes? list ne
-! previously the LET command was allowed but an error on the
-! LIST, (unless we do list 'NE'). Just disallow those names
-! to begin with, in xeq_define. Using these names now returns error
-! AND OR GT GE LT LE EQ NE, also IF and ELSE.
- 
-SET MODE IGNORE
- 
-LET AND = 5
-LET OR = 5
-LET GT = 5
-LET GE = 5
-LET LT = 5
-LET LE = 5
-LET EQ = 5
-LET NE = 5
-LET IF  = 5
-LET ELSE = 5
- 
-CAN MODE IGNORE
- 
-GO bn_reset
-cancel mode verify
-GO err672_dset_cx
-! err672_dset_cx.jnl
-! Ticket 1951: The dataset specified in list x[gx=a[d=1,i=1:3]] is not applied.
-!
- 
-let a = x[gx=0:2:1]; save/clob/file=a1.nc a
-sho grid/x a
-    GRID (G091)
- name       axis              # pts   start                end
- (AX129)   X                    3 r   0                    2
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
- 
-       I     X                   XBOX      XBOXLO
-       1>  0                     1          -0.5
-       2>  1                     1          0.5
-       3>  2                     1          1.5
- 
-let a = x[gx=1:3:1]; save/clob/file=a2.nc a
-sho grid/x a
-    GRID (G091)
- name       axis              # pts   start                end
- (AX127)   X                    3 r   1                    3
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
- 
-       I     X                   XBOX      XBOXLO
-       1>  1                     1          0.5
-       2>  2                     1          1.5
-       3>  3                     1          2.5
- 
-can var/all; can dat/all
- 
-! It's already strange that the first axis is named AX002 and the second AX001,
-! but oh well. Let's use the first dataset, and list the axis values in two ways
-! that give identical answers. No problem here.
- 
-use a1
-list x[gx=a[d=1]]
-             VARIABLE : X
-                        axis AX129
-             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
-             SUBSET   : 3 points (X)
- 0   / 1:  0.000
- 1   / 2:  1.000
- 2   / 3:  2.000
- 
-! Next we use the second dataset, and repeat the exact same commands as above --
-! note that we are again listing the variables from the first dataset, not the
-! second one. Our results shouldn't have changed, since they explicitly refer to
-! dataset 1 -- but one of them does change!
- 
-use a2
- 
-list x[gx=a[d=1]]
-             VARIABLE : X
-                        axis AX129
-             SUBSET   : 3 points (X)
- 0   / 1:  0.000
- 1   / 2:  1.000
- 2   / 3:  2.000
- 
-! 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
-             SUBSET   : 3 points (X)
- 0   / 1:  0.000
- 1   / 2:  1.000
- 2   / 3:  2.000
- 
-! The second LIST has somehow associated variable A from the first file
-! with AX001 from the second file!
-!
-! The only thing that the second USE should have changed about Ferret's state,
-! was that it brought a new dataset into memory and made it the default. Why should
-! that have affected the second evaluation of the variable from dataset 1?
- 
-! Why is the following different?
-list x[gx=a[d=1],i=1:3]
-             VARIABLE : X
-                        axis AX129
-             SUBSET   : 3 points (X)
- 0   / 1:  0.000
- 1   / 2:  1.000
- 2   / 3:  2.000
- 
-GO bn_reset
-cancel mode verify
-GO bn_ifv
-! bn_ifv.jnl
-! test IFV IfValid masking for a variety of combos
- 
- 
- 
-! operators
-CANCEL REGION
-SET REGION/I=1:5/J=1:5
- 
-! IF, THEN, ELSE
-LIST/ORDER=X  IFV I GT 3 THEN I
-             VARIABLE : IFV I GT 3 THEN I
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-           ....   ....   ....  4.000  5.000
-LIST/ORDER=X  IFV I GT 3 THEN I ELSE 0
-             VARIABLE : IFV I GT 3 THEN I ELSE 0
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-          0.000  0.000  0.000  4.000  5.000
-! error: nested IFV tests
-SET MODE IGNORE_ERRORS
-LIST/ORDER=X  IFV I GT 3 THEN ( IFV I LT 5 THEN I ELSE -9 ) ELSE .333	! err
-LET A = ifv I LT 5 THEN I ELSE -9					! err
-SET MODE/LAST IGNORE_ERRORS
-LET A = ifv I LT 5 THEN I ELSE (-9)
-LIST/ORDER=X  IFV I GT 3 THEN ( A ) ELSE .333
-             VARIABLE : IFV I GT 3 THEN ( A ) ELSE .333
-             SUBSET   : 5 points (X)
-            1      2      3      4      5    
-            1      2      3      4      5
-          0.333  0.333  0.333  4.000 -9.000
-CANCEL REGION
- 
-LET r =  {1,2,0,1,,3,4,5,0,,1}
-LIST r, IF r THEN 1, IFV r THEN 1, IF r THEN 1 ELSE 2, IFV r THEN 1 ELSE 2
-             X: 0.5 to 11.5
- Column  1: R is {1,2,0,1,,3,4,5,0,,1}
- Column  2: EX#2 is IF R THEN 1
- Column  3: EX#3 is IFV R THEN 1
- Column  4: EX#4 is IF R THEN 1 ELSE 2
- Column  5: EX#5 is IFV R THEN 1 ELSE 2
-               R   EX#2   EX#3   EX#4   EX#5
-1    /  1:  1.000  1.000  1.000  1.000  1.000
-2    /  2:  2.000  1.000  1.000  1.000  1.000
-3    /  3:  0.000   ....  1.000  2.000  1.000
-4    /  4:  1.000  1.000  1.000  1.000  1.000
-5    /  5:   ....   ....   ....  2.000  2.000
-6    /  6:  3.000  1.000  1.000  1.000  1.000
-7    /  7:  4.000  1.000  1.000  1.000  1.000
-8    /  8:  5.000  1.000  1.000  1.000  1.000
-9    /  9:  0.000   ....  1.000  2.000  1.000
-10   / 10:   ....   ....   ....  2.000  2.000
-11   / 11:  1.000  1.000  1.000  1.000  1.000
- 
-! Mask with data that has integer values including zero,
-USE coads_climatology
-SET REG/L=1
-LET intvar = INT(sst/5)
- 
-SET VIEW ul
-SHADE IF intvar THEN 1
-STAT IF intvar THEN 1
- 
-             IF INTVAR THEN 1
-             LONGITUDE: 20E to 20E(380)
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: 16-JAN 06:00
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 16200 (180*90*1*1*1*1)
- # flagged as bad  data: 8780
- Minimum value: 1
- Maximum value: 1
- Mean    value: 1 (unweighted average)
- Standard deviation: 0
- 
-SET VIEW ur
-SHADE IFV intvar THEN 1
-STAT IFV intvar THEN 1
- 
-             IFV INTVAR THEN 1
-             LONGITUDE: 20E to 20E(380)
-             LATITUDE: 90S to 90N
-             Z:  N/A
-             TIME: 16-JAN 06:00
-             E:  N/A
-             F:  N/A
-             DATA SET: ./coads_climatology.cdf
- 
- Total # of data points: 16200 (180*90*1*1*1*1)
- # flagged as bad  data: 6694
- Minimum value: 1
- Maximum value: 1
- Mean    value: 1 (unweighted average)
- Standard deviation: 0
- 
-! IFV on string arguments behaves just like IF.
- 
-LET a = {"x","y"}
-LET b = IF a EQ "x" THEN "z" ELSE a
-LIST b
-             VARIABLE : IF A EQ "x" THEN "z" ELSE A
-             SUBSET   : 2 points (X)
- 1   / 1:"z"
- 2   / 2:"y"
-LET b = IFV a EQ "x" THEN "z" ELSE a
-LIST b
-             VARIABLE : IFV A EQ "x" THEN "z" ELSE A
-             SUBSET   : 2 points (X)
- 1   / 1:"z"
- 2   / 2:"y"
- 
- 
-let strings = {"a","b",}
-list IF strings EQ "a" THEN "" ELSE strings
-             VARIABLE : IF STRINGS EQ "a" THEN "" ELSE STRINGS
-             SUBSET   : 3 points (X)
- 1   / 1:"" 
- 2   / 2:"b"
- 3   / 3:"" 
- 
-let strings = {"a","b",}
-list IFV strings EQ "a" THEN "" ELSE strings
-             VARIABLE : IFV STRINGS EQ "a" THEN "" ELSE STRINGS
-             SUBSET   : 3 points (X)
- 1   / 1:"" 
- 2   / 2:"b"
- 3   / 3:"" 
- 
-GO bn_reset
-cancel mode verify
-GO bn_randu2_randn2
-! Test randu2 and randn2 with newer random-number algorithm.
-! 9/2011 acm
-! Note that most of these results will differe from one
-! run of the benchmarks to the next.
- 
-let xbig = x[i=1:20000:1]
-let xx = x[i=1:6:1]
- 
-! RANDU2 with seed init via system clock. These should be different
-! load the variable to make sure some time has passed on the clock.
- 
-! ******** This result may differ with each run of the benchmark scripts
-load randu2(xbig,-1)
-list/i=1:5 randu2(xbig,-1)
-             VARIABLE : RANDU2(XBIG,-1)
-             SUBSET   : 5 points (X)
- 1   / 1:  0.4663
- 2   / 2:  0.1828
- 3   / 3:  0.6104
- 4   / 4:  0.4529
- 5   / 5:  0.7002
-can mem
-list/i=1:5 randu2(xbig,-1)
-             VARIABLE : RANDU2(XBIG,-1)
-             SUBSET   : 5 points (X)
- 1   / 1:  0.0709
- 2   / 2:  0.1771
- 3   / 3:  0.1118
- 4   / 4:  0.6788
- 5   / 5:  0.5445
- 
-! ******** This result may differ with each run of the benchmark scripts
-! RANDU2 with 0 seed to continue from previous seed. These should be different
-list randu2(xx,0)
-             VARIABLE : RANDU2(XX,0)
-             SUBSET   : 6 points (X)
- 1   / 1:  0.6885
- 2   / 2:  0.4732
- 3   / 3:  0.0327
- 4   / 4:  0.6587
- 5   / 5:  0.4896
- 6   / 6:  0.8972
-can mem
-list randu2(xx,0)
-             VARIABLE : RANDU2(XX,0)
-             SUBSET   : 6 points (X)
- 1   / 1:  0.0823
- 2   / 2:  0.7589
- 3   / 3:  0.4554
- 4   / 4:  0.3671
- 5   / 5:  0.8057
- 6   / 6:  0.8830
- 
-! ******** This result should be consistent with each run of the benchmark scripts
-! RANDU2 with user-set seed. These should be duplicates
-list randu2(xx,12436)
-             VARIABLE : RANDU2(XX,12436)
-             SUBSET   : 6 points (X)
- 1   / 1:  0.3018
- 2   / 2:  0.3804
- 3   / 3:  0.9263
- 4   / 4:  0.6721
- 5   / 5:  0.2378
- 6   / 6:  0.6382
-can mem
-list randu2(xx,12436)
-             VARIABLE : RANDU2(XX,12436)
-             SUBSET   : 6 points (X)
- 1   / 1:  0.3018
- 2   / 2:  0.3804
- 3   / 3:  0.9263
- 4   / 4:  0.6721
- 5   / 5:  0.2378
- 6   / 6:  0.6382
- 
-!same tests with RANDN2
- 
-! ******** This result may differ with each run of the benchmark scripts
-! RANDN2 with clock-set seed. These should be different
-load randn2(xbig,-1)
-list/i=1:5 randn2(xbig,-1)
-             VARIABLE : RANDN2(XBIG,-1)
-             SUBSET   : 5 points (X)
- 1   / 1: -0.741
- 2   / 2:  0.428
- 3   / 3:  1.838
- 4   / 4:  0.479
- 5   / 5: -0.373
-can mem
-list/i=1:5 randn2(xbig,-1)
-             VARIABLE : RANDN2(XBIG,-1)
-             SUBSET   : 5 points (X)
- 1   / 1: -0.943
- 2   / 2: -0.215
- 3   / 3: -0.480
- 4   / 4: -2.073
- 5   / 5: -0.060
- 
-! ******** This result may differ with each run of the benchmark scripts
-! RANDN2 with 0 seed to continue from previous seed. These should be different
-list randn2(xx,0)
-             VARIABLE : RANDN2(XX,0)
-             SUBSET   : 6 points (X)
- 1   / 1: -0.661
- 2   / 2: -0.984
- 3   / 3:  0.570
- 4   / 4: -1.507
- 5   / 5: -0.067
- 6   / 6: -0.070
-can mem
-list randn2(xx,0)
-             VARIABLE : RANDN2(XX,0)
-             SUBSET   : 6 points (X)
- 1   / 1: -0.813
- 2   / 2: -1.045
- 3   / 3:  0.416
- 4   / 4: -0.976
- 5   / 5:  0.653
- 6   / 6: -1.640
- 
-! ******** This result should be consistent with each run of the benchmark scripts
-! RANDN2 with user-set seed. These should be duplicates
-list randn2(xx,12436)
-             VARIABLE : RANDN2(XX,12436)
-             SUBSET   : 6 points (X)
- 1   / 1: -0.906
- 2   / 2: -1.503
- 3   / 3:  0.217
- 4   / 4:  0.537
- 5   / 5:  0.674
- 6   / 6: -1.279
-can mem
-list randn2(xx,12436)
-             VARIABLE : RANDN2(XX,12436)
-             SUBSET   : 6 points (X)
- 1   / 1: -0.906
- 2   / 2: -1.503
- 3   / 3:  0.217
- 4   / 4:  0.537
- 5   / 5:  0.674
- 6   / 6: -1.279
- 
-! A test from the median-smoothing benchmark
- 
-! ******** This result may differ with each run of the benchmark scripts
-define axis/z=0:1000:20/depth zax
-let var2 = cos(z[gz=zax]/30) + randu2(1+k[gz=zax],-1)
-plot/trans var2, var2[z=@med:3], var2[z=@med:9]
-list/z=1:140 var2, var2[z=@med:3], var2[z=@med:9]
-             Z: 1 to 140
- Column  1: VAR2 is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1)
- Column  2: VAR2[Z=@MED:3] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 3 pts on Z)
- Column  3: VAR2[Z=@MED:9] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 9 pts on Z)
-            VAR2   VAR2    VAR2
-0     / 1:  1.138  1.138  0.4152
-20    / 2:  0.794  0.794  0.4152
-40    / 3:  0.415  0.415  0.2777
-60    / 4:  0.278  0.278  0.2777
-80    / 5: -0.274 -0.135  0.2777
-100   / 6: -0.135 -0.274  0.2777
-120   / 7: -0.517 -0.135  0.2777
-140   / 8:  0.223  0.223  0.2777
- 
-! ******** This result may differ with each run of the benchmark scripts
-! one for randn2
-LET xpts = 180 + 50*COS(2*3.14*I[I=1:50]/60)
-LET ypts = 15  + 20*SIN(2*3.14*I[I=1:50]/60)
-LET sst = 25 - ypts + RANDN2(ypts,-1)
-plot/vs xpts,ypts
-GO polymark POLYGON/KEY/LEV=v xpts,ypts,sst,star
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_axis_cf
-! Ticket 1792: Write axes with CF-compliant units
-! and with standard name attributes for geophysical attrs.
- 
- 
-define axis/x=-10:10:2/units="deg" xax
-let xx = x[gx=xax]
-save/clobber/file=a.nc xx
- 
-define axis/y=1:15:3/units="degrees" yax
-let yy = y[gy=yax]
-save/append/file=a.nc yy
- 
-define axis/t="1-jan-2001":"5-jan-2001":1/units="DAYS"/t0="1-jan-2000" taxis
-let tt = t[gt=taxis]
-save/append/file=a.nc tt
- 
-define axis/z/depth/units="meters" zaxdn = {0,10,40,100}
-let zdn = z[gz=zaxdn]
-save/append/file=a.nc zdn
- 
-define axis/z/units="meters" zaxup = {0,10,40,100,200}
-let zup = z[gz=zaxup]
-save/append/file=a.nc zup
- 
-sp echo "bn_axis_cf.jnl, degrees_east, degrees_north, std names on axes:" >> all_ncdump.out
-sp ncdump -h a.nc >> all_ncdump.out
- 
-! If the axis is defined in a file or the command line as
-! having units of "degrees" in any of its forms, write units
-! as the cf-compliant "degrees_east" or "degrees_north"
-! Previously these would have been saved as "DEGREES" and "DEG"
- 
-use degrees
-sh att/all (`var,return=xaxis`)
- !-> sh att/all (XAXIS)
-     attributes for dataset: ./degrees.nc
- (XAXIS).units = degrees_east 
- (XAXIS).point_spacing = even 
- (XAXIS).axis = X 
- (XAXIS).modulo = 360
- (XAXIS).orig_file_axname = XAXIS 
-save/clobber/file=a.nc var
- 
-define axis/units="DEG"/y=-90:90:15 yfifteen
-save/append/file=a.nc y[gy=yfifteen]
- 
-sp echo "bn_axis_cf.jnl, Convert forms of DEG, degrees to degrees_east:" >> all_ncdump.out
-sp ncdump -h a.nc >> all_ncdump.out
- 
-! This dataset has time units of "DAYS since ..."
-! On output, downcase the units string.
- 
-use bn_strides
-sh att/all (TTIME)
-     attributes for dataset: ./bn_strides.cdf
- (TTIME).units = DAYS since 1901-01-15 00:00:00 
- (TTIME).time_origin = 15-JAN-1901 
- (TTIME).point_spacing = even 
- (TTIME).orig_file_axname = TTIME 
-save/clobber/file=a.nc xytvar
- 
-sp echo "bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since" >> all_ncdump.out
-sp ncdump -h a.nc >> all_ncdump.out
- 
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_repeated_coords
-! Test the use of micro-adjusting on NetCDF read
-! when coordinates are repeated.
-! See ticket 1910
- 
-! Axis has repeated coordinate values.
- 
-use repeat_t_coord.nc
-show grid a
-    GRID GKT1
- name       axis              # pts   start                end
- normal    X
- normal    Y
- normal    Z
- TMIN      TIME                71 i   01-JAN-2001 00:00    01-JAN-2001 01:10
- normal    E
- normal    F
-show axis tmin
- name       axis              # pts   start                end
- TMIN      TIME                71 i   01-JAN-2001 00:00    01-JAN-2001 01:10
-T0 = 15-JAN-1901 00:00:00
-   Axis span (to cell edges) = 71
-list a[L=1:71:10]
-             VARIABLE : SIN(L[GT=TMIN]/30)
-                        regrid: on T
-             FILENAME : repeat_t_coord.nc
-             SUBSET   : 8 points (TIME)
- 01-JAN-2001 00:00:00 / 1:  0.0333
- 01-JAN-2001 00:10:00 / 2:  0.3585
- 01-JAN-2001 00:20:00 / 3:  0.6442
- 01-JAN-2001 00:30:00 / 4:  0.8590
- 01-JAN-2001 00:40:00 / 5:  0.9792
- 01-JAN-2001 00:50:00 / 6:  0.9917
- 01-JAN-2001 01:00:00 / 7:  0.8949
- 01-JAN-2001 01:10:00 / 8:  0.6997
- 
-! Previous behavior is retained with qualifier /STRICT
-! The listing of variable aa here is identical to what is just above.
-can dat/all
- 
-use/strict repeat_t_coord.nc
-show grid a
-    GRID GKT1
- name       axis              # pts   start                end
- normal    X
- normal    Y
- normal    Z
- TMIN      T                   71 r   1                    71
- normal    E
- normal    F
-show axis tmin
- name       axis              # pts   start                end
- TMIN      T                   71 r   1                    71
-T0 = %%
-   Axis span (to cell edges) = 71
- 
-define axis/t/t0=15-jan-1901/units=minute tnew = tmin
-let aa = RESHAPE(a, t[gt=tnew])
-list aa[L=1:71:10]
-             VARIABLE : RESHAPE(A, T[GT=TNEW])
-                        regrid: on T
-             FILENAME : repeat_t_coord.nc
-             SUBSET   : 8 points (TIME)
- 01-JAN-2001 00:00:00 / 1:  0.0333
- 01-JAN-2001 00:10:00 / 2:  0.3585
- 01-JAN-2001 00:20:00 / 3:  0.6442
- 01-JAN-2001 00:30:00 / 4:  0.8590
- 01-JAN-2001 00:40:00 / 5:  0.9792
- 01-JAN-2001 00:50:00 / 6:  0.9917
- 01-JAN-2001 01:00:00 / 7:  0.8949
- 01-JAN-2001 01:10:00 / 8:  0.6997
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_xml_header
-! bn_xml_header.jnl
-! run the exact script that LAS uses to make XML header files
- 
-go xml_header_script.jnl xml_use_coads.jnl xml_out.xml
-!header.jnl
-! argument 1 is a script that opens the dataset
-! argument 2 is the name of the xml file to write
-! Requires Ferret v6.5 or higher
- 
-! This is the header.jnl script from LAS; comment out can mode verify
-! Ferret v685, show/data/var/xml includes the output of show axis, so remove that.
- 
-! cancel mode verify
-IF `($ferret_version) LT 6.5` THEN
- !-> IF 0 THEN
-ENDIF
- 
-go "$1"
- !-> go "xml_use_coads.jnl"
-use coads_climatology
- 
-DEFINE SYMBOL output_xml_file = $2
- !-> DEFINE SYMBOL output_xml_file = xml_out.xml
- 
-say/quiet/outfile="($output_xml_file)"/clobber <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
- !-> MESSAGE/CONTINUE/quiet/outfile="xml_out.xml"/clobber <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
-say/quiet/outfile="($output_xml_file)"/append <data>
- !-> MESSAGE/CONTINUE/quiet/outfile="xml_out.xml"/append <data>
- 
-show data/var/xml/append/outfile="($output_xml_file)" 1
- !-> show data/var/xml/append/outfile="xml_out.xml" 1
-say/quiet/append/outfile="($output_xml_file)" </data>
- !-> MESSAGE/CONTINUE/quiet/append/outfile="xml_out.xml" </data>
-sp cat xml_out.xml
-<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
-<data>
-<datasets>
-<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>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>
-</data>
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_eof_simple
-! bn_eof_simple
-! Define a simple function with two known functions.
-! decompose with EOFs.
-! 7/2012
-! In version 6.8 (double precision), the old eof functions are not available
-! Run the script calling eofsvd functions and exit, leaving old eof function calls.
- 
- 
-! Define two locations.
-def axis /X=1:2:1 xaxis
-def axis /Y=1:1:1 yaxis
- 
-! Thinking of the time axis as number of months.
-def axis /T=0.0:59.75:0.25 taxis
-def grid /X=xaxis /Y=yaxis /T=taxis xytgrid
-set grid xytgrid
- 
-! Make standing waves with a period of 12 months.
-let cosT = cos(T * 3.141592653589793 / 6.0)
-let sinT = sin(T * 3.141592653589793 / 6.0)
- 
-! Put a standing wave at each location.
-! The two waves are orthonormal and zero-mean over time.
-let spacetime = if (i eq 1) then cosT else sinT + 1
-show grid spacetime
-    GRID XYTGRID
- name       axis              # pts   start                end
- XAXIS     X                    2 r   1                    2
- YAXIS     Y                    1 r   1                    1
- normal    Z
- TAXIS     T                  240 r   0                    59.75
- normal    E
- normal    F
- 
-show func eofsvd_stat
-EOFSVD_STAT(A)
-    SVD EOF statistics from XYT field. j=1:#EOFs, j=2:%variation, j=3:eigenvalues
-    A: Variable in x,y,t; may be fcn of z,e,f
-! Run each of the eof functions and show the results.
-! Both are equally significant.  Eigenvalues should be 0.5.
-! Other EOF descriptions do not divide the covariance
-! matrix by the number of time values, in which case the
-! the eigenvalues will be much larger, but still equal
-! to each other.
-list eofsvd_stat(spacetime)
-             VARIABLE : EOFSVD_STAT(SPACETIME)
-             SUBSET   : 2 by 3 points (X-Y)
-             1      2    
-             1      2
- 1   / 1:   2.00   2.00
- 2   / 2:  50.00  50.00
- 3   / 3:   0.50   0.50
- 
-show func eofsvd_space
-EOFSVD_SPACE(A)
-    Return SVD EOF spacial fields from XYT field
-    A: Variable in x,y,t; may be fcn of z,e,f
-! Ideally the vectors (0.0, sqrt(0.5)) and (sqrt(0.5), 0.0),
-! but might be mixed by rotation.
-! This is if the EOF functions are in units of the original data,
-! thus the eigenvectors times the square-root of the eigenvalue.
-! EOF vectors are always orthogonal to each other.
-list eofsvd_space(spacetime)
-             VARIABLE : EOFSVD_SPACE(SPACETIME)
-             SUBSET   : 2 by 2 points (X-T)
-             1       2     
-              1       2
- 1   / 1: -0.0294  0.7065
- 2   / 2:  0.7065  0.0294
- 
-show func eofsvd_tfunc
-EOFSVD_TFUNC(A)
-    Return SVD EOF time functions from XYT field.
-    A: Variable in x,y,t; may be fcn of z,e,f
-! Ideally sqrt(2.0) * (cosT, sinT), but may be mixed by rotation.
-! TAF vectors are always orthogonal to each other.
-list eofsvd_tfunc(spacetime)
-             VARIABLE : EOFSVD_TFUNC(SPACETIME)
-             SUBSET   : 2 by 240 points (X-T)
-                 1      2    
-                 1      2
- 0     /   1: -0.059  1.413
- 0.25  /   2:  0.126  1.409
- 0.5   /   3:  0.309  1.380
- 0.75  /   4:  0.486  1.328
- 1     /   5:  0.655  1.253
- 1.25  /   6:  0.813  1.157
- 1.5   /   7:  0.957  1.041
- 1.75  /   8:  1.085  0.907
- 2     /   9:  1.194  0.757
- 2.25  /  10:  1.283  0.595
- 2.5   /  11:  1.350  0.423
- 2.75  /  12:  1.393  0.243
- 3     /  13:  1.413  0.059
- 3.25  /  14:  1.409 -0.126
- 3.5   /  15:  1.380 -0.309
- 3.75  /  16:  1.328 -0.486
- 4     /  17:  1.253 -0.655
- 4.25  /  18:  1.157 -0.813
- 4.5   /  19:  1.041 -0.957
- 4.75  /  20:  0.907 -1.085
- 5     /  21:  0.757 -1.194
- 5.25  /  22:  0.595 -1.283
- 5.5   /  23:  0.423 -1.350
- 5.75  /  24:  0.243 -1.393
- 6     /  25:  0.059 -1.413
- 6.25  /  26: -0.126 -1.409
- 6.5   /  27: -0.309 -1.380
- 6.75  /  28: -0.486 -1.328
- 7     /  29: -0.655 -1.253
- 7.25  /  30: -0.813 -1.157
- 7.5   /  31: -0.957 -1.041
- 7.75  /  32: -1.085 -0.907
- 8     /  33: -1.194 -0.757
- 8.25  /  34: -1.283 -0.595
- 8.5   /  35: -1.350 -0.423
- 8.75  /  36: -1.393 -0.243
- 9     /  37: -1.413 -0.059
- 9.25  /  38: -1.409  0.126
- 9.5   /  39: -1.380  0.309
- 9.75  /  40: -1.328  0.486
- 10    /  41: -1.253  0.655
- 10.25 /  42: -1.157  0.813
- 10.5  /  43: -1.041  0.957
- 10.75 /  44: -0.907  1.085
- 11    /  45: -0.757  1.194
- 11.25 /  46: -0.595  1.283
- 11.5  /  47: -0.423  1.350
- 11.75 /  48: -0.243  1.393
- 12    /  49: -0.059  1.413
- 12.25 /  50:  0.126  1.409
- 12.5  /  51:  0.309  1.380
- 12.75 /  52:  0.486  1.328
- 13    /  53:  0.655  1.253
- 13.25 /  54:  0.813  1.157
- 13.5  /  55:  0.957  1.041
- 13.75 /  56:  1.085  0.907
- 14    /  57:  1.194  0.757
- 14.25 /  58:  1.283  0.595
- 14.5  /  59:  1.350  0.423
- 14.75 /  60:  1.393  0.243
- 15    /  61:  1.413  0.059
- 15.25 /  62:  1.409 -0.126
- 15.5  /  63:  1.380 -0.309
- 15.75 /  64:  1.328 -0.486
- 16    /  65:  1.253 -0.655
- 16.25 /  66:  1.157 -0.813
- 16.5  /  67:  1.041 -0.957
- 16.75 /  68:  0.907 -1.085
- 17    /  69:  0.757 -1.194
- 17.25 /  70:  0.595 -1.283
- 17.5  /  71:  0.423 -1.350
- 17.75 /  72:  0.243 -1.393
- 18    /  73:  0.059 -1.413
- 18.25 /  74: -0.126 -1.409
- 18.5  /  75: -0.309 -1.380
- 18.75 /  76: -0.486 -1.328
- 19    /  77: -0.655 -1.253
- 19.25 /  78: -0.813 -1.157
- 19.5  /  79: -0.957 -1.041
- 19.75 /  80: -1.085 -0.907
- 20    /  81: -1.194 -0.757
- 20.25 /  82: -1.283 -0.595
- 20.5  /  83: -1.350 -0.423
- 20.75 /  84: -1.393 -0.243
- 21    /  85: -1.413 -0.059
- 21.25 /  86: -1.409  0.126
- 21.5  /  87: -1.380  0.309
- 21.75 /  88: -1.328  0.486
- 22    /  89: -1.253  0.655
- 22.25 /  90: -1.157  0.813
- 22.5  /  91: -1.041  0.957
- 22.75 /  92: -0.907  1.085
- 23    /  93: -0.757  1.194
- 23.25 /  94: -0.595  1.283
- 23.5  /  95: -0.423  1.350
- 23.75 /  96: -0.243  1.393
- 24    /  97: -0.059  1.413
- 24.25 /  98:  0.126  1.409
- 24.5  /  99:  0.309  1.380
- 24.75 / 100:  0.486  1.328
- 25    / 101:  0.655  1.253
- 25.25 / 102:  0.813  1.157
- 25.5  / 103:  0.957  1.041
- 25.75 / 104:  1.085  0.907
- 26    / 105:  1.194  0.757
- 26.25 / 106:  1.283  0.595
- 26.5  / 107:  1.350  0.423
- 26.75 / 108:  1.393  0.243
- 27    / 109:  1.413  0.059
- 27.25 / 110:  1.409 -0.126
- 27.5  / 111:  1.380 -0.309
- 27.75 / 112:  1.328 -0.486
- 28    / 113:  1.253 -0.655
- 28.25 / 114:  1.157 -0.813
- 28.5  / 115:  1.041 -0.957
- 28.75 / 116:  0.907 -1.085
- 29    / 117:  0.757 -1.194
- 29.25 / 118:  0.595 -1.283
- 29.5  / 119:  0.423 -1.350
- 29.75 / 120:  0.243 -1.393
- 30    / 121:  0.059 -1.413
- 30.25 / 122: -0.126 -1.409
- 30.5  / 123: -0.309 -1.380
- 30.75 / 124: -0.486 -1.328
- 31    / 125: -0.655 -1.253
- 31.25 / 126: -0.813 -1.157
- 31.5  / 127: -0.957 -1.041
- 31.75 / 128: -1.085 -0.907
- 32    / 129: -1.194 -0.757
- 32.25 / 130: -1.283 -0.595
- 32.5  / 131: -1.350 -0.423
- 32.75 / 132: -1.393 -0.243
- 33    / 133: -1.413 -0.059
- 33.25 / 134: -1.409  0.126
- 33.5  / 135: -1.380  0.309
- 33.75 / 136: -1.328  0.486
- 34    / 137: -1.253  0.655
- 34.25 / 138: -1.157  0.813
- 34.5  / 139: -1.041  0.957
- 34.75 / 140: -0.907  1.085
- 35    / 141: -0.757  1.194
- 35.25 / 142: -0.595  1.283
- 35.5  / 143: -0.423  1.350
- 35.75 / 144: -0.243  1.393
- 36    / 145: -0.059  1.413
- 36.25 / 146:  0.126  1.409
- 36.5  / 147:  0.309  1.380
- 36.75 / 148:  0.486  1.328
- 37    / 149:  0.655  1.253
- 37.25 / 150:  0.813  1.157
- 37.5  / 151:  0.957  1.041
- 37.75 / 152:  1.085  0.907
- 38    / 153:  1.194  0.757
- 38.25 / 154:  1.283  0.595
- 38.5  / 155:  1.350  0.423
- 38.75 / 156:  1.393  0.243
- 39    / 157:  1.413  0.059
- 39.25 / 158:  1.409 -0.126
- 39.5  / 159:  1.380 -0.309
- 39.75 / 160:  1.328 -0.486
- 40    / 161:  1.253 -0.655
- 40.25 / 162:  1.157 -0.813
- 40.5  / 163:  1.041 -0.957
- 40.75 / 164:  0.907 -1.085
- 41    / 165:  0.757 -1.194
- 41.25 / 166:  0.595 -1.283
- 41.5  / 167:  0.423 -1.350
- 41.75 / 168:  0.243 -1.393
- 42    / 169:  0.059 -1.413
- 42.25 / 170: -0.126 -1.409
- 42.5  / 171: -0.309 -1.380
- 42.75 / 172: -0.486 -1.328
- 43    / 173: -0.655 -1.253
- 43.25 / 174: -0.813 -1.157
- 43.5  / 175: -0.957 -1.041
- 43.75 / 176: -1.085 -0.907
- 44    / 177: -1.194 -0.757
- 44.25 / 178: -1.283 -0.595
- 44.5  / 179: -1.350 -0.423
- 44.75 / 180: -1.393 -0.243
- 45    / 181: -1.413 -0.059
- 45.25 / 182: -1.409  0.126
- 45.5  / 183: -1.380  0.309
- 45.75 / 184: -1.328  0.486
- 46    / 185: -1.253  0.655
- 46.25 / 186: -1.157  0.813
- 46.5  / 187: -1.041  0.957
- 46.75 / 188: -0.907  1.085
- 47    / 189: -0.757  1.194
- 47.25 / 190: -0.595  1.283
- 47.5  / 191: -0.423  1.350
- 47.75 / 192: -0.243  1.393
- 48    / 193: -0.059  1.413
- 48.25 / 194:  0.126  1.409
- 48.5  / 195:  0.309  1.380
- 48.75 / 196:  0.486  1.328
- 49    / 197:  0.655  1.253
- 49.25 / 198:  0.813  1.157
- 49.5  / 199:  0.957  1.041
- 49.75 / 200:  1.085  0.907
- 50    / 201:  1.194  0.757
- 50.25 / 202:  1.283  0.595
- 50.5  / 203:  1.350  0.423
- 50.75 / 204:  1.393  0.243
- 51    / 205:  1.413  0.059
- 51.25 / 206:  1.409 -0.126
- 51.5  / 207:  1.380 -0.309
- 51.75 / 208:  1.328 -0.486
- 52    / 209:  1.253 -0.655
- 52.25 / 210:  1.157 -0.813
- 52.5  / 211:  1.041 -0.957
- 52.75 / 212:  0.907 -1.085
- 53    / 213:  0.757 -1.194
- 53.25 / 214:  0.595 -1.283
- 53.5  / 215:  0.423 -1.350
- 53.75 / 216:  0.243 -1.393
- 54    / 217:  0.059 -1.413
- 54.25 / 218: -0.126 -1.409
- 54.5  / 219: -0.309 -1.380
- 54.75 / 220: -0.486 -1.328
- 55    / 221: -0.655 -1.253
- 55.25 / 222: -0.813 -1.157
- 55.5  / 223: -0.957 -1.041
- 55.75 / 224: -1.085 -0.907
- 56    / 225: -1.194 -0.757
- 56.25 / 226: -1.283 -0.595
- 56.5  / 227: -1.350 -0.423
- 56.75 / 228: -1.393 -0.243
- 57    / 229: -1.413 -0.059
- 57.25 / 230: -1.409  0.126
- 57.5  / 231: -1.380  0.309
- 57.75 / 232: -1.328  0.486
- 58    / 233: -1.253  0.655
- 58.25 / 234: -1.157  0.813
- 58.5  / 235: -1.041  0.957
- 58.75 / 236: -0.907  1.085
- 59    / 237: -0.757  1.194
- 59.25 / 238: -0.595  1.283
- 59.5  / 239: -0.423  1.350
- 59.75 / 240: -0.243  1.393
- 
-! The sum over all significant EOFs of the outer product of
-! EOF(i) and TAF(i) should return the zero-time-meaned data
-! (original data with the time-series mean subtracted to give
-! a zero mean for each time series).
-! In this case, EOF(1) o TAF(1) + EOF(2) o TAF(2) = (cosT, sinT)
- 
-! Missing-data cases
-!
-! If there are locations where the timeseries is all missing or incomplete
-! (as in a dataset where missing data represents land), return a result
-! based only locations with complete timeseries.
- 
-def axis /X=1:3:1 xaxis
-let spacetime = if (i eq 1) then cosT else sinT + 1
-let space12 = if i ne 3 then spacetime
- 
-list eofsvd_stat(space12)
-             VARIABLE : EOFSVD_STAT(SPACE12)
-             SUBSET   : 3 by 3 points (X-Y)
-             1      2      3    
-             1      2      3
- 1   / 1:   2.00   2.00   2.00
- 2   / 2:  50.00  50.00   0.00
- 3   / 3:   0.50   0.50   0.00
-list eofsvd_space(space12)
-             VARIABLE : EOFSVD_SPACE(SPACE12)
-             SUBSET   : 3 by 3 points (X-T)
-             1       2       3     
-              1       2       3
- 1   / 1: -0.0294  0.7065    ....
- 2   / 2:  0.7065  0.0294    ....
- 3   / 3:    ....    ....    ....
-list eofsvd_tfunc(space12)
-             VARIABLE : EOFSVD_TFUNC(SPACE12)
-             SUBSET   : 3 by 240 points (X-T)
-                 1      2      3    
-                 1      2      3
- 0     /   1: -0.059  1.413   ....
- 0.25  /   2:  0.126  1.409   ....
- 0.5   /   3:  0.309  1.380   ....
- 0.75  /   4:  0.486  1.328   ....
- 1     /   5:  0.655  1.253   ....
- 1.25  /   6:  0.813  1.157   ....
- 1.5   /   7:  0.957  1.041   ....
- 1.75  /   8:  1.085  0.907   ....
- 2     /   9:  1.194  0.757   ....
- 2.25  /  10:  1.283  0.595   ....
- 2.5   /  11:  1.350  0.423   ....
- 2.75  /  12:  1.393  0.243   ....
- 3     /  13:  1.413  0.059   ....
- 3.25  /  14:  1.409 -0.126   ....
- 3.5   /  15:  1.380 -0.309   ....
- 3.75  /  16:  1.328 -0.486   ....
- 4     /  17:  1.253 -0.655   ....
- 4.25  /  18:  1.157 -0.813   ....
- 4.5   /  19:  1.041 -0.957   ....
- 4.75  /  20:  0.907 -1.085   ....
- 5     /  21:  0.757 -1.194   ....
- 5.25  /  22:  0.595 -1.283   ....
- 5.5   /  23:  0.423 -1.350   ....
- 5.75  /  24:  0.243 -1.393   ....
- 6     /  25:  0.059 -1.413   ....
- 6.25  /  26: -0.126 -1.409   ....
- 6.5   /  27: -0.309 -1.380   ....
- 6.75  /  28: -0.486 -1.328   ....
- 7     /  29: -0.655 -1.253   ....
- 7.25  /  30: -0.813 -1.157   ....
- 7.5   /  31: -0.957 -1.041   ....
- 7.75  /  32: -1.085 -0.907   ....
- 8     /  33: -1.194 -0.757   ....
- 8.25  /  34: -1.283 -0.595   ....
- 8.5   /  35: -1.350 -0.423   ....
- 8.75  /  36: -1.393 -0.243   ....
- 9     /  37: -1.413 -0.059   ....
- 9.25  /  38: -1.409  0.126   ....
- 9.5   /  39: -1.380  0.309   ....
- 9.75  /  40: -1.328  0.486   ....
- 10    /  41: -1.253  0.655   ....
- 10.25 /  42: -1.157  0.813   ....
- 10.5  /  43: -1.041  0.957   ....
- 10.75 /  44: -0.907  1.085   ....
- 11    /  45: -0.757  1.194   ....
- 11.25 /  46: -0.595  1.283   ....
- 11.5  /  47: -0.423  1.350   ....
- 11.75 /  48: -0.243  1.393   ....
- 12    /  49: -0.059  1.413   ....
- 12.25 /  50:  0.126  1.409   ....
- 12.5  /  51:  0.309  1.380   ....
- 12.75 /  52:  0.486  1.328   ....
- 13    /  53:  0.655  1.253   ....
- 13.25 /  54:  0.813  1.157   ....
- 13.5  /  55:  0.957  1.041   ....
- 13.75 /  56:  1.085  0.907   ....
- 14    /  57:  1.194  0.757   ....
- 14.25 /  58:  1.283  0.595   ....
- 14.5  /  59:  1.350  0.423   ....
- 14.75 /  60:  1.393  0.243   ....
- 15    /  61:  1.413  0.059   ....
- 15.25 /  62:  1.409 -0.126   ....
- 15.5  /  63:  1.380 -0.309   ....
- 15.75 /  64:  1.328 -0.486   ....
- 16    /  65:  1.253 -0.655   ....
- 16.25 /  66:  1.157 -0.813   ....
- 16.5  /  67:  1.041 -0.957   ....
- 16.75 /  68:  0.907 -1.085   ....
- 17    /  69:  0.757 -1.194   ....
- 17.25 /  70:  0.595 -1.283   ....
- 17.5  /  71:  0.423 -1.350   ....
- 17.75 /  72:  0.243 -1.393   ....
- 18    /  73:  0.059 -1.413   ....
- 18.25 /  74: -0.126 -1.409   ....
- 18.5  /  75: -0.309 -1.380   ....
- 18.75 /  76: -0.486 -1.328   ....
- 19    /  77: -0.655 -1.253   ....
- 19.25 /  78: -0.813 -1.157   ....
- 19.5  /  79: -0.957 -1.041   ....
- 19.75 /  80: -1.085 -0.907   ....
- 20    /  81: -1.194 -0.757   ....
- 20.25 /  82: -1.283 -0.595   ....
- 20.5  /  83: -1.350 -0.423   ....
- 20.75 /  84: -1.393 -0.243   ....
- 21    /  85: -1.413 -0.059   ....
- 21.25 /  86: -1.409  0.126   ....
- 21.5  /  87: -1.380  0.309   ....
- 21.75 /  88: -1.328  0.486   ....
- 22    /  89: -1.253  0.655   ....
- 22.25 /  90: -1.157  0.813   ....
- 22.5  /  91: -1.041  0.957   ....
- 22.75 /  92: -0.907  1.085   ....
- 23    /  93: -0.757  1.194   ....
- 23.25 /  94: -0.595  1.283   ....
- 23.5  /  95: -0.423  1.350   ....
- 23.75 /  96: -0.243  1.393   ....
- 24    /  97: -0.059  1.413   ....
- 24.25 /  98:  0.126  1.409   ....
- 24.5  /  99:  0.309  1.380   ....
- 24.75 / 100:  0.486  1.328   ....
- 25    / 101:  0.655  1.253   ....
- 25.25 / 102:  0.813  1.157   ....
- 25.5  / 103:  0.957  1.041   ....
- 25.75 / 104:  1.085  0.907   ....
- 26    / 105:  1.194  0.757   ....
- 26.25 / 106:  1.283  0.595   ....
- 26.5  / 107:  1.350  0.423   ....
- 26.75 / 108:  1.393  0.243   ....
- 27    / 109:  1.413  0.059   ....
- 27.25 / 110:  1.409 -0.126   ....
- 27.5  / 111:  1.380 -0.309   ....
- 27.75 / 112:  1.328 -0.486   ....
- 28    / 113:  1.253 -0.655   ....
- 28.25 / 114:  1.157 -0.813   ....
- 28.5  / 115:  1.041 -0.957   ....
- 28.75 / 116:  0.907 -1.085   ....
- 29    / 117:  0.757 -1.194   ....
- 29.25 / 118:  0.595 -1.283   ....
- 29.5  / 119:  0.423 -1.350   ....
- 29.75 / 120:  0.243 -1.393   ....
- 30    / 121:  0.059 -1.413   ....
- 30.25 / 122: -0.126 -1.409   ....
- 30.5  / 123: -0.309 -1.380   ....
- 30.75 / 124: -0.486 -1.328   ....
- 31    / 125: -0.655 -1.253   ....
- 31.25 / 126: -0.813 -1.157   ....
- 31.5  / 127: -0.957 -1.041   ....
- 31.75 / 128: -1.085 -0.907   ....
- 32    / 129: -1.194 -0.757   ....
- 32.25 / 130: -1.283 -0.595   ....
- 32.5  / 131: -1.350 -0.423   ....
- 32.75 / 132: -1.393 -0.243   ....
- 33    / 133: -1.413 -0.059   ....
- 33.25 / 134: -1.409  0.126   ....
- 33.5  / 135: -1.380  0.309   ....
- 33.75 / 136: -1.328  0.486   ....
- 34    / 137: -1.253  0.655   ....
- 34.25 / 138: -1.157  0.813   ....
- 34.5  / 139: -1.041  0.957   ....
- 34.75 / 140: -0.907  1.085   ....
- 35    / 141: -0.757  1.194   ....
- 35.25 / 142: -0.595  1.283   ....
- 35.5  / 143: -0.423  1.350   ....
- 35.75 / 144: -0.243  1.393   ....
- 36    / 145: -0.059  1.413   ....
- 36.25 / 146:  0.126  1.409   ....
- 36.5  / 147:  0.309  1.380   ....
- 36.75 / 148:  0.486  1.328   ....
- 37    / 149:  0.655  1.253   ....
- 37.25 / 150:  0.813  1.157   ....
- 37.5  / 151:  0.957  1.041   ....
- 37.75 / 152:  1.085  0.907   ....
- 38    / 153:  1.194  0.757   ....
- 38.25 / 154:  1.283  0.595   ....
- 38.5  / 155:  1.350  0.423   ....
- 38.75 / 156:  1.393  0.243   ....
- 39    / 157:  1.413  0.059   ....
- 39.25 / 158:  1.409 -0.126   ....
- 39.5  / 159:  1.380 -0.309   ....
- 39.75 / 160:  1.328 -0.486   ....
- 40    / 161:  1.253 -0.655   ....
- 40.25 / 162:  1.157 -0.813   ....
- 40.5  / 163:  1.041 -0.957   ....
- 40.75 / 164:  0.907 -1.085   ....
- 41    / 165:  0.757 -1.194   ....
- 41.25 / 166:  0.595 -1.283   ....
- 41.5  / 167:  0.423 -1.350   ....
- 41.75 / 168:  0.243 -1.393   ....
- 42    / 169:  0.059 -1.413   ....
- 42.25 / 170: -0.126 -1.409   ....
- 42.5  / 171: -0.309 -1.380   ....
- 42.75 / 172: -0.486 -1.328   ....
- 43    / 173: -0.655 -1.253   ....
- 43.25 / 174: -0.813 -1.157   ....
- 43.5  / 175: -0.957 -1.041   ....
- 43.75 / 176: -1.085 -0.907   ....
- 44    / 177: -1.194 -0.757   ....
- 44.25 / 178: -1.283 -0.595   ....
- 44.5  / 179: -1.350 -0.423   ....
- 44.75 / 180: -1.393 -0.243   ....
- 45    / 181: -1.413 -0.059   ....
- 45.25 / 182: -1.409  0.126   ....
- 45.5  / 183: -1.380  0.309   ....
- 45.75 / 184: -1.328  0.486   ....
- 46    / 185: -1.253  0.655   ....
- 46.25 / 186: -1.157  0.813   ....
- 46.5  / 187: -1.041  0.957   ....
- 46.75 / 188: -0.907  1.085   ....
- 47    / 189: -0.757  1.194   ....
- 47.25 / 190: -0.595  1.283   ....
- 47.5  / 191: -0.423  1.350   ....
- 47.75 / 192: -0.243  1.393   ....
- 48    / 193: -0.059  1.413   ....
- 48.25 / 194:  0.126  1.409   ....
- 48.5  / 195:  0.309  1.380   ....
- 48.75 / 196:  0.486  1.328   ....
- 49    / 197:  0.655  1.253   ....
- 49.25 / 198:  0.813  1.157   ....
- 49.5  / 199:  0.957  1.041   ....
- 49.75 / 200:  1.085  0.907   ....
- 50    / 201:  1.194  0.757   ....
- 50.25 / 202:  1.283  0.595   ....
- 50.5  / 203:  1.350  0.423   ....
- 50.75 / 204:  1.393  0.243   ....
- 51    / 205:  1.413  0.059   ....
- 51.25 / 206:  1.409 -0.126   ....
- 51.5  / 207:  1.380 -0.309   ....
- 51.75 / 208:  1.328 -0.486   ....
- 52    / 209:  1.253 -0.655   ....
- 52.25 / 210:  1.157 -0.813   ....
- 52.5  / 211:  1.041 -0.957   ....
- 52.75 / 212:  0.907 -1.085   ....
- 53    / 213:  0.757 -1.194   ....
- 53.25 / 214:  0.595 -1.283   ....
- 53.5  / 215:  0.423 -1.350   ....
- 53.75 / 216:  0.243 -1.393   ....
- 54    / 217:  0.059 -1.413   ....
- 54.25 / 218: -0.126 -1.409   ....
- 54.5  / 219: -0.309 -1.380   ....
- 54.75 / 220: -0.486 -1.328   ....
- 55    / 221: -0.655 -1.253   ....
- 55.25 / 222: -0.813 -1.157   ....
- 55.5  / 223: -0.957 -1.041   ....
- 55.75 / 224: -1.085 -0.907   ....
- 56    / 225: -1.194 -0.757   ....
- 56.25 / 226: -1.283 -0.595   ....
- 56.5  / 227: -1.350 -0.423   ....
- 56.75 / 228: -1.393 -0.243   ....
- 57    / 229: -1.413 -0.059   ....
- 57.25 / 230: -1.409  0.126   ....
- 57.5  / 231: -1.380  0.309   ....
- 57.75 / 232: -1.328  0.486   ....
- 58    / 233: -1.253  0.655   ....
- 58.25 / 234: -1.157  0.813   ....
- 58.5  / 235: -1.041  0.957   ....
- 58.75 / 236: -0.907  1.085   ....
- 59    / 237: -0.757  1.194   ....
- 59.25 / 238: -0.595  1.283   ....
- 59.5  / 239: -0.423  1.350   ....
- 59.75 / 240: -0.243  1.393   ....
- 
- 
-! If there are no complete time series, the functions should bail with an error
- 
-let spacegap = if L ne 2 then spacetime
- 
-set mode ignore
-list eofsvd_stat(spacegap)
-list eofsvd_space(spacegap)
-list eofsvd_tfunc(spacegap)
- 
-! clean-up
-set mode/last ignore
-can var spacetime
-set grid abstract
-can grid xytgrid
-can axis taxis
-can axis yaxis
-can axis xaxis
- 
- 
-exit/script
- 
-GO bn_reset
-cancel mode verify
-GO bn_eof_simple2
-! bn_eof_simple2
-! Define a simple function with four known functions, two of which are degenerate.
-! decompose with EOFs.
-! 7/2012
-! In version 6.8 (double precision), the old eof functions are not available
-! Run the script calling eofsvd functions and exit, leaving old eof function calls.
- 
-! Define four locations.
-def axis /X=1:2:1 xaxis
-def axis /Y=1:2:1 yaxis
- 
-! Thinking of the time axis as number of months.
-def axis /T=0.0:23.9:0.1 taxis
-def grid /X=xaxis /Y=yaxis /T=taxis xytgrid
-set grid xytgrid
- 
-! Make standing waves with a period of 12 months.
-let cosT = cos(T * 3.141592653589793 / 6.0)
-let sinT = sin(T * 3.141592653589793 / 6.0)
- 
-! Put a products of the standing waves at each location.
-let spacetime12 = if (i eq 1) and (j eq 1) then cost * cost else cost * sint + 1
-let spacetime123 = if (i eq 2) and (j eq 1) then cost * sint + 2 else spacetime12
-let spacetime = if (i eq 2) and (j eq 2) then sint * sint + 3 else spacetime123
-show grid spacetime
-    GRID XYTGRID
- name       axis              # pts   start                end
- XAXIS     X                    2 r   1                    2
- YAXIS     Y                    2 r   1                    2
- normal    Z
- TAXIS     T                  240 r   0                    23.9
- normal    E
- normal    F
- 
-show func eofsvd_stat
-EOFSVD_STAT(A)
-    SVD EOF statistics from XYT field. j=1:#EOFs, j=2:%variation, j=3:eigenvalues
-    A: Variable in x,y,t; may be fcn of z,e,f
-! Two are of equal significance with eigenvalues of 0.25.
-! Two are negligable (eigenvalues of zero or close to it).
-list eofsvd_stat(spacetime)
-             VARIABLE : EOFSVD_STAT(SPACETIME)
-             SUBSET   : 4 by 3 points (X-Y)
-             1      2      3      4    
-             1      2      3      4
- 1   / 1:   4.00   4.00   4.00   4.00
- 2   / 2:  50.00  50.00   0.00   0.00
- 3   / 3:   0.25   0.25   0.00   0.00
- 
-show func eofsvd_space
-EOFSVD_SPACE(A)
-    Return SVD EOF spacial fields from XYT field
-    A: Variable in x,y,t; may be fcn of z,e,f
-! Ideally:
-! +- [ 0.35355,  0.0,
-!      0.0,     -0.35355 ]  (norm^2 = 0.25)
-!      corresponding to 0.25 * sqrt(2.0) * (cosT^2 - sinT^2)
-!                     = 0.25 * sqrt(2.0) * cos2T
-! and
-! +- [ 0.0,      0.35355,
-!      0.35355,  0.0     ]  (norm^2 = 0.25)
-!      corresponding to 0.25 * sqrt(2.0) * 2 * cosT * sinT
-!                     = 0.25 * sqrt(2.0) * sin2T
-! The norm^2 of an EOF should be the eigenvalue.
-! The two EOFs should be orthogonal to each other.
-! Rotation (mixing) of these two may occur.
-let eofs = eofsvd_space(spacetime)
-! T axis of eofsvd_space is abstract, so following uses full spacetime
-list eofs[L=1:2]
-             VARIABLE : EOFSVD_SPACE(SPACETIME)
-             SUBSET   : 2 by 2 by 2 points (X-Y-T)
-             1       2     
-              1       2
- ---- L:1 T:   1
- 1   / 1: -0.3516  0.0367
- 2   / 2:  0.0367  0.3516
- ---- L:2 T:   2
- 1   / 1:  0.0367  0.3516
- 2   / 2:  0.3516 -0.0367
- 
-show func eofsvd_tfunc
-EOFSVD_TFUNC(A)
-    Return SVD EOF time functions from XYT field.
-    A: Variable in x,y,t; may be fcn of z,e,f
-! Ideally:
-! +- sqrt(2.0) * cos2T  (norm^2 = 240)
-! +- sqrt(2.0) * sin2T  (norm^2 = 240)
-! The norm^2 of a TAF should be the number of time values.
-! The two TAFs should be orthogonal to each other.
-! Rotation (mixing) of these two may occur.
-let tafs = eofsvd_tfunc(spacetime)
-! X axis of eofsvd_tfunc is abstract, so following uses full spacetime
-list tafs[I=1:2]
-             VARIABLE : EOFSVD_TFUNC(SPACETIME)
-             SUBSET   : 2 by 240 points (X-T)
-                 1      2    
-                 1      2
- 0     /   1: -1.407  0.147
- 0.1   /   2: -1.384  0.293
- 0.2   /   3: -1.345  0.436
- 0.3   /   4: -1.292  0.574
- 0.4   /   5: -1.225  0.706
- 0.5   /   6: -1.145  0.831
- 0.6   /   7: -1.052  0.946
- 0.7   /   8: -0.947  1.050
- 0.8   /   9: -0.832  1.144
- 0.9   /  10: -0.708  1.224
- 1     /  11: -0.576  1.292
- 1.1   /  12: -0.438  1.345
- 1.2   /  13: -0.295  1.383
- 1.3   /  14: -0.149  1.406
- 1.4   /  15: -0.001  1.414
- 1.5   /  16:  0.147  1.407
- 1.6   /  17:  0.293  1.384
- 1.7   /  18:  0.436  1.345
- 1.8   /  19:  0.574  1.292
- 1.9   /  20:  0.706  1.225
- 2     /  21:  0.831  1.145
- 2.1   /  22:  0.946  1.052
- 2.2   /  23:  1.050  0.947
- 2.3   /  24:  1.144  0.832
- 2.4   /  25:  1.224  0.708
- 2.5   /  26:  1.292  0.576
- 2.6   /  27:  1.345  0.438
- 2.7   /  28:  1.383  0.295
- 2.8   /  29:  1.406  0.149
- 2.9   /  30:  1.414  0.001
- 3     /  31:  1.407 -0.147
- 3.1   /  32:  1.384 -0.293
- 3.2   /  33:  1.345 -0.436
- 3.3   /  34:  1.292 -0.574
- 3.4   /  35:  1.225 -0.706
- 3.5   /  36:  1.145 -0.831
- 3.6   /  37:  1.052 -0.946
- 3.7   /  38:  0.947 -1.050
- 3.8   /  39:  0.832 -1.144
- 3.9   /  40:  0.708 -1.224
- 4     /  41:  0.576 -1.292
- 4.1   /  42:  0.438 -1.345
- 4.2   /  43:  0.295 -1.383
- 4.3   /  44:  0.149 -1.406
- 4.4   /  45:  0.001 -1.414
- 4.5   /  46: -0.147 -1.407
- 4.6   /  47: -0.293 -1.384
- 4.7   /  48: -0.436 -1.345
- 4.8   /  49: -0.574 -1.292
- 4.9   /  50: -0.706 -1.225
- 5     /  51: -0.831 -1.145
- 5.1   /  52: -0.946 -1.052
- 5.2   /  53: -1.050 -0.947
- 5.3   /  54: -1.144 -0.832
- 5.4   /  55: -1.224 -0.708
- 5.5   /  56: -1.292 -0.576
- 5.6   /  57: -1.345 -0.438
- 5.7   /  58: -1.383 -0.295
- 5.8   /  59: -1.406 -0.149
- 5.9   /  60: -1.414 -0.001
- 6     /  61: -1.407  0.147
- 6.1   /  62: -1.384  0.293
- 6.2   /  63: -1.345  0.436
- 6.3   /  64: -1.292  0.574
- 6.4   /  65: -1.225  0.706
- 6.5   /  66: -1.145  0.831
- 6.6   /  67: -1.052  0.946
- 6.7   /  68: -0.947  1.050
- 6.8   /  69: -0.832  1.144
- 6.9   /  70: -0.708  1.224
- 7     /  71: -0.576  1.292
- 7.1   /  72: -0.438  1.345
- 7.2   /  73: -0.295  1.383
- 7.3   /  74: -0.149  1.406
- 7.4   /  75: -0.001  1.414
- 7.5   /  76:  0.147  1.407
- 7.6   /  77:  0.293  1.384
- 7.7   /  78:  0.436  1.345
- 7.8   /  79:  0.574  1.292
- 7.9   /  80:  0.706  1.225
- 8     /  81:  0.831  1.145
- 8.1   /  82:  0.946  1.052
- 8.2   /  83:  1.050  0.947
- 8.3   /  84:  1.144  0.832
- 8.4   /  85:  1.224  0.708
- 8.5   /  86:  1.292  0.576
- 8.6   /  87:  1.345  0.438
- 8.7   /  88:  1.383  0.295
- 8.8   /  89:  1.406  0.149
- 8.9   /  90:  1.414  0.001
- 9     /  91:  1.407 -0.147
- 9.1   /  92:  1.384 -0.293
- 9.2   /  93:  1.345 -0.436
- 9.3   /  94:  1.292 -0.574
- 9.4   /  95:  1.225 -0.706
- 9.5   /  96:  1.145 -0.831
- 9.6   /  97:  1.052 -0.946
- 9.7   /  98:  0.947 -1.050
- 9.8   /  99:  0.832 -1.144
- 9.9   / 100:  0.708 -1.224
- 10    / 101:  0.576 -1.292
- 10.1  / 102:  0.438 -1.345
- 10.2  / 103:  0.295 -1.383
- 10.3  / 104:  0.149 -1.406
- 10.4  / 105:  0.001 -1.414
- 10.5  / 106: -0.147 -1.407
- 10.6  / 107: -0.293 -1.384
- 10.7  / 108: -0.436 -1.345
- 10.8  / 109: -0.574 -1.292
- 10.9  / 110: -0.706 -1.225
- 11    / 111: -0.831 -1.145
- 11.1  / 112: -0.946 -1.052
- 11.2  / 113: -1.050 -0.947
- 11.3  / 114: -1.144 -0.832
- 11.4  / 115: -1.224 -0.708
- 11.5  / 116: -1.292 -0.576
- 11.6  / 117: -1.345 -0.438
- 11.7  / 118: -1.383 -0.295
- 11.8  / 119: -1.406 -0.149
- 11.9  / 120: -1.414 -0.001
- 12    / 121: -1.407  0.147
- 12.1  / 122: -1.384  0.293
- 12.2  / 123: -1.345  0.436
- 12.3  / 124: -1.292  0.574
- 12.4  / 125: -1.225  0.706
- 12.5  / 126: -1.145  0.831
- 12.6  / 127: -1.052  0.946
- 12.7  / 128: -0.947  1.050
- 12.8  / 129: -0.832  1.144
- 12.9  / 130: -0.708  1.224
- 13    / 131: -0.576  1.292
- 13.1  / 132: -0.438  1.345
- 13.2  / 133: -0.295  1.383
- 13.3  / 134: -0.149  1.406
- 13.4  / 135: -0.001  1.414
- 13.5  / 136:  0.147  1.407
- 13.6  / 137:  0.293  1.384
- 13.7  / 138:  0.436  1.345
- 13.8  / 139:  0.574  1.292
- 13.9  / 140:  0.706  1.225
- 14    / 141:  0.831  1.145
- 14.1  / 142:  0.946  1.052
- 14.2  / 143:  1.050  0.947
- 14.3  / 144:  1.144  0.832
- 14.4  / 145:  1.224  0.708
- 14.5  / 146:  1.292  0.576
- 14.6  / 147:  1.345  0.438
- 14.7  / 148:  1.383  0.295
- 14.8  / 149:  1.406  0.149
- 14.9  / 150:  1.414  0.001
- 15    / 151:  1.407 -0.147
- 15.1  / 152:  1.384 -0.293
- 15.2  / 153:  1.345 -0.436
- 15.3  / 154:  1.292 -0.574
- 15.4  / 155:  1.225 -0.706
- 15.5  / 156:  1.145 -0.831
- 15.6  / 157:  1.052 -0.946
- 15.7  / 158:  0.947 -1.050
- 15.8  / 159:  0.832 -1.144
- 15.9  / 160:  0.708 -1.224
- 16    / 161:  0.576 -1.292
- 16.1  / 162:  0.438 -1.345
- 16.2  / 163:  0.295 -1.383
- 16.3  / 164:  0.149 -1.406
- 16.4  / 165:  0.001 -1.414
- 16.5  / 166: -0.147 -1.407
- 16.6  / 167: -0.293 -1.384
- 16.7  / 168: -0.436 -1.345
- 16.8  / 169: -0.574 -1.292
- 16.9  / 170: -0.706 -1.225
- 17    / 171: -0.831 -1.145
- 17.1  / 172: -0.946 -1.052
- 17.2  / 173: -1.050 -0.947
- 17.3  / 174: -1.144 -0.832
- 17.4  / 175: -1.224 -0.708
- 17.5  / 176: -1.292 -0.576
- 17.6  / 177: -1.345 -0.438
- 17.7  / 178: -1.383 -0.295
- 17.8  / 179: -1.406 -0.149
- 17.9  / 180: -1.414 -0.001
- 18    / 181: -1.407  0.147
- 18.1  / 182: -1.384  0.293
- 18.2  / 183: -1.345  0.436
- 18.3  / 184: -1.292  0.574
- 18.4  / 185: -1.225  0.706
- 18.5  / 186: -1.145  0.831
- 18.6  / 187: -1.052  0.946
- 18.7  / 188: -0.947  1.050
- 18.8  / 189: -0.832  1.144
- 18.9  / 190: -0.708  1.224
- 19    / 191: -0.576  1.292
- 19.1  / 192: -0.438  1.345
- 19.2  / 193: -0.295  1.383
- 19.3  / 194: -0.149  1.406
- 19.4  / 195: -0.001  1.414
- 19.5  / 196:  0.147  1.407
- 19.6  / 197:  0.293  1.384
- 19.7  / 198:  0.436  1.345
- 19.8  / 199:  0.574  1.292
- 19.9  / 200:  0.706  1.225
- 20    / 201:  0.831  1.145
- 20.1  / 202:  0.946  1.052
- 20.2  / 203:  1.050  0.947
- 20.3  / 204:  1.144  0.832
- 20.4  / 205:  1.224  0.708
- 20.5  / 206:  1.292  0.576
- 20.6  / 207:  1.345  0.438
- 20.7  / 208:  1.383  0.295
- 20.8  / 209:  1.406  0.149
- 20.9  / 210:  1.414  0.001
- 21    / 211:  1.407 -0.147
- 21.1  / 212:  1.384 -0.293
- 21.2  / 213:  1.345 -0.436
- 21.3  / 214:  1.292 -0.574
- 21.4  / 215:  1.225 -0.706
- 21.5  / 216:  1.145 -0.831
- 21.6  / 217:  1.052 -0.946
- 21.7  / 218:  0.947 -1.050
- 21.8  / 219:  0.832 -1.144
- 21.9  / 220:  0.708 -1.224
- 22    / 221:  0.576 -1.292
- 22.1  / 222:  0.438 -1.345
- 22.2  / 223:  0.295 -1.383
- 22.3  / 224:  0.149 -1.406
- 22.4  / 225:  0.001 -1.414
- 22.5  / 226: -0.147 -1.407
- 22.6  / 227: -0.293 -1.384
- 22.7  / 228: -0.436 -1.345
- 22.8  / 229: -0.574 -1.292
- 22.9  / 230: -0.706 -1.225
- 23    / 231: -0.831 -1.145
- 23.1  / 232: -0.946 -1.052
- 23.2  / 233: -1.050 -0.947
- 23.3  / 234: -1.144 -0.832
- 23.4  / 235: -1.224 -0.708
- 23.5  / 236: -1.292 -0.576
- 23.6  / 237: -1.345 -0.438
- 23.7  / 238: -1.383 -0.295
- 23.8  / 239: -1.406 -0.149
- 23.9  / 240: -1.414 -0.001
- 
-! Explanation:
-! Time series means = (0.5, 0.0, 0.0, 0.5) + (0, 1, 2, 3)
-! EOF1 * TAF1 = (0.5 * cos2T,  0.0, 0.0, -0.5 * cos2T)
-!             = (cosT^2 - 0.5, 0.0, 0.0, sinT^2 - 0.5)
-! EOF2 * TAF2 = (0.0, 0.5 * sin2T, 0.5 * sin2T, 0.0)
-!             = (0.0, cosT * sinT, cosT * sinT, 0.0)
-! Adding these three gives the original data
- 
-! clean-up
-can var tafs
-can var eofs
-can var spacetime
-can var spacetime123
-can var spacetime12
-set grid abstract
-can grid xytgrid
-can axis taxis
-can axis yaxis
-can axis xaxis
- 
-exit/script
- 
-! 6D tests for Ferret v6.8
- 
-GO bn_reset
-cancel mode verify
-GO bn_interpolate_6d
-! bn_interpolate_6d.JNL
-! benchmark interpolation along various axes
-! including the E and F axis
- 
-SET LIST/PRECISION=6
-SET MODE LATITUDE:4
- 
-LET v = x + 10*y + 100*_e + 1000*_f
-SET REGION/X=1:3/Y=1:3/E=1:3/F=1:3
-DEF REG/X=1.5 xpt
-DEF REG/Y=1.05 ypt
-DEF REG/E=1.005 ept
-DEF REG/F=1.0005 fpt
- 
-! first without interpolation
-CANCEL MODE INTERPOLATE
-GO bn_interpolate_6d.sub
-! bn_interpolate_6d.SUB
-! interpolate in various geometries
- 
-! this routine assumes that a 4-D region and an expression are already set
- 
-! cubes of data
-LIST v[@xpt]
-             VARIABLE : X + 10*Y + 100*_E + 1000*_F
-             SUBSET   : 3 by 3 by 3 points (Y-E-F)
-             X        : 1
-              1        2        3     
-              1        2        3
- ---- N:1 F:   1
- 1   / 1:  1111.00  1121.00  1131.00
- 2   / 2:  1211.00  1221.00  1231.00
- 3   / 3:  1311.00  1321.00  1331.00
- ---- N:2 F:   2
- 1   / 1:  2111.00  2121.00  2131.00
- 2   / 2:  2211.00  2221.00  2231.00
- 3   / 3:  2311.00  2321.00  2331.00
- ---- N:3 F:   3
- 1   / 1:  3111.00  3121.00  3131.00
- 2   / 2:  3211.00  3221.00  3231.00
- 3   / 3:  3311.00  3321.00  3331.00
-LIST v[@ypt]
-             VARIABLE : X + 10*Y + 100*_E + 1000*_F
-             SUBSET   : 3 by 3 by 3 points (X-E-F)
-             Y        : 1
-              1        2        3     
-              1        2        3
- ---- N:1 F:   1
- 1   / 1:  1111.00  1112.00  1113.00
- 2   / 2:  1211.00  1212.00  1213.00
- 3   / 3:  1311.00  1312.00  1313.00
- ---- N:2 F:   2
- 1   / 1:  2111.00  2112.00  2113.00
- 2   / 2:  2211.00  2212.00  2213.00
- 3   / 3:  2311.00  2312.00  2313.00
- ---- N:3 F:   3
- 1   / 1:  3111.00  3112.00  3113.00
- 2   / 2:  3211.00  3212.00  3213.00
- 3   / 3:  3311.00  3312.00  3313.00
-LIST v[@ept]
-             VARIABLE : X + 10*Y + 100*_E + 1000*_F
-             SUBSET   : 3 by 3 by 3 points (X-Y-F)
-             E        : 1
-              1        2        3     
-              1        2        3
- ---- N:1 F:   1
- 1   / 1:  1111.00  1112.00  1113.00
- 2   / 2:  1121.00  1122.00  1123.00
- 3   / 3:  1131.00  1132.00  1133.00
- ---- N:2 F:   2
- 1   / 1:  2111.00  2112.00  2113.00
- 2   / 2:  2121.00  2122.00  2123.00
- 3   / 3:  2131.00  2132.00  2133.00
- ---- N:3 F:   3
- 1   / 1:  3111.00  3112.00  3113.00
- 2   / 2:  3121.00  3122.00  3123.00
- 3   / 3:  3131.00  3132.00  3133.00
-LIST v[@fpt]
-             VARIABLE : X + 10*Y + 100*_E + 1000*_F
-             SUBSET   : 3 by 3 by 3 points (X-Y-E)
-             F        : 1
-              1        2        3     
-              1        2        3
- ---- M:1 E:   1
- 1   / 1:  1111.00  1112.00  1113.00
- 2   / 2:  1121.00  1122.00  1123.00
- 3   / 3:  1131.00  1132.00  1133.00
- ---- M:2 E:   2
- 1   / 1:  1211.00  1212.00  1213.00
- 2   / 2:  1221.00  1222.00  1223.00
- 3   / 3:  1231.00  1232.00  1233.00
- ---- M:3 E:   3
- 1   / 1:  1311.00  1312.00  1313.00
- 2   / 2:  1321.00  1322.00  1323.00
- 3   / 3:  1331.00  1332.00  1333.00
- 
-! planes of data
-LIST v[@ept, at fpt]	!XY
-             VARIABLE : X + 10*Y + 100*_E + 1000*_F
-             SUBSET   : 3 by 3 points (X-Y)
-             E        : 1
-             F        : 1
-              1        2        3     
-              1        2        3
- 1   / 1:  1111.00  1112.00  1113.00
- 2   / 2:  1121.00  1122.00  1123.00
- 3   / 3:  1131.00  1132.00  1133.00
-LIST v[@ypt, at fpt]	!XE
-             VARIABLE : X + 10*Y + 100*_E + 1000*_F
-             SUBSET   : 3 by 3 points (X-E)
-             Y        : 1
-             F        : 1
-              1        2        3     
-              1        2        3
- 1   / 1:  1111.00  1112.00  1113.00
- 2   / 2:  1211.00  1212.00  1213.00
- 3   / 3:  1311.00  1312.00  1313.00
-LIST v[@ypt, at ept]	!XF
-             VARIABLE : X + 10*Y + 100*_E + 1000*_F
-             SUBSET   : 3 by 3 points (X-F)
-             Y        : 1
-             E        : 1
-              1        2        3     
-              1        2        3
- 1   / 1:  1111.00  1112.00  1113.00
- 2   / 2:  2111.00  2112.00  2113.00
- 3   / 3:  3111.00  3112.00  3113.00
-LIST v[@xpt, at fpt]	!YE
-             VARIABLE : X + 10*Y + 100*_E + 1000*_F
-             SUBSET   : 3 by 3 points (Y-E)
-             X        : 1
-             F        : 1
-              1        2        3     
-              1        2        3
- 1   / 1:  1111.00  1121.00  1131.00
- 2   / 2:  1211.00  1221.00  1231.00
- 3   / 3:  1311.00  1321.00  1331.00
-LIST v[@xpt, at ept]	!YF
-             VARIABLE : X + 10*Y + 100*_E + 1000*_F
-             SUBSET   : 3 by 3 points (Y-F)
-             X        : 1
-             E        : 1
-              1        2        3     
-              1        2        3
- 1   / 1:  1111.00  1121.00  1131.00
- 2   / 2:  2111.00  2121.00  2131.00
- 3   / 3:  3111.00  3121.00  3131.00
-LIST v[@xpt, at ypt]	!EF
-             VARIABLE : X + 10*Y + 100*_E + 1000*_F
-             SUBSET   : 3 by 3 points (E-F)
-             X        : 1
-             Y        : 1
-              1        2        3     
-              1        2        3
- 1   / 1:  1111.00  1211.00  1311.00
- 2   / 2:  2111.00  2211.00  2311.00
- 3   / 3:  3111.00  3211.00  3311.00
- 
-! lines of data
-LIST/ORDER=F v[@xpt, at ypt, at ept]	! F
-             VARIABLE : X + 10*Y + 100*_E + 1000*_F
-             SUBSET   : 3 points (F)
-             X        : 1
-             Y        : 1
-             E        : 1
-             1        2        3     
-             1        2        3
-          1111.00  2111.00  3111.00
-LIST/ORDER=E v[@xpt, at ypt, at fpt]	! E
-             VARIABLE : X + 10*Y + 100*_E + 1000*_F
-             SUBSET   : 3 points (E)
-             X        : 1
-             Y        : 1
-             F        : 1
-             1        2        3     
-             1        2        3
-          1111.00  1211.00  1311.00
-LIST/ORDER=Y v[@xpt, at ept, at fpt]	! Y
-             VARIABLE : X + 10*Y + 100*_E + 1000*_F
-             SUBSET   : 3 points (Y)
-             X        : 1
-             E        : 1
-             F        : 1
-             1        2        3     
-             1        2        3
-          1111.00  1121.00  1131.00
-LIST/ORDER=X v[@ypt, at ept, at fpt]	! X
-             VARIABLE : X + 10*Y + 100*_E + 1000*_F
-             SUBSET   : 3 points (X)
-             Y        : 1
-             E        : 1
-             F        : 1
-             1        2        3     
-             1        2        3
-          1111.00  1112.00  1113.00
- 
-! point of data
-LIST v[@xpt, at ypt, at ept, at fpt]
-             VARIABLE : X + 10*Y + 100*_E + 1000*_F
-             X        : 1
-             Y        : 1
-             E        : 1
-             F        : 1
-          1111.00
- 
-! then with interpolation
-SET MODE INTERPOLATE
-GO bn_interpolate_6d.sub
-! bn_interpolate_6d.SUB
-! interpolate in various geometries
- 
-! this routine assumes that a 4-D region and an expression are already set
- 
-! cubes of data
-LIST v[@xpt]
-             VARIABLE : X + 10*Y + 100*_E + 1000*_F
-             SUBSET   : 3 by 3 by 3 points (Y-E-F)
-             X        : 1.5 (interpolated)
-              1        2        3     
-              1        2        3
- ---- N:1 F:   1
- 1   / 1:  1111.50  1121.50  1131.50
- 2   / 2:  1211.50  1221.50  1231.50
- 3   / 3:  1311.50  1321.50  1331.50
- ---- N:2 F:   2
- 1   / 1:  2111.50  2121.50  2131.50
- 2   / 2:  2211.50  2221.50  2231.50
- 3   / 3:  2311.50  2321.50  2331.50
- ---- N:3 F:   3
- 1   / 1:  3111.50  3121.50  3131.50
- 2   / 2:  3211.50  3221.50  3231.50
- 3   / 3:  3311.50  3321.50  3331.50
-LIST v[@ypt]
-             VARIABLE : X + 10*Y + 100*_E + 1000*_F
-             SUBSET   : 3 by 3 by 3 points (X-E-F)
-             Y        : 1.05 (interpolated)
-              1        2        3     
-              1        2        3
- ---- N:1 F:   1
- 1   / 1:  1111.50  1112.50  1113.50
- 2   / 2:  1211.50  1212.50  1213.50
- 3   / 3:  1311.50  1312.50  1313.50
- ---- N:2 F:   2
- 1   / 1:  2111.50  2112.50  2113.50
- 2   / 2:  2211.50  2212.50  2213.50
- 3   / 3:  2311.50  2312.50  2313.50
- ---- N:3 F:   3
- 1   / 1:  3111.50  3112.50  3113.50
- 2   / 2:  3211.50  3212.50  3213.50
- 3   / 3:  3311.50  3312.50  3313.50
-LIST v[@ept]
-             VARIABLE : X + 10*Y + 100*_E + 1000*_F
-             SUBSET   : 3 by 3 by 3 points (X-Y-F)
-             E        : 1.00499999999999989 (interpolated)
-              1        2        3     
-              1        2        3
- ---- N:1 F:   1
- 1   / 1:  1111.50  1112.50  1113.50
- 2   / 2:  1121.50  1122.50  1123.50
- 3   / 3:  1131.50  1132.50  1133.50
- ---- N:2 F:   2
- 1   / 1:  2111.50  2112.50  2113.50
- 2   / 2:  2121.50  2122.50  2123.50
- 3   / 3:  2131.50  2132.50  2133.50
- ---- N:3 F:   3
- 1   / 1:  3111.50  3112.50  3113.50
- 2   / 2:  3121.50  3122.50  3123.50
- 3   / 3:  3131.50  3132.50  3133.50
-LIST v[@fpt]
-             VARIABLE : X + 10*Y + 100*_E + 1000*_F
-             SUBSET   : 3 by 3 by 3 points (X-Y-E)
-             F        : 1.000499999999999945 (interpolated)
-              1        2        3     
-              1        2        3
- ---- M:1 E:   1
- 1   / 1:  1111.50  1112.50  1113.50
- 2   / 2:  1121.50  1122.50  1123.50
- 3   / 3:  1131.50  1132.50  1133.50
- ---- M:2 E:   2
- 1   / 1:  1211.50  1212.50  1213.50
- 2   / 2:  1221.50  1222.50  1223.50
- 3   / 3:  1231.50  1232.50  1233.50
- ---- M:3 E:   3
- 1   / 1:  1311.50  1312.50  1313.50
- 2   / 2:  1321.50  1322.50  1323.50
- 3   / 3:  1331.50  1332.50  1333.50
- 
-! planes of data
-LIST v[@ept, at fpt]	!XY
-             VARIABLE : X + 10*Y + 100*_E + 1000*_F
-             SUBSET   : 3 by 3 points (X-Y)
-             E        : 1.00499999999999989 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
-              1        2        3     
-              1        2        3
- 1   / 1:  1112.00  1113.00  1114.00
- 2   / 2:  1122.00  1123.00  1124.00
- 3   / 3:  1132.00  1133.00  1134.00
-LIST v[@ypt, at fpt]	!XE
-             VARIABLE : X + 10*Y + 100*_E + 1000*_F
-             SUBSET   : 3 by 3 points (X-E)
-             Y        : 1.05 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
-              1        2        3     
-              1        2        3
- 1   / 1:  1112.00  1113.00  1114.00
- 2   / 2:  1212.00  1213.00  1214.00
- 3   / 3:  1312.00  1313.00  1314.00
-LIST v[@ypt, at ept]	!XF
-             VARIABLE : X + 10*Y + 100*_E + 1000*_F
-             SUBSET   : 3 by 3 points (X-F)
-             Y        : 1.05 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
-              1        2        3     
-              1        2        3
- 1   / 1:  1112.00  1113.00  1114.00
- 2   / 2:  2112.00  2113.00  2114.00
- 3   / 3:  3112.00  3113.00  3114.00
-LIST v[@xpt, at fpt]	!YE
-             VARIABLE : X + 10*Y + 100*_E + 1000*_F
-             SUBSET   : 3 by 3 points (Y-E)
-             X        : 1.5 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
-              1        2        3     
-              1        2        3
- 1   / 1:  1112.00  1122.00  1132.00
- 2   / 2:  1212.00  1222.00  1232.00
- 3   / 3:  1312.00  1322.00  1332.00
-LIST v[@xpt, at ept]	!YF
-             VARIABLE : X + 10*Y + 100*_E + 1000*_F
-             SUBSET   : 3 by 3 points (Y-F)
-             X        : 1.5 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
-              1        2        3     
-              1        2        3
- 1   / 1:  1112.00  1122.00  1132.00
- 2   / 2:  2112.00  2122.00  2132.00
- 3   / 3:  3112.00  3122.00  3132.00
-LIST v[@xpt, at ypt]	!EF
-             VARIABLE : X + 10*Y + 100*_E + 1000*_F
-             SUBSET   : 3 by 3 points (E-F)
-             X        : 1.5 (interpolated)
-             Y        : 1.05 (interpolated)
-              1        2        3     
-              1        2        3
- 1   / 1:  1112.00  1212.00  1312.00
- 2   / 2:  2112.00  2212.00  2312.00
- 3   / 3:  3112.00  3212.00  3312.00
- 
-! lines of data
-LIST/ORDER=F v[@xpt, at ypt, at ept]	! F
-             VARIABLE : X + 10*Y + 100*_E + 1000*_F
-             SUBSET   : 3 points (F)
-             X        : 1.5 (interpolated)
-             Y        : 1.05 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
-             1        2        3     
-             1        2        3
-          1112.50  2112.50  3112.50
-LIST/ORDER=E v[@xpt, at ypt, at fpt]	! E
-             VARIABLE : X + 10*Y + 100*_E + 1000*_F
-             SUBSET   : 3 points (E)
-             X        : 1.5 (interpolated)
-             Y        : 1.05 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
-             1        2        3     
-             1        2        3
-          1112.50  1212.50  1312.50
-LIST/ORDER=Y v[@xpt, at ept, at fpt]	! Y
-             VARIABLE : X + 10*Y + 100*_E + 1000*_F
-             SUBSET   : 3 points (Y)
-             X        : 1.5 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
-             1        2        3     
-             1        2        3
-          1112.50  1122.50  1132.50
-LIST/ORDER=X v[@ypt, at ept, at fpt]	! X
-             VARIABLE : X + 10*Y + 100*_E + 1000*_F
-             SUBSET   : 3 points (X)
-             Y        : 1.05 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
-             1        2        3     
-             1        2        3
-          1112.50  1113.50  1114.50
- 
-! point of data
-LIST v[@xpt, at ypt, at ept, at fpt]
-             VARIABLE : X + 10*Y + 100*_E + 1000*_F
-             X        : 1.5 (interpolated)
-             Y        : 1.05 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
-          1113.00
- 
-GO bn_reset
-cancel mode verify
-GO bn_regrid_6d
-! bn_regrid_6d.jnl
-! version of bn_regrid, using E and F directions.
- 
-set mode latit_label -4
-set mode long_label -4
- 
-define axis/x=2:20:2 xeven
-define axis/x=1:19:2 xodd
-define axis/y=2:20:2 yeven
-define axis/y=1:19:2 yodd
-define axis/e=2:20:2 eeven
-define axis/e=1:19:2 eodd
-define axis/f=2:20:2/t0="1-jan-1980"/unit=days feven
-define axis/f=1:19:2/t0="1-jan-1980"/unit=days fodd
- 
-! default grid
-define grid/x=xeven/y=yeven/e=eeven/f=feven even
- 
-! 1 axis different
-define grid/x=xodd/y=yeven/e=eeven/f=feven g1
-define grid/x=xeven/y=yodd/e=eeven/f=feven g2
-define grid/x=xeven/y=yeven/e=eodd/f=feven g3
-define grid/x=xeven/y=yeven/e=eeven/f=fodd g4
- 
-! 2 axes different
-define grid/x=xodd/y=yodd/e=eeven/f=feven g12
-define grid/x=xodd/y=yeven/e=eodd/f=feven g13
-define grid/x=xodd/y=yeven/e=eeven/f=fodd g14
-define grid/x=xeven/y=yodd/e=eodd/f=feven g23
-define grid/x=xeven/y=yodd/e=eeven/f=fodd g24
-define grid/x=xeven/y=yeven/e=eodd/f=fodd g33
- 
-! 3 axes different
-define grid/x=xeven/y=yodd/e=eodd/f=fodd g234
-define grid/x=xodd/y=yeven/e=eodd/f=fodd g134
-define grid/x=xodd/y=yodd/e=eeven/f=fodd g124
-define grid/x=xodd/y=yodd/e=eodd/f=feven g123
- 
-! all axes different
-define grid/x=xodd/y=yodd/e=eodd/f=fodd g1234
- 
-LET veven = 1000*i[g=even] + 100*j[g=even] + 10*_m[g=even] + _n[g=even]
- 
-LET v1    = veven[g=g1]
-LET v2    = veven[g=g2]
-LET v3    = veven[g=g3]
-LET v4    = veven[g=g4]
-LET v12   = veven[g=g12]
-LET v13   = veven[g=g13]
-LET v14   = veven[g=g14]
-LET v23   = veven[g=g23]
-LET v24   = veven[g=g24]
-LET v33   = veven[g=g33]
-LET v234  = veven[g=g234]
-LET v134  = veven[g=g134]
-LET v124  = veven[g=g124]
-LET v123  = veven[g=g123]
-LET v1234 = veven[g=g1234]
- 
-SET REGION/X=4.01:8.99/Y=4.01:8.99/e=4.01:8.99/f=4.01:8.99
- 
-! background
-list veven
-             VARIABLE : 1000*I[G=EVEN] + 100*J[G=EVEN] + 10*_M[G=EVEN] + _N[G=EVEN]
-             SUBSET   : 3 by 3 by 3 by 3 points (X-Y-E-FORECAST)
-              4        6        8     
-              2        3        4
- ---- N:2 F:   05-JAN-1980 00:00:00
- ---- M:2 E:   4
- 4   / 2:  2222.00  3222.00  4222.00
- 6   / 3:  2322.00  3322.00  4322.00
- 8   / 4:  2422.00  3422.00  4422.00
- ---- M:3 E:   6
- 4   / 2:  2232.00  3232.00  4232.00
- 6   / 3:  2332.00  3332.00  4332.00
- 8   / 4:  2432.00  3432.00  4432.00
- ---- M:4 E:   8
- 4   / 2:  2242.00  3242.00  4242.00
- 6   / 3:  2342.00  3342.00  4342.00
- 8   / 4:  2442.00  3442.00  4442.00
- ---- N:3 F:   07-JAN-1980 00:00:00
- ---- M:2 E:   4
- 4   / 2:  2223.00  3223.00  4223.00
- 6   / 3:  2323.00  3323.00  4323.00
- 8   / 4:  2423.00  3423.00  4423.00
- ---- M:3 E:   6
- 4   / 2:  2233.00  3233.00  4233.00
- 6   / 3:  2333.00  3333.00  4333.00
- 8   / 4:  2433.00  3433.00  4433.00
- ---- M:4 E:   8
- 4   / 2:  2243.00  3243.00  4243.00
- 6   / 3:  2343.00  3343.00  4343.00
- 8   / 4:  2443.00  3443.00  4443.00
- ---- N:4 F:   09-JAN-1980 00:00:00
- ---- M:2 E:   4
- 4   / 2:  2224.00  3224.00  4224.00
- 6   / 3:  2324.00  3324.00  4324.00
- 8   / 4:  2424.00  3424.00  4424.00
- ---- M:3 E:   6
- 4   / 2:  2234.00  3234.00  4234.00
- 6   / 3:  2334.00  3334.00  4334.00
- 8   / 4:  2434.00  3434.00  4434.00
- ---- M:4 E:   8
- 4   / 2:  2244.00  3244.00  4244.00
- 6   / 3:  2344.00  3344.00  4344.00
- 8   / 4:  2444.00  3444.00  4444.00
-list v1234
-             VARIABLE : VEVEN[G=G1234]
-             SUBSET   : 3 by 3 by 3 by 3 points (X-Y-E-FORECAST)
-              5        7        9     
-              3        4        5
- ---- N:3 F:   06-JAN-1980 00:00:00
- ---- M:3 E:   5
- 5   / 3:  2777.50  3777.50  4777.50
- 7   / 4:  2877.50  3877.50  4877.50
- 9   / 5:  2977.50  3977.50  4977.50
- ---- M:4 E:   7
- 5   / 3:  2787.50  3787.50  4787.50
- 7   / 4:  2887.50  3887.50  4887.50
- 9   / 5:  2987.50  3987.50  4987.50
- ---- M:5 E:   9
- 5   / 3:  2797.50  3797.50  4797.50
- 7   / 4:  2897.50  3897.50  4897.50
- 9   / 5:  2997.50  3997.50  4997.50
- ---- N:4 F:   08-JAN-1980 00:00:00
- ---- M:3 E:   5
- 5   / 3:  2778.50  3778.50  4778.50
- 7   / 4:  2878.50  3878.50  4878.50
- 9   / 5:  2978.50  3978.50  4978.50
- ---- M:4 E:   7
- 5   / 3:  2788.50  3788.50  4788.50
- 7   / 4:  2888.50  3888.50  4888.50
- 9   / 5:  2988.50  3988.50  4988.50
- ---- M:5 E:   9
- 5   / 3:  2798.50  3798.50  4798.50
- 7   / 4:  2898.50  3898.50  4898.50
- 9   / 5:  2998.50  3998.50  4998.50
- ---- N:5 F:   10-JAN-1980 00:00:00
- ---- M:3 E:   5
- 5   / 3:  2779.50  3779.50  4779.50
- 7   / 4:  2879.50  3879.50  4879.50
- 9   / 5:  2979.50  3979.50  4979.50
- ---- M:4 E:   7
- 5   / 3:  2789.50  3789.50  4789.50
- 7   / 4:  2889.50  3889.50  4889.50
- 9   / 5:  2989.50  3989.50  4989.50
- ---- M:5 E:   9
- 5   / 3:  2799.50  3799.50  4799.50
- 7   / 4:  2899.50  3899.50  4899.50
- 9   / 5:  2999.50  3999.50  4999.50
-stat veven
- 
-             1000*I[G=EVEN] + 100*J[G=EVEN] + 10*_M[G=EVEN] + _N[G=EVEN]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 2222
- Maximum value: 4444
- Mean    value: 3333 (unweighted average)
- Standard deviation: 825.72
- 
-! first all from one memory variable
-load/x=1:11/y=1:11/e=1:11/f=1:11 veven
-GO bn_regrid.sub
-! BN200_REGRID.SUB
-! compare various regriddings to the original data
- 
-stat v1[g=even]-veven, v1
- 
-             V1[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G1]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 2722
- Maximum value: 4944
- Mean    value: 3833 (unweighted average)
- Standard deviation: 825.72
-stat v2[g=even]-veven, v2
- 
-             V2[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G2]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 2272
- Maximum value: 4494
- Mean    value: 3383 (unweighted average)
- Standard deviation: 825.72
-stat v3[g=even]-veven, v3
- 
-             V3[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G3]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 2227
- Maximum value: 4449
- Mean    value: 3338 (unweighted average)
- Standard deviation: 825.72
-stat v4[g=even]-veven, v4
- 
-             V4[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G4]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 2222.5
- Maximum value: 4444.5
- Mean    value: 3333.5 (unweighted average)
- Standard deviation: 825.72
-stat v12[g=even]-veven, v12
- 
-             V12[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G12]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 2772
- Maximum value: 4994
- Mean    value: 3883 (unweighted average)
- Standard deviation: 825.72
-stat v13[g=even]-veven, v13
- 
-             V13[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G13]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 2727
- Maximum value: 4949
- Mean    value: 3838 (unweighted average)
- Standard deviation: 825.72
-stat v14[g=even]-veven, v14
- 
-             V14[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G14]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 2722.5
- Maximum value: 4944.5
- Mean    value: 3833.5 (unweighted average)
- Standard deviation: 825.72
-stat v23[g=even]-veven, v23
- 
-             V23[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G23]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 2277
- Maximum value: 4499
- Mean    value: 3388 (unweighted average)
- Standard deviation: 825.72
-stat v24[g=even]-veven, v24
- 
-             V24[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G24]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 2272.5
- Maximum value: 4494.5
- Mean    value: 3383.5 (unweighted average)
- Standard deviation: 825.72
-stat v33[g=even]-veven, v33
- 
-             V33[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G33]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 2227.5
- Maximum value: 4449.5
- Mean    value: 3338.5 (unweighted average)
- Standard deviation: 825.72
-stat v234[g=even]-veven, v234
- 
-             V234[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G234]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 2277.5
- Maximum value: 4499.5
- Mean    value: 3388.5 (unweighted average)
- Standard deviation: 825.72
-stat v134[g=even]-veven, v134
- 
-             V134[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G134]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 2727.5
- Maximum value: 4949.5
- Mean    value: 3838.5 (unweighted average)
- Standard deviation: 825.72
-stat v124[g=even]-veven, v124
- 
-             V124[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G124]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 2772.5
- Maximum value: 4994.5
- Mean    value: 3883.5 (unweighted average)
- Standard deviation: 825.72
-stat v123[g=even]-veven, v123
- 
-             V123[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G123]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 2777
- Maximum value: 4999
- Mean    value: 3888 (unweighted average)
- Standard deviation: 825.72
-stat v1234[g=even]-veven, v1234
- 
-             V1234[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G1234]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 2777.5
- Maximum value: 4999.5
- Mean    value: 3888.5 (unweighted average)
- Standard deviation: 825.72
- 
-! and now with recalculations at every step
-CANCEL MEMORY/ALL
-SET MODE STUPID
-GO bn_regrid.sub
-! BN200_REGRID.SUB
-! compare various regriddings to the original data
- 
-stat v1[g=even]-veven, v1
- 
-             V1[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G1]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 2722
- Maximum value: 4944
- Mean    value: 3833 (unweighted average)
- Standard deviation: 825.72
-stat v2[g=even]-veven, v2
- 
-             V2[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G2]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 2272
- Maximum value: 4494
- Mean    value: 3383 (unweighted average)
- Standard deviation: 825.72
-stat v3[g=even]-veven, v3
- 
-             V3[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G3]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 2227
- Maximum value: 4449
- Mean    value: 3338 (unweighted average)
- Standard deviation: 825.72
-stat v4[g=even]-veven, v4
- 
-             V4[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G4]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 2222.5
- Maximum value: 4444.5
- Mean    value: 3333.5 (unweighted average)
- Standard deviation: 825.72
-stat v12[g=even]-veven, v12
- 
-             V12[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G12]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 2772
- Maximum value: 4994
- Mean    value: 3883 (unweighted average)
- Standard deviation: 825.72
-stat v13[g=even]-veven, v13
- 
-             V13[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G13]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 2727
- Maximum value: 4949
- Mean    value: 3838 (unweighted average)
- Standard deviation: 825.72
-stat v14[g=even]-veven, v14
- 
-             V14[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G14]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 2722.5
- Maximum value: 4944.5
- Mean    value: 3833.5 (unweighted average)
- Standard deviation: 825.72
-stat v23[g=even]-veven, v23
- 
-             V23[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G23]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 2277
- Maximum value: 4499
- Mean    value: 3388 (unweighted average)
- Standard deviation: 825.72
-stat v24[g=even]-veven, v24
- 
-             V24[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G24]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 2272.5
- Maximum value: 4494.5
- Mean    value: 3383.5 (unweighted average)
- Standard deviation: 825.72
-stat v33[g=even]-veven, v33
- 
-             V33[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G33]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 2227.5
- Maximum value: 4449.5
- Mean    value: 3338.5 (unweighted average)
- Standard deviation: 825.72
-stat v234[g=even]-veven, v234
- 
-             V234[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G234]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 2277.5
- Maximum value: 4499.5
- Mean    value: 3388.5 (unweighted average)
- Standard deviation: 825.72
-stat v134[g=even]-veven, v134
- 
-             V134[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G134]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 2727.5
- Maximum value: 4949.5
- Mean    value: 3838.5 (unweighted average)
- Standard deviation: 825.72
-stat v124[g=even]-veven, v124
- 
-             V124[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G124]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 2772.5
- Maximum value: 4994.5
- Mean    value: 3883.5 (unweighted average)
- Standard deviation: 825.72
-stat v123[g=even]-veven, v123
- 
-             V123[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G123]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 2777
- Maximum value: 4999
- Mean    value: 3888 (unweighted average)
- Standard deviation: 825.72
-stat v1234[g=even]-veven, v1234
- 
-             V1234[G=EVEN]-VEVEN
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 0
- Maximum value: 0
- Mean    value: 0 (unweighted average)
- Standard deviation: 0
- 
-             VEVEN[G=G1234]
-             X: 4.01 to 8.99
-             Y: 4.01 to 8.99
-             Z:  N/A
-             T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
-             DATA SET: N/A
- 
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad  data: 0
- Minimum value: 2777.5
- Maximum value: 4999.5
- Mean    value: 3888.5 (unweighted average)
- Standard deviation: 825.72
- 
-!****************** area-averaging regrids *******************
-! check easily computable area-averaged regrid
-LET vfine = X+Y
-LET vcoarse = vfine[g=gcoarse]
- 
-! first test without COS(latitude) corrections
-define axis/x=1:100:1/unit=cm xfine
-define axis/x=5.5:95.5:10/unit=cm xcoarse
-define axis/y=1:100:1/unit=cm yfine
-define axis/y=5.5:95.5:10/unit=cm ycoarse
-define grid/x=xfine/y=yfine gfine
-define grid/x=xcoarse/y=ycoarse gcoarse
- 
-set grid gfine
-set reg/x=20.5:80.5/y=20.5:80.5
-list vcoarse
-             VARIABLE : VFINE[G=GCOARSE]
-             SUBSET   : 6 by 6 points (X (CM)-Y (CM))
-              25.5     35.5     45.5     55.5     65.5     75.5   
-               3        4        5        6        7        8
- 25.5 / 3:   51.000   61.000   71.000   81.000   91.000  101.000
- 35.5 / 4:   61.000   71.000   81.000   91.000  101.000  111.000
- 45.5 / 5:   71.000   81.000   91.000  101.000  111.000  121.000
- 55.5 / 6:   81.000   91.000  101.000  111.000  121.000  131.000
- 65.5 / 7:   91.000  101.000  111.000  121.000  131.000  141.000
- 75.5 / 8:  101.000  111.000  121.000  131.000  141.000  151.000
-stat vcoarse,vfine
- 
-             VFINE[G=GCOARSE]
-             X (CM): 20.5 to 80.5
-             Y (CM): 20.5 to 80.5
-             Z:  N/A
-             T:  N/A
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 36 (6*6*1*1*1*1)
- # flagged as bad  data: 0
- Minimum value: 51
- Maximum value: 151
- Mean    value: 101 (unweighted average)
- Standard deviation: 24.495
- 
-             X+Y
-             X (CM): 20.5 to 80.5
-             Y (CM): 20.5 to 80.5
-             Z:  N/A
-             T:  N/A
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 3600 (60*60*1*1*1*1)
- # flagged as bad  data: 0
- Minimum value: 42
- Maximum value: 160
- Mean    value: 101 (unweighted average)
- Standard deviation: 24.495
-list vcoarse[x=@ave,y=@ave],vfine[x=@ave,y=@ave]
-             X (CM): 20.5 to 80.5 (XY ave)
-             Y (CM): 20.5 to 80.5 (XY ave)
- Column  1: VCOARSE is VFINE[G=GCOARSE]
- Column  2: VFINE is X+Y
-          VCOARSE    VFINE
-I / *:     101.000  101.000
- 
-! then test with COS(latitude) corrections
-define axis/x=1:100:1/unit=degrees xfine
-define axis/x=5.5:95.5:10/unit=degrees xcoarse
-define axis/y=1:100:1/unit=degrees yfine
-define axis/y=5.5:95.5:10/unit=degrees ycoarse
-define grid/x=xfine/y=yfine gfine
-define grid/x=xcoarse/y=ycoarse gcoarse
- 
-set grid gfine
-set reg/x=20.5:80.5/y=20.5:80.5
-list vcoarse
-             VARIABLE : VFINE[G=GCOARSE]
-             SUBSET   : 6 by 6 points (LONGITUDE-LATITUDE)
-               25.5E    35.5E    45.5E    55.5E    65.5E    75.5E  
-                3        4        5        6        7        8
- 75.5N / 8:  101.000  111.000  121.000  131.000  141.000  151.000
- 65.5N / 7:   91.000  101.000  111.000  121.000  131.000  141.000
- 55.5N / 6:   81.000   91.000  101.000  111.000  121.000  131.000
- 45.5N / 5:   71.000   81.000   91.000  101.000  111.000  121.000
- 35.5N / 4:   61.000   71.000   81.000   91.000  101.000  111.000
- 25.5N / 3:   51.000   61.000   71.000   81.000   91.000  101.000
-stat vcoarse,vfine
- 
-             VFINE[G=GCOARSE]
-             LONGITUDE: 20.5E to 80.5E
-             LATITUDE: 20.5N to 80.5N
-             Z:  N/A
-             T:  N/A
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 36 (6*6*1*1*1*1)
- # flagged as bad  data: 0
- Minimum value: 51
- Maximum value: 151
- Mean    value: 101 (unweighted average)
- Standard deviation: 24.495
- 
-             X+Y
-             LONGITUDE: 20.5E to 80.5E
-             LATITUDE: 20.5N to 80.5N
-             Z:  N/A
-             T:  N/A
-             E:  N/A
-             F:  N/A
-             DATA SET: N/A
- 
- Total # of data points: 3600 (60*60*1*1*1*1)
- # flagged as bad  data: 0
- Minimum value: 42
- Maximum value: 160
- Mean    value: 101 (unweighted average)
- Standard deviation: 24.495
-list vcoarse[x=@ave,y=@ave],vfine[x=@ave,y=@ave]
-             LONGITUDE: 20.5E to 80.5E (XY ave)
-             LATITUDE: 20.5N to 80.5N (XY ave)
- Column  1: VCOARSE is VFINE[G=GCOARSE]
- Column  2: VFINE is X+Y
-          VCOARSE    VFINE
-I / *:     94.7056  94.5308
- 
-!****************** F axis regridding *******************
-define axis/f="1-jan-1980":"1-jan-1982":24/t0="1-jan-1970" fax24
-define axis/f="1-jan-1980":"1-jan-1982":48/t0="1-jan-1920" fax48
-define grid/f=fax24 g24
-define grid/f=fax48 g48
-show grid/N=1:4 g24 g48
-    GRID G24
- name       axis              # pts   start                end
- normal    X
- normal    Y
- normal    Z
- normal    T
- normal    E
- FAX24     FORECAST           732 r   01-JAN-1980 00:00    01-JAN-1982 00:00
- 
-       N     F                   FBOX      FBOXLO                TSTEP (HOURS)
-       1>  01-JAN-1980 00:00:00  24         31-DEC-1979 12:00:00   87648
-       2>  02-JAN-1980 00:00:00  24         01-JAN-1980 12:00:00   87672
-       3>  03-JAN-1980 00:00:00  24         02-JAN-1980 12:00:00   87696
-       4>  04-JAN-1980 00:00:00  24         03-JAN-1980 12:00:00   87720
-    GRID G48
- name       axis              # pts   start                end
- normal    X
- normal    Y
- normal    Z
- normal    T
- normal    E
- FAX48     FORECAST           367 r   01-JAN-1980 00:00    02-JAN-1982 00:00
- 
-       N     F                   FBOX      FBOXLO                TSTEP (HOURS)
-       1>  01-JAN-1980 00:00:00  48         31-DEC-1979 00:00:00   525960
-       2>  03-JAN-1980 00:00:00  48         02-JAN-1980 00:00:00   526008
-       3>  05-JAN-1980 00:00:00  48         04-JAN-1980 00:00:00   526056
-       4>  07-JAN-1980 00:00:00  48         06-JAN-1980 00:00:00   526104
-set region/F="1-jan-1980":"8-jan-1980"
-let a24 = _F[g=g24]
-let a48 = _F[g=g48]
-list a24
-             VARIABLE : _F[G=G24]
-             SUBSET   : 8 points (FORECAST)
- 01-JAN-1980 00 / 1:  87648.0
- 02-JAN-1980 00 / 2:  87672.0
- 03-JAN-1980 00 / 3:  87696.0
- 04-JAN-1980 00 / 4:  87720.0
- 05-JAN-1980 00 / 5:  87744.0
- 06-JAN-1980 00 / 6:  87768.0
- 07-JAN-1980 00 / 7:  87792.0
- 08-JAN-1980 00 / 8:  87816.0
-list a48
-             VARIABLE : _F[G=G48]
-             SUBSET   : 4 points (FORECAST)
- 01-JAN-1980 00 / 1:  525960.
- 03-JAN-1980 00 / 2:  526008.
- 05-JAN-1980 00 / 3:  526056.
- 07-JAN-1980 00 / 4:  526104.
- 
-list a24[g=g48]
-             VARIABLE : _F[G=G24]
-                        regrid: G48
-             SUBSET   : 4 points (FORECAST)
- 01-JAN-1980 00 / 1:  87648.0
- 03-JAN-1980 00 / 2:  87696.0
- 05-JAN-1980 00 / 3:  87744.0
- 07-JAN-1980 00 / 4:  87792.0
-list a24[g=g48]-a48
-             VARIABLE : A24[G=G48]-A48
-             SUBSET   : 4 points (FORECAST)
- 01-JAN-1980 00 / 1: -438312.
- 03-JAN-1980 00 / 2: -438312.
- 05-JAN-1980 00 / 3: -438312.
- 07-JAN-1980 00 / 4: -438312.
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_syntax_6d
-! bn_syntax_6d.JNL
-! - test syntax interpretation of Program FERRET 6D
- 
-! SET - SHOW - CANCEL DATA
- 
-! 6D file based on gtbc011
-USE 6dfile
- 
-SHOW GRID
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid G48
-    GRID G48
- name       axis              # pts   start                end
- normal    X
- normal    Y
- normal    Z
- normal    T
- normal    E
- FAX48     FORECAST           367 r   01-JAN-1980 00:00    02-JAN-1982 00:00
-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
-             DEPTH (m): 5
-             TIME     : 15-MAR-1983 11:00
-             E        : 3
-             F        : 7
-                6.17N  
-                50
- 160.5W / 1:  3.70015
- 159.5W / 2:  3.70015
-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
- PSZT1     DEPTH (m)           27 i-  5                    3824
- TIME12    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
-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
- PSZT1     DEPTH (m)           27 i-  5                    3824
- TIME12    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
-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
- PSZT1     DEPTH (m)           27 i-  5                    3824
- TIME12    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
- 
-       I     X                   XBOX      XBOXLO
-       0>  20E                   358        159W(-159)
-SET GRID/RESTORE
-SHOW GRID
- Default grid for DEFINE VARIABLE is ABSTRACT
- 
-can dat/all
- 
-! nested brackets (7/95 - version 4.01)
-use 6dfile,gt4d011
-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
-             DEPTH (m): 5
-             TIME: 15-MAR-1983 10:00
-             E: 3
-             F: 7
-             DATA SET: ./6dfile.nc
- 
- Total # of data points: 1 (1*1*1*1*1*1)
- # flagged as bad  data: 0
- Minimum value: 34.97
- Maximum value: 34.97
- Mean    value: 34.97 (unweighted average)
-stat/k=1/l=1/j=40/i=3/M=3/N=4/d=2 temp[d=1,g=u]
- 
-             TEMPERATURE
-             regrid: U
-             LONGITUDE: 159W
-             LATITUDE: 3N
-             DEPTH (m): 5
-             TIME: 15-MAR-1983 10:00
-             E: 3
-             F: 7
-             DATA SET: ./6dfile.nc
- 
- Total # of data points: 1 (1*1*1*1*1*1)
- # flagged as bad  data: 0
- Minimum value: 34.962
- Maximum value: 34.962
- Mean    value: 34.962 (unweighted average)
- 
-! a common example: continuation for REPEAT loops
-repeat/M=1:3 (cancel data/all;\
-show data;\
-let a = _m;\
-list/nohead a;\
-cancel variables/all;\
-)
-!-> REPEAT: M=1
-     currently SET data sets:
-          1.00000
-!-> REPEAT: M=2
-     currently SET data sets:
-          2.00000
-!-> REPEAT: M=3
-     currently SET data sets:
-          3.00000
- 
-GO bn_reset
-cancel mode verify
-GO bn_expressions_6d
-! bn_expressions_6d.jnl
-! testing expressions syntax in E and F directions.
-! Note pseudo-variables are _E,
- 
-! test grid creation for a variety of combos
-let c1 = 2
-let m1 = _m
-let n1 = _n
- 
-! ... constant plus variable or pseudovariable
-set reg/m=1:3
-list/order=e _m + 2
-             VARIABLE : _M + 2
-             SUBSET   : 3 points (E)
-             1        2        3     
-             1        2        3
-          3.00000  4.00000  5.00000
-list/order=e 2 + _m
-             VARIABLE : 2 + _M
-             SUBSET   : 3 points (E)
-             1        2        3     
-             1        2        3
-          3.00000  4.00000  5.00000
-list/order=e m1 + 2
-             VARIABLE : M1 + 2
-             SUBSET   : 3 points (E)
-             1        2        3     
-             1        2        3
-          3.00000  4.00000  5.00000
-list/order=e 2 + m1
-             VARIABLE : 2 + M1
-             SUBSET   : 3 points (E)
-             1        2        3     
-             1        2        3
-          3.00000  4.00000  5.00000
-list/order=e _m + c1
-             VARIABLE : _M + C1
-             SUBSET   : 3 points (E)
-             1        2        3     
-             1        2        3
-          3.00000  4.00000  5.00000
-list/order=e c1 + _m
-             VARIABLE : C1 + _M
-             SUBSET   : 3 points (E)
-             1        2        3     
-             1        2        3
-          3.00000  4.00000  5.00000
-list/order=e m1 + c1
-             VARIABLE : M1 + C1
-             SUBSET   : 3 points (E)
-             1        2        3     
-             1        2        3
-          3.00000  4.00000  5.00000
-list/order=e c1 + m1
-             VARIABLE : C1 + M1
-             SUBSET   : 3 points (E)
-             1        2        3     
-             1        2        3
-          3.00000  4.00000  5.00000
- 
-! ... constant plus variable or pseudovariable with modified region
-set reg/m=11:13
-list/order=e _m[m=1:3] + 2
-             VARIABLE : _M[M=1:3] + 2
-             SUBSET   : 3 points (E)
-             1        2        3     
-             1        2        3
-          3.00000  4.00000  5.00000
-list/order=e 2 + _m[m=1:3]
-             VARIABLE : 2 + _M[M=1:3]
-             SUBSET   : 3 points (E)
-             1        2        3     
-             1        2        3
-          3.00000  4.00000  5.00000
-list/order=e m1[m=1:3] + 2
-             VARIABLE : M1[M=1:3] + 2
-             SUBSET   : 3 points (E)
-             1        2        3     
-             1        2        3
-          3.00000  4.00000  5.00000
-list/order=e 2 + m1[m=1:3]
-             VARIABLE : 2 + M1[M=1:3]
-             SUBSET   : 3 points (E)
-             1        2        3     
-             1        2        3
-          3.00000  4.00000  5.00000
-list/order=e _m[m=1:3] + c1
-             VARIABLE : _M[M=1:3] + C1
-             SUBSET   : 3 points (E)
-             1        2        3     
-             1        2        3
-          3.00000  4.00000  5.00000
-list/order=e c1 + _m[m=1:3]
-             VARIABLE : C1 + _M[M=1:3]
-             SUBSET   : 3 points (E)
-             1        2        3     
-             1        2        3
-          3.00000  4.00000  5.00000
-list/order=e m1[m=1:3] + c1
-             VARIABLE : M1[M=1:3] + C1
-             SUBSET   : 3 points (E)
-             1        2        3     
-             1        2        3
-          3.00000  4.00000  5.00000
-list/order=e c1 + m1[m=1:3]
-             VARIABLE : C1 + M1[M=1:3]
-             SUBSET   : 3 points (E)
-             1        2        3     
-             1        2        3
-          3.00000  4.00000  5.00000
- 
-! ... two variables or pseudovariables
-set reg/m=1:3/n=2
-list/order=e _m + _n
-             VARIABLE : _M + _N
-             SUBSET   : 3 points (E)
-             F        : 2
-             1        2        3     
-             1        2        3
-          3.00000  4.00000  5.00000
-list/order=e _m + n1
-             VARIABLE : _M + N1
-             SUBSET   : 3 points (E)
-             F        : 2
-             1        2        3     
-             1        2        3
-          3.00000  4.00000  5.00000
-list/order=e n1 + _m
-             VARIABLE : N1 + _M
-             SUBSET   : 3 points (E)
-             F        : 2
-             1        2        3     
-             1        2        3
-          3.00000  4.00000  5.00000
- 
-! ... two variables or pseudovariables with modified region
-set reg/m=1:3/n=1
-list/order=e _m + _n[n=2]
-             VARIABLE : _M + _N[N=2]
-             SUBSET   : 3 points (E)
-             F        : 2
-             1        2        3     
-             1        2        3
-          3.00000  4.00000  5.00000
-list/order=e _m + n1[n=2]
-             VARIABLE : _M + N1[N=2]
-             SUBSET   : 3 points (E)
-             F        : 2
-             1        2        3     
-             1        2        3
-          3.00000  4.00000  5.00000
-list/order=e n1[n=2] + _m
-             VARIABLE : N1[N=2] + _M
-             SUBSET   : 3 points (E)
-             F        : 2
-             1        2        3     
-             1        2        3
-          3.00000  4.00000  5.00000
- 
-! operators
-CANCEL REGION
-SET REGION/m=1:5/n=1:5
-LIST 10+2
-             VARIABLE : 10+2
-          12.0000
-LIST/order=e  _m
-             VARIABLE : _M
-                        axis ABSTRACT
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-          1.00000  2.00000  3.00000  4.00000  5.00000
-LIST/order=e  _m*3
-             VARIABLE : _M*3
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-           3.0000   6.0000   9.0000  12.0000  15.0000
-LIST/order=e  _m/3
-             VARIABLE : _M/3
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-          0.33333  0.66667  1.00000  1.33333  1.66667
-LIST/order=e  _m+3
-             VARIABLE : _M+3
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-          4.00000  5.00000  6.00000  7.00000  8.00000
-LIST/order=e  _m-3
-             VARIABLE : _M-3
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-         -2.00000 -1.00000  0.00000  1.00000  2.00000
-LIST/order=e  _m^3
-             VARIABLE : _M^3
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-            1.000    8.000   27.000   64.000  125.000
-LIST/order=e  _m EQ 3
-             VARIABLE : _M EQ 3
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-          0.00000  0.00000  1.00000  0.00000  0.00000
-LIST/order=e  _m NE 3
-             VARIABLE : _M NE 3
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-          1.00000  1.00000  0.00000  1.00000  1.00000
-LIST/order=e  _m GT 3
-             VARIABLE : _M GT 3
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-          0.00000  0.00000  0.00000  1.00000  1.00000
-LIST/order=e  _m GE 3
-             VARIABLE : _M GE 3
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-          0.00000  0.00000  1.00000  1.00000  1.00000
-LIST/order=e  _m LT 3
-             VARIABLE : _M LT 3
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-          1.00000  1.00000  0.00000  0.00000  0.00000
-LIST/order=e  _m LE 3
-             VARIABLE : _M LE 3
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-          1.00000  1.00000  1.00000  0.00000  0.00000
-LIST/order=e  (_m LT 3) OR (_m GT 3)
-             VARIABLE : (_M LT 3) OR (_M GT 3)
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-          1.00000  1.00000  0.00000  1.00000  1.00000
-LIST/order=e  (_m LE 3) AND (_m GE 3)
-             VARIABLE : (_M LE 3) AND (_M GE 3)
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-          0.00000  0.00000  1.00000  0.00000  0.00000
-LIST/order=e  (_m+3)*3 - 9 - (_m+_m+_m)
-             VARIABLE : (_M+3)*3 - 9 - (_M+_M+_M)
-             SUBSET   : 5 points (E)
-             1         2         3         4         5      
-              1         2         3         4         5
-          0.000000  0.000000  0.000000  0.000000  0.000000
-LIST/order=e  _n * ( (_m+3)*3 - 9 - (_m+_m+_m) )
-             VARIABLE : _N * ( (_M+3)*3 - 9 - (_M+_M+_M) )
-             SUBSET   : 5 by 5 points (E-F)
-             1         2         3         4         5      
-              1         2         3         4         5
- ---- N:1 F:   1
- N:1 F:   0.000000  0.000000  0.000000  0.000000  0.000000
- ---- N:2 F:   2
- N:2 F:   0.000000  0.000000  0.000000  0.000000  0.000000
- ---- N:3 F:   3
- N:3 F:   0.000000  0.000000  0.000000  0.000000  0.000000
- ---- N:4 F:   4
- N:4 F:   0.000000  0.000000  0.000000  0.000000  0.000000
- ---- N:5 F:   5
- N:5 F:   0.000000  0.000000  0.000000  0.000000  0.000000
- 
-! IF, THEN, ELSE
-LIST/order=e  IF _m GT 3 THEN _m
-             VARIABLE : IF _M GT 3 THEN _M
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-             ....     ....     ....  4.00000  5.00000
-LIST/order=e  IF _m GT 3 THEN _m ELSE 0
-             VARIABLE : IF _M GT 3 THEN _M ELSE 0
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-          0.00000  0.00000  0.00000  4.00000  5.00000
-! error: nested IF tests
-SET MODE IGNORE_ERRORS
-LIST/order=e  IF _m GT 3 THEN ( IF _m LT 5 THEN _m ELSE -9 ) ELSE .333	! err
-LET A = IF _m LT 5 THEN _m ELSE -9					! err
-SET MODE/LAST IGNORE_ERRORS
-LET A = IF _m LT 5 THEN _m ELSE (-9)
-LIST/order=e  IF _m GT 3 THEN ( A ) ELSE .333
-             VARIABLE : IF _M GT 3 THEN ( A ) ELSE .333
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-          0.33300  0.33300  0.33300  4.00000 -9.00000
- 
-! functions
-LIST/order=e  MAX(_m,3)
-             VARIABLE : MAX(_M,3)
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-          3.00000  3.00000  3.00000  4.00000  5.00000
-LIST/order=e  MIN(_m,3)
-             VARIABLE : MIN(_M,3)
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-          1.00000  2.00000  3.00000  3.00000  3.00000
-LIST/order=e  INT(_m/3)
-             VARIABLE : INT(_M/3)
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-          0.00000  0.00000  1.00000  1.00000  1.00000
-LIST/order=e  ABS(_m-3)
-             VARIABLE : ABS(_M-3)
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-          2.00000  1.00000  0.00000  1.00000  2.00000
-LIST/order=e  EXP(_m)
-             VARIABLE : EXP(_M)
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-            2.718    7.389   20.086   54.598  148.413
-LIST/order=e  LN(_m)
-             VARIABLE : LN(_M)
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-          0.00000  0.69315  1.09861  1.38629  1.60944
-LIST/order=e  LN(EXP(_m))
-             VARIABLE : LN(EXP(_M))
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-          1.00000  2.00000  3.00000  4.00000  5.00000
-LIST/order=e  EXP(LN(_m))
-             VARIABLE : EXP(LN(_M))
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-          1.00000  2.00000  3.00000  4.00000  5.00000
-LIST/order=e  LOG(_m)
-             VARIABLE : LOG(_M)
-             SUBSET   : 5 points (E)
-             1         2         3         4         5      
-              1         2         3         4         5
-          0.000000  0.301030  0.477121  0.602060  0.698970
-LIST/order=e  LOG(10^_m)
-             VARIABLE : LOG(10^_M)
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-          1.00000  2.00000  3.00000  4.00000  5.00000
-LIST/order=e  10^LOG(_m)
-             VARIABLE : 10^LOG(_M)
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-          1.00000  2.00000  3.00000  4.00000  5.00000
-LIST/order=e  SIN(_m)
-             VARIABLE : SIN(_M)
-             SUBSET   : 5 points (E)
-             1         2         3         4         5      
-              1         2         3         4         5
-          0.841471  0.909297  0.141120 -0.756802 -0.958924
-LIST/order=e  ASIN(SIN(_m/3))
-             VARIABLE : ASIN(SIN(_M/3))
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-          0.33333  0.66667  1.00000  1.33333  1.47493
-LIST/order=e  COS(_m)
-             VARIABLE : COS(_M)
-             SUBSET   : 5 points (E)
-             1         2         3         4         5      
-              1         2         3         4         5
-          0.540302 -0.416147 -0.989992 -0.653644  0.283662
-LIST/order=e  ACOS(COS(_m/3))
-             VARIABLE : ACOS(COS(_M/3))
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-          0.33333  0.66667  1.00000  1.33333  1.66667
-LIST/order=e  TAN(_m)
-             VARIABLE : TAN(_M)
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-          1.55741 -2.18504 -0.14255  1.15782 -3.38052
-LIST/order=e  ATAN(TAN(_m/3))
-             VARIABLE : ATAN(TAN(_M/3))
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-          0.33333  0.66667  1.00000  1.33333 -1.47493
-LIST/n=1:3    ATAN2(_n-1,_m-1)
-             VARIABLE : ATAN2(_N-1,_M-1)
-             SUBSET   : 5 by 3 points (E-F)
-              1        2        3        4        5     
-              1        2        3        4        5
- 1   / 1:     ....  0.00000  0.00000  0.00000  0.00000
- 2   / 2:  1.57080  0.78540  0.46365  0.32175  0.24498
- 3   / 3:  1.57080  1.10715  0.78540  0.58800  0.46365
-LIST/order=e  MOD(_m,3)
-             VARIABLE : MOD(_M,3)
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-          1.00000  2.00000  0.00000  1.00000  2.00000
-LIST/order=e  IGNORE0(_m-3)
-             VARIABLE : IGNORE0(_M-3)
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-         -2.00000 -1.00000     ....  1.00000  2.00000
-LIST/order=e  MISSING( IGNORE0(_m-3),-9 )
-             VARIABLE : MISSING( IGNORE0(_M-3),-9 )
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-         -2.00000 -1.00000 -9.00000  1.00000  2.00000
-LIST/order=e  RANDU(_m)
-             VARIABLE : RANDU(_M)
-             SUBSET   : 5 points (E)
-             1         2         3         4         5      
-              1         2         3         4         5
-          0.337575  0.723822  0.030403  0.849932  0.169352
-LIST/order=e  RANDN(_m)
-             VARIABLE : RANDN(_M)
-             SUBSET   : 5 points (E)
-             1        2        3        4        5     
-             1        2        3        4        5
-         -0.26718  0.28276 -0.32292  1.21676 -0.30437
- 
-! syntax errors
-SET MODE IGNORE_ERRORS
-load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
-SET MODE/LAST IGNORE_ERRORS
- 
-! test formatted output where the output field is too small
-LIST/m=1:3/FORMAT=(F6.2) 1/(_m-2)		! single column test
-             VARIABLE : 1/(_M-2)
-             BAD FLAG : -1.E+34       
-             SUBSET   : 3 points (E)
-             E        : 0.5 to 3.5
- -1.00
-******
-  1.00
-LIST/m=1:3/FORMAT=(2F6.2) 1/(_m-2),2/(_m-2)	! multi-column test
-             E: 0.5 to 3.5
- Column  1: EX#1 is 1/(_M-2)
- Column  2: EX#2 is 2/(_M-2)
- -1.00 -2.00
-************
-  1.00  2.00
- 
-! test grid box limit pseudo-variables
-LIST/m=5:7 EBOXLO, EBOXHI
-             E: 4.5 to 7.5
- Column  1: EBOXLO is EBOXLO (axis ABSTRACT)
- Column  2: EBOXHI is EBOXHI (axis ABSTRACT)
-          EBOXLO   EBOXHI
-5   / 5:  4.50000  5.50000
-6   / 6:  5.50000  6.50000
-7   / 7:  6.50000  7.50000
-LIST/n=5:7 FBOXLO, FBOXHI
-             F: 4.5 to 7.5
- Column  1: FBOXLO is FBOXLO (axis ABSTRACT)
- Column  2: FBOXHI is FBOXHI (axis ABSTRACT)
-          FBOXLO   FBOXHI
-5   / 5:  4.50000  5.50000
-6   / 6:  5.50000  6.50000
-7   / 7:  6.50000  7.50000
- 
-GO bn_reset
-cancel mode verify
-GO bn_direction_fcns_6d
-! bn_direction_functions_6d
-! Tests of sort, sample, reverse, convolve, compress, and compess_by
-! functions in the E and F directions.
- 
-! Sort and sort-string in E direction
- 
-let b = {5,4,3}
-let c = esequence(b)
-let m_index = sortm(c)
-list c, m_index, samplem(c, m_index)
-             E: 0.5 to 3.5
- Column  1: C is ESEQUENCE(B)
- Column  2: M_INDEX is SORTM(C)
- Column  3: EX#3 is SAMPLEM(C, M_INDEX)
-               C   M_INDEX   EX#3
-1   / 1:  5.00000  3.00000  3.00000
-2   / 2:  4.00000  2.00000  4.00000
-3   / 3:  3.00000  1.00000  5.00000
- 
-let e1 = esequence({"q", "0", "c"})
-let m_index = sortm(e1)  ! or sortm_str
-list e1, m_index, samplem(e1, m_index)
-             E: 0.5 to 3.5
- Column  1: E1 is ESEQUENCE({"q", "0", "c"})
- Column  2: M_INDEX is SORTM(E1)
- Column  3: EX#3 is SAMPLEM(E1, M_INDEX)
-         E1   M_INDEX EX#3
-1   / 1: "q"  2.00000 "0"
-2   / 2: "0"  3.00000 "c"
-3   / 3: "c"  1.00000 "q"
- 
- 
-! Sort and sort-string in F direction
- 
-let b = {5,4,3}
-let c = fsequence(b)
-let n_index = sortn(c)
-list c, n_index, samplen(c, n_index)
-             F: 0.5 to 3.5
- Column  1: C is FSEQUENCE(B)
- Column  2: N_INDEX is SORTN(C)
- Column  3: EX#3 is SAMPLEN(C, N_INDEX)
-               C   N_INDEX   EX#3
-1   / 1:  5.00000  3.00000  3.00000
-2   / 2:  4.00000  2.00000  4.00000
-3   / 3:  3.00000  1.00000  5.00000
- 
-let f1 = fsequence({"q", "0", "c"})
-let n_index = sortn(f1)  ! or sortn_str
-list f1, n_index, samplen(f1, n_index)
-             F: 0.5 to 3.5
- Column  1: F1 is FSEQUENCE({"q", "0", "c"})
- Column  2: N_INDEX is SORTN(F1)
- Column  3: EX#3 is SAMPLEN(F1, N_INDEX)
-         F1   N_INDEX EX#3
-1   / 1: "q"  2.00000 "0"
-2   / 2: "0"  3.00000 "c"
-3   / 3: "c"  1.00000 "q"
- 
-! Ereverse and Freverse
-use 6dfile
- 
-list/i=1/j=15/k=1/l=1/n=1 temp, ereverse(temp)
- WARNING: Listed variables have ambiguous coordinates on axes: E
-             DATA SET: ./6dfile.nc
-             LONGITUDE: 160.5W
-             LATITUDE: 5.5S
-             DEPTH (m): 5
-             TIME: 15-MAR-1983 10:00
-             F: 1
- Column  1: TEMP is TEMPERATURE (deg. C)
- Column  2: EX#2 is EREVERSE(TEMP)
-          TEMP    EX#2
-M / 1:  30.7500  34.7500
-M / 2:  31.7500  33.7500
-M / 3:  32.7500  32.7500
-M / 4:  33.7500  31.7500
-M / 5:  34.7500  30.7500
-list/i=1/j=15/k=1/l=1/m=1 temp, freverse(temp)
- WARNING: Listed variables have ambiguous coordinates on axes: F
-             DATA SET: ./6dfile.nc
-             LONGITUDE: 160.5W
-             LATITUDE: 5.5S
-             DEPTH (m): 5
-             TIME: 15-MAR-1983 10:00
-             E: 1
- Column  1: TEMP[D=6dfile,F=0:8] is TEMPERATURE (deg. C)
- Column  2: EX#2 is FREVERSE(TEMP)
-          TEMP    EX#2
-N / 1:  30.7500  31.3500
-N / 2:  30.9500  31.1500
-N / 3:  31.1500  30.9500
-N / 4:  31.3500  30.7500
-can dat/all
- 
-! ConvolveM, ConvolveN
-let a = esequence({0,1,1,0,1,0,0,0,,0,0,0})
-let apat = esequence({.25,.5,.25})
-list a, a[m=@spz], convolvem(a,apat), convolvem(a,{.1,.4,.4,.1})
-             E: 0.5 to 12.5
- Column  1: A is ESEQUENCE({0,1,1,0,1,0,0,0,,0,0,0})
- Column  2: A[E=@SPZ:3] is ESEQUENCE({0,1,1,0,1,0,0,0,,0,0,0}) (Parzen smoothed by 3 pts on E)
- Column  3: EX#3 is CONVOLVEM(A,APAT)
- Column  4: EX#4 is CONVOLVEM(A,{.1,.4,.4,.1})
-                 A      A        EX#3      EX#4
-1    /  1:  0.00000      ....      ....      ....
-2    /  2:  1.00000  0.750000  0.750000  0.800000
-3    /  3:  1.00000  0.750000  0.750000  0.600000
-4    /  4:  0.00000  0.500000  0.500000  0.500000
-5    /  5:  1.00000  0.500000  0.500000  0.400000
-6    /  6:  0.00000  0.250000  0.250000  0.100000
-7    /  7:  0.00000  0.000000  0.000000      ....
-8    /  8:  0.00000      ....      ....      ....
-9    /  9:     ....      ....      ....      ....
-10   / 10:  0.00000      ....      ....      ....
-11   / 11:  0.00000  0.000000  0.000000      ....
-12   / 12:  0.00000      ....      ....      ....
- 
-let b = fsequence({0,1,1,0,1,0,0,0,,0,0,0})
-let bpat = fsequence({.25,.5,.25})
-list b, b[n=@spz], convolven(b,bpat), convolven(b,{.1,.4,.4,.1})
-             F: 0.5 to 12.5
- Column  1: B is FSEQUENCE({0,1,1,0,1,0,0,0,,0,0,0})
- Column  2: B[F=@SPZ:3] is FSEQUENCE({0,1,1,0,1,0,0,0,,0,0,0}) (Parzen smoothed by 3 pts on F)
- Column  3: EX#3 is CONVOLVEN(B,BPAT)
- Column  4: EX#4 is CONVOLVEN(B,{.1,.4,.4,.1})
-                 B      B        EX#3      EX#4
-1    /  1:  0.00000      ....      ....      ....
-2    /  2:  1.00000  0.750000  0.750000  0.800000
-3    /  3:  1.00000  0.750000  0.750000  0.600000
-4    /  4:  0.00000  0.500000  0.500000  0.500000
-5    /  5:  1.00000  0.500000  0.500000  0.400000
-6    /  6:  0.00000  0.250000  0.250000  0.100000
-7    /  7:  0.00000  0.000000  0.000000      ....
-8    /  8:  0.00000      ....      ....      ....
-9    /  9:     ....      ....      ....      ....
-10   / 10:  0.00000      ....      ....      ....
-11   / 11:  0.00000  0.000000  0.000000      ....
-12   / 12:  0.00000      ....      ....      ....
- 
-! CompressM, CompressN
-let a = esequence({0,1,1,,1,0,,0}) + fsequence({0,,1,,1})
-list a
-             VARIABLE : ESEQUENCE({0,1,1,,1,0,,0}) + FSEQUENCE({0,,1,,1})
-             SUBSET   : 8 by 5 points (E-F)
-              1        2        3        4        5        6        7        8     
-              1        2        3        4        5        6        7        8
- 1   / 1:  0.00000  1.00000  1.00000     ....  1.00000  0.00000     ....  0.00000
- 2   / 2:     ....     ....     ....     ....     ....     ....     ....     ....
- 3   / 3:  1.00000  2.00000  2.00000     ....  2.00000  1.00000     ....  1.00000
- 4   / 4:     ....     ....     ....     ....     ....     ....     ....     ....
- 5   / 5:  1.00000  2.00000  2.00000     ....  2.00000  1.00000     ....  1.00000
-list compressm(a)
-             VARIABLE : COMPRESSM(A)
-             SUBSET   : 8 by 5 points (E-F)
-              1        2        3        4        5        6        7        8     
-              1        2        3        4        5        6        7        8
- 1   / 1:  0.00000  1.00000  1.00000  1.00000  0.00000  0.00000     ....     ....
- 2   / 2:     ....     ....     ....     ....     ....     ....     ....     ....
- 3   / 3:  1.00000  2.00000  2.00000  2.00000  1.00000  1.00000     ....     ....
- 4   / 4:     ....     ....     ....     ....     ....     ....     ....     ....
- 5   / 5:  1.00000  2.00000  2.00000  2.00000  1.00000  1.00000     ....     ....
-list compressn(a)
-             VARIABLE : COMPRESSN(A)
-             SUBSET   : 8 by 5 points (E-F)
-              1        2        3        4        5        6        7        8     
-              1        2        3        4        5        6        7        8
- 1   / 1:  0.00000  1.00000  1.00000     ....  1.00000  0.00000     ....  0.00000
- 2   / 2:  1.00000  2.00000  2.00000     ....  2.00000  1.00000     ....  1.00000
- 3   / 3:  1.00000  2.00000  2.00000     ....  2.00000  1.00000     ....  1.00000
- 4   / 4:     ....     ....     ....     ....     ....     ....     ....     ....
- 5   / 5:     ....     ....     ....     ....     ....     ....     ....     ....
- 
-let mask = esequence({1,,1,,1}) + 0*L[l=101:102]
-list mask
-             VARIABLE : ESEQUENCE({1,,1,,1}) + 0*L[L=101:102]
-             SUBSET   : 2 by 5 points (T-E)
-             101      102    
-            101      102
- 1   / 1:  1.00000  1.00000
- 2   / 2:     ....     ....
- 3   / 3:  1.00000  1.00000
- 4   / 4:     ....     ....
- 5   / 5:  1.00000  1.00000
-list compressm_by(esequence({10,20,30,40,50}),mask)
-             VARIABLE : COMPRESSM_BY(ESEQUENCE({10,20,30,40,50}),MASK)
-             SUBSET   : 2 by 5 points (T-E)
-             101      102    
-            101      102
- 1   / 1:  10.0000  10.0000
- 2   / 2:  30.0000  30.0000
- 3   / 3:  50.0000  50.0000
- 4   / 4:     ....     ....
- 5   / 5:     ....     ....
- 
-let mask = fsequence({1,,1,,1}) + 0*L[l=101:102]
-list mask
-             VARIABLE : FSEQUENCE({1,,1,,1}) + 0*L[L=101:102]
-             SUBSET   : 2 by 5 points (T-F)
-             101      102    
-            101      102
- 1   / 1:  1.00000  1.00000
- 2   / 2:     ....     ....
- 3   / 3:  1.00000  1.00000
- 4   / 4:     ....     ....
- 5   / 5:  1.00000  1.00000
-list compressn_by(fsequence({10,20,30,40,50}),mask)
-             VARIABLE : COMPRESSN_BY(FSEQUENCE({10,20,30,40,50}),MASK)
-             SUBSET   : 2 by 5 points (T-F)
-             101      102    
-            101      102
- 1   / 1:  10.0000  10.0000
- 2   / 2:  30.0000  30.0000
- 3   / 3:  50.0000  50.0000
- 4   / 4:     ....     ....
- 5   / 5:     ....     ....
- 
-GO bn_reset
-cancel mode verify
-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.
- 
-use gtsa056_1_ef
-set mode diag
- 
-define axis/f=23-jan-1982:30-jan-1982:20/unit=hour fax20
-define axis/x=120e:60w:10/unit=degrees xax10
-define grid/like=temp/f=fax20 g5day
- getgrid EX#1     C:  6 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
- dealloc  dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
- 
-set reg/x=130w:125w/y=0:1.5/e=1:2/f=23-JAN-1982:24-jan-1982/t=21-JAN-1982/z=5
- 
-use gtsa056_1_ef    	!kob 4/99
- 
-stat temp[g=g5day] - temp[g=g5day at ave]
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 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
- regrid  TEMP     M:118 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- strip regrid on F: TEMP --> G5DAY            @AVE
- reading TEMP     M:114 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- regrid  TEMP     M:104 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- doing --> EX#1[T=21-JAN-198200:00 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)
-             E: 1 to 2
-             FORECAST: 23-JAN-1982 00:00:00 to 24-JAN-1982 00:0
-             DATA SET: ./gtsa056_1_ef.nc
- 
- Total # of data points: 120 (5*6*1*1*2*2)
- # flagged as bad  data: 0
- Minimum value: -1.7333
- Maximum value: 2
- Mean    value: 0.13333 (unweighted average)
- Standard deviation: 1.8745
- 
-! 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: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           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]
- 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]
-             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)
-               129.5W   128.5W   127.5W   126.5W   125.5W  
-               101      102      103      104      105
- ---- N:1 F:   23-JAN-1982 00:00:00
- ---- M:1 E:   1
- 1.5N  / 46:  32.3553  32.3552  32.5032  32.8652  33.3285
- 1.17N / 45:  32.1766  32.1710  32.2834  32.5970  33.0244
- 0.83N / 44:  32.0256  32.0016  32.0631  32.3109  32.6873
- 0.5N  / 43:  31.9306  31.8902  31.8887  32.0374  32.3408
- 0.17N / 42:  31.8944  31.8343  31.7825  31.8263  32.0336
- 0.17S / 41:  31.9538  31.8657  31.7716  31.7285  31.8282
- ---- M:2 E:   2
- 1.5N  / 46:  38.3553  38.3552  38.5032  38.8652  39.3285
- 1.17N / 45:  38.1766  38.1710  38.2834  38.5970  39.0244
- 0.83N / 44:  38.0256  38.0016  38.0631  38.3109  38.6873
- 0.5N  / 43:  37.9306  37.8902  37.8887  38.0374  38.3408
- 0.17N / 42:  37.8944  37.8343  37.7825  37.8263  38.0336
- 0.17S / 41:  37.9538  37.8657  37.7716  37.7285  37.8282
- ---- N:2 F:   23-JAN-1982 20:00:00
- ---- M:1 E:   1
- 1.5N  / 46:  37.7553  37.7552  37.9032  38.2652  38.7285
- 1.17N / 45:  37.5766  37.5710  37.6834  37.9970  38.4244
- 0.83N / 44:  37.4256  37.4016  37.4631  37.7109  38.0873
- 0.5N  / 43:  37.3306  37.2902  37.2887  37.4374  37.7408
- 0.17N / 42:  37.2944  37.2343  37.1825  37.2263  37.4336
- 0.17S / 41:  37.3538  37.2657  37.1716  37.1285  37.2282
- ---- M:2 E:   2
- 1.5N  / 46:  43.7553  43.7552  43.9032  44.2652  44.7285
- 1.17N / 45:  43.5766  43.5710  43.6834  43.9970  44.4244
- 0.83N / 44:  43.4256  43.4016  43.4631  43.7109  44.0873
- 0.5N  / 43:  43.3306  43.2902  43.2887  43.4374  43.7408
- 0.17N / 42:  43.2944  43.2343  43.1825  43.2263  43.4336
- 0.17S / 41:  43.3538  43.2657  43.1716  43.1285  43.2282
-LIST temp[g=g5day]	
- dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
- -DELETE TEMP     M: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]
- 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]
-             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)
-               129.5W   128.5W   127.5W   126.5W   125.5W  
-               101      102      103      104      105
- ---- N:1 F:   23-JAN-1982 00:00:00
- ---- M:1 E:   1
- 1.5N  / 46:  34.3553  34.3552  34.5032  34.8652  35.3285
- 1.17N / 45:  34.1766  34.1710  34.2834  34.5970  35.0244
- 0.83N / 44:  34.0256  34.0016  34.0631  34.3109  34.6873
- 0.5N  / 43:  33.9306  33.8902  33.8887  34.0374  34.3408
- 0.17N / 42:  33.8944  33.8343  33.7825  33.8263  34.0336
- 0.17S / 41:  33.9538  33.8657  33.7716  33.7285  33.8282
- ---- M:2 E:   2
- 1.5N  / 46:  40.3553  40.3552  40.5032  40.8652  41.3285
- 1.17N / 45:  40.1766  40.1710  40.2834  40.5970  41.0244
- 0.83N / 44:  40.0256  40.0016  40.0631  40.3109  40.6873
- 0.5N  / 43:  39.9306  39.8902  39.8887  40.0374  40.3408
- 0.17N / 42:  39.8944  39.8343  39.7825  39.8263  40.0336
- 0.17S / 41:  39.9538  39.8657  39.7716  39.7285  39.8282
- ---- N:2 F:   23-JAN-1982 20:00:00
- ---- M:1 E:   1
- 1.5N  / 46:  36.0220  36.0219  36.1698  36.5318  36.9952
- 1.17N / 45:  35.8433  35.8377  35.9501  36.2637  36.6910
- 0.83N / 44:  35.6923  35.6682  35.7298  35.9776  36.3539
- 0.5N  / 43:  35.5973  35.5568  35.5554  35.7040  36.0075
- 0.17N / 42:  35.5610  35.5010  35.4491  35.4929  35.7003
- 0.17S / 41:  35.6205  35.5323  35.4383  35.3952  35.4948
- ---- M:2 E:   2
- 1.5N  / 46:  42.0220  42.0219  42.1698  42.5318  42.9952
- 1.17N / 45:  41.8433  41.8377  41.9501  42.2637  42.6910
- 0.83N / 44:  41.6923  41.6682  41.7298  41.9776  42.3539
- 0.5N  / 43:  41.5973  41.5568  41.5554  41.7040  42.0075
- 0.17N / 42:  41.5610  41.5010  41.4491  41.4929  41.7003
- 0.17S / 41:  41.6205  41.5323  41.4383  41.3952  41.4948
- 
-! unspecified regions
-SET MODE IGNORE	! V.5 change
-canc reg
-set reg/n=1:3/t=21-JAN-1982/z=5  ! x,y,e unspecified
- 
-canc reg
-set reg/i=101:105/j=41:42/t=21-JAN-1982/z=5  ! e,f unspecified
- 
-SET MODE/LAST IGNORE	! V.5 change
- 
-! plot verifications
-set mode interp    ! regridding is also an interpolation
-cancel viewports
-set window/size=.5/aspect=.4 1
- 
-! E axis
-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: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
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
- strip --> EX#1[F=23-JAN-198200:00:00 at ITP,D=1]
- strip --> EX#1[T=21-JAN-198200:00 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: -999 -999  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[F=23-JAN-198200:00:00 at ITP,D=1]
-setting up plot
-PPL plot 865  complete
-plot/over temp[g=g5day]
- dealloc  dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 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: -999 -999  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: 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]
-setting up plot
-PPL plot 866  complete
-plot/over temp[g=g5day at ave]
- dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
- -DELETE TEMP     M: 58 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M: 72 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L: -999 -999  M:    1    2  N:    1    1
- -DELETE TEMP     M: 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
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Y=0 at ITP,D=1]
- 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: -999 -999  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
- 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]
-setting up plot
-PPL plot 867  complete
-plot/over temp[g=g5day at asn]
- dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
- -DELETE TEMP     M: 58 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M: 72 dset:   1 I: -999 -999  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M: 80 dset:   1 I:   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
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Y=0 at ITP,D=1]
- 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: -999 -999  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
- 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]
-setting up plot
-PPL plot 868  complete
- 
-! F axis
-set region/x=180/y=20s:20n/e=2/t=21-JAN-1982/z=5
-plot temp
- dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
- -DELETE TEMP     M: 58 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M: 72 dset:   1 I: -999 -999  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M: 78 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L: -999 -999  M:    1    2  N:    1    1
- -DELETE TEMP     M: 80 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
- strip --> EX#1[F=23-JAN-198200:00:00 at ITP,D=1]
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  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[F=23-JAN-198200:00:00 at ITP,D=1]
-setting up plot
-PPL plot 869  complete
-plot/over temp[g=g5day]
- dealloc  dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:   50   51  J:    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]
-setting up plot
-PPL plot 870  complete
-plot/over temp[g=g5day at ave]
- dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
- -DELETE TEMP     M: 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[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]
-setting up plot
-PPL plot 871  complete
-plot/over temp[g=g5day at asn]
- dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
- -DELETE TEMP     M: 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[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]
-setting up plot
-PPL plot 872  complete
- 
-set mode/last interp
-cancel region
- 
-! test 2D regrid
-define axis/e=1.1:2.1:1 eoffset
-define axis/e=2.5/npoints=1 e1pt
-define axis/e=1.5:2.5:1 e2pt
-define axis/e=1.5:2.5:.5 e4pt
- 
-define axis/f=15-jan-1982:15-mar-1982:4/unit=day fax4day
-define axis/f=21-jan-1982/npoints=1/unit=day f1pt
-define axis/f=21-jan-1982:25-jan-1982/npoints=48/unit=hour f2pt
-define axis/f=15-jan-1982:15-mar-1982:96/unit=hour fax4day
- 
- 
-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 (G086)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- dealloc  dynamic grid (G086)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- allocate dynamic grid (G086)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- dealloc  dynamic grid (G086)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- allocate dynamic grid (G086)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      F1PT
- allocate dynamic grid (G098)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- dealloc  dynamic grid (G098)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- allocate dynamic grid (G098)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G098)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- strip regrid on E: A1 --> (G098)           @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 (G091)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- pseudo  _E       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
- allocate dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- pseudo  _F       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    1
- -DELETE _F       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    1
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- -DELETE _E       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
- dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- regrid  A1       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1   16
- regrid  A1       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- -DELETE A1       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1   16
- dealloc  dynamic grid (G098)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
-             VARIABLE : _E[GE=E1PT]+_F[GF=F1PT]
-                        regrid: 1 delta on E at AVE, 96 hour on F at AVE
-             SUBSET   : 2 by 16 points (E-FORECAST)
-                          1.1      2.1   
-                          1        2
- 15-JAN-1982 00 /  1:     ....     ....
- 19-JAN-1982 00 /  2:     ....  29593.5
- 23-JAN-1982 00 /  3:     ....  29593.5
- 27-JAN-1982 00 /  4:     ....     ....
- 31-JAN-1982 00 /  5:     ....     ....
- 04-FEB-1982 00 /  6:     ....     ....
- 08-FEB-1982 00 /  7:     ....     ....
- 12-FEB-1982 00 /  8:     ....     ....
- 16-FEB-1982 00 /  9:     ....     ....
- 20-FEB-1982 00 / 10:     ....     ....
- 24-FEB-1982 00 / 11:     ....     ....
- 28-FEB-1982 00 / 12:     ....     ....
- 04-MAR-1982 00 / 13:     ....     ....
- 08-MAR-1982 00 / 14:     ....     ....
- 12-MAR-1982 00 / 15:     ....     ....
- 16-MAR-1982 00 / 16:     ....     ....
-list a1[ge=eoffset at sum, gf=fax4day at sum]
- dealloc  dynamic grid (G098)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- -DELETE A1       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G098)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- dealloc  dynamic grid (G098)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- allocate dynamic grid (G098)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G098)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- strip regrid on E: A1 --> (G098)           @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 (G091)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- pseudo  _E       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
- allocate dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- pseudo  _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    1
- -DELETE _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    1
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- -DELETE _E       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
- dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- regrid  A1       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1   16
- regrid  A1       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- -DELETE A1       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1   16
- dealloc  dynamic grid (G098)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
-             VARIABLE : _E[GE=E1PT]+_F[GF=F1PT]
-                        regrid: 1 delta on E at SUM, 96 hour on F at SUM
-             SUBSET   : 2 by 16 points (E-FORECAST)
-                          1.1      2.1   
-                          1        2
- 15-JAN-1982 00 /  1:     ....     ....
- 19-JAN-1982 00 /  2:     ....  8878.05
- 23-JAN-1982 00 /  3:     ....  8878.05
- 27-JAN-1982 00 /  4:     ....     ....
- 31-JAN-1982 00 /  5:     ....     ....
- 04-FEB-1982 00 /  6:     ....     ....
- 08-FEB-1982 00 /  7:     ....     ....
- 12-FEB-1982 00 /  8:     ....     ....
- 16-FEB-1982 00 /  9:     ....     ....
- 20-FEB-1982 00 / 10:     ....     ....
- 24-FEB-1982 00 / 11:     ....     ....
- 28-FEB-1982 00 / 12:     ....     ....
- 04-MAR-1982 00 / 13:     ....     ....
- 08-MAR-1982 00 / 14:     ....     ....
- 12-MAR-1982 00 / 15:     ....     ....
- 16-MAR-1982 00 / 16:     ....     ....
-list a1[ge=eoffset at var, gf=fax4day at var]
- dealloc  dynamic grid (G098)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- -DELETE A1       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G098)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- dealloc  dynamic grid (G098)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- allocate dynamic grid (G098)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G098)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- strip regrid on E: A1 --> (G098)           @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 (G091)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- pseudo  _E       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
- allocate dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- pseudo  _F       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    1
- -DELETE _F       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    1
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- -DELETE _E       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
- dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- regrid  A1       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1   16
- regrid  A1       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- -DELETE A1       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1   16
- dealloc  dynamic grid (G098)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
-             VARIABLE : Variance of _E[GE=E1PT]+_F[GF=F1PT]
-                        regrid: 1 delta on E at VAR, 96 hour on F at VAR
-             SUBSET   : 2 by 16 points (E-FORECAST)
-                       1.1 2.1 
-                        1   2
- 15-JAN-1982 00 /  1:........
- 19-JAN-1982 00 /  2:........
- 23-JAN-1982 00 /  3:........
- 27-JAN-1982 00 /  4:........
- 31-JAN-1982 00 /  5:........
- 04-FEB-1982 00 /  6:........
- 08-FEB-1982 00 /  7:........
- 12-FEB-1982 00 /  8:........
- 16-FEB-1982 00 /  9:........
- 20-FEB-1982 00 / 10:........
- 24-FEB-1982 00 / 11:........
- 28-FEB-1982 00 / 12:........
- 04-MAR-1982 00 / 13:........
- 08-MAR-1982 00 / 14:........
- 12-MAR-1982 00 / 15:........
- 16-MAR-1982 00 / 16:........
- 
-list a2[ge=eoffset at ave, gf=fax4day at ave]
- dealloc  dynamic grid (G098)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- -DELETE A1       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid A2       C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G098)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- dealloc  dynamic grid (G098)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- allocate dynamic grid (G098)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- dealloc  dynamic grid (G098)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- allocate dynamic grid (G098)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      F2PT
- allocate dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- allocate dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- strip regrid on E: A2 --> (G091)           @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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- pseudo  _E       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- allocate dynamic grid (G105)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- pseudo  _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1   48
- -DELETE _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1   48
- dealloc  dynamic grid (G105)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- -DELETE _E       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- regrid  A2       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- regrid  A2       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- -DELETE A2       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
-             VARIABLE : _E[GE=E2PT]+_F[GF=F2PT]
-                        regrid: 1 delta on E at AVE, 96 hour on F at AVE
-             SUBSET   : 2 by 16 points (E-FORECAST)
-                          1.1      2.1   
-                          1        2
- 15-JAN-1982 00 /  1:     ....     ....
- 19-JAN-1982 00 /  2:  710186.  710186.
- 23-JAN-1982 00 /  3:  710234.  710234.
- 27-JAN-1982 00 /  4:  710282.  710282.
- 31-JAN-1982 00 /  5:     ....     ....
- 04-FEB-1982 00 /  6:     ....     ....
- 08-FEB-1982 00 /  7:     ....     ....
- 12-FEB-1982 00 /  8:     ....     ....
- 16-FEB-1982 00 /  9:     ....     ....
- 20-FEB-1982 00 / 10:     ....     ....
- 24-FEB-1982 00 / 11:     ....     ....
- 28-FEB-1982 00 / 12:     ....     ....
- 04-MAR-1982 00 / 13:     ....     ....
- 08-MAR-1982 00 / 14:     ....     ....
- 12-MAR-1982 00 / 15:     ....     ....
- 16-MAR-1982 00 / 16:     ....     ....
-list a2[ge=eoffset at sum, gf=fax4day at sum]
- dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- -DELETE A2       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- allocate dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- strip regrid on E: A2 --> (G091)           @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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- pseudo  _E       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- allocate dynamic grid (G105)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- pseudo  _F       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1   48
- -DELETE _F       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1   48
- dealloc  dynamic grid (G105)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- -DELETE _E       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- regrid  A2       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- regrid  A2       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- -DELETE A2       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
-             VARIABLE : _E[GE=E2PT]+_F[GF=F2PT]
-                        regrid: 1 delta on E at SUM, 96 hour on F at SUM
-             SUBSET   : 2 by 16 points (E-FORECAST)
-                           1.1        2.1    
-                           1          2
- 15-JAN-1982 00 /  1:       ....       ....
- 19-JAN-1982 00 /  2:    213056.    355093.
- 23-JAN-1982 00 /  3:  20028585.  33381003.
- 27-JAN-1982 00 /  4:    213084.    355141.
- 31-JAN-1982 00 /  5:       ....       ....
- 04-FEB-1982 00 /  6:       ....       ....
- 08-FEB-1982 00 /  7:       ....       ....
- 12-FEB-1982 00 /  8:       ....       ....
- 16-FEB-1982 00 /  9:       ....       ....
- 20-FEB-1982 00 / 10:       ....       ....
- 24-FEB-1982 00 / 11:       ....       ....
- 28-FEB-1982 00 / 12:       ....       ....
- 04-MAR-1982 00 / 13:       ....       ....
- 08-MAR-1982 00 / 14:       ....       ....
- 12-MAR-1982 00 / 15:       ....       ....
- 16-MAR-1982 00 / 16:       ....       ....
-list a2[ge=eoffset at var, gf=fax4day at var]
- dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- -DELETE A2       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- allocate dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- strip regrid on E: A2 --> (G091)           @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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- pseudo  _E       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- allocate dynamic grid (G105)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- pseudo  _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1   48
- -DELETE _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1   48
- dealloc  dynamic grid (G105)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- -DELETE _E       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- regrid  A2       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- regrid  A2       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- -DELETE A2       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
-             VARIABLE : Variance of _E[GE=E2PT]+_F[GF=F2PT]
-                        regrid: 1 delta on E at VAR, 96 hour on F at VAR
-             SUBSET   : 2 by 16 points (E-FORECAST)
-                            1.1          2.1     
-                            1            2
- 15-JAN-1982 00 /  1:         ....         ....
- 19-JAN-1982 00 /  2:         ....         ....
- 23-JAN-1982 00 /  3:         ....  5.16988E-27
- 27-JAN-1982 00 /  4:         ....         ....
- 31-JAN-1982 00 /  5:         ....         ....
- 04-FEB-1982 00 /  6:         ....         ....
- 08-FEB-1982 00 /  7:         ....         ....
- 12-FEB-1982 00 /  8:         ....         ....
- 16-FEB-1982 00 /  9:         ....         ....
- 20-FEB-1982 00 / 10:         ....         ....
- 24-FEB-1982 00 / 11:         ....         ....
- 28-FEB-1982 00 / 12:         ....         ....
- 04-MAR-1982 00 / 13:         ....         ....
- 08-MAR-1982 00 / 14:         ....         ....
- 12-MAR-1982 00 / 15:         ....         ....
- 16-MAR-1982 00 / 16:         ....         ....
- 
-! 1/00 additions to check details of @MIN, at MAX bevavior
- 
-let a1 = _e[ge=e1pt]
- dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- -DELETE A2       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- -DELETE A2       M: 50 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   48
- -DELETE A2       M: 56 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   48
- -DELETE A2       M: 62 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   48
- dealloc  dynamic grid (G098)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      F2PT
- -DELETE A1       M: 54 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1    1
- -DELETE A1       M: 64 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1    1
- -DELETE A1       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1    1
- dealloc  dynamic grid (G086)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      F1PT
-let a2 = _e[ge=e2pt]
-let a4 = _e[ge=e4pt]
- 
-list a1[ge=eoffset at max]
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid A1       C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G086)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- dealloc  dynamic grid (G086)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- allocate dynamic grid (G086)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- allocate dynamic grid (G098)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- dealloc  dynamic grid (G098)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- allocate dynamic grid (G098)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G098)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- strip regrid on E: A1 --> (G098)           @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 (G086)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- pseudo  _E       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
- dealloc  dynamic grid (G086)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- regrid  A1       M: 54 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G098)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
-             VARIABLE : _E[GE=E1PT]
-                        regrid: 1 delta on E at MAX
-             SUBSET   : 2 points (E)
- 1.1 / 1:     ....
- 2.1 / 2:  2.50000
-list a2[ge=eoffset at max]
- -DELETE _E       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
- dealloc  dynamic grid (G098)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- -DELETE A1       M: 54 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid A2       C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G098)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- dealloc  dynamic grid (G098)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- allocate dynamic grid (G098)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- allocate dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- allocate dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- strip regrid on E: A2 --> (G091)           @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 (G098)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- pseudo  _E       M: 54 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G098)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- regrid  A2       M: 62 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
-             VARIABLE : _E[GE=E2PT]
-                        regrid: 1 delta on E at MAX
-             SUBSET   : 2 points (E)
- 1.1 / 1:  1.50000
- 2.1 / 2:  2.50000
-list a4[ge=eoffset at max]
- -DELETE _E       M: 54 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- -DELETE A2       M: 62 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid A4       C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- allocate dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- allocate dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- allocate dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- strip regrid on E: A4 --> (G101)           @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 (G091)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- pseudo  _E       M: 62 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
- dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- regrid  A4       M: 56 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
-             VARIABLE : _E[GE=E4PT]
-                        regrid: 1 delta on E at MAX
-             SUBSET   : 2 points (E)
- 1.1 / 1:  1.50000
- 2.1 / 2:  2.50000
-list a4[ge=eoffset at min]
- -DELETE _E       M: 62 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- -DELETE A4       M: 56 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- allocate dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- strip regrid on E: A4 --> (G101)           @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 (G091)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- pseudo  _E       M: 56 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
- dealloc  dynamic grid (G091)          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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
-             VARIABLE : _E[GE=E4PT]
-                        regrid: 1 delta on E at MIN
-             SUBSET   : 2 points (E)
- 1.1 / 1:  1.50000
- 2.1 / 2:  2.00000
-list a4[ge=eoffset at sum] ! 5+5.5+6+6.5=23
- -DELETE _E       M: 56 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- -DELETE A4       M: 50 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- allocate dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- strip regrid on E: A4 --> (G101)           @SUM
- eval    A4       C:  7 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
- allocate dynamic grid (G091)          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 (G091)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- regrid  A4       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
-             VARIABLE : _E[GE=E4PT]
-                        regrid: 1 delta on E at SUM
-             SUBSET   : 2 points (E)
- 1.1 / 1:  1.05000
- 2.1 / 2:  4.20000
- 
-! time axes with different encodings
-define axis/f=1-jan-1990:5-jan-1990:1/units=days eday
-define axis/f=1-jan-1990:5-jan-1990:24/units=hours ehour
-let afcst = _f[gf=eday]
-list afcst
- -DELETE _E       M: 50 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- -DELETE A4       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid AFCST    C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
- allocate dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
- allocate dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    AFCST    C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
- pseudo  _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    5
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
-             VARIABLE : _F[GF=EDAY]
-             SUBSET   : 5 points (FORECAST)
- 01-JAN-1990 00 / 1:  32493.0
- 02-JAN-1990 00 / 2:  32494.0
- 03-JAN-1990 00 / 3:  32495.0
- 04-JAN-1990 00 / 4:  32496.0
- 05-JAN-1990 00 / 5:  32497.0
-show grid
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G101)
-    GRID (G101)
- name       axis              # pts   start                end
- normal    X
- normal    Y
- normal    Z
- normal    T
- normal    E
- EDAY      FORECAST             5 r   01-JAN-1990 00:00    05-JAN-1990 00:00
-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 (G101)          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 (G105)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
- dealloc  dynamic grid (G105)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
- allocate dynamic grid (G105)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G105)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
- strip regrid on F: AFCST --> (G105)           @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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
- pseudo  _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    5
- dealloc  dynamic grid (G101)          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 (G105)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
-             VARIABLE : _F[GF=EDAY]
-                        regrid: 24 hour on F at MAX
-             SUBSET   : 5 points (FORECAST)
- 01-JAN-1990 00 / 1:  32493.0
- 02-JAN-1990 00 / 2:  32494.0
- 03-JAN-1990 00 / 3:  32495.0
- 04-JAN-1990 00 / 4:  32496.0
- 05-JAN-1990 00 / 5:  32497.0
-show grid
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G105)
-    GRID (G105)
- name       axis              # pts   start                end
- normal    X
- normal    Y
- normal    Z
- normal    T
- normal    E
- EHOUR     FORECAST             5 r   01-JAN-1990 00:00    05-JAN-1990 00:00
- 
-set mode/last diag
- 
-GO bn_reset
-cancel mode verify
-GO bn_aggregate_e
-! bn_aggregate_e.jnl
-! using the DEFINE ATTRIBUTE/E command
-! Datasets share sst, but only ens1 has airt.
- 
-set mode diag
- 
-use ens1, ens2, ens3, ens4
-define data/agg/title fourfiles = ens1, ens3, ens2, ens4
- allocate dynamic grid (G101)          COADSX116_COADSY52_6NORMAL    TIME12    ENSEMBLE  NORMAL
- 
-! The grid of SST is known.
-show data fourfiles
-     currently SET data sets:
-    5> FOURFILES  (default)  Ferret-defined Ensemble dataset
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
- 
- 
-list/i=3 sst[T=@ave]
- getgrid EX#1     C:  5 dset:   5 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G101)          COADSX116_COADSY52_6NORMAL    TIME12    ENSEMBLE  NORMAL
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   5 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  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
- 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
- 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
- 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
- doing aggregate gathering SST on E axis:     4     4 dset:   4
- 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)
-             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.513   28.441   27.892   27.457   26.726   25.561     ....     ....     ....
- 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     ....     ....     ....
-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 (G101)          COADSX116_COADSY52_6NORMAL    TIME12    ENSEMBLE  NORMAL
- 
-! Create airt in the other datasets by LET/D definitions.
-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
- allocate dynamic grid (G101)          COADSX116_COADSY52_6NORMAL    TIME12    ENSEMBLE  NORMAL
- getgrid AIRT     C:  6 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    TIME12    NORMAL    NORMAL
- getgrid AIRT     C:  6 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME12    NORMAL    NORMAL
- getgrid AIRT     C:  6 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    TIME12    NORMAL    NORMAL
-show data fourfiles
-     currently SET data sets:
-    5> FOURFILES  (default)  Ferret-defined Ensemble dataset
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
- getgrid EX#1     C:  7 dset:   5 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid AIRT     C:  9 dset:   5 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G101)          COADSX116_COADSY52_6NORMAL    TIME12    ENSEMBLE  NORMAL
- allocate dynamic grid (G101)          COADSX116_COADSY52_6NORMAL    TIME12    ENSEMBLE  NORMAL
- AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      1:4       ...
- 
- 
-list/i=3 airt[T=@ave]
- dealloc  dynamic grid (G101)          COADSX116_COADSY52_6NORMAL    TIME12    ENSEMBLE  NORMAL
- getgrid EX#1     C:  5 dset:   5 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G101)          COADSX116_COADSY52_6NORMAL    TIME12    ENSEMBLE  NORMAL
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   5 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  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    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]
-             VARIABLE : AIR TEMPERATURE (DEG C)
-             DATA SET : Ensemble
-             FILENAME : FOURFILES
-             SUBSET   : 9 by 4 points (LATITUDE-E)
-             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:   86.539   86.323   84.676   83.370   81.177   77.683     ....     ....     ....
- 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     ....     ....     ....
- 
-cancel mode diag
-cancel data/all
-cancel var/all
- 
-! Subsets of coads_climatology and monthly_navy_winds.
-! Define an ensemble after making LET/D definitions so that
-! variables have the same name and grid.
-use coads_uw
-use navy_uw
- 
-! Define the ensemble dataset
- 
-! intentional errors:
-set mode ignore
- 
-! Use dataset thats not open.
-define data/agg windy = 1,2,3
- 
-! No variables on comparable grids.
-define data/agg windy = 1,2
- 
-set mode/last ignore
- 
-! Rename the varibles in dataset 2, then define UWND and VWND as
-! variables on the grid of dset 1.
-set dat 2
-set var/name=uin uwnd
-set var/name=vin vwnd
- 
-! Define uwnd and vwnd in dataset 2 to have the grid of
-! those variables in dataset 1
- 
-let/d=2/units="`uin,return=units`"/title="`uin,return=title`" \
- uwnd = uin[d=2,gxy=uwnd[d=1],gt=uwnd[d=1]@mod]
- !-> DEFINE VARIABLE/d=2/units="M/S"/title="ZONAL WIND"  uwnd = uin[d=2,gxy=uwnd[d=1],gt=uwnd[d=1]@mod]
-let/d=2/units="`vin,return=units`"/title="`vin,return=title`" \
- vwnd = vin[d=2,gxy=vwnd[d=1],gt=vwnd[d=1]@mod]
- !-> DEFINE VARIABLE/d=2/units="M/S"/title="MERIDIONAL WIND"  vwnd = vin[d=2,gxy=vwnd[d=1],gt=vwnd[d=1]@mod]
- 
-show data
-     currently SET data sets:
-    1> ./coads_uw.nc
- name     title                             I         J         K         L         M         N
- UWND     ZONAL WIND                       1:30      1:30      ...       1:12      ...       ...
- VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12      ...       ...
- SPEH     SPECIFIC HUMIDITY                1:30      1:30      ...       1:12      ...       ...
- 
-    2> ./navy_uw.nc  (default)
- name     title                             I         J         K         L         M         N
- UIN      ZONAL WIND                       1:30      1:30      ...       1:30      ...       ...
- VIN      MERIDIONAL WIND                  1:30      1:30      ...       1:30      ...       ...
- ------------------------------
- VWND[D=navy_uw] = VIN[D=2,GXY=VWND[D=1],GT=VWND[D=1]@MOD]
- UWND[D=navy_uw] = UIN[D=2,GXY=UWND[D=1],GT=UWND[D=1]@MOD]
- 
- 
-! Define the ensemble dataset
-define data/agg 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 dataset
- 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       ...
- 
- 
-! 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]
-             LONGITUDE: 59W(-59) to 51W(-51)
-             LATITUDE: 30N (interpolated)
-             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
-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
-53W    / -27:  1.93361  0.507158  1.93361  0.507158  1.22038
-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
- 
-cancel data 3
- 
-! Define the ensemble dataset
-define data/agg 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 dataset
- 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       ...
- 
- 
-! 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]
-             LONGITUDE: 59W(-59) to 51W(-51)
-             LATITUDE: 30N (interpolated)
-             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
-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
- 
-! DEFINE DATA/HIDE
-! SHOW DATA/HIDDEN
-! Alias ENSEMBLE for DEFINE DATA/AGG/E
- 
-! If define the ensemble with /HIDE then SHOW DAT will skip the
-! member datasets and show only the ensemble.
-! show dat/hidden forces showing all
- 
-sh 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
- DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
- DEFINE ALIAS
- DEFINE SYMBOL
- DEFINE ATTRIBUT/D/TYPE/OUTPUT
- DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/E/TITLE/QUIET/HIDE
-sh command show
- 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/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE
- SHOW COMMANDS/ALL
- 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
- 
-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
-     currently SET data sets:
-    5> FOURFILES  (default)  Ferret-defined Ensemble dataset
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
- 
- 
-! If ask for a member set by name or number, do show it
-sh dat 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
-     currently SET data sets:
-    3> ./ens3.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
- 
-! should show all members plus ensemble
-sh dat/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 dataset
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
- 
- 
-! Should show original member datasets
-can dat fourfiles
-sh dat
-     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
- 
-! Cancel a member, then the ensemble gets canceled.
-! The hidden members should show up.
- 
-use ens1, ens2, ens3, ens4
-ensemble/HIDE/title="uvars in dset 2"  my_ens = 1,2
-sh dat
-     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 dataset
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:2       ...
- 
-can dat  2
-sh dat
-     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      ...       ...
- 
- 
-! Cancel the ensemble, then hidden members get un-hidden.
- 
-use ens1, ens2, ens3, ens4
-ensemble/HIDE/title="uvars in dset 2"  my_ens = 1,2,3,4
- 
-! members hidden, showing only ensemble.
-sh dat
-     currently SET data sets:
-    5> MY_ENS  (default)  Ferret-defined Ensemble dataset
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
- 
-can dat my_ens
- 
-! Cancel ensemble dataset: members un-hidden
-sh dat
-     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      ...       ...
- 
- 
-! Define several ensembles with /HIDE
-ensemble/HIDE/title="ensemble with hidden members" fourfiles = ens1, ens2, ens3, ens4
-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
-     currently SET data sets:
-    5> FOURFILES     Ferret-defined Ensemble dataset
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
- 
-    6> SOME     Ferret-defined Ensemble dataset
- 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 dataset
- 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
-     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      ...       ...
- 
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_6d_lab_mode
-! bn_6d_lab_mode.jnl
-!
-! Tests of CANCEL MODE 6d_lab, writes SHOW and STAT output in classic 4D form.
-!
-use gt4d011
- 
-! Mode affects output of SHOW
- 
-set mode 6d_lab  ! this is the default setting
-show data
-     currently SET data sets:
-    1> ./gt4d011.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25      ...       ...
- SALT     (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25      ...       ...
- U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25      ...       ...
- V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25      ...       ...
- W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25      ...       ...
- TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25      ...       ...
- TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25      ...       ...
- PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25      ...       ...
- 
-cancel mode 6d_lab
-show data
-     currently SET data sets:
-    1> ./gt4d011.cdf  (default)
- name     title                             I         J         K         L
- TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25
- SALT     (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25
- U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25
- V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25
- W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25
- TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25
- TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25
- PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25
- 
- 
-! Mode affects output of SHOW GRID
- 
-set mode 6d_lab
-show grid temp
-    GRID PS3DT2
- name       axis              # pts   start                end
- PSXT      LONGITUDE          160mr   130.5E               70.5W
- PSYT1     LATITUDE           100 i   28.836S              48.568N
- PSZT1     DEPTH (m)           27 i-  5                    3824
- TIME12    TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00
- 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
- PSYT1     LATITUDE           100 i   28.836S              48.568N
- PSZT1     DEPTH (m)           27 i-  5                    3824
- TIME12    TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00
- 
-! Mode affects output of STAT
- 
-set mode 6d_lab
-stat temp
- 
-             TEMPERATURE
-             LONGITUDE: 140W to 122W
-             LATITUDE: 3.667S to 3.667N
-             DEPTH (m): 0 to 100
-             TIME: 14-AUG-1982 11:00 to 13-JAN-1983 13:00
-             E:  N/A
-             F:  N/A
-             DATA SET: ./gt4d011.cdf
- 
- Total # of data points: 99000 (18*22*10*25*1*1)
- # flagged as bad  data: 0
- Minimum value: 21.597
- Maximum value: 33.497
- Mean    value: 27.704 (unweighted average)
- Standard deviation: 2.4542
-cancel mode 6d_lab
-stat temp
- 
-             TEMPERATURE
-             LONGITUDE: 140W to 122W
-             LATITUDE: 3.667S to 3.667N
-             DEPTH (m): 0 to 100
-             TIME: 14-AUG-1982 11:00 to 13-JAN-1983 13:00
-             DATA SET: ./gt4d011.cdf
- 
- Total # of data points: 99000 (18*22*10*25)
- # flagged as bad  data: 0
- Minimum value: 21.597
- Maximum value: 33.497
- Mean    value: 27.704 (unweighted average)
- Standard deviation: 2.4542
- 
-! Mode affects diagnostic output
- 
-set mode diag
-set mode 6d_lab
-list/L=1:8 taux[x=@ave,y=@ave]
- dealloc  dynamic grid PS3DT2          PSXT      PSYT1     PSZT1     TIME12    NORMAL    NORMAL
- getgrid EX#1     C:  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    TIME12    NORMAL    NORMAL
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- strip --> TAUX[Y=3.5S:3.5N at AV4,D=1]
- reading TAUX     M:110 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
-             SUBSET   : 8 points (TIME)
-             LONGITUDE: 139.5W to 121.5W (XY ave)
-             LATITUDE : 3.5S to 3.5N (XY ave)
- 17-AUG-1982 12 / 1: -0.274203
- 23-AUG-1982 14 / 2: -0.236318
- 29-AUG-1982 16 / 3: -0.198434
- 04-SEP-1982 18 / 4: -0.160549
- 10-SEP-1982 20 / 5: -0.122665
- 16-SEP-1982 22 / 6: -0.104062
- 23-SEP-1982 00 / 7: -0.104740
- 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    TIME12
- 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    TIME12
- strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    8
- strip --> TAUX[Y=3.5S:3.5N at SM4,D=1]
- reading TAUX     M: 96 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
-             SUBSET   : 8 points (TIME)
-             LONGITUDE: 139.5W to 121.5W (XY summed)
-             LATITUDE : 3.5S to 3.5N (XY summed)
- 17-AUG-1982 12 / 1: -103.649
- 23-AUG-1982 14 / 2:  -89.328
- 29-AUG-1982 16 / 3:  -75.007
- 04-SEP-1982 18 / 4:  -60.686
- 10-SEP-1982 20 / 5:  -46.365
- 16-SEP-1982 22 / 6:  -39.333
- 23-SEP-1982 00 / 7:  -39.590
- 29-SEP-1982 02 / 8:  -39.847
-can mode diag
- 
-! restore default setting
-set mode 6d_lab
- 
- 
-! *********** v6.82 Additions ***********
-GO bn_reset
-cancel mode verify
-GO bn682_bug_fixes
-! bn682_bug_fixes.jnl
-! test various fixes that went into version 6.82
-! 8/2012 ACM
- 
-GO bn_reset
-cancel mode verify
-GO err681_dims_direction
-! err681_dims_direction.jnl
-! ticket 1955: Code still existed that determined axis direction
-! according to axis name.  Here, coordinate variables are defined,
-! but their dimensions are not coordinate variables, so there isn't
-! direct info in the file about the directions of the dimensions.
-! netcdf dims {
-! dimensions:
-!        ETA = 4 ;
-!        TAU1 = 7 ;
-!        ZT_OCEAN = 1 ;
-! variables:
-!  ...
-!        float LON_C(TAU, ETA) ;
-!                LON_C:long_name = "uv longitude" ;
-!                LON_C:units = "degrees_E" ;
-!                LON_C:history = "From data_1302" ;
-!
-! Where tau is intended to be a Y axis and ETA is an X axis.
-! 4D Ferret puts these in an X and a T direction, and inital versions
-! of 6D Ferret had them in the E and T directions.  They should just
-! get assigned by position, here with TAU in the Y direction an ETA in x.
- 
-use dims_not_coord
-sh dat
-     currently SET data sets:
-    1> ./dims_not_coord.nc  (default)
- name     title                             I         J         K         L         M         N
- U        zonal current                    1:4       1:7       1:1       ...       ...       ...
- LON_C    uv longitude                     1:4       1:7       ...       ...       ...       ...
- LAT_C    uv latitude                      1:4       1:7       ...       ...       ...       ...
- 
-sho grid lon_c
-    GRID GOS2
- name       axis              # pts   start                end
- ETA       X                    4 r   1                    4
- TAU1      Y                    7 r   1                    7
- normal    Z
- normal    T
- normal    E
- normal    F
- 
- 
-! *********** v6.83 Additions ***********
-!  (was released as v6.84)
- 
-GO bn_reset
-cancel mode verify
-GO bn683_bug_fixes
-! bn683_bug_fixes.jnl
-! test various fixes that went into version 6.83
-! 8/2012 ACM
- 
-GO bn_reset
-cancel mode verify
-GO err682_shrink_axlab
-! err682_shrink_axlab.jnl
-! See ticket 1958. Scripts may want the axis labels to
-! run out of the viewport or off the page. So shrink labels
-! only if MODE SHRINK_YLAB has been set.
-! See also err672_runoff_page.jnl and err672_vert_axislabel.jnl
-!
-! Default setting, mode shrink_ylab is cancelled.
- 
-! The lower plot has its vertical axis labels intact and visible.
-! The upper one will have them shrink away to nothing.
- 
-set view lr
-go magnify
-plot/vs {-1,1},{-1,1}
- 
-set mode shrink_ylab
- 
-set view ur
-go magnify
-plot/vs {-1,1},{-1,1}
- 
-set mode/last shrink_ylab
- 
- 
-GO bn_reset
-cancel mode verify
-GO err682_xact_high_prec
-! err682_xact_high_prec.jnl
-! based on an example from the Users List,
-! http://www.pmel.noaa.gov/maillists/tmap/ferret_users/fu_2012/msg00477.html
- 
-! shows that the @XACT regridding in double-precision Ferret is broken.
- 
- 
-Let time = {\
- 22585.3295833333,\
- 22585.3302777778,\
- 22585.3309722222,\
- 22585.3316666667,\
- 22585.3323611111,\
- 22585.3330555556,\
- 22585.33375,\
- 22585.3344444444,\
- 22585.3351388889,\
- 22585.3358333333}
- 
-Define Axis /T /From /T0=1-JAN-1950 /Units=days my_axis = time
- 
-Let fake_var = T[GT=my_axis]
-Let var = RANDU( fake_var )
-Let var_regrid = RESHAPE( var, fake_var )
- 
-List /T="2-nov-2011 07:54":"2-nov-2011 08:04" var_regrid
-             VARIABLE : RESHAPE( VAR, FAKE_VAR )
-             SUBSET   : 10 points (TIME)
- 02-NOV-2011 07:54:36 /  1:  0.625140
- 02-NOV-2011 07:55:36 /  2:  0.220931
- 02-NOV-2011 07:56:36 /  3:  0.607368
- 02-NOV-2011 07:57:36 /  4:  0.322594
- 02-NOV-2011 07:58:36 /  5:  0.107545
- 02-NOV-2011 07:59:36 /  6:  0.225720
- 02-NOV-2011 08:00:36 /  7:  0.081070
- 02-NOV-2011 08:01:36 /  8:  0.898013
- 02-NOV-2011 08:02:36 /  9:  0.716275
- 02-NOV-2011 08:03:36 / 10:  0.664871
- 
-! Note that if we define the axis as below, the regridding is
-! successful. But the @XACT regridding in v6.82 was requiring too
-! much matching precision.
- 
-!    DEFINE AXIS/t="02-nov-2011:07:54:36":"02-nov-2011:08:03:36":60/units=seconds/T0=1-JAN-1950 my_axis
-!    let time = t[gt=my_axis]
-!    Let var = TSEQUENCE( RANDU( time ) )
-!    Let fake_var = T[GT=my_axis]
-!    Let var_regrid = RESHAPE( var, fake_var )
- 
-! New time axis
-Define Axis /T="01-NOV-2011 00:00":"30-NOV-2011 23:00":1 /Units=seconds /T0=1-JAN-1950 t_axis_seconds
- 
-Let var_sec = var_regrid[ GT=t_axis_seconds at XACT ]
- 
-! Here we got no good data, should be one at 7:54:36.
- 
-List /T="2-nov-2011 07:54:30":"2-nov-2011 07:54:50" var_sec
-             VARIABLE : VAR_REGRID[ GT=T_AXIS_SECONDS at XACT ]
-             SUBSET   : 21 points (TIME)
- 02-NOV-2011 07:54:30 / 114871:      ....
- 02-NOV-2011 07:54:31 / 114872:      ....
- 02-NOV-2011 07:54:32 / 114873:      ....
- 02-NOV-2011 07:54:33 / 114874:      ....
- 02-NOV-2011 07:54:34 / 114875:      ....
- 02-NOV-2011 07:54:35 / 114876:      ....
- 02-NOV-2011 07:54:36 / 114877:  0.625140
- 02-NOV-2011 07:54:37 / 114878:      ....
- 02-NOV-2011 07:54:38 / 114879:      ....
- 02-NOV-2011 07:54:39 / 114880:      ....
- 02-NOV-2011 07:54:40 / 114881:      ....
- 02-NOV-2011 07:54:41 / 114882:      ....
- 02-NOV-2011 07:54:42 / 114883:      ....
- 02-NOV-2011 07:54:43 / 114884:      ....
- 02-NOV-2011 07:54:44 / 114885:      ....
- 02-NOV-2011 07:54:45 / 114886:      ....
- 02-NOV-2011 07:54:46 / 114887:      ....
- 02-NOV-2011 07:54:47 / 114888:      ....
- 02-NOV-2011 07:54:48 / 114889:      ....
- 02-NOV-2011 07:54:49 / 114890:      ....
- 02-NOV-2011 07:54:50 / 114891:      ....
- 
- 
-GO bn_reset
-cancel mode verify
-GO err682_if_yes_exit
-! err682_if_yes_exit.jnl
-! Ticket 1965
-!
-! As reported by Hein Zelle
-! http://www.pmel.noaa.gov/maillists/tmap/ferret_users/fu_2012/msg00487.html
-! This should exit the script on failure of the first test.
-! Instead it continues on and only exits with the /script qualifier or as part
-! of a block
- 
-let test = 1
-if `test` then exit
- !-> if 1 then exit
- 
-GO bn_reset
-cancel mode verify
-GO err682_use_no_quotes
-! err682_use_no_quotes.jnl
-! See ticket 1974 - on 64-bit machines, this statement causes a crash.
-! It should just generate an error message, as the file spec. should have
-! quotes around it.
- 
-SET MODE ignore
-use ./z1.nc
- 
-CANCEL MODE ignore
- 
-GO bn_reset
-cancel mode verify
-GO err682_axis_no_clue
-! err682_axis_no_clue.jnl
-! See ticket 1975. The axis sax is intended to be
-! used as a Y axis. The axes of the variable are
-! TEMP(zax, sax, xax). The grid should be XYZ but
-! Ferret v6.82 created a grid thats XZT instead.
- 
-use xsz.nc
-sh dat
-     currently SET data sets:
-    1> ./xsz.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:5       1:7       1:3       ...       ...       ...
- 
- 
-GO bn_reset
-cancel mode verify
-GO err682_grid_merge
-! err682_grid_merge.jnl
-! Bug 1972. When merging contexts, the calendar time-axis
-! info gets lost, causing an error with the time axis.
- 
-use truemonth.nc
-let a = 2
-let b = a * var
-list a*var[t=1-jan-1960:1-jan-1961]
-             VARIABLE : A*VAR[T=1-JAN-1960:1-JAN-1961]
-             FILENAME : truemonth.nc
-             SUBSET   : 12 points (TIME)
- 16-JAN-1960 12 / 121:  1.63183
- 15-FEB-1960 12 / 122:  1.90067
- 16-MAR-1960 12 / 123:  1.99973
- 16-APR-1960 00 / 124:  1.91734
- 16-MAY-1960 12 / 125:  1.65796
- 16-JUN-1960 00 / 126:  1.24555
- 16-JUL-1960 12 / 127:  0.71815
- 16-AUG-1960 12 / 128:  0.11450
- 16-SEP-1960 00 / 129: -0.49038
- 16-OCT-1960 12 / 130: -1.05001
- 16-NOV-1960 00 / 131: -1.51270
- 16-DEC-1960 12 / 132: -1.83577
- 
-! The bug had this statement failing with a time-region error
-list b[T=1-JAN-1960:1-JAN-1961]
-             VARIABLE : A * VAR
-             FILENAME : truemonth.nc
-             SUBSET   : 12 points (TIME)
- 16-JAN-1960 12 / 121:  1.63183
- 15-FEB-1960 12 / 122:  1.90067
- 16-MAR-1960 12 / 123:  1.99973
- 16-APR-1960 00 / 124:  1.91734
- 16-MAY-1960 12 / 125:  1.65796
- 16-JUN-1960 00 / 126:  1.24555
- 16-JUL-1960 12 / 127:  0.71815
- 16-AUG-1960 12 / 128:  0.11450
- 16-SEP-1960 00 / 129: -0.49038
- 16-OCT-1960 12 / 130: -1.05001
- 16-NOV-1960 00 / 131: -1.51270
- 16-DEC-1960 12 / 132: -1.83577
- 
- 
-GO bn_reset
-cancel mode verify
-GO err682_scale_no_offset
-! err682_scale_no_offset.jnl
-! See ticket 1980 and the report on the Ferret list at
-! http://www.pmel.noaa.gov/maillists/tmap/ferret_users/fu_2012/msg00585.html
-! Dataset with a scale_factor attributue on variables but no add_offset att.
- 
- 
-use err682_scale_no_offset.nc
-say `sst_rms[x=@ngd,y=@ngd]` SHOULD BE 91
- !-> MESSAGE/CONTINUE 91 SHOULD BE 91
-91 SHOULD BE 91
- 
-can dat 1
-use err682_scale_no_offset.nc
-say `sst_cor[x=@ngd,y=@ngd]` SHOULD BE 91
- !-> MESSAGE/CONTINUE 91 SHOULD BE 91
-91 SHOULD BE 91
-use tripolar_subset
-can dat 2
- 
-say `sst_rms[x=@ngd,y=@ngd]` SHOULD BE 91
- !-> MESSAGE/CONTINUE 91 SHOULD BE 91
-91 SHOULD BE 91
-load sst_rms
- 
-say `sst_rms[x=@ngd,y=@ngd]`  SHOULD BE 91
- !-> MESSAGE/CONTINUE 91  SHOULD BE 91
-91  SHOULD BE 91
-load sst_rms
-say `sst_rms[x=@nbd,y=@nbd]`  SHOULD BE 30
- !-> MESSAGE/CONTINUE 30  SHOULD BE 30
-30  SHOULD BE 30
- 
-GO bn_reset
-cancel mode verify
-GO err682_append_packed
-! err682_append_packed.jnl
-! See ticket 2004. Write packed variable with scale attributes
-! Append more values, data was not correctly scaled.
- 
-use append_pack.nc
-list temp  ! values should be  28.69, 28.63
-             VARIABLE : Potential temperature (degrees C)
-             FILENAME : append_pack.nc
-             SUBSET   : 2 points (TIME)
-             LONGITUDE: 180E(179.9)
-             LATITUDE : 0.05S
-             DEPTH (m): 2.5
-                      179.95E  
-                         1
- 01-JAN-1994 12 / 1:  28.6949
- 02-JAN-1994 12 / 2:  28.6344
- 
-cancel mode upcase_output
-set att/output=all temp
-save/clobber/file=a.nc/outtype=short/L=1 temp
-save/append/file=a.nc/outtype=short/L=2 temp
- 
-can data/all
-use a.nc
- 
-list temp  ! values should match those above.
-             VARIABLE : Potential temperature (degrees C)
-             FILENAME : a.nc
-             SUBSET   : 2 points (TIME)
-             LONGITUDE: 180E(179.9)
-             LATITUDE : 0.05S
-             DEPTH (m): 2.5
-                      179.95E  
-                         1
- 01-JAN-1994 12 / 1:  28.6966
- 02-JAN-1994 12 / 2:  28.6361
- 
-set mode/last upcase_output
- 
-GO bn_reset
-cancel mode verify
-GO bn_outtype
-! bn_outtype
-! Tests of output-type control:
-!  SET VAR/OUTTYPE
-!  SET LIST/OUTTYPE
-!  save/x=300/y=0:5/OUTTYPE
- 
-! SET LIST/OUTTYPE takes precedence over the variable type from
-! an input dataset or the SET VAR/OUTTYPE
-! save/x=300/y=0:5/OUTTYPE takes precedence over both
- 
-! SET VAR/OUTTYPE
-can dat/all
-use coads_climatology
- 
-let sst2 = 2*sst
-set var/outtype=double sst2
- 
-! For saving as INT and smaller, the default missing value
-! can't be the default Ferret value
-let/bad=-999 sst3 = missing(sst, -999)
-set var/outtype=int sst3
- 
-! sst is saved in its native type, float
-! sst2 and sst3 have SET VAR/OUTTYPE types
- 
-save/x=300/y=0:5/clobber/file=mytype.nc sst, sst2, sst3
-use mytype.nc; sh dat/att mytype.nc; can data mytype
-     currently SET data sets:
-    2> ./mytype.nc  (default)
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               history         CHAR        24   T       FERRET V6.85   12-Nov-13
-                                 Conventions     CHAR        6    F       CF-1.0
-  
-(COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
-                                 point_spacing   CHAR        4    T       even
-                                 axis            CHAR        1    T       Y
-                                 standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
-  
-(TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
-                                 time_origin     CHAR        20   T       01-JAN-0000 00:00:00
-                                 modulo          DOUBLE      1    T       8765.82
-                                 axis            CHAR        1    T       T
-                                 standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        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
-                                 long_name_mod   CHAR        9    F       X=60W at ITP
-  
- SST2                  DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
-                                 _FillValue      DOUBLE      1    T       -1.E+34
-                                 long_name       CHAR        5    T       2*SST
-                                 long_name_mod   CHAR        9    F       X=60W at ITP
-                                 history         CHAR        22   T       From coads_climatology
-  
- SST3                  INT       missing_value   INT         1    T       -999
-                                 _FillValue      INT         1    T       -999
-                                 long_name       CHAR        18   T       MISSING(SST, -999)
-                                 long_name_mod   CHAR        9    F       X=60W at ITP
-                                 history         CHAR        22   T       From coads_climatology
-  
- 
-! SET LIST/OUTTYPE overrides native type and SET VAR/OUTTYPE
-can var/all
- 
-let sst2 = 2*sst
-let/bad=-999 sst3 = missing(sst, -999)
-set var/outtype=int sst3
- 
-set list/outtype=double
-save/x=300/y=0:5/clobber/file=mytype.nc sst, sst2
-use mytype.nc; sh dat/att mytype.nc; can data mytype
-     currently SET data sets:
-    2> ./mytype.nc  (default)
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               history         CHAR        24   T       FERRET V6.85   12-Nov-13
-                                 Conventions     CHAR        6    F       CF-1.0
-  
-(COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
-                                 point_spacing   CHAR        4    T       even
-                                 axis            CHAR        1    T       Y
-                                 standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
-  
-(TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
-                                 time_origin     CHAR        20   T       01-JAN-0000 00:00:00
-                                 modulo          DOUBLE      1    T       8765.82
-                                 axis            CHAR        1    T       T
-                                 standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        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
-                                 long_name_mod   CHAR        9    F       X=60W at ITP
-  
- SST2                  DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
-                                 _FillValue      DOUBLE      1    T       -1.E+34
-                                 long_name       CHAR        5    T       2*SST
-                                 long_name_mod   CHAR        9    F       X=60W at ITP
-                                 history         CHAR        22   T       From coads_climatology
-  
- 
-set list/outtype=float
-save/x=300/y=0:5/clobber/file=mytype.nc sst, sst2
-use mytype.nc; sh dat/att mytype.nc; can data mytype
-     currently SET data sets:
-    2> ./mytype.nc  (default)
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               history         CHAR        24   T       FERRET V6.85   12-Nov-13
-                                 Conventions     CHAR        6    F       CF-1.0
-  
-(COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
-                                 point_spacing   CHAR        4    T       even
-                                 axis            CHAR        1    T       Y
-                                 standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
-  
-(TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
-                                 time_origin     CHAR        20   T       01-JAN-0000 00:00:00
-                                 modulo          DOUBLE      1    T       8765.82
-                                 axis            CHAR        1    T       T
-                                 standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        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
-                                 long_name_mod   CHAR        9    F       X=60W at ITP
-  
- SST2                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
-                                 _FillValue      FLOAT       1    T       -1.E+34
-                                 long_name       CHAR        5    T       2*SST
-                                 long_name_mod   CHAR        9    F       X=60W at ITP
-                                 history         CHAR        22   T       From coads_climatology
-  
- 
-set list/outtype=int
-save/x=300/y=0:5/clobber/file=mytype.nc sst3
-use mytype.nc; sh dat/att mytype.nc; can data mytype
-     currently SET data sets:
-    2> ./mytype.nc  (default)
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               history         CHAR        24   T       FERRET V6.85   12-Nov-13
-                                 Conventions     CHAR        6    F       CF-1.0
-  
-(COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
-                                 point_spacing   CHAR        4    T       even
-                                 axis            CHAR        1    T       Y
-                                 standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
-  
-(TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
-                                 time_origin     CHAR        20   T       01-JAN-0000 00:00:00
-                                 modulo          DOUBLE      1    T       8765.82
-                                 axis            CHAR        1    T       T
-                                 standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        4    F       TIME
-  
- SST3                  INT       missing_value   INT         1    T       -999
-                                 _FillValue      INT         1    T       -999
-                                 long_name       CHAR        18   T       MISSING(SST, -999)
-                                 long_name_mod   CHAR        9    F       X=60W at ITP
-                                 history         CHAR        22   T       From coads_climatology
-  
- 
-set list/outtype=short
-save/x=300/y=0:5/clobber/file=mytype.nc sst3
-use mytype.nc; sh dat/att mytype.nc; can data mytype
-     currently SET data sets:
-    2> ./mytype.nc  (default)
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               history         CHAR        24   T       FERRET V6.85   12-Nov-13
-                                 Conventions     CHAR        6    F       CF-1.0
-  
-(COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
-                                 point_spacing   CHAR        4    T       even
-                                 axis            CHAR        1    T       Y
-                                 standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
-  
-(TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
-                                 time_origin     CHAR        20   T       01-JAN-0000 00:00:00
-                                 modulo          DOUBLE      1    T       8765.82
-                                 axis            CHAR        1    T       T
-                                 standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        4    F       TIME
-  
- SST3                  SHORT     missing_value   SHORT       1    T       -999
-                                 _FillValue      SHORT       1    T       -999
-                                 long_name       CHAR        18   T       MISSING(SST, -999)
-                                 long_name_mod   CHAR        9    F       X=60W at ITP
-                                 history         CHAR        22   T       From coads_climatology
-  
- 
-set list/outtype=byte
-let/bad=-99 sst4 = missing(sst, -99)
-save/x=300/y=0:5/clobber/file=mytype.nc sst4
-use mytype.nc; sh dat/att mytype.nc; can data mytype
-     currently SET data sets:
-    2> ./mytype.nc  (default)
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               history         CHAR        24   T       FERRET V6.85   12-Nov-13
-                                 Conventions     CHAR        6    F       CF-1.0
-  
-(COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
-                                 point_spacing   CHAR        4    T       even
-                                 axis            CHAR        1    T       Y
-                                 standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
-  
-(TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
-                                 time_origin     CHAR        20   T       01-JAN-0000 00:00:00
-                                 modulo          DOUBLE      1    T       8765.82
-                                 axis            CHAR        1    T       T
-                                 standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        4    F       TIME
-  
- SST4                  BYTE      missing_value   BYTE        1    T       -99
-                                 _FillValue      BYTE        1    T       -99
-                                 long_name       CHAR        17   T       MISSING(SST, -99)
-                                 long_name_mod   CHAR        9    F       X=60W at ITP
-                                 history         CHAR        22   T       From coads_climatology
-  
- 
-! shows the outtype
-show list
-        SET LIST/PRECISION =   6
-        SET LIST/FORMAT = [Default]
-        SET LIST/HEADING is ENABLED
-        SET LIST/APPEND is DISABLED
-        SET LIST/FILE=AUTO [created by program] ( when LIST/FILE is used )
-        SET LIST/OUTTYPE = Byte
-           ----
-        NetCDF-4 settings:
-        NetCDF file type = classic
-        NetCDF chunk sizes = default
-        SHUFFLE set to on
-        ENDIAN set to native
- 
-! CANCEL LIST/OUTTYPE
-cancel list/outtype
-show list
-        SET LIST/PRECISION =   6
-        SET LIST/FORMAT = [Default]
-        SET LIST/HEADING is ENABLED
-        SET LIST/APPEND is DISABLED
-        SET LIST/FILE=AUTO [created by program] ( when LIST/FILE is used )
-        SET LIST/OUTTYPE = [Default]
-           ----
-        NetCDF-4 settings:
-        NetCDF file type = classic
-        NetCDF chunk sizes = default
-        SHUFFLE set to on
-        ENDIAN set to native
- 
-save/x=300/y=0:5/clobber/file=mytype.nc sst, sst2, sst3
-use mytype.nc; sh dat/att mytype.nc; can data mytype
-     currently SET data sets:
-    2> ./mytype.nc  (default)
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               history         CHAR        24   T       FERRET V6.85   12-Nov-13
-                                 Conventions     CHAR        6    F       CF-1.0
-  
-(COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
-                                 point_spacing   CHAR        4    T       even
-                                 axis            CHAR        1    T       Y
-                                 standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
-  
-(TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
-                                 time_origin     CHAR        20   T       01-JAN-0000 00:00:00
-                                 modulo          DOUBLE      1    T       8765.82
-                                 axis            CHAR        1    T       T
-                                 standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        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
-                                 long_name_mod   CHAR        9    F       X=60W at ITP
-  
- SST2                  DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
-                                 _FillValue      DOUBLE      1    T       -1.E+34
-                                 long_name       CHAR        5    T       2*SST
-                                 long_name_mod   CHAR        9    F       X=60W at ITP
-                                 history         CHAR        22   T       From coads_climatology
-  
- SST3                  INT       missing_value   INT         1    T       -999
-                                 _FillValue      INT         1    T       -999
-                                 long_name       CHAR        18   T       MISSING(SST, -999)
-                                 long_name_mod   CHAR        9    F       X=60W at ITP
-                                 history         CHAR        22   T       From coads_climatology
-  
- 
-set list/outtype=int
-save/x=300/y=0:5/clobber/file=mytype.nc sst3
-use mytype.nc; sh dat/att mytype.nc; can data mytype
-     currently SET data sets:
-    2> ./mytype.nc  (default)
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               history         CHAR        24   T       FERRET V6.85   12-Nov-13
-                                 Conventions     CHAR        6    F       CF-1.0
-  
-(COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
-                                 point_spacing   CHAR        4    T       even
-                                 axis            CHAR        1    T       Y
-                                 standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
-  
-(TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
-                                 time_origin     CHAR        20   T       01-JAN-0000 00:00:00
-                                 modulo          DOUBLE      1    T       8765.82
-                                 axis            CHAR        1    T       T
-                                 standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        4    F       TIME
-  
- SST3                  INT       missing_value   INT         1    T       -999
-                                 _FillValue      INT         1    T       -999
-                                 long_name       CHAR        18   T       MISSING(SST, -999)
-                                 long_name_mod   CHAR        9    F       X=60W at ITP
-                                 history         CHAR        22   T       From coads_climatology
-  
-cancel list/all
-show list
-        SET LIST/PRECISION =   4
-        SET LIST/FORMAT = [Default]
-        SET LIST/HEADING is ENABLED
-        SET LIST/APPEND is DISABLED
-        SET LIST/FILE=AUTO [created by program] ( when LIST/FILE is used )
-        SET LIST/OUTTYPE = [Default]
-           ----
-        NetCDF-4 settings:
-        NetCDF file type = classic
-        NetCDF chunk sizes = default
-        SHUFFLE set to on
-        ENDIAN set to native
- 
-! SAVE/OUTTYPE overrides all other settings
-can var/all
-let sst2 = 2*sst3
- 
-let/bad=-999 sst3 = missing(sst, -999)
-set var/outtype=int sst3
- 
-let/bad=-99 sst4 = missing(sst, -99)
-set var/outtype=short sst4
- 
- 
-save/x=300/y=0:5/clobber/file=mytype.nc/outtype=double sst2, sst3
-use mytype.nc; sh dat/att mytype.nc; can data mytype
-     currently SET data sets:
-    2> ./mytype.nc  (default)
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               history         CHAR        24   T       FERRET V6.85   12-Nov-13
-                                 Conventions     CHAR        6    F       CF-1.0
-  
-(COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
-                                 point_spacing   CHAR        4    T       even
-                                 axis            CHAR        1    T       Y
-                                 standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
-  
-(TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
-                                 time_origin     CHAR        20   T       01-JAN-0000 00:00:00
-                                 modulo          DOUBLE      1    T       8765.82
-                                 axis            CHAR        1    T       T
-                                 standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        4    F       TIME
-  
- SST2                  DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
-                                 _FillValue      DOUBLE      1    T       -1.E+34
-                                 long_name       CHAR        6    T       2*SST3
-                                 long_name_mod   CHAR        9    F       X=60W at ITP
-                                 history         CHAR        22   T       From coads_climatology
-  
- SST3                  DOUBLE    missing_value   DOUBLE      1    T       -999
-                                 _FillValue      DOUBLE      1    T       -999
-                                 long_name       CHAR        18   T       MISSING(SST, -999)
-                                 long_name_mod   CHAR        9    F       X=60W at ITP
-                                 history         CHAR        22   T       From coads_climatology
-  
- 
-save/x=300/y=0:5/clobber/file=mytype.nc/outtype=float sst2, sst3
-use mytype.nc; sh dat/att mytype.nc; can data mytype
-     currently SET data sets:
-    2> ./mytype.nc  (default)
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               history         CHAR        24   T       FERRET V6.85   12-Nov-13
-                                 Conventions     CHAR        6    F       CF-1.0
-  
-(COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
-                                 point_spacing   CHAR        4    T       even
-                                 axis            CHAR        1    T       Y
-                                 standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
-  
-(TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
-                                 time_origin     CHAR        20   T       01-JAN-0000 00:00:00
-                                 modulo          DOUBLE      1    T       8765.82
-                                 axis            CHAR        1    T       T
-                                 standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        4    F       TIME
-  
- SST2                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
-                                 _FillValue      FLOAT       1    T       -1.E+34
-                                 long_name       CHAR        6    T       2*SST3
-                                 long_name_mod   CHAR        9    F       X=60W at ITP
-                                 history         CHAR        22   T       From coads_climatology
-  
- SST3                  FLOAT     missing_value   FLOAT       1    T       -999
-                                 _FillValue      FLOAT       1    T       -999
-                                 long_name       CHAR        18   T       MISSING(SST, -999)
-                                 long_name_mod   CHAR        9    F       X=60W at ITP
-                                 history         CHAR        22   T       From coads_climatology
-  
- 
-save/x=300/y=0:5/clobber/file=mytype.nc/outtype=int sst4, sst3
-use mytype.nc; sh dat/att mytype.nc; can data mytype
-     currently SET data sets:
-    2> ./mytype.nc  (default)
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               history         CHAR        24   T       FERRET V6.85   12-Nov-13
-                                 Conventions     CHAR        6    F       CF-1.0
-  
-(COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
-                                 point_spacing   CHAR        4    T       even
-                                 axis            CHAR        1    T       Y
-                                 standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
-  
-(TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
-                                 time_origin     CHAR        20   T       01-JAN-0000 00:00:00
-                                 modulo          DOUBLE      1    T       8765.82
-                                 axis            CHAR        1    T       T
-                                 standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        4    F       TIME
-  
- SST4                  INT       missing_value   INT         1    T       -99
-                                 _FillValue      INT         1    T       -99
-                                 long_name       CHAR        17   T       MISSING(SST, -99)
-                                 long_name_mod   CHAR        9    F       X=60W at ITP
-                                 history         CHAR        22   T       From coads_climatology
-  
- SST3                  INT       missing_value   INT         1    T       -999
-                                 _FillValue      INT         1    T       -999
-                                 long_name       CHAR        18   T       MISSING(SST, -999)
-                                 long_name_mod   CHAR        9    F       X=60W at ITP
-                                 history         CHAR        22   T       From coads_climatology
-  
- 
-save/x=300/y=0:5/clobber/file=mytype.nc/outtype=byte sst4
-use mytype.nc; sh dat/att mytype.nc; can data mytype
-     currently SET data sets:
-    2> ./mytype.nc  (default)
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               history         CHAR        24   T       FERRET V6.85   12-Nov-13
-                                 Conventions     CHAR        6    F       CF-1.0
-  
-(COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
-                                 point_spacing   CHAR        4    T       even
-                                 axis            CHAR        1    T       Y
-                                 standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
-  
-(TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
-                                 time_origin     CHAR        20   T       01-JAN-0000 00:00:00
-                                 modulo          DOUBLE      1    T       8765.82
-                                 axis            CHAR        1    T       T
-                                 standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        4    F       TIME
-  
- SST4                  BYTE      missing_value   BYTE        1    T       -99
-                                 _FillValue      BYTE        1    T       -99
-                                 long_name       CHAR        17   T       MISSING(SST, -99)
-                                 long_name_mod   CHAR        9    F       X=60W at ITP
-                                 history         CHAR        22   T       From coads_climatology
-  
- 
-! Type will be int
-set list/outtype=float
-save/x=300/y=0:5/clobber/file=mytype.nc/outtype=int sst4, sst3
-use mytype.nc; sh dat/att mytype.nc; can data mytype
-     currently SET data sets:
-    2> ./mytype.nc  (default)
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               history         CHAR        24   T       FERRET V6.85   12-Nov-13
-                                 Conventions     CHAR        6    F       CF-1.0
-  
-(COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
-                                 point_spacing   CHAR        4    T       even
-                                 axis            CHAR        1    T       Y
-                                 standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
-  
-(TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
-                                 time_origin     CHAR        20   T       01-JAN-0000 00:00:00
-                                 modulo          DOUBLE      1    T       8765.82
-                                 axis            CHAR        1    T       T
-                                 standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        4    F       TIME
-  
- SST4                  INT       missing_value   INT         1    T       -99
-                                 _FillValue      INT         1    T       -99
-                                 long_name       CHAR        17   T       MISSING(SST, -99)
-                                 long_name_mod   CHAR        9    F       X=60W at ITP
-                                 history         CHAR        22   T       From coads_climatology
-  
- SST3                  INT       missing_value   INT         1    T       -999
-                                 _FillValue      INT         1    T       -999
-                                 long_name       CHAR        18   T       MISSING(SST, -999)
-                                 long_name_mod   CHAR        9    F       X=60W at ITP
-                                 history         CHAR        22   T       From coads_climatology
-  
- 
-! Go back to default setting.
-can list/outtype
- 
-GO bn_reset
-cancel mode verify
-GO bn_ribbon_plot
-! bn_ribbon_plot.jnl
-! Test color-line-by variable style of plots
- 
-show alias ribbon
-   Alias       Command
-   -----       -------
-   RIBBON      PLOT/RIBBON
- 
-! ribbon plot is 3-variable RIBBON/VS plot
-! RIBBON/VS/LEV= xpts, ypts, var
-! or 2-variable line plot in any direction.
-! RIBBON/LEV= var1, var2
- 
-! File variables
-use TAO_SST_clim
-set view ul; RIBBON/thick/i=3/lev=10 sst_clim[j=6], sst_clim[j=5]
-set view ur; RIBBON/j=3/lev=10/thick sst_clim[l=6], sst_clim[L=9]
-set view ll; RIBBON/thick/L=3/lev=10 sst_clim[j=4], sst_clim[j=6]
-use gt4d011.cdf
-set view lr; RIBBON/l=15/j=40/lev=v/thick/pal=rnb2 temp[i=96], temp[i=103]
-can data/all
- 
-! xpts, ypts all present, compare when var has missing.
- 
-can view
-let/title="Xpts"/units=degrees_east xpts = {\
-151.0,153.0,155.0,157.0,159.0,161.0,163.0,165.0,167.0,169.0,171.0,173.0,175.0,\
-177.0,179.0,181.0,183.0,185.0,187.0,189.0}
- 
-let/title="SST"/units="Deg C" ypts {\
-29.42,29.43,29.33,29.19,29.22,29.12,29.36,29.22,29.04,28.92,29.00,28.59,28.31,\
-28.69,28.20,28.86,27.98,27.80,28.29,27.94}
- 
-let/title="VAR"/Units="V" var =  {\
-14.16,14.31,13.34,11.90,12.19,11.20,13.57,12.25,10.37, 9.22,10.05, 5.91, \
-3.13, 6.88, 2.02, 8.63,-0.23,-1.97, 2.94,-0.65}
- 
-set view ul
-RIBBON/vs/line/thick/vlim=26:30 xpts,ypts,var
- 
-! Gaps in one of the vs variables
-set view ur
-RIBBON/vs/line/thick/vlim=26:30 xpts,ypts,var
- 
-let/title="SST"/units="Deg C" ypts2 {\
-29.42,29.43,29.33,29.19,29.22,29.12,29.36,29.22,29.04,28.92,29.00,28.59,28.31,\
-28.69,28.20,28.86,27.98,27.80,28.29,27.94} - 0.3
- 
-let/title="VAR"/Units="V" var2 =  {\
-14.16,14.31,13.34,,,,13.57,12.25,10.37, 9.22,10.05, 5.91, \
-3.13, 6.88, 2.02, 8.63,,-1.97, 2.94,-0.65}
- 
-! /FAST does not interpolate colors from one point to the next
-list xpts, ypts2, var2
-             X: 0.5 to 20.5
- Column  1: XPTS is Xpts (degrees_east)
- Column  2: YPTS2 is SST (Deg C)
- Column  3: VAR2 is VAR (V)
-            XPTS   YPTS2  VAR2
-1    /  1:  151.0  29.12  14.16
-2    /  2:  153.0  29.13  14.31
-3    /  3:  155.0  29.03  13.34
-4    /  4:  157.0  28.89   ....
-5    /  5:  159.0  28.92   ....
-6    /  6:  161.0  28.82   ....
-7    /  7:  163.0  29.06  13.57
-8    /  8:  165.0  28.92  12.25
-9    /  9:  167.0  28.74  10.37
-10   / 10:  169.0  28.62   9.22
-11   / 11:  171.0  28.70  10.05
-12   / 12:  173.0  28.29   5.91
-13   / 13:  175.0  28.01   3.13
-14   / 14:  177.0  28.39   6.88
-15   / 15:  179.0  27.90   2.02
-16   / 16:  181.0  28.56   8.63
-17   / 17:  183.0  27.68   ....
-18   / 18:  185.0  27.50  -1.97
-19   / 19:  187.0  27.99   2.94
-20   / 20:  189.0  27.64  -0.65
-RIBBON/vs/line/nokey/over/thick=3/fast xpts,ypts2,var2
- 
-let yp3 = if var2 then ypts2 - 0.3
-PLOT/over/nolab/vs/line/color=black/sym=20 xpts, yp3
- 
- 
-! Testing other palettes
- 
-let/title="Xpts"/units=degrees_east xpts = { 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,\
-15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35}
- 
-let/title="Ypts"/units=degrees_north  ypts = { 9.04, 8.67, 8.96, 9.29, 9.18, 9.42,\
- 9.43, 9.33, 9.19, 9.22, 9.12, 9.36, 9.22, 9.04, 8.92, 9.00, 8.59,\
- 8.31, 8.69, 8.20, 8.86, 7.98, 7.80, 8.29, 7.94, 8.05, 7.85, 7.55,\
- 7.56, 6.82, 7.04, 6.66, 6.56, 7.36, 6.52}
- 
-let/title="SST"/Units="Deg C" var =  {\
- 1.5,  1.5,  1.5,  1.5,  1.5,\
- 2.5,  2.5,  2.5,  2.5,  2.5,\
- 3.5,  3.5,  3.5,  3.5,  3.5,\
- 4.5,  4.5,  4.5,  4.5,  4.5,\
- 5.5,  5.5,  5.5,  5.5,  5.5,\
- 6.5,  6.5,  6.5,  6.5,  6.5,\
- 7.5,  7.5,  7.5,  7.5,  7.5}
-set view ll
-RIBBON/vs/line/lev=(1,9,1)/pal=ten_by_levels xpts,ypts,var
- 
- 
-let/title="Xpts"/units=degrees_east xpts = { 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,\
-15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35}
- 
-let/title="Ypts"/units=degrees_north  ypts = { 9.04, 8.67, 8.96, 9.29, 9.18, 9.42,\
- 9.43, 9.33, 9.19, 9.22, 9.12, 9.36, 9.22, 9.04, 8.92, 9.00, 8.59,\
- 8.31, 8.69, 8.20, 8.86, 7.98, 7.80, 8.29, 7.94, 8.05, 7.85, 7.55,\
- 7.56, 6.82, 7.04, 6.66, 6.56, 7.36, 6.52}
- 
-let/title="SST"/Units="Deg C" var =  {\
- 1.5,  1.5,  1.5,  1.5,  1.5,\
- 2.5,  2.5,  2.5,  2.5,  2.5,\
- 3.5,  3.5,  3.5,  3.5,  3.5,\
- 4.5,  4.5,  4.5,  4.5,  4.5,\
- 5.5,  5.5,  5.5,  5.5,  5.5,\
- 6.5,  6.5,  6.5,  6.5,  6.5,\
- 7.5,  7.5,  7.5,  7.5,  7.5}
- 
-set view lr
-RIBBON/vs/line/thick/lev=(1,8,1)/pal=ten_by_levels xpts,ypts,var
- 
-PLOT/vs/over/sym=20 xpts,ypts
- 
- 
-can view
- 
-! Do an overlay on a map.
-! To use RIBBON/SET, finish with PPL RIBBON/OVER
- 
-use coads_climatology
-let mask = if sst then 0 else 1
-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
- 
-GO bn_reset
-cancel mode verify
-GO bn_descr_4digit
- ! bn_descr_4digit.jnl
- ! See ticket 1969: step files have 3- or 4-digit extensions
- ! coads_clim.999, coads_clim.1000, coads_clim.1001
- 
-use coads_clim_4digit.des
-sh dat
-     currently SET data sets:
-    1> ./coads_clim_4digit.des  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:4       1:4       ...       1:6       ...       ...
- 
-list/x=180/y=0 sst
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             DATA SET : COAD
-             FILENAME : coads_clim_4digit.des
-             SUBSET   : 6 points (TIME)
-             LONGITUDE: 180E (interpolated)
-             LATITUDE : 0 (interpolated)
- 16-JAN-1900 / 1:  28.36
- 15-FEB-1900 / 2:  28.38
- 18-MAR-1900 / 3:  28.00
- 17-APR-1900 / 4:  27.99
- 17-MAY-1900 / 5:  28.41
- 17-JUN-1900 / 6:  28.23
- 
-GO bn_reset
-cancel mode verify
-GO bn_axis_outtype
-! bn_axis_outtype.jnl
-!  SET AXIS/OUTTYPE
-! 23-Oct-2012
- 
-can dat/all
-use coads_climatology
- 
-set axis/outtype=float `sst,return=xaxis`
- !-> set axis/outtype=float COADSX
-set axis/outtype=float `sst,return=yaxis`
- !-> set axis/outtype=float COADSY
-set axis/outtype=float `sst,return=taxis`
- !-> set axis/outtype=float TIME10
- 
-save/x=300/y=0:5/clobber/file=mytype.nc sst
-use mytype.nc; sh dat/att mytype.nc; can data mytype
-     currently SET data sets:
-    2> ./mytype.nc  (default)
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               history         CHAR        24   T       FERRET V6.85   12-Nov-13
-                                 Conventions     CHAR        6    F       CF-1.0
-  
-(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
-  
-(TIME12)               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
-  
- 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
-                                 long_name_mod   CHAR        9    F       X=60W at ITP
-  
- 
-! SAVE/OUTTYPE sets the type of the variable not the axes
-save/x=300/y=0:5/clobber/file=mytype.nc/outtype=double sst
-use mytype.nc; sh dat/att mytype.nc; can data mytype
-     currently SET data sets:
-    2> ./mytype.nc  (default)
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               history         CHAR        24   T       FERRET V6.85   12-Nov-13
-                                 Conventions     CHAR        6    F       CF-1.0
-  
-(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
-  
-(TIME12)               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
-  
- SST                   DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
-                                 _FillValue      DOUBLE      1    T       -1.E+34
-                                 long_name       CHAR        23   T       SEA SURFACE TEMPERATURE
-                                 history         CHAR        22   T       From coads_climatology
-                                 units           CHAR        5    T       Deg C
-                                 Ferret_PrecisionCHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
-                                 long_name_mod   CHAR        9    F       X=60W at ITP
-  
- 
-! Restore the axis type from the file
- 
-set axis/outtype=input `sst,return=xaxis`
- !-> set axis/outtype=input COADSX
-set axis/outtype=input `sst,return=yaxis`
- !-> set axis/outtype=input COADSY
-set axis/outtype=input `sst,return=taxis`
- !-> set axis/outtype=input TIME10
- 
-save/x=300/y=0:5/clobber/file=mytype.nc sst
-use mytype.nc; sh dat/att mytype.nc; can data mytype
-     currently SET data sets:
-    2> ./mytype.nc  (default)
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               history         CHAR        24   T       FERRET V6.85   12-Nov-13
-                                 Conventions     CHAR        6    F       CF-1.0
-  
-(COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
-                                 point_spacing   CHAR        4    T       even
-                                 axis            CHAR        1    T       Y
-                                 standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
-  
-(TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
-                                 time_origin     CHAR        20   T       01-JAN-0000 00:00:00
-                                 modulo          DOUBLE      1    T       8765.82
-                                 axis            CHAR        1    T       T
-                                 standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        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
-                                 long_name_mod   CHAR        9    F       X=60W at ITP
-  
- 
-! User-defined axes are output as double by default.
- 
-define axis/t=1-jan-1990:1-feb-1990:2/units=hours myhours
-let tt = t[gt=myhours] - `t[gt=myhours,L=1]`
- !-> DEFINE VARIABLE tt = t[gt=myhours] - 779832
- 
-save/clobber/file=mytype.nc tt
-use mytype.nc; sh dat/att mytype.nc; can data mytype
-     currently SET data sets:
-    2> ./mytype.nc  (default)
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               history         CHAR        24   T       FERRET V6.85   12-Nov-13
-                                 Conventions     CHAR        6    F       CF-1.0
-  
-(MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
-                                 axis            CHAR        1    T       T
-                                 calendar        CHAR        9    T       GREGORIAN
-                                 time_origin     CHAR        11   T       15-JAN-1901
-                                 standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        7    F       MYHOURS
-  
- TT                    DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
-                                 _FillValue      DOUBLE      1    T       -1.E+34
-                                 long_name       CHAR        22   T       T[GT=MYHOURS] - 779832
-  
- 
-set axis/outtype=int myhours
-set var/bad=-9999 tt
- 
-save/clobber/file=mytype.nc/outtype=int tt
-use mytype.nc; sh dat/att mytype.nc; can data mytype
-     currently SET data sets:
-    2> ./mytype.nc  (default)
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               history         CHAR        24   T       FERRET V6.85   12-Nov-13
-                                 Conventions     CHAR        6    F       CF-1.0
-  
-(MYHOURS1)             INT       units           CHAR        31   T       hours since 1901-01-15 00:00:00
-                                 axis            CHAR        1    T       T
-                                 calendar        CHAR        9    T       GREGORIAN
-                                 time_origin     CHAR        11   T       15-JAN-1901
-                                 standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        7    F       MYHOURS
-  
- TT                    INT       missing_value   INT         1    T       -9999
-                                 _FillValue      INT         1    T       -9999
-                                 long_name       CHAR        22   T       T[GT=MYHOURS] - 779832
-  
- 
-! Restore the type of non-file axis, to double
- 
-set axis/outtype=input myhours
-save/clobber/file=mytype.nc tt
-use mytype.nc; sh dat/att mytype.nc; can data mytype
-     currently SET data sets:
-    2> ./mytype.nc  (default)
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               history         CHAR        24   T       FERRET V6.85   12-Nov-13
-                                 Conventions     CHAR        6    F       CF-1.0
-  
-(MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
-                                 axis            CHAR        1    T       T
-                                 calendar        CHAR        9    T       GREGORIAN
-                                 time_origin     CHAR        11   T       15-JAN-1901
-                                 standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        7    F       MYHOURS
-  
- TT                    DOUBLE    missing_value   DOUBLE      1    T       -9999
-                                 _FillValue      DOUBLE      1    T       -9999
-                                 long_name       CHAR        22   T       T[GT=MYHOURS] - 779832
-  
- 
- 
-! not all axes can be correctly represented in all data types
-! Intentional errors:
-set mode ignore
- 
-define axis/t=1-jan-1990:1-feb-1992:2/units=seconds myseconds
-let tt = t[gt=myseconds] - `t[gt=myseconds,L=1]`
- !-> DEFINE VARIABLE tt = t[gt=myseconds] - 2.8073952E+09
- 
-set axis/outtype=int myseconds
-save/L=32875000:32875201/clobber/file=mytype.nc tt
- 
- 
-use proleptic_gregorian.nc
-set axis/outtype=byte `my_data,return=taxis`
- !-> set axis/outtype=byte TDAYS1
-save/clobber/file=mytype.nc my_data
- 
-set axis/outtype=int `my_data,return=taxis`
- !-> set axis/outtype=int TDAYS1
-save/clobber/file=mytype.nc my_data
- 
-cancel mode ignore
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_axis_nonmonotonic
-! bn_axis_nonmonotonic.jnl
-! bn_define_axis doesnt test the case where the varible is not monotonic
-! ACM 11/2012  With Ferret v6.83+ the message tells us the index value
- 
-! Intentional error
- 
-set mode ignore
-let tvar = {85, 86, 86, 87, 88, 89, 90, 91, 92, 92, 92, 91, 92, 94, 95, 98}
-define axis/t/units=days tax = tvar
- 
-cancel mode ignore
- 
-GO bn_reset
-cancel mode verify
-GO bn_vec_mod
-! bn_vec_mod.jnl
-! /MODULO qualifier for the vector command.
-! 12/12/2012 ACM
-!
-! (Note for a test of POLY/MODULO see
-! /home/users/ansley/ans_ferret/users/brockmann/polymod.jnl)
- 
-use tripolar_subset.nc
- 
-! Define a V component for vectors
- 
-let fakev = 0.8*u - 0.1*geolat_c
-set view ul
-vec u,fakev,geolon_c,geolat_c
-set view ll
-vec/MOD/HLIM=0:360 u,fakev,geolon_c,geolat_c
-set view lr
-vec/MOD/HLIM=-180:180 u,fakev,geolon_c,geolat_c
- 
-can view
- 
-! *********** v6.85 Additions ***********
-GO bn_reset
-cancel mode verify
-GO bn685_bug_fixes
-! bn685_bug_fixes.jnl
-! test various fixes that went into version 6.85
-! 1/2013 ACM
- 
-GO bn_reset
-cancel mode verify
-GO err684_label_quotes
-! err684_label_quotes.jnl
-! See ticket 1298.
- 
-! A long-standing bug, error message if a label
-! enclosed in single quotes is sent to pplus
-! The single quotes triggers an attempt to translate
-! a pplus symbol.
- 
-plot/set/i=1:12 1./i
-  ppl xlab "'My X label'"
-  ppl ylab "'My Y Label'"
-  ppl title "'A title w/ single quotes'. Need not be in pairs: Ka'imimoana"
-ppl plot
- 
- 
-! Here is the example from the ticket
- 
-! This is ok
-say "'hello'"
-'hello'
- 
-! this returned an error
-label 4.5 .5 0 0 .3 "'hello'"
- 
-GO bn_reset
-cancel mode verify
-GO err684_context_shape
-! when limits are omitted with a compressing transformation the grave
-! accent R=SHAPE erroneously includes the corresponding axis in the shape
- 
-! The problem was when INTERP_CONTEXT calls COMPLETE_MISSING_LIMITS.
-! That routine fills in both the SS and the WW limits as the full axis span.
-! in a full-fledged evaluation occurred the ss limits would be set to
-! -999:-999 at the time that the transform was stripped from the stack
- 
-! The fix is to simulate this action inside of INTERP_CONTEXT
- 
-use coads_climatology
-say `sst[l=1:12 at ave],ret=shape`
- !-> MESSAGE/CONTINUE XY
-XY
-say `sst[l=@ave],ret=shape`
- !-> MESSAGE/CONTINUE XY
-XY
- 
-let a = sst[l=1:12 at ave]
-let b = sst[l=@ave]
-say `a,ret=shape`
- !-> MESSAGE/CONTINUE XY
-XY
-say `b,ret=shape`
- !-> MESSAGE/CONTINUE XY
-XY
- 
-GO bn_reset
-cancel mode verify
-GO err684_tax_fcns
-!err684_tax_fcns.jnl
-! See ticket 2043, bug in workaround for single-precision arguments
-!                  no longer needed in double-precision Ferret
-! The output at 13-oct and 18-oct was incorrect
- 
- define axis/t/units=days/t0=1-jan-1950 tday = { \
- 20724.935546875, 20729.921875, 20734.951171875,\
-20739.96484375, 20744.939453125, 20749.8984375, 20754.92578125}
- 
- let var = t[gt=tday]
- 
- 
- list/L=3:7 tax_datestring(var, var, "second")
-             VARIABLE : TAX_DATESTRING(VAR, VAR, "second")
-             SUBSET   : 5 points (TIME)
- 08-OCT-2006 22 / 3:"08-OCT-2006 22:49:41"
- 13-OCT-2006 23 / 4:"13-OCT-2006 23:09:22"
- 18-OCT-2006 22 / 5:"18-OCT-2006 22:32:48"
- 23-OCT-2006 21 / 6:"23-OCT-2006 21:33:45"
- 28-OCT-2006 22 / 7:"28-OCT-2006 22:13:07"
- 
- list/L=3:7 tax_day(var, var)
-             VARIABLE : TAX_DAY(VAR, VAR)
-             SUBSET   : 5 points (TIME)
- 08-OCT-2006 22 / 3:   8.00
- 13-OCT-2006 23 / 4:  13.00
- 18-OCT-2006 22 / 5:  18.00
- 23-OCT-2006 21 / 6:  23.00
- 28-OCT-2006 22 / 7:  28.00
- 
- list/L=3:7 tax_dayfrac(var, var)
-             VARIABLE : TAX_DAYFRAC(VAR, VAR)
-             SUBSET   : 5 points (TIME)
- 08-OCT-2006 22 / 3:  0.9512
- 13-OCT-2006 23 / 4:  0.9648
- 18-OCT-2006 22 / 5:  0.9394
- 23-OCT-2006 21 / 6:  0.8984
- 28-OCT-2006 22 / 7:  0.9258
- 
- list/L=3:7 tax_jday(var, var)
-             VARIABLE : TAX_JDAY(VAR, VAR)
-             SUBSET   : 5 points (TIME)
- 08-OCT-2006 22 / 3:  281.0
- 13-OCT-2006 23 / 4:  286.0
- 18-OCT-2006 22 / 5:  291.0
- 23-OCT-2006 21 / 6:  296.0
- 28-OCT-2006 22 / 7:  301.0
- 
- list/L=3:7 tax_jday1900(var, var)
-             VARIABLE : TAX_JDAY1900(VAR, VAR)
-             SUBSET   : 5 points (TIME)
- 08-OCT-2006 22 / 3:  38996.
- 13-OCT-2006 23 / 4:  39001.
- 18-OCT-2006 22 / 5:  39006.
- 23-OCT-2006 21 / 6:  39011.
- 28-OCT-2006 22 / 7:  39016.
- 
- list/L=3:7 tax_month(var, var)
-             VARIABLE : TAX_MONTH(VAR, VAR)
-             SUBSET   : 5 points (TIME)
- 08-OCT-2006 22 / 3:  10.00
- 13-OCT-2006 23 / 4:  10.00
- 18-OCT-2006 22 / 5:  10.00
- 23-OCT-2006 21 / 6:  10.00
- 28-OCT-2006 22 / 7:  10.00
- 
- list/L=3:7 tax_yearfrac(var, var)
-             VARIABLE : TAX_YEARFRAC(VAR, VAR)
-             SUBSET   : 5 points (TIME)
- 08-OCT-2006 22 / 3:  0.7699
- 13-OCT-2006 23 / 4:  0.7836
- 18-OCT-2006 22 / 5:  0.7973
- 23-OCT-2006 21 / 6:  0.8110
- 28-OCT-2006 22 / 7:  0.8247
- 
- list/L=3:7 tax_year(var, var)
-             VARIABLE : TAX_YEAR(VAR, VAR)
-             SUBSET   : 5 points (TIME)
- 08-OCT-2006 22 / 3:  2006.
- 13-OCT-2006 23 / 4:  2006.
- 18-OCT-2006 22 / 5:  2006.
- 23-OCT-2006 21 / 6:  2006.
- 28-OCT-2006 22 / 7:  2006.
- 
- 
-GO bn_reset
-cancel mode verify
-GO err684_save_subset
-! err684_bug_save_subset
-! see ticke 2064, precision in internal comparison of coordinate data
- 
-! previously gave a message about inconsistent coords
- 
-use bug_save_subset.nc
-save/clobber/file=aa.nc/i=5:15 sh
- 
- 
-GO bn_reset
-cancel mode verify
-GO err684_save_subset
-! err684_bug_save_subset
-! see ticke 2064, precision in internal comparison of coordinate data
- 
-! previously gave a message about inconsistent coords
- 
-use bug_save_subset.nc
-save/clobber/file=aa.nc/i=5:15 sh
- 
- 
-GO bn_reset
-cancel mode verify
-GO err684_line_plot_zero
-! err684_line_plot_zero.jnl
-! plot all-zero variable gave blank plot.
-! For a correct plot, yaxis_min and yaxis_max should be -1.0 and 1.0 not 0.0, 0.0
- 
-plot {0,0,0}
-sh sym yaxis*
-YAXIS_REVERSED = "0"
-YAXIS_MIN = "-1.0000000"
-YAXIS_MAX = "1.000000"
- 
- 
-GO bn_reset
-cancel mode verify
-GO err684_delimited_precision
-! err684_delimited_precision.jnl
-! 5/2013 Fixing bug 2066
-! Reading numeric data with /FORM=DELIM converted to single precision
- 
-! Data has numeric, longitude, and latitude values needing double precision.
-! The seconds portion of time is also now read with double precision
-sp cat delim_prec.dat
-  734654.0000  330.1234500E  42.00001000N  00:00:1.00000001
-  734654.0104  330.1234600E  42.00004000N  00:00:1.00000003
-  734654.0208  330.1234700E  42.00006000N  00:00:1.00000007
-  734654.0313  330.1234800E  42.00007000N  00:00:1.000000095
- 
-! Delimited read, automatically detect data types
-set data/ez/format=delim/del=" " delim_prec.dat
-list/i=1:5/prec=10 v1,v2,v3,v4
-             DATA SET: ./delim_prec.dat
-             X: 0.5 to 4.5
- Column  1: V1
- Column  2: V2 is V2 (degrees_east)(Longitude)
- Column  3: V3 is V3 (degrees_north)(Latitude)
- Column  4: V4 is V4 (hours)(Time of day)
-                  V1       V2           V3             V4
-1   / 1:  734654.0000  330.1234500  42.00001000  2.777777806E-04
-2   / 2:  734654.0104  330.1234600  42.00004000  2.777777861E-04
-3   / 3:  734654.0208  330.1234700  42.00006000  2.777777972E-04
-4   / 4:  734654.0313  330.1234800  42.00007000  2.777778042E-04
- 
-! Delimited read, specify data types
-can dat/all
-set data/ez/format=delim/del=" "/var="day,lon,lat,tim"/type="numeric,longitude,latitude,time" delim_prec.dat
-list/prec=10 day, lon, lat, tim
-             DATA SET: ./delim_prec.dat
-             X: 0.5 to 4.5
- Column  1: DAY
- Column  2: LON is LON (degrees_east)(Longitude)
- Column  3: LAT is LAT (degrees_north)(Latitude)
- Column  4: TIM is TIM (hours)(Time of day)
-                 DAY       LON          LAT            TIM
-1   / 1:  734654.0000  330.1234500  42.00001000  2.777777806E-04
-2   / 2:  734654.0104  330.1234600  42.00004000  2.777777861E-04
-3   / 3:  734654.0208  330.1234700  42.00006000  2.777777972E-04
-4   / 4:  734654.0313  330.1234800  42.00007000  2.777778042E-04
- 
- 
-GO bn_reset
-cancel mode verify
-GO err6842_context_shape
-! err6842_context_shape.jnl
-! 5/2013 acm
-! Continuing the fixes for #1801 (see ticket 2051, and
-! see err68_context_shape.jnl
- 
-! Compound expressions did not always return the correct
-! result,depending on the order of the sub-expressions.
- 
-use coads_climatology
- 
-! All the returns in this script should say XYT
- 
-! Here the second used to just say XY
- 
-let a = sst - sst[t=1:12 at ave]
-let b = sst - sst[t=@ave]
-say `a,ret=shape`
- !-> MESSAGE/CONTINUE XYT
-XYT
-say `b,ret=shape`
- !-> MESSAGE/CONTINUE XYT
-XYT
- 
-let a = sst[t=1:12 at ave] + sst
-let b = sst[t=@ave] + sst
-say `a,ret=shape`
- !-> MESSAGE/CONTINUE XYT
-XYT
-say `b,ret=shape`
- !-> MESSAGE/CONTINUE XYT
-XYT
- 
-! The second used to just say XY
-! and the third said XY
- 
-let a = sst - sst[t=1:12 at ave] + sst[x=1:100 at ave]
-let b = sst - sst[t=@ave] + sst[x=@ave]
-let c = sst - sst[x=@ave] + sst[t=@ave]
-say `a,ret=shape`
- !-> MESSAGE/CONTINUE XYT
-XYT
-say `b,ret=shape`
- !-> MESSAGE/CONTINUE XYT
-XYT
-say `c,ret=shape`
- !-> MESSAGE/CONTINUE XYT
-XYT
- 
- 
-GO bn_reset
-cancel mode verify
-GO err684_evnt_z
-! err684_evnt_z.jnl
-! see ticket 2054
- 
-! Result of @EVNT is correct in x direction
- 
-let my_var1 = { 0, 0, 1, 2, 3, 4 }
-let my_event1 = my_var1[x=@evnt:0.1]
-list my_var1, my_event1! Right answer
-             X: 0.5 to 6.5
- Column  1: MY_VAR1 is { 0, 0, 1, 2, 3, 4 }
- Column  2: MY_EVENT1 is MY_VAR1[X=@EVNT:0.1]
-        MY_VAR1  MY_EVENT1
-1   / 1:   0.000   0.000
-2   / 2:   0.000   0.000
-3   / 3:   1.000   1.000
-4   / 4:   2.000   1.000
-5   / 5:   3.000   1.000
-6   / 6:   4.000   1.000
- 
-! Should be same in the Z direction:
- 
-let my_var = zsequence( my_var1)
-let my_event = my_var[z=@evnt:0.1]
-list my_var, my_event
-             Z: 0.5 to 6.5
- Column  1: MY_VAR is ZSEQUENCE( MY_VAR1)
- Column  2: MY_EVENT is MY_VAR[Z=@EVNT:0.1]
-        MY_VAR  MY_EVENT
-1   / 1:  0.000   0.000
-2   / 2:  0.000   0.000
-3   / 3:  1.000   1.000
-4   / 4:  2.000   1.000
-5   / 5:  3.000   1.000
-6   / 6:  4.000   1.000
- 
- 
- 
-GO bn_reset
-cancel mode verify
-GO err684_save_expression
-! err684_save_expression.jnl
-! Bug 2076. If we write out an expression that has not been defined
-! as a user-variable, the variable didn't have missing_value and _FillValue
-! attributes and was written as single-precision float.
- 
-! Define a variable - result is correct
-use coads_climatology
-let a = sst[x=@ave,y=@ave]-sst[x=@ave,y=@ave,t=@ave]
-save/clob/file=a.nc a
-sp ncdump a.nc
-netcdf a {
-dimensions:
-	TIME = UNLIMITED ; // (3 currently)
-variables:
-	double TIME(TIME) ;
-		TIME:units = "hour since 0000-01-01 00:00:00" ;
-		TIME:time_origin = "01-JAN-0000 00:00:00" ;
-		TIME:modulo = 8765.81982421875 ;
-		TIME:axis = "T" ;
-		TIME:standard_name = "time" ;
-	double A(TIME) ;
-		A:missing_value = -1.e+34 ;
-		A:_FillValue = -1.e+34 ;
-		A:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
-		A:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
-		A:history = "From coads_climatology" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- TIME = 366, 1096.485, 1826.97 ;
-
- A = -0.0994369294620938, -0.0415768591395995, 0.141480238198149 ;
-}
- 
-save/clob/file=aa.nc sst[x=@ave,y=@ave]-sst[x=@ave,y=@ave,t=@ave]
-sp ncdump aa.nc
-netcdf aa {
-dimensions:
-	TIME = UNLIMITED ; // (3 currently)
-variables:
-	double TIME(TIME) ;
-		TIME:units = "hour since 0000-01-01 00:00:00" ;
-		TIME:time_origin = "01-JAN-0000 00:00:00" ;
-		TIME:modulo = 8765.81982421875 ;
-		TIME:axis = "T" ;
-		TIME:standard_name = "time" ;
-	double E410(TIME) ;
-		E410:missing_value = -1.e+34 ;
-		E410:_FillValue = -1.e+34 ;
-		E410:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
-		E410:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
-		E410:history = "From coads_climatology" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- TIME = 366, 1096.485, 1826.97 ;
-
- E410 = -0.0994369294620938, -0.0415768591395995, 0.141480238198149 ;
-}
- 
-! Double check the missing-value matches what is written.
- 
-save/clob/file=aa.nc/y=-81:-75 sst[x=@ave]-sst[x=@ave,t=@ave]
-use aa.nc
-list e410
-             VARIABLE : SST[X=@AVE]-SST[X=@AVE,T=@AVE]
-                        X=20E:20E(380), T=01-JAN 00:45:01-APR 08:12
-             FILENAME : aa.nc
-             SUBSET   : 4 by 3 points (LATITUDE-TIME)
-                    81S    79S    77S    75S   
-                     1      2      3      4
- 16-JAN      / 1:   ....   ....  0.278  0.379
- 15-FEB      / 2:   ....   .... -0.005 -0.122
- 17-MAR      / 3:   ....   .... -1.028 -0.484
- 
-can dat 2
- 
-! Can we ask to save as another data type?
-! Note can't set the bad-flag of an expresion so
-! asking for type of INT cannot match missing to
-! data type so will fail.
- 
-save/clob/file=aa.nc/outtype=float sst[x=@ave,y=@ave]-sst[x=@ave,y=@ave,t=@ave]
-sp ncdump aa.nc
-netcdf aa {
-dimensions:
-	TIME = UNLIMITED ; // (3 currently)
-variables:
-	double TIME(TIME) ;
-		TIME:units = "hour since 0000-01-01 00:00:00" ;
-		TIME:time_origin = "01-JAN-0000 00:00:00" ;
-		TIME:modulo = 8765.81982421875 ;
-		TIME:axis = "T" ;
-		TIME:standard_name = "time" ;
-	float E410(TIME) ;
-		E410:missing_value = -1.e+34f ;
-		E410:_FillValue = -1.e+34f ;
-		E410:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
-		E410:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
-		E410:history = "From coads_climatology" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- TIME = 366, 1096.485, 1826.97 ;
-
- E410 = -0.09943693, -0.04157686, 0.1414802 ;
-}
- 
-save/clob/file=aa.nc/outtype=float/y=-81:-75 sst[x=@ave]-sst[x=@ave,t=@ave]
-use aa.nc
-list e410
-             VARIABLE : SST[X=@AVE]-SST[X=@AVE,T=@AVE]
-                        X=20E:20E(380), T=01-JAN 00:45:01-APR 08:12
-             FILENAME : aa.nc
-             SUBSET   : 4 by 3 points (LATITUDE-TIME)
-                    81S    79S    77S    75S   
-                     1      2      3      4
- 16-JAN      / 1:   ....   ....  0.278  0.379
- 15-FEB      / 2:   ....   .... -0.005 -0.122
- 17-MAR      / 3:   ....   .... -1.028 -0.484
- 
-can dat 2
- 
-! Note can't set the bad-flag of an expresion so
-! asking for type of INT cannot match missing to
-! data type so will return an error.
- 
-set mode ignore
-save/clob/file=aa.nc/outtype=int sst[x=@ave,y=@ave]-sst[x=@ave,y=@ave,t=@ave]
- 
-set mode/last ignore
- 
-GO bn_reset
-cancel mode verify
-GO err684_degC_axlab
-! err684_degC_axlab.jnl
-! ACM 6/2013
-! See ticket 2080. Units of degree_C interpreted as if degree_north.
- 
-ppl clsplt
-set win/asp=1
-can mode logo
-set mode meta degC_axlab.plt
- 
-let/units="degree_C"/title=temperature temp = {1,2,3,2,0}
-let/units="m"/title=depth depth = {1,5,1,5,0}
-plot/vs temp, depth
- 
-set mode/last meta
-set mode/last logo
- 
-GO bn_reset
-cancel mode verify
-GO err684_null_stringwrite
-! err684_null_stringwrite.jnl
-! 18-Jun-2013 ACM
-!
-! Bug 2081
-! write a null string variable (0-length string) to NetCDF
- 
-! This is ok
-let avar = {"a", "", "c"}
-save/file=a.nc/clobber avar
- 
-! Write just a null value resulted in a NetCDF library error
- 
-set mode ignore
-let anull = avar[i=2]
- 
-save/clobber/file=a.nc anull
-set mode/last ignore
- 
- 
-GO bn_reset
-cancel mode verify
-GO err684_FillValue_xml
-! err684_FillValue_xml.jnl
-! ACM 6/2013
-!
-! See the dataset at http://ferret.pmel.noaa.gov/thredds/dodsC/woa09_1deg_monthly
-! where the "number of" variables have  _FillValues attributes = -2147483647
-! This value was being written to the xml headers as a float, without enough precision.
-! See las ticket #761, fixes in show_data_set_vars_xml.F
- 
-! should be    <value>-2147483647</value>
-! instead of:  <value>-2.147484E+09</value>
- 
-use fill_value_int.nc
-sh dat/var/xml
-<datasets>
-<dataset name="./fill_value_int.nc" default="true">
-<title>INT variable with _FillValue -2147483647</title>
-<var name="A_dd">
-<attribute name="units" type="char">
-   <value><![CDATA[1]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[Number of O2 Utilization Observations]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
-   <value>     -2147483647</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[LONG]]></value>
-</attribute>
-<grid name="GEW1">
-<axes>
-<xaxis>LON1</xaxis>
-</axes>
-</grid>
-</var>
-</dataset>
-</datasets>
-<axes>
-<axis name="LON1">
-<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>2</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>300.5</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>301.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="axis" type="char">
-   <value><![CDATA[X]]></value>
-</attribute>
-</axis>
-</axes>
- 
-GO bn_reset
-cancel mode verify
-GO err684_axticlab
-! err684_axticlab
-! 7/10/2013 *acm
-!
-! ticket 1990: axis tic labels for higher precison data
-! had just 2 digits, and didnt capture the data range.
- 
-set mode meta axticlabel.plt
- 
-let/title="tic labels on dependent axis" var = {\
-1.715,1.7136,1.711,1.7083,1.7056,1.703,1.7003,1.6976,1.695,1.6923,\
-1.6897,1.687,1.6843,1.6817,1.679,1.6765,1.676,1.676}
- 
-plot/line/sym/title="Vert axis labels should be 1.675 thru 1.715" var
-can mode meta
- 
- 
-GO bn_reset
-cancel mode verify
-GO err684_dotstart
-! err684_dotstart.jnl
-! 12-Jul-2013 ACM
-!
-! Bug 2084. Avoid a STOP if the expression starts with a .
-!           Issue a normal error message if its an invalid string.
- 
-set mode ignore
- 
-! This previously kicked out with  STOP ALG_BREAK_UP
-! Now will issue an error
-list .hello
- 
-! Related syntax: var.att. Generate errors since no dataset is open
-list a.units
-list ..history
- 
-! Just a dot is interpretd as a number.
-list .
-             VARIABLE : constant
-          0.0000
- 
-set mode/last ignore
- 
-GO bn_reset
-cancel mode verify
-GO err684_vfine_to_coarse
- ! err684_vfine_to_coarse
- ! see ticket 2070.
- 
-def ax/x/edge axi = {0,31,61,92}
-def ax/x/edge axi_coarse = {0, 92}
-let vdat = {3.034547, 3.078104, 3.059311}
-let v = vdat[gx=axi at asn]
-let v_coarse = v[gx=axi_coarse at max]
- 
-list v_coarse
-             VARIABLE : V[GX=AXI_COARSE at MAX]
-             X        : 46
-          3.078
-list v eq v_coarse[gx=v at ave]
-             VARIABLE : V EQ V_COARSE[GX=V at AVE]
-             SUBSET   : 3 points (X)
- 15.5 / 1:  0.000
- 46   / 2:  1.000
- 76.5 / 3:  0.000
- 
- 
-! Y direction
-can var/all
- 
-def ax/y/edge axi = {0,31,61,92}
-def ax/y/edge axi_coarse = {0, 92}
-let vdat = ySEQUENCE({3.034547, 3.078104, 3.059311})
-let v = vdat[gy=axi at asn]
-let v_coarse = v[gy=axi_coarse at max]
- 
-list v_coarse
-             VARIABLE : V[GY=AXI_COARSE at MAX]
-             Y        : 46
-          3.078
-list v eq v_coarse[gy=v at ave]
-             VARIABLE : V EQ V_COARSE[GY=V at AVE]
-             SUBSET   : 3 points (Y)
- 15.5 / 1:  0.000
- 46   / 2:  1.000
- 76.5 / 3:  0.000
- 
- 
-! Z direction
-can var/all
- 
-def ax/z/edge axi = {0,31,61,92}
-def ax/z/edge axi_coarse = {0, 92}
-let vdat = zSEQUENCE({3.034547, 3.078104, 3.059311})
-let v = vdat[gz=axi at asn]
-let v_coarse = v[gz=axi_coarse at max]
- 
-list v_coarse
-             VARIABLE : V[GZ=AXI_COARSE at MAX]
-             Z        : 46
-          3.078
-list v eq v_coarse[gz=v at ave]
-             VARIABLE : V EQ V_COARSE[GZ=V at AVE]
-             SUBSET   : 3 points (Z)
- 15.5 / 1:  0.000
- 46   / 2:  1.000
- 76.5 / 3:  0.000
- 
- 
-! T direction
-can var/all
- 
-def ax/t/edge axi = {0,31,61,92}
-def ax/t/edge axi_coarse = {0, 92}
-let vdat = TSEQUENCE({3.034547, 3.078104, 3.059311})
-let v = vdat[gt=axi at asn]
-let v_coarse = v[gt=axi_coarse at max]
- 
-list v_coarse
-             VARIABLE : V[GT=AXI_COARSE at MAX]
-             T        : 46
-          3.078
-list v eq v_coarse[gt=v at ave]
-             VARIABLE : V EQ V_COARSE[GT=V at AVE]
-             SUBSET   : 3 points (T)
- 15.5 / 1:  0.000
- 46   / 2:  1.000
- 76.5 / 3:  0.000
- 
- 
-! E direction
-can var/all
- 
-def ax/e/edge axi = {0,31,61,92}
-def ax/e/edge axi_coarse = {0, 92}
-let vdat = ESEQUENCE({3.034547, 3.078104, 3.059311})
-let v = vdat[ge=axi at asn]
-let v_coarse = v[ge=axi_coarse at max]
- 
-list v_coarse
-             VARIABLE : V[GE=AXI_COARSE at MAX]
-             E        : 46
-          3.078
-list v eq v_coarse[ge=v at ave]
-             VARIABLE : V EQ V_COARSE[GE=V at AVE]
-             SUBSET   : 3 points (E)
- 15.5 / 1:  0.000
- 46   / 2:  1.000
- 76.5 / 3:  0.000
- 
- 
- 
-! F direction
-can var/all
- 
-def ax/f/edge axi = {0,31,61,92}
-def ax/f/edge axi_coarse = {0, 92}
-let vdat = FSEQUENCE({3.034547, 3.078104, 3.059311})
-let v = vdat[gf=axi at asn]
-let v_coarse = v[gf=axi_coarse at max]
- 
-list v_coarse
-             VARIABLE : V[GF=AXI_COARSE at MAX]
-             F        : 46
-          3.078
-list v eq v_coarse[gf=v at ave]
-             VARIABLE : V EQ V_COARSE[GF=V at AVE]
-             SUBSET   : 3 points (F)
- 15.5 / 1:  0.000
- 46   / 2:  1.000
- 76.5 / 3:  0.000
- 
-GO bn_reset
-cancel mode verify
-GO err684_repeated_coordindates
-! err685_repeated_coordindates.jnl
-!  The NOTE about repeated axis coordaintes reported the wrong index location.
- 
-use latestOb.nc
- 
- 
-GO bn_reset
-cancel mode verify
-GO err684_packed_output
-! err684_packed_output.jnl
-! See ticket 2089
-! By default keep the output type, means we need to
-! re-pack packed data.
- 
-use err684_packed_output.nc
-list/i=1:3 sst
-             VARIABLE : Daily Sea Surface Temperature (degC)
-             FILENAME : err684_packed_output.nc
-             SUBSET   : 3 by 4 points (LONGITUDE-LATITUDE)
-             TIME     : 01-OCT-2012 00:00
-              80.13E 80.38E 80.63E 
-                1      2      3
- 15.88N / 4:   ....   ....  29.03
- 15.63N / 3:   ....  29.18  29.09
- 15.38N / 2:  29.36  29.21  29.10
- 15.13N / 1:  29.40  29.27  29.13
- 
-! data is SHORT, is not scaled
- 
-save/clobber/file=sst_new.nc sst
- 
-can data/all
-use sst_new.nc
-list/i=1:3 sst
-             VARIABLE : Daily Sea Surface Temperature (degC)
-             FILENAME : sst_new.nc
-             SUBSET   : 3 by 4 points (LONGITUDE-LATITUDE)
-             TIME     : 01-OCT-2012 00:00
-              80.13E 80.38E 80.63E 
-                1      2      3
- 15.88N / 4:   ....   ....  29.03
- 15.63N / 3:   ....  29.18  29.09
- 15.38N / 2:  29.36  29.21  29.10
- 15.13N / 1:  29.40  29.27  29.13
- 
- 
-GO bn_reset
-cancel mode verify
-GO err684_string_dim_name
-! err685_string_dim_name.jnl
-! Ticket 2091. If the string variable shares its dimension name,
-! want to just mark it as a file variable not a coord variable.
- 
-! Previously issued warnings about string coordinate variable.
-use trajectory_trajectory_name.nc
- 
-! Previously trajectory was not listed among the file variables.
-list ..varnames
-             VARIABLE : ..VARNAMES
-             FILENAME : trajectory_trajectory_name.nc
-             SUBSET   : 6 points (X)
- 1   / 1:"trajectory"
- 2   / 2:"rowSize"   
- 3   / 3:"longitude" 
- 4   / 4:"latitude"  
- 5   / 5:"time"      
- 6   / 6:"temp"      
- 
- 
-GO bn_reset
-cancel mode verify
-GO err684_define_grid
-! err684_define_grid.jnl
-! 25-Oct-2013 ACM
-!
-! Bug 2096, defining grid with some user-defined axes. Previously
-! this resulted in err msg with inappropriate orientation for Z axis
- 
-define axis/z=0:100:2/depth/unit=meters zax
-define axis/x=-178:-157:1/units=degrees_east lon_ax
-define axis/y=54:66:0.5/units=degrees_north lat_ax
- 
-define grid/x=lon_ax/y=lat_ax/z=zax three_d_grd
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_dsg_e_x
-! bn_dsg_e.jnl
-!
-!  Discrete Sampling Geometries files
-!  Create grids such that the instance dimension
-!  is on the E axis, so that the variable which
-!  has the cf_role attribute has an E grid.
-!  The obs axis is in the X direction.
- 
-use dsg.nc
-sh dat
-     currently SET data sets:
-    1> ./dsg.nc  (default)
- name     title                             I         J         K         L         M         N
- ROWSIZE  number of obs for this profile   ...       ...       ...       ...       1:3       ...
- PROFILE  profile ID: Cruise and Station   ...       ...       ...       ...       1:3       ...
- TIME     time                             ...       ...       ...       ...       1:3       ...
- LATITUDE station latitude                 ...       ...       ...       ...       1:3       ...
- LONGITUDE
-          station longitude                ...       ...       ...       ...       1:3       ...
- POT_TEMP_DEGC
-          pot_temp_degc                    1:34      ...       ...       ...       ...       ...
- SAL      sal                              1:34      ...       ...       ...       ...       ...
- 
-sh att profile
-     attributes for dataset: ./dsg.nc
- profile.missing_value = -1.E+34
- profile._FillValue = -1.E+34
- profile.long_name = profile ID: Cruise and Station 
- profile.cf_role = profile_id 
- profile.history = From FINAL_verification_data_all_PacOOS_NHL_OCNMS_CCCC_03072013.txt 
-sh grid rowsize
-    GRID GEN1
- name       axis              # pts   start                end
- normal    X
- normal    Y
- normal    Z
- normal    T
- PROF      E                    3 r   1                    3
- normal    F
-sh grid sal
-    GRID GEN2
- name       axis              # pts   start                end
- OBS       X                   34 r   1                    34
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
- 
-GO bn_reset
-cancel mode verify
-GO bn_nco_append
-! bn_nco_append.jnl
-! 5/2013 add a test appending files with ncks
- 
- ! These functions use Unix NCO utilities, found at http://nco.sourceforge.net/
- ! If NCO is not installed, it is fine to comment out this script when running
- ! the Ferret benchmark suite.
- 
-! Prior to v6.85 Ferret's NCO function always included -O for Override.
-! Appending failed. In v6.85+, if -A is included then dont send -O to ncks.
-use z1
-use z2
-sh dat
-     currently SET data sets:
-    1> ./z1.nc
- name     title                             I         J         K         L         M         N
- DDAT_ORIG
-          DDAT[GZ=ZAXIS_ORIG at ASN]          ...       ...       1:5       ...       ...       ...
- 
-    2> ./z2.nc  (default)
- name     title                             I         J         K         L         M         N
- CYCLE_ORIG
-          CYCLE[GZ=ZAXIS_ORIG at ASN]         ...       ...       1:5       ...       ...       ...
- 
- 
-! Write a file to be appended to and append variable in z1.nc to the file.
- 
-save/clobber/file=append_to_this.nc cycle_orig
-load nco("ncks", "-A -h z1.nc append_to_this.nc")
-sp ncdump -h append_to_this.nc
-netcdf append_to_this {
-dimensions:
-	ZAXIS_ORIG = 5 ;
-variables:
-	double ZAXIS_ORIG(ZAXIS_ORIG) ;
-		ZAXIS_ORIG:point_spacing = "even" ;
-		ZAXIS_ORIG:axis = "Z" ;
-		ZAXIS_ORIG:standard_name = "altitude" ;
-	double CYCLE_ORIG(ZAXIS_ORIG) ;
-		CYCLE_ORIG:missing_value = -1.e+34 ;
-		CYCLE_ORIG:_FillValue = -1.e+34 ;
-		CYCLE_ORIG:long_name = "CYCLE[GZ=ZAXIS_ORIG at ASN]" ;
-		CYCLE_ORIG:history = "From z2" ;
-	double DDAT_ORIG(ZAXIS_ORIG) ;
-		DDAT_ORIG:missing_value = -1.e+34 ;
-		DDAT_ORIG:_FillValue = -1.e+34 ;
-		DDAT_ORIG:long_name = "DDAT[GZ=ZAXIS_ORIG at ASN]" ;
-
-// global attributes:
-		:history = "Tue Nov 12 15:13:58 2013: ncks -h -A -h z1.nc append_to_this.nc\n",
-			"FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-}
- 
-GO bn_reset
-cancel mode verify
-GO bn_nobounds
-! bn_nobounds.jnl
-! The SAVE/NOBOUNDS qualifier causes bounds never to be written
-! even if the data is irregular, and even if the axis came into
-! Ferret with bounds.
- 
-define axis/x/units=meters xirreg = {0,1,2,4,8}
-let avar = x[gx=xirreg]
-save/clobber/file=a.nc avar
-sp ncdump a.nc
-netcdf a {
-dimensions:
-	XIRREG = 5 ;
-	bnds = 2 ;
-variables:
-	double XIRREG(XIRREG) ;
-		XIRREG:point_spacing = "uneven" ;
-		XIRREG:axis = "X" ;
-		XIRREG:bounds = "XIRREG_bnds" ;
-		XIRREG:units = "meters" ;
-	double XIRREG_bnds(XIRREG, bnds) ;
-	double AVAR(XIRREG) ;
-		AVAR:missing_value = -1.e+34 ;
-		AVAR:_FillValue = -1.e+34 ;
-		AVAR:long_name = "X[GX=XIRREG]" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- XIRREG = 0, 1, 2, 4, 8 ;
-
- XIRREG_bnds =
-  -0.5, 0.5,
-  0.5, 1.5,
-  1.5, 3,
-  3, 6,
-  6, 10 ;
-
- AVAR = 0, 1, 2, 4, 8 ;
-}
-save/nobounds/clobber/file=a.nc avar
-sp ncdump a.nc
-netcdf a {
-dimensions:
-	XIRREG = 5 ;
-variables:
-	double XIRREG(XIRREG) ;
-		XIRREG:point_spacing = "uneven" ;
-		XIRREG:axis = "X" ;
-		XIRREG:units = "meters" ;
-	double AVAR(XIRREG) ;
-		AVAR:missing_value = -1.e+34 ;
-		AVAR:_FillValue = -1.e+34 ;
-		AVAR:long_name = "X[GX=XIRREG]" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- XIRREG = 0, 1, 2, 4, 8 ;
-
- AVAR = 0, 1, 2, 4, 8 ;
-}
- 
-! The dataset has a bounds attribute on the time axis
-! (the bounds themselves get corrected by Ferret on opening the file)
-use gappy_bounds.nc
-sh dat
-     currently SET data sets:
-    1> ./gappy_bounds.nc  (default)
- name     title                             I         J         K         L         M         N
- A        SST[X=150:180 at AVE,Y=-10:0 at AVE]   ...       ...       ...       1:6       ...       ...
- 
- 
-! See the bounds attribute on the t axis
-sh dat/att
-     currently SET data sets:
-    1> ./gappy_bounds.nc  (default)
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               history         CHAR        24   T       FERRET V5.60   24-May-04
-  
-(TGAP)                 DOUBLE    units           CHAR        30   T       DAYS since 1990-01-01 00:00:00
-                                 time_origin     CHAR        20   T       01-JAN-1990 00:00:00
-                                 axis            CHAR        1    T       T
-                                 bounds          CHAR        9    T       TGAP_bnds
-                                 orig_file_axnameCHAR        4    F       TGAP
-  
- TGAP_bnds             DOUBLE
-  
- A                     FLOAT     missing_value   FLOAT       1    T       -1.E+34
-                                 _FillValue      FLOAT       1    T       -1.E+34
-                                 long_name       CHAR        30   T       SST[X=150:180 at AVE,Y=-10:0 at AVE]
-                                 history         CHAR        10   T       From coads
-  
- 
-! On a SAVE/NOBOUNDS, do not write the bounds
-! and do not write a bounds attribute on the axis.
-save/clobber/file=a.nc/nobounds a
-sp ncdump -h a.nc	
-netcdf a {
-dimensions:
-	TGAP = UNLIMITED ; // (6 currently)
-variables:
-	double TGAP(TGAP) ;
-		TGAP:units = "days since 1990-01-01 00:00:00" ;
-		TGAP:time_origin = "01-JAN-1990 00:00:00" ;
-		TGAP:axis = "T" ;
-		TGAP:standard_name = "time" ;
-	float A(TGAP) ;
-		A:missing_value = -1.e+34f ;
-		A:_FillValue = -1.e+34f ;
-		A:long_name = "SST[X=150:180 at AVE,Y=-10:0 at AVE]" ;
-		A:history = "From coads" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-}
- 
-! On a SAVE either with /BOUNDS or no bounds qualifier,
-! bounds are written for this irregular time axis.
-save/clobber/file=a.nc/bounds a
- 
-sp ncdump -h a.nc	
-netcdf a {
-dimensions:
-	TGAP = UNLIMITED ; // (6 currently)
-	bnds = 2 ;
-variables:
-	double TGAP(TGAP) ;
-		TGAP:units = "days since 1990-01-01 00:00:00" ;
-		TGAP:time_origin = "01-JAN-1990 00:00:00" ;
-		TGAP:axis = "T" ;
-		TGAP:bounds = "TGAP_bnds" ;
-		TGAP:standard_name = "time" ;
-	double TGAP_bnds(TGAP, bnds) ;
-	float A(TGAP) ;
-		A:missing_value = -1.e+34f ;
-		A:_FillValue = -1.e+34f ;
-		A:long_name = "SST[X=150:180 at AVE,Y=-10:0 at AVE]" ;
-		A:history = "From coads" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-}
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_write_integer_att
-! bn_write_integer_att.jnl
-!  ACM 6/2013
-!
-! This file has an integer attribute
-!    MHCHLA:numberOfObservations = 15736939 ;
-! With double-precision Ferret, we need to call CD_WRITE_ATTVAL_DP
-! in cdf_list.F, so that the value, read in as a double, is written
-! out correctly (else get a netcdf data type matching error).
- 
-use write_int_att.nc
-sh att mhchla
-     attributes for dataset: ./write_int_att.nc
- MHCHLA.missing_value = -9999999
- MHCHLA._FillValue = -9999999
- MHCHLA.actual_range = 0.00049, 91.76669
- MHCHLA.coordsys = geographic 
- MHCHLA.fraction_digits = 2
- MHCHLA.long_name = Chlorophyll-a, Aqua MODIS, NPP, 0.05 degrees, Global, Science Quality 
- MHCHLA.numberOfObservations = 15736939
- MHCHLA.percentCoverage = 0.4216215
- MHCHLA.standard_name = concentration_of_chlorophyll_in_sea_water 
- MHCHLA.units = mg m-3 
- MHCHLA.history = From http://oceanwatch.pfeg.noaa.gov/thredds/dodsC/satellite/MH/chla/mday 
-set att/output=all mhchla
-save/file=a.nc/clobber mhchla
- 
-sp ncdump a.nc | grep numberOfObservations
-		MHCHLA:numberOfObservations = 15736939 ;
- 
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_descriptor_mc
-! bn_descriptor_mc.jnl
-! 7/2013 ACM
-! See ticket 2087
-!
-! Allow extension ".mc" to indicate a descriptor file, as discussed in
-! http://www.pmel.noaa.gov/maillists/tmap/ferret_users/fu_2013/msg00355.html
-!
-use des.mc
-list/x=180/y=0 sst
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             FILENAME : des.mc
-             SUBSET   : 6 points (TIME)
-             LONGITUDE: 180E (interpolated)
-             LATITUDE : 0 (interpolated)
- 16-JAN-0000 / 1:  28.36
- 15-FEB-0000 / 2:  28.38
- 17-MAR-0000 / 3:  28.00
- 16-APR-0000 / 4:  27.99
- 16-MAY-0000 / 5:  28.41
- 16-JUN-0000 / 6:  28.23
- 
-! Also implement /FORMAT=desriptor for both USE and SET DATA
- 
-use/format=desc des.my_descriptor
-list /x=300/y=10 sst
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             FILENAME : des.my_descriptor
-             SUBSET   : 4 points (TIME)
-             LONGITUDE: 60W (interpolated)
-             LATITUDE : 10N (interpolated)
- 17-MAR-0000 / 1:  26.70
- 16-APR-0000 / 2:  27.17
- 16-MAY-0000 / 3:  27.39
- 16-JUN-0000 / 4:  27.65
- 
-GO bn_reset
-cancel mode verify
-GO bn_plot_color_only
-! bn_plot_color_only.jnl
-! 9/20/2013 ACM
-! ticket 2094
-!  PLOT/COLOR with no argument skips the black pen and starts with the next one.
- 
-let pi=atan(1.)*4.
-let a = (-1)*pi*4 + i[i=1:500]*(8*pi/500)
-let b = sin(a)/a
- 
- 
-set view upper
-plot/color b, b[i=@shf:20]
- 
-! With user-defined colors
-ppl color 2, 0, 50, 100
-ppl color 3, 100, 50, 0
-set view lower
-plot/color/thick=3/dash=(0.05,0.1,0.2,0.1) b, b[i=@shf:20]
- 
-! With extra user-defined colors
-can view
-set mode linec:12
-can win/all; set win/new
-ppl color,7,100,65,51   ! orange
-ppl color,8,0,55,0      ! dark green
-ppl color,9,60,0,100    ! purple
-ppl color,10,100,70,100 ! magenta
-ppl color,11,80,70,60   ! tan
-ppl color,12,100,88,0   ! yellow
- 
-plot/thick/color/line/i=1:100 \
- cos(i/20), cos(i/24), cos(i/28), cos(i/32), \
- cos(i/36), cos(i/40), cos(i/44), cos(i/48), \
- cos(i/52), cos(i/56), cos(i/60), cos(i/64)
- 
-cancel mode linecolors
-can win/all; set win/new
- 
-! If lines are plotted using /OVER, Ferret keeps track of the number of lines
-! and continues with the next set of colors. When /startcolor is given, the
-! count is incremented so that subsequent plots continue with the color
-! sequence.
- 
-! colors 1, 2, 3, 4
-set view upper
-plot/thick/i=1:50/vlim=-1.1:1.1 sin(i/6)
-plot/thick/i=1:50/over sin(i/7)
-plot/thick/i=1:50/over 0.6*sin(i/8)
-plot/thick/i=1:50/over 0.6*sin(i/9)
- 
-! colors 2, 3, 4, 5
-set view lower
-plot/thick/i=1:50/vlim=-1.1:1.1/COLOR sin(i/6)
-plot/thick/i=1:50/over sin(i/7)
-plot/thick/i=1:50/over 0.6*sin(i/8)
-plot/thick/i=1:50/over 0.6*sin(i/9)
- 
-! intentional errors
-! /COLOR (w/o argument) not allowed on PLOT/OVER.
- 
-can view
-set mode ignore
- 
-plot/i=1:100 sin(i/6)
-plot/i=1:100/over/COLOR 0.6*sin(i/7)
- 
-! PLOT/COLOR not allowed on PLOT/RIBBON.
- 
-can view
-plot/i=1:100/ribbon/COLOR sin(i/6),0.6*sin(i/7)
- 
-set mode/last ignore
- 
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_vtree
-! bn_tree.jnl
- 
-! 11/2013 -- demonstrate SHOW VARIABLE/TREE and RETRUN=STATUS
- 
-CANCEL DATA/ALL
-! pure abstract variable -- no dataset
-let a = 1
-show var/tree a
-   A = 1
- 
-let b = 1
-let c = SIN(b)
-show var/tree c
-   C = SIN(B)
-     B = 1
- 
-! create dummy datasets so we'll have named file variables to play with
-let fv1 = 1
-let fvx = x[i=1:3]
-let fvz = Z[k=1:3]
-SAVE/CLOBBER/QUIET/FILE=my_file_vars.nc fv1, fvx, fvz
-SAVE/CLOBBER/QUIET/FILE=other_file_vars.nc fv1
-SAVE/CLOBBER/QUIET/FILE=another_file_vars.nc fv1
-CAN VAR/ALL
-use  my_file_vars, other_file_vars, another_file_vars
-set data 1
- 
-! ================
- 
-! more pure abstract variables
-let a = 1
-let b = 1
-let c = SIN(b)
-go bn_vtree.sub c
-/TREE=ALL
-   in default dataset my_file_vars
-   C = SIN(B)
-     B = 1
-/TREE=USER
-   in default dataset my_file_vars
-   C = SIN(B)
-     B = 1
-/TREE=FILE
-c is ready and AVAILABLE
-************************
- 
-! file variables
-go bn_vtree.sub fv1
-/TREE=ALL
-   in default dataset my_file_vars
-   FV1
-/TREE=USER
-/TREE=FILE
-   FV1[d=my_file_vars]
-fv1 is ready and AVAILABLE
-************************
-show var/tree/d=other_file_vars fv1
- 
-! expressions
-let a = fv1 + fvx
-go bn_vtree.sub a
-/TREE=ALL
-   in default dataset my_file_vars
-   A = FV1 + FVX
-     FV1
-     FVX
-/TREE=USER
-   in default dataset my_file_vars
-   A = FV1 + FVX
-/TREE=FILE
-   FV1[d=my_file_vars]
-   FVX[d=my_file_vars]
-a is ready and AVAILABLE
-************************
- 
-let a = fv1[d=1] - fv1[d=2]
-vtree=file a
-   FV1[d=my_file_vars]
-   FV1[d=other_file_vars]
-vtree=all a
-   in default dataset my_file_vars
-   A = FV1[D=1] - FV1[D=2]
-     FV1
-     FV1[d=other_file_var]
-vtree=all /d=1 a
-   in default dataset my_file_vars
-   A = FV1[D=1] - FV1[D=2]
-     FV1
-     FV1[d=other_file_var]
-vtree=all /d=2 a
-   in default dataset other_file_vars
-   A = FV1[D=1] - FV1[D=2]
-     FV1[d=my_file_var]
-     FV1
-********************************
- 
-! unrecognized variable names
-go bn_vtree.sub noexist
-/TREE=ALL
-   in default dataset my_file_vars
-   NOEXIST   (unknown variable)
-/TREE=USER
-   in default dataset my_file_vars
-   NOEXIST   (unknown variable)
-/TREE=FILE
-   NOEXIST  (unknown variable)
-the problem is UNKNOWN VARIABLE: NOEXIST
-************************
- 
-! unrecognized dataset
-go bn_vtree.sub v[d=noexist]
-/TREE=ALL
-   in default dataset my_file_vars
-   V[D=NOEXIST]   (unknown dataset)
-/TREE=USER
-   in default dataset my_file_vars
-   V[D=NOEXIST]   (unknown dataset)
-/TREE=FILE
-   V[D=NOEXIST]  (unknown dataset)
-the problem is UNKNOWN DATASET: V[D=NOEXIST]
-************************
- 
-! unrecognized dataset and variable
-go bn_vtree.sub novar[d=nodset]
-/TREE=ALL
-   in default dataset my_file_vars
-   NOVAR[D=NODSET]   (unknown dataset)
-/TREE=USER
-   in default dataset my_file_vars
-   NOVAR[D=NODSET]   (unknown dataset)
-/TREE=FILE
-   NOVAR[D=NODSET]  (unknown dataset)
-the problem is UNKNOWN DATASET: NOVAR[D=NODSET]
-************************
- 
-let b = noexist
-go bn_vtree.sub b
-/TREE=ALL
-   in default dataset my_file_vars
-   B = NOEXIST
-     NOEXIST   (unknown variable)
-/TREE=USER
-   in default dataset my_file_vars
-   B = NOEXIST
-     NOEXIST   (unknown variable)
-/TREE=FILE
-   NOEXIST  (unknown variable)
-the problem is UNKNOWN VARIABLE: NOEXIST
-************************
- 
-! grid-changing functions
-go bn_vtree.sub RESHAPE(fvx,fvz)
-/TREE=ALL
-   in default dataset my_file_vars
-   FVX
-   FVZ
-/TREE=USER
-/TREE=FILE
-   FVX[d=my_file_vars]
-   FVZ[d=my_file_vars]
-RESHAPE(fvx,fvz) is ready and AVAILABLE
-************************
- 
-! file variable aux var
-LET Zpts = Z[Z=0:500:100]
-define axis/z/units=meters zax = zpts
-LET fv1z = fv1[gz(fvz)=zpts] + fvx
-go bn_vtree.sub fv1z
-/TREE=ALL
-   in default dataset my_file_vars
-   FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
-     FV1
-       FVZ
-     FVX
-/TREE=USER
-   in default dataset my_file_vars
-   FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
-/TREE=FILE
-   FV1[d=my_file_vars]
-   FVZ[d=my_file_vars]
-   FVX[d=my_file_vars]
-fv1z is ready and AVAILABLE
-************************
- 
-! user-defined aux vars
-let depth = z[g=fvz]
-LET fv1z = fv1[gz(depth)=zpts] + fvx
-go bn_vtree.sub fv1z
-/TREE=ALL
-   in default dataset my_file_vars
-   FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
-     FV1
-       DEPTH = Z[G=FVZ]
-     FVX
-/TREE=USER
-   in default dataset my_file_vars
-   FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
-       DEPTH = Z[G=FVZ]
-/TREE=FILE
-   FV1[d=my_file_vars]
-   FVX[d=my_file_vars]
-fv1z is ready and AVAILABLE
-************************
- 
-let depth = z[g=fvz]+ 0*fvz[k=1]
-LET fv1z = fv1[gz(depth)=zpts] + fvx
-go bn_vtree.sub fv1z
-/TREE=ALL
-   in default dataset my_file_vars
-   FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
-     FV1
-       DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
-         FVZ
-     FVX
-/TREE=USER
-   in default dataset my_file_vars
-   FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
-       DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
-/TREE=FILE
-   FV1[d=my_file_vars]
-   FVZ[d=my_file_vars]
-   FVX[d=my_file_vars]
-fv1z is ready and AVAILABLE
-************************
- 
-! unknown aux var
-LET fv1z = fv1[gz(noexist)=zpts] + fvx
-go bn_vtree.sub fv1z
-/TREE=ALL
-   in default dataset my_file_vars
-   FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
-       NOEXIST   (unknown auxiliary variable)
-     FVX
-/TREE=USER
-   in default dataset my_file_vars
-   FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
-       NOEXIST   (unknown auxiliary variable)
-/TREE=FILE
-   NOEXIST  (unknown auxiliary variable)
-   FVX[d=my_file_vars]
-the problem is UNKNOWN AUXILIARY VARIABLE: NOEXIST
-************************
- 
-! unknown variable with known aux var
-LET fv1z = noexist[gz(depth)=zpts] + fvx
-go bn_vtree.sub fv1z
-/TREE=ALL
-   in default dataset my_file_vars
-   FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
-     NOEXIST[GZ(DEPTH)=ZPTS]   (unknown variable)
-       DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
-         FVZ
-     FVX
-/TREE=USER
-   in default dataset my_file_vars
-   FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
-     NOEXIST[GZ(DEPTH)=ZPTS]   (unknown variable)
-       DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
-/TREE=FILE
-   NOEXIST[GZ(DEPTH)=ZPTS]  (unknown variable)
-   FVZ[d=my_file_vars]
-   FVX[d=my_file_vars]
-the problem is UNKNOWN VARIABLE: NOEXIST[GZ(DEPTH)=ZPTS]
-************************
- 
-! unknown variable with unknown aux var
-LET fv1z = noexist[gz(unknown_aux)=zpts] + fvx
-go bn_vtree.sub fv1z
-/TREE=ALL
-   in default dataset my_file_vars
-   FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
-     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]   (unknown variable)
-       UNKNOWN_AUX   (unknown auxiliary variable)
-     FVX
-/TREE=USER
-   in default dataset my_file_vars
-   FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
-     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]   (unknown variable)
-       UNKNOWN_AUX   (unknown auxiliary variable)
-/TREE=FILE
-   NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]  (unknown variable)
-   UNKNOWN_AUX  (unknown auxiliary variable)
-   FVX[d=my_file_vars]
-the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
-************************
- 
-! aggregate (ensemble) dataset of file variables
-define data/agg my_agg = my_file_vars, other_file_vars, another_file_vars
-go bn_vtree.sub fv1
-/TREE=ALL
-   in default dataset MY_AGG
-   FV1   (aggregate variable)
-     FV1[d=my_file_var]
-     FV1[d=other_file_var]
-     FV1[d=another_file_var]
-/TREE=USER
-   in default dataset MY_AGG
-   FV1   (aggregate variable)
-/TREE=FILE
- 
-   FV1[d=my_file_vars]
-   FV1[d=other_file_vars]
-   FV1[d=another_file_vars]
-fv1 is ready and AVAILABLE
-************************
- 
-! aggregation in which some members are uvars
-let/d=other_file_vars   fvx = fv1 + x[gx=fvx[d=1],i=1:3]
-let/d=another_file_vars fvx = 2*fv1 + x[gx=fvx[d=1],i=1:3]
-define data/agg my_uvar_agg = my_file_vars, other_file_vars, another_file_vars
-go bn_vtree.sub fvx
-/TREE=ALL
-   in default dataset MY_UVAR_AGG
-   FVX   (aggregate variable)
-     FVX[d=my_file_var]
-     FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
-       FV1[d=other_file_var]
-     FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
-       FV1[d=another_file_var]
-/TREE=USER
-   in default dataset MY_UVAR_AGG
-   FVX   (aggregate variable)
-     FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
-     FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
-/TREE=FILE
- 
-   FVX[d=my_file_vars]
-   FV1[d=other_file_vars]
-   FV1[d=another_file_vars]
-fvx is ready and AVAILABLE
-************************
- 
-! recursions
-! ... a circular parent dependency is a recursion; sibling dependency is not
-let p0 = s1 + p1
-let p1 = s2 + p2
-let p2 = s3 + p3
-let p3 = p1 + S3
-go bn_vtree.sub p0    ! recursion
-/TREE=ALL
-   in default dataset MY_UVAR_AGG
-   P0 = S1 + P1
-     S1   (unknown variable)
-     P1 = S2 + P2
-       S2   (unknown variable)
-       P2 = S3 + P3
-         S3   (unknown variable)
-         P3 = P1 + S3
-           P1 =   *** WARNING: RECURSIVE DEFINITION.  See above
-           S3   (unknown variable)
-/TREE=USER
-   in default dataset MY_UVAR_AGG
-   P0 = S1 + P1
-     S1   (unknown variable)
-     P1 = S2 + P2
-       S2   (unknown variable)
-       P2 = S3 + P3
-         S3   (unknown variable)
-         P3 = P1 + S3
-           P1 =   *** WARNING: RECURSIVE DEFINITION.  See above
-           S3   (unknown variable)
-/TREE=FILE
-   S1  (unknown variable)
-   S2  (unknown variable)
-   S3  (unknown variable)
-   S3  (unknown variable)
-the problem is ILLEGAL RECURSIVE VARIABLES: P1
-************************
-let p3 = s1 + S3
-go bn_vtree.sub p0    ! ok
-/TREE=ALL
-   in default dataset MY_UVAR_AGG
-   P0 = S1 + P1
-     S1   (unknown variable)
-     P1 = S2 + P2
-       S2   (unknown variable)
-       P2 = S3 + P3
-         S3   (unknown variable)
-         P3 = S1 + S3
-           S1   (unknown variable)
-           S3   (unknown variable)
-/TREE=USER
-   in default dataset MY_UVAR_AGG
-   P0 = S1 + P1
-     S1   (unknown variable)
-     P1 = S2 + P2
-       S2   (unknown variable)
-       P2 = S3 + P3
-         S3   (unknown variable)
-         P3 = S1 + S3
-           S1   (unknown variable)
-           S3   (unknown variable)
-/TREE=FILE
-   S1  (unknown variable)
-   S2  (unknown variable)
-   S3  (unknown variable)
-   S1  (unknown variable)
-   S3  (unknown variable)
-the problem is UNKNOWN VARIABLE: S1
-************************
- 
-! suppressing duplicated siblings (twins)
-let fv = fv1 + fv1 + fv1
-let uv = fvx + fvx + fvx
-show var/tree/d=my_file_vars    fv
-   in default dataset my_file_vars
-   FV = FV1 + FV1 + FV1
-show var/tree/d=my_uvar_agg     fv
-   in default dataset MY_UVAR_AGG
-   FV = FV1 + FV1 + FV1
-     FV1   (aggregate variable)
-show var/tree/d=other_file_vars uv
-   in default dataset other_file_vars
-   UV = FVX + FVX + FVX
-     FVX = FV1 + X[GX=FVX[D=1],I=1:3]
-show var/tree/d=my_uvar_agg     uv
-   in default dataset MY_UVAR_AGG
-   UV = FVX + FVX + FVX
-     FVX   (aggregate variable)
-       FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
-       FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
-***************************
- 
-! suppressing duplicates elsewhere in the family tree ("defined above")
-let b = c
-let c = 1
-let v1 = a  + b + b^2
-let v2 = v1 + b + a + a        ! a appears after v1
-let v3 = a + v1 + b + a + a    ! a appears before v1
-go bn_vtree.sub v2
-/TREE=ALL
-   in default dataset MY_UVAR_AGG
-   V2 = V1 + B + A + A
-     V1 = A  + B + B^2
-       A = FV1[D=1] - FV1[D=2]
-         FV1[d=my_file_var]
-         FV1[d=other_file_var]
-       B = C
-         C = 1
-     B =  (defined above)
-     A =  (defined above)
-/TREE=USER
-   in default dataset MY_UVAR_AGG
-   V2 = V1 + B + A + A
-     V1 = A  + B + B^2
-       A = FV1[D=1] - FV1[D=2]
-       B = C
-         C = 1
-     B =  (defined above)
-     A =  (defined above)
-/TREE=FILE
-   FV1[d=my_file_vars]
-   FV1[d=other_file_vars]
-v2 is ready and AVAILABLE
-************************
-go bn_vtree.sub v3
-/TREE=ALL
-   in default dataset MY_UVAR_AGG
-   V3 = A + V1 + B + A + A
-     A = FV1[D=1] - FV1[D=2]
-       FV1[d=my_file_var]
-       FV1[d=other_file_var]
-     V1 = A  + B + B^2
-       A =  (defined above)
-       B = C
-         C = 1
-     B =  (defined above)
-/TREE=USER
-   in default dataset MY_UVAR_AGG
-   V3 = A + V1 + B + A + A
-     A = FV1[D=1] - FV1[D=2]
-     V1 = A  + B + B^2
-       A =  (defined above)
-       B = C
-         C = 1
-     B =  (defined above)
-/TREE=FILE
-   FV1[d=my_file_vars]
-   FV1[d=other_file_vars]
-v3 is ready and AVAILABLE
-************************
- 
-! collections of trees handled as a group
-! display from large tree size to small, suppressing definitions already displayed
-cancel var/all
-let a = f
-let b = fv1[d=my_file_vars]
-let c = 1
-let d = b + c
-let e = 1
-go bn_vtree.sub "a, b, c, noexist, d, e, fvx[d=my_file_vars]"
-/TREE=ALL
-   in default dataset MY_UVAR_AGG
-   D = B + C
-     B = FV1[D=MY_FILE_VARS]
-       FV1[d=my_file_var]
-     C = 1
-   A = F
-     F   (unknown variable)
-   NOEXIST   (unknown variable)
-   E = 1
-   FVX[d=my_file_var]
-/TREE=USER
-   in default dataset MY_UVAR_AGG
-   D = B + C
-     B = FV1[D=MY_FILE_VARS]
-     C = 1
-   A = F
-     F   (unknown variable)
-   NOEXIST   (unknown variable)
-   E = 1
-/TREE=FILE
-   F  (unknown variable)
-   FV1[d=my_file_vars]
-   NOEXIST  (unknown variable)
-   FVX[d=my_file_vars]
-the problem is UNKNOWN VARIABLE: F
-************************
- 
-! reporting other errors in definitions
-  set mode ignore
- 
-  ! unidentified grid
-  let a = i[i=1:5]
-  let b = a[g=noexist]
-  go bn_vtree.sub b
-/TREE=ALL
-   in default dataset MY_UVAR_AGG
-   B = A[G=NOEXIST]
-     A[G=NOEXIST]   (unknown grid)
-/TREE=USER
-   in default dataset MY_UVAR_AGG
-   B = A[G=NOEXIST]
-     A[G=NOEXIST]   (unknown grid)
-/TREE=FILE
-   A[G=NOEXIST]  (unknown grid)
-the problem is UNKNOWN GRID: A[G=NOEXIST]
-************************
-  list b
- 
-  ! syntax error - format of longitude
-  let c = a[x=45s]
-  go bn_vtree.sub c
-/TREE=ALL
-   in default dataset MY_UVAR_AGG
-   C = A[X=45S]
-     A[X=45S]   *** WARNING: ERROR IN DEFINITION
-/TREE=USER
-   in default dataset MY_UVAR_AGG
-   C = A[X=45S]
-     A[X=45S]   *** WARNING: ERROR IN DEFINITION
-/TREE=FILE
-   A[X=45S]   *** WARNING: SYNTAX ERROR
-the problem is ERROR IN EXPRESSION: A[X=45S]
-************************
-  list c
- 
-  ! syntax error - extra comma
-  let d = a[i=1,,j=2]
-  go bn_vtree.sub d
-/TREE=ALL
-   in default dataset MY_UVAR_AGG
-   D = A[I=1,,J=2]
-     A[I=1,,J=2]   *** WARNING: ERROR IN DEFINITION
-/TREE=USER
-   in default dataset MY_UVAR_AGG
-   D = A[I=1,,J=2]
-     A[I=1,,J=2]   *** WARNING: ERROR IN DEFINITION
-/TREE=FILE
-   A[I=1,,J=2]   *** WARNING: SYNTAX ERROR
-the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
-************************
-  list d
- 
-  ! syntax error - unknown pseudovariable
-  let e = a[p=1]
-  go bn_vtree.sub e
-/TREE=ALL
-   in default dataset MY_UVAR_AGG
-   E = A[P=1]
-     A[P=1]   *** WARNING: ERROR IN DEFINITION
-/TREE=USER
-   in default dataset MY_UVAR_AGG
-   E = A[P=1]
-     A[P=1]   *** WARNING: ERROR IN DEFINITION
-/TREE=FILE
-   A[P=1]   *** WARNING: SYNTAX ERROR
-the problem is ERROR IN EXPRESSION: A[P=1]
-************************
-  list e
- 
-  ! out of limit region -- not detectable as error, because grids are never determined
-  let f = a[i=10]
-  go bn_vtree.sub f
-/TREE=ALL
-   in default dataset MY_UVAR_AGG
-   F = A[I=10]
-     A = I[I=1:5]
-/TREE=USER
-   in default dataset MY_UVAR_AGG
-   F = A[I=10]
-     A = I[I=1:5]
-/TREE=FILE
-f is ready and AVAILABLE
-************************
-  list f
- 
-  set mode/last ignore
- 
-! dependency through attribute sharing (not yet implemented)
-let a = fvz.long_name[d=1]
-show var/tree a
-   in default dataset MY_UVAR_AGG
-   A = FVZ.LONG_NAME[D=1]
-let a = ..history[d=1]
-show var/tree a
-   in default dataset MY_UVAR_AGG
-   A = ..HISTORY[D=1]
- 
- 
-!!!!!!!!!!!!! Note we should include tests for all the scat2grid functions.
-!!!!!!!!! completed and improved the docs for scat2grid_bin and scat2grid_nbin functions
- 
-! version 2.3 requires exit/command *sh* 3/92
-exit/command
-yes? ! bn_all_ef_shell.jnl
-yes? ! 5/05 *acm*
-yes? ! run bn_all_ef tests
-yes? 
-yes? GO bn_all_ef
- 	NOAA/PMEL TMAP
- 	FERRET v6.85  
- 	Linux 2.6.32-358.23.2.el6.x86_64 32-bit - 11/12/13
- 	12-Nov-13 15:13     
-
-SET MODE VERIFY
-! bn_all_ef.jnl
-! - run all the benchmark tests for externally-linked external functions.
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_ef_external_functions.jnl
-! Tests of external functions that are distributed as shared object files.
- 
-! Jon's benchmarks
-go bench_examples
-set mode ignore_error
-show func/ext add_9
-show func/ext ave*
-AVE_SCAT2GRID_T(TPTS,VPTS,TAXIS)
-    Compute average of a variable in each cell of output time axis
-    TPTS: T coordinates of scattered input time coordinates
-    VPTS: Variable at times in TPTS
-    TAXIS: Output time axis
-show func pass_thru
-show func sto*
- 
-go bench_add_9
-! Bench_add_9.jnl
-!  ACM  8/99
-!  benchmark script for testing external function add_9.
-! Note: bench_add_9_visual contains plots of similar computations
- 
-set mode ignore_errors
- 
- 
-can region
-use coads_climatology
-set region/x=151E:179E/y=0
- 
-let a1 = sst[d=1,l=1]
-let a2 = sst[d=1,l=2]
-let a3 = sst[d=1,l=3]
- 
-let a = add_9(a1,a2,a3,a1,a2,a3,a1,a2,a3)
- 
------
-Appending ncdump output
- 
-err491_dp_time_write.jnl --- 1 original file
-netcdf out {
-dimensions:
-	T5 = UNLIMITED ; // (1 currently)
-variables:
-	double T5(T5) ;
-		T5:units = "min since 1901-01-15 00:00:00" ;
-		T5:axis = "T" ;
-		T5:calendar = "GREGORIAN" ;
-		T5:time_origin = "15-JAN-1901" ;
-		T5:standard_name = "time" ;
-	double MY_VAR(T5) ;
-		MY_VAR:missing_value = -1.e+34 ;
-		MY_VAR:_FillValue = -1.e+34 ;
-		MY_VAR:long_name = "T[GT=T5]" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- T5 = 50757969 ;
-
- MY_VAR = 50757969 ;
-}
-err491_dp_time_write.jnl --- 2 after append
-netcdf out {
-dimensions:
-	T5 = UNLIMITED ; // (2 currently)
-variables:
-	double T5(T5) ;
-		T5:units = "min since 1901-01-15 00:00:00" ;
-		T5:axis = "T" ;
-		T5:calendar = "GREGORIAN" ;
-		T5:time_origin = "15-JAN-1901" ;
-		T5:standard_name = "time" ;
-	double MY_VAR(T5) ;
-		MY_VAR:missing_value = -1.e+34 ;
-		MY_VAR:_FillValue = -1.e+34 ;
-		MY_VAR:long_name = "T[GT=T5]" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- T5 = 50757969, 50757974 ;
-
- MY_VAR = 50757969, 50757974 ;
-}
-bn_strings.jnl --- 1 original file
-netcdf test_string {
-dimensions:
-	XAX1_3 = 3 ;
-	STRING1_10 = 10 ;
-	STRING1_16 = 16 ;
-variables:
-	double XAX1_3(XAX1_3) ;
-		XAX1_3:point_spacing = "even" ;
-		XAX1_3:axis = "X" ;
-	char A(XAX1_3, STRING1_10) ;
-		A:long_name = "{\"hello\",\"goodbye\", \"wave to me\"}" ;
-	char B(STRING1_16) ;
-		B:long_name = "\"one line of text\"" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- XAX1_3 = 1, 2, 3 ;
-
- A =
-  "hello",
-  "goodbye",
-  "wave to me" ;
-
- B = "one line of text" ;
-}
-bn_strings.jnl --- 2 append to file
-bn_strings.jnl --- 3 enhanced heading
-netcdf test_string {
-dimensions:
-	grid_definition = 1 ;
-	XAX1_19 = 19 ;
-	XAX1_192_5 = 4 ;
-	STRING1_15 = 15 ;
-variables:
-	char GFP3(grid_definition) ;
-		GFP3:axes = "XAX1_19 NORMAL NORMAL NORMAL NORMAL NORMAL" ;
-	double XAX1_19(XAX1_19) ;
-		XAX1_19:point_spacing = "even" ;
-		XAX1_19:axis = "X" ;
-	double XAX1_192_5(XAX1_192_5) ;
-		XAX1_192_5:child_axis = " " ;
-		XAX1_192_5:point_spacing = "even" ;
-		XAX1_192_5:axis = "X" ;
-	char D(XAX1_192_5, STRING1_15) ;
-		D:parent_grid = "GFP3" ;
-		D:slab_min_index = 2, 1, 1, 1 ;
-		D:slab_max_index = 5, 1, 1, 1 ;
-		D:long_name = "partial filename list" ;
-		D:history = "From test_string" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- GFP3 = "" ;
-
- XAX1_19 = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 ;
-
- XAX1_192_5 = 2, 3, 4, 5 ;
-
- D =
-  "dummy1.str_test",
-  "dummy2.str_test",
-  "dummy3.str_test",
-  "dummy4.str_test" ;
-}
-bn_strings.jnl --- 4 sample and ysequence functions on string var
-netcdf foo {
-dimensions:
-	XAX1_4 = 4 ;
-	STRING1_1 = 1 ;
-	YAX1_3 = 3 ;
-variables:
-	double XAX1_4(XAX1_4) ;
-		XAX1_4:point_spacing = "even" ;
-		XAX1_4:axis = "X" ;
-	char A(XAX1_4, STRING1_1) ;
-		A:long_name = "{\"a\",,\" \",\"\"}" ;
-	double YAX1_3(YAX1_3) ;
-		YAX1_3:point_spacing = "even" ;
-		YAX1_3:axis = "Y" ;
-	char B(YAX1_3, STRING1_1) ;
-		B:long_name = "SAMPLEJ(YSEQUENCE({\"a\",\"b\",,\"d\",\"e\",\"f\"}),{2,,1})" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- XAX1_4 = 1, 2, 3, 4 ;
-
- A =
-  "a",
-  "",
-  " ",
-  "" ;
-
- YAX1_3 = 1, 2, 3 ;
-
- B =
-  "b",
-  "",
-  "a" ;
-}
-err550_nc_seconds.jnl --- seconds of time axis
-		TIME:time_origin = "10-JUN-1996 04:03:36" ;
-bn_bounds.jnl --- 1 output of bounds on irreg axes.
-netcdf a {
-dimensions:
-	MONTH_IRREG = UNLIMITED ; // (12 currently)
-	bnds = 2 ;
-variables:
-	double MONTH_IRREG(MONTH_IRREG) ;
-		MONTH_IRREG:units = "days since 0000-01-01 00:00:00" ;
-		MONTH_IRREG:time_origin = "01-JAN-0000 00:00:00" ;
-		MONTH_IRREG:modulo = " " ;
-		MONTH_IRREG:axis = "T" ;
-		MONTH_IRREG:standard_name = "time" ;
-		MONTH_IRREG:bounds = "MONTH_IRREG_bnds" ;
-	double MONTH_IRREG_bnds(MONTH_IRREG, bnds) ;
-	double V(MONTH_IRREG) ;
-		V:missing_value = -1.e+34 ;
-		V:_FillValue = -1.e+34 ;
-		V:long_name = "T[GT=MONTH_IRREG]" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- MONTH_IRREG = 15.5, 45.12125, 74.7425, 105.2425, 135.7425, 166.2425, 
-    196.7425, 227.7425, 258.2425, 288.7425, 319.2425, 349.7425 ;
-
- MONTH_IRREG_bnds =
-  0, 31,
-  31, 59.2425,
-  59.2425, 90.2425,
-  90.2425, 120.2425,
-  120.2425, 151.2425,
-  151.2425, 181.2425,
-  181.2425, 212.2425,
-  212.2425, 243.2425,
-  243.2425, 273.2425,
-  273.2425, 304.2425,
-  304.2425, 334.2425,
-  334.2425, 365.2425 ;
-
- V = 15.5, 45.12125, 74.7425, 105.2425, 135.7425, 166.2425, 196.7425, 
-    227.7425, 258.2425, 288.7425, 319.2425, 349.7425 ;
-}
-bn_bounds.jnl --- 2 long irreg axes.
-netcdf a {
-dimensions:
-	COADSX90_90 = 1 ;
-	COADSY66_66 = 1 ;
-	TCOADS = UNLIMITED ; // (5 currently)
-	bnds = 2 ;
-variables:
-	double COADSX90_90(COADSX90_90) ;
-		COADSX90_90:units = "degrees_east" ;
-		COADSX90_90:modulo = " " ;
-		COADSX90_90:point_spacing = "even" ;
-		COADSX90_90:axis = "X" ;
-		COADSX90_90:standard_name = "longitude" ;
-	double COADSY66_66(COADSY66_66) ;
-		COADSY66_66:units = "degrees_north" ;
-		COADSY66_66:point_spacing = "even" ;
-		COADSY66_66:axis = "Y" ;
-		COADSY66_66:standard_name = "latitude" ;
-	double TCOADS(TCOADS) ;
-		TCOADS:units = "days since 1700-01-01 00:00:00" ;
-		TCOADS:time_origin = "01-JAN-1700 00:00:00" ;
-		TCOADS:axis = "T" ;
-		TCOADS:standard_name = "time" ;
-		TCOADS:bounds = "TCOADS_bnds" ;
-	double TCOADS_bnds(TCOADS, bnds) ;
-	double V(TCOADS, COADSY66_66, COADSX90_90) ;
-		V:missing_value = -1.e+34 ;
-		V:_FillValue = -1.e+34 ;
-		V:long_name = "MISSING(VWND,28.5)" ;
-		V:history = "From coads_vwnd" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- COADSX90_90 = 199 ;
-
- COADSY66_66 = 41 ;
-
- TCOADS = 91050, 91080.5, 91111, 91141.5, 91172.5 ;
-
- TCOADS_bnds =
-  91035, 91065,
-  91065, 91096,
-  91096, 91126,
-  91126, 91157,
-  91157, 91188 ;
-
- V =
-  4,
-  1.94999992847443,
-  4.25,
-  1.6599999666214,
-  -0.129999995231628 ;
-}
-bn_bounds.jnl --- 3 Append later time steps, adding a void point
-netcdf a {
-dimensions:
-	COADSX90_90 = 1 ;
-	COADSY66_66 = 1 ;
-	TCOADS = UNLIMITED ; // (10 currently)
-	bnds = 2 ;
-variables:
-	double COADSX90_90(COADSX90_90) ;
-		COADSX90_90:units = "degrees_east" ;
-		COADSX90_90:modulo = " " ;
-		COADSX90_90:point_spacing = "even" ;
-		COADSX90_90:axis = "X" ;
-		COADSX90_90:standard_name = "longitude" ;
-	double COADSY66_66(COADSY66_66) ;
-		COADSY66_66:units = "degrees_north" ;
-		COADSY66_66:point_spacing = "even" ;
-		COADSY66_66:axis = "Y" ;
-		COADSY66_66:standard_name = "latitude" ;
-	double TCOADS(TCOADS) ;
-		TCOADS:units = "days since 1700-01-01 00:00:00" ;
-		TCOADS:time_origin = "01-JAN-1700 00:00:00" ;
-		TCOADS:axis = "T" ;
-		TCOADS:standard_name = "time" ;
-		TCOADS:bounds = "TCOADS_bnds" ;
-	double TCOADS_bnds(TCOADS, bnds) ;
-	double V(TCOADS, COADSY66_66, COADSX90_90) ;
-		V:missing_value = -1.e+34 ;
-		V:_FillValue = -1.e+34 ;
-		V:long_name = "MISSING(VWND,28.5)" ;
-		V:history = "From coads_vwnd" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- COADSX90_90 = 199 ;
-
- COADSY66_66 = 41 ;
-
- TCOADS = 91050, 91080.5, 91111, 91141.5, 91172.5, 91264.5, 91355, 91384.5, 
-    91415, 91445.5 ;
-
- TCOADS_bnds =
-  91035, 91065,
-  91065, 91096,
-  91096, 91126,
-  91126, 91157,
-  91157, 91188,
-  91188, 91341,
-  91341, 91369,
-  91369, 91400,
-  91400, 91430,
-  91430, 91461 ;
-
- V =
-  4,
-  1.94999992847443,
-  4.25,
-  1.6599999666214,
-  -0.129999995231628,
-  _,
-  -1.0699999332428,
-  3.35999989509583,
-  -3.86999988555908,
-  3.93999981880188 ;
-}
-bn_bounds.jnl --- 4 depth axis, bounds positive up
-netcdf a {
-dimensions:
-	ZIRR = 4 ;
-	bnds = 2 ;
-variables:
-	double ZIRR(ZIRR) ;
-		ZIRR:units = "meters" ;
-		ZIRR:point_spacing = "uneven" ;
-		ZIRR:axis = "Z" ;
-		ZIRR:bounds = "ZIRR_bnds" ;
-		ZIRR:positive = "down" ;
-		ZIRR:standard_name = "depth" ;
-	double ZIRR_bnds(ZIRR, bnds) ;
-	double T2(ZIRR) ;
-		T2:missing_value = -1.e+34 ;
-		T2:_FillValue = -1.e+34 ;
-		T2:long_name = "Z[GZ=ZIRR]" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- ZIRR = 0, 10, 40, 70 ;
-
- ZIRR_bnds =
-  -5, 5,
-  5, 25,
-  25, 55,
-  55, 85 ;
-
- T2 = 0, 10, 40, 70 ;
-}
-bn_bounds.jnl --- 5 SAVE on irregular time axis, multi-dimensional save.
-netcdf a {
-dimensions:
-	COADSX81_83 = 3 ;
-	COADSY46_49 = 4 ;
-	MONTH_IRREG = UNLIMITED ; // (8 currently)
-	bnds = 2 ;
-variables:
-	double COADSX81_83(COADSX81_83) ;
-		COADSX81_83:units = "degrees_east" ;
-		COADSX81_83:modulo = " " ;
-		COADSX81_83:point_spacing = "even" ;
-		COADSX81_83:axis = "X" ;
-		COADSX81_83:standard_name = "longitude" ;
-	double COADSY46_49(COADSY46_49) ;
-		COADSY46_49:units = "degrees_north" ;
-		COADSY46_49:point_spacing = "even" ;
-		COADSY46_49:axis = "Y" ;
-		COADSY46_49:standard_name = "latitude" ;
-	double MONTH_IRREG(MONTH_IRREG) ;
-		MONTH_IRREG:units = "days since 0000-01-01 00:00:00" ;
-		MONTH_IRREG:time_origin = "01-JAN-0000 00:00:00" ;
-		MONTH_IRREG:modulo = " " ;
-		MONTH_IRREG:axis = "T" ;
-		MONTH_IRREG:standard_name = "time" ;
-		MONTH_IRREG:bounds = "MONTH_IRREG_bnds" ;
-	double MONTH_IRREG_bnds(MONTH_IRREG, bnds) ;
-	double V(MONTH_IRREG, COADSY46_49, COADSX81_83) ;
-		V:missing_value = -1.e+34 ;
-		V:_FillValue = -1.e+34 ;
-		V:long_name = "MISSING(SST[GT=MONTH_IRREG], 28)" ;
-		V:history = "From coads_climatology" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- COADSX81_83 = 181, 183, 185 ;
-
- COADSY46_49 = 1, 3, 5, 7 ;
-
- MONTH_IRREG = 15.5, 45.12125, 74.7425, 105.2425, 135.7425, 181.7425, 
-    227.7425, 258.2425 ;
-
- MONTH_IRREG_bnds =
-  0, 31,
-  31, 59.2425,
-  59.2425, 90.2425,
-  90.2425, 120.2425,
-  120.2425, 151.2425,
-  151.2425, 212.2425,
-  212.2425, 243.2425,
-  243.2425, 273.2425 ;
-
- V =
-  28.2849935840911, 28.414627680037, 27.9161884993111,
-  27.9765395405733, 28.2538326818959, 28.2807402581306,
-  28.2439206183922, 28.0639671835704, 28.4098884258851,
-  27.8988069263938, 28.1024085497053, 27.7289905177585,
-  28.4160049287061, 28.4018177891461, 28.0223225569069,
-  28.3564239921735, 28.4116722185187, 27.9981931574269,
-  27.9975107377818, 28.1639069786096, 28.1146483772156,
-  27.9665335861598, 27.7497643747061, 27.8315865878107,
-  28.0636671118728, 27.5906545051978, 27.7380534023442,
-  27.9418187705116, 28.0035441744124, 27.7237886368008,
-  27.8988417091574, 27.8729683348803, 27.9324667419544,
-  27.8429933705147, 27.8182966108574, 27.9089173534895,
-  28, 28, 28,
-  28, 28, 28,
-  28, 28, 28,
-  28, 28, 28,
-  28, 28, 28,
-  28, 28, 28,
-  28, 28, 28,
-  28, 28, 28,
-  _, _, _,
-  _, _, _,
-  _, _, _,
-  _, _, _,
-  28, 28, 28,
-  28, 28, 28,
-  28, 28, 28,
-  28, 28, 28,
-  28, 28, 28,
-  28, 28, 28,
-  28, 28, 28,
-  28, 28, 28 ;
-}
-bn_bounds.jnl --- 6 SAVE on regular time axis with bounds attribute
-netcdf a {
-dimensions:
-	COADSX81_81 = 1 ;
-	bnds = 2 ;
-	COADSY46_46 = 1 ;
-	TIME = UNLIMITED ; // (3 currently)
-variables:
-	double COADSX81_81(COADSX81_81) ;
-		COADSX81_81:units = "degrees_east" ;
-		COADSX81_81:modulo = " " ;
-		COADSX81_81:point_spacing = "even" ;
-		COADSX81_81:axis = "X" ;
-		COADSX81_81:standard_name = "longitude" ;
-		COADSX81_81:bounds = "COADSX81_81_bnds" ;
-	double COADSX81_81_bnds(COADSX81_81, bnds) ;
-	double COADSY46_46(COADSY46_46) ;
-		COADSY46_46:units = "degrees_north" ;
-		COADSY46_46:point_spacing = "even" ;
-		COADSY46_46:axis = "Y" ;
-		COADSY46_46:standard_name = "latitude" ;
-		COADSY46_46:bounds = "COADSY46_46_bnds" ;
-	double COADSY46_46_bnds(COADSY46_46, bnds) ;
-	double TIME(TIME) ;
-		TIME:units = "hour since 0000-01-01 00:00:00" ;
-		TIME:time_origin = "01-JAN-0000 00:00:00" ;
-		TIME:modulo = 8765.81982421875 ;
-		TIME:axis = "T" ;
-		TIME:standard_name = "time" ;
-		TIME:bounds = "TIME_bnds" ;
-	double TIME_bnds(TIME, bnds) ;
-	float SST(TIME, COADSY46_46, COADSX81_81) ;
-		SST:missing_value = -1.e+34f ;
-		SST:_FillValue = -1.e+34f ;
-		SST:long_name = "SEA SURFACE TEMPERATURE" ;
-		SST:history = "From coads_climatology" ;
-		SST:units = "Deg C" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- COADSX81_81 = 181 ;
-
- COADSX81_81_bnds =
-  180, 182 ;
-
- COADSY46_46 = 1 ;
-
- COADSY46_46_bnds =
-  0, 2 ;
-
- TIME = 366, 1096.485, 1826.97 ;
-
- TIME_bnds =
-  0.757499999999993, 731.2425,
-  731.2425, 1461.7275,
-  1461.7275, 2192.2125 ;
-
- SST =
-  28.28389,
-  28.41851,
-  28.0468 ;
-}
-bn_bounds.jnl --- 7 SAVE on regular time axis with edges attributes
-netcdf a {
-dimensions:
-	COADSX81_81 = 1 ;
-	COADSX81_81edges = 2 ;
-	COADSY46_46 = 1 ;
-	COADSY46_46edges = 2 ;
-	TIME = UNLIMITED ; // (3 currently)
-	TIMEedges = 4 ;
-variables:
-	double COADSX81_81(COADSX81_81) ;
-		COADSX81_81:units = "degrees_east" ;
-		COADSX81_81:modulo = " " ;
-		COADSX81_81:point_spacing = "even" ;
-		COADSX81_81:axis = "X" ;
-		COADSX81_81:standard_name = "longitude" ;
-		COADSX81_81:edges = "COADSX81_81edges" ;
-	double COADSX81_81edges(COADSX81_81edges) ;
-		COADSX81_81edges:edges = " " ;
-	double COADSY46_46(COADSY46_46) ;
-		COADSY46_46:units = "degrees_north" ;
-		COADSY46_46:point_spacing = "even" ;
-		COADSY46_46:axis = "Y" ;
-		COADSY46_46:standard_name = "latitude" ;
-		COADSY46_46:edges = "COADSY46_46edges" ;
-	double COADSY46_46edges(COADSY46_46edges) ;
-		COADSY46_46edges:edges = " " ;
-	double TIME(TIME) ;
-		TIME:units = "hour since 0000-01-01 00:00:00" ;
-		TIME:time_origin = "01-JAN-0000 00:00:00" ;
-		TIME:modulo = 8765.81982421875 ;
-		TIME:axis = "T" ;
-		TIME:standard_name = "time" ;
-		TIME:edges = "TIMEedges" ;
-	double TIMEedges(TIMEedges) ;
-		TIMEedges:edges = " " ;
-	float SST(TIME, COADSY46_46, COADSX81_81) ;
-		SST:missing_value = -1.e+34f ;
-		SST:_FillValue = -1.e+34f ;
-		SST:long_name = "SEA SURFACE TEMPERATURE" ;
-		SST:history = "From coads_climatology" ;
-		SST:units = "Deg C" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- COADSX81_81 = 181 ;
-
- COADSX81_81edges = 180, 182 ;
-
- COADSY46_46 = 1 ;
-
- COADSY46_46edges = 0, 2 ;
-
- TIME = 366, 1096.485, 1826.97 ;
-
- TIMEedges = 0.757499999999993, 731.2425, 1461.7275, 2192.2125 ;
-
- SST =
-  28.28389,
-  28.41851,
-  28.0468 ;
-}
-bn_bounds.jnl --- 8 outputting bounds on all irregular axes, depth axis
-netcdf irrxzt {
-dimensions:
-	XAX = 6 ;
-	bnds = 2 ;
-	ZAX = 5 ;
-	TAX = UNLIMITED ; // (5 currently)
-variables:
-	double XAX(XAX) ;
-		XAX:point_spacing = "uneven" ;
-		XAX:axis = "X" ;
-		XAX:bounds = "XAX_bnds" ;
-	double XAX_bnds(XAX, bnds) ;
-	double ZAX(ZAX) ;
-		ZAX:point_spacing = "uneven" ;
-		ZAX:axis = "Z" ;
-		ZAX:positive = "down" ;
-		ZAX:standard_name = "depth" ;
-		ZAX:bounds = "ZAX_bnds" ;
-	double ZAX_bnds(ZAX, bnds) ;
-	double TAX(TAX) ;
-		TAX:axis = "T" ;
-		TAX:bounds = "TAX_bnds" ;
-	double TAX_bnds(TAX, bnds) ;
-	double V(TAX, ZAX, XAX) ;
-		V:missing_value = -1.e+34 ;
-		V:_FillValue = -1.e+34 ;
-		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- XAX = 1, 2, 5, 6, 7, 8 ;
-
- XAX_bnds =
-  0.5, 1.5,
-  1.5, 3.5,
-  3.5, 5.5,
-  5.5, 6.5,
-  6.5, 7.5,
-  7.5, 8.5 ;
-
- ZAX = 0, 20, 50, 75, 120 ;
-
- ZAX_bnds =
-  0, 10,
-  10, 30,
-  30, 60,
-  60, 90,
-  90, 150 ;
-
- TAX = 1, 2, 9, 10, 11 ;
-
- TAX_bnds =
-  0.5, 1.5,
-  1.5, 5.5,
-  5.5, 9.5,
-  9.5, 10.5,
-  10.5, 11.5 ;
-
- V =
-  2, 3, 6, 7, 8, 9,
-  22, 23, 26, 27, 28, 29,
-  52, 53, 56, 57, 58, 59,
-  77, 78, 81, 82, 83, 84,
-  122, 123, 126, 127, 128, 129,
-  3, 4, 7, 8, 9, 10,
-  23, 24, 27, 28, 29, 30,
-  53, 54, 57, 58, 59, 60,
-  78, 79, 82, 83, 84, 85,
-  123, 124, 127, 128, 129, 130,
-  10, 11, 14, 15, 16, 17,
-  30, 31, 34, 35, 36, 37,
-  60, 61, 64, 65, 66, 67,
-  85, 86, 89, 90, 91, 92,
-  130, 131, 134, 135, 136, 137,
-  11, 12, 15, 16, 17, 18,
-  31, 32, 35, 36, 37, 38,
-  61, 62, 65, 66, 67, 68,
-  86, 87, 90, 91, 92, 93,
-  131, 132, 135, 136, 137, 138,
-  12, 13, 16, 17, 18, 19,
-  32, 33, 36, 37, 38, 39,
-  62, 63, 66, 67, 68, 69,
-  87, 88, 91, 92, 93, 94,
-  132, 133, 136, 137, 138, 139 ;
-}
-err580_irreg_bounds.jnl --- 
-netcdf a {
-dimensions:
-	TIME = UNLIMITED ; // (2 currently)
-	bnds = 2 ;
-variables:
-	double TIME(TIME) ;
-		TIME:axis = "T" ;
-		TIME:bounds = "TIME_bnds" ;
-	double TIME_bnds(TIME, bnds) ;
-	double A(TIME) ;
-		A:missing_value = -1.e+34 ;
-		A:_FillValue = -1.e+34 ;
-		A:long_name = "T[GT=TIME]" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- TIME = 0.5, 2 ;
-
- TIME_bnds =
-  0, 1,
-  1, 3 ;
-
- A = 0.5, 2 ;
-}
-err580_long_title.jnl --- 
-netcdf longtitle {
-dimensions:
-	XAX1_10 = 10 ;
-variables:
-	double XAX1_10(XAX1_10) ;
-		XAX1_10:point_spacing = "even" ;
-		XAX1_10:axis = "X" ;
-	double X_(XAX1_10) ;
-		X_:missing_value = -1.e+34 ;
-		X_:_FillValue = -1.e+34 ;
-		X_:long_name = "X" ;
-		X_:long_name_mod = "axis ABSTRACT" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-		:title = "a long title longer than 80 characters a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789" ;
-data:
-
- XAX1_10 = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ;
-
- X_ = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ;
-}
-err580_long_dsettitle.jnl --- 
-netcdf longtitle {
-dimensions:
-	XAX1_5 = 5 ;
-variables:
-	double XAX1_5(XAX1_5) ;
-		XAX1_5:point_spacing = "even" ;
-		XAX1_5:axis = "X" ;
-	float A(XAX1_5) ;
-		A:missing_value = -1.e+34f ;
-		A:_FillValue = -1.e+34f ;
-		A:long_name = "A" ;
-		A:history = "From x" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-		:title = "a long title, longer than the previous limit of 80 characters.  Previously various buffers were set to 80, and storage in ds_title was also too short." ;
-data:
-
- XAX1_5 = 1, 2, 3, 4, 5 ;
-
- A = 1, 2, 3, 4, 5 ;
-}
-err580_cdc_timeaxis.jnl --- 
-netcdf my_cdc_timeaxis {
-dimensions:
-	TCDC = UNLIMITED ; // (15 currently)
-variables:
-	double TCDC(TCDC) ;
-		TCDC:units = "days since 0001-01-01 00:00:00" ;
-		TCDC:axis = "T" ;
-		TCDC:calendar = "GREGORIAN" ;
-		TCDC:time_origin = "01-JAN-0001 00:00:00" ;
-		TCDC:standard_name = "time" ;
-	double A(TCDC) ;
-		A:missing_value = -1.e+34 ;
-		A:_FillValue = -1.e+34 ;
-		A:long_name = "SIN(T[GT=TCDC]/10000)" ;
-		A:history = "From t0_cdc" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-}
-bn_long_revision_num.jnl --- history attribute
-		:history = "FERRET V6.85   12-Nov-13" ;
-bn_bounds_defineax.jnl --- N+1 def of bounds.
-netcdf irrxzt {
-dimensions:
-	XAX = 6 ;
-	bnds = 2 ;
-	ZAX = 5 ;
-	TAX = UNLIMITED ; // (5 currently)
-variables:
-	double XAX(XAX) ;
-		XAX:point_spacing = "uneven" ;
-		XAX:axis = "X" ;
-		XAX:bounds = "XAX_bnds" ;
-	double XAX_bnds(XAX, bnds) ;
-	double ZAX(ZAX) ;
-		ZAX:point_spacing = "uneven" ;
-		ZAX:axis = "Z" ;
-		ZAX:positive = "down" ;
-		ZAX:standard_name = "depth" ;
-		ZAX:bounds = "ZAX_bnds" ;
-	double ZAX_bnds(ZAX, bnds) ;
-	double TAX(TAX) ;
-		TAX:axis = "T" ;
-		TAX:bounds = "TAX_bnds" ;
-	double TAX_bnds(TAX, bnds) ;
-	double V(TAX, ZAX, XAX) ;
-		V:missing_value = -1.e+34 ;
-		V:_FillValue = -1.e+34 ;
-		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- XAX = 1, 2, 5, 6, 7, 8 ;
-
- XAX_bnds =
-  0.5, 1.5,
-  1.5, 3.5,
-  3.5, 5.5,
-  5.5, 6.5,
-  6.5, 7.5,
-  7.5, 8.5 ;
-
- ZAX = 0, 20, 50, 75, 120 ;
-
- ZAX_bnds =
-  0, 10,
-  10, 30,
-  30, 60,
-  60, 90,
-  90, 150 ;
-
- TAX = 1, 2, 9, 10, 11 ;
-
- TAX_bnds =
-  0.5, 1.5,
-  1.5, 5.5,
-  5.5, 9.5,
-  9.5, 10.5,
-  10.5, 11.5 ;
-
- V =
-  2, 3, 6, 7, 8, 9,
-  22, 23, 26, 27, 28, 29,
-  52, 53, 56, 57, 58, 59,
-  77, 78, 81, 82, 83, 84,
-  122, 123, 126, 127, 128, 129,
-  3, 4, 7, 8, 9, 10,
-  23, 24, 27, 28, 29, 30,
-  53, 54, 57, 58, 59, 60,
-  78, 79, 82, 83, 84, 85,
-  123, 124, 127, 128, 129, 130,
-  10, 11, 14, 15, 16, 17,
-  30, 31, 34, 35, 36, 37,
-  60, 61, 64, 65, 66, 67,
-  85, 86, 89, 90, 91, 92,
-  130, 131, 134, 135, 136, 137,
-  11, 12, 15, 16, 17, 18,
-  31, 32, 35, 36, 37, 38,
-  61, 62, 65, 66, 67, 68,
-  86, 87, 90, 91, 92, 93,
-  131, 132, 135, 136, 137, 138,
-  12, 13, 16, 17, 18, 19,
-  32, 33, 36, 37, 38, 39,
-  62, 63, 66, 67, 68, 69,
-  87, 88, 91, 92, 93, 94,
-  132, 133, 136, 137, 138, 139 ;
-}
-bn_attributes.jnl --- 1 attributes of string variables
-netcdf a {
-dimensions:
-	XAX1_3 = 3 ;
-	STRING1_10 = 10 ;
-variables:
-	double XAX1_3(XAX1_3) ;
-		XAX1_3:point_spacing = "even" ;
-		XAX1_3:axis = "X" ;
-	char VAR_B(XAX1_3, STRING1_10) ;
-		VAR_B:long_name = "my strings" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- XAX1_3 = 1, 2, 3 ;
-
- VAR_B =
-  "Seattle",
-  "Skykomish",
-  "Snoqualmie" ;
-}
-bn_attributes.jnl --- 2 access and edit attributes of coordinate variables.
-netcdf a {
-dimensions:
-	COADSX105_105 = 1 ;
-	COADSY45_45 = 1 ;
-	TIME = UNLIMITED ; // (3 currently)
-variables:
-	double COADSX105_105(COADSX105_105) ;
-		COADSX105_105:units = "degrees_east" ;
-		COADSX105_105:modulo = " " ;
-		COADSX105_105:point_spacing = "even" ;
-		COADSX105_105:newatt = 0.f ;
-		COADSX105_105:axis = "X" ;
-		COADSX105_105:standard_name = "longitude" ;
-	double COADSY45_45(COADSY45_45) ;
-		COADSY45_45:units = "degrees_north" ;
-		COADSY45_45:point_spacing = "even" ;
-		COADSY45_45:axis = "Y" ;
-		COADSY45_45:standard_name = "latitude" ;
-	double TIME(TIME) ;
-		TIME:units = "hour since 0000-01-01 00:00:00" ;
-		TIME:time_origin = "01-JAN-0000 00:00:00" ;
-		TIME:modulo = 8765.81982421875 ;
-		TIME:axis = "T" ;
-		TIME:standard_name = "time" ;
-	float SST(TIME, COADSY45_45, COADSX105_105) ;
-		SST:missing_value = -1.e+34f ;
-		SST:_FillValue = -1.e+34f ;
-		SST:long_name = "SEA SURFACE TEMPERATURE" ;
-		SST:history = "From coads_climatology" ;
-		SST:units = "Deg C" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- COADSX105_105 = 229 ;
-
- COADSY45_45 = -1 ;
-
- TIME = 366, 1096.485, 1826.97 ;
-}
-bn_attributes.jnl --- 3 modulo set to false
-netcdf a {
-dimensions:
-	COADSX81_81 = 1 ;
-	COADSY45_45 = 1 ;
-	TIME = UNLIMITED ; // (12 currently)
-variables:
-	double COADSX81_81(COADSX81_81) ;
-		COADSX81_81:units = "degrees_east" ;
-		COADSX81_81:modulo = "false" ;
-		COADSX81_81:point_spacing = "even" ;
-		COADSX81_81:axis = "X" ;
-		COADSX81_81:standard_name = "longitude" ;
-	double COADSY45_45(COADSY45_45) ;
-		COADSY45_45:units = "degrees_north" ;
-		COADSY45_45:point_spacing = "even" ;
-		COADSY45_45:axis = "Y" ;
-		COADSY45_45:standard_name = "latitude" ;
-	double TIME(TIME) ;
-		TIME:units = "hour since 0000-01-01 00:00:00" ;
-		TIME:time_origin = "01-JAN-0000 00:00:00" ;
-		TIME:modulo = " " ;
-		TIME:axis = "T" ;
-		TIME:standard_name = "time" ;
-	float SST(TIME, COADSY45_45, COADSX81_81) ;
-		SST:missing_value = -1.e+34f ;
-		SST:_FillValue = -1.e+34f ;
-		SST:long_name = "SEA SURFACE TEMPERATURE" ;
-		SST:history = "From coads_climatology" ;
-		SST:units = "Deg C" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- COADSX81_81 = 181 ;
-
- COADSY45_45 = -1 ;
-
- TIME = 366, 1096.485, 1826.97, 2557.455, 3287.94, 4018.425, 4748.91, 
-    5479.395, 6209.88, 6940.365, 7670.85, 8401.335 ;
-}
-bn_attributes.jnl --- 4 CANCEL MODE upcase_output; original file:
-netcdf err491_attval {
-dimensions:
-	Ti = UNLIMITED ; // (1 currently)
-	Yc = 127 ;
-	Xc = 35 ;
-variables:
-	double Ti(Ti) ;
-		Ti:long_name = "Time" ;
-		Ti:units = "day" ;
-	double Yc(Yc) ;
-		Yc:long_name = "Latitude" ;
-		Yc:units = "degrees_north" ;
-	double Xc(Xc) ;
-		Xc:long_name = "Longitude" ;
-		Xc:units = "degrees_east" ;
-	short Elev(Ti, Yc, Xc) ;
-		Elev:long_name = "Surface elevation" ;
-		Elev:units = "meter" ;
-		Elev:valid_range = -9., 9. ;
-		Elev:_FillValue = -32768s ;
-		Elev:missing_value = -32767s ;
-		Elev:scale_factor = 0.000274674967954587 ;
-		Elev:add_offset = 0. ;
-
-// global attributes:
-		:simulation = "K-Bay OAR3d model (200m)" ;
-		:start_date = "980105000000" ;
-		:history = "a\n",
-			"" ;
-		:option = 1 ;
-		:run_mode = 3 ;
-		:srfc_bndry = 3 ;
-		:rad_penet = 2 ;
-		:dt_external = 1. ;
-		:dt_internal = 15. ;
-		:horiz_diff = 0.2 ;
-		:inv_prandtl = 0.2 ;
-		:min_slope = 0.2 ;
-		:title = "K-Bay OAR3d model (200m)                                                        " ;
-		:command = "                                                                                                                                                                                                                                                                                                                                " ;
-		:remark = "Generated by oar3d                                                                                                                                              " ;
-		:x_units = "degrees                                                                         " ;
-		:y_units = "degrees                                                                         " ;
-		:z_units = "                                                                                " ;
-		:nx = 35 ;
-		:ny = 127 ;
-		:x_min = 0. ;
-		:x_max = 0. ;
-		:y_min = 0. ;
-		:y_max = 0. ;
-		:z_min = 0. ;
-		:z_max = 0. ;
-		:x_inc = 0. ;
-		:y_inc = 0. ;
-		:z_scale_factor = 0. ;
-		:z_add_offset = 0. ;
-		:node_offset = 0. ;
-}
-bn_attributes.jnl --- 5 before CANCEL MODE upcase_output
-netcdf a {
-dimensions:
-	XC3_3 = 1 ;
-	YC2_4 = 3 ;
-	bnds = 2 ;
-	TI = UNLIMITED ; // (1 currently)
-variables:
-	double XC3_3(XC3_3) ;
-		XC3_3:long_name = "Longitude" ;
-		XC3_3:units = "degrees_east" ;
-		XC3_3:modulo = 360. ;
-		XC3_3:point_spacing = "even" ;
-		XC3_3:axis = "X" ;
-		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 TI(TI) ;
-		TI:long_name = "Time" ;
-		TI:units = "day" ;
-		TI:axis = "T" ;
-		TI:standard_name = "time" ;
-	short ELEV(TI, YC2_4, XC3_3) ;
-		ELEV:missing_value = -32767s ;
-		ELEV:_FillValue = -32768s ;
-		ELEV:long_name = "Surface elevation" ;
-		ELEV:units = "meter" ;
-		ELEV:scale_factor = 0.000274674967954587 ;
-		ELEV:add_offset = 0. ;
-		ELEV:history = "From err491_attval" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-}
-bn_attributes.jnl --- 6 after CANCEL MODE upcase_output
-netcdf a {
-dimensions:
-	Xc3_3 = 1 ;
-	Yc2_4 = 3 ;
-	bnds = 2 ;
-	Ti = UNLIMITED ; // (1 currently)
-variables:
-	double Xc3_3(Xc3_3) ;
-		Xc3_3:long_name = "Longitude" ;
-		Xc3_3:units = "degrees_east" ;
-		Xc3_3:modulo = 360. ;
-		Xc3_3:point_spacing = "even" ;
-		Xc3_3:axis = "X" ;
-		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 Ti(Ti) ;
-		Ti:long_name = "Time" ;
-		Ti:units = "day" ;
-		Ti:axis = "T" ;
-		Ti:standard_name = "time" ;
-	short Elev(Ti, Yc2_4, Xc3_3) ;
-		Elev:missing_value = -32767s ;
-		Elev:_FillValue = -32768s ;
-		Elev:long_name = "Surface elevation" ;
-		Elev:units = "meter" ;
-		Elev:scale_factor = 0.000274674967954587 ;
-		Elev:add_offset = 0. ;
-		Elev:history = "From err491_attval" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-}
-bn_attributes.jnl --- 7 outtput flags to control attribute output
-netcdf a {
-dimensions:
-	XAX1_5 = 5 ;
-variables:
-	double AA ;
-		AA:missing_value = -1.e+34 ;
-		AA:_FillValue = -1.e+34 ;
-		AA:long_name = "12" ;
-	double XAX1_5(XAX1_5) ;
-		XAX1_5:point_spacing = "even" ;
-		XAX1_5:axis = "X" ;
-	double BB(XAX1_5) ;
-		BB:missing_value = -1.e+34 ;
-		BB:_FillValue = -1.e+34 ;
-		BB:long_name = "{3,4.5,6,7,4}" ;
-		BB:my_title = "This is my new variable bb" ;
-		BB:another_attr = 6.f ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- XAX1_5 = 1, 2, 3, 4, 5 ;
-}
-bn_attributes.jnl --- 8 outtput all flags
-netcdf a {
-dimensions:
-	XAX1_5 = 5 ;
-variables:
-	double AA ;
-		AA:missing_value = -1.e+34 ;
-		AA:_FillValue = -1.e+34 ;
-		AA:long_name = "12" ;
-	double XAX1_5(XAX1_5) ;
-		XAX1_5:point_spacing = "even" ;
-		XAX1_5:axis = "X" ;
-	double BB(XAX1_5) ;
-		BB:missing_value = -1.e+34 ;
-		BB:_FillValue = -1.e+34 ;
-		BB:long_name = "{3,4.5,6,7,4}" ;
-		BB:my_title = "This is my new variable bb" ;
-		BB:another_attr = 6.f ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- XAX1_5 = 1, 2, 3, 4, 5 ;
-}
-bn_attributes.jnl --- 9 Just output the default attributes
-netcdf a {
-dimensions:
-	XAX1_5 = 5 ;
-variables:
-	double XAX1_5(XAX1_5) ;
-		XAX1_5:point_spacing = "even" ;
-		XAX1_5:axis = "X" ;
-	double BB(XAX1_5) ;
-		BB:missing_value = -1.e+34 ;
-		BB:_FillValue = -1.e+34 ;
-		BB:long_name = "{3,4.5,6,7,4}" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- XAX1_5 = 1, 2, 3, 4, 5 ;
-}
-bn_attributes.jnl --- 10 Output none of the attributes for aa
-netcdf a {
-dimensions:
-	XAX1_5 = 5 ;
-variables:
-	double AA ;
-	double XAX1_5(XAX1_5) ;
-		XAX1_5:point_spacing = "even" ;
-		XAX1_5:axis = "X" ;
-	double BB(XAX1_5) ;
-		BB:missing_value = -1.e+34 ;
-		BB:_FillValue = -1.e+34 ;
-		BB:long_name = "{3,4.5,6,7,4}" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- XAX1_5 = 1, 2, 3, 4, 5 ;
-}
-bn_attributes.jnl --- 11 Surpress output of an attribute that Ferret would otherwise add.
-netcdf a {
-dimensions:
-	XAX_LEV9421_380 = 360 ;
-	YAX_LEV94 = 180 ;
-	ZAXLEVIT191_1 = 1 ;
-	TIME = UNLIMITED ; // (2 currently)
-variables:
-	double XAX_LEV9421_380(XAX_LEV9421_380) ;
-		XAX_LEV9421_380:units = "degrees_east" ;
-		XAX_LEV9421_380:modulo = " " ;
-		XAX_LEV9421_380:standard_name = "longitude" ;
-	double YAX_LEV94(YAX_LEV94) ;
-		YAX_LEV94:units = "degrees_north" ;
-		YAX_LEV94:point_spacing = "even" ;
-		YAX_LEV94:axis = "Y" ;
-		YAX_LEV94:standard_name = "latitude" ;
-	double ZAXLEVIT191_1(ZAXLEVIT191_1) ;
-		ZAXLEVIT191_1:units = "meters" ;
-		ZAXLEVIT191_1:positive = "down" ;
-		ZAXLEVIT191_1:point_spacing = "even" ;
-		ZAXLEVIT191_1:axis = "Z" ;
-		ZAXLEVIT191_1:standard_name = "depth" ;
-	double TIME(TIME) ;
-		TIME:units = "hour since 0000-01-01 00:00:00" ;
-		TIME:time_origin = "01-JAN-0000 00:00:00" ;
-		TIME:modulo = 8765.81982421875 ;
-		TIME:axis = "T" ;
-		TIME:standard_name = "time" ;
-	float TEMP(TIME, ZAXLEVIT191_1, YAX_LEV94, XAX_LEV9421_380) ;
-		TEMP:missing_value = -1.e+34f ;
-		TEMP:_FillValue = -1.e+34f ;
-		TEMP:long_name = "Temperature" ;
-		TEMP:history = "From ocean_atlas_monthly" ;
-		TEMP:units = "Deg C" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-}
-bn_attributes.jnl --- 12 Check that settings hold for child axis.
-netcdf a {
-dimensions:
-	XAX_LEV9421_380281_340 = 60 ;
-	YAX_LEV94121_135 = 15 ;
-	ZAXLEVIT191_1 = 1 ;
-	TIME = UNLIMITED ; // (2 currently)
-variables:
-	double XAX_LEV9421_380281_340(XAX_LEV9421_380281_340) ;
-		XAX_LEV9421_380281_340:units = "degrees_east" ;
-		XAX_LEV9421_380281_340:modulo = " " ;
-		XAX_LEV9421_380281_340:standard_name = "longitude" ;
-	double YAX_LEV94121_135(YAX_LEV94121_135) ;
-		YAX_LEV94121_135:units = "degrees_north" ;
-		YAX_LEV94121_135:point_spacing = "even" ;
-		YAX_LEV94121_135:axis = "Y" ;
-		YAX_LEV94121_135:standard_name = "latitude" ;
-	double ZAXLEVIT191_1(ZAXLEVIT191_1) ;
-		ZAXLEVIT191_1:units = "meters" ;
-		ZAXLEVIT191_1:positive = "down" ;
-		ZAXLEVIT191_1:point_spacing = "even" ;
-		ZAXLEVIT191_1:axis = "Z" ;
-		ZAXLEVIT191_1:standard_name = "depth" ;
-	double TIME(TIME) ;
-		TIME:units = "hour since 0000-01-01 00:00:00" ;
-		TIME:time_origin = "01-JAN-0000 00:00:00" ;
-		TIME:modulo = 8765.81982421875 ;
-		TIME:axis = "T" ;
-		TIME:standard_name = "time" ;
-	float TEMP(TIME, ZAXLEVIT191_1, YAX_LEV94121_135, XAX_LEV9421_380281_340) ;
-		TEMP:missing_value = -1.e+34f ;
-		TEMP:_FillValue = -1.e+34f ;
-		TEMP:long_name = "Temperature" ;
-		TEMP:history = "From ocean_atlas_monthly" ;
-		TEMP:units = "Deg C" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-}
-bn_attributes.jnl --- 13 cancel output of attributes of the variable.
-netcdf a {
-dimensions:
-	XAX_LEV9421_380 = 360 ;
-	YAX_LEV94 = 180 ;
-	ZAXLEVIT191_1 = 1 ;
-	TIME = UNLIMITED ; // (2 currently)
-variables:
-	double XAX_LEV9421_380(XAX_LEV9421_380) ;
-		XAX_LEV9421_380:units = "degrees_east" ;
-		XAX_LEV9421_380:modulo = " " ;
-		XAX_LEV9421_380:standard_name = "longitude" ;
-	double YAX_LEV94(YAX_LEV94) ;
-		YAX_LEV94:units = "degrees_north" ;
-		YAX_LEV94:point_spacing = "even" ;
-		YAX_LEV94:axis = "Y" ;
-		YAX_LEV94:standard_name = "latitude" ;
-	double ZAXLEVIT191_1(ZAXLEVIT191_1) ;
-		ZAXLEVIT191_1:units = "meters" ;
-		ZAXLEVIT191_1:positive = "down" ;
-		ZAXLEVIT191_1:point_spacing = "even" ;
-		ZAXLEVIT191_1:axis = "Z" ;
-		ZAXLEVIT191_1:standard_name = "depth" ;
-	double TIME(TIME) ;
-		TIME:units = "hour since 0000-01-01 00:00:00" ;
-		TIME:time_origin = "01-JAN-0000 00:00:00" ;
-		TIME:modulo = 8765.81982421875 ;
-		TIME:axis = "T" ;
-		TIME:standard_name = "time" ;
-	float TEMP(TIME, ZAXLEVIT191_1, YAX_LEV94, XAX_LEV9421_380) ;
-		TEMP:missing_value = -1.e+34f ;
-		TEMP:_FillValue = -1.e+34f ;
-		TEMP:units = "Deg C" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-}
-bn_attributes.jnl --- 14 attributes of data from ez data.
-netcdf a {
-dimensions:
-	XAX1_5 = 5 ;
-variables:
-	double XAX1_5(XAX1_5) ;
-		XAX1_5:point_spacing = "even" ;
-		XAX1_5:axis = "X" ;
-	float A1(XAX1_5) ;
-		A1:missing_value = -1.e+34f ;
-		A1:_FillValue = -1.e+34f ;
-		A1:long_name = "A1" ;
-		A1:three = 1.f, 2.f, 3.f ;
-		A1:history = "From EZ.DAT" ;
-	float A2(XAX1_5) ;
-		A2:missing_value = -1.e+34f ;
-		A2:_FillValue = -1.e+34f ;
-		A2:long_name = "A2" ;
-		A2:history = "From EZ.DAT" ;
-	float A3(XAX1_5) ;
-		A3:missing_value = -1.e+34f ;
-		A3:_FillValue = -1.e+34f ;
-		A3:long_name = "A3" ;
-		A3:history = "From EZ.DAT" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- XAX1_5 = 1, 2, 3, 4, 5 ;
-
- A1 = 0.006, 0.355, 0.41, 0.435, 0.478 ;
-
- A2 = 0.8865, 0.6643, 0.6071, 0.5535, 0.5337 ;
-
- A3 = 0.176, 0.379, 0.417, 0.444, 0.515 ;
-}
-bn_attributes.jnl --- 15 attributes of data from delimited data.
-netcdf a {
-dimensions:
-	XAX1_5 = 5 ;
-variables:
-	double XAX1_5(XAX1_5) ;
-		XAX1_5:point_spacing = "even" ;
-		XAX1_5:axis = "X" ;
-	float V1(XAX1_5) ;
-		V1:missing_value = -1.e+34f ;
-		V1:_FillValue = -1.e+34f ;
-		V1:long_name = "V1" ;
-		V1:strval = "2" ;
-		V1:history = "From EZ.DAT" ;
-	float V4(XAX1_5) ;
-		V4:missing_value = -1.e+34f ;
-		V4:_FillValue = -1.e+34f ;
-		V4:long_name = "V4" ;
-		V4:history = "From EZ.DAT" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- XAX1_5 = 1, 2, 3, 4, 5 ;
-
- V1 = 0.006, 0.355, 0.41, 0.435, 0.478 ;
-
- V4 = 0.7597, 0.6455, 0.5935, 0.5458, 0.5147 ;
-}
-bn_attributes.jnl --- 16 attributes of user vars
-netcdf a {
-dimensions:
-	XAX1_3 = 3 ;
-variables:
-	double XAX1_3(XAX1_3) ;
-		XAX1_3:point_spacing = "even" ;
-		XAX1_3:axis = "X" ;
-	double A(XAX1_3) ;
-		A:missing_value = -1.e+34 ;
-		A:_FillValue = -1.e+34 ;
-		A:long_name = "{12,14,15}" ;
-		A:three = 1.f, 2.f, 3.f ;
-		A:four = "theory" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- XAX1_3 = 1, 2, 3 ;
-
- A = 12, 14, 15 ;
-}
-bn_attributes.jnl --- 17 global attrs.
-netcdf a {
-dimensions:
-	XC = 35 ;
-	YC = 127 ;
-	bnds = 2 ;
-	TI = UNLIMITED ; // (1 currently)
-variables:
-	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, YC, XC) ;
-		ELEV:missing_value = -32767s ;
-		ELEV:_FillValue = -32768s ;
-		ELEV:long_name = "Surface elevation" ;
-		ELEV:units = "meter" ;
-		ELEV:scale_factor = 0.000274674967954587 ;
-		ELEV:add_offset = 0. ;
-		ELEV:history = "From err491_attval" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-		:simulation = "K-Bay OAR3d model (200m)" ;
-		:start_date = "980105000000" ;
-		:option = 0 ;
-		:run_mode = 0 ;
-		:srfc_bndry = 0 ;
-		:rad_penet = 0 ;
-		:dt_external = 1. ;
-		:dt_internal = 15. ;
-		:horiz_diff = 0.2 ;
-		:inv_prandtl = 0.2 ;
-		:min_slope = 0.2 ;
-		:command = " " ;
-		:remark = "Generated by oar3d" ;
-		:x_units = "degrees" ;
-		:y_units = "degrees" ;
-		:z_units = " " ;
-		:nx = 0 ;
-		:ny = 0 ;
-		:x_min = 0. ;
-		:x_max = 0. ;
-		:y_min = 0. ;
-		:y_max = 0. ;
-		:z_min = 0. ;
-		:z_max = 0. ;
-		:x_inc = 0. ;
-		:y_inc = 0. ;
-		:z_scale_factor = 0. ;
-		:z_add_offset = 0. ;
-		:node_offset = 0. ;
-}
-bn_attributes.jnl --- 18 choose global attr to write
-netcdf a {
-dimensions:
-	XC = 35 ;
-	YC = 127 ;
-	bnds = 2 ;
-	TI = UNLIMITED ; // (1 currently)
-	PSXT100_100 = 1 ;
-	PSYT35_56 = 22 ;
-	PSZT1_1 = 1 ;
-	TIME1 = 25 ;
-variables:
-	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, YC, XC) ;
-		ELEV:missing_value = -32767s ;
-		ELEV:_FillValue = -32768s ;
-		ELEV:long_name = "Surface elevation" ;
-		ELEV:units = "meter" ;
-		ELEV:scale_factor = 0.000274674967954587 ;
-		ELEV:add_offset = 0. ;
-		ELEV:history = "From err491_attval" ;
-	double PSXT100_100(PSXT100_100) ;
-		PSXT100_100:units = "degrees_east" ;
-		PSXT100_100:modulo = 360. ;
-		PSXT100_100:point_spacing = "even" ;
-		PSXT100_100:axis = "X" ;
-		PSXT100_100: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_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, PSZT1_1, PSYT35_56, PSXT100_100) ;
-		TEMP:missing_value = -1.e+34f ;
-		TEMP:_FillValue = -1.e+34f ;
-		TEMP:long_name = "TEMPERATURE" ;
-		TEMP:history = "From gt4d011" ;
-		TEMP:units = "deg. C" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-		:dt_internal = 15. ;
-}
-bn_attributes.jnl --- 19 scale and offset attr.
-netcdf a {
-dimensions:
-	XC = 35 ;
-	YC1_1 = 1 ;
-	bnds = 2 ;
-	TI = UNLIMITED ; // (1 currently)
-variables:
-	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 YC1_1(YC1_1) ;
-		YC1_1:long_name = "Latitude" ;
-		YC1_1:units = "degrees_north" ;
-		YC1_1:point_spacing = "uneven" ;
-		YC1_1:axis = "Y" ;
-		YC1_1:standard_name = "latitude" ;
-		YC1_1:bounds = "YC1_1_bnds" ;
-	double YC1_1_bnds(YC1_1, bnds) ;
-	double TI(TI) ;
-		TI:long_name = "Time" ;
-		TI:units = "day" ;
-		TI:axis = "T" ;
-		TI:standard_name = "time" ;
-	short ELEV(TI, YC1_1, XC) ;
-		ELEV:missing_value = -32767s ;
-		ELEV:_FillValue = -32768s ;
-		ELEV:long_name = "Surface elevation" ;
-		ELEV:units = "meter" ;
-		ELEV:scale_factor = 0.000274674967954587 ;
-		ELEV:add_offset = 0. ;
-		ELEV:history = "From err491_attval" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- XC = -135.50957036625, -135.496120344706, -135.482670323162, 
-    -135.469220301618, -135.455770280074, -135.44232025853, 
-    -135.428870236985, -135.415420215441, -135.401970193897, 
-    -135.388520172353, -135.375070150809, -135.361620129265, 
-    -135.348170107721, -135.334720086177, -135.321270064633, 
-    -135.307820043089, -135.294370021545, -135.28092, -135.267469978456, 
-    -135.254019956912, -135.240569935368, -135.227119913824, 
-    -135.21366989228, -135.200219870736, -135.186769849192, 
-    -135.173319827648, -135.159869806104, -135.14641978456, 
-    -135.132969763016, -135.119519741471, -135.106069719927, 
-    -135.092619698383, -135.079169676839, -135.065719655295, -135.052269633751 ;
-
- YC1_1 = 58.5947143787844 ;
-
- YC1_1_bnds =
-  58.5912104049205, 58.5982183526484 ;
-
- TI = 1.78368055555556 ;
-
- ELEV =
-  -32767, -32767, -32767, -32767, -32767, -32767, -32767, -32767, -32767, 
-    -32767, -32767, 10702, 10702, 10702, 10702, 10702, 10702, 10702, 10702, 
-    10702, 10702, 10702, 10702, 10702, 10702, -32767, -32767, -32767, -32767, 
-    -32767, -32767, -32767, -32767, -32767, -32767 ;
-}
-bn_attributes.jnl --- 20 set data type on output int4
-	int TEMP(TIME1, PSZT1_1, PSYT48_48, PSXT91_108) ;
-		TEMP:missing_value = -1000 ;
-		TEMP:_FillValue = -1000 ;
-		TEMP:long_name = "TEMPERATURE" ;
-		TEMP:history = "From gt4d011" ;
-		TEMP:units = "deg. C" ;
-
-// global attributes:
---
- TEMP =
-  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, PSZT1_1, PSYT48_48, PSXT91_108) ;
-		SALT:missing_value = 0.00999999977648258 ;
-		SALT:_FillValue = 0.00999999977648258 ;
-		SALT:long_name = "(SALINITY(ppt) - 35) /1000" ;
-		SALT:history = "From gt4d011" ;
-		SALT:units = "frac. by wt. less .035" ;
-		SALT:Ferret_Precision_Note = "This variable written using Ferret was converted from FLOAT to DOUBLE" ;
-
-// global attributes:
---
- SALT =
-  0.00016033259453252, 0.000142609584145248, 0.000126281287521124, 
-    0.000120904369396158, 0.000120412340038456, 0.000123045203508809, 
-bn_attributes.jnl --- 22 outtype=input
-netcdf a {
-dimensions:
-	J = 3 ;
-	I = 2 ;
-	STRING1_3 = 3 ;
-variables:
-	float J(J) ;
-		J:point_spacing = "even" ;
-		J:axis = "X" ;
-	int I(I) ;
-		I:point_spacing = "even" ;
-		I:axis = "Y" ;
-	char BROILED(I, J, STRING1_3) ;
-		BROILED:long_name = "BROILED" ;
-		BROILED:history = "From test0" ;
-	byte THE_BULLET(I, J) ;
-		THE_BULLET:long_name = "THE_BULLET" ;
-		THE_BULLET:history = "From test0" ;
-	short ORDER(I, J) ;
-		ORDER:long_name = "ORDER" ;
-		ORDER:history = "From test0" ;
-	int RIGUE(I, J) ;
-		RIGUE:long_name = "RIGUE" ;
-		RIGUE:history = "From test0" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- J = 2, 4, 6 ;
-
- I = 10, 20 ;
-
- BROILED =
-  "ind",
-  "ist",
-  "ing",
-  "uis",
-  "hab",
-  "le" ;
-
- THE_BULLET =
-  -127, 0, 127,
-  -128, -1, -127 ;
-
- ORDER =
-  1, 2, 3,
-  4, 5, 6 ;
-
- RIGUE =
-  2, 3, 4,
-  5, 6, 7 ;
-}
-bn_attributes.jnl --- 23 more user-defined vars
-netcdf a {
-variables:
-	double B ;
-		B:missing_value = -1.e+34 ;
-		B:_FillValue = -1.e+34 ;
-		B:long_name = "hello" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- B = 1 ;
-}
-bn_attributes.jnl --- 24 output redefined attr
-netcdf a {
-dimensions:
-	COADSX90_91 = 2 ;
-	COADSY65_66 = 2 ;
-	TCOADS = UNLIMITED ; // (1 currently)
-	bnds = 2 ;
-variables:
-	double COADSX90_91(COADSX90_91) ;
-		COADSX90_91:units = "degrees_east" ;
-		COADSX90_91:modulo = " " ;
-		COADSX90_91:point_spacing = "uneven" ;
-		COADSX90_91:axis = "X" ;
-		COADSX90_91:standard_name = "longitude" ;
-	double COADSY65_66(COADSY65_66) ;
-		COADSY65_66:units = "degrees_north" ;
-		COADSY65_66:point_spacing = "uneven" ;
-		COADSY65_66:axis = "Y" ;
-		COADSY65_66:standard_name = "latitude" ;
-	double TCOADS(TCOADS) ;
-		TCOADS:units = "days since 1700-01-01 00:00:00" ;
-		TCOADS:time_origin = "01-JAN-1700 00:00:00" ;
-		TCOADS:axis = "T" ;
-		TCOADS:standard_name = "time" ;
-		TCOADS:bounds = "TCOADS_bnds" ;
-	double TCOADS_bnds(TCOADS, bnds) ;
-	float VWND(TCOADS, COADSY65_66, COADSX90_91) ;
-		VWND:missing_value = -1.e+34f ;
-		VWND:_FillValue = -1.e+34f ;
-		VWND:long_name = "MERIDIONAL WIND" ;
-		VWND:history = "From coads_vwnd" ;
-		VWND:units = "M/S" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- COADSX90_91 = 199, 201 ;
-
- COADSY65_66 = 39, 41 ;
-
- TCOADS = 89864.5 ;
-
- TCOADS_bnds =
-  89849, 89880 ;
-
- VWND =
-  _, _,
-  _, _ ;
-}
-bn_attributes.jnl --- 25 output new attr on user-defined var
-netcdf a {
-dimensions:
-	COADSX90_91 = 2 ;
-	COADSY65_66 = 2 ;
-	TCOADS = UNLIMITED ; // (1 currently)
-	bnds = 2 ;
-variables:
-	double COADSX90_91(COADSX90_91) ;
-		COADSX90_91:units = "degrees_east" ;
-		COADSX90_91:modulo = " " ;
-		COADSX90_91:point_spacing = "uneven" ;
-		COADSX90_91:axis = "X" ;
-		COADSX90_91:standard_name = "longitude" ;
-	double COADSY65_66(COADSY65_66) ;
-		COADSY65_66:units = "degrees_north" ;
-		COADSY65_66:point_spacing = "uneven" ;
-		COADSY65_66:new_att = "somthing" ;
-		COADSY65_66:axis = "Y" ;
-		COADSY65_66:standard_name = "latitude" ;
-	double TCOADS(TCOADS) ;
-		TCOADS:units = "days since 1700-01-01 00:00:00" ;
-		TCOADS:time_origin = "01-JAN-1700 00:00:00" ;
-		TCOADS:axis = "T" ;
-		TCOADS:standard_name = "time" ;
-		TCOADS:bounds = "TCOADS_bnds" ;
-	double TCOADS_bnds(TCOADS, bnds) ;
-	double T2(TCOADS, COADSY65_66, COADSX90_91) ;
-		T2:missing_value = -1.e+34 ;
-		T2:_FillValue = -1.e+34 ;
-		T2:long_name = "2*VWND" ;
-		T2:history = "From coads_vwnd" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- COADSX90_91 = 199, 201 ;
-
- COADSY65_66 = 39, 41 ;
-
- TCOADS = 89864.5 ;
-
- TCOADS_bnds =
-  89849, 89880 ;
-
- T2 =
-  _, _,
-  _, _ ;
-}
-bn_attributes.jnl --- 26 attributes of axes
-netcdf a {
-dimensions:
-	PSXT91_108 = 18 ;
-	PSYT35_56 = 22 ;
-	bnds = 2 ;
-	PSZT1_10 = 10 ;
-	TIME1 = UNLIMITED ; // (1 currently)
-variables:
-	double PSXT91_108(PSXT91_108) ;
-		PSXT91_108:units = "degrees_east" ;
-		PSXT91_108:modulo = 360. ;
-		PSXT91_108:point_spacing = "even" ;
-		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 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.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-}
-netcdf a {
-dimensions:
-	PSXT91_108 = 18 ;
-	PSYT35_56 = 22 ;
-	bnds = 2 ;
-	PSZT1_10 = 10 ;
-	TIME1 = UNLIMITED ; // (1 currently)
-variables:
-	double PSXT91_108(PSXT91_108) ;
-		PSXT91_108:units = "degrees_east" ;
-		PSXT91_108:modulo = 360. ;
-		PSXT91_108:point_spacing = "even" ;
-		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 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.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-}
-netcdf a {
-dimensions:
-	PSXT91_108 = 18 ;
-	PSYT35_56 = 22 ;
-	bnds = 2 ;
-	PSZT1_10 = 10 ;
-	TIME1 = UNLIMITED ; // (1 currently)
-variables:
-	double PSXT91_108(PSXT91_108) ;
-		PSXT91_108:units = "meters" ;
-		PSXT91_108:modulo = 360. ;
-		PSXT91_108:point_spacing = "even" ;
-		PSXT91_108:axis = "X" ;
-	double PSYT35_56(PSYT35_56) ;
-		PSYT35_56:units = "meters" ;
-		PSYT35_56:point_spacing = "uneven" ;
-		PSYT35_56:axis = "Y" ;
-		PSYT35_56:bounds = "PSYT35_56_bnds" ;
-	double PSYT35_56_bnds(PSYT35_56, bnds) ;
-	double PSZT1_10(PSZT1_10) ;
-		PSZT1_10:units = "METERS" ;
-		PSZT1_10:positive = "down" ;
-		PSZT1_10:point_spacing = "uneven" ;
-		PSZT1_10:axis = "Z" ;
-		PSZT1_10: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, 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.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-}
-netcdf a {
-dimensions:
-	XAXLEVITR1_160 = 160 ;
-	YAXLEVITR1_9090_90 = 1 ;
-	ZAXLEVITR1_1 = 1 ;
-variables:
-	double XAXLEVITR1_160(XAXLEVITR1_160) ;
-		XAXLEVITR1_160:units = "degrees_east" ;
-		XAXLEVITR1_160:modulo = " " ;
-		XAXLEVITR1_160:point_spacing = "even" ;
-		XAXLEVITR1_160:new_att = "something" ;
-		XAXLEVITR1_160:axis = "X" ;
-		XAXLEVITR1_160:standard_name = "longitude" ;
-	double YAXLEVITR1_9090_90(YAXLEVITR1_9090_90) ;
-		YAXLEVITR1_9090_90:units = "degrees_north" ;
-		YAXLEVITR1_9090_90:point_spacing = "even" ;
-		YAXLEVITR1_9090_90:axis = "Y" ;
-		YAXLEVITR1_9090_90:standard_name = "latitude" ;
-	double ZAXLEVITR1_1(ZAXLEVITR1_1) ;
-		ZAXLEVITR1_1:units = "meters" ;
-		ZAXLEVITR1_1:positive = "down" ;
-		ZAXLEVITR1_1:point_spacing = "even" ;
-		ZAXLEVITR1_1:axis = "Z" ;
-		ZAXLEVITR1_1:standard_name = "depth" ;
-	float TEMP(ZAXLEVITR1_1, YAXLEVITR1_9090_90, XAXLEVITR1_160) ;
-		TEMP:missing_value = -1.e+10f ;
-		TEMP:_FillValue = -1.e+10f ;
-		TEMP:long_name = "TEMPERATURE" ;
-		TEMP:history = "From levitus_climatology" ;
-		TEMP:units = "DEG C" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-}
-netcdf a {
-dimensions:
-	XAXLEVITR1_160161_161 = 1 ;
-	YAXLEVITR1_9090_90 = 1 ;
-	ZAXLEVITR1_1 = 1 ;
-variables:
-	double XAXLEVITR1_160161_161(XAXLEVITR1_160161_161) ;
-		XAXLEVITR1_160161_161:units = "degrees_east" ;
-		XAXLEVITR1_160161_161:modulo = " " ;
-		XAXLEVITR1_160161_161:point_spacing = "even" ;
-		XAXLEVITR1_160161_161:new_att = "something" ;
-		XAXLEVITR1_160161_161:axis = "X" ;
-		XAXLEVITR1_160161_161:standard_name = "longitude" ;
-	double YAXLEVITR1_9090_90(YAXLEVITR1_9090_90) ;
-		YAXLEVITR1_9090_90:units = "degrees_north" ;
-		YAXLEVITR1_9090_90:point_spacing = "even" ;
-		YAXLEVITR1_9090_90:axis = "Y" ;
-		YAXLEVITR1_9090_90:standard_name = "latitude" ;
-	double ZAXLEVITR1_1(ZAXLEVITR1_1) ;
-		ZAXLEVITR1_1:units = "meters" ;
-		ZAXLEVITR1_1:positive = "down" ;
-		ZAXLEVITR1_1:point_spacing = "even" ;
-		ZAXLEVITR1_1:axis = "Z" ;
-		ZAXLEVITR1_1:standard_name = "depth" ;
-	double TWO(ZAXLEVITR1_1, YAXLEVITR1_9090_90, XAXLEVITR1_160161_161) ;
-		TWO:missing_value = -1.e+34 ;
-		TWO:_FillValue = -1.e+34 ;
-		TWO:long_name = "2*TEMP[Y=0:15,X=180:200]" ;
-		TWO:history = "From levitus_climatology" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-}
-bn_attributes.jnl --- 27 attributes of  user-defined axes
-netcdf string4d {
-dimensions:
-	X2AX = 2 ;
-	Y3AX = 3 ;
-	Z4AX = 4 ;
-	T2AX = UNLIMITED ; // (2 currently)
-	STRING1_5 = 5 ;
-variables:
-	double X2AX(X2AX) ;
-		X2AX:point_spacing = "even" ;
-		X2AX:axis = "X" ;
-		X2AX:modulo = " " ;
-	double Y3AX(Y3AX) ;
-		Y3AX:point_spacing = "even" ;
-		Y3AX:axis = "Y" ;
-	double Z4AX(Z4AX) ;
-		Z4AX:point_spacing = "even" ;
-		Z4AX:axis = "Z" ;
-		Z4AX:positive = "up" ;
-		Z4AX:standard_name = "altitude" ;
-	double T2AX(T2AX) ;
-		T2AX:axis = "T" ;
-	char AXY(T2AX, Z4AX, Y3AX, X2AX, STRING1_5) ;
-		AXY:long_name = "RESHAPE (A,RVAR)" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-}
-bn_attributes.jnl --- 28 Define a new global attribute
-bn_attributes.jnl --- 29 SET ATT/OUTPUT=all for global attrs and a var
-netcdf a {
-dimensions:
-	J = 3 ;
-	I = 2 ;
-	STRING1_3 = 3 ;
-variables:
-	float J(J) ;
-		J:point_spacing = "even" ;
-		J:axis = "X" ;
-	int I(I) ;
-		I:point_spacing = "even" ;
-		I:axis = "Y" ;
-	char BROILED(I, J, STRING1_3) ;
-		BROILED:act = "text string\n",
-			"\t123" ;
-		BROILED:acb = 10b ;
-		BROILED:acs = -200s ;
-		BROILED:acl = 17000 ;
-		BROILED:acf = -2.f, 1.f, 0.f ;
-		BROILED:acd = -1., 2.71828182845905 ;
-		BROILED:long_name = "BROILED" ;
-		BROILED:history = "From test0" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-		:glob = "Global attribute" ;
-		:FERRET_comment = "File written via LAS. Attributes are inherited from originating dataset" ;
-data:
-
- J = 2, 4, 6 ;
-
- I = 10, 20 ;
-
- BROILED =
-  "ind",
-  "ist",
-  "ing",
-  "uis",
-  "hab",
-  "le" ;
-}
-bn_attributes.jnl --- 29 SET VAR/OUTTYPE for user variable
-netcdf a {
-dimensions:
-	PSXT91_108 = 18 ;
-	PSYT35_56 = 22 ;
-	bnds = 2 ;
-	PSZT1_10 = 10 ;
-	TIME1 = UNLIMITED ; // (25 currently)
-variables:
-	double PSXT91_108(PSXT91_108) ;
-		PSXT91_108:units = "degrees_east" ;
-		PSXT91_108:modulo = 360. ;
-		PSXT91_108:point_spacing = "even" ;
-		PSXT91_108:axis = "X" ;
-		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, PSZT1_10, PSYT35_56, PSXT91_108) ;
-		FAREN:missing_value = -1.e+34 ;
-		FAREN:_FillValue = -1.e+34 ;
-		FAREN:long_name = "TEMP*9/5 + 32" ;
-		FAREN:units = "Deg F" ;
-		FAREN:history = "From gt4d011" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-}
-netcdf a {
-dimensions:
-	PSXT91_108 = 18 ;
-	PSYT35_56 = 22 ;
-	bnds = 2 ;
-	PSZT1_10 = 10 ;
-	TIME1 = UNLIMITED ; // (25 currently)
-variables:
-	double PSXT91_108(PSXT91_108) ;
-		PSXT91_108:units = "degrees_east" ;
-		PSXT91_108:modulo = 360. ;
-		PSXT91_108:point_spacing = "even" ;
-		PSXT91_108:axis = "X" ;
-		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, PSZT1_10, PSYT35_56, PSXT91_108) ;
-		FAREN:missing_value = -999 ;
-		FAREN:_FillValue = -999 ;
-		FAREN:long_name = "TEMP*9/5 + 32" ;
-		FAREN:units = "Deg F" ;
-		FAREN:history = "From gt4d011" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-}
-netcdf a {
-dimensions:
-	XAX = 4 ;
-	bnds = 2 ;
-variables:
-	double XAX(XAX) ;
-		XAX:point_spacing = "uneven" ;
-		XAX:axis = "X" ;
-		XAX:bounds = "XAX_bnds" ;
-	double XAX_bnds(XAX, bnds) ;
-	double A(XAX) ;
-		A:missing_value = -1.e+34 ;
-		A:_FillValue = -1.e+34 ;
-		A:long_name = "X[GX=XAX]" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- XAX = 1.5, 3, 6, 8.5 ;
-
- XAX_bnds =
-  1, 2,
-  2, 4,
-  4, 8,
-  8, 9 ;
-
- A = 1.5, 3, 6, 8.5 ;
-}
-netcdf a {
-dimensions:
-	XAX = 4 ;
-	bnds = 2 ;
-variables:
-	double XAX(XAX) ;
-		XAX:point_spacing = "uneven" ;
-		XAX:axis = "X" ;
-		XAX:bounds = "XAX_bnds" ;
-	double XAX_bnds(XAX, bnds) ;
-	double A(XAX) ;
-		A:missing_value = -1.e+34 ;
-		A:_FillValue = -1.e+34 ;
-		A:long_name = "X[GX=XAX]" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- XAX = 1.5, 3, 6, 8.5 ;
-
- XAX_bnds =
-  1, 2,
-  2, 4,
-  4, 8,
-  8, 9 ;
-
- A = 1.5, 3, 6, 8.5 ;
-}
-netcdf a {
-dimensions:
-	XAX = 4 ;
-	bnds = 2 ;
-variables:
-	double XAX(XAX) ;
-		XAX:point_spacing = "uneven" ;
-		XAX:axis = "X" ;
-		XAX:bounds = "XAX_bnds" ;
-	double XAX_bnds(XAX, bnds) ;
-	double A(XAX) ;
-		A:missing_value = -1.e+34 ;
-		A:_FillValue = -1.e+34 ;
-		A:long_name = "X[GX=XAX]" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- XAX = 1.5, 3, 6, 8.5 ;
-
- XAX_bnds =
-  1, 2,
-  2, 4,
-  4, 8,
-  8, 9 ;
-
- A = 1.5, 3, 6, 8.5 ;
-}
-netcdf a {
-dimensions:
-	XAX_LEV9421_380 = 360 ;
-	YAX_LEV9450_50 = 1 ;
-	ZAXLEVIT191_1 = 1 ;
-	TIME = UNLIMITED ; // (1 currently)
-variables:
-	double XAX_LEV9421_380(XAX_LEV9421_380) ;
-		XAX_LEV9421_380:units = "degrees_east" ;
-		XAX_LEV9421_380:modulo = " " ;
-		XAX_LEV9421_380:point_spacing = "even" ;
-		XAX_LEV9421_380:long_name = "Here is a long name for the x axis of TEMP" ;
-		XAX_LEV9421_380:axis = "X" ;
-		XAX_LEV9421_380:standard_name = "longitude" ;
-	double YAX_LEV9450_50(YAX_LEV9450_50) ;
-		YAX_LEV9450_50:units = "degrees_north" ;
-		YAX_LEV9450_50:point_spacing = "even" ;
-		YAX_LEV9450_50:axis = "Y" ;
-		YAX_LEV9450_50:standard_name = "latitude" ;
-	double ZAXLEVIT191_1(ZAXLEVIT191_1) ;
-		ZAXLEVIT191_1:units = "meters" ;
-		ZAXLEVIT191_1:positive = "down" ;
-		ZAXLEVIT191_1:point_spacing = "even" ;
-		ZAXLEVIT191_1:axis = "Z" ;
-		ZAXLEVIT191_1:standard_name = "depth" ;
-	double TIME(TIME) ;
-		TIME:units = "hour since 0000-01-01 00:00:00" ;
-		TIME:time_origin = "01-JAN-0000 00:00:00" ;
-		TIME:modulo = 8765.81982421875 ;
-		TIME:axis = "T" ;
-		TIME:standard_name = "time" ;
-	float TEMP(TIME, ZAXLEVIT191_1, YAX_LEV9450_50, XAX_LEV9421_380) ;
-		TEMP:missing_value = -1.e+34f ;
-		TEMP:_FillValue = -1.e+34f ;
-		TEMP:long_name = "Temperature" ;
-		TEMP:history = "From ocean_atlas_monthly" ;
-		TEMP:units = "Deg C" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-}
-netcdf a {
-dimensions:
-	XAX_LEV9421_3801_12 = 12 ;
-	YAX_LEV9450_50 = 1 ;
-	ZAXLEVIT191_1 = 1 ;
-	TIME = UNLIMITED ; // (1 currently)
-variables:
-	double XAX_LEV9421_3801_12(XAX_LEV9421_3801_12) ;
-		XAX_LEV9421_3801_12:units = "degrees_east" ;
-		XAX_LEV9421_3801_12:modulo = " " ;
-		XAX_LEV9421_3801_12:point_spacing = "even" ;
-		XAX_LEV9421_3801_12:long_name = "Here is a long name for the x axis of TEMP" ;
-		XAX_LEV9421_3801_12:axis = "X" ;
-		XAX_LEV9421_3801_12:standard_name = "longitude" ;
-	double YAX_LEV9450_50(YAX_LEV9450_50) ;
-		YAX_LEV9450_50:units = "degrees_north" ;
-		YAX_LEV9450_50:point_spacing = "even" ;
-		YAX_LEV9450_50:axis = "Y" ;
-		YAX_LEV9450_50:standard_name = "latitude" ;
-	double ZAXLEVIT191_1(ZAXLEVIT191_1) ;
-		ZAXLEVIT191_1:units = "meters" ;
-		ZAXLEVIT191_1:positive = "down" ;
-		ZAXLEVIT191_1:point_spacing = "even" ;
-		ZAXLEVIT191_1:axis = "Z" ;
-		ZAXLEVIT191_1:standard_name = "depth" ;
-	double TIME(TIME) ;
-		TIME:units = "hour since 0000-01-01 00:00:00" ;
-		TIME:time_origin = "01-JAN-0000 00:00:00" ;
-		TIME:modulo = 8765.81982421875 ;
-		TIME:axis = "T" ;
-		TIME:standard_name = "time" ;
-	float TEMP(TIME, ZAXLEVIT191_1, YAX_LEV9450_50, XAX_LEV9421_3801_12) ;
-		TEMP:missing_value = -1.e+34f ;
-		TEMP:_FillValue = -1.e+34f ;
-		TEMP:long_name = "Temperature" ;
-		TEMP:history = "From ocean_atlas_monthly" ;
-		TEMP:units = "Deg C" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-}
-netcdf a {
-dimensions:
-	YAXIS = 61 ;
-variables:
-	double YAXIS(YAXIS) ;
-		YAXIS:units = "degrees_north" ;
-		YAXIS:point_spacing = "even" ;
-		YAXIS:axis = "Y" ;
-		YAXIS:standard_name = "latitude" ;
-	double V(YAXIS) ;
-		V:missing_value = -1.e+34 ;
-		V:_FillValue = -1.e+34 ;
-		V:long_name = "Y[GY=YAXIS]" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-}
-err611_set_var_ez.jnl --- 
-netcdf a {
-dimensions:
-	XAX1_3 = 3 ;
-variables:
-	double XAX1_3(XAX1_3) ;
-		XAX1_3:point_spacing = "even" ;
-		XAX1_3:axis = "X" ;
-	float MY_ASC(XAX1_3) ;
-		MY_ASC:missing_value = 3.f ;
-		MY_ASC:_FillValue = 3.f ;
-		MY_ASC:long_name = "chlorophyll" ;
-		MY_ASC:units = "micrograms/L" ;
-		MY_ASC:history = "From dat.dat" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-}
-netcdf a {
-dimensions:
-	XAX1_3 = 3 ;
-variables:
-	double XAX1_3(XAX1_3) ;
-		XAX1_3:point_spacing = "even" ;
-		XAX1_3:axis = "X" ;
-	float MY_UNF(XAX1_3) ;
-		MY_UNF:missing_value = 5.f ;
-		MY_UNF:_FillValue = 5.f ;
-		MY_UNF:long_name = "Some Unformatted input" ;
-		MY_UNF:units = "metres" ;
-		MY_UNF:history = "From unf.dat" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-}
-bn_attributes.jnl --- SET VAR/OUTTYPE for user variable
-netcdf a {
-dimensions:
-	XAX1_3 = 3 ;
-variables:
-	double XAX1_3(XAX1_3) ;
-		XAX1_3:point_spacing = "even" ;
-		XAX1_3:axis = "X" ;
-	double A(XAX1_3) ;
-		A:missing_value = -1.e+34 ;
-		A:_FillValue = -1.e+34 ;
-		A:long_name = "{1.1,2.2,3.3}" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- XAX1_3 = 1, 2, 3 ;
-
- A = 1.1, 2.2, 3.3 ;
-}
-netcdf a {
-dimensions:
-	XAX1_12 = 12 ;
-variables:
-	double XAX1_12(XAX1_12) ;
-		XAX1_12:point_spacing = "even" ;
-		XAX1_12:axis = "X" ;
-	int A(XAX1_12) ;
-		A:missing_value = 999 ;
-		A:_FillValue = 999 ;
-		A:long_name = "{ 3.77, 4.00, 4.10, 4.33, 4.38, 4.27, 4.31, 4.40, 4.75, 5.01, 5.27, 5.52}" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-data:
-
- XAX1_12 = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ;
-
- A = 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5 ;
-}
-netcdf a {
-dimensions:
-	XAX1_10 = 10 ;
-	tday = UNLIMITED ; // (31 currently)
-	lon1_5 = 5 ;
-	lat1_5 = 5 ;
-	bnds = 2 ;
-	zt = 10 ;
-	time1478 = 3 ;
-variables:
-	double XAX1_10(XAX1_10) ;
-		XAX1_10:point_spacing = "even" ;
-		XAX1_10:axis = "X" ;
-	double tday(tday) ;
-		tday:units = "days since 1998-12-31 00:00:00" ;
-		tday:axis = "T" ;
-		tday:calendar = "GREGORIAN" ;
-		tday:time_origin = "31-DEC-1998" ;
-		tday:standard_name = "time" ;
-	double MyUpperLowerCaseVar(tday, XAX1_10) ;
-		MyUpperLowerCaseVar:missing_value = -1.e+34 ;
-		MyUpperLowerCaseVar:_FillValue = -1.e+34 ;
-		MyUpperLowerCaseVar:long_name = "X[X=1:10] + T[GT=TDAY]" ;
-	double lon1_5(lon1_5) ;
-		lon1_5:point_spacing = "even" ;
-		lon1_5:axis = "X" ;
-		lon1_5:standard_name = "longitude" ;
-	double lat1_5(lat1_5) ;
-		lat1_5:point_spacing = "uneven" ;
-		lat1_5:axis = "Y" ;
-		lat1_5:standard_name = "latitude" ;
-		lat1_5:bounds = "lat1_5_bnds" ;
-	double lat1_5_bnds(lat1_5, bnds) ;
-	float zt(zt) ;
-		zt:units = "meters" ;
-		zt:positive = "down" ;
-		zt:point_spacing = "uneven" ;
-		zt:axis = "Z" ;
-		zt:standard_name = "depth" ;
-		zt:bounds = "zt_bnds" ;
-	float zt_bnds(zt, bnds) ;
-	double time1478(time1478) ;
-		time1478:calendar = "NOLEAP" ;
-		time1478:point_spacing = "even" ;
-		time1478:axis = "T" ;
-		time1478:standard_name = "time" ;
-	double newvar(time1478, zt, lat1_5, lon1_5) ;
-		newvar:missing_value = -999. ;
-		newvar:_FillValue = -999. ;
-		newvar:long_name = "outgoing longwave radiation" ;
-		newvar:units = "watts/m2" ;
-		newvar:history = "From a" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-}
-bn_keep_axisnames.jnl --- test SAVE/KEEP_AXISNAMES
-netcdf a {
-dimensions:
-	X100 = 11 ;
-	T31 = UNLIMITED ; // (14 currently)
-variables:
-	double X100(X100) ;
-		X100:units = "degrees_east" ;
-		X100:point_spacing = "even" ;
-		X100:axis = "X" ;
-		X100:modulo = 360. ;
-		X100:standard_name = "longitude" ;
-	double T31(T31) ;
-		T31:units = "days since 1999-12-31 00:00:00" ;
-		T31:axis = "T" ;
-		T31:calendar = "GREGORIAN" ;
-		T31:time_origin = "31-DEC-1999" ;
-		T31:standard_name = "time" ;
-	double A(T31, X100) ;
-		A:missing_value = -1.e+34 ;
-		A:_FillValue = -1.e+34 ;
-		A:long_name = "X[GX=X100] + T[GT=T31]" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-}
-bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES
-netcdf a {
-dimensions:
-	X10030_40 = 11 ;
-	T31 = UNLIMITED ; // (14 currently)
-variables:
-	double X10030_40(X10030_40) ;
-		X10030_40:units = "degrees_east" ;
-		X10030_40:point_spacing = "even" ;
-		X10030_40:axis = "X" ;
-		X10030_40:modulo = 360. ;
-		X10030_40:standard_name = "longitude" ;
-	double T31(T31) ;
-		T31:units = "days since 1999-12-31 00:00:00" ;
-		T31:axis = "T" ;
-		T31:calendar = "GREGORIAN" ;
-		T31:time_origin = "31-DEC-1999" ;
-		T31:standard_name = "time" ;
-	double A(T31, X10030_40) ;
-		A:missing_value = -1.e+34 ;
-		A:_FillValue = -1.e+34 ;
-		A:long_name = "X[GX=X100] + T[GT=T31]" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-}
-bn_axis_cf.jnl, degrees_east, degrees_north, std names on axes:
-netcdf a {
-dimensions:
-	XAX = 11 ;
-	YAX = 6 ;
-	TAXIS = UNLIMITED ; // (5 currently)
-	ZAXDN = 4 ;
-	bnds = 2 ;
-	ZAXUP = 5 ;
-variables:
-	double XAX(XAX) ;
-		XAX:point_spacing = "even" ;
-		XAX:axis = "X" ;
-		XAX:units = "deg" ;
-		XAX:modulo = 360. ;
-		XAX:standard_name = "longitude" ;
-	double XX(XAX) ;
-		XX:missing_value = -1.e+34 ;
-		XX:_FillValue = -1.e+34 ;
-		XX:long_name = "X[GX=XAX]" ;
-	double YAX(YAX) ;
-		YAX:point_spacing = "even" ;
-		YAX:axis = "Y" ;
-		YAX:units = "degrees" ;
-		YAX:standard_name = "latitude" ;
-	double YY(YAX) ;
-		YY:missing_value = -1.e+34 ;
-		YY:_FillValue = -1.e+34 ;
-		YY:long_name = "Y[GY=YAX]" ;
-	double TAXIS(TAXIS) ;
-		TAXIS:units = "days since 2000-01-01 00:00:00" ;
-		TAXIS:axis = "T" ;
-		TAXIS:time_origin = "1-JAN-2000" ;
-		TAXIS:standard_name = "time" ;
-	double TT(TAXIS) ;
-		TT:missing_value = -1.e+34 ;
-		TT:_FillValue = -1.e+34 ;
-		TT:long_name = "T[GT=TAXIS]" ;
-	double ZAXDN(ZAXDN) ;
-		ZAXDN:units = "meters" ;
-		ZAXDN:point_spacing = "uneven" ;
-		ZAXDN:axis = "Z" ;
-		ZAXDN:bounds = "ZAXDN_bnds" ;
-		ZAXDN:positive = "down" ;
-		ZAXDN:standard_name = "depth" ;
-	double ZAXDN_bnds(ZAXDN, bnds) ;
-	double ZDN(ZAXDN) ;
-		ZDN:missing_value = -1.e+34 ;
-		ZDN:_FillValue = -1.e+34 ;
-		ZDN:long_name = "Z[GZ=ZAXDN]" ;
-	double ZAXUP(ZAXUP) ;
-		ZAXUP:units = "meters" ;
-		ZAXUP:point_spacing = "uneven" ;
-		ZAXUP:axis = "Z" ;
-		ZAXUP:bounds = "ZAXUP_bnds" ;
-		ZAXUP:standard_name = "altitude" ;
-	double ZAXUP_bnds(ZAXUP, bnds) ;
-	double ZUP(ZAXUP) ;
-		ZUP:missing_value = -1.e+34 ;
-		ZUP:_FillValue = -1.e+34 ;
-		ZUP:long_name = "Z[GZ=ZAXUP]" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-}
-bn_axis_cf.jnl, Convert forms of DEG, degrees to degrees_east:
-netcdf a {
-dimensions:
-	XAXIS = 31 ;
-	YFIFTEEN = 13 ;
-variables:
-	double XAXIS(XAXIS) ;
-		XAXIS:units = "degrees_east" ;
-		XAXIS:point_spacing = "even" ;
-		XAXIS:axis = "X" ;
-		XAXIS:modulo = 360. ;
-		XAXIS:standard_name = "longitude" ;
-	float VAR(XAXIS) ;
-		VAR:missing_value = -1.e+34f ;
-		VAR:_FillValue = -1.e+34f ;
-		VAR:long_name = "X[GX=XAXIS]" ;
-		VAR:history = "From degrees" ;
-	double YFIFTEEN(YFIFTEEN) ;
-		YFIFTEEN:units = "degrees_north" ;
-		YFIFTEEN:point_spacing = "even" ;
-		YFIFTEEN:axis = "Y" ;
-		YFIFTEEN:standard_name = "latitude" ;
-	double Y_(YFIFTEEN) ;
-		Y_:missing_value = -1.e+34 ;
-		Y_:_FillValue = -1.e+34 ;
-		Y_:long_name = "Y" ;
-		Y_:long_name_mod = "axis YFIFTEEN" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-}
-bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since
-netcdf a {
-dimensions:
-	XLON = 40 ;
-	YLAT = 30 ;
-	TTIME = UNLIMITED ; // (20 currently)
-variables:
-	double XLON(XLON) ;
-		XLON:units = "degrees_east" ;
-		XLON:point_spacing = "even" ;
-		XLON:modulo = 360. ;
-		XLON:axis = "X" ;
-		XLON:standard_name = "longitude" ;
-	double YLAT(YLAT) ;
-		YLAT:units = "degrees_north" ;
-		YLAT:point_spacing = "even" ;
-		YLAT:axis = "Y" ;
-		YLAT:standard_name = "latitude" ;
-	double TTIME(TTIME) ;
-		TTIME:units = "days since 1901-01-15 00:00:00" ;
-		TTIME:time_origin = "15-JAN-1901 00:00:00" ;
-		TTIME:axis = "T" ;
-		TTIME:standard_name = "time" ;
-	float XYTVAR(TTIME, YLAT, XLON) ;
-		XYTVAR:missing_value = -1.e+34f ;
-		XYTVAR:_FillValue = -1.e+34f ;
-		XYTVAR:long_name = "L*1000 + J*10 + I" ;
-		XYTVAR:history = "From bn_strides" ;
-
-// global attributes:
-		:history = "FERRET V6.85   12-Nov-13" ;
-		:Conventions = "CF-1.0" ;
-}
------
-end of ncdump output
- 
-yes? ! this "shell" is used because the Unix redirection fails to echo commands
-yes? ! from the top level command file
-yes? ! ... havn't explored the reason ... they echo fine to the screen
-yes? ! *kob* 3/04/98 - newly created - copied from bn490_all_shell.jnl
-yes? 
-yes? 
-yes? GO bn_startupfile
- 	NOAA/PMEL TMAP
- 	FERRET v6.85  
- 	Linux 2.6.32-358.23.2.el6.x86_64 32-bit - 11/12/13
- 	12-Nov-13 15:14     
-
-CAN MODE VERIFY
- Current size of FERRET memory cache: 31 MegaWords  (1 word = 4 bytes)
-PPL$XPIXEL = "656"
-PPL$YPIXEL = "492"
-BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.85"
-FERRET_PLATFORM = "Linux 2.6.32-358.23.2.el6.x86_64 32-bit"
-FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.0 of May 13 2013 13:48:05 $"
-FERRET_MEMORY = "31"
-SESSION_DATE = "12-Nov-13"
-SESSION_TIME = "15:14"
-SESSION_PID = "28140"
-DELTA_CPU = "0.036993"
-CLOCK_SECS = "0.313"
-CURRENT_DATE = "12-Nov-13"
-CURRENT_TIME = "15:14:00"
-N_OPEN_DSETS = "0"
-PROGRAM_NAME = "Ferret"
-LAST_GO_FILE = "./bn_startupfile.jnl"
-PPL$FORMAT = "(3F10.2)"
-PPL$PLTNME = "startup_tests.plt"
-PPL$TEKNME = "/dev/tty"
-PPL$XLEN = "8.000"
-PPL$YLEN = "6.000"
-PPL$XORG = "1.200"
-PPL$YORG = "1.400"
-PPL$WIDTH = "10.20"
-PPL$HEIGHT = "8.800"
-PPL$LINE_COUNT = "0"
-PPL$XFACT1 = "1.000"
-PPL$XOFF1 = "0.000"
-PPL$YFACT1 = "1.000"
-PPL$YOFF1 = "0.000"
-PPL$VIEW_X = "0.000"
-PPL$VIEW_Y = "0.000"
-PPL$VIEW_Z = "0.000"
-PPL$COMMAND_FILE = "$$MEMBUF$$"
-WIN_TITLE = "12-Nov-13:15:14"
-VP_WIDTH = "10.2"
-VP_HEIGHT = "8.8"
-VP_SCALE = "1"
-VP_RT_MARGIN = "1"
-VP_TOP_MARGIN = "1.4"
-VP_XLO = "0"
-VP_XHI = "1"
-VP_YLO = "0"
-VP_YHI = "1"
-GO_FILE = "./bn_startupfile.jnl"
-      MODE            STATE        ARGUMENT
-      DIAGNOSTIC    CANCELLED           99
-      VERIFY        CANCELLED      DEFAULT
-      INTERPOLATE   CANCELLED
-      IGNORE_ERROR  CANCELLED
-      STUPID        CANCELLED
-      JOURNAL          SET         startup_tests.jnl
-      LONG_LABEL       SET               1
-      LATIT_LABEL   CANCELLED            1
-      DEPTH_LABEL      SET              -4
-      CALENDAR         SET         minutes
-      6D_LAB           SET
-      ASCII_FONT       SET
-      SEGMENT          SET
-      WAIT          CANCELLED
-      DESPERATE     CANCELLED      3100000
-      GKS              SET
-      REFRESH          SET
-      METAFILE         SET         startup_tests.plt
-      PPLLIST       CANCELLED      ppllist.out
-      GUI           CANCELLED
-      LOGO             SET
-      LABELS           SET
-      GRATICULE        SET
-      LINECOLORS       SET               7
-      UPCASE_OUTPU     SET
-      NLEVELS          SET             100
-      NODATA_LAB       SET
-      shrink_ylab   CANCELLED
-     currently SET data sets:
-    1> ./gtbc011.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
- 
-yes? ! this "shell" is used because the Unix redirection fails to echo commands
-yes? ! from the top level command file
-yes? ! ... havn't explored the reason ... they echo fine to the screen
-yes? ! *kob* 3/04/98 - newly created - copied from bn490_all_shell.jnl
-yes? 
-yes? 
-yes? GO bn_gif
- 	NOAA/PMEL TMAP
- 	FERRET v6.85  
- 	Linux 2.6.32-358.23.2.el6.x86_64 32-bit - 11/12/13
- 	12-Nov-13 15: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*
- 
-! 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= 4010  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.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.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.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
- 
-exit/command
-yes? ! this "shell" is used because the Unix redirection fails to echo commands
-yes? ! from the top level command file
-yes? ! ... havn't explored the reason ... they echo fine to the screen
-yes? ! *kob* 3/04/98 - newly created - copied from bn490_all_shell.jnl
-yes? 
-yes? 
-yes? GO bn_ps
- 	NOAA/PMEL TMAP
- 	FERRET v6.85  
- 	Linux 2.6.32-358.23.2.el6.x86_64 32-bit - 11/12/13
- 	12-Nov-13 15:14     
-
-! 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*
- 
-! 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= 4010  BAUD=  110
-         WINDOW= ON   BOX= OFF  CROSS= 0  PLTYPE=  3
-         PLOT MODE=   A
-         PLOT FILE= bnplot.ps                                                                                                                                                                                                                                                                                                                                                                                                                                                                                [...]
- 
-! 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
- 
-set mode ignore
-frame/file=bnplot.ps    ! DELIBERATE ERROR MESSAGE
-can mode ignore
-exit/command
-yes? ! this "shell" is used because the Unix redirection fails to echo commands
-yes? ! from the top level command file
-yes? ! ... havn't explored the reason ... they echo fine to the screen
-yes? ! *kob* 3/04/98 - newly created - copied from bn490_all_shell.jnl
-yes? 
-yes? 
-yes? GO bn_batch_metafile
- 	NOAA/PMEL TMAP
- 	FERRET v6.85  
- 	Linux 2.6.32-358.23.2.el6.x86_64 32-bit - 11/12/13
- 	12-Nov-13 15:14     
-
-! bn_batch_metafile.jnl
-! Run at the end of the benchmark scripts, starting ferret with the flags
-!   -batch bat.plt
-! Produces nine metafiles.
- 
-cancel mode logo
- 
-! test viewports and set window/clear; cancel viewport
-set view upper
-plot/i=1:150 sin(i/12)
-set view lower
-plot/color=red/i=1:150 cos(i/10)
- 
-set window/clear
- 
-set view left
-shade/i=1:15/j=1:15/lev=30 i*j
-set view right
-shade/i=1:15/j=1:15 cos(i)* sin(j)
- 
-cancel viewports
- 
-set view ur
-plot/i=1:12 1./i
-set view ll
-shade/i=1:150/j=1:150 cos(i/10) - sin(j/12)
- 
-! polygon command and palette
- 
-cancel viewports
-polygon/thick/color=red/palette=blue/axes=1,0,1,0 {1,2,1}, {2,1,0.5}
- 
-! more viewports, with pplus/reset
- 
-set view upper; shade/i=1:10/j=1:10 i*j
-cancel viewports
-pplus/reset
- 
-! cancel viewports when viewport wasnt set
-! and set window/clear after cancel viewports
- 
-plot/vs/line/i=1:314 i*cos(i/20),i*sin(i/20)
-plot/vs/line/over/i=1:314 i*cos(i/30),i*sin(i/20)
- 
-cancel viewports
-set window/clear
- 
-! aspect ratio can be set
- 
-set window/asp=3
-shade/i=1:15/j=1:15/lev=20 i*j
- 
-set win/asp=1
-fill/i=1:15/j=1:15/lev=20 i*j
- 
-pplus/reset
- 
- 
-! Bug 1396 fixed
- 
-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]
-cancel viewports
- 
-! intentional errors and ignored commands
-! set and cancel mode metafile are ignored
- 
-set mode metafile new.plt
- 
-cancel mode metafile
- 
-plot/i=1:12/title="after cancel mode metafile in batch mode" 1./i
- 
-! set window commands are ignored, except for set window/aspect
-set window/new
- 
-set window/location=0.1,0.1/title="another title"
- 
-set mode/last logo
-exit/command
-Ended at Tue Nov 12 15:14:02 PST 2013
diff --git a/bench/ansley_official.rhel6-64_err b/bench/ansley_official.rhel6-64_err
index e6331a5..4cde0c8 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 manke oerdnewp 79254903 Oct 29 16:02 /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
 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: bug 2215
+Note: ticket 2322: err msgs with SHOW DATA nofile to show the file name
 ncdump output will be in all_ncdump.out, and appended to this log file 
 ***** Restricting Ferret paths to bench directory *****
 FER_DAT=.
@@ -14,15 +14,12 @@ FER_DESCR=.
 FER_DIR=.
 FER_DSETS=.
 FER_EXTERNAL_FUNCTIONS=/home/users/ansley/build/current_trunk/FERRET/external_functions/ext_func
-FER_FONTS=/home/users/tmap/ferret/rhel6-x86_64-linux/ppl/fonts
-FER_GO=. /home/users/tmap/ferret/rhel6-x86_64-linux/go /home/users/tmap/ferret/rhel6-x86_64-linux/examples /home/users/tmap/ferret/rhel6-x86_64-linux/contrib /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
 FER_GRIDS=.
-FER_LIBS=/home/users/tmap/ferret/rhel6-x86_64-linux/lib
-FER_LINK_DIR=/home/users/tmap/ferret_link/linux
-FER_PALETTE=. /home/users/tmap/ferret/rhel6-x86_64-linux/ppl
-FER_WEB_BROWSER=firefox
+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 Wed Oct 29 16:02:58 PDT 2014
+Beginning at Mon Nov 9 15:02:29 PST 2015
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
         SET EXPRESSION has not been given or implied
@@ -43,12 +40,12 @@ 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: Valid argument $1 choices are: xxxxx|goodbye
+           *** 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: Valid argument $3 choices are: hello|goodbye
+           *** NOTE: Valid argument $3 choices are: hello|goodbye
  **ERROR: my error message
 message/cont $3">greetings|hello|goodbye<my error message"
  **ERROR: my error message
@@ -59,17 +56,17 @@ message/cont $3""
 message/cont $3"<"
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3"||"
- *** NOTE: Valid argument $3 choices are: |
+           *** NOTE: Valid argument $3 choices are: |
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3"|>|"
- *** NOTE: Valid argument $3 choices are: >|
+           *** NOTE: Valid argument $3 choices are: >|
  **ERROR: command syntax: empty text string provided with ">": >|
 message/cont $3">|"
  **ERROR: command syntax: empty text string provided with ">": |<
 message/cont $3"|<"
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3"|>"
- *** NOTE: Valid argument $3 choices are: >
+           *** NOTE: Valid argument $3 choices are: >
  **ERROR: command syntax: arg number not in 1-99 range: $100
 say $100
  **ERROR: command syntax: arg number not in 1-99 range: $100)
@@ -107,16 +104,16 @@ MESSAGE/CONTINUE `1*/3`
  **ERROR: command syntax: sst*/3
           * before / is illegal
 MESSAGE/CONTINUE `sst*/3,return=lunits`
- **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,units,dset,
+ **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,f0,units,dset,
             dsetnum,dsetpath,dsettitle,*size,*start,*end,
             *units,*axis,nc_scale,nc_offset,user_scale,user_offset,
-            calendar,dtype,xmod,tmod,status,isDepth,isReady
+            calendar,dtype,xmod,tmod,status,isDepth,isReady,defined
           sst,return=Xsize
 MESSAGE/CONTINUE `sst,return=Xsize`
- **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,units,dset,
+ **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,f0,units,dset,
             dsetnum,dsetpath,dsettitle,*size,*start,*end,
             *units,*axis,nc_scale,nc_offset,user_scale,user_offset,
-            calendar,dtype,xmod,tmod,status,isDepth,isReady
+            calendar,dtype,xmod,tmod,status,isDepth,isReady,defined
           sst,return=trash
 MESSAGE/CONTINUE `sst,return=trash`
  PERMANENT data cleared from memory
@@ -131,12 +128,22 @@ can var
  LISTing to file v1file.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ **ERROR: invalid command: ENDIF can only be used in an IF clause
+ENDIF
+ **ERROR: command syntax: ELIF cannot be used in single line IF
+          IF 0 THEN say ERROR ELIF 1 THEN say "CORRECT if you see this"
+IF 0 THEN say ERROR ELIF 1 THEN say "CORRECT if you see this"
+ **ERROR: command syntax: Trash after ENDIF
+          IF 0 THEN say ERROR ELSE say "CORRECT if you see this" ENDIF say trash
+IF 0 THEN say ERROR ELSE say "CORRECT if you see this" ENDIF say trash
+           *** NOTE: Unclosed IF statement ... assuming ENDIF
  **ERROR: invalid command: ELSE can only be used between IF and ENDIF
 else
  **ERROR: invalid command: ENDIF can only be used in an IF clause
 endif
  **ERROR: invalid command: ELIF can only be used between IF and ENDIF
 elif
+           *** NOTE: Unclosed IF statement ... assuming ENDIF
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: command syntax: IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
@@ -154,7 +161,7 @@ load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Ambiguous coordinates on X axis: X[I=1:5] - X[I=6:9]
+           *** NOTE: Ambiguous coordinates on X axis: X[I=1:5] - X[I=6:9]
  **ERROR: inconsistent sizes of data regions: X axis
           X[I=6:9] has 4 points (I=6:9)
           expression has 5 points (I=1:5)
@@ -229,8 +236,8 @@ Re-defining viewport LM6
 Re-defining viewport UM6
  Using every   2th vector in the X direction
  Using every   2th vector in the Y direction
- *** NOTE: /XLIMITS and /YLIMITS are deprecated.
- *** NOTE: Use /HLIMITS and /VLIMITS instead.
+           *** NOTE: /XLIMITS and /YLIMITS are deprecated.
+           *** NOTE: Use /HLIMITS and /VLIMITS instead.
  **ERROR: invalid command: color=noexist
           Colors are Black,Red,Green,Blue,LightBlue,Purple, and White
 plot/over/i=1:10/color=noexist i
@@ -277,12 +284,12 @@ 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: Valid symbol test2 choices are: hello|bye|
+           *** 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: Valid symbol t2 choices are: solong>really hello|bye|
+           *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -332,12 +339,12 @@ list tu
  Cached data cleared from memory
  **ERROR: request exceeds memory setting: 25 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.
+           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
  Cached data cleared from memory
- *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] +  X[X=1.1:11:1.5]
- *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] +  X[X=1.1:11:1.5]
- *** NOTE: Ambiguous coordinates on X axis: TEMP[I=101:120:4]+X[I=101:120:4]
+           *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] +  X[X=1.1:11:1.5]
+           *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] +  X[X=1.1:11:1.5]
+           *** NOTE: Ambiguous coordinates on X axis: TEMP[I=101:120:4]+X[I=101:120:4]
  **ERROR: invalid command: non-positive delta value: X[I=1:5:-1]
 list x[i=1:5:-1]
  **ERROR: invalid command: non-positive delta value: X[I=1:5:0]
@@ -401,9 +408,9 @@ list a
  LISTing to file test_abs.cdf
  LISTing to file test_abs.cdf
  LISTing to file test_abs.cdf
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
- *** NOTE: Write the data initially with the /BOUNDS qualifier
+           *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
+           *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
+           *** NOTE: Write the data initially with the /BOUNDS qualifier
  LISTing to file test2.cdf
  LISTing to file FL.cdf
  LISTing to file FTLON.cdf
@@ -467,7 +474,7 @@ list/format=cdf/l=13/append/file=test_abs.cdf l1
  LISTing to file test_fil.cdf
  LISTing to file test_fil.cdf
  LISTing to file test_fil.cdf
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: regridding: G=W - more than 1 target grid
@@ -561,14 +568,12 @@ Replacing definition of axis TAX
 list v2-and-minus
  **ERROR: dimensions improperly specified: 99999999 words were requested.
 list x
- *** NOTE: Check for unspecified limits on an ABSTRACT axis
- *** NOTE: Use the SHOW GRID command to see the axes
+           *** NOTE: Check for unspecified limits on an ABSTRACT axis
+           *** NOTE: Use the SHOW GRID command to see the axes
  **ERROR: dimensions improperly specified: 99999999 words were requested.
 list i
- *** NOTE: Check for unspecified limits on an ABSTRACT axis
- *** NOTE: Use the SHOW GRID command to see the axes
- **ERROR: variable unknown or not in data set: 'i'
-list 'i'
+           *** NOTE: Check for unspecified limits on an ABSTRACT axis
+           *** NOTE: Use the SHOW GRID command to see the axes
  **ERROR: command syntax: v2-and-minus[i=5:15 at ddc]
           - before and is illegal
 list v2-and-minus[i=5:15 at ddc]
@@ -583,15 +588,15 @@ Replacing definition of axis ZAX
 Replacing definition of axis TAX
  **ERROR: request exceeds memory setting: 24000 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.
+           *** 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.
 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.
+           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
 Replacing definition of axis XAX
 Replacing definition of axis YAX
 Replacing definition of axis ZAX
@@ -601,7 +606,7 @@ Replacing definition of axis TAX
 SET DATA/EZ/format=stream/var=num/grid=mygrid NoSuchFile.dat
  **ERROR: Size of file ./junk.dat doesn't match size specified by variables/grid
 load num
- *** NOTE: Binary file reading: Insufficient memory reading variable    2
+           *** NOTE: Binary file reading: Insufficient memory reading variable    2
  **ERROR: invalid command: variable permutations only allowed for STREAM format
 SET DATA/EZ/var=num/order=vxyzt/grid=mygrid junk.dat
  **ERROR: invalid command: invalid argument for /TYPE
@@ -634,37 +639,37 @@ Replacing definition of axis TAX
 Replacing definition of axis TAX
 Replacing definition of axis TAX
 Replacing definition of axis TAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
  **ERROR: improper grid or axis definition: unrepairable repeated axis coords
 define axis/from/x/name=xax {6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
  **ERROR: improper grid or axis definition: unrepairable repeated axis coords
 define axis/from/x/name=xax/edges {6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
  **ERROR: improper grid or axis definition: unrepairable repeated axis coords
 define axis/from/x/name=xax/edges {6,6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
 Replacing definition of axis XAX2
- *** NOTE: (fyi) units are not subject to auto-conversion: BLAHS
+           *** NOTE: (fyi) units are not subject to auto-conversion: BLAHS
 Replacing definition of axis XAX2
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -697,7 +702,7 @@ Replacing definition of axis TCAL
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -753,8 +758,8 @@ stat i, noname(i)
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** 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
  **ERROR: invalid command: delta values may only modify variable names
 LIST/i=2:4:2 VAR
  PERMANENT data cleared from memory
@@ -763,15 +768,15 @@ LIST/i=2:4:2 VAR
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** 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
  PERMANENT data cleared from memory
  TEMPORARY 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
+           *** 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of grid GX
@@ -808,11 +813,11 @@ Bailing out of external function "eof_stat":
 
 Bailing out of external function "eof_tfunc":
 	 Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 360.00 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 360.00 days
 Replacing definition of grid TGRID
 Replacing definition of axis TDAYS
 Replacing definition of grid TGRID
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: command syntax: dash=(1., 2.)
@@ -853,8 +858,8 @@ Replacing definition of axis X10
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Not deleted: X10
- *** NOTE: Axis is in use by grid G10X5
+           *** NOTE: Not deleted: X10
+           *** NOTE: Axis is in use by grid G10X5
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -924,10 +929,10 @@ list strcat ("All work and no play")
  LISTing to file test_modulo.cdf
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** 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
+           *** NOTE: Not using NetCDF strides for multi-cycle modulo
+           *** 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Re-defining viewport MID
@@ -967,6 +972,18 @@ list a[gx=xnrst at sum]
  **ERROR: invalid command: cant use this regrid transform on strings: @MOD
 list a[gx=xnrst at mod]
  LISTing to file foo.cdf
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" - {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" * {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" / {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" ^ {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead SIN({"a","b","c"})
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead MAX("a",{"a","b","c"})
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -982,12 +999,12 @@ Replacing definition of grid G1
  **TMAP ERR: syntax error in string
              Unrecognized field type: D
              Data set: ./bn_delimited_read_date_time.dat
- *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
+           *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
 SET DATA/FORM=delimited/type="d, da2,date2"  bn_delimited_read_date_time.dat
  **TMAP ERR: syntax error in string
              Unrecognized field type: DATE2
              Data set: ./bn_delimited_read_date_time.dat
- *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
+           *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
 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
@@ -1051,279 +1068,279 @@ Replacing definition of grid MYGRID
  LISTing to file longax.dat
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: regarding ./test_axes.nc ...
- *** NOTE: Climatological axes test_irreg, test_seas defined
+           *** NOTE: regarding ./test_axes.nc ...
+           *** NOTE: Climatological axes test_irreg, test_seas defined
  PERMANENT data cleared from memory
  TEMPORARY 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: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
 Replacing definition of axis TAX2
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file string4d.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: regarding ./test_axes.nc ...
- *** NOTE: Climatological axes test_irreg, test_seas defined
- *** NOTE: Not deleted: TEST_IRREG
- *** NOTE: Axis is in use by grid (G023)
- *** NOTE: Not deleted: XEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: XODD
- *** NOTE: Axis is in use by grid G13
- *** NOTE: Not deleted: YEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: YODD
- *** NOTE: Axis is in use by grid G2
- *** NOTE: Not deleted: ZEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: ZODD
- *** NOTE: Axis is in use by grid G3
- *** NOTE: Not deleted: TEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: TODD
- *** NOTE: Axis is in use by grid G4
- *** NOTE: Not deleted: XCOARSE
- *** NOTE: Axis is in use by grid GCOARSE
- *** NOTE: Not deleted: YFINE
- *** NOTE: Axis is in use by grid GFINE
- *** NOTE: Not deleted: YCOARSE
- *** NOTE: Axis is in use by grid GCOARSE
- *** NOTE: Not deleted: XFINE
- *** NOTE: Axis is in use by grid GFINE
- *** NOTE: Not deleted: TAX48
- *** NOTE: Axis is in use by grid G48
- *** NOTE: Not deleted: XEZ1
- *** NOTE: Axis is in use by grid GEZ1
- *** NOTE: Not deleted: XEZ2
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: YEZ
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: ZEZ
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: XEZ3
- *** NOTE: Axis is in use by grid GEZ3
- *** NOTE: Not deleted: LON_FIELD_J_AXIS
- *** NOTE: Axis is in use by grid LON_FIELD_GRID
- *** NOTE: Not deleted: LAT_FIELD_I_AXIS
- *** NOTE: Axis is in use by grid LAT_FIELD_GRID
- *** NOTE: Not deleted: LAT_FIELD_J_AXIS
- *** NOTE: Axis is in use by grid LAT_FIELD_GRID
- *** NOTE: Not deleted: LON_FIELD_I_AXIS
- *** NOTE: Axis is in use by grid LON_FIELD_GRID
- *** NOTE: Not deleted: XIRREG
- *** NOTE: Axis is in use by grid GIRREG
- *** NOTE: Not deleted: TCENTURY
- *** NOTE: Axis is in use by grid GCENTURY
- *** NOTE: Not deleted: TAX5DAY
- *** NOTE: Axis is in use by grid G5DAY
- *** NOTE: Not deleted: XAX10
- *** NOTE: Axis is in use by grid G5_10
- *** NOTE: Not deleted: X5
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: Y5
- *** NOTE: Axis is in use by grid G10X5
- *** NOTE: Not deleted: TIME1
- *** NOTE: Axis is in use by grid GHB1
- *** NOTE: Not deleted: TIME2
- *** NOTE: Axis is in use by grid GCQ1
- *** NOTE: Not deleted: TAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: X4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: Y4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: Z4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: T4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: XCHANNEL
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: YRISE
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: ZLAYER
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: TIME
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: Z1
- *** NOTE: Axis is in use by grid G1
- *** NOTE: Not deleted: TCAL
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: XTROP
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: YTROP
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: ZAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: Y1
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: Y2
- *** NOTE: Axis is in use by grid G10X2
- *** NOTE: Not deleted: JMONTHS
- *** 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: 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: 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: 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
- *** NOTE: Axis is in use by grid G13
- *** NOTE: Not deleted: YEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: YODD
- *** NOTE: Axis is in use by grid G2
- *** NOTE: Not deleted: ZEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: ZODD
- *** NOTE: Axis is in use by grid G3
- *** NOTE: Not deleted: TEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: TODD
- *** NOTE: Axis is in use by grid G4
- *** NOTE: Not deleted: XCOARSE
- *** NOTE: Axis is in use by grid GCOARSE
- *** NOTE: Not deleted: YFINE
- *** NOTE: Axis is in use by grid GFINE
- *** NOTE: Not deleted: YCOARSE
- *** NOTE: Axis is in use by grid GCOARSE
- *** NOTE: Not deleted: XFINE
- *** NOTE: Axis is in use by grid GFINE
- *** NOTE: Not deleted: TAX48
- *** NOTE: Axis is in use by grid G48
- *** NOTE: Not deleted: XEZ1
- *** NOTE: Axis is in use by grid GEZ1
- *** NOTE: Not deleted: XEZ2
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: YEZ
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: ZEZ
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: XEZ3
- *** NOTE: Axis is in use by grid GEZ3
- *** NOTE: Not deleted: LON_FIELD_J_AXIS
- *** NOTE: Axis is in use by grid LON_FIELD_GRID
- *** NOTE: Not deleted: LAT_FIELD_I_AXIS
- *** NOTE: Axis is in use by grid LAT_FIELD_GRID
- *** NOTE: Not deleted: LAT_FIELD_J_AXIS
- *** NOTE: Axis is in use by grid LAT_FIELD_GRID
- *** NOTE: Not deleted: LON_FIELD_I_AXIS
- *** NOTE: Axis is in use by grid LON_FIELD_GRID
- *** NOTE: Not deleted: XIRREG
- *** NOTE: Axis is in use by grid GIRREG
- *** NOTE: Not deleted: TCENTURY
- *** NOTE: Axis is in use by grid GCENTURY
- *** NOTE: Not deleted: TAX5DAY
- *** NOTE: Axis is in use by grid G5DAY
- *** NOTE: Not deleted: XAX10
- *** NOTE: Axis is in use by grid G5_10
- *** NOTE: Not deleted: X5
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: Y5
- *** NOTE: Axis is in use by grid G10X5
- *** NOTE: Not deleted: TIME1
- *** NOTE: Axis is in use by grid GHB1
- *** NOTE: Not deleted: TIME2
- *** NOTE: Axis is in use by grid GCQ1
- *** NOTE: Not deleted: TAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: X4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: Y4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: Z4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: T4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: XCHANNEL
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: YRISE
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: ZLAYER
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: TIME
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: Z1
- *** NOTE: Axis is in use by grid G1
- *** NOTE: Not deleted: TCAL
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: XTROP
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: YTROP
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: ZAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: Y1
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: Y2
- *** NOTE: Axis is in use by grid G10X2
- *** NOTE: Not deleted: JMONTHS
- *** 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: 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: ZAXLEVITR1_1
- *** NOTE: Axis is in use by grid GG2
- *** NOTE: Not deleted: (AX020)
- *** NOTE: Axis is in use by grid GG3
+           *** NOTE: regarding ./test_axes.nc ...
+           *** NOTE: Climatological axes test_irreg, test_seas defined
+           *** NOTE: Not deleted: TEST_IRREG
+           *** NOTE: Axis is in use by grid (G023)
+           *** NOTE: Not deleted: XEVEN
+           *** NOTE: Axis is in use by grid EVEN
+           *** NOTE: Not deleted: XODD
+           *** NOTE: Axis is in use by grid G13
+           *** NOTE: Not deleted: YEVEN
+           *** NOTE: Axis is in use by grid EVEN
+           *** NOTE: Not deleted: YODD
+           *** NOTE: Axis is in use by grid G2
+           *** NOTE: Not deleted: ZEVEN
+           *** NOTE: Axis is in use by grid EVEN
+           *** NOTE: Not deleted: ZODD
+           *** NOTE: Axis is in use by grid G3
+           *** NOTE: Not deleted: TEVEN
+           *** NOTE: Axis is in use by grid EVEN
+           *** NOTE: Not deleted: TODD
+           *** NOTE: Axis is in use by grid G4
+           *** NOTE: Not deleted: XCOARSE
+           *** NOTE: Axis is in use by grid GCOARSE
+           *** NOTE: Not deleted: YFINE
+           *** NOTE: Axis is in use by grid GFINE
+           *** NOTE: Not deleted: YCOARSE
+           *** NOTE: Axis is in use by grid GCOARSE
+           *** NOTE: Not deleted: XFINE
+           *** NOTE: Axis is in use by grid GFINE
+           *** NOTE: Not deleted: TAX48
+           *** NOTE: Axis is in use by grid G48
+           *** NOTE: Not deleted: XEZ1
+           *** NOTE: Axis is in use by grid GEZ1
+           *** NOTE: Not deleted: XEZ2
+           *** NOTE: Axis is in use by grid GEZ2
+           *** NOTE: Not deleted: YEZ
+           *** NOTE: Axis is in use by grid GEZ2
+           *** NOTE: Not deleted: ZEZ
+           *** NOTE: Axis is in use by grid GEZ2
+           *** NOTE: Not deleted: XEZ3
+           *** NOTE: Axis is in use by grid GEZ3
+           *** NOTE: Not deleted: LON_FIELD_J_AXIS
+           *** NOTE: Axis is in use by grid LON_FIELD_GRID
+           *** NOTE: Not deleted: LAT_FIELD_I_AXIS
+           *** NOTE: Axis is in use by grid LAT_FIELD_GRID
+           *** NOTE: Not deleted: LAT_FIELD_J_AXIS
+           *** NOTE: Axis is in use by grid LAT_FIELD_GRID
+           *** NOTE: Not deleted: LON_FIELD_I_AXIS
+           *** NOTE: Axis is in use by grid LON_FIELD_GRID
+           *** NOTE: Not deleted: XIRREG
+           *** NOTE: Axis is in use by grid GIRREG
+           *** NOTE: Not deleted: TCENTURY
+           *** NOTE: Axis is in use by grid GCENTURY
+           *** NOTE: Not deleted: TAX5DAY
+           *** NOTE: Axis is in use by grid G5DAY
+           *** NOTE: Not deleted: XAX10
+           *** NOTE: Axis is in use by grid G5_10
+           *** NOTE: Not deleted: X5
+           *** NOTE: Axis is in use by grid GSRC
+           *** NOTE: Not deleted: Y5
+           *** NOTE: Axis is in use by grid G10X5
+           *** NOTE: Not deleted: TIME1
+           *** NOTE: Axis is in use by grid GHB1
+           *** NOTE: Not deleted: TIME2
+           *** NOTE: Axis is in use by grid GCQ1
+           *** NOTE: Not deleted: TAX
+           *** NOTE: Axis is in use by grid GFORMAT
+           *** NOTE: Not deleted: X4
+           *** NOTE: Axis is in use by grid G4D
+           *** NOTE: Not deleted: Y4
+           *** NOTE: Axis is in use by grid G4D
+           *** NOTE: Not deleted: Z4
+           *** NOTE: Axis is in use by grid G4D
+           *** NOTE: Not deleted: T4
+           *** NOTE: Axis is in use by grid G4D
+           *** NOTE: Not deleted: XCHANNEL
+           *** NOTE: Axis is in use by grid GSIGMA
+           *** NOTE: Not deleted: YRISE
+           *** NOTE: Axis is in use by grid GSIGMA
+           *** NOTE: Not deleted: ZLAYER
+           *** NOTE: Axis is in use by grid GSIGMA
+           *** NOTE: Not deleted: TIME
+           *** NOTE: Axis is in use by grid GSIGMA
+           *** NOTE: Not deleted: Z1
+           *** NOTE: Axis is in use by grid G1
+           *** NOTE: Not deleted: TCAL
+           *** NOTE: Axis is in use by grid GSRC
+           *** NOTE: Not deleted: XTROP
+           *** NOTE: Axis is in use by grid GXYT
+           *** NOTE: Not deleted: YTROP
+           *** NOTE: Axis is in use by grid GXYT
+           *** NOTE: Not deleted: ZAX
+           *** NOTE: Axis is in use by grid GFORMAT
+           *** NOTE: Not deleted: Y1
+           *** NOTE: Axis is in use by grid GSRC
+           *** NOTE: Not deleted: Y2
+           *** NOTE: Axis is in use by grid G10X2
+           *** NOTE: Not deleted: JMONTHS
+           *** 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: 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: 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: 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
+           *** NOTE: Axis is in use by grid G13
+           *** NOTE: Not deleted: YEVEN
+           *** NOTE: Axis is in use by grid EVEN
+           *** NOTE: Not deleted: YODD
+           *** NOTE: Axis is in use by grid G2
+           *** NOTE: Not deleted: ZEVEN
+           *** NOTE: Axis is in use by grid EVEN
+           *** NOTE: Not deleted: ZODD
+           *** NOTE: Axis is in use by grid G3
+           *** NOTE: Not deleted: TEVEN
+           *** NOTE: Axis is in use by grid EVEN
+           *** NOTE: Not deleted: TODD
+           *** NOTE: Axis is in use by grid G4
+           *** NOTE: Not deleted: XCOARSE
+           *** NOTE: Axis is in use by grid GCOARSE
+           *** NOTE: Not deleted: YFINE
+           *** NOTE: Axis is in use by grid GFINE
+           *** NOTE: Not deleted: YCOARSE
+           *** NOTE: Axis is in use by grid GCOARSE
+           *** NOTE: Not deleted: XFINE
+           *** NOTE: Axis is in use by grid GFINE
+           *** NOTE: Not deleted: TAX48
+           *** NOTE: Axis is in use by grid G48
+           *** NOTE: Not deleted: XEZ1
+           *** NOTE: Axis is in use by grid GEZ1
+           *** NOTE: Not deleted: XEZ2
+           *** NOTE: Axis is in use by grid GEZ2
+           *** NOTE: Not deleted: YEZ
+           *** NOTE: Axis is in use by grid GEZ2
+           *** NOTE: Not deleted: ZEZ
+           *** NOTE: Axis is in use by grid GEZ2
+           *** NOTE: Not deleted: XEZ3
+           *** NOTE: Axis is in use by grid GEZ3
+           *** NOTE: Not deleted: LON_FIELD_J_AXIS
+           *** NOTE: Axis is in use by grid LON_FIELD_GRID
+           *** NOTE: Not deleted: LAT_FIELD_I_AXIS
+           *** NOTE: Axis is in use by grid LAT_FIELD_GRID
+           *** NOTE: Not deleted: LAT_FIELD_J_AXIS
+           *** NOTE: Axis is in use by grid LAT_FIELD_GRID
+           *** NOTE: Not deleted: LON_FIELD_I_AXIS
+           *** NOTE: Axis is in use by grid LON_FIELD_GRID
+           *** NOTE: Not deleted: XIRREG
+           *** NOTE: Axis is in use by grid GIRREG
+           *** NOTE: Not deleted: TCENTURY
+           *** NOTE: Axis is in use by grid GCENTURY
+           *** NOTE: Not deleted: TAX5DAY
+           *** NOTE: Axis is in use by grid G5DAY
+           *** NOTE: Not deleted: XAX10
+           *** NOTE: Axis is in use by grid G5_10
+           *** NOTE: Not deleted: X5
+           *** NOTE: Axis is in use by grid GSRC
+           *** NOTE: Not deleted: Y5
+           *** NOTE: Axis is in use by grid G10X5
+           *** NOTE: Not deleted: TIME1
+           *** NOTE: Axis is in use by grid GHB1
+           *** NOTE: Not deleted: TIME2
+           *** NOTE: Axis is in use by grid GCQ1
+           *** NOTE: Not deleted: TAX
+           *** NOTE: Axis is in use by grid GFORMAT
+           *** NOTE: Not deleted: X4
+           *** NOTE: Axis is in use by grid G4D
+           *** NOTE: Not deleted: Y4
+           *** NOTE: Axis is in use by grid G4D
+           *** NOTE: Not deleted: Z4
+           *** NOTE: Axis is in use by grid G4D
+           *** NOTE: Not deleted: T4
+           *** NOTE: Axis is in use by grid G4D
+           *** NOTE: Not deleted: XCHANNEL
+           *** NOTE: Axis is in use by grid GSIGMA
+           *** NOTE: Not deleted: YRISE
+           *** NOTE: Axis is in use by grid GSIGMA
+           *** NOTE: Not deleted: ZLAYER
+           *** NOTE: Axis is in use by grid GSIGMA
+           *** NOTE: Not deleted: TIME
+           *** NOTE: Axis is in use by grid GSIGMA
+           *** NOTE: Not deleted: Z1
+           *** NOTE: Axis is in use by grid G1
+           *** NOTE: Not deleted: TCAL
+           *** NOTE: Axis is in use by grid GSRC
+           *** NOTE: Not deleted: XTROP
+           *** NOTE: Axis is in use by grid GXYT
+           *** NOTE: Not deleted: YTROP
+           *** NOTE: Axis is in use by grid GXYT
+           *** NOTE: Not deleted: ZAX
+           *** NOTE: Axis is in use by grid GFORMAT
+           *** NOTE: Not deleted: Y1
+           *** NOTE: Axis is in use by grid GSRC
+           *** NOTE: Not deleted: Y2
+           *** NOTE: Axis is in use by grid G10X2
+           *** NOTE: Not deleted: JMONTHS
+           *** 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: 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: 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
@@ -1347,14 +1364,14 @@ define axis/x=130e:500:10/modulo=360 xsub
  LISTing to file test_subspan_modulo.nc
  LISTing to file test_subspan_modulo.nc
  LISTing to file test_subspan_modulo.nc
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** 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
+           *** NOTE: Not using NetCDF strides for multi-cycle modulo
+           *** 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /THICKNESS ignored  on /SYMBOL=DOT
- *** NOTE: /SIZE= ignored  on /SYMBOL=DOT
+           *** NOTE: /THICKNESS ignored  on /SYMBOL=DOT
+           *** NOTE: /SIZE= ignored  on /SYMBOL=DOT
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1363,10 +1380,10 @@ define axis/x=130e:500:10/modulo=360 xsub
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY 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"
+           *** NOTE: Undecipherable value of netCDF attribute modulo on variable lon_moderr
+           *** NOTE: modulo = "j"
+           *** NOTE: Undecipherable value of netCDF attribute modulo on variable time_moderr
+           *** NOTE: modulo = "j"
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1409,9 +1426,9 @@ SHADE/L=1/LEV=0.01d sst
 POLYGON/KEY/LEV=0.01d/coord_ax=Z  PLMxpoly+PLMxpolymark, PLMypoly+PLMypolymark, PLMpolydata
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
- *** NOTE: Valid calendars are GREGORIAN NOLEAP    JULIAN    360_DAY   ALL_LEAP
- *** NOTE: A dummy axis of subscripts will be used
+           *** NOTE: Valid calendars are GREGORIAN NOLEAP    JULIAN    360_DAY   ALL_LEAP
+           *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
+           *** NOTE: A dummy axis of subscripts will be used
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ls: cannot access input.txt: No such file or directory
@@ -1421,10 +1438,10 @@ Replacing definition of axis XAX
 Replacing definition of axis YAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,units,dset,
+ **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,f0,units,dset,
             dsetnum,dsetpath,dsettitle,*size,*start,*end,
             *units,*axis,nc_scale,nc_offset,user_scale,user_offset,
-            calendar,dtype,xmod,tmod,status,isDepth,isReady
+            calendar,dtype,xmod,tmod,status,isDepth,isReady,defined
           axy, return=xx
 MESSAGE/CONTINUE `axy, return=xx`
  PERMANENT data cleared from memory
@@ -1435,7 +1452,7 @@ Replacing definition of axis XAX
  TEMPORARY data cleared from memory
 Replacing definition of axis YAX
 Replacing definition of axis Z1
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1445,8 +1462,8 @@ Replacing definition of axis Z1
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
- *** NOTE: Axis has repeated values -- micro-adjusting TIME
+           *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
+           *** NOTE: Axis has repeated values -- micro-adjusting TIME
  **ERROR: illegal limits: "DUMMY" does not exist at T=JAN-1990
           Axis extremes are T=DEC-1997:JAN-1998
 list/t=1-jan-1990 dummy
@@ -1517,7 +1534,7 @@ SHOW VAR/XML
  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: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** 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
@@ -1592,8 +1609,8 @@ Replacing definition of grid AGRID
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1629,9 +1646,9 @@ Replacing definition of axis YAX
  LISTing to file a.nc
 Replacing definition of axis TAX
 Replacing definition of axis TAX
- *** NOTE: Axis definition error on axis: TAX
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
+           *** NOTE: Axis definition error on axis: TAX
+           *** NOTE: Bounds given describe non-contiguous axis cells
+           *** NOTE: Using the LOWER bound specified for each axis cell
 Replacing definition of axis TAX
  **ERROR: improper grid or axis definition: BOUNDS specified do not correctly enclose coordinate points
 def axis/t/bounds tax={1.2,2,3.2,5,7,8.8,9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5}
@@ -1643,16 +1660,16 @@ def axis/t/bounds tax={0,2,3.2,5,7,8,9.9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,
 def axis/t/bounds tax={0,2,3.2,5,7,8,9.9}, {0.5,1.5,2.5,3.5,6.5,7.5,8.5,9.5}
  **ERROR: improper grid or axis definition: dimension of bounds (15) must be 2*N or N+1, N=number of axis coordinates (7)
 def axis/t/bounds tax={1.2,2,3.2,5,7,8.4,9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5,10.5}
- *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
+           *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
  **ERROR: improper grid or axis definition: BOUNDS specified do not correctly enclose coordinate points
 def axis/t/bounds tax= {12, 12.2, 36, 36.2, 60, 60.2, 84, 84.2, 108} , {0,24, 0,24, 24,48, 24,48, 48,72, 48,72, 72,96, 72,96, 96,120}
- *** NOTE: Not deleted: TAX
- *** NOTE: Axis is in use by grid GFORMAT
+           *** NOTE: Not deleted: TAX
+           *** NOTE: Axis is in use by grid GFORMAT
  LISTing to file a.nc
  LISTing to file a.nc
- *** NOTE: Cannot have both /BOUNDS and /RIGID Ignoring /RIGID
+           *** NOTE: Cannot have both /BOUNDS and /RIGID Ignoring /RIGID
  LISTing to file a.nc
- *** NOTE: Cannot have both /BOUNDS and /EDGES Ignoring /EDGES
+           *** NOTE: Cannot have both /BOUNDS and /EDGES Ignoring /EDGES
  LISTing to file a.nc
 Replacing definition of axis XAX
 Replacing definition of axis ZAX
@@ -1661,19 +1678,19 @@ Replacing definition of axis TAX
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: MONTH_REG
- *** NOTE: Write the data initially with the /BOUNDS qualifier
+           *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
+           *** NOTE: This will result in incorrect box sizes on record axis: MONTH_REG
+           *** NOTE: Write the data initially with the /BOUNDS qualifier
  LISTing to file a.nc
  LISTing to file a.nc
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
- *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
- *** NOTE: Substituting coordinate midpoints
- *** 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
+           *** NOTE: Axis definition error on axis: TGAP
+           *** NOTE: Bounds given describe non-contiguous axis cells
+           *** NOTE: Using the LOWER bound specified for each axis cell
+           *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
+           *** NOTE: Substituting coordinate midpoints
+           *** 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of grid TGRID
@@ -1681,16 +1698,16 @@ Replacing definition of grid TGRID
 def axis/t/cal=nogood/t=1-jan-2000:1-jan-2010:1/units=months tax
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Units  not recognized: something
- *** NOTE: They will not be convertible:
- *** NOTE: Units  not recognized: something
- *** NOTE: They will not be convertible:
- *** NOTE: Units  not recognized: zorro
- *** NOTE: They will not be convertible:
- *** NOTE: Units  not recognized for T axis: meters
- *** NOTE: They will not be convertible
- *** NOTE: Units  not recognized for Y axis: seconds
- *** NOTE: They will not be convertible
+           *** NOTE: Units  not recognized: something
+           *** NOTE: They will not be convertible:
+           *** NOTE: Units  not recognized: something
+           *** NOTE: They will not be convertible:
+           *** NOTE: Units  not recognized: zorro
+           *** NOTE: They will not be convertible:
+           *** NOTE: Units  not recognized for T axis: meters
+           *** NOTE: They will not be convertible
+           *** NOTE: Units  not recognized for Y axis: seconds
+           *** NOTE: They will not be convertible
 Replacing definition of axis TAX
 Replacing definition of axis XAX
  PERMANENT data cleared from memory
@@ -1703,7 +1720,7 @@ Replacing definition of axis XAX
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
 Replacing definition of axis TAX
 Replacing definition of axis ZAX
  PERMANENT data cleared from memory
@@ -1770,7 +1787,7 @@ plot/sym/siz=0.3 0*t[gt=vwnd]
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
 Replacing definition of axis TAX
  LISTing to file aa.nc
  LISTing to file cc.nc
@@ -1782,27 +1799,27 @@ 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: Valid argument $2 choices are: a|b|c|d|
+           *** 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: Valid argument $1 choices are: xxxxx|goodbye
+           *** 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: Valid argument $3 choices are: hello|goodbye
+           *** 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: Valid symbol test2 choices are: hello|bye|
+           *** 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: Valid symbol t2 choices are: solong>really hello|bye|
+           *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1826,29 +1843,28 @@ Replacing definition of axis XQ
 Replacing definition of axis YQ
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Evenly spaced axis has edges definition: TCOADS - ignored
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis TIME1
- *** NOTE: grid  used by data set coads_clim
- *** NOTE: Redefinition may alter apparent contents of data set
+           *** NOTE: grid GHB2 used by data set coads_clim
+           *** NOTE: Redefinition may alter apparent contents of data set
 Replacing definition of axis TIME1
- *** NOTE: grid  used by data set coads_clim
- *** NOTE: Redefinition may alter apparent contents of data set
+           *** NOTE: grid GHB2 used by data set coads_clim
+           *** NOTE: Redefinition may alter apparent contents of data set
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis COADSX.ILLEGAL
- *** NOTE: grid  used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
- *** NOTE: grid  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
+           *** 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  used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
- *** NOTE: grid  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
+           *** NOTE: grid GEX3 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
@@ -1883,10 +1899,10 @@ Replacing definition of axis TIME
 Replacing definition of axis TAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
  **ERROR: improper grid or axis definition: error in start,end,delta
 DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/t myt
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
  **ERROR: improper grid or axis definition: error in start,end,delta
 DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/T/CALENDAR=noleap myt
  PERMANENT data cleared from memory
@@ -1972,7 +1988,7 @@ sho att/all .
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1981,26 +1997,26 @@ sho att/all .
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  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 temp.pp
- *** NOTE: Changing the length  of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.some_text
+           *** NOTE: Changing the value of attribute temp.pp
+           *** NOTE: Changing the length  of attribute temp.pp
+           *** NOTE: Changing the value of attribute temp.some_text
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute temp.long_name
- *** NOTE: Changing the value of attribute temp.units
- *** NOTE: Changing the value of attribute temp.missing_value
- *** NOTE: Changing the value of attribute temp.missing_value
+           *** NOTE: Changing the value of attribute temp.long_name
+           *** NOTE: Changing the value of attribute temp.units
+           *** NOTE: Changing the value of attribute temp.missing_value
+           *** NOTE: Changing the value of attribute temp.missing_value
  LISTing to file a.nc
  LISTing to file a.nc
- *** NOTE: Changing the value of attribute (PSZT1).positive
- *** NOTE: Changing the type of attribute (coadsx).modulo
- *** NOTE: Changing the value of attribute (coadsx).modulo
- *** NOTE: Changing the value of attribute (TIME4).time_origin
+           *** NOTE: Changing the value of attribute (PSZT1).positive
+           *** NOTE: Changing the type of attribute (coadsx).modulo
+           *** NOTE: Changing the value of attribute (coadsx).modulo
+           *** NOTE: Changing the value of attribute (TIME4).time_origin
  **ERROR: command syntax: enclose coordinate variable name in parentheses
 list coadsx.units
  **ERROR: variable unknown or not in data set: COADSX.UNITS
@@ -2011,17 +2027,17 @@ set att (COADSX81_81).axis = "Z"
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute temp.pp
- *** NOTE: Changing the length  of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.some_text
- *** NOTE: Changing the type of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.pp
- *** NOTE: Changing the type of attribute temp.some_text
- *** NOTE: Changing the value of attribute temp.some_text
- *** NOTE: Changing the value of attribute temp.long_name
- *** NOTE: Changing the value of attribute temp.units
- *** NOTE: Changing the type of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.pp
+           *** NOTE: Changing the value of attribute temp.pp
+           *** NOTE: Changing the length  of attribute temp.pp
+           *** NOTE: Changing the value of attribute temp.some_text
+           *** NOTE: Changing the type of attribute temp.pp
+           *** NOTE: Changing the value of attribute temp.pp
+           *** NOTE: Changing the type of attribute temp.some_text
+           *** NOTE: Changing the value of attribute temp.some_text
+           *** NOTE: Changing the value of attribute temp.long_name
+           *** NOTE: Changing the value of attribute temp.units
+           *** NOTE: Changing the type of attribute temp.pp
+           *** NOTE: Changing the value of attribute temp.pp
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file a.nc
@@ -2057,10 +2073,10 @@ Replacing definition of grid MYGRID
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
  LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
@@ -2069,27 +2085,27 @@ Replacing definition of grid MYGRID
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file a.nc
- *** NOTE: Changing the value of attribute (COADSX).point_spacing
- *** NOTE: Changing the value of attribute (COADSY).point_spacing
+           *** NOTE: Changing the value of attribute (COADSX).point_spacing
+           *** NOTE: Changing the value of attribute (COADSY).point_spacing
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
 NetCDF: Numeric conversion not representable (OPeNDAP/netCDF Error code -60)
  data in attribute missing_value not representable in output type NC_INT
 LIST/FORMAT=CDF/file=a.nc/clobber/x=132w/k=1 temp
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  **ERROR: unknown or invalid argument: Can SET VARIABLE/OUTTYPE=INPUT, DOUBLE, FLOAT, INT, SHORT, BYTE
 set var/outtype=char broiled
  **ERROR: unknown or invalid argument: Can SET VARIABLE/OUTTYPE=INPUT, DOUBLE, FLOAT, INT, SHORT, BYTE
 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 (PSXT1).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 (PSYT1).units
+           *** NOTE: Changing the value of attribute (PSXT1).units
+           *** NOTE: Changing the value of attribute (PSYT1).units
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2100,22 +2116,23 @@ set var/outtype=garbage broiled
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis X2AX
- *** NOTE: Changing the value of attribute (z4ax).positive
+           *** NOTE: Changing the value of attribute (z4ax).positive
  LISTing to file string4d.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute (TIME7).units
- *** NOTE: Changing the value of attribute (TIME7).units
- *** NOTE: Changing the value of attribute (TIME7).time_origin
- *** NOTE: Changing the value of attribute (TIME7).time_origin
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: Changing the value of attribute (TIME7).units
+           *** NOTE: Changing the value of attribute (TIME7).units
+           *** NOTE: Changing the value of attribute (TIME7).time_origin
+           *** NOTE: Changing the value of attribute (TIME7).time_origin
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
 Replacing definition of axis TIME
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
 syntax error, unexpected WORD_STRING, expecting WORD_WORD
 context: Error { code = 404; message = "data/PMEL/COADS/coads_nothing.cdf"^;};
+CURL Error: Couldn't resolve host name
 curl error details: 
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2123,17 +2140,17 @@ curl error details:
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY 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 # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
  Using every   3th vector in the X direction
  Using every   4th vector in the Y direction
- *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
+           *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **TMAP ERR: non-existent or not on line
              this_is_not_a_file.nc
 SET DAT/FORM=CDF this_is_not_a_file.nc
  **Internet Data error
-             NetCDF: 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
@@ -2178,7 +2195,7 @@ shade sst[t=@AVE,Z=@ave]
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 360.00 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 360.00 days
  LISTing to file t3file.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2189,18 +2206,18 @@ shade sst[t=@AVE,Z=@ave]
  LISTing to file subdir/0000_a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
 Replacing definition of axis TAX
  LISTing to file a.nc
- *** NOTE: Not deleted: TAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: cannot parse "units since date", date= "event"; leaving units string
+           *** NOTE: Not deleted: TAX
+           *** NOTE: Axis is in use by grid GFORMAT
+           *** NOTE: cannot parse "units since date", date= "event"; leaving units string
  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
- *** NOTE: Invalid I axis limits ignored: TEMP
+           *** NOTE: Invalid I axis limits ignored: TEMP
  **ERROR: dimensions improperly specified: specified data is not a line
            - its a 2D region: "plot/i=100/k=1 temp[x=122.5W]"
 plot/i=100/k=1 temp[x=122.5W]
@@ -2247,10 +2264,10 @@ Replacing definition of axis XAX
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
 Replacing definition of axis TIME9
- *** NOTE: grid  used by data set coads_climatology
- *** NOTE: Redefinition may alter apparent contents of data set
+           *** NOTE: grid GSQ1 used by data set coads_climatology
+           *** NOTE: Redefinition may alter apparent contents of data set
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis TIME
@@ -2276,9 +2293,9 @@ cancel axis/stride COADSX
 set axis/stride=2/offset=4 COADSX
  **ERROR: invalid command: not a strided axis: COADSX
 cancel axis/stride COADSX
- *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
+           *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
  LISTing to file d2.nc
- *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
+           *** 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
  PERMANENT data cleared from memory
@@ -2294,13 +2311,14 @@ set axis/stride=2 NORMAL
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
- *** NOTE: They will not be convertible:
+           *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
+           *** NOTE: They will not be convertible:
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  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
@@ -2308,31 +2326,31 @@ curl error details:
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
- *** NOTE: Axis has repeated values -- micro-adjusting TIME
- *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
- *** NOTE: Valid calendars are GREGORIAN NOLEAP    JULIAN    360_DAY   ALL_LEAP
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
- *** 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"
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
- *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
- *** NOTE: They will not be convertible:
- *** NOTE: regarding ./climatological_axes.cdf ...
- *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
- *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
- *** NOTE: A dummy axis of subscripts will be used
- *** 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
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
+           *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
+           *** NOTE: Axis has repeated values -- micro-adjusting TIME
+           *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
+           *** NOTE: Substituting coordinate midpoints
+           *** NOTE: Valid calendars are GREGORIAN NOLEAP    JULIAN    360_DAY   ALL_LEAP
+           *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
+           *** NOTE: A dummy axis of subscripts will be used
+           *** NOTE: Axis definition error on axis: TGAP
+           *** NOTE: Bounds given describe non-contiguous axis cells
+           *** NOTE: Using the LOWER bound specified for each axis cell
+           *** 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"
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
+           *** NOTE: They will not be convertible:
+           *** NOTE: regarding ./climatological_axes.cdf ...
+           *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
+           *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
+           *** NOTE: A dummy axis of subscripts will be used
+           *** 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
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -2456,8 +2474,8 @@ Replacing definition of axis TIME
  LISTing to file b.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Units on axis "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
+           *** NOTE: Units on axis "ENS" are not recognized: count
+           *** NOTE: They will not be convertible:
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file 1a.dat
@@ -2513,31 +2531,31 @@ Replacing definition of grid GG
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
+           *** NOTE: @NGD of string variable, counting null strings as missing
+           *** NOTE: @NBD of string variable, counting null strings as missing
 Replacing definition of axis XAX
 Replacing definition of axis YAX
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
+           *** NOTE: @NGD of string variable, counting null strings as missing
+           *** NOTE: @NGD of string variable, counting null strings as missing
+           *** NOTE: @NGD of string variable, counting null strings as missing
 Replacing definition of axis ZAX
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
+           *** NOTE: @NBD of string variable, counting null strings as missing
+           *** NOTE: @NBD of string variable, counting null strings as missing
+           *** NOTE: @NBD of string variable, counting null strings as missing
 Replacing definition of axis TAX
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
+           *** NOTE: @NGD of string variable, counting null strings as missing
+           *** NOTE: @NGD of string variable, counting null strings as missing
+           *** NOTE: @NGD of string variable, counting null strings as missing
 Replacing definition of axis XAX
 Replacing definition of axis YAX
 Replacing definition of axis ZAX
 Replacing definition of axis TAX
- *** NOTE: @NBD 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
- *** 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
+           *** NOTE: @NBD 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
+           *** 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -2599,9 +2617,9 @@ Replacing definition of grid G1
  LISTing to file test_abs.cdf
  LISTing to file test_abs.cdf
  LISTing to file test_abs.cdf
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
- *** NOTE: Write the data initially with the /BOUNDS qualifier
+           *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
+           *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
+           *** NOTE: Write the data initially with the /BOUNDS qualifier
  LISTing to file test2.cdf
  LISTing to file FL.cdf
  LISTing to file FTLON.cdf
@@ -2623,47 +2641,47 @@ list/format=cdf/keep_axnames/append/file=test_abs.cdf ijkl[k=@ave]
              disordered output coordinate value:         363  Axis: TCENTURY
 list/format=cdf/keep_axnames/l=13/append/file=test_abs.cdf l1
  LISTing to file FI.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
  LISTing to file test_fil.cdf
  LISTing to file test_fil.cdf
@@ -2675,80 +2693,80 @@ list/format=cdf/keep_axnames/l=13/append/file=test_abs.cdf l1
  LISTing to file test_fil.cdf
  LISTing to file test_fil.cdf
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf ijk
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf ikl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf ijl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSYT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf jkl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXU doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf ijkl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=1:50/l=2:3 ijl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=51:100/l=2:3 ijl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXU doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=30:40/k=5/l=1:3 ijkl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSZT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf iavejkl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXU doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf ijavekl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXU doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf ijkavel
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXU doesnt match CDF file
 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
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file a.nc
@@ -2772,8 +2790,8 @@ Replacing definition of axis TSEC
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis CAXIS
- *** NOTE: grid  used by data set grads_bug_file
- *** NOTE: Redefinition may alter apparent contents of data set
+           *** NOTE: grid GMY1 used by data set grads_bug_file
+           *** NOTE: Redefinition may alter apparent contents of data set
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -2784,15 +2802,15 @@ Replacing definition of axis CAXIS
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
 Replacing definition of axis TAX
- *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
- *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
+           *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
+           *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis ZAXLEVITR
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis ZAXLEVITR
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file xz.nc
@@ -2857,22 +2875,22 @@ 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
+           *** NOTE: Changing the value of attribute sst.history
  PERMANENT data cleared from memory
  TEMPORARY 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 "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
+           *** NOTE: Units on axis "ENS" are not recognized: count
+           *** NOTE: They will not be convertible:
  LISTing to file mypack.nc
- *** NOTE: LON1_15: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: LAT1800_1800: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: ENS: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: TIME13: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: Units on axis "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
+           *** NOTE: LON1_15: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+           *** NOTE: LAT1800_1800: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+           *** NOTE: ENS: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+           *** NOTE: TIME13: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+           *** NOTE: Units on axis "ENS" are not recognized: count
+           *** NOTE: They will not be convertible:
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -2917,8 +2935,8 @@ Re-defining viewport V8
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file nc4_deflate4.nc
- *** NOTE: NetCDF Classic style cannot set compression, ignoring /DEFLATE
- *** NOTE: NetCDF Classic style cannot set chunking, ignoring /*CHUNK
+           *** NOTE: NetCDF Classic style cannot set compression, ignoring /DEFLATE
+           *** NOTE: NetCDF Classic style cannot set chunking, ignoring /*CHUNK
  LISTing to file nc4_nodeflate3.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2929,13 +2947,13 @@ Re-defining viewport V8
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file nc4_inttemp_classic.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
  LISTing to file nc4_inttemp_set_list_deflate_chunk.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
  LISTing to file nc4_inttemp_shuffle_set_list_deflate_chunk.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
  LISTing to file nc4_inttemp_set_classic.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
  LISTing to file nc4_deflate4_t1.nc
  **TMAP ERR: syntax error in string
              If ChunkSize is set for any dimension of var, must set for all its dimensions
@@ -2950,8 +2968,8 @@ LIST/FORMAT=CDF/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Not deleted: X10
- *** NOTE: Axis is in use by grid G10X5
+           *** NOTE: Not deleted: X10
+           *** NOTE: Axis is in use by grid G10X5
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -2963,11 +2981,11 @@ LIST/FORMAT=CDF/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of grid MYGRID
- *** NOTE: Axis reset to be regular (evenly-spaced): MYX
- *** NOTE: Axis is already regular: MYX
+           *** 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
+           *** NOTE: Axis reset to be regular (evenly-spaced): MYX1
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  Use the GO command to name a file of FERRET commands to be executed.
@@ -2994,7 +3012,7 @@ Replacing definition of grid MYGRID
      e.g.   yes? GO filename
  
  Use "GO/HELP filename" to read documentation in  the file to be executed.
- *** NOTE: No active redirects to cancel
+           *** NOTE: No active redirects to cancel
  Use the GO command to name a file of FERRET commands to be executed.
      e.g.   yes? GO filename
  
@@ -3003,14 +3021,14 @@ Replacing definition of grid MYGRID
      e.g.   yes? GO filename
  
  Use "GO/HELP filename" to read documentation in  the file to be executed.
- *** NOTE: Axis is already regular: MYAXIS
+           *** NOTE: Axis is already regular: MYAXIS
  **ERROR: variable unknown or not in data set: GARBAGE
 show grid garbage
  Use the GO command to name a file of FERRET commands to be executed.
      e.g.   yes? GO filename
  
  Use "GO/HELP filename" to read documentation in  the file to be executed.
- *** NOTE: stderr is not redirected
+           *** NOTE: stderr is not redirected
  Use the GO command to name a file of FERRET commands to be executed.
      e.g.   yes? GO filename
  
@@ -3063,11 +3081,6 @@ Replacing definition of axis YAX
  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
- *** NOTE: 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.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb [...]
- *** NOTE: exceeds expected length. Maximum characters: 2048
  LISTing to file aa.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3095,12 +3108,15 @@ Replacing definition of axis YAX_DUP_AXNAMES
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** 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
+           *** 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
@@ -3119,7 +3135,7 @@ list/L=15:20 tax_year(t[gt=tvar],tvar)
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis lev
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis lev
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis XAX
@@ -3135,20 +3151,20 @@ Replacing definition of axis TAXIS
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis XAX
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.030, to avoid running off page.
+           *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
+           *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
+           *** NOTE: Adjusting Y-axis label size from 0.100 to 0.030, to avoid running off page.
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
+           *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -3210,10 +3226,10 @@ Replacing definition of axis TAXIS
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY 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 ...
+           *** 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 ...
 Replacing definition of axis TNEW
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3290,34 +3306,32 @@ 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
+           *** 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
- **ERROR: error defining aggregate dataset: Aggregate dataset not defined
-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: 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
- *** 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
+           *** 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -3328,8 +3342,8 @@ define data/agg windy = 1,2
  TEMPORARY 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: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
+           *** NOTE: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
+           *** NOTE: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -3354,7 +3368,7 @@ SET DAT/FORM=CDF ./z1.nc
  TEMPORARY data cleared from memory
  LISTing to file mytype.nc
  LISTing to file mytype.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
  LISTing to file mytype.nc
  LISTing to file mytype.nc
  LISTing to file mytype.nc
@@ -3374,7 +3388,7 @@ SET DAT/FORM=CDF ./z1.nc
  TEMPORARY data cleared from memory
  LISTing to file mytype.nc
  LISTing to file mytype.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
  LISTing to file mytype.nc
  LISTing to file mytype.nc
  LISTing to file mytype.nc
@@ -3390,7 +3404,7 @@ LIST/FORMAT=CDF/clobber/file=mytype.nc my_data
  LISTing to file mytype.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- **ERROR: improper grid or axis definition: data for DEFINE AXIS/FROM_VARIABLE is not monotonic at index 12
+ **ERROR: improper grid or axis definition: data for DEFINE AXIS/FROM_VARIABLE is not monotonically increasing at index 12
 define axis/t/units=days tax = tvar
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3470,8 +3484,8 @@ Replacing definition of axis AXI
 Replacing definition of axis AXI_COARSE
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: unrepairable repeated axis coords on axis trdim at subscript 2
- *** NOTE: A dummy axis of subscripts will be used
+           *** NOTE: unrepairable repeated axis coords on axis trdim at subscript 2
+           *** NOTE: A dummy axis of subscripts will be used
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file sst_new.nc
@@ -3490,9 +3504,9 @@ Replacing definition of axis ZAX
 Replacing definition of axis XIRREG
  LISTing to file a.nc
  LISTing to file a.nc
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
+           *** NOTE: Axis definition error on axis: TGAP
+           *** NOTE: Bounds given describe non-contiguous axis cells
+           *** NOTE: Using the LOWER bound specified for each axis cell
  LISTing to file a.nc
  LISTing to file a.nc
  PERMANENT data cleared from memory
@@ -3502,8 +3516,8 @@ Replacing definition of axis XIRREG
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY 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
+           *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
+           *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
  **ERROR: command syntax: COLOR
           /COLOR must have an argument for PLOT/OVERLAY
 plot/i=1:100/over/COLOR 0.6*sin(i/7)
@@ -3513,9 +3527,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: 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
  **ERROR: unknown defining grid: G=NOEXIST
 list b
  **ERROR: command syntax: 45S
@@ -3527,6 +3541,9 @@ 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
+Replacing definition of axis X1
+Replacing definition of axis Y1
+Replacing definition of axis ZAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -3539,7 +3556,7 @@ list f
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute a.ival
+           *** NOTE: Changing the value of attribute a.ival
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **TMAP ERR: non-existent or not on line
@@ -3559,8 +3576,8 @@ SET DAT/FORM=CDF snoopy.dat
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: regarding ./climatological_axes.cdf ...
- *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
+           *** NOTE: regarding ./climatological_axes.cdf ...
+           *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3599,8 +3616,8 @@ LIST/FORMAT=CDF/clobber/keep/file=nc b,a[d=1]
 shade b
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute v1.long_name
- *** NOTE: Changing the value of attribute v1.units
+           *** NOTE: Changing the value of attribute v1.long_name
+           *** NOTE: Changing the value of attribute v1.units
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: attribute undefined or invalid attribute name: temp.noexist[d=levitus_climatology]
@@ -3620,9 +3637,9 @@ set var/name=psi myvar
 set var/name=diff w
  PERMANENT data cleared from memory
  TEMPORARY 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
+           *** NOTE: Axis definition error on axis: MONTH_IRREG. Bounds describe cells that overlap one another
+           *** NOTE: Error in bounds "MONTH_IRREG_bnds" or bounds do not enclose point on axis MONTH_IRREG
+           *** NOTE: Substituting coordinate midpoints
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis TAX
@@ -3652,12 +3669,12 @@ list tax_datestring (tt[L=3], tt, 5)
 list tax_datestring (tt[L=3], "my_tax", "minutes")
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Error in bounds "TAX_BB_PTSPAC_bnds" or bounds do not enclose point on axis TAX_BB_PTSPAC
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: Error in bounds "TAX_BB_EVEN_NOENC_bnds" or bounds do not enclose point on axis TAX_BB_EVEN_NOENC
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: Error in bounds "TAX_BB_IRR_bnds" or bounds do not enclose point on axis TAX_BB_IRR
- *** NOTE: Substituting coordinate midpoints
+           *** NOTE: Error in bounds "TAX_BB_PTSPAC_bnds" or bounds do not enclose point on axis TAX_BB_PTSPAC
+           *** NOTE: Substituting coordinate midpoints
+           *** NOTE: Error in bounds "TAX_BB_EVEN_NOENC_bnds" or bounds do not enclose point on axis TAX_BB_EVEN_NOENC
+           *** NOTE: Substituting coordinate midpoints
+           *** NOTE: Error in bounds "TAX_BB_IRR_bnds" or bounds do not enclose point on axis TAX_BB_IRR
+           *** NOTE: Substituting coordinate midpoints
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: command syntax: must be a constant COS(1)
@@ -3698,17 +3715,17 @@ Replacing definition of axis TAX
 Replacing definition of axis XAXIS
  **ERROR: request exceeds memory setting: 2369 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.
+           *** 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.
 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.
+           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Ambiguous coordinates on X axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
- *** NOTE: Ambiguous coordinates on Y axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
+           *** NOTE: Ambiguous coordinates on X axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
+           *** NOTE: Ambiguous coordinates on Y axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
  LISTing to file aa.nc
  LISTing to file bb.nc
  LISTing to file a.nc
@@ -3749,6 +3766,12 @@ shade a
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ **ERROR: value out of legal range: Negative argument to function. Argument 3 : SUBSTRING
+list substring("hello",1,-2)
+ **ERROR: value out of legal range: Negative argument to function. Argument 3 : SUBSTRING
+list substring("hello",1,-3)
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file anew_global.nc
@@ -3763,9 +3786,10 @@ Replacing definition of axis X2
 Replacing definition of axis Y2
  PERMANENT data cleared from memory
  TEMPORARY 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
+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
  **ERROR: unknown defining grid: G=NOEXIST
 list b
  **ERROR: command syntax: 45S
@@ -3791,6 +3815,238 @@ poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ LISTing to file aa.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis TIME
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY 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: unknown data set: BAD_D
+stat/l=1/x=180/y=0 a
+ 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
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: invalid command: REPEAT what ?
+repeat/range=1:2/name=row
+ **ERROR: invalid command: REPEAT what ?
+repeat/range=1:2/name=row
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAX
+Replacing definition of axis YAX
+ LISTing to file a.nc
+           *** NOTE: Not deleted: XAX
+           *** NOTE: Axis is in use by grid GFORMAT
+           *** NOTE: Not deleted: YAX
+           *** NOTE: Axis is in use by grid GFORMAT
+Replacing definition of axis TREDEF
+           *** NOTE: grid GSI1 used by data set a
+           *** NOTE: Redefinition may alter apparent contents of data set
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: invalid command: illegal format type - must be "GIF"
+          frame/format=hdf/file=a.hdf
+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
+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
+ 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
@@ -3877,5 +4133,5 @@ vector/i=1:10/j=1:20/nolabel i/j
 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 Oct 29 16:04:41 PDT 2014
+           *** NOTE: Cannot create new windows when batch mode set
+Ended at Mon Nov 9 15:04:17 PST 2015
diff --git a/bench/ansley_official.rhel6-64_log b/bench/ansley_official.rhel6-64_log
index f8289ca..b62e1b4 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 manke oerdnewp 79254903 Oct 29 16:02 /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
 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: bug 2215
+Note: ticket 2322: err msgs with SHOW DATA nofile to show the file name
 ncdump output will be in all_ncdump.out, and appended to this log file 
 ***** Restricting Ferret paths to bench directory *****
 FER_DAT=.
@@ -14,15 +14,12 @@ FER_DESCR=.
 FER_DIR=.
 FER_DSETS=.
 FER_EXTERNAL_FUNCTIONS=/home/users/ansley/build/current_trunk/FERRET/external_functions/ext_func
-FER_FONTS=/home/users/tmap/ferret/rhel6-x86_64-linux/ppl/fonts
-FER_GO=. /home/users/tmap/ferret/rhel6-x86_64-linux/go /home/users/tmap/ferret/rhel6-x86_64-linux/examples /home/users/tmap/ferret/rhel6-x86_64-linux/contrib /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
 FER_GRIDS=.
-FER_LIBS=/home/users/tmap/ferret/rhel6-x86_64-linux/lib
-FER_LINK_DIR=/home/users/tmap/ferret_link/linux
-FER_PALETTE=. /home/users/tmap/ferret/rhel6-x86_64-linux/ppl
-FER_WEB_BROWSER=firefox
+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 Wed Oct 29 16:02:58 PDT 2014
+Beginning at Mon Nov 9 15:02:29 PST 2015
 ! BN500_ALL.JNL
 ! - run all the benchmark tests
 ! - ordered (more or less) from least to most complex
@@ -127,6 +124,7 @@ Beginning at Wed Oct 29 16:02:58 PDT 2014
 ! 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
  
 ! Include this statement to compare the outupt of 6D Ferret with
 ! previous 4D benchmark logs.
@@ -303,10 +301,10 @@ SHOW DATA/FULL
  name     title                             I         J         K         L         M         N
  P        my P variable                   1:99999999  1:99999999  1:99999999  1:99999999  1:99999999  1:99999999
                on grid ABSTRACT with -1.E+34 for missing data
-             X=0.5:1.E+08  Y=0.5:1.E+08  Z=0.5:1.E+08  E=0.5:1.E+08  F=0.5:1
+             X=0.5:1.E+08  Y=0.5:1.E+08  Z=0.5:1.E+08  E=0.5:1.E+08  F=0.5:1.E+08  
  Q        Q                               1:99999999  1:99999999  1:99999999  1:99999999  1:99999999  1:99999999
                on grid ABSTRACT with -1.E+34 for missing data
-             X=0.5:1.E+08  Y=0.5:1.E+08  Z=0.5:1.E+08  E=0.5:1.E+08  F=0.5:1
+             X=0.5:1.E+08  Y=0.5:1.E+08  Z=0.5:1.E+08  E=0.5:1.E+08  F=0.5:1.E+08  
  
  /FORMAT = UNF
  /SKIP = 2
@@ -424,7 +422,8 @@ SHOW MODES
       LATIT_LABEL      SET               1
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
-      6D_LAB           SET
+      E_LABEL          SET               1
+      F_LABEL          SET               1
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -443,7 +442,8 @@ SHOW MODES
       NODATA_LAB       SET
       SHRINK_YLAB   CANCELLED
       CURVILINEAR   CANCELLED
-      SIGMA         CANCELLED
+      LAYERZ        CANCELLED
+      6D_LAB           SET
 SET MODE IGNORE_ERROR
 SHOW MODES
       MODE            STATE        ARGUMENT
@@ -457,7 +457,8 @@ SHOW MODES
       LATIT_LABEL      SET               1
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
-      6D_LAB           SET
+      E_LABEL          SET               1
+      F_LABEL          SET               1
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -476,7 +477,8 @@ SHOW MODES
       NODATA_LAB       SET
       SHRINK_YLAB   CANCELLED
       CURVILINEAR   CANCELLED
-      SIGMA         CANCELLED
+      LAYERZ        CANCELLED
+      6D_LAB           SET
 CANCEL MODE IGNORE_ERROR
 SHOW MODES
       MODE            STATE        ARGUMENT
@@ -490,7 +492,8 @@ SHOW MODES
       LATIT_LABEL      SET               1
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
-      6D_LAB           SET
+      E_LABEL          SET               1
+      F_LABEL          SET               1
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -509,7 +512,8 @@ SHOW MODES
       NODATA_LAB       SET
       SHRINK_YLAB   CANCELLED
       CURVILINEAR   CANCELLED
-      SIGMA         CANCELLED
+      LAYERZ        CANCELLED
+      6D_LAB           SET
 SHOW MODE STUPID
       MODE            STATE        ARGUMENT
       STUPID        CANCELLED
@@ -1077,8 +1081,8 @@ say "demonstrate that these leading blanks:\
 demonstrate that these leading blanks:       really are preserved
  
 ! continuation prompts are ignored, too
-yes? say "demonstrate that these leading blanks:\
-...?        really are preserved"
+say "demonstrate that these leading blanks:\
+       really are preserved"
 demonstrate that these leading blanks:       really are preserved
  
 ! weird little blank line inputs
@@ -1145,7 +1149,7 @@ message/continue here is: $1"some text" and some more stuff
 here is: hello and some more stuff
  
 message/cont here is a big $1 and $3&some text&      ! default provided
- !-> message/cont here is a big hello and some text      ! default provided
+ !-> message/cont here is a big hello and some text
 here is a big hello and some text
  
 message/cont $3			! error - no default
@@ -1253,7 +1257,7 @@ go bn_dollar.sub ((x+y),(x-5))	! ignore comma, get single arg
 ! V510 3/00
 set mode ignore
   message/continue "$1"                ! final quote used to get mis-applied
- !-> message/continue "hello"                ! final quote used to get mis-applied
+ !-> message/continue "hello"
 hello
 set mode/last ignore
 go bn_dollar.sub \"hello\"                 ! quotations as part of argument
@@ -1322,7 +1326,7 @@ message/continue "2 squared + 2 squared =`2^2` + `2+2`"
 2 squared + 2 squared =4 + 4
  
 message/continue "50/0 =`50/0`"	! invalid result
- !-> message/continue "50/0 =bad"	! invalid result
+ !-> message/continue "50/0 =bad"
 50/0 =bad
  
 repeat/i=1:3 message/continue "I=`I`"
@@ -1350,7 +1354,7 @@ I=7
 !cancel region/X ! removed - temporary experiment 3/00 *sh*
  
 message/continue "2+2=``2+2``"	! double grave accents get condensed
- !-> message/continue "2+2=`2+2`"	! double grave accents get condensed
+ !-> message/continue "2+2=`2+2`"
 2+2=`2+2`
  
 message/continue A default substitution: $9"default string|2+2=`2+2`"
@@ -1370,7 +1374,7 @@ message/continue "1/300=`1/300,p=5`"
  !-> message/continue "1/300=0.0033333"
 1/300=0.0033333
 message/continue "1/300=`1/300,p=-5`"	! decimal places
- !-> message/continue "1/300=0.00333"	! decimal places
+ !-> message/continue "1/300=0.00333"
 1/300=0.00333
 message/continue "1/300=`1/300 , precision=10`"
  !-> message/continue "1/300=0.003333333333"
@@ -1581,26 +1585,37 @@ 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:  2 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ found   A        M: 10 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  !-> MESSAGE/CONTINUE 2
 2
-say `a[i=100:200],return=isize`    ! WRONG! because full evaluation is bypassed
+say `a[i=100:200],return=isize`    ! correct starting with Ferret v694 (tkt 2213)
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- !-> MESSAGE/CONTINUE 101
-101
+ eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    A        C:  6 dset:   0 I:  100  200  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    (C01,V08 C:  8 dset:   0 I:  100  200  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ found   (C11,V08 M:  5 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ !-> MESSAGE/CONTINUE 5
+5
 set mode/last diagnostic
  
 ! deliberate errors
@@ -1965,6 +1980,19 @@ CORRECT:sym sub
 ---->CORRECT
 ---->CORRECT again
 ---->nested: all is well after multi-line IF
+CORRECT
+CORRECT
+LOOP=1
+more
+LOOP=2
+more
+LOOP=1
+LOOP=2
+semicolon group
+more
+semicolon group
+CORRECT
+WE SEE THIS CUZ OF IMPLIED CLOSE TO THE PREVIOUS
 >>> --> DELIBERATE WARNING: UNCLOSED IF in NESTED GO FILE<<<
 ---->... now inside of nested IF clause
 ---->CORRECT
@@ -1976,10 +2004,6 @@ IF yes THEN
   say ---->... now inside of IF clause
 ---->... now inside of IF clause
  
- 
- 
- 
- 
 GO bn_reset
 cancel mode verify
 GO bn_expressions
@@ -10450,18 +10474,18 @@ show symbols/all
 PPL$XPIXEL = "406"
 PPL$YPIXEL = "406"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.93"
-FERRET_PLATFORM = "Linux 2.6.32-504.el6.x86_64 64-bit"
+FERRET_VERSION = "6.951"
+FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64 64-bit"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 10:43:06 $"
+NETCDF_VERSION = "4.3.3.1 of Jul  1 2015 15:02:01 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "29-Oct-14"
-SESSION_TIME = "16:02"
-SESSION_PID = "1700"
-DELTA_CPU = "4.44432"
-CLOCK_SECS = "7.074"
-CURRENT_DATE = "29-Oct-14"
-CURRENT_TIME = "16:03:05"
+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"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
  
@@ -10479,18 +10503,18 @@ show symbol/all
 PPL$XPIXEL = "406"
 PPL$YPIXEL = "406"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.93"
-FERRET_PLATFORM = "Linux 2.6.32-504.el6.x86_64 64-bit"
+FERRET_VERSION = "6.951"
+FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64 64-bit"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 10:43:06 $"
+NETCDF_VERSION = "4.3.3.1 of Jul  1 2015 15:02:01 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "29-Oct-14"
-SESSION_TIME = "16:02"
-SESSION_PID = "1700"
+SESSION_DATE = " 9-Nov-15"
+SESSION_TIME = "15:02"
+SESSION_PID = "8191"
 DELTA_CPU = "0"
-CLOCK_SECS = "7.074"
-CURRENT_DATE = "29-Oct-14"
-CURRENT_TIME = "16:03:05"
+CLOCK_SECS = "7.506"
+CURRENT_DATE = " 9-Nov-15"
+CURRENT_TIME = "15:02:37"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
 S1 = "hello"
@@ -10500,9 +10524,9 @@ NUM = "3"
 T$DOLLAR = "hi"
 T_HELLO = "hi"
 show symbol s*
-SESSION_DATE = "29-Oct-14"
-SESSION_TIME = "16:02"
-SESSION_PID = "1700"
+SESSION_DATE = " 9-Nov-15"
+SESSION_TIME = "15:02"
+SESSION_PID = "8191"
 S1 = "hello"
 S2 = ""hello""
 S3 = "hello and goodbye"
@@ -10512,15 +10536,15 @@ S2 = ""hello""
 ! exercise CANCEL SYMBOL
 cancel symbol s2
 show symbol s*
-SESSION_DATE = "29-Oct-14"
-SESSION_TIME = "16:02"
-SESSION_PID = "1700"
+SESSION_DATE = " 9-Nov-15"
+SESSION_TIME = "15:02"
+SESSION_PID = "8191"
 S1 = "hello"
 S3 = "hello and goodbye"
 show symbol S*
-SESSION_DATE = "29-Oct-14"
-SESSION_TIME = "16:02"
-SESSION_PID = "1700"
+SESSION_DATE = " 9-Nov-15"
+SESSION_TIME = "15:02"
+SESSION_PID = "8191"
 S1 = "hello"
 S3 = "hello and goodbye"
 cancel symbol s2	! already deleted
@@ -10554,9 +10578,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.93"
+LAB1 = "FERRET (beta) Ver.6.951"
 LAB2 = "NOAA/PMEL TMAP"
-LAB3 = "29-OCT-2014 16:03:05"
+LAB3 = "09-NOV-2015 15:02:37"
 LABX = "X"
 LAB4 = "Y : 10"
 LABNUM_Y = "4"
@@ -10651,18 +10675,18 @@ show symbols/all
 PPL$XPIXEL = "406"
 PPL$YPIXEL = "406"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.93"
-FERRET_PLATFORM = "Linux 2.6.32-504.el6.x86_64 64-bit"
+FERRET_VERSION = "6.951"
+FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64 64-bit"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 10:43:06 $"
+NETCDF_VERSION = "4.3.3.1 of Jul  1 2015 15:02:01 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "29-Oct-14"
-SESSION_TIME = "16:02"
-SESSION_PID = "1700"
-DELTA_CPU = "0.007999"
-CLOCK_SECS = "7.082"
-CURRENT_DATE = "29-Oct-14"
-CURRENT_TIME = "16:03:05"
+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"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
  
@@ -13111,7 +13135,7 @@ show grid/x
  Last successful data access was on grid (G004)
     GRID (G004)
  name       axis              # pts   start                end
- (AX004)   X                    5 i   1                    6561
+ (AX003)   X                    5 i   1                    6561
  normal    Y
  normal    Z
  normal    T
@@ -13157,7 +13181,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
@@ -13187,14 +13211,14 @@ show grid/dyn
 Dynamic grids:
     GRID (G004)                          use count:   1
  name       axis              # pts   start                end
- (AX004)   X                    5 i   1                    6561
+ (AX003)   X                    5 i   1                    6561
  normal    Y
  normal    Z
  normal    T
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX004)                         use count:   1
+    AXIS (AX003)                         use count:   1
  
 ! this expression does NOT inherit the X axis -- the result is
 !	i) ambiguous X axis coordinates
@@ -13216,7 +13240,7 @@ show grid/dynamic
 Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
- (AX003)   LONGITUDE            5 r   129.5W               113.5W
+ (AX005)   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
@@ -13224,15 +13248,15 @@ Dynamic grids:
  normal    F
     GRID (G004)                          use count:   1
  name       axis              # pts   start                end
- (AX004)   X                    5 i   1                    6561
+ (AX003)   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 (AX004)                         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]
@@ -13255,7 +13279,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 (AX005)
              SUBSET   : 5 points (X)
  1   / 1:  1.00000
  2   / 2:  2.00000
@@ -13300,7 +13324,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)
+ (AX005)   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
@@ -13308,15 +13332,15 @@ Dynamic grids:
  normal    F
     GRID (G004)                          use count:   1
  name       axis              # pts   start                end
- (AX004)   X                    5 i   1                    6561
+ (AX003)   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 (AX004)                         use count:   1
  
 ! regular dynamic axis
 ! ... by subscript
@@ -13384,22 +13408,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
+ (AX005)   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
+ (AX003)   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 (AX004)                         use count:   1
  
 ! ========
 ! 2/96: repeat the very same commands using GX=lo:hi:delta notation
@@ -13562,23 +13586,23 @@ 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
+ (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
+ (AX003)   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 (AX001)                         use count:   1
+    AXIS (AX003)                         use count:   1
  
 ! the same tests but now on a nested definition
 ! regular dynamic axis
@@ -13746,7 +13770,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
@@ -13761,7 +13785,7 @@ Dynamic grids:
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX005)                         use count:   1
+    AXIS (AX004)                         use count:   1
     AXIS (AX001)                         use count:   1
  
 ! irregular dynamic axis
@@ -13909,14 +13933,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
+ (AX003)   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 (AX003)                         use count:   1
  
 ! nested modulo (the dynamic axis is **NOT** modulo)
 ! ... by subscript
@@ -14098,7 +14122,7 @@ show grid/dyn
 Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
- (AX004)   LONGITUDE            9 r   101W                 53W
+ (AX003)   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
@@ -14106,19 +14130,19 @@ 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 (AX003)                         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
- !-> list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:144 at ave]   ! 6-day ave
+ !-> list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:144 at ave]
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: 144 hour on T at AVE
              FILENAME : gtsa056_1.cdf
@@ -14144,9 +14168,9 @@ list/k=1/y=0/x=180/l=1 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave]
              TIME     : 15-JAN-1982 00:00
           27.7767
 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]			! pseudo-var
+ !-> list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:48]
              VARIABLE : T
-                        axis (AX003)
+                        axis (AX005)
              SUBSET   : 3 points (TIME)
  15-JAN-1982 00 / 1:  723925.
  17-JAN-1982 00 / 2:  723927.
@@ -15513,7 +15537,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: 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: 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)
@@ -15649,9 +15673,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: 20 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: 56 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 20 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 19 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
@@ -15694,7 +15718,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: 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: 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
@@ -16520,9 +16544,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
@@ -16641,10 +16665,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
@@ -17498,6 +17522,7 @@ 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
@@ -17509,7 +17534,6 @@ 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
@@ -20068,27 +20092,27 @@ GO bn_negative_t.sub tvar ave  ! like var and din
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ave]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at ave]
              VARIABLE : T[GT=TAX]
              T        : -5 to 5 (averaged)
           0.000000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ave]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at ave]
              VARIABLE : T[GT=TAX]
              T        : -8 to -5 (averaged)
          -6.66667
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ave]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at ave]
              VARIABLE : T[GT=TAX]
              T        : -9 to 3 (averaged)
          -3.00000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ave]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at ave]
              VARIABLE : T[GT=TAX]
              T        : -9 to -3 (averaged)
          -6.00000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ave]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@ave]
              VARIABLE : T[GT=TAX]
              T        : -11 to 11 (averaged)
           0.000000
@@ -20104,7 +20128,7 @@ GO bn_negative_t.sub tvar iin
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at iin]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at iin]
              VARIABLE : T[GT=TAX]
                         indef. integ. on T
              SUBSET   : 5 points (T)
@@ -20114,14 +20138,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  -8.0000
  4    / 8:   0.0000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at iin]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at iin]
              VARIABLE : T[GT=TAX]
                         indef. integ. on T
              SUBSET   : 2 points (T)
  -8   / 2:  -8.0000
  -6   / 3: -20.0000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at iin]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at iin]
              VARIABLE : T[GT=TAX]
                         indef. integ. on T
              SUBSET   : 6 points (T)
@@ -20132,7 +20156,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6: -40.0000
  2    / 7: -36.0000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at iin]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at iin]
              VARIABLE : T[GT=TAX]
                         indef. integ. on T
              SUBSET   : 3 points (T)
@@ -20140,7 +20164,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3: -28.0000
  -4   / 4: -36.0000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@iin]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@iin]
              VARIABLE : T[GT=TAX]
                         indef. integ. on T
              SUBSET   : 11 points (T)
@@ -20167,27 +20191,27 @@ GO bn_negative_t.sub tvar sum
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at sum]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at sum]
              VARIABLE : T[GT=TAX]
              T        : -5 to 5 (summed)
           0.000000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at sum]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at sum]
              VARIABLE : T[GT=TAX]
              T        : -8 to -5 (summed)
          -14.0000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at sum]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at sum]
              VARIABLE : T[GT=TAX]
              T        : -9 to 3 (summed)
          -18.0000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at sum]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at sum]
              VARIABLE : T[GT=TAX]
              T        : -9 to -3 (summed)
          -18.0000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@sum]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@sum]
              VARIABLE : T[GT=TAX]
              T        : -11 to 11 (summed)
           0.000000
@@ -20203,7 +20227,7 @@ GO bn_negative_t.sub tvar rsu
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at rsu]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at rsu]
              VARIABLE : T[GT=TAX]
                         running sum on T
              SUBSET   : 5 points (T)
@@ -20213,14 +20237,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7: -4.00000
  4    / 8:  0.00000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at rsu]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at rsu]
              VARIABLE : T[GT=TAX]
                         running sum on T
              SUBSET   : 2 points (T)
  -8   / 2:  -8.0000
  -6   / 3: -14.0000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at rsu]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at rsu]
              VARIABLE : T[GT=TAX]
                         running sum on T
              SUBSET   : 6 points (T)
@@ -20231,7 +20255,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6: -20.0000
  2    / 7: -18.0000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at rsu]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at rsu]
              VARIABLE : T[GT=TAX]
                         running sum on T
              SUBSET   : 3 points (T)
@@ -20239,7 +20263,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3: -14.0000
  -4   / 4: -18.0000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@rsu]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@rsu]
              VARIABLE : T[GT=TAX]
                         running sum on T
              SUBSET   : 11 points (T)
@@ -20266,7 +20290,7 @@ GO bn_negative_t.sub tvar shf
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at shf]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at shf]
              VARIABLE : T[GT=TAX]
                         shifted by 1 pts on T
              SUBSET   : 5 points (T)
@@ -20276,14 +20300,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  4.00000
  4    / 8:  6.00000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at shf]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at shf]
              VARIABLE : T[GT=TAX]
                         shifted by 1 pts on T
              SUBSET   : 2 points (T)
  -8   / 2: -6.00000
  -6   / 3: -4.00000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at shf]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at shf]
              VARIABLE : T[GT=TAX]
                         shifted by 1 pts on T
              SUBSET   : 6 points (T)
@@ -20294,7 +20318,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  2.00000
  2    / 7:  4.00000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at shf]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at shf]
              VARIABLE : T[GT=TAX]
                         shifted by 1 pts on T
              SUBSET   : 3 points (T)
@@ -20302,7 +20326,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3: -4.00000
  -4   / 4: -2.00000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@shf]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@shf]
              VARIABLE : T[GT=TAX]
                         shifted by 1 pts on T
              SUBSET   : 11 points (T)
@@ -20329,27 +20353,27 @@ GO bn_negative_t.sub tvar min   ! like @max
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at min]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at min]
              VARIABLE : T[GT=TAX]
              T        : -5 to 5 (minimum)
          -4.00000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at min]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at min]
              VARIABLE : T[GT=TAX]
              T        : -8 to -5 (minimum)
          -8.00000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at min]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at min]
              VARIABLE : T[GT=TAX]
              T        : -9 to 3 (minimum)
          -8.00000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at min]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at min]
              VARIABLE : T[GT=TAX]
              T        : -9 to -3 (minimum)
          -8.00000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@min]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@min]
              VARIABLE : T[GT=TAX]
              T        : -11 to 11 (minimum)
          -10.0000
@@ -20365,7 +20389,7 @@ GO bn_negative_t.sub tvar ddf
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ddf]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at ddf]
              VARIABLE : T[GT=TAX]
                         forward derivative on T
              SUBSET   : 5 points (T)
@@ -20375,14 +20399,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  1.00000
  4    / 8:  1.00000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ddf]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at ddf]
              VARIABLE : T[GT=TAX]
                         forward derivative on T
              SUBSET   : 2 points (T)
  -8   / 2:  1.00000
  -6   / 3:  1.00000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ddf]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at ddf]
              VARIABLE : T[GT=TAX]
                         forward derivative on T
              SUBSET   : 6 points (T)
@@ -20393,7 +20417,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  1.00000
  2    / 7:  1.00000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ddf]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at ddf]
              VARIABLE : T[GT=TAX]
                         forward derivative on T
              SUBSET   : 3 points (T)
@@ -20401,7 +20425,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3:  1.00000
  -4   / 4:  1.00000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ddf]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@ddf]
              VARIABLE : T[GT=TAX]
                         forward derivative on T
              SUBSET   : 11 points (T)
@@ -20428,7 +20452,7 @@ GO bn_negative_t.sub tvar ddb   ! @ddc like ddf and ddb
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ddb]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at ddb]
              VARIABLE : T[GT=TAX]
                         backwards derivative on T
              SUBSET   : 5 points (T)
@@ -20438,14 +20462,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  1.00000
  4    / 8:  1.00000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ddb]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at ddb]
              VARIABLE : T[GT=TAX]
                         backwards derivative on T
              SUBSET   : 2 points (T)
  -8   / 2:  1.00000
  -6   / 3:  1.00000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ddb]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at ddb]
              VARIABLE : T[GT=TAX]
                         backwards derivative on T
              SUBSET   : 6 points (T)
@@ -20456,7 +20480,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  1.00000
  2    / 7:  1.00000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ddb]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at ddb]
              VARIABLE : T[GT=TAX]
                         backwards derivative on T
              SUBSET   : 3 points (T)
@@ -20464,7 +20488,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3:  1.00000
  -4   / 4:  1.00000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ddb]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@ddb]
              VARIABLE : T[GT=TAX]
                         backwards derivative on T
              SUBSET   : 11 points (T)
@@ -20491,7 +20515,7 @@ GO bn_negative_t.sub tvar sbx  ! like sbn, swl, shn, spz
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at sbx]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at sbx]
              VARIABLE : T[GT=TAX]
                         box smoothed by 3 pts on T
              SUBSET   : 5 points (T)
@@ -20501,14 +20525,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  2.00000
  4    / 8:  4.00000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at sbx]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at sbx]
              VARIABLE : T[GT=TAX]
                         box smoothed by 3 pts on T
              SUBSET   : 2 points (T)
  -8   / 2: -8.00000
  -6   / 3: -6.00000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at sbx]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at sbx]
              VARIABLE : T[GT=TAX]
                         box smoothed by 3 pts on T
              SUBSET   : 6 points (T)
@@ -20519,7 +20543,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  0.00000
  2    / 7:  2.00000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at sbx]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at sbx]
              VARIABLE : T[GT=TAX]
                         box smoothed by 3 pts on T
              SUBSET   : 3 points (T)
@@ -20527,7 +20551,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3: -6.00000
  -4   / 4: -4.00000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@sbx]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@sbx]
              VARIABLE : T[GT=TAX]
                         box smoothed by 3 pts on T
              SUBSET   : 11 points (T)
@@ -20554,27 +20578,27 @@ GO bn_negative_t.sub tvar loc:-2.2
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at loc:-2.2]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at loc:-2.2]
              VARIABLE : T of -2.2 in T[GT=TAX]
              T        : -5 to 5 (location of -2.2)
          -2.20000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at loc:-2.2]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at loc:-2.2]
              VARIABLE : T of -2.2 in T[GT=TAX]
              T        : -8 to -5 (location of -2.2)
         ....
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at loc:-2.2]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at loc:-2.2]
              VARIABLE : T of -2.2 in T[GT=TAX]
              T        : -9 to 3 (location of -2.2)
          -2.20000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at loc:-2.2]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at loc:-2.2]
              VARIABLE : T of -2.2 in T[GT=TAX]
              T        : -9 to -3 (location of -2.2)
         ....
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@loc:-2.2]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@loc:-2.2]
              VARIABLE : T of -2.2 in T[GT=TAX]
              T        : -11 to 11 (location of -2.2)
          -2.20000
@@ -20590,7 +20614,7 @@ GO bn_negative_t.sub tvar weq:-2.2
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at weq:-2.2]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at weq:-2.2]
              VARIABLE : T[GT=TAX]
                         weighted equal of -2.2 on T
              SUBSET   : 5 points (T)
@@ -20600,14 +20624,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:      ....
  4    / 8:      ....
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at weq:-2.2]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at weq:-2.2]
              VARIABLE : T[GT=TAX]
                         weighted equal of -2.2 on T
              SUBSET   : 2 points (T)
  -8   / 2:....
  -6   / 3:....
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at weq:-2.2]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at weq:-2.2]
              VARIABLE : T[GT=TAX]
                         weighted equal of -2.2 on T
              SUBSET   : 6 points (T)
@@ -20618,7 +20642,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:      ....
  2    / 7:      ....
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at weq:-2.2]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at weq:-2.2]
              VARIABLE : T[GT=TAX]
                         weighted equal of -2.2 on T
              SUBSET   : 3 points (T)
@@ -20626,7 +20650,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3:....
  -4   / 4:....
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@weq:-2.2]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@weq:-2.2]
              VARIABLE : T[GT=TAX]
                         weighted equal of -2.2 on T
              SUBSET   : 11 points (T)
@@ -20669,27 +20693,27 @@ GO bn_negative_t.sub tgap ngd   ! like @nbd
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tgap[t=-5:5 at ngd]	! neg/pos t endpoints
+ !-> LIST tgap[t=-5:5 at ngd]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR (# of points)
              T        : -5 to 5 (number of valid)
           3.00000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tgap[t=-5:-8 at ngd]	! neg/neq t endpoints
+ !-> LIST tgap[t=-5:-8 at ngd]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR (# of points)
              T        : -8 to -5 (number of valid)
           1.00000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tgap[l=2:7 at ngd]	! neg/pos l endpoints
+ !-> LIST tgap[l=2:7 at ngd]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR (# of points)
              T        : -9 to 3 (number of valid)
           3.00000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tgap[l=2:4 at ngd]	! neg/neg l endpoints
+ !-> LIST tgap[l=2:4 at ngd]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR (# of points)
              T        : -9 to -3 (number of valid)
           2.00000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tgap[l=@ngd]	! unspecified limits (neg/pos)
+ !-> LIST tgap[l=@ngd]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR (# of points)
              T        : -11 to 11 (number of valid)
           5.00000
@@ -20705,7 +20729,7 @@ GO bn_negative_t.sub tgap fav  ! like fln (fnr not implemented)
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tgap[t=-5:5 at fav]	! neg/pos t endpoints
+ !-> LIST tgap[t=-5:5 at fav]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR
                         ave-filled by 3 pts on T
              SUBSET   : 5 points (T)
@@ -20715,14 +20739,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  2.00000
  4    / 8:  4.00000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tgap[t=-5:-8 at fav]	! neg/neq t endpoints
+ !-> LIST tgap[t=-5:-8 at fav]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR
                         ave-filled by 3 pts on T
              SUBSET   : 2 points (T)
  -8   / 2: -8.00000
  -6   / 3: -6.00000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tgap[l=2:7 at fav]	! neg/pos l endpoints
+ !-> LIST tgap[l=2:7 at fav]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR
                         ave-filled by 3 pts on T
              SUBSET   : 6 points (T)
@@ -20733,7 +20757,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  0.00000
  2    / 7:  2.00000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tgap[l=2:4 at fav]	! neg/neg l endpoints
+ !-> LIST tgap[l=2:4 at fav]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR
                         ave-filled by 3 pts on T
              SUBSET   : 3 points (T)
@@ -20741,7 +20765,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3: -6.00000
  -4   / 4: -4.00000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tgap[l=@fav]	! unspecified limits (neg/pos)
+ !-> LIST tgap[l=@fav]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR
                         ave-filled by 3 pts on T
              SUBSET   : 11 points (T)
@@ -20790,7 +20814,7 @@ GO bn_negative_t.sub blin nul
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST blin[t=-5:5 at nul]	! neg/pos t endpoints
+ !-> LIST blin[t=-5:5 at nul]
              VARIABLE : A[GT=TDST at LIN]
              SUBSET   : 5 points (T)
  -4   / 4: -4.00000
@@ -20799,13 +20823,13 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  2.00000
  4    / 8:  4.00000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST blin[t=-5:-8 at nul]	! neg/neq t endpoints
+ !-> LIST blin[t=-5:-8 at nul]
              VARIABLE : A[GT=TDST at LIN]
              SUBSET   : 2 points (T)
  -8   / 2: -8.00000
  -6   / 3: -6.00000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST blin[l=2:7 at nul]	! neg/pos l endpoints
+ !-> LIST blin[l=2:7 at nul]
              VARIABLE : A[GT=TDST at LIN]
              SUBSET   : 6 points (T)
  -8   / 2: -8.00000
@@ -20815,14 +20839,14 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  0.00000
  2    / 7:  2.00000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST blin[l=2:4 at nul]	! neg/neg l endpoints
+ !-> LIST blin[l=2:4 at nul]
              VARIABLE : A[GT=TDST at LIN]
              SUBSET   : 3 points (T)
  -8   / 2: -8.00000
  -6   / 3: -6.00000
  -4   / 4: -4.00000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST blin[l=@nul]	! unspecified limits (neg/pos)
+ !-> LIST blin[l=@nul]
              VARIABLE : A[GT=TDST at LIN]
              SUBSET   : 11 points (T)
  -10   /  1:     ....
@@ -20848,7 +20872,7 @@ GO bn_negative_t.sub bave nul
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST bave[t=-5:5 at nul]	! neg/pos t endpoints
+ !-> LIST bave[t=-5:5 at nul]
              VARIABLE : A[GT=TDST at AVE]
              SUBSET   : 5 points (T)
  -4   / 4: -4.00000
@@ -20857,13 +20881,13 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  2.00000
  4    / 8:  4.00000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST bave[t=-5:-8 at nul]	! neg/neq t endpoints
+ !-> LIST bave[t=-5:-8 at nul]
              VARIABLE : A[GT=TDST at AVE]
              SUBSET   : 2 points (T)
  -8   / 2: -8.00000
  -6   / 3: -6.00000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST bave[l=2:7 at nul]	! neg/pos l endpoints
+ !-> LIST bave[l=2:7 at nul]
              VARIABLE : A[GT=TDST at AVE]
              SUBSET   : 6 points (T)
  -8   / 2: -8.00000
@@ -20873,14 +20897,14 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  0.00000
  2    / 7:  2.00000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST bave[l=2:4 at nul]	! neg/neg l endpoints
+ !-> LIST bave[l=2:4 at nul]
              VARIABLE : A[GT=TDST at AVE]
              SUBSET   : 3 points (T)
  -8   / 2: -8.00000
  -6   / 3: -6.00000
  -4   / 4: -4.00000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST bave[l=@nul]	! unspecified limits (neg/pos)
+ !-> LIST bave[l=@nul]
              VARIABLE : A[GT=TDST at AVE]
              SUBSET   : 11 points (T)
  -10   /  1: -9.00000
@@ -20906,7 +20930,7 @@ GO bn_negative_t.sub basn nul
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST basn[t=-5:5 at nul]	! neg/pos t endpoints
+ !-> LIST basn[t=-5:5 at nul]
              VARIABLE : A[GT=TDST at ASN]
              SUBSET   : 5 points (T)
  -4   / 4: -6.00000
@@ -20915,13 +20939,13 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7: -3.00000
  4    / 8: -2.00000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST basn[t=-5:-8 at nul]	! neg/neq t endpoints
+ !-> LIST basn[t=-5:-8 at nul]
              VARIABLE : A[GT=TDST at ASN]
              SUBSET   : 2 points (T)
  -8   / 2: -8.00000
  -6   / 3: -7.00000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST basn[l=2:7 at nul]	! neg/pos l endpoints
+ !-> LIST basn[l=2:7 at nul]
              VARIABLE : A[GT=TDST at ASN]
              SUBSET   : 6 points (T)
  -8   / 2: -8.00000
@@ -20931,14 +20955,14 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6: -4.00000
  2    / 7: -3.00000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST basn[l=2:4 at nul]	! neg/neg l endpoints
+ !-> LIST basn[l=2:4 at nul]
              VARIABLE : A[GT=TDST at ASN]
              SUBSET   : 3 points (T)
  -8   / 2: -8.00000
  -6   / 3: -7.00000
  -4   / 4: -6.00000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST basn[l=@nul]	! unspecified limits (neg/pos)
+ !-> LIST basn[l=@nul]
              VARIABLE : A[GT=TDST at ASN]
              SUBSET   : 11 points (T)
  -10   /  1: -9.00000
@@ -21079,7 +21103,7 @@ CANCEL REGION
 GO bn_xact_regrid.sub X
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21089,7 +21113,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21103,7 +21127,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21113,7 +21137,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETBIG]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21127,7 +21151,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETSMALL]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21141,7 +21165,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINEOFFSET]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21154,7 +21178,7 @@ SET REGION/X=2:4
 GO bn_xact_regrid.sub X
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 3 points (X)
@@ -21162,7 +21186,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21172,7 +21196,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  3.5  / 6:     ....
  4    / 7:  4.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 3 points (X)
@@ -21180,7 +21204,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETBIG]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21190,7 +21214,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  3.5  / 6:  3.50000
  4    / 7:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETSMALL]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21200,7 +21224,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  3.5  / 6:  3.50000
  4    / 7:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINEOFFSET]
                         regrid: 1 delta on X at XACT
              SUBSET   : 3 points (X)
@@ -21211,7 +21235,7 @@ SET REGION/X=1:5
 GO bn_xact_regrid.sub X
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21221,7 +21245,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21235,7 +21259,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21245,7 +21269,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETBIG]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21259,7 +21283,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETSMALL]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21273,7 +21297,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINEOFFSET]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21286,7 +21310,7 @@ SET REGION/X=1.5:4.5
 GO bn_xact_regrid.sub X
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 3 points (X)
@@ -21294,7 +21318,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 7 points (X)
@@ -21306,7 +21330,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4    / 7:  4.00000
  4.5  / 8:     ....
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 3 points (X)
@@ -21314,7 +21338,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETBIG]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 7 points (X)
@@ -21326,7 +21350,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4    / 7:     ....
  4.5  / 8:  4.50000
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETSMALL]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 7 points (X)
@@ -21338,7 +21362,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4    / 7:     ....
  4.5  / 8:  4.50000
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINEOFFSET]
                         regrid: 1 delta on X at XACT
              SUBSET   : 3 points (X)
@@ -21349,7 +21373,7 @@ SET REGION/X=0:6
 GO bn_xact_regrid.sub X
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21359,7 +21383,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21373,7 +21397,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21383,7 +21407,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETBIG]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21397,7 +21421,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETSMALL]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21411,7 +21435,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINEOFFSET]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21426,7 +21450,7 @@ CANCEL REGION
 GO bn_xact_regrid.sub Y
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21436,7 +21460,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21450,7 +21474,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21460,7 +21484,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETBIG]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21474,7 +21498,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETSMALL]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21488,7 +21512,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINEOFFSET]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21501,7 +21525,7 @@ SET REGION/Y=2:4
 GO bn_xact_regrid.sub Y
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 3 points (Y)
@@ -21509,7 +21533,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21519,7 +21543,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  3.5  / 6:     ....
  4    / 7:  4.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 3 points (Y)
@@ -21527,7 +21551,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETBIG]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21537,7 +21561,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  3.5  / 6:  3.50000
  4    / 7:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETSMALL]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21547,7 +21571,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  3.5  / 6:  3.50000
  4    / 7:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINEOFFSET]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 3 points (Y)
@@ -21558,7 +21582,7 @@ SET REGION/Y=1:5
 GO bn_xact_regrid.sub Y
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21568,7 +21592,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21582,7 +21606,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21592,7 +21616,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETBIG]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21606,7 +21630,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETSMALL]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21620,7 +21644,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINEOFFSET]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21633,7 +21657,7 @@ SET REGION/Y=1.5:4.5
 GO bn_xact_regrid.sub Y
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 3 points (Y)
@@ -21641,7 +21665,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 7 points (Y)
@@ -21653,7 +21677,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4    / 7:  4.00000
  4.5  / 8:     ....
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 3 points (Y)
@@ -21661,7 +21685,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETBIG]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 7 points (Y)
@@ -21673,7 +21697,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4    / 7:     ....
  4.5  / 8:  4.50000
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETSMALL]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 7 points (Y)
@@ -21685,7 +21709,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4    / 7:     ....
  4.5  / 8:  4.50000
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINEOFFSET]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 3 points (Y)
@@ -21696,7 +21720,7 @@ SET REGION/Y=0:6
 GO bn_xact_regrid.sub Y
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21706,7 +21730,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21720,7 +21744,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21730,7 +21754,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETBIG]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21744,7 +21768,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETSMALL]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21758,7 +21782,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINEOFFSET]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21773,7 +21797,7 @@ CANCEL REGION
 GO bn_xact_regrid.sub Z
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21783,7 +21807,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21797,7 +21821,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21807,7 +21831,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETBIG]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21821,7 +21845,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETSMALL]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21835,7 +21859,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINEOFFSET]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21848,7 +21872,7 @@ SET REGION/Z=2:4
 GO bn_xact_regrid.sub Z
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 3 points (Z)
@@ -21856,7 +21880,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21866,7 +21890,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  3.5  / 6:     ....
  4    / 7:  4.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 3 points (Z)
@@ -21874,7 +21898,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETBIG]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21884,7 +21908,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  3.5  / 6:  3.50000
  4    / 7:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETSMALL]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21894,7 +21918,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  3.5  / 6:  3.50000
  4    / 7:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINEOFFSET]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 3 points (Z)
@@ -21905,7 +21929,7 @@ SET REGION/Z=1:5
 GO bn_xact_regrid.sub Z
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21915,7 +21939,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21929,7 +21953,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21939,7 +21963,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETBIG]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21953,7 +21977,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETSMALL]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21967,7 +21991,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINEOFFSET]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21980,7 +22004,7 @@ SET REGION/Z=1.5:4.5
 GO bn_xact_regrid.sub Z
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 3 points (Z)
@@ -21988,7 +22012,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 7 points (Z)
@@ -22000,7 +22024,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4    / 7:  4.00000
  4.5  / 8:     ....
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 3 points (Z)
@@ -22008,7 +22032,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETBIG]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 7 points (Z)
@@ -22020,7 +22044,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4    / 7:     ....
  4.5  / 8:  4.50000
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETSMALL]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 7 points (Z)
@@ -22032,7 +22056,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4    / 7:     ....
  4.5  / 8:  4.50000
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINEOFFSET]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 3 points (Z)
@@ -22043,7 +22067,7 @@ SET REGION/Z=0:6
 GO bn_xact_regrid.sub Z
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -22053,7 +22077,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -22067,7 +22091,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -22077,7 +22101,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETBIG]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -22091,7 +22115,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETSMALL]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -22105,7 +22129,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINEOFFSET]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -22120,7 +22144,7 @@ CANCEL REGION
 GO bn_xact_regrid.sub T
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22130,7 +22154,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22144,7 +22168,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22154,7 +22178,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETBIG]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22168,7 +22192,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETSMALL]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22182,7 +22206,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINEOFFSET]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22195,7 +22219,7 @@ SET REGION/T=2:4
 GO bn_xact_regrid.sub T
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 3 points (T)
@@ -22203,7 +22227,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22213,7 +22237,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  3.5  / 6:     ....
  4    / 7:  4.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 3 points (T)
@@ -22221,7 +22245,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETBIG]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22231,7 +22255,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  3.5  / 6:  3.50000
  4    / 7:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETSMALL]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22241,7 +22265,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  3.5  / 6:  3.50000
  4    / 7:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINEOFFSET]
                         regrid: 1 delta on T at XACT
              SUBSET   : 3 points (T)
@@ -22252,7 +22276,7 @@ SET REGION/T=1:5
 GO bn_xact_regrid.sub T
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22262,7 +22286,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22276,7 +22300,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22286,7 +22310,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETBIG]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22300,7 +22324,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETSMALL]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22314,7 +22338,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINEOFFSET]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22327,7 +22351,7 @@ SET REGION/T=1.5:4.5
 GO bn_xact_regrid.sub T
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 3 points (T)
@@ -22335,7 +22359,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 7 points (T)
@@ -22347,7 +22371,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4    / 7:  4.00000
  4.5  / 8:     ....
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 3 points (T)
@@ -22355,7 +22379,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETBIG]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 7 points (T)
@@ -22367,7 +22391,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4    / 7:     ....
  4.5  / 8:  4.50000
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETSMALL]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 7 points (T)
@@ -22379,7 +22403,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4    / 7:     ....
  4.5  / 8:  4.50000
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINEOFFSET]
                         regrid: 1 delta on T at XACT
              SUBSET   : 3 points (T)
@@ -22390,7 +22414,7 @@ SET REGION/T=0:6
 GO bn_xact_regrid.sub T
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22400,7 +22424,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22414,7 +22438,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22424,7 +22448,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETBIG]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22438,7 +22462,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETSMALL]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22452,7 +22476,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINEOFFSET]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -23982,7 +24006,33 @@ list 'X'			! Now the proper syntax
  19   / 19:  0.578440
  20   / 20:  0.656987
 list i  			! Deliberate error
-list 'i'  			! Deliberate error
+ 
+! v694 No longer an error: See ticket 2050
+list 'i'  			!
+             VARIABLE : SIN(4+I/10)
+             FILENAME : weird_name1.cdf
+             SUBSET   : 20 points (X)
+ 1    /  1: -0.818277
+ 2    /  2: -0.871576
+ 3    /  3: -0.916166
+ 4    /  4: -0.951602
+ 5    /  5: -0.977530
+ 6    /  6: -0.993691
+ 7    /  7: -0.999923
+ 8    /  8: -0.996165
+ 9    /  9: -0.982453
+ 10   / 10: -0.958924
+ 11   / 11: -0.925815
+ 12   / 12: -0.883455
+ 13   / 13: -0.832267
+ 14   / 14: -0.772764
+ 15   / 15: -0.705540
+ 16   / 16: -0.631267
+ 17   / 17: -0.550686
+ 18   / 18: -0.464602
+ 19   / 19: -0.373877
+ 20   / 20: -0.279415
+ 
 list 'I'			! Now the proper syntax
              VARIABLE : SIN(4+I/10)
              FILENAME : weird_name1.cdf
@@ -25632,7 +25682,7 @@ GO err491_spawn_quotes.jnl
  
 ! this should be a valid command
 SPAWN "date"
-Wed Oct 29 16:03:12 PDT 2014
+Mon Nov  9 15:02:45 PST 2015
  
 GO bn_reset
 cancel mode verify
@@ -25789,14 +25839,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: 31 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  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
  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
  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
+ 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
  -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 tpry     M: 28 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
@@ -25810,11 +25860,11 @@ list/i=2 SAMPLEI(sst[l=1,y=-2:2],{30,40,50})	! only I=2 from result
  -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: 23 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: 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 (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 (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
@@ -25827,10 +25877,10 @@ list/l=1/y=-2:2  SAMPLEI(sst,{30,40,50})
  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: 23 dset:   1 I:   40   40  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: 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          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
  -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})
@@ -25843,9 +25893,9 @@ list/l=1/y=-2:2  SAMPLEI(sst,{30,40,50})
  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: 23 dset:   1 I:   40   40  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: 31 dset:   1 I:    1    3  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
 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
@@ -25854,18 +25904,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: 30 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
  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
+ reading SST      M: 29 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
+ 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: 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: 30 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)
@@ -25879,8 +25929,8 @@ list/l=1/y=-2:2  SAMPLEI(a  ,{30,40,50})
 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: 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 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 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
@@ -25898,7 +25948,7 @@ 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: 28 dset:   1 I:   30   40  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
  -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
@@ -25912,14 +25962,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: 27 dset:   1 I:   30   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   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: 28 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:   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
@@ -25927,14 +25977,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: 28 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: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  reading SST      M: 34 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE          M: 27 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
+ -DELETE          M: 28 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: 28 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(A,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 by 2 points (X-LATITUDE)
@@ -25956,10 +26006,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: 28 dset:   1 I:   30   40  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
  -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 tpry     M: 28 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
@@ -25971,7 +26021,7 @@ list/l=1/y=-2:2  SAMPLEI(a,{30})		! sample at just 1 point
  1N   / 46:  28.2222
  1S   / 45:  28.1514
 cancel memory/all
- -DELETE SST      M: 28 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE 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 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
@@ -25990,7 +26040,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: 11 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  reading SST      M: 34 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 28 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 29 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
              VARIABLE : SAMPLEI(A,30)
@@ -26003,7 +26053,7 @@ list/l=1/y=-2:2  SAMPLEI(a,30)			! sample at just 1 point
  1N   / 46:  28.2222
  1S   / 45:  28.1514
 cancel memory/all
- -DELETE A        M: 27 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE 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 (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
@@ -26029,13 +26079,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: 27 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 28 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: 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 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: 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
@@ -26049,9 +26099,9 @@ 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 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 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 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
@@ -26069,15 +26119,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: 30 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: 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 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: 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: 30 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)
@@ -26091,7 +26141,7 @@ list/l=1/y=0  SAMPLEI(sst,{30,40,50})
 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: 28 dset:   1 I:    1    3  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: 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]
@@ -26111,10 +26161,10 @@ list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  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: 27 dset:   1 I:   50   50  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: 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 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
  -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
@@ -26129,8 +26179,8 @@ list/l=1/y=0  SAMPLEI(sst,{30,40,50})
 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: 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: 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: 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
@@ -26145,15 +26195,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: 28 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: 31 dset:   1 I:   40   40  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: 27 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  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: 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
+ -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)
@@ -26167,8 +26217,8 @@ list/l=1/y=0  SAMPLEI(sst,{30,40,50})
 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: 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 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: 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
@@ -26183,15 +26233,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: 30 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: 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: 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 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
              VARIABLE : SAMPLEI(SST,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 points (X)
@@ -26477,12 +26527,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
- -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 Y        M: 30 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
@@ -26511,8 +26561,8 @@ 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: 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 Y        M: 30 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
              VARIABLE : SAMPLEI(SST[L=1,Y=5N],{31,33,35,37,44,46,48})
@@ -26545,8 +26595,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: 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 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 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})
@@ -27099,8 +27149,8 @@ LIST VAR[i=2:4:2]
  allocate dynamic grid (G018)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G018)           @XACT
  rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 47 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 55 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
@@ -27124,8 +27174,8 @@ LIST VAR[i=2:4:2]
  allocate dynamic grid (G018)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G018)           @XACT
  rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 27 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 55 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
@@ -27147,8 +27197,8 @@ LIST VAR[i=2:4:2]
 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
+ -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
@@ -27160,8 +27210,8 @@ list a
  allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G018)           @XACT
  rdstride VAR      C:  9 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 27 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 47 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : VAR[I=2:4:2]
              FILENAME : bn_strides.cdf
@@ -27183,8 +27233,8 @@ list a		! from cache ...
  allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G018)           @XACT
  rdstride VAR      C:  9 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 54 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 55 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : VAR[I=2:4:2]
              FILENAME : bn_strides.cdf
@@ -27203,16 +27253,16 @@ 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
  getgrid EX#1     C:  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
@@ -27223,8 +27273,8 @@ LIST VAR[i=2:4:2]
  allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G018)           @XACT
  rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 47 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 54 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
@@ -27251,8 +27301,8 @@ LIST VAR[i=2:4:2,j=1:3:2]
  allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G010)           @XACT
  rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 27 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 54 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
@@ -27268,9 +27318,9 @@ 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
@@ -27284,9 +27334,9 @@ LIST VAR[I=1:10:3,j=1,k=1,l=1]    ! 1, 4, 7(3), 10(2)
  allocate dynamic grid (G010)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G010)           @XACT
  strip moduloing VAR on X axis:     1    10 dset:   1
- reading VAR      M: 55 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ 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
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 3 delta on X
@@ -27302,9 +27352,9 @@ 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]
@@ -27317,8 +27367,8 @@ LIST VAR[i=2:4:2,j=1:3:2]
  allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G010)           @XACT
  rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 47 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 55 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
@@ -27335,7 +27385,7 @@ LIST VAR[i=2:4:2,j=1:3:2]
  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
+ -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
@@ -27344,8 +27394,8 @@ LIST VAR[i=2:6:2,j=1:5:2]
  allocate dynamic grid (G010)          (AX023)   (AX024)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G010)           @XACT
  rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 55 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 47 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
@@ -27364,7 +27414,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
- -DELETE 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: 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
  
@@ -27378,8 +27428,8 @@ LIST VAR[i=2:4:2 at ave]
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G018)           @AVE
- reading VAR      M: 55 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- regrid  VAR      M: 47 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X at AVE
@@ -27401,7 +27451,7 @@ LIST VAR[i=2:4:2 at ave]
 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
+ -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
@@ -27415,8 +27465,8 @@ list/j=1/k=1/l=1 a[i=3:5]
  allocate dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G018)           @XACT
  rdstride BIGVAR   C: 10 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 27 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 47 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : BIGVAR[I=1:40:5]
              FILENAME : bn_strides.cdf
@@ -27429,7 +27479,7 @@ 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
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
@@ -27444,10 +27494,10 @@ list/k=1/l=1 a[i=3:5,j=1:8:2]
  allocate dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G018)           @XACT
  rdstride BIGVAR   C: 11 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 52 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 54 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ 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
- regrid  A        M: 49 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : BIGVAR[I=1:40:5]
                         regrid: 2 delta on Y
@@ -27466,12 +27516,12 @@ list/k=1/l=1 a[i=3:5,j=1:8:2]
 ! 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
+ -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)
@@ -27482,12 +27532,12 @@ 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]
@@ -27501,8 +27551,8 @@ LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
  allocate dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G010)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 54 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 55 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
@@ -27522,8 +27572,8 @@ LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
  allocate dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G010)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 52 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 55 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
@@ -27539,8 +27589,8 @@ 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
+ -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
 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
@@ -27555,8 +27605,8 @@ list/order=x/j=1/k=1/l=1 a
  allocate dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G018)           @XACT
  rdstride UNE-NVAR C: 10 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 52 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 54 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : UNEVENVAR[I=2:4:2]
              FILENAME : bn_strides.cdf
@@ -27574,8 +27624,8 @@ list/order=x/j=1/k=1/l=1 a		! from cache ...
  allocate dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G018)           @XACT
  rdstride UNE-NVAR C: 10 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 49 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 55 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : UNEVENVAR[I=2:4:2]
              FILENAME : bn_strides.cdf
@@ -27589,17 +27639,17 @@ 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
  getgrid EX#1     C:  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
@@ -27611,8 +27661,8 @@ LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
  allocate dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G018)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 52 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 54 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
@@ -27636,8 +27686,8 @@ LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2,j=1:5:2]
  allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G010)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 49 dset:   1 I:    1    2  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 54 dset:   1 I:    2    4  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ 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
  doing limits reconciliation on Y axis: UNEVENVAR
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
@@ -27651,11 +27701,11 @@ 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
@@ -27669,9 +27719,9 @@ LIST/order=x UNEVENVAR[I=1:30:7,j=1,k=1,l=1]    ! 1, 8, 15(5), 22(2)
  allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G010)           @XACT
  strip moduloing UNEVENVAR on X axis:     1    29 dset:   1
- reading UNE-NVAR M: 55 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ 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
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
@@ -27684,9 +27734,9 @@ 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]
@@ -27700,8 +27750,8 @@ LIST/k=1/l=1 UNEVENVAR[i=2:4:2,j=1:3:2]
  allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G010)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 55 dset:   1 I:    2    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X, on Y
@@ -27715,7 +27765,7 @@ LIST/k=1/l=1 UNEVENVAR[i=2:4:2,j=1:3:2]
  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
+ -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
@@ -27725,8 +27775,8 @@ LIST/k=1/l=1 UNEVENVAR[i=2:6:2,j=1:5:2]
  allocate dynamic grid (G010)          (AX024)   (AX026)   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G010)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:    2    6  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 55 dset:   1 I:    1    3  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 52 dset:   1 I:    2    6  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X, on Y
@@ -27743,7 +27793,7 @@ 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
+ -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
@@ -27752,8 +27802,8 @@ LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=2:8:2 at ave]
  eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G010)           @AVE
- reading UNE-NVAR M: 55 dset:   1 I:    1    9  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- regrid  UNE-NVAR M: 52 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X at AVE
@@ -27770,7 +27820,7 @@ LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=2:8:2 at ave]
  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
+ -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
@@ -27780,8 +27830,8 @@ LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=2:8:2]		! for comparison
  allocate dynamic grid (G010)          (AX026)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G010)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:    2    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 49 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 52 dset:   1 I:    2    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
@@ -27800,7 +27850,7 @@ 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
+ -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
@@ -27809,8 +27859,8 @@ LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=1:10:2 at ave]
  eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G010)           @AVE
- reading UNE-NVAR M: 49 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- regrid  UNE-NVAR M: 52 dset:   1 I:    1    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X at AVE
@@ -27835,7 +27885,7 @@ 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
+ -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
@@ -27844,8 +27894,8 @@ list bigvar[i=3:9:2]
  allocate dynamic grid (G010)          (AX026)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G010)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 54 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 52 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on X
@@ -27864,7 +27914,7 @@ list bigvar[i=3:9:2]
  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
+ -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
@@ -27873,8 +27923,8 @@ list bigvar[j=2:6:2]
  allocate dynamic grid (G010)          XAX1_40   (AX024)   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip regrid on Y: BIGVAR --> (G010)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 52 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 54 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on Y
@@ -27893,7 +27943,7 @@ list bigvar[j=2:6:2]
  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
+ -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
@@ -27902,8 +27952,8 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  allocate dynamic grid (G010)          (AX026)   (AX025)   (AX027)   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G010)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 52 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
@@ -27921,9 +27971,9 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1343.00  1345.00  1347.00  1349.00
  6   / 3:  1363.00  1365.00  1367.00  1369.00
 canc data/all
- -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
+ -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 BIGVAR   M: 44 dset:   1 I:    1    4  J:    1    3  K:    1    2  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
  
@@ -27937,8 +27987,8 @@ list bigvar[i=3:9:2]
  allocate dynamic grid (G018)          (AX027)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G018)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 54 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 55 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ 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: 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
              VARIABLE : VAR
                         regrid: 2 delta on X
@@ -27957,7 +28007,7 @@ list bigvar[i=3:9:2]
  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
+ -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 (G018)          ZAX1_20   (AX023)   XAX1_40   TAX1_10   NORMAL    NORMAL
  dealloc  dynamic grid (G018)          ZAX1_20   (AX023)   XAX1_40   TAX1_10   NORMAL    NORMAL
@@ -27966,8 +28016,8 @@ list bigvar[j=2:6:2]
  allocate dynamic grid (G018)          ZAX1_20   (AX023)   XAX1_40   TAX1_10   NORMAL    NORMAL
  strip regrid on Y: BIGVAR --> (G018)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 55 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 54 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on Y
@@ -27986,7 +28036,7 @@ list bigvar[j=2:6:2]
  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
+ -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
@@ -27995,8 +28045,8 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G018)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 55 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
+ 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: 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
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
@@ -28014,7 +28064,7 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1343.00  1543.00  1743.00  1943.00
  6   / 3:  1363.00  1563.00  1763.00  1963.00
 canc data/all
- -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 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
  
 use/order=zxy bn_strides
@@ -28027,8 +28077,8 @@ list bigvar[i=3:9:2]
  allocate dynamic grid (G018)          (AX025)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G018)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 55 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 54 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on X
@@ -28047,7 +28097,7 @@ list bigvar[i=3:9:2]
  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
+ -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
@@ -28056,8 +28106,8 @@ list bigvar[j=2:6:2]
  allocate dynamic grid (G018)          ZAX1_20   (AX026)   YAX1_30   TAX1_10   NORMAL    NORMAL
  strip regrid on Y: BIGVAR --> (G018)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 54 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 55 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ nulrgd  BIGVAR   M: 44 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
              VARIABLE : VAR
                         regrid: 2 delta on Y
@@ -28076,7 +28126,7 @@ list bigvar[j=2:6:2]
  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
+ -DELETE BIGVAR   M: 44 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
@@ -28085,8 +28135,8 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G018)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 54 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
@@ -28104,7 +28154,7 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1334.00  1534.00  1734.00  1934.00
  6   / 3:  1336.00  1536.00  1736.00  1936.00
 canc data/all
- -DELETE 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: 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
  
 ! now with xytvar
@@ -28132,8 +28182,8 @@ list xytvar[i=1:7:2]
  allocate dynamic grid (G018)          (AX027)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ nulrgd  XYTVAR   M: 44 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X
@@ -28151,7 +28201,7 @@ list xytvar[i=1:7:2]
  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
+ -DELETE XYTVAR   M: 44 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
@@ -28160,8 +28210,8 @@ list xytvar[j=2:6:2]
  allocate dynamic grid (G018)          XLON      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
  strip regrid on Y: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
@@ -28179,7 +28229,7 @@ list xytvar[j=2:6:2]
  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
+ -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
@@ -28188,8 +28238,8 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  allocate dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
+ nulrgd  XYTVAR   M: 44 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
@@ -28206,7 +28256,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  4N   / 2:  5041.00  5043.00  5045.00  5047.00
  2N   / 1:  5021.00  5023.00  5025.00  5027.00
 canc data/all
- -DELETE 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: 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
  
 use/order=yx bn_strides
@@ -28231,8 +28281,8 @@ list xytvar[i=1:7:2]
  allocate dynamic grid (G018)          (AX025)   XLON      NORMAL    TTIME     NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X
@@ -28250,7 +28300,7 @@ list xytvar[i=1:7:2]
  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
+ -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
@@ -28259,8 +28309,8 @@ list xytvar[j=2:6:2]
  allocate dynamic grid (G018)          YLAT      (AX026)   NORMAL    TTIME     NORMAL    NORMAL
  strip regrid on Y: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ nulrgd  XYTVAR   M: 44 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
@@ -28278,7 +28328,7 @@ list xytvar[j=2:6:2]
  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
+ -DELETE XYTVAR   M: 44 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
@@ -28287,8 +28337,8 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  allocate dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
@@ -28305,7 +28355,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  144   / 2:  5014.00  5034.00  5054.00  5074.00
  146   / 3:  5016.00  5036.00  5056.00  5076.00
 canc data/all
- -DELETE 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: 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
  
 use/order=tyx bn_strides
@@ -28330,8 +28380,8 @@ list xytvar[i=1:7:2]
  allocate dynamic grid (G018)          (AX027)   YLAT      NORMAL    XLON      NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ nulrgd  XYTVAR   M: 44 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
@@ -28349,7 +28399,7 @@ list xytvar[i=1:7:2]
  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
+ -DELETE XYTVAR   M: 44 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
@@ -28358,8 +28408,8 @@ list xytvar[j=2:6:2]
  allocate dynamic grid (G018)          TTIME     (AX023)   NORMAL    XLON      NORMAL    NORMAL
  strip regrid on Y: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
@@ -28377,7 +28427,7 @@ list xytvar[j=2:6:2]
  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
+ -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
@@ -28386,8 +28436,8 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  allocate dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
+ nulrgd  XYTVAR   M: 44 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on T
@@ -28404,7 +28454,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  4N   / 2:  1045.00  3045.00  5045.00  7045.00
  2N   / 1:  1025.00  3025.00  5025.00  7025.00
 canc data/all
- -DELETE 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: 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
  
 use/order=txy bn_strides
@@ -28429,8 +28479,8 @@ list xytvar[i=1:7:2]
  allocate dynamic grid (G018)          (AX025)   XLON      NORMAL    YLAT      NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
@@ -28448,7 +28498,7 @@ list xytvar[i=1:7:2]
  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
+ -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
@@ -28457,8 +28507,8 @@ list xytvar[j=2:6:2]
  allocate dynamic grid (G018)          TTIME     (AX026)   NORMAL    YLAT      NORMAL    NORMAL
  strip regrid on Y: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ nulrgd  XYTVAR   M: 44 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
@@ -28476,7 +28526,7 @@ list xytvar[j=2:6:2]
  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
+ -DELETE XYTVAR   M: 44 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
@@ -28485,8 +28535,8 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  allocate dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on T
@@ -28503,7 +28553,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  144   / 2:  1054.00  3054.00  5054.00  7054.00
  146   / 3:  1056.00  3056.00  5056.00  7056.00
 canc data/all
- -DELETE 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: 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
  
 ! map into Z instead of T
@@ -28530,8 +28580,8 @@ list/k=1:2 xytvar[i=1:7:2]
  allocate dynamic grid (G018)          (AX027)   XLON      YLAT      NORMAL    NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  8 dset:   1 I:    1    7  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    7  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ nulrgd  XYTVAR   M: 44 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
@@ -28549,7 +28599,7 @@ list/k=1:2 xytvar[i=1:7:2]
  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
+ -DELETE XYTVAR   M: 44 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
@@ -28559,8 +28609,8 @@ list/k=1:2 xytvar[j=2:6:2]
  allocate dynamic grid (G018)          TTIME     (AX023)   YLAT      NORMAL    NORMAL    NORMAL
  strip regrid on Y: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  8 dset:   1 I:    1    4  J:    2    6  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    4  J:    2    6  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
@@ -28578,7 +28628,7 @@ list/k=1:2 xytvar[j=2:6:2]
  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
+ -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
@@ -28587,8 +28637,8 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
  allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   NORMAL    NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
+ nulrgd  XYTVAR   M: 44 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on Z
@@ -28605,7 +28655,7 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
  144   / 2:  1054.00  3054.00  5054.00  7054.00
  146   / 3:  1056.00  3056.00  5056.00  7056.00
 canc data/all
- -DELETE 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: 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
  
  
@@ -28636,8 +28686,8 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G018)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 55 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 54 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -28653,7 +28703,7 @@ 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
+ -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
  
 use/order=-yx bn_strides
@@ -28668,9 +28718,9 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  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
+ -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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -28686,7 +28736,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1518.00  1558.00
  5   / 2:  1515.00  1555.00
 canc data/all
- -DELETE 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: 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
  
 use/order=y-x bn_strides
@@ -28701,9 +28751,9 @@ 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:    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
+ -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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -28719,7 +28769,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1582.00  1542.00
  5   / 2:  1585.00  1545.00
 canc data/all
- -DELETE 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: 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
  
 ! reference output
@@ -28733,8 +28783,8 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G018)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 54 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 55 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ 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: 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -28750,7 +28800,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1125.00  5125.00
  5   / 2:  1155.00  5155.00
 canc data/all
- -DELETE 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: 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
  
 ! note the reversal on axes 1,2 and 3 (X,Y,Z in memory -- NOT T)
@@ -28766,9 +28816,9 @@ 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: 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
+ -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: 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -28784,7 +28834,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  6775.00  2775.00
  5   / 2:  6745.00  2745.00
 canc data/all
- -DELETE 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: 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
  
 ! reference output
@@ -28798,8 +28848,8 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G018)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 55 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 54 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -28815,7 +28865,7 @@ 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
+ -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
  
 use/order=-t-x-y bn_strides
@@ -28830,9 +28880,9 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  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
+ -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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -28848,7 +28898,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  6758.00  2758.00
  5   / 2:  6755.00  2755.00
 canc data/all
- -DELETE 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: 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
  
 GO bn_reset
@@ -29106,7 +29156,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)
@@ -29130,15 +29180,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)
@@ -29167,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: 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
@@ -29189,16 +29239,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
@@ -29207,8 +29257,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
@@ -29233,7 +29283,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
@@ -29244,8 +29294,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]
@@ -29270,10 +29320,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
@@ -29281,8 +29331,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]
@@ -29303,11 +29353,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
@@ -29317,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: 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
@@ -29339,16 +29389,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
@@ -29357,8 +29407,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
@@ -29382,7 +29432,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
@@ -29390,9 +29440,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
@@ -29413,16 +29463,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
@@ -29431,9 +29481,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: 31 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
@@ -29456,7 +29506,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: 31 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]
@@ -29465,9 +29515,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: 31 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
@@ -29492,17 +29542,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: 27 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: 27 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: 27 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
@@ -29531,9 +29581,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
@@ -29557,18 +29607,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
@@ -29589,8 +29639,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
@@ -29599,9 +29649,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
@@ -29625,18 +29675,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
@@ -29661,7 +29711,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
@@ -29686,16 +29736,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
@@ -29726,7 +29776,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]
@@ -29751,17 +29801,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]
@@ -29788,7 +29838,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]
  
@@ -29815,17 +29865,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]
  
@@ -29859,7 +29909,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: 26 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]
  
@@ -29885,10 +29935,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
@@ -29896,7 +29946,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]
  
@@ -30448,7 +30498,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: 31 dset:   1 I:    1  180  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: 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
@@ -30469,14 +30519,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
@@ -30488,11 +30538,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
@@ -30527,10 +30577,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
@@ -30852,9 +30902,15 @@ say `a,return=isize`     ! no evaluation of a required -- just context
  getgrid A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
  pass #2 A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ pseudo  I        M: 97 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  !-> MESSAGE/CONTINUE 10
 10
 list/nohead a            ! evaluate it now
+ -DELETE I        M: 97 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
@@ -30874,6 +30930,7 @@ list/nohead a            ! evaluate it now
 let a = XSEQUENCE(j[j=1:5])
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  -DELETE A        M: 98 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE A        M: 99 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  -DELETE I        M: 97 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  -DELETE SST5SBX  M: 91 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
@@ -30882,13 +30939,13 @@ 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: 31 dset:   1 I:    1  180  J:    1   90  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: 30 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
@@ -31096,53 +31153,67 @@ 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
+ -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: 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: 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: 31 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
@@ -31162,20 +31233,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
@@ -31536,7 +31593,7 @@ 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
+ (AX003)   LATITUDE            41 r   10S                  2S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
  normal    E
@@ -31554,7 +31611,7 @@ 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
+ (AX003)   LATITUDE            41 r   10S                  2S
  normal    Z
  (AX011)   T (CYC/hour)         2 r   0.00034224           0.00068448
  normal    E
@@ -31563,7 +31620,7 @@ 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
+ (AX003)   LATITUDE            41 r   10S                  2S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
  normal    E
@@ -31580,7 +31637,7 @@ SHOW GRID "temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5",FFTA(sst[d=1,gx=temp[d=2],y=10
     GRID (G011)
  name       axis              # pts   start                end
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX004)   LATITUDE            41 r   10S                  2S
+ (AX003)   LATITUDE            41 r   10S                  2S
  normal    Z
  (AX001)   T (CYC/hour)         2 r   0.00034224           0.00068448
  normal    E
@@ -31588,7 +31645,7 @@ SHOW GRID "temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5",FFTA(sst[d=1,gx=temp[d=2],y=10
     GRID (G018)
  name       axis              # pts   start                end
  ABSTRACT  X             99999999 r   1                    1.E+08
- (AX004)   LATITUDE            41 r   10S                  2S
+ (AX003)   LATITUDE            41 r   10S                  2S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
  normal    E
@@ -31613,14 +31670,14 @@ SHOW GRID
     GRID (G011)
  name       axis              # pts   start                end
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX004)   LATITUDE            41 r   10S                  2S
+ (AX003)   LATITUDE            41 r   10S                  2S
  normal    Z
  (AX011)   T (CYC/hour)         2 r   0.00034224           0.00068448
  normal    E
  normal    F
 list/j=1:5 j
              VARIABLE : J
-                        axis (AX004)
+                        axis (AX003)
              SUBSET   : 5 points (LATITUDE)
  9.2S   / 5:  5.00000
  9.4S   / 4:  4.00000
@@ -31632,7 +31689,7 @@ SHOW GRID MYGRID
     GRID MYGRID
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX004)   LATITUDE            41 r   10S                  2S
+ (AX003)   LATITUDE            41 r   10S                  2S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
  normal    E
@@ -31642,14 +31699,14 @@ 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
+ (AX003)   LATITUDE            41 r   10S                  2S
  normal    Z
  (AX011)   T (CYC/hour)         2 r   0.00034224           0.00068448
  normal    E
  normal    F
 Dynamic axes:
     AXIS (AX011)                         use count:   1
-    AXIS (AX004)                         use count:   2
+    AXIS (AX003)                         use count:   2
     AXIS (AX020)                         use count:   1
  
  
@@ -34118,8 +34175,17 @@ SAMPLEL_MULTI(L_INDICES,DAT_TO_SAMPLE)
     Returns data sampled according to L indices which may vary in IJK
     L_INDICES: ordered indices
     DAT_TO_SAMPLE: data to sample using L indices
+SAMPLEF_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
+    Returns data sampled by interpolating to a set of times in F direction
+    DAT_TO_SAMPLE: data to sample at set of times in F
+    YR: Year(s) yyyy
+    MO: Month(s), integer mm
+    DAY: Day(s) of month dd
+    HR: Hour(s) hh
+    MIN: Minute(s) mm
+    SEC: Second(s) ss
 SAMPLET_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
-    Returns data sampled by interpolating to a set of times
+    Returns data sampled by interpolating to a set of times in T direction
     DAT_TO_SAMPLE: data to sample at set of times
     YR: Year(s) yyyy
     MO: Month(s), integer mm
@@ -34184,6 +34250,14 @@ SAMPLE_FAST_I(V,Indices)
     Fast 1D sample variable using set of indices
     V: Variable to sample
     Indices: List of indices at which to sample
+SAMPLE_FAST_I_STR(S,Indices)
+    Fast 1D sample string variable using set of indices
+    S: String Variable to sample (STRING)
+    Indices: List of indices at which to sample
+SAMPLE_FAST_I(V,Indices)
+    Fast 1D sample variable using set of indices
+    V: Variable to sample
+    Indices: List of indices at which to sample
  
 go bench_sorti.jnl
  
@@ -35299,6 +35373,10 @@ CURV_TO_RECT_MAP(lon_in,lat_in,grid_out,radius)
     lat_in: Source grid latitudes (2-D) (degrees)
     grid_out: Any variable on destination Longitude-Latitude grid, Lon and Lat (degrees)
     radius: Source points falling within radius are included in mapping to destination point (degrees)
+CURV_TO_RECT_FSU(V,mapping)
+    Alt func to Apply mapping to regrid from curvilinear to rectangular grid
+    V: Variable to regrid, on curvilinear grid V(x,y,z,t)
+    mapping: mapping computed by curv_to_rect_MAP
  
 use tripolar_subset.nc
 shade ht, geolon_vert_t, geolat_vert_t
@@ -35387,12 +35465,12 @@ list/L=15:20 tax_month(t[gt=temp],temp), tax_yearfrac(t[gt=temp],temp)
  Column  1: TAX_MONTH(T[GT=TEMP],TEMP)
  Column  2: TAX_YEARFRAC(T[GT=TEMP],TEMP)
                  (C001,V001)  (C001,V009)
-10-NOV-1982 16 / 15:  11.0000  0.860274
-16-NOV-1982 18 / 16:  11.0000  0.876712
-22-NOV-1982 20 / 17:  11.0000  0.893151
-28-NOV-1982 22 / 18:  11.0000  0.909589
+10-NOV-1982 16 / 15:  11.0000  0.862100
+16-NOV-1982 18 / 16:  11.0000  0.878767
+22-NOV-1982 20 / 17:  11.0000  0.895434
+28-NOV-1982 22 / 18:  11.0000  0.912100
 05-DEC-1982 00 / 19:  12.0000  0.928767
-11-DEC-1982 02 / 20:  12.0000  0.945205
+11-DEC-1982 02 / 20:  12.0000  0.945434
 list/L=15:20 tax_year(t[gt=temp],temp)
              VARIABLE : TAX_YEAR(T[GT=TEMP],TEMP)
              FILENAME : gt4d011.cdf
@@ -35450,12 +35528,12 @@ list/nohead b            ! using rdstride
  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:331 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
+ -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
  18   / 1:  18.0000
  20   / 2:  20.0000
@@ -35470,9 +35548,9 @@ list/nohead a[i=1:25:3]  ! no strides --> reads full region without strides
  allocate dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  strip regrid on X: A --> (G023)           @XACT
  strip moduloing A on X axis:     1    25 dset:   1
- reading A        M:325 dset:   1 I:    1   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ reading A        M:340 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
+ 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
  1    / 1:   1.0000
  4    / 2:   4.0000
@@ -35485,7 +35563,7 @@ list/nohead a[i=1:25:3]  ! no strides --> reads full region without strides
  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
+ -DELETE A        M:328 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
@@ -35495,12 +35573,12 @@ list/nohead b            ! reuse of cached result
  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:328 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
+ -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
  18   / 1:  18.0000
  20   / 2:  20.0000
@@ -35703,7 +35781,7 @@ list/nohead a[i=106:145:5]
 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
+ -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
@@ -35714,12 +35792,12 @@ list/nohead str[i=18:23:2] ! using rdstride
  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
+ -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
  18   / 1:"r"
  20   / 2:"t"
@@ -35734,9 +35812,9 @@ list/nohead str[i=1:25:3]  ! no strides --> reads full region without strides
  allocate dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  strip regrid on X: STR --> (G023)           @XACT
  strip moduloing STR on X axis:     1    25 dset:   1
- reading STR      M:334 dset:   1 I:    1   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ reading STR      M:327 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
+ 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
  1    / 1:"a"
  4    / 2:"d"
@@ -36642,6 +36720,8 @@ list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", ") + "fri
 list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
  1   / 1:"now, goodbye, my friend" "now, hello, friend"      
  2   / 2:"then, goodbye, my friend""then, hello, friend"     
+ 
+SET MODE IGNORE
 list/nohead ysequence({98, 99})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
  1   / 1:........
  2   / 2:........
@@ -36656,18 +36736,11 @@ list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "g
  2   / 2:........
  
 ! numerical operators applied to strings
+ 
 list/nohead "b" - {"a","b"}
- 1   / 1:....
- 2   / 2:....
 list/nohead "b" * {"a","b"}
- 1   / 1:....
- 2   / 2:....
 list/nohead "b" / {"a","b"}
- 1   / 1:....
- 2   / 2:....
 list/nohead "b" ^ {"a","b"}
- 1   / 1:....
- 2   / 2:....
 list/nohead {"a","b"} + 1
  1   / 1:....
  2   / 2:....
@@ -36678,18 +36751,14 @@ list/nohead 1 - {"a","b"}
  1   / 1:....
  2   / 2:....
 list/nohead SIN({"a","b","c"})
- 1   / 1:....
- 2   / 2:....
- 3   / 3:....
 list/nohead MAX("a",{"a","b","c"})
- 1   / 1:....
- 2   / 2:....
- 3   / 3:....
 list/nohead MAX(1,{"a","b","c"})
  1   / 1:....
  2   / 2:....
  3   / 3:....
  
+CANCEL MODE IGNORE
+ 
 ! transformations applied to strings
 let a = {"a","b","c","d"}
 list a[i=@shf]
@@ -36984,13 +37053,13 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
  Column  8: V8
  Column  9: V9
  Column 10: V10
-                  V1  V2    V3       V4       V5     V6     V7       V8     V9     V10
-1   / 1: "one"       ...  1.10000 -24.0000  130.000 " "    10.000 "word 1" " "      ....
-2   / 2: "two"       ...  2.20000  24.0000 -130.000 "2S"     .... "word 2" " "      ....
-3   / 3: "three"     ...  3.30000  24.0000  130.000 "3N"    0.030 " wd 3 " " "      ....
-4   / 4: " "         ...     ....     ....     .... " "      .... " "      " "      ....
-5   / 5: "five"      ...  4.40000 -24.0000 -130.000 "91" -400.000 "word 4" "aa"  77.0000
-6   / 6: "extra line"...     ....     ....     .... " "      .... " "      " "      ....
+                  V1   V2     V3       V4       V5     V6     V7       V8     V9     V10
+1   / 1: "one"        ....  1.10000 -24.0000  130.000 " "    10.000 "word 1" " "      ....
+2   / 2: "two"        ....  2.20000  24.0000 -130.000 "2S"     .... "word 2" " "      ....
+3   / 3: "three"      ....  3.30000  24.0000  130.000 "3N"    0.030 " wd 3 " " "      ....
+4   / 4: " "          ....     ....     ....     .... " "      .... " "      " "      ....
+5   / 5: "five"       ....  4.40000 -24.0000 -130.000 "91" -400.000 "word 4" "aa"  77.0000
+6   / 6: "extra line" ....     ....     ....     .... " "      .... " "      " "      ....
  
 ! insist that all columns be treated as string
 file/format=delim/skip=1/type=text bn_delimited_read_1.dat
@@ -37058,13 +37127,13 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
  Column  8: V8
  Column  9: V9
  Column 10: V10
-        V1  V2    V3       V4       V5       V6       V7    V8 V9    V10
-1   / 1:......  1.10000     ....     ....     ....   10.000......     ....
-2   / 2:......  2.20000     ....     ....     ....     ..........     ....
-3   / 3:......  3.30000  24.0000  130.000     ....    0.030......     ....
-4   / 4:......     ....     ....     ....     ....     ..........     ....
-5   / 5:......  4.40000 -24.0000 -130.000  91.0000 -400.000......  77.0000
-6   / 6:......     ....     ....     ....     ....     ..........     ....
+          V1   V2     V3       V4       V5       V6       V7     V8   V9     V10
+1   / 1: .... ....  1.10000     ....     ....     ....   10.000 .... ....     ....
+2   / 2: .... ....  2.20000     ....     ....     ....     .... .... ....     ....
+3   / 3: .... ....  3.30000  24.0000  130.000     ....    0.030 .... ....     ....
+4   / 4: .... ....     ....     ....     ....     ....     .... .... ....     ....
+5   / 5: .... ....  4.40000 -24.0000 -130.000  91.0000 -400.000 .... ....  77.0000
+6   / 6: .... ....     ....     ....     ....     ....     .... .... ....     ....
  
 ! insist that all columns be treated as latitude
 file/format=delim/skip=1/type=latitude bn_delimited_read_1.dat
@@ -37081,13 +37150,13 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
  Column  8: V8 is V8 (degrees_north)(Latitude)
  Column  9: V9 is V9 (degrees_north)(Latitude)
  Column 10: V10 is V10 (degrees_north)(Latitude)
-        V1  V2    V3       V4       V5       V6       V7    V8 V9    V10
-1   / 1:......  1.10000 -24.0000     ....     ....   10.000......     ....
-2   / 2:......  2.20000  24.0000     ....  -2.0000     ..........     ....
-3   / 3:......  3.30000  24.0000  130.000   3.0000    0.030......     ....
-4   / 4:......     ....     ....     ....     ....     ..........     ....
-5   / 5:......  4.40000 -24.0000 -130.000  91.0000 -400.000......  77.0000
-6   / 6:......     ....     ....     ....     ....     ..........     ....
+          V1   V2     V3       V4       V5       V6       V7     V8   V9     V10
+1   / 1: .... ....  1.10000 -24.0000     ....     ....   10.000 .... ....     ....
+2   / 2: .... ....  2.20000  24.0000     ....  -2.0000     .... .... ....     ....
+3   / 3: .... ....  3.30000  24.0000  130.000   3.0000    0.030 .... ....     ....
+4   / 4: .... ....     ....     ....     ....     ....     .... .... ....     ....
+5   / 5: .... ....  4.40000 -24.0000 -130.000  91.0000 -400.000 .... ....  77.0000
+6   / 6: .... ....     ....     ....     ....     ....     .... .... ....     ....
  
 ! read only the first line of the file
 spawn head -1 bn_delimited_read_1.dat
@@ -37109,8 +37178,8 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
  Column  8: V8
  Column  9: V9
  Column 10: V10
-             V1    V2     V3     V4     V5    V6 V7  V8  V9 V10
-I / *:    "col1" "col2" "col3" "col4" "col5" " "... " " " "....
+             V1    V2     V3     V4     V5    V6  V7   V8  V9  V10
+I / *:    "col1" "col2" "col3" "col4" "col5" " " .... " " " " ....
 columns/grid=g1/var=c1,c2,c3,c4,c5 bn_delimited_read_1.dat
 list c1,c2,c3,c4,c5
              DATA SET: ./bn_delimited_read_1.dat
@@ -37228,11 +37297,11 @@ list v1,v2,v3,v4,v5,v6,v7,v8
  Column  6: V6 is V6 (days)(Julian days since 1-Jan-1900)
  Column  7: V7 is V7 (days)(Julian days since 1-Jan-1900)
  Column  8: V8 is V8 (days)(Julian days since 1-Jan-1900)
-              V1     V2    V3 V4    V5       V6    V7 V8
-1   / 1:  36493.0  36218.0......  36493.0  36218.0......
-2   / 2:  36494.0  36219.0......  36494.0  36219.0......
-3   / 3:     ....     ..........  36495.0  36220.0......
-4   / 4:  36496.0  36221.0......  36496.0  36221.0......
+              V1     V2     V3   V4     V5       V6     V7   V8
+1   / 1:  36493.0  36218.0 .... ....  36493.0  36218.0 .... ....
+2   / 2:  36494.0  36219.0 .... ....  36494.0  36219.0 .... ....
+3   / 3:     ....     .... .... ....  36495.0  36220.0 .... ....
+4   / 4:  36496.0  36221.0 .... ....  36496.0  36221.0 .... ....
 show data 2
      currently SET data sets:
     2> ./bn_delimited_read_date_time.dat  (default)
@@ -37267,11 +37336,11 @@ list v1,v2,v3,v4,v5,v6,v7,v8
  Column  6: V6 is V6 (hours)(Time of day)
  Column  7: V7 is V7 (hours)(Time of day)
  Column  8: V8 is V8 (hours)(Time of day)
-        V1  V2    V3       V4    V5 V6    V7       V8
-1   / 1:......  12.0000  13.7601......  12.0000  13.7601
-2   / 2:......   1.0037  14.7601......   1.0037  14.7601
-3   / 3:......     ....     ..........   2.0000  15.7500
-4   / 4:......   3.0000  16.7601......   3.0000  16.7601
+          V1   V2     V3       V4     V5   V6     V7       V8
+1   / 1: .... ....  12.0000  13.7601 .... ....  12.0000  13.7601
+2   / 2: .... ....   1.0037  14.7601 .... ....   1.0037  14.7601
+3   / 3: .... ....     ....     .... .... ....   2.0000  15.7500
+4   / 4: .... ....   3.0000  16.7601 .... ....   3.0000  16.7601
 show data 2
      currently SET data sets:
     2> ./bn_delimited_read_date_time.dat  (default)
@@ -39655,7 +39724,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)
@@ -39667,7 +39736,7 @@ lsxn/x=100 $1  ! void point above, alone (via "modulo-void-filling")
  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
+ 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)
@@ -39675,7 +39744,7 @@ 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)
@@ -39683,7 +39752,7 @@ lsxn/x=45:100 $1  ! void above (via subspan-fill)
  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
+ 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)
@@ -39691,7 +39760,7 @@ lsxn/x=0:100 $1  ! voids above & below (via modulo)
  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
+ 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
              ....  11.0000  12.0000  13.0000  14.0000  15.0000  16.0000     ....
 set mode/last diag
@@ -39947,37 +40016,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 (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
  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
- strip regrid on X: V2D_REG --> (G002)           @XACT
+ 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 (G002)          (AX004)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
+ dealloc  dynamic grid (G004)          (AX003)   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
+ 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
  getgrid EX#1     C:  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 (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
  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
- strip regrid on T: V2D_REG --> (G002)           @XACT
+ allocate dynamic grid (G004)          XAX_SUBSPANORMAL    NORMAL    (AX003)   NORMAL    NORMAL
+ strip regrid on T: V2D_REG --> (G004)           @XACT
  strip moduloing V2D_REG on T axis:     1    15 dset:   1
  rdstride V2D_REG  C:  9 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
  doing moduloing V2D_REG on T axis:     1     5 dset:   1
  -DELETE V2D_REG  M: 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
+ dealloc  dynamic grid (G004)          XAX_SUBSPANORMAL    NORMAL    (AX003)   NORMAL    NORMAL
  16-JAN-0000 / 1:   11.000
  16-MAR-0000 / 2:   71.000
  15-MAY-0000 / 3:  131.000
@@ -40044,7 +40113,7 @@ list/nohead/l=1001:1009 time_series[gt=($TAXNAME)@mod]
  
 ! test modulo string arrays
 list $1_strings[i=5:7]  	! via IS_SUBSPAN_FILL
- !-> list vreg_strings[i=5:7]  	! via IS_SUBSPAN_FILL
+ !-> list vreg_strings[i=5:7]
              VARIABLE : MY_STRINGS[GX=XAX_SUBSPAN at ASN]
              FILENAME : test_subspan_modulo.nc
              SUBSET   : 3 points (X)
@@ -40052,7 +40121,7 @@ list $1_strings[i=5:7]  	! via IS_SUBSPAN_FILL
  46   / 6:"a6"
  93.5 / 7:""  
 list $1_strings[i=1013:1024] 	! via IS_MODULO
- !-> list vreg_strings[i=1013:1024] 	! via IS_MODULO
+ !-> list vreg_strings[i=1013:1024]
              VARIABLE : MY_STRINGS[GX=XAX_SUBSPAN at ASN]
              FILENAME : test_subspan_modulo.nc
              SUBSET   : 12 points (X)
@@ -40476,37 +40545,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 (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
  eval    EX#1     C:  4 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX014)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
- strip regrid on X: V2D_IRR --> (G018)           @XACT
+ 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 (G018)          (AX014)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX014)   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
+ 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
  getgrid EX#1     C:  5 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 (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
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX014)   NORMAL    NORMAL
- strip regrid on T: V2D_IRR --> (G018)           @XACT
+ allocate dynamic grid (G014)          XIRREG_SUBNORMAL    NORMAL    (AX014)   NORMAL    NORMAL
+ strip regrid on T: V2D_IRR --> (G014)           @XACT
  strip moduloing V2D_IRR on T axis:     1    15 dset:   1
  rdstride V2D_IRR  C:  9 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
  doing moduloing V2D_IRR on T axis:     1     5 dset:   1
  -DELETE V2D_IRR  M:148 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
  nulrgd  V2D_IRR  M:148 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
  -DELETE V2D_IRR  M:149 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1   15  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX014)   NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          XIRREG_SUBNORMAL    NORMAL    (AX014)   NORMAL    NORMAL
  16-JAN-0000 / 1:   11.000
  15-MAR-0000 / 2:   70.249
  15-MAY-0000 / 3:  131.249
@@ -40573,7 +40642,7 @@ list/nohead/l=1001:1009 time_series[gt=($TAXNAME)@mod]
  
 ! test modulo string arrays
 list $1_strings[i=5:7]  	! via IS_SUBSPAN_FILL
- !-> list virr_strings[i=5:7]  	! via IS_SUBSPAN_FILL
+ !-> list virr_strings[i=5:7]
              VARIABLE : MY_STRINGS[GX=XIRREG_SUBSPAN at ASN]
              FILENAME : test_subspan_modulo.nc
              SUBSET   : 3 points (X)
@@ -40581,7 +40650,7 @@ list $1_strings[i=5:7]  	! via IS_SUBSPAN_FILL
  46   / 6:"a6"
  93.5 / 7:""  
 list $1_strings[i=1013:1024] 	! via IS_MODULO
- !-> list virr_strings[i=1013:1024] 	! via IS_MODULO
+ !-> list virr_strings[i=1013:1024]
              VARIABLE : MY_STRINGS[GX=XIRREG_SUBSPAN at ASN]
              FILENAME : test_subspan_modulo.nc
              SUBSET   : 12 points (X)
@@ -40739,7 +40808,8 @@ show modes
       LATIT_LABEL      SET              -4
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         months
-      6D_LAB           SET
+      E_LABEL          SET               1
+      F_LABEL          SET               1
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -40758,7 +40828,8 @@ show modes
       NODATA_LAB       SET
       SHRINK_YLAB   CANCELLED
       CURVILINEAR   CANCELLED
-      SIGMA         CANCELLED
+      LAYERZ        CANCELLED
+      6D_LAB           SET
 contour/i=1:10/j=1:10 i/j
  
 ! restore the labels, logo still gone
@@ -44363,16 +44434,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: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
  !-> 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:140 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:140 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
@@ -44384,16 +44455,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: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
  !-> 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:131 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:131 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
@@ -44853,12 +44924,12 @@ load a
  allocate dynamic grid (G022)          (AX001)   (AX023)   NORMAL    (AX025)   NORMAL    NORMAL
  strip regrid on X: TAUX --> (G022)           @XACT
  rdstride TAUX     C:  9 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- nulrgd  TAUX     M:151 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE TAUX     M:146 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
+ 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
 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: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
  
 def grid/like=taux agrid
  dealloc  dynamic grid (G022)          (AX001)   (AX023)   NORMAL    (AX025)   NORMAL    NORMAL
@@ -44880,13 +44951,13 @@ load a
  allocate dynamic grid (G022)          (AX023)   (AX001)   NORMAL    (AX016)   NORMAL    NORMAL
  strip regrid on X: TAUX --> (G022)           @XACT
  rdstride TAUX     C:  9 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- nulrgd  TAUX     M:146 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE TAUX     M:151 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
+ 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
  
 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: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
 can data/all
  dealloc  dynamic grid (G022)          (AX023)   (AX001)   NORMAL    (AX016)   NORMAL    NORMAL
  dealloc  dynamic grid (G022)          (AX023)   (AX001)   NORMAL    (AX016)   NORMAL    NORMAL
@@ -44926,20 +44997,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:149 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 (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
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX040)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G014)           @XACT
+ allocate dynamic grid (G017)          (AX040)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ strip regrid on X: VAR --> (G017)           @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: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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -44954,19 +45025,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 (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
  getgrid EX#1     C:  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 (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
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX009)   (AX041)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G014)           @XACT
+ allocate dynamic grid (G017)          (AX009)   (AX041)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ strip regrid on X: VAR --> (G017)           @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: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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -44981,25 +45052,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: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
  
 ! 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 (G017)          (AX009)   (AX041)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX009)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX009)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX009)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX009)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G014)           @XACT
+ allocate dynamic grid (G017)          (AX009)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ strip regrid on X: VAR --> (G017)           @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:149 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: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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 3 delta on X
              FILENAME : bn_strides.cdf
@@ -45014,24 +45085,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: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
  
 ! 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 (G017)          (AX009)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX041)   (AX040)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX041)   (AX040)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX041)   (AX040)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX041)   (AX040)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G014)           @XACT
+ allocate dynamic grid (G017)          (AX041)   (AX040)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ strip regrid on X: VAR --> (G017)           @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: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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -45046,19 +45117,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 (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
  getgrid EX#1     C:  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 (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
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX041)   (AX009)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G014)           @XACT
+ allocate dynamic grid (G017)          (AX041)   (AX009)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ strip regrid on X: VAR --> (G017)           @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: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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -45075,24 +45146,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 (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
 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 (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
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    3    6  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  eval    A        C:  7 dset:   1 I:    3    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- strip regrid on X: BIGVAR --> (G014)           @XACT
+ allocate dynamic grid (G017)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ strip regrid on X: BIGVAR --> (G017)           @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: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
              VARIABLE : BIGVAR[I=1:40:5]
              FILENAME : bn_strides.cdf
              SUBSET   : 3 points (X)
@@ -45104,26 +45175,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:137 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 (G017)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G001)          (AX041)   (AX040)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G001)          (AX041)   (AX040)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G001)          (AX041)   (AX040)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    3    6  J:    2    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G001)          (AX041)   (AX040)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- strip regrid on Y: A --> (G001)           @XACT
+ allocate dynamic grid (G002)          (AX041)   (AX040)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ strip regrid on Y: A --> (G002)           @XACT
  eval    A        C:  8 dset:   1 I:    3    5  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- strip regrid on X: BIGVAR --> (G014)           @XACT
+ allocate dynamic grid (G017)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ strip regrid on X: BIGVAR --> (G017)           @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:136 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: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
+ 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
              VARIABLE : BIGVAR[I=1:40:5]
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -45140,27 +45211,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:136 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: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 A        M:152 dset:   1 I:    3    5  J:    1    4  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 (G002)          (AX041)   (AX040)   ZAX1_20   TAX1_10   NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G001)          (AX009)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G001)          (AX009)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G001)          (AX009)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    3    6  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G001)          (AX009)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip regrid on X: UNEVENVAR --> (G001)           @XACT
+ allocate dynamic grid (G002)          (AX009)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ strip regrid on X: UNEVENVAR --> (G002)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  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: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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -45178,19 +45249,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 (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
  getgrid EX#1     C:  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 (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
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G001)          (AX040)   (AX042)   (AX043)   TAX1_10   NORMAL    NORMAL
- strip regrid on X: BIGVAR --> (G001)           @XACT
+ allocate dynamic grid (G002)          (AX040)   (AX042)   (AX043)   TAX1_10   NORMAL    NORMAL
+ strip regrid on X: BIGVAR --> (G002)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  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: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
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45207,23 +45278,23 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1343.00  1345.00  1347.00  1349.00
  6   / 3:  1363.00  1365.00  1367.00  1369.00
 canc data/all
- -DELETE BIGVAR   M:151 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G001)          (AX040)   (AX042)   (AX043)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M: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
  
 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 (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
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_10   NORMAL    NORMAL
- strip regrid on X: BIGVAR --> (G014)           @XACT
+ allocate dynamic grid (G017)          (AX043)   (AX042)   (AX040)   TAX1_10   NORMAL    NORMAL
+ strip regrid on X: BIGVAR --> (G017)           @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: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
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45240,8 +45311,8 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1343.00  1543.00  1743.00  1943.00
  6   / 3:  1363.00  1563.00  1763.00  1963.00
 canc data/all
- -DELETE BIGVAR   M:147 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M: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
  
 ! now with xytvar
 cancel region
@@ -45250,16 +45321,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 (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
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX042)   (AX043)   NORMAL    (AX041)   NORMAL    NORMAL
- strip regrid on X: XYTVAR --> (G014)           @XACT
+ allocate dynamic grid (G017)          (AX042)   (AX043)   NORMAL    (AX041)   NORMAL    NORMAL
+ strip regrid on X: XYTVAR --> (G017)           @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: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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -45277,8 +45348,8 @@ 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 (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
  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
@@ -45292,16 +45363,16 @@ show grid xytvar
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  dealloc  dynamic grid EGRID           XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
  getgrid EX#1     C:  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 (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
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX043)   (AX042)   NORMAL    (AX040)   NORMAL    NORMAL
- strip regrid on X: XYTVAR --> (G014)           @XACT
+ allocate dynamic grid (G017)          (AX043)   (AX042)   NORMAL    (AX040)   NORMAL    NORMAL
+ strip regrid on X: XYTVAR --> (G017)           @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: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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -45317,8 +45388,8 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  4N   / 2:  5041.00  5043.00  5045.00  5047.00
  2N   / 1:  5021.00  5023.00  5025.00  5027.00
 canc data/all
- -DELETE XYTVAR   M:147 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   NORMAL    (AX040)   NORMAL    NORMAL
+ -DELETE XYTVAR   M: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
  
 ! map into Z instead of T
 use/order=zxy bn_strides
@@ -45337,16 +45408,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 (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
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   NORMAL    NORMAL    NORMAL
- strip regrid on X: XYTVAR --> (G014)           @XACT
+ allocate dynamic grid (G017)          (AX042)   (AX043)   (AX041)   NORMAL    NORMAL    NORMAL
+ strip regrid on X: XYTVAR --> (G017)           @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: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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on Z
              FILENAME : bn_strides.cdf
@@ -45362,8 +45433,8 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
  144   / 2:  1054.00  3054.00  5054.00  7054.00
  146   / 3:  1056.00  3056.00  5056.00  7056.00
 canc data/all
- -DELETE XYTVAR   M:151 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   NORMAL    NORMAL    NORMAL
+ -DELETE XYTVAR   M: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
  
  
 cancel region; set region/l=1
@@ -45372,16 +45443,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 (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
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_6    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G014)           @XACT
+ allocate dynamic grid (G017)          (AX043)   (AX042)   (AX040)   TAX1_6    NORMAL    NORMAL
+ strip regrid on X: MIDVAR --> (G017)           @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: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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45396,25 +45467,25 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1512.00  1552.00
  5   / 2:  1515.00  1555.00
 canc data/all
- -DELETE MIDVAR   M:147 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_6    NORMAL    NORMAL
+ -DELETE MIDVAR   M: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
  
 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 (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
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   TAX1_6    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G014)           @XACT
+ allocate dynamic grid (G017)          (AX042)   (AX043)   (AX041)   TAX1_6    NORMAL    NORMAL
+ strip regrid on X: MIDVAR --> (G017)           @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: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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45429,23 +45500,23 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1518.00  1558.00
  5   / 2:  1515.00  1555.00
 canc data/all
- -DELETE MIDVAR   M:147 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   TAX1_6    NORMAL    NORMAL
+ -DELETE MIDVAR   M: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
  
 ! 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 (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
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G014)           @XACT
+ allocate dynamic grid (G017)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
+ strip regrid on X: MIDVAR --> (G017)           @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: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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45460,26 +45531,26 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1125.00  5125.00
  5   / 2:  1155.00  5155.00
 canc data/all
- -DELETE MIDVAR   M:151 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M: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
  
 ! 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 (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
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G014)           @XACT
+ allocate dynamic grid (G017)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
+ strip regrid on X: MIDVAR --> (G017)           @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: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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45494,23 +45565,23 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  6775.00  2775.00
  5   / 2:  6745.00  2745.00
 canc data/all
- -DELETE MIDVAR   M:151 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M: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
  
 ! 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 (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
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G014)           @XACT
+ allocate dynamic grid (G017)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
+ strip regrid on X: MIDVAR --> (G017)           @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: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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45525,25 +45596,25 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1152.00  5152.00
  5   / 2:  1155.00  5155.00
 canc data/all
- -DELETE MIDVAR   M:147 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M: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
  
 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 (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
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G014)           @XACT
+ allocate dynamic grid (G017)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
+ strip regrid on X: MIDVAR --> (G017)           @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: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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45558,8 +45629,8 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  6758.00  2758.00
  5   / 2:  6755.00  2755.00
 canc data/all
- -DELETE MIDVAR   M:147 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M: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
  
 ! DEFINE AXIS can get the axis too long (bug 673)
 GO bn_reset
@@ -48035,7 +48106,7 @@ show data/full
      NCEP Ocean Analysis
  name     title                             I         J         K         L         M         N
  TEMP     temperature                      1:1       1:1       1:19      1:1       ...       ...
-             degree_Celsius on grid GGH1 with 1.E-34 & NaN for missing data
+             degree_Celsius on grid GGH1 with -1.E+34 & NaN for missing data
              X=139.8E:140.8E  Y=0.5S:0.5N  Z=0:375  
  
   time range: FEB-1980
@@ -48310,11 +48381,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.93
+ LAB 1  8.000E+00  7.200E+00 0.060    0  SYSTEM  @ASFERRET (beta) Ver.6.951
  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  @AS29-OCT-2014 16:03:42
+ LAB 3  8.000E+00  7.000E+00 0.060    0  SYSTEM  @AS09-NOV-2015 15:03: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
@@ -48943,9 +49014,9 @@ GO err580_irreg_bounds.jnl
 ! the bounds seem to be ignored; axis is seen as regular.
 ! Bug 1160 reported by Andrew.
  
-yes? def ax/t/edge time = {0,1,3}
-yes? let a = t[gt=time]
-yes? show grid/t a
+def ax/t/edge time = {0,1,3}
+let a = t[gt=time]
+show grid/t a
     GRID (G011)
  name       axis              # pts   start                end
  normal    X
@@ -48959,17 +49030,17 @@ yes? show grid/t a
        1>  0.5                   1          0
        2>  2                     2          1
  
-yes? save/clob/file=a.nc a
+save/clob/file=a.nc a
 sp echo "err580_irreg_bounds.jnl --- " >> all_ncdump.out
-yes? sp ncdump a.nc >> all_ncdump.out
+sp ncdump a.nc >> all_ncdump.out
  
 can data/all
 can var/all
 can mem
  
 !  T axis was marked as regular
-yes? use a.nc
-yes? show grid/t a
+use a.nc
+show grid/t a
     GRID GSI1
  name       axis              # pts   start                end
  normal    X
@@ -49591,7 +49662,7 @@ GO bn_long_revision_num.jnl
  
 ! ferret version
 sh sym FERRET_VERSION
-FERRET_VERSION = "6.93"
+FERRET_VERSION = "6.951"
  
 ! history attribute
 let a = 12
@@ -49609,7 +49680,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.93:
+ Commands in Program FERRET (beta) version6.951:
  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
@@ -49621,7 +49692,7 @@ 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/SIGMA
+ SET VARIABLE/TITLE/UNIT/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
@@ -49640,7 +49711,7 @@ sho command
        /HIDDEN
  SHOW MODE/ALL
  SHOW MOVIE/ALL
- SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/SIGMA
+ SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ
        /CURVILIN
  SHOW COMMANDS/ALL
  SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
@@ -49664,7 +49735,7 @@ sho command
  CANCEL MODE
  CANCEL MOVIE/ALL
  CANCEL VIEWPORT
- CANCEL VARIABLE/ALL/DATASET/SIGMA/CURVILIN
+ CANCEL VARIABLE/ALL/DATASET/LAYERZ/CURVILIN/NOERROR
  CANCEL AXIS/MODULO/ALL/DEPTH/STRIDE
  CANCEL GRID
  CANCEL ATTRIBUT/OUTPUT/DATA
@@ -49681,11 +49752,11 @@ sho command
        /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/SIGMA
+       /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
+       /NOYADJUS/KEY/RIBBON/LEVELS/PALETTE/FAST/MISSING/GAPLOC
  GO/HELP
  HELP
  LOAD/TEMPORY/PERMANT/I/J/K/L/M/N/X/Y/Z/T/E/F/D/NAME
@@ -49701,7 +49772,8 @@ sho command
  DEFINE SYMBOL
  DEFINE ATTRIBUT/D/TYPE/OUTPUT/QUIET
  DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/E/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/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
@@ -49728,6 +49800,7 @@ sho command
           /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
  
@@ -49745,7 +49818,7 @@ go ptest
 PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
  
 sh sym win_title
-WIN_TITLE = "29-Oct-14:16:02"
+WIN_TITLE = "9-Nov-15:15:02"
  
 set win/title="set the title"
 sho sym win_title
@@ -49763,7 +49836,7 @@ sho sym win_title
 WIN_TITLE = "_"
  
 set win/title="($session_date):($session_time)"
- !-> set win/title="29-Oct-14:16:02"
+ !-> set win/title=" 9-Nov-15:15:02"
  
 ! If the date or time starts with a blank then we get an extra
 ! underscore in the window title. Evaluating the symbols into
@@ -49772,16 +49845,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 = 29-Oct-14
+ !-> DEFINE SYMBOL the_date =  9-Nov-15
 DEFINE SYMBOL the_time = ($session_time"SESSION_TIME")
- !-> DEFINE SYMBOL the_time = 16:02
+ !-> DEFINE SYMBOL the_time = 15:02
 SET WIN/TITLE="($the_date):($the_time)"
- !-> SET WIN/TITLE="29-Oct-14:16:02"
+ !-> SET WIN/TITLE="9-Nov-15:15:02"
  
 can win/all
 set win/new
 sh sym win_title
-WIN_TITLE = "29-Oct-14:16:02"
+WIN_TITLE = "9-Nov-15:15:02"
  
 GO bn_reset
 cancel mode verify
@@ -50570,6 +50643,7 @@ let a = temp.missing_value
 list a
              VARIABLE : TEMP.MISSING_VALUE
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
          -1.000E+34
  
 use ocean_atlas_temp
@@ -50577,6 +50651,7 @@ let s = temp.units
 list s
              VARIABLE : TEMP.UNITS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "Deg C"
  
 can data/all
@@ -50588,6 +50663,7 @@ list s
              VARIABLE : ..REMARK
              DATA SET : K-Bay OAR3d model (200m)
              FILENAME : err491_attval.cdf
+             X        : 1
         "Generated by oar3d                                                                                                                                              "
  
 go bn_reset
@@ -50606,6 +50682,7 @@ let anames = sst.attnames
 list nat
              VARIABLE : SST.NATTRS
              FILENAME : coads_climatology.cdf
+             X        : 1
           5.000
 list anames
              VARIABLE : SST.ATTNAMES
@@ -50623,6 +50700,7 @@ let cnames = sst.dimnames
 list nd
              VARIABLE : SST.NDIMS
              FILENAME : coads_climatology.cdf
+             X        : 1
           3.000
 list cnames
              VARIABLE : SST.DIMNAMES
@@ -50642,6 +50720,7 @@ let nd = ..ndims
 let vnames = ..varnames
 list/d=1 nv, nd
              DATA SET: ./gt4d011.cdf
+             X: 1
  Column  1: NV is ..NVARS
  Column  2: ND is ..NDIMS
              NV    ND
@@ -50667,6 +50746,7 @@ let vnames = ..varnames
 list/d=coads_climatology vnames
              VARIABLE : ..VARNAMES
              FILENAME : coads_climatology.cdf
+             X        : 1
         "SST"
 list/d=gt4d011 vnames
              VARIABLE : ..VARNAMES
@@ -50703,27 +50783,28 @@ list vnames
  3   / 3:"TIME4" 
 list lnames
              VARIABLE : ..DIMNAMES[D=gt4d011]
-             SUBSET   : 20 points (X)
- 1    /  1:"PSXT1"     
- 2    /  2:"PSYT1"     
- 3    /  3:"PSYTedges" 
- 4    /  4:"PSZT1"     
- 5    /  5:"PSZTedges" 
- 6    /  6:"TIME11"    
- 7    /  7:"PSXT91_108"
- 8    /  8:"PSYT35_56" 
- 9    /  9:"PSZT1_10"  
- 10   / 10:"PSYT35_55" 
- 11   / 11:"PSXU"      
- 12   / 12:"PSYU"      
- 13   / 13:"PSYUedges" 
- 14   / 14:"PSXU91_108"
- 15   / 15:"PSYU35_55" 
- 16   / 16:"PSZW"      
- 17   / 17:"PSZWedges" 
- 18   / 18:"PSYT36_55" 
- 19   / 19:"PSZW1_10"  
- 20   / 20:"PSYU35_56" 
+             SUBSET   : 21 points (X)
+ 1    /  1:"grid_definition"
+ 2    /  2:"PSXT1"          
+ 3    /  3:"PSYT1"          
+ 4    /  4:"PSYTedges"      
+ 5    /  5:"PSZT1"          
+ 6    /  6:"PSZTedges"      
+ 7    /  7:"TIME11"         
+ 8    /  8:"PSXT91_108"     
+ 9    /  9:"PSYT35_56"      
+ 10   / 10:"PSZT1_10"       
+ 11   / 11:"PSYT35_55"      
+ 12   / 12:"PSXU"           
+ 13   / 13:"PSYU"           
+ 14   / 14:"PSYUedges"      
+ 15   / 15:"PSXU91_108"     
+ 16   / 16:"PSYU35_55"      
+ 17   / 17:"PSZW"           
+ 18   / 18:"PSZWedges"      
+ 19   / 19:"PSYT36_55"      
+ 20   / 20:"PSZW1_10"       
+ 21   / 21:"PSYU35_56"      
  
 can var/all
 can data/all
@@ -50736,6 +50817,7 @@ list v
              VARIABLE : ..NDIMS
              DATA SET : K-Bay OAR3d model (200m)
              FILENAME : err491_attval.cdf
+             X        : 1
           3.000
  
 let na = ..nattrs
@@ -50743,6 +50825,7 @@ list na
              VARIABLE : ..NATTRS
              DATA SET : K-Bay OAR3d model (200m)
              FILENAME : err491_attval.cdf
+             X        : 1
           31.00
  
 let gnames = ..attnames
@@ -50806,12 +50889,14 @@ let nat = temp.nattrs
 list nat
              VARIABLE : TEMP.NATTRS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
           5.000
  
 list (`temp,return=xaxis`).nattrs
  !-> list (XAX_LEV9421_380).nattrs
              VARIABLE : (XAX_LEV9421_380).NATTRS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
           4.000
  
 use gt4d011
@@ -50845,15 +50930,18 @@ let a = temp.units
 list/d=3 a
              VARIABLE : TEMP.UNITS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "Deg C"
  
 list temp.units[d=3]
              VARIABLE : TEMP.UNITS[D=ocean_atlas_temp]
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "Deg C"
 list/d=3 temp.history
              VARIABLE : TEMP.HISTORY
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "From ocean_atlas_monthly"
  
 can data/all
@@ -50913,6 +51001,7 @@ let a= broiled.acl
 list a
              VARIABLE : BROILED.ACL
              FILENAME : test0.nc
+             X        : 1
           17000.
  
 let a= broiled.acf
@@ -50974,6 +51063,7 @@ use gt4d011
 list ..nvars
              VARIABLE : ..NVARS
              FILENAME : gt4d011.cdf
+             X        : 1
           12.00
  
 use coads_climatology
@@ -50981,10 +51071,12 @@ use coads_climatology
 list/d=1 ..nvars
              VARIABLE : ..NVARS
              FILENAME : gt4d011.cdf
+             X        : 1
           12.00
 list/d=2 ..nvars
              VARIABLE : ..NVARS
              FILENAME : coads_climatology.cdf
+             X        : 1
           1.000
  
 sh data
@@ -51007,6 +51099,7 @@ sh data
 list/d=2 ..varnames
              VARIABLE : ..VARNAMES
              FILENAME : coads_climatology.cdf
+             X        : 1
         "SST"
  
 list/d=2 ..dimnames
@@ -51019,49 +51112,55 @@ list/d=2 ..dimnames
 list/d=1 ..dimnames
              VARIABLE : ..DIMNAMES
              FILENAME : gt4d011.cdf
-             SUBSET   : 20 points (X)
- 1    /  1:"PSXT1"     
- 2    /  2:"PSYT1"     
- 3    /  3:"PSYTedges" 
- 4    /  4:"PSZT1"     
- 5    /  5:"PSZTedges" 
- 6    /  6:"TIME11"    
- 7    /  7:"PSXT91_108"
- 8    /  8:"PSYT35_56" 
- 9    /  9:"PSZT1_10"  
- 10   / 10:"PSYT35_55" 
- 11   / 11:"PSXU"      
- 12   / 12:"PSYU"      
- 13   / 13:"PSYUedges" 
- 14   / 14:"PSXU91_108"
- 15   / 15:"PSYU35_55" 
- 16   / 16:"PSZW"      
- 17   / 17:"PSZWedges" 
- 18   / 18:"PSYT36_55" 
- 19   / 19:"PSZW1_10"  
- 20   / 20:"PSYU35_56" 
+             SUBSET   : 21 points (X)
+ 1    /  1:"grid_definition"
+ 2    /  2:"PSXT1"          
+ 3    /  3:"PSYT1"          
+ 4    /  4:"PSYTedges"      
+ 5    /  5:"PSZT1"          
+ 6    /  6:"PSZTedges"      
+ 7    /  7:"TIME11"         
+ 8    /  8:"PSXT91_108"     
+ 9    /  9:"PSYT35_56"      
+ 10   / 10:"PSZT1_10"       
+ 11   / 11:"PSYT35_55"      
+ 12   / 12:"PSXU"           
+ 13   / 13:"PSYU"           
+ 14   / 14:"PSYUedges"      
+ 15   / 15:"PSXU91_108"     
+ 16   / 16:"PSYU35_55"      
+ 17   / 17:"PSZW"           
+ 18   / 18:"PSZWedges"      
+ 19   / 19:"PSYT36_55"      
+ 20   / 20:"PSZW1_10"       
+ 21   / 21:"PSYU35_56"      
  
 list/d=1 ..nattrs
              VARIABLE : ..NATTRS
              FILENAME : gt4d011.cdf
+             X        : 1
           1.000
 list/d=1 ..attnames
              VARIABLE : ..ATTNAMES
              FILENAME : gt4d011.cdf
+             X        : 1
         "history"
  
 list/d=1 ..ndims
              VARIABLE : ..NDIMS
              FILENAME : gt4d011.cdf
+             X        : 1
           21.00
 list/d=2 ..ndims
              VARIABLE : ..NDIMS
              FILENAME : coads_climatology.cdf
+             X        : 1
           3.000
  
 list ..nvars[d=1]
              VARIABLE : ..NVARS[D=gt4d011]
              FILENAME : gt4d011.cdf
+             X        : 1
           12.00
 sh var
  Created by DEFINE VARIABLE:
@@ -51088,6 +51187,7 @@ set data 1
 list/d=2 pp
              VARIABLE : ..VARNAMES
              FILENAME : coads_climatology.cdf
+             X        : 1
         "SST"
  
 go bn_reset
@@ -51177,10 +51277,12 @@ use coads_climatology
 list (coadsx).units
              VARIABLE : (COADSX).UNITS
              FILENAME : coads_climatology.cdf
+             X        : 1
         "degrees_east"
 list (coadsx).modulo
              VARIABLE : (COADSX).MODULO
              FILENAME : coads_climatology.cdf
+             X        : 1
         " "
 sho att/all (coadsx)
      attributes for dataset: ./coads_climatology.cdf
@@ -51269,6 +51371,7 @@ list (`sst,return=xaxis`).nattrs[d=2]
  !-> list (COADSX).nattrs[d=2]
              VARIABLE : (COADSX).NATTRS[D=coads_climatology]
              FILENAME : coads_climatology.cdf
+             X        : 1
           5.000
  
 ! using dimension names from the linked list structure
@@ -51288,6 +51391,7 @@ list (`cnames[i=1]`).nattrs
  !-> list (COADSX).nattrs
              VARIABLE : (COADSX).NATTRS
              FILENAME : coads_climatology.cdf
+             X        : 1
           5.000
  
 ! Intentional errors.
@@ -51430,6 +51534,7 @@ let pq = temp.pp
 list pq
              VARIABLE : TEMP.PP
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "PP now has some text."
  
 ! set an attribute when the variable is not in the default dataset.
@@ -52867,11 +52972,11 @@ 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
-PPL$XMIN = "131.0"
-PPL$XMAX = "281.0"
+PPL$XMIN = "131.0000"
+PPL$XMAX = "281.0000"
 sh sym ppl$xlow, ppl$xhigh   ! should be 165, 259
-PPL$XHIGH = "165.0"
-PPL$XLOW = "259.0"
+PPL$XHIGH = "165.0000"
+PPL$XLOW = "259.0000"
  
 sp rm -f err581_subspanx_fill_bug.nc
  
@@ -52953,8 +53058,6 @@ GO err581_if_conditional.jnl
 ! This should skip to the end, not trying to execute anything inside the IF 0 THEN
  
 if 0 then
-     endif
-  endif
 endif
  
 say "finished the if block"
@@ -52989,7 +53092,6 @@ let key_flag = 0
  
 IF `($xend) GT 360` THEN
  !-> IF 0 THEN
-  ENDIF
 ENDIF
 let dxymin = 0.20
 if `dxymin lt 0.12` then
@@ -53004,7 +53106,6 @@ endif
  
 IF `($xend) GT 360` THEN
  !-> IF 0 THEN
-   ENDIF
 ELSE
   say "this is the ELSE that should execute"
 this is the ELSE that should execute
@@ -53101,10 +53202,8 @@ ELIF ($refmap_type%|xline>1|*>0%) THEN    ! ELSE IF "xline"
  !-> ELIF 1 THEN
   define region/default/dy=$6"-30:30|1>-30:30|*>-20:20"/dx=$6"0:0|1>0:0|2>0:0|*>`max(-($ref_dx),-50)`:`min(($ref_dx),50)`" band
  !-> define region/default/dy=-20:20/dx=-50:50 band
- 
 ELIF ($refmap_type%|yline>1|*>0%) THEN    ! ELSE IF "yline"
  !-> ELIF 0 THEN
-   ENDIF
 ENDIF
 ! init the land mask data set
 set data coads_climatology
@@ -53143,17 +53242,12 @@ IF ($refmap_type%|box>1|*>0) THEN    ! IF "box"
  !-> IF 0 THEN
 ELIF ($refmap_type%|xline>1|*>0) THEN    ! ELSE IF "xline"
  !-> ELIF 1 THEN
- 
   IF ($refmap_ycompress) THEN
  !-> IF 0 THEN
   ENDIF
- 
   plot/over/vs/nolab/line=8/i=1:2 refmap_xrng, refmap_ymid+(i-i)
- 
 ELIF ($refmap_type%|yline>1|*>0) THEN    ! ELSE IF "yline"
  !-> ELIF 0 THEN
-  ENDIF
-  ENDIF
 ENDIF
  
  
@@ -53434,8 +53528,8 @@ GO err581_define_1pt_bounds.jnl
 ! again, and even that result is now very wrong!! Same results in both v5.81
 ! for Linux and v5.70 for Irix.
  
-yes? def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
+def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
+list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
              X: -2 to 6
  Column  1: XBOXLO is XBOXLO (axis XAX)
  Column  2: XBOXHI is XBOXHI (axis XAX)
@@ -53445,8 +53539,8 @@ yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
 3   / 2:  2.000  4.000  3.000
 5   / 3:  4.000  6.000  5.000
  
-yes? def ax/x/bounds xax = {0},{-2,2}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
+def ax/x/bounds xax = {0},{-2,2}
+list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
              X: 0
  Column  1: XBOXLO is XBOXLO (axis XAX)
  Column  2: XBOXHI is XBOXHI (axis XAX)
@@ -53454,8 +53548,8 @@ yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
          XBOXLO  XBOXHI    X
 I / *:    -2.000  2.000  0.0000
  
-yes? def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
+def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
+list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
              X: -2 to 6
  Column  1: XBOXLO is XBOXLO (axis XAX)
  Column  2: XBOXHI is XBOXHI (axis XAX)
@@ -53531,9 +53625,9 @@ go polymark poly/lev=(-5,30,1)/pal=white/fill/line=1/nolab/over v1 v2 v3 circle
  
 ! And, from Andrew with other reversed axes.
  
-yes? ppl cross 1
-yes? plot/vl=4:-4/hl=4:-4/vs/line/title="there should be just one triangle" {1,2,3,1},{0,2,1,0}
-yes? poly/ov/col=2/pal=yellow {1,2,3,1},{0,2,1,0}
+ppl cross 1
+plot/vl=4:-4/hl=4:-4/vs/line/title="there should be just one triangle" {1,2,3,1},{0,2,1,0}
+poly/ov/col=2/pal=yellow {1,2,3,1},{0,2,1,0}
  
 ppl cross 0
  
@@ -53705,12 +53799,10 @@ GO err600_if_comments_tab.jnl
 ! thrown off and we got an error about an invalid ENDIF
  
 IF 0 THEN
-   ENDIF
 ENDIF
  
 ! Here there is a tab before the ! which throws off the parsing...
 IF 0 THEN
-   ENDIF
 ENDIF
  
 ! err600_set_var_title.jnl
@@ -53862,6 +53954,7 @@ list ..dimnames
 list ..varnames
              VARIABLE : ..VARNAMES
              FILENAME : levitus_climatology.cdf
+             X        : 1
         "TEMP"
  
 ! err600_nc_des_order.jnl
@@ -53939,8 +54032,13 @@ use coads_climatology
 def sym timeax = `sst,return=taxis`
  !-> def sym timeax = TIME9
  
-show att/all ($timeax)
- !-> show att/all TIME9
+show att/all (($timeax))
+ !-> show att/all (TIME9)
+     attributes for dataset: ./coads_climatology.cdf
+ (TIME9).units = hour since 0000-01-01 00:00:00 
+ (TIME9).time_origin = 1-JAN-0000 00:00:00 
+ (TIME9).modulo =   
+ (TIME9).orig_file_axname = TIME 
 show axis ($timeax)
  !-> show axis TIME9
  name       axis              # pts   start                end
@@ -53949,8 +54047,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 TIME9
-show att/all ($timeax)
- !-> show att/all TIME9
+show att/all (($timeax))
+ !-> show att/all (TIME9)
+     attributes for dataset: ./coads_climatology.cdf
+ (TIME9).units = MONTHS since 1-JAN-0001 
+ (TIME9).time_origin = 1-JAN-0001 
+ (TIME9).orig_file_axname = TIME 
 show axis ($timeax)
  !-> show axis TIME9
  name       axis              # pts   start                end
@@ -53964,8 +54066,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
@@ -53975,8 +54081,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
@@ -53994,8 +54106,12 @@ def sym timeax = `temp,return=taxis`
  !-> def sym timeax = TIME11
 def sym zax = `temp,return=zaxis`
  !-> def sym zax = PSZT1
-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 PSZT1
  name       axis              # pts   start                end
@@ -54004,8 +54120,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
@@ -54014,8 +54134,14 @@ T0 = 14-JAN-1980 14:00:00
    Axis span (to cell edges) = 3650
 cancel axis/depth ($zax)
  !-> cancel axis/depth PSZT1
-show att/all ($zax)
- !-> show att/all PSZT1
+show att/all (($zax))
+ !-> show att/all (PSZT1)
+     attributes for dataset: ./gt4d011.cdf
+ (PSZT1).units = METERS 
+ (PSZT1).positive = up 
+ (PSZT1).point_spacing = uneven 
+ (PSZT1).edges = PSZTedges 
+ (PSZT1).orig_file_axname = PSZT 
 show axis ($zax)
  !-> show axis PSZT1
  name       axis              # pts   start                end
@@ -54083,7 +54209,7 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        29   T       FERRET V6.93 (beta) 29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (PSXT191_108)          DOUBLE    units           CHAR        12   T       degrees_east
@@ -54128,7 +54254,7 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        29   T       FERRET V6.93 (beta) 29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (PSXT191_108)          DOUBLE    units           CHAR        12   T       degrees_east
@@ -55648,6 +55774,7 @@ IS_ELEMENT_OF_STR_N(VAR,VALUES)
 LABWID(STR,HT)
 LANCZOS(A,F1,F2,N)
 LIST_VALUE_XML(tag,value,cdata_flag,outputfile)
+LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
 LSL_LOWPASS(A,cutoff_period,filter_span)
 MINMAX(A)
 MINUTES24(formatted time)
@@ -55660,6 +55787,7 @@ SAMPLEI_MULTI(I_INDICES,DAT_TO_SAMPLE)
 SAMPLEJ_MULTI(J_INDICES,DAT_TO_SAMPLE)
 SAMPLEK_MULTI(K_INDICES,DAT_TO_SAMPLE)
 SAMPLEL_MULTI(L_INDICES,DAT_TO_SAMPLE)
+SAMPLEF_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
 SAMPLET_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
 SAMPLEXY(DAT_TO_SAMPLE,XPTS,YPTS)
 SAMPLEXY_CLOSEST(DAT_TO_SAMPLE,XPTS,YPTS)
@@ -55757,16 +55885,27 @@ EXPNDI_BY_M_COUNTS(dat,counts,max_row_len)
 STR_MASK(STRING,MASK,--)
 SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
 SEPARATE(A,Rowsize,FixLongitudes)
+TIME_REFORMAT(A)
+FT_TO_ORTHOGONAL(VAR,TIME2D,ALLTIME)
+CURV_TO_RECT_FSU(V,mapping)
+PIECEWISE3(V1,V2,V3,Control parameter,Tol1,Tol2,Tol3)
+SAMPLE_FAST_I(V,Indices)
+SAMPLE_FAST_I_STR(S,Indices)
+SEPARATE_STR(A,Rowsize,FixLongitudes)
+WRITE_WEBROW_GWT(id,name,Cruise_Mask,filename)
 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)
@@ -55774,6 +55913,12 @@ 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)
@@ -55784,6 +55929,8 @@ STRINGS_AS_ARGS(S1,S2,NCHAR)
 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)
  
  
@@ -55926,15 +56073,15 @@ def axis/y=0.000001:0.000002/npoints=100 yax
 let a = x[gx=xax] + y[gy=yax]
 shade a; sh sym xax*; ; sh sym yax*
 XAXIS_REVERSED = "0"
-XAXIS_MIN = "3.99494949E-06"
+XAXIS_MIN = "3.994949495E-06"
 XAXL = "4.737"
 XAXNAME = "XIRREG_SUBSPAN"
-XAXIS_MAX = "5.0050505E-06"
+XAXIS_MAX = "5.005050505E-06"
 XAXNAM = "(XAX_LEV9421_380)"
 YAXIS_REVERSED = "0"
 YAXL = "4.737"
-YAXIS_MIN = "9.94949495E-07"
-YAXIS_MAX = "2.0050505E-06"
+YAXIS_MIN = "9.949494949E-07"
+YAXIS_MAX = "2.005050505E-06"
 YAXNAM = "YAX_LEV94"
  
  
@@ -55969,27 +56116,27 @@ USE ocean_atlas_temp
 SET VIEW upper
 FILL temp[L=2,X=180:200,Y=30:44]
 SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.50000"
-XAXIS_MAX = "199.5000"
-YAXIS_MIN = "30.500000"
-YAXIS_MAX = "43.50000"
+XAXIS_MIN = "180.500000"
+XAXIS_MAX = "199.500000"
+YAXIS_MIN = "30.5000000"
+YAXIS_MAX = "43.5000000"
  
 ! See the larger region used by default for SHADE
 SHADE temp[L=2,X=180:200,y=30:44]
 SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.00000"
-XAXIS_MAX = "200.0000"
-YAXIS_MIN = "30.000000"
-YAXIS_MAX = "44.00000"
+XAXIS_MIN = "180.000000"
+XAXIS_MAX = "200.000000"
+YAXIS_MIN = "30.0000000"
+YAXIS_MAX = "44.0000000"
  
 ! SHADE/TRIM trims the region as for a FILL plot
 SET VIEW lower
 SHADE/TRIM temp[L=2,X=180:200,y=30:44]
 SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.50000"
-XAXIS_MAX = "199.5000"
-YAXIS_MIN = "30.500000"
-YAXIS_MAX = "43.50000"
+XAXIS_MIN = "180.500000"
+XAXIS_MAX = "199.500000"
+YAXIS_MIN = "30.5000000"
+YAXIS_MAX = "43.5000000"
  
  
 GO bn_reset
@@ -56434,27 +56581,28 @@ list vnames
  4   / 4:"TIME3"          
 list lnames
              VARIABLE : ..DIMNAMES[D=gt4d011]
-             SUBSET   : 20 points (X)
- 1    /  1:"PSXT1"     
- 2    /  2:"PSYT1"     
- 3    /  3:"PSYTedges" 
- 4    /  4:"PSZT1"     
- 5    /  5:"PSZTedges" 
- 6    /  6:"TIME11"    
- 7    /  7:"PSXT91_108"
- 8    /  8:"PSYT35_56" 
- 9    /  9:"PSZT1_10"  
- 10   / 10:"PSYT35_55" 
- 11   / 11:"PSXU"      
- 12   / 12:"PSYU"      
- 13   / 13:"PSYUedges" 
- 14   / 14:"PSXU91_108"
- 15   / 15:"PSYU35_55" 
- 16   / 16:"PSZW"      
- 17   / 17:"PSZWedges" 
- 18   / 18:"PSYT36_55" 
- 19   / 19:"PSZW1_10"  
- 20   / 20:"PSYU35_56" 
+             SUBSET   : 21 points (X)
+ 1    /  1:"grid_definition"
+ 2    /  2:"PSXT1"          
+ 3    /  3:"PSYT1"          
+ 4    /  4:"PSYTedges"      
+ 5    /  5:"PSZT1"          
+ 6    /  6:"PSZTedges"      
+ 7    /  7:"TIME11"         
+ 8    /  8:"PSXT91_108"     
+ 9    /  9:"PSYT35_56"      
+ 10   / 10:"PSZT1_10"       
+ 11   / 11:"PSYT35_55"      
+ 12   / 12:"PSXU"           
+ 13   / 13:"PSYU"           
+ 14   / 14:"PSYUedges"      
+ 15   / 15:"PSXU91_108"     
+ 16   / 16:"PSYU35_55"      
+ 17   / 17:"PSZW"           
+ 18   / 18:"PSZWedges"      
+ 19   / 19:"PSYT36_55"      
+ 20   / 20:"PSZW1_10"       
+ 21   / 21:"PSYU35_56"      
  
 go bn_reset
 cancel mode verify
@@ -56469,12 +56617,14 @@ let nat = temp.nattrs
 list nat
              VARIABLE : TEMP.NATTRS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
           5.000000
  
 list (`temp,return=xaxis`)[d=2].nattrs
  !-> list (XAX_LEV9421_380)[d=2].nattrs
-             VARIABLE : (XAX_LEV9421_380)[d=ocean_atlas_temp].NATTRS
+             VARIABLE : (XAX_LEV9421_380)[D=ocean_atlas_temp].NATTRS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
           4.000000
  
 use gt4d011
@@ -56509,14 +56659,17 @@ let a = temp.units
 list/d=3 a
              VARIABLE : TEMP.UNITS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "Deg C"
 list temp[d=3].units
-             VARIABLE : TEMP[d=ocean_atlas_temp].UNITS
+             VARIABLE : TEMP[D=ocean_atlas_temp].UNITS
              FILENAME : gt4d011.cdf
+             X        : 1
         "Deg C"
 list/d=3 temp.history
              VARIABLE : TEMP.HISTORY
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "From ocean_atlas_monthly"
  
 can data/all
@@ -56529,7 +56682,7 @@ use coads_climatology
 ! But this does
 let a = sst[d=1].dimnames
 list a[i=2]
-             VARIABLE : SST[d=coads_climatology].DIMNAMES
+             VARIABLE : SST[D=coads_climatology].DIMNAMES
              FILENAME : coads_climatology.cdf
              X        : 2
         "COADSY"
@@ -56545,16 +56698,18 @@ use coads_climatology
 define symbol ferret_plot_var sst[x=30:39,y=-90:90]
 list ($ferret_plot_var).long_name
  !-> list sst[x=30:39,y=-90:90].long_name
-             VARIABLE : SST.LONG_NAME
+             VARIABLE : SST[X=30:39,Y=-90:90].LONG_NAME
              FILENAME : coads_climatology.cdf
+             X        : 1
         "SEA SURFACE TEMPERATURE"
  
 use coads_climatology
 define symbol ferret_plot_var sst[d=1,x=30:35,y=-90:90]
 list ($ferret_plot_var).units
  !-> list sst[d=1,x=30:35,y=-90:90].units
-             VARIABLE : SST[d=coads_climatology].UNITS
+             VARIABLE : SST[D=coads_climatology,X=30:35,Y=-90:90].UNITS
              FILENAME : coads_climatology.cdf
+             X        : 1
         "Deg C"
  
 use coads_climatology
@@ -56562,8 +56717,9 @@ use levitus_climatology
 define symbol ferret_plot_var sst[d=1,x=30:35,y=-90:90]
 list ($ferret_plot_var).history
  !-> list sst[d=1,x=30:35,y=-90:90].history
-             VARIABLE : SST[d=coads_climatology].HISTORY
+             VARIABLE : SST[D=coads_climatology,X=30:35,Y=-90:90].HISTORY
              FILENAME : levitus_climatology.cdf
+             X        : 1
         "From coads_climatology"
  
 go bn_reset
@@ -56579,13 +56735,15 @@ def sym yaxnam  "(`temp[d=1],return=yaxis`)"
  
 list ($xaxnam)[d=1].modulo
  !-> list (XAXLEVITR1_160)[d=1].modulo
-             VARIABLE : (XAXLEVITR1_160)[d=levitus_climatology].MODULO
+             VARIABLE : (XAXLEVITR1_160)[D=levitus_climatology].MODULO
              FILENAME : coads_climatology.cdf
+             X        : 1
         " "
 list ($yaxnam).point_spacing[d=1]
  !-> list (YAXLEVITR1_90).point_spacing[d=1]
              VARIABLE : (YAXLEVITR1_90).POINT_SPACING[D=levitus_climatology]
              FILENAME : levitus_climatology.cdf
+             X        : 1
         "even"
  
  
@@ -56783,12 +56941,12 @@ GO err611_exit_if.jnl
 ! This only in v6.11 GFDL release bug
 ! Fixed in xeq_exit.F
  
-yes? sp echo if 1 then > a.jnl
-yes? sp echo exit/script >> a.jnl
-yes? sp echo endif >> a.jnl
-yes? sp echo go a > b.jnl
-yes? sp echo say hello >> b.jnl
-yes? go b  !the following fails to say "hello"
+sp echo if 1 then > a.jnl
+sp echo exit/script >> a.jnl
+sp echo endif >> a.jnl
+sp echo go a > b.jnl
+sp echo say hello >> b.jnl
+go b  !the following fails to say "hello"
 go a
 if 1 then
 exit/script
@@ -56857,7 +57015,7 @@ ppl list labels
 plot/x=56e:100e/y=10 sst[L=1]
 plot/over/x=56e:100e/y=40 sst[L=1]
 ppl list labels
- @ACSEA SURFACE TEMPERATURE (Deg C)                                             
+                                                                                
  @ASLONGITUDE                                                                   
  @ASDeg C                                                                       
 
@@ -57069,12 +57227,12 @@ GO err611_exit_if.jnl
 ! This only in v6.11 GFDL release bug
 ! Fixed in xeq_exit.F
  
-yes? sp echo if 1 then > a.jnl
-yes? sp echo exit/script >> a.jnl
-yes? sp echo endif >> a.jnl
-yes? sp echo go a > b.jnl
-yes? sp echo say hello >> b.jnl
-yes? go b  !the following fails to say "hello"
+sp echo if 1 then > a.jnl
+sp echo exit/script >> a.jnl
+sp echo endif >> a.jnl
+sp echo go a > b.jnl
+sp echo say hello >> b.jnl
+go b  !the following fails to say "hello"
 go a
 if 1 then
 exit/script
@@ -59501,7 +59659,7 @@ sh command list
        /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/SIGMA
+       /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]
@@ -59994,10 +60152,10 @@ SH GRID am
  
 GO bn_clock_syms
 SH SYM delta_cpu, clock_secs, current_date, current_time
-DELTA_CPU = "33.7209"
-CLOCK_SECS = "66.472"
-CURRENT_DATE = "29-Oct-14"
-CURRENT_TIME = "16:04:05"
+DELTA_CPU = "34.0998"
+CLOCK_SECS = "67.807"
+CURRENT_DATE = " 9-Nov-15"
+CURRENT_TIME = "15:03:37"
 ! test special symbols DELTA_CPU, CLOCK_SECS
 !
 ! NOTE THAT THE VALUES OF THE SYMBOLS WILL VARY FROM ONE
@@ -60006,8 +60164,8 @@ CURRENT_TIME = "16:04:05"
 use gt4d011
 shade/k=1 temp[L=@ave]
 sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.036995"
-CLOCK_SECS = "66.57"
+DELTA_CPU = "0.034994"
+CLOCK_SECS = "67.964"
  
 repeat/k=1:10 shade temp[L=@ave]
 !-> REPEAT: K=1
@@ -60021,60 +60179,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.259961
+ !-> DEFINE VARIABLE ten_plots = 0.246963
 sh sym DELTA_CPU, CLOCK_SECS
 DELTA_CPU = "0"
-CLOCK_SECS = "67.499"
+CLOCK_SECS = "69.306"
  
 let  sumclock = 0
 let  sumcpu = 0
 sh sym CLOCK_SECS
-CLOCK_SECS = "67.499"
+CLOCK_SECS = "69.307"
 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.024996
+ !-> DEFINE VARIABLE sumcpu =0.024996
 !-> REPEAT: K=2
- !-> DEFINE VARIABLE dt = 0.036994
- !-> DEFINE VARIABLE sumcpu =0.066989
+ !-> DEFINE VARIABLE dt = 0.032995
+ !-> DEFINE VARIABLE sumcpu =0.057991
 !-> REPEAT: K=3
- !-> DEFINE VARIABLE dt = 0.040994
- !-> DEFINE VARIABLE sumcpu =0.107983
+ !-> DEFINE VARIABLE dt = 0.030995
+ !-> DEFINE VARIABLE sumcpu =0.088986
 !-> REPEAT: K=4
- !-> DEFINE VARIABLE dt = 0.041994
- !-> DEFINE VARIABLE sumcpu =0.149977
+ !-> DEFINE VARIABLE dt = 0.033995
+ !-> DEFINE VARIABLE sumcpu =0.122981
 !-> REPEAT: K=5
- !-> DEFINE VARIABLE dt = 0.041993
- !-> DEFINE VARIABLE sumcpu =0.19197
+ !-> DEFINE VARIABLE dt = 0.034995
+ !-> DEFINE VARIABLE sumcpu =0.157976
 !-> REPEAT: K=6
- !-> DEFINE VARIABLE dt = 0.043994
- !-> DEFINE VARIABLE sumcpu =0.235964
+ !-> DEFINE VARIABLE dt = 0.032995
+ !-> DEFINE VARIABLE sumcpu =0.190971
 !-> REPEAT: K=7
- !-> DEFINE VARIABLE dt = 0.034994
- !-> DEFINE VARIABLE sumcpu =0.270958
+ !-> DEFINE VARIABLE dt = 0.036994
+ !-> DEFINE VARIABLE sumcpu =0.227965
 !-> REPEAT: K=8
- !-> DEFINE VARIABLE dt = 0.036995
- !-> DEFINE VARIABLE sumcpu =0.307953
+ !-> DEFINE VARIABLE dt = 0.039994
+ !-> DEFINE VARIABLE sumcpu =0.267959
 !-> REPEAT: K=9
- !-> DEFINE VARIABLE dt = 0.035995
- !-> DEFINE VARIABLE sumcpu =0.343948
+ !-> DEFINE VARIABLE dt = 0.028996
+ !-> DEFINE VARIABLE sumcpu =0.296955
 !-> REPEAT: K=10
- !-> DEFINE VARIABLE dt = 0.041993
- !-> DEFINE VARIABLE sumcpu =0.385941
+ !-> DEFINE VARIABLE dt = 0.037993
+ !-> DEFINE VARIABLE sumcpu =0.334948
  
 say `sumcpu`
- !-> MESSAGE/CONTINUE 0.385941
-0.385941
+ !-> MESSAGE/CONTINUE 0.334948
+0.334948
 sh sym CLOCK_SECS
-CLOCK_SECS = "69.286"
+CLOCK_SECS = "71.672"
  
 SH SYM session_date, current_date, session_time, current_time
-SESSION_DATE = "29-Oct-14"
-SESSION_TIME = "16:02"
-CURRENT_DATE = "29-Oct-14"
-CURRENT_TIME = "16:04:08"
+SESSION_DATE = " 9-Nov-15"
+SESSION_TIME = "15:02"
+CURRENT_DATE = " 9-Nov-15"
+CURRENT_TIME = "15:03:41"
  
  
 ! ******** V6.3 Additions below ***********
@@ -60899,8 +61057,8 @@ say `temp,return=isdepth`
  
 use coads_climatology
 say `sst,return=isdepth`
- !-> MESSAGE/CONTINUE NORMAL
-NORMAL
+ !-> MESSAGE/CONTINUE 0
+0
  
 can data 2
  
@@ -61406,7 +61564,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
@@ -61417,27 +61575,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: 23 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: 23 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: 23 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: 23 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: 23 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]
@@ -61449,12 +61607,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
@@ -61465,29 +61623,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: 16 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 13 dset:   2 I:   45   56  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 16 dset:   2 I:   45   56  J:   45   46  K:    1    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: 24 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: 16 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 13 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: 24 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]
@@ -61498,17 +61656,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: 13 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 14 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 13 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: 24 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
  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: 15 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 12 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 15 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
@@ -61520,14 +61678,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: 15 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 11 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
- -DELETE TEMP     M: 11 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 11 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: 11 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]
@@ -61538,7 +61696,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
@@ -61548,11 +61706,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: 11 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: 11 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]
@@ -61562,12 +61720,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: 11 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: 11 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: 11 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
@@ -61577,10 +61735,10 @@ 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:  9 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ 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
@@ -62429,7 +62587,7 @@ GO bn_multi_decade
 ! New default no-small tics for multi-decade plots
 ! See bug 670
  
-def axis/t="01-JAN-1860":"30-DEC-2300":5/edges/units="Days"/cal="360d" simutaxis1
+def axis/t="01-JAN-1860":"30-DEC-2300":1/edges/units="years"/cal="360d" simutaxis1
 let tvar = t[gt=simutaxis1]*-1E+34
  
 define view/x=0:1/y=0.000:0.125 v1
@@ -62828,7 +62986,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.
@@ -63964,7 +64122,7 @@ list contents
  2   / 2:"     e.g.   yes? GO filename"                                              
  3   / 3:" "                                                                         
  4   / 4:" Use "GO/HELP filename" to read documentation in  the file to be executed."
- 5   / 5:" *** NOTE: Axis is already regular: MYAXIS"                                
+ 5   / 5:"           *** NOTE: Axis is already regular: MYAXIS"                      
  6   / 6:" **ERROR: variable unknown or not in data set: GARBAGE"                    
  7   / 7:"show grid garbage"                                                         
 cancel var contents
@@ -64050,9 +64208,9 @@ list contents
              VARIABLE : { SPAWN:"cat redirect_journal.txt" }
              SUBSET   : 47 points (X)
  1    /  1:" ! NOAA/PMEL TMAP"                                                          
- 2    /  2:" ! FERRET v6.93 (beta)"                                                     
- 3    /  3:" ! Linux 2.6.32-504.el6.x86_64 64-bit - 10/29/14"                           
- 4    /  4:" ! 29-Oct-14 16:02     "                                                    
+ 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     "                                                    
  5    /  5:""                                                                           
  6    /  6:"! "                                                                         
  7    /  7:"!! --- 22. produce some output to stdout and stderr"                        
@@ -64131,20 +64289,21 @@ variable transforms e.g.SST[T=1-jan:15-mar at DDC]
    @SBN        binomial smoothed            @SMN        minimum smoothed
    @SWL        Welch smoothed               @STD        standard deviation
    @SHN        Hanning smoothed             @WGT        weights for avg,int
-   @SPZ        Parzen smoothed
+   @SPZ        Parzen smoothed              @SPX        box smooth w/missing
  
 regridding transforms e.g.SST[GX=x5deg at AVE]
    code        description                  code        description
    ----        -----------                  ----        -----------
-   @LIN        lin. interp.                 @MOD        modulo ave
-   @AVE        box avgd                     @MODVAR     modulo var
-   @XACT       exact match                  @MODNGD     # gd mod pts
-   @ASN        index assn                   @MODNBD     #bad mod pts
-   @VAR        variance                     @MODSUM     modulo sum
-   @MIN        minimum                      @MODMIN     modulo min
-   @MAX        maximum                      @MODMAX     modulo max
-   @SUM        sum                          @NRST       nearst coord
-   @NGD        # gd pts
+   @LIN        lin. interp.                 @MODVAR     modulo var
+   @AVE        box 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
+   @MOD        modulo ave
  
 auxiliary varible regridding transforms e.g.TEMP[GZ(depth)=zax at AVE]
    code        description                  code        description
@@ -65157,8 +65316,7 @@ 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        2048 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.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2. [...]
+                                 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 [...]
   
 (LON273_289)           DOUBLE    long_name       CHAR        9    T       longitude
                                  units           CHAR        12   T       degrees_east
@@ -65339,7 +65497,6 @@ sh dat
  name     title                             I         J         K         L         M         N
  TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25      ...       ...
  TEMP_MM  TEMP - TEMPAVE                   1:18      1:22      1:10      1:25      ...       ...
-       (T=14-AUG-1982 11:00:13-JAN-1983 13:00)
  
  
  
@@ -65429,12 +65586,12 @@ list/L=15:20 tax_month(t[gt=tvar],tvar), tax_yearfrac(t[gt=tvar],tvar)
  Column  1: TAX_MONTH(T[GT=TVAR],TVAR)
  Column  2: TAX_YEARFRAC(T[GT=TVAR],TVAR)
              (C001,V002)  (C001,V005)
-17-MAR      / 15:   3.000  0.2082
-16-APR      / 16:   4.000  0.2904
-17-MAY      / 17:   5.000  0.3753
-16-JUN      / 18:   6.000  0.4575
-17-JUL      / 19:   7.000  0.5425
-16-AUG      / 20:   8.000  0.6247
+17-MAR      / 15:   3.000  0.2092
+16-APR      / 16:   4.000  0.2926
+17-MAY      / 17:   5.000  0.3760
+16-JUN      / 18:   6.000  0.4594
+17-JUL      / 19:   7.000  0.5428
+16-AUG      / 20:   8.000  0.6262
 ! the following is an error for a modulo time axis
 list/L=15:20 tax_year(t[gt=tvar],tvar)
 list tax_units(tvar)
@@ -65479,7 +65636,6 @@ sh dat
  name     title                             I         J         K         L         M         N
  TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25      ...       ...
  TEMP_MM  TEMP - TEMPAVE                   1:18      1:22      1:10      1:25      ...       ...
-       (T=14-AUG-1982 11:00:13-JAN-1983 13:00)
  
  
 GO bn_reset
@@ -65875,8 +66031,8 @@ list/l=1:7 TAX_yearfrac(t[gt=var], var)
  01-JAN-2010 00:00:10 / 3:  0.002740
  01-JAN-2010 00:00:15 / 4:  0.002740
  01-JAN-2010 00:00:20 / 5:  0.002740
- 01-JAN-2010 00:00:25 / 6:  0.002740
- 01-JAN-2010 00:00:30 / 7:  0.002740
+ 01-JAN-2010 00:00:25 / 6:  0.002741
+ 01-JAN-2010 00:00:30 / 7:  0.002741
  
 ! This example from Patrick B. Output of TAX_dayfrac repeats.
 ! We need to just return an error mesage. Cant represent 2.5 years
@@ -66521,40 +66677,40 @@ can mode ver
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.925
-randu2_randn2       0.939
-randu2_randn2       0.712
-randu2_randn2       0.070
-randu2_randn2       0.981
+randu2_randn2       0.698
+randu2_randn2       0.004
+randu2_randn2       0.263
+randu2_randn2       0.050
+randu2_randn2       0.647
              VARIABLE : RANDU2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.285
-randu2_randn2       0.165
-randu2_randn2       0.236
-randu2_randn2       0.633
-randu2_randn2       0.135
+randu2_randn2       0.231
+randu2_randn2       0.022
+randu2_randn2       0.486
+randu2_randn2       0.959
+randu2_randn2       0.529
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.690
-randu2_randn2       0.225
-randu2_randn2       0.822
-randu2_randn2       0.494
-randu2_randn2       0.818
-randu2_randn2       0.578
+randu2_randn2       0.054
+randu2_randn2       0.096
+randu2_randn2       0.334
+randu2_randn2       0.803
+randu2_randn2       0.120
+randu2_randn2       0.387
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.195
-randu2_randn2       0.170
-randu2_randn2       0.390
-randu2_randn2       0.112
-randu2_randn2       0.716
-randu2_randn2       0.341
+randu2_randn2       0.017
+randu2_randn2       0.417
+randu2_randn2       0.625
+randu2_randn2       0.468
+randu2_randn2       0.622
+randu2_randn2       0.578
              VARIABLE : RANDU2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
@@ -66579,40 +66735,40 @@ randu2_randn2       0.638
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       2.118
-randu2_randn2       3.132
-randu2_randn2      -1.682
-randu2_randn2       1.951
-randu2_randn2      -1.088
+randu2_randn2       0.058
+randu2_randn2      -1.268
+randu2_randn2      -0.014
+randu2_randn2      -1.909
+randu2_randn2      -0.431
              VARIABLE : RANDN2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2      -1.474
-randu2_randn2      -1.168
-randu2_randn2       1.070
-randu2_randn2      -1.126
-randu2_randn2      -0.350
+randu2_randn2       0.015
+randu2_randn2      -0.666
+randu2_randn2      -0.638
+randu2_randn2       0.732
+randu2_randn2      -0.106
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.451
-randu2_randn2       2.386
-randu2_randn2       1.507
-randu2_randn2      -1.407
-randu2_randn2      -1.841
-randu2_randn2       1.406
+randu2_randn2      -2.999
+randu2_randn2      -1.598
+randu2_randn2       1.522
+randu2_randn2       0.850
+randu2_randn2       0.534
+randu2_randn2      -1.625
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.293
-randu2_randn2      -0.300
-randu2_randn2      -0.661
-randu2_randn2       0.210
-randu2_randn2       1.113
-randu2_randn2      -0.920
+randu2_randn2      -0.917
+randu2_randn2       0.174
+randu2_randn2      -0.347
+randu2_randn2       1.455
+randu2_randn2       0.283
+randu2_randn2      -0.360
              VARIABLE : RANDN2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
@@ -66637,14 +66793,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.173       1.545       0.424
-randu2_randn2       1.545       1.173       0.424
-randu2_randn2       0.424       0.424       0.224
-randu2_randn2      -0.186      -0.186       0.322
-randu2_randn2      -0.762      -0.186       0.322
-randu2_randn2      -0.144      -0.144       0.322
-randu2_randn2       0.224       0.224       0.322
-randu2_randn2       0.322       0.322       0.322
+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
  
 GO bn_reset
 cancel mode verify
@@ -68254,7 +68410,7 @@ LIST v[@ypt]
 LIST v[@ept]
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 by 3 points (X-Y-F)
-             E        : 1.00499999999999989 (interpolated)
+             E        : 1 (interpolated)
               1        2        3     
               1        2        3
  ---- N:1 F:   1
@@ -68272,7 +68428,7 @@ LIST v[@ept]
 LIST v[@fpt]
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 by 3 points (X-Y-E)
-             F        : 1.000499999999999945 (interpolated)
+             F        : 1 (interpolated)
               1        2        3     
               1        2        3
  ---- M:1 E:   1
@@ -68292,8 +68448,8 @@ LIST v[@fpt]
 LIST v[@ept, at fpt]	!XY
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 points (X-Y)
-             E        : 1.00499999999999989 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             E        : 1 (interpolated)
+             F        : 1 (interpolated)
               1        2        3     
               1        2        3
  1   / 1:  1112.00  1113.00  1114.00
@@ -68303,7 +68459,7 @@ LIST v[@ypt, at fpt]	!XE
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 points (X-E)
              Y        : 1.05 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             F        : 1 (interpolated)
               1        2        3     
               1        2        3
  1   / 1:  1112.00  1113.00  1114.00
@@ -68313,7 +68469,7 @@ LIST v[@ypt, at ept]	!XF
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 points (X-F)
              Y        : 1.05 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
+             E        : 1 (interpolated)
               1        2        3     
               1        2        3
  1   / 1:  1112.00  1113.00  1114.00
@@ -68323,7 +68479,7 @@ LIST v[@xpt, at fpt]	!YE
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 points (Y-E)
              X        : 1.5 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             F        : 1 (interpolated)
               1        2        3     
               1        2        3
  1   / 1:  1112.00  1122.00  1132.00
@@ -68333,7 +68489,7 @@ LIST v[@xpt, at ept]	!YF
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 points (Y-F)
              X        : 1.5 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
+             E        : 1 (interpolated)
               1        2        3     
               1        2        3
  1   / 1:  1112.00  1122.00  1132.00
@@ -68356,7 +68512,7 @@ LIST/ORDER=F v[@xpt, at ypt, at ept]	! F
              SUBSET   : 3 points (F)
              X        : 1.5 (interpolated)
              Y        : 1.05 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
+             E        : 1 (interpolated)
              1        2        3     
              1        2        3
           1112.50  2112.50  3112.50
@@ -68365,7 +68521,7 @@ LIST/ORDER=E v[@xpt, at ypt, at fpt]	! E
              SUBSET   : 3 points (E)
              X        : 1.5 (interpolated)
              Y        : 1.05 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             F        : 1 (interpolated)
              1        2        3     
              1        2        3
           1112.50  1212.50  1312.50
@@ -68373,8 +68529,8 @@ LIST/ORDER=Y v[@xpt, at ept, at fpt]	! Y
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 points (Y)
              X        : 1.5 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             E        : 1 (interpolated)
+             F        : 1 (interpolated)
              1        2        3     
              1        2        3
           1112.50  1122.50  1132.50
@@ -68382,8 +68538,8 @@ LIST/ORDER=X v[@ypt, at ept, at fpt]	! X
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 points (X)
              Y        : 1.05 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             E        : 1 (interpolated)
+             F        : 1 (interpolated)
              1        2        3     
              1        2        3
           1112.50  1113.50  1114.50
@@ -68393,8 +68549,8 @@ LIST v[@xpt, at ypt, at ept, at fpt]
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              X        : 1.5 (interpolated)
              Y        : 1.05 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             E        : 1 (interpolated)
+             F        : 1 (interpolated)
           1113.00
  
 GO bn_reset
@@ -68467,7 +68623,7 @@ list veven
              SUBSET   : 3 by 3 by 3 by 3 points (X-Y-E-FORECAST)
               4        6        8     
               2        3        4
- ---- N:2 F:   05-JAN-1980 00:00:00
+ ---- N:2 F:   1980
  ---- M:2 E:   4
  4   / 2:  2222.00  3222.00  4222.00
  6   / 3:  2322.00  3322.00  4322.00
@@ -68480,7 +68636,7 @@ list veven
  4   / 2:  2242.00  3242.00  4242.00
  6   / 3:  2342.00  3342.00  4342.00
  8   / 4:  2442.00  3442.00  4442.00
- ---- N:3 F:   07-JAN-1980 00:00:00
+ ---- N:3 F:   1980
  ---- M:2 E:   4
  4   / 2:  2223.00  3223.00  4223.00
  6   / 3:  2323.00  3323.00  4323.00
@@ -68493,7 +68649,7 @@ list veven
  4   / 2:  2243.00  3243.00  4243.00
  6   / 3:  2343.00  3343.00  4343.00
  8   / 4:  2443.00  3443.00  4443.00
- ---- N:4 F:   09-JAN-1980 00:00:00
+ ---- N:4 F:   1980
  ---- M:2 E:   4
  4   / 2:  2224.00  3224.00  4224.00
  6   / 3:  2324.00  3324.00  4324.00
@@ -68511,7 +68667,7 @@ list v1234
              SUBSET   : 3 by 3 by 3 by 3 points (X-Y-E-FORECAST)
               5        7        9     
               3        4        5
- ---- N:3 F:   06-JAN-1980 00:00:00
+ ---- N:3 F:   1980
  ---- M:3 E:   5
  5   / 3:  2777.50  3777.50  4777.50
  7   / 4:  2877.50  3877.50  4877.50
@@ -68524,7 +68680,7 @@ list v1234
  5   / 3:  2797.50  3797.50  4797.50
  7   / 4:  2897.50  3897.50  4897.50
  9   / 5:  2997.50  3997.50  4997.50
- ---- N:4 F:   08-JAN-1980 00:00:00
+ ---- N:4 F:   1980
  ---- M:3 E:   5
  5   / 3:  2778.50  3778.50  4778.50
  7   / 4:  2878.50  3878.50  4878.50
@@ -68537,7 +68693,7 @@ list v1234
  5   / 3:  2798.50  3798.50  4798.50
  7   / 4:  2898.50  3898.50  4898.50
  9   / 5:  2998.50  3998.50  4998.50
- ---- N:5 F:   10-JAN-1980 00:00:00
+ ---- N:5 F:   1980
  ---- M:3 E:   5
  5   / 3:  2779.50  3779.50  4779.50
  7   / 4:  2879.50  3879.50  4879.50
@@ -68557,8 +68713,8 @@ stat veven
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68581,8 +68737,8 @@ stat v1[g=even]-veven, v1
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68597,8 +68753,8 @@ stat v1[g=even]-veven, v1
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68614,8 +68770,8 @@ stat v2[g=even]-veven, v2
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68630,8 +68786,8 @@ stat v2[g=even]-veven, v2
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68647,8 +68803,8 @@ stat v3[g=even]-veven, v3
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68663,8 +68819,8 @@ stat v3[g=even]-veven, v3
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68680,8 +68836,8 @@ stat v4[g=even]-veven, v4
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68696,8 +68852,8 @@ stat v4[g=even]-veven, v4
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68713,8 +68869,8 @@ stat v12[g=even]-veven, v12
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68729,8 +68885,8 @@ stat v12[g=even]-veven, v12
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68746,8 +68902,8 @@ stat v13[g=even]-veven, v13
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68762,8 +68918,8 @@ stat v13[g=even]-veven, v13
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68779,8 +68935,8 @@ stat v14[g=even]-veven, v14
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68795,8 +68951,8 @@ stat v14[g=even]-veven, v14
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68812,8 +68968,8 @@ stat v23[g=even]-veven, v23
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68828,8 +68984,8 @@ stat v23[g=even]-veven, v23
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68845,8 +69001,8 @@ stat v24[g=even]-veven, v24
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68861,8 +69017,8 @@ stat v24[g=even]-veven, v24
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68878,8 +69034,8 @@ stat v33[g=even]-veven, v33
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68894,8 +69050,8 @@ stat v33[g=even]-veven, v33
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68911,8 +69067,8 @@ stat v234[g=even]-veven, v234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68927,8 +69083,8 @@ stat v234[g=even]-veven, v234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68944,8 +69100,8 @@ stat v134[g=even]-veven, v134
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68960,8 +69116,8 @@ stat v134[g=even]-veven, v134
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68977,8 +69133,8 @@ stat v124[g=even]-veven, v124
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68993,8 +69149,8 @@ stat v124[g=even]-veven, v124
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69010,8 +69166,8 @@ stat v123[g=even]-veven, v123
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69026,8 +69182,8 @@ stat v123[g=even]-veven, v123
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69043,8 +69199,8 @@ stat v1234[g=even]-veven, v1234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69059,8 +69215,8 @@ stat v1234[g=even]-veven, v1234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69084,8 +69240,8 @@ stat v1[g=even]-veven, v1
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69100,8 +69256,8 @@ stat v1[g=even]-veven, v1
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69117,8 +69273,8 @@ stat v2[g=even]-veven, v2
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69133,8 +69289,8 @@ stat v2[g=even]-veven, v2
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69150,8 +69306,8 @@ stat v3[g=even]-veven, v3
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69166,8 +69322,8 @@ stat v3[g=even]-veven, v3
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69183,8 +69339,8 @@ stat v4[g=even]-veven, v4
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69199,8 +69355,8 @@ stat v4[g=even]-veven, v4
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69216,8 +69372,8 @@ stat v12[g=even]-veven, v12
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69232,8 +69388,8 @@ stat v12[g=even]-veven, v12
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69249,8 +69405,8 @@ stat v13[g=even]-veven, v13
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69265,8 +69421,8 @@ stat v13[g=even]-veven, v13
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69282,8 +69438,8 @@ stat v14[g=even]-veven, v14
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69298,8 +69454,8 @@ stat v14[g=even]-veven, v14
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69315,8 +69471,8 @@ stat v23[g=even]-veven, v23
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69331,8 +69487,8 @@ stat v23[g=even]-veven, v23
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69348,8 +69504,8 @@ stat v24[g=even]-veven, v24
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69364,8 +69520,8 @@ stat v24[g=even]-veven, v24
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69381,8 +69537,8 @@ stat v33[g=even]-veven, v33
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69397,8 +69553,8 @@ stat v33[g=even]-veven, v33
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69414,8 +69570,8 @@ stat v234[g=even]-veven, v234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69430,8 +69586,8 @@ stat v234[g=even]-veven, v234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69447,8 +69603,8 @@ stat v134[g=even]-veven, v134
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69463,8 +69619,8 @@ stat v134[g=even]-veven, v134
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69480,8 +69636,8 @@ stat v124[g=even]-veven, v124
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69496,8 +69652,8 @@ stat v124[g=even]-veven, v124
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69513,8 +69669,8 @@ stat v123[g=even]-veven, v123
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69529,8 +69685,8 @@ stat v123[g=even]-veven, v123
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69546,8 +69702,8 @@ stat v1234[g=even]-veven, v1234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69562,8 +69718,8 @@ stat v1234[g=even]-veven, v1234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -70647,7 +70803,7 @@ stat temp[g=g5day] - temp[g=g5day at ave]
              DEPTH (m): 5
              TIME: 21-JAN-1982 00:00 (interpolated)
              E: 1 to 2
-             FORECAST: 23-JAN-1982 00:00:00 to 24-JAN-1982 00:0
+             FORECAST: 1982 to 1982
              DATA SET: ./gtsa056_1_ef.nc
  
  Total # of data points: 120 (5*6*1*1*2*2)
@@ -70679,7 +70835,7 @@ LIST temp[g=g5day at ave]
              TIME     : 21-JAN-1982 00:00 (interpolated)
                129.5W   128.5W   127.5W   126.5W   125.5W  
                101      102      103      104      105
- ---- N:1 F:   23-JAN-1982 00:00:00
+ ---- N:1 F:   1982
  ---- M:1 E:   1
  1.5N  / 46:  32.3553  32.3552  32.5032  32.8652  33.3285
  1.17N / 45:  32.1766  32.1710  32.2834  32.5970  33.0244
@@ -70694,7 +70850,7 @@ LIST temp[g=g5day at ave]
  0.5N  / 43:  37.9306  37.8902  37.8887  38.0374  38.3408
  0.17N / 42:  37.8944  37.8343  37.7825  37.8263  38.0336
  0.17S / 41:  37.9538  37.8657  37.7716  37.7285  37.8282
- ---- N:2 F:   23-JAN-1982 20:00:00
+ ---- N:2 F:   1982
  ---- M:1 E:   1
  1.5N  / 46:  37.7553  37.7552  37.9032  38.2652  38.7285
  1.17N / 45:  37.5766  37.5710  37.6834  37.9970  38.4244
@@ -70728,7 +70884,7 @@ LIST temp[g=g5day]
              TIME     : 21-JAN-1982 00:00 (interpolated)
                129.5W   128.5W   127.5W   126.5W   125.5W  
                101      102      103      104      105
- ---- N:1 F:   23-JAN-1982 00:00:00
+ ---- N:1 F:   1982
  ---- M:1 E:   1
  1.5N  / 46:  34.3553  34.3552  34.5032  34.8652  35.3285
  1.17N / 45:  34.1766  34.1710  34.2834  34.5970  35.0244
@@ -70743,7 +70899,7 @@ LIST temp[g=g5day]
  0.5N  / 43:  39.9306  39.8902  39.8887  40.0374  40.3408
  0.17N / 42:  39.8944  39.8343  39.7825  39.8263  40.0336
  0.17S / 41:  39.9538  39.8657  39.7716  39.7285  39.8282
- ---- N:2 F:   23-JAN-1982 20:00:00
+ ---- N:2 F:   1982
  ---- M:1 E:   1
  1.5N  / 46:  36.0220  36.0219  36.1698  36.5318  36.9952
  1.17N / 45:  35.8433  35.8377  35.9501  36.2637  36.6910
@@ -70762,6 +70918,9 @@ 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
@@ -70778,12 +70937,9 @@ 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
- -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
- strip --> EX#1[F=23-JAN-198200:00:00 at ITP,D=1]
+ strip --> EX#1[F=1982 at ITP,D=1]
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
@@ -70792,7 +70948,7 @@ plot temp
  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[F=23-JAN-198200:00:00 at ITP,D=1]
+ doing --> TEMP[F=1982 at ITP,D=1]
 setting up plot
 PPL plot 863  complete
 plot/over temp[g=g5day]
@@ -70804,7 +70960,7 @@ plot/over temp[g=g5day]
  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: 58 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]
@@ -70812,18 +70968,18 @@ setting up plot
 PPL plot 864  complete
 plot/over temp[g=g5day at ave]
  dealloc  dynamic grid G5DAY           PSXT1     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: 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
+ -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[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: 82 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]
@@ -70831,18 +70987,18 @@ setting up plot
 PPL plot 865  complete
 plot/over temp[g=g5day at asn]
  dealloc  dynamic grid G5DAY           PSXT1     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: 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
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
  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
- 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: 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
  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]
@@ -70853,20 +71009,20 @@ PPL plot 866  complete
 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: 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: 64 dset:   1 I: -999 -999  J: -999 -999  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
+ -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
  getgrid EX#1     C:  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
- strip --> EX#1[F=23-JAN-198200:00:00 at ITP,D=1]
+ strip --> EX#1[F=1982 at ITP,D=1]
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
  eval    EX#1     C:  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
+ reading TEMP     M: 82 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[F=23-JAN-198200:00:00 at ITP,D=1]
+ doing --> TEMP[F=1982 at ITP,D=1]
 setting up plot
 PPL plot 867  complete
 plot/over temp[g=g5day]
@@ -70884,8 +71040,8 @@ setting up plot
 PPL plot 868  complete
 plot/over temp[g=g5day at ave]
  dealloc  dynamic grid G5DAY           PSXT1     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: 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: 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]
@@ -70893,23 +71049,23 @@ plot/over temp[g=g5day at ave]
  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
+ 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]
 setting up plot
 PPL plot 869  complete
 plot/over temp[g=g5day at asn]
  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
- -DELETE TEMP     M: 82 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
+ -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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
  eval    EX#1     C:  6 dset:   1 I:   50   51  J:    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
+ 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
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
@@ -70917,6 +71073,10 @@ PPL plot 870  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
@@ -70934,10 +71094,6 @@ 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
- -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
@@ -70954,16 +71110,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: 74 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: 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
  dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- -DELETE _E       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
+ -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: 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
+ 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
  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
@@ -70988,7 +71144,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: 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    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
@@ -70999,16 +71155,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: 70 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
  allocate dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- pseudo  _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    1
- -DELETE _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    1
+ 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: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
  dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- regrid  A1       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1   16
- regrid  A1       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- -DELETE A1       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1   16
+ 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
  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
@@ -71033,7 +71189,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: 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    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
@@ -71044,16 +71200,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: 74 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: 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
  dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- -DELETE _E       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
+ -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: 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
+ 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
  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
@@ -71079,7 +71235,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: 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    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
@@ -71096,16 +71252,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: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ pseudo  _E       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
  allocate dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- pseudo  _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1   48
- -DELETE _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1   48
+ 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: 66 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
- 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
+ -DELETE A2       M: 66 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
@@ -71130,7 +71286,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: 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
  getgrid EX#1     C:  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
@@ -71141,16 +71297,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: 74 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: 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
  dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- -DELETE _E       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ -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: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
  regrid  A2       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- -DELETE A2       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
+ 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
  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
@@ -71175,7 +71331,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: 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
  getgrid EX#1     C:  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
@@ -71186,16 +71342,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: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ pseudo  _E       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
  allocate dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- pseudo  _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1   48
- -DELETE _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1   48
+ 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: 66 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
- 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
+ -DELETE A2       M: 66 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
@@ -71223,14 +71379,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: 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
  -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: 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
+ -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
  dealloc  dynamic grid (G087)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      F1PT
 let a2 = _e[ge=e2pt]
 let a4 = _e[ge=e4pt]
@@ -71249,9 +71405,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: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
+ pseudo  _E       M: 72 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
  dealloc  dynamic grid (G087)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- regrid  A1       M: 54 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ regrid  A1       M: 58 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
@@ -71259,9 +71415,9 @@ list a1[ge=eoffset at max]
  1.1 / 1:     ....
  2.1 / 2:  2.50000
 list a2[ge=eoffset at max]
- -DELETE _E       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
+ -DELETE _E       M: 72 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
  dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- -DELETE A1       M: 54 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ -DELETE A1       M: 58 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
@@ -71275,9 +71431,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: 54 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ pseudo  _E       M: 58 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
  dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- regrid  A2       M: 62 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ regrid  A2       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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
              VARIABLE : _E[GE=E2PT]
                         regrid: 1 delta on E at MAX
@@ -71285,9 +71441,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: 54 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ -DELETE _E       M: 58 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
  dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- -DELETE A2       M: 62 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ -DELETE A2       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
  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
@@ -71301,9 +71457,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: 62 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: 56 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ regrid  A4       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 (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
              VARIABLE : _E[GE=E4PT]
                         regrid: 1 delta on E at MAX
@@ -71311,9 +71467,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: 62 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: 56 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ -DELETE A4       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
  allocate dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
  dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
@@ -71323,7 +71479,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: 56 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
+ pseudo  _E       M: 54 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
@@ -71333,7 +71489,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: 56 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
+ -DELETE _E       M: 54 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
@@ -71347,7 +71503,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: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ regrid  A4       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    EOFFSET   NORMAL
              VARIABLE : _E[GE=E4PT]
                         regrid: 1 delta on E at SUM
@@ -71362,7 +71518,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: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ -DELETE A4       M: 70 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
@@ -71372,7 +71528,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: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    5
+ pseudo  _F       M: 70 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)
@@ -71393,7 +71549,7 @@ show grid
  normal    E
  EDAY      FORECAST             5 r   01-JAN-1990 00:00    05-JAN-1990 00:00
 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
+ -DELETE _F       M: 70 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
@@ -71404,7 +71560,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: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    5
+ pseudo  _F       M: 70 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
@@ -71434,7 +71590,7 @@ GO bn_reset
 cancel mode verify
 GO bn_aggregate_e
 ! bn_aggregate_e.jnl
-! using the DEFINE ATTRIBUTE/E command
+! using the DEFINE DATA/AGGREGATE/E command
 ! Datasets share sst, but only ens1 has airt.
  
 set mode diag
@@ -71445,7 +71601,7 @@ define data/agg/title fourfiles = ens1, ens3, ens2, ens4
 ! The grid of SST is known.
 show data fourfiles
      currently SET data sets:
-    5> FOURFILES  (default)  Ferret-defined Ensemble dataset
+    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       ...
  
@@ -71457,13 +71613,13 @@ 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
+ reading SST      M:114 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
+ reading SST      M:112 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
+ reading SST      M:110 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
  doing --> SST[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
              VARIABLE : SST_IN (Deg C)
@@ -71478,8 +71634,8 @@ list/i=3 sst[T=@ave]
  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     ....     ....     ....
 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
+ -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
  
 ! Create airt in the other datasets by LET/D definitions.
@@ -71496,7 +71652,7 @@ define data/agg fourfiles = ens1, ens3, ens2, ens4
  allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME13    NORMAL    NORMAL
 show data fourfiles
      currently SET data sets:
-    5> FOURFILES  (default)  Ferret-defined Ensemble dataset
+    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       ...
  AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      1:4       ...
@@ -71509,22 +71665,22 @@ list/i=3 airt[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 --> 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
+ 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: 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
+ 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: 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
+ 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    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
+ 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]
              VARIABLE : AIR TEMPERATURE (DEG C)
@@ -71602,7 +71758,7 @@ define data/agg 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 dataset
+    3> WINDY  (default)  Ferret-defined 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       ...
@@ -71635,7 +71791,7 @@ define data/agg 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 dataset
+    3> WINDY  (default)  Ferret-defined 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       ...
@@ -71682,7 +71838,8 @@ sh command define
  DEFINE SYMBOL
  DEFINE ATTRIBUT/D/TYPE/OUTPUT/QUIET
  DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/E/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/E/F/TITLE/QUIET/HIDE
+ DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
 sh command show
  SHOW/ALL
  SHOW WINDOW/ALL
@@ -71694,7 +71851,7 @@ sh command show
        /HIDDEN
  SHOW MODE/ALL
  SHOW MOVIE/ALL
- SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/SIGMA
+ SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ
        /CURVILIN
  SHOW COMMANDS/ALL
  SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
@@ -71715,7 +71872,7 @@ ensemble/HIDE/title="ensemble with hidden members" fourfiles = ens1, ens2, ens3,
 ! should just show the ensemble set
 sh dat
      currently SET data sets:
-    5> FOURFILES  (default)  Ferret-defined Ensemble dataset
+    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       ...
  
@@ -71754,7 +71911,7 @@ sh dat/hidden
  name     title                             I         J         K         L         M         N
  SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
  
-    5> FOURFILES  (default)  Ferret-defined Ensemble dataset
+    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       ...
  
@@ -71797,7 +71954,7 @@ sh dat
  name     title                             I         J         K         L         M         N
  SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
  
-    5> MY_ENS  (default)  Ferret-defined Ensemble dataset
+    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       ...
  
@@ -71826,7 +71983,7 @@ ensemble/HIDE/title="uvars in dset 2"  my_ens = 1,2,3,4
 ! members hidden, showing only ensemble.
 sh dat
      currently SET data sets:
-    5> MY_ENS  (default)  Ferret-defined Ensemble dataset
+    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       ...
  
@@ -71861,15 +72018,15 @@ ensemble/HIDE/title="ensemble with hidden members" more = ens2, ens3, ens4
 ! Shows all the ensembles
 sh dat
      currently SET data sets:
-    5> FOURFILES     Ferret-defined Ensemble dataset
+    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 dataset
+    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 dataset
+    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       ...
  
@@ -72003,7 +72160,7 @@ list/L=1:8 taux[x=@ave,y=@ave]
  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
+ reading TAUX     M: 98 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
@@ -72026,7 +72183,7 @@ list/L=1:8 taux[x=@sum,y=@sum]
  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: 94 dset:   1 I:   91  108  J:   35   55  K: -999 -999  L:    1    8
+ reading TAUX     M: 86 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
@@ -72426,7 +72583,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        29   T       FERRET V6.93 (beta) 29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72477,7 +72634,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        29   T       FERRET V6.93 (beta) 29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72516,7 +72673,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        29   T       FERRET V6.93 (beta) 29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72555,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        29   T       FERRET V6.93 (beta) 29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72586,7 +72743,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        29   T       FERRET V6.93 (beta) 29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72618,7 +72775,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        29   T       FERRET V6.93 (beta) 29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72679,7 +72836,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        29   T       FERRET V6.93 (beta) 29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72724,7 +72881,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        29   T       FERRET V6.93 (beta) 29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72779,7 +72936,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        29   T       FERRET V6.93 (beta) 29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72815,7 +72972,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        29   T       FERRET V6.93 (beta) 29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72851,7 +73008,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        29   T       FERRET V6.93 (beta) 29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72887,7 +73044,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        29   T       FERRET V6.93 (beta) 29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72919,7 +73076,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        29   T       FERRET V6.93 (beta) 29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -73149,7 +73306,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        29   T       FERRET V6.93 (beta) 29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          FLOAT     units           CHAR        13   T       degrees_north
@@ -73181,7 +73338,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        29   T       FERRET V6.93 (beta) 29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          FLOAT     units           CHAR        13   T       degrees_north
@@ -73222,7 +73379,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        29   T       FERRET V6.93 (beta) 29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -73260,7 +73417,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        29   T       FERRET V6.93 (beta) 29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -73285,7 +73442,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        29   T       FERRET V6.93 (beta) 29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             INT       units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -73310,7 +73467,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        29   T       FERRET V6.93 (beta) 29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -73526,11 +73683,11 @@ GO err684_tax_fcns
  list/L=3:7 tax_yearfrac(var, var)
              VARIABLE : TAX_YEARFRAC(VAR, VAR)
              SUBSET   : 5 points (TIME)
- 08-OCT-2006 22 / 3:  0.7699
- 13-OCT-2006 23 / 4:  0.7836
- 18-OCT-2006 22 / 5:  0.7973
- 23-OCT-2006 21 / 6:  0.8110
- 28-OCT-2006 22 / 7:  0.8247
+ 08-OCT-2006 22 / 3:  0.7725
+ 13-OCT-2006 23 / 4:  0.7862
+ 18-OCT-2006 22 / 5:  0.7998
+ 23-OCT-2006 21 / 6:  0.8134
+ 28-OCT-2006 22 / 7:  0.8272
  
  list/L=3:7 tax_year(var, var)
              VARIABLE : TAX_YEAR(VAR, VAR)
@@ -73576,8 +73733,8 @@ GO err684_line_plot_zero
 plot {0,0,0}
 sh sym yaxis*
 YAXIS_REVERSED = "0"
-YAXIS_MIN = "-1.0000000"
-YAXIS_MAX = "1.000000"
+YAXIS_MIN = "-1.00000000"
+YAXIS_MAX = "1.00000000"
  
  
 GO bn_reset
@@ -73746,11 +73903,11 @@ variables:
 		A:missing_value = -1.e+34 ;
 		A:_FillValue = -1.e+34 ;
 		A:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
-		A:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
+		A:long_name_mod = "X=20E:20E(380), Y=90S:90N" ;
 		A:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -73775,11 +73932,11 @@ variables:
 		E410:missing_value = -1.e+34 ;
 		E410:_FillValue = -1.e+34 ;
 		E410:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
-		E410:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
+		E410:long_name_mod = "X=20E:20E(380), Y=90S:90N" ;
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -73794,7 +73951,7 @@ save/clob/file=aa.nc/y=-81:-75 sst[x=@ave]-sst[x=@ave,t=@ave]
 use aa.nc
 list e410
              VARIABLE : SST[X=@AVE]-SST[X=@AVE,T=@AVE]
-                        X=20E:20E(380), T=01-JAN 00:45:01-APR 08:12
+                        X=20E:20E(380)
              FILENAME : aa.nc
              SUBSET   : 4 by 3 points (LATITUDE-TIME)
                     81S    79S    77S    75S   
@@ -73826,11 +73983,11 @@ variables:
 		E410:missing_value = -1.e+34f ;
 		E410:_FillValue = -1.e+34f ;
 		E410:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
-		E410:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
+		E410:long_name_mod = "X=20E:20E(380), Y=90S:90N" ;
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -73843,7 +74000,7 @@ save/clob/file=aa.nc/outtype=float/y=-81:-75 sst[x=@ave]-sst[x=@ave,t=@ave]
 use aa.nc
 list e410
              VARIABLE : SST[X=@AVE]-SST[X=@AVE,T=@AVE]
-                        X=20E:20E(380), T=01-JAN 00:45:01-APR 08:12
+                        X=20E:20E(380)
              FILENAME : aa.nc
              SUBSET   : 4 by 3 points (LATITUDE-TIME)
                     81S    79S    77S    75S   
@@ -73998,8 +74155,12 @@ let/title="tic labels on dependent axis" var = {\
 1.6897,1.687,1.6843,1.6817,1.679,1.6765,1.676,1.676}
  
 plot/line/sym/title="Vert axis labels should be 1.675 thru 1.715" var
-can mode meta
+cancel mode meta
  
+! rename the metafile. Else we get weird contents in axticlabel.plt
+! once the whole benchmark suite has finished. (why?)
+set mode meta metafile.plt
+cancel mode meta
  
 GO bn_reset
 cancel mode verify
@@ -74395,8 +74556,8 @@ variables:
 		DDAT_ORIG:long_name = "DDAT[GZ=ZAXIS_ORIG at ASN]" ;
 
 // global attributes:
-		:history = "Wed Oct 29 16:04:27 2014: ncks -h -A -h z1.nc append_to_this.nc\n",
-			"FERRET V6.93 (beta) 29-Oct-14" ;
+		: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" ;
 		:Conventions = "CF-1.6" ;
 		:NCO = "4.4.6" ;
 }
@@ -74430,7 +74591,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -74461,7 +74622,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -74523,7 +74684,7 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74551,7 +74712,7 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74712,6 +74873,7 @@ GO bn_vtree
 ! bn_tree.jnl
  
 ! 11/2013 -- demonstrate SHOW VARIABLE/TREE and RETRUN=STATUS
+! 12/14 update to test regridding output using bn_vtree_regrid.jnl
  
 CANCEL DATA/ALL
 ! pure abstract variable -- no dataset
@@ -74792,16 +74954,16 @@ vtree=all a
    in default dataset my_file_vars
    A = FV1[D=1] - FV1[D=2]
      FV1
-     FV1[d=other_file_var]
+     FV1[d=other_file_vars]
 vtree=all /d=1 a
    in default dataset my_file_vars
    A = FV1[D=1] - FV1[D=2]
      FV1
-     FV1[d=other_file_var]
+     FV1[d=other_file_vars]
 vtree=all /d=2 a
    in default dataset other_file_vars
    A = FV1[D=1] - FV1[D=2]
-     FV1[d=my_file_var]
+     FV1[d=my_file_vars]
      FV1
 ********************************
  
@@ -74809,12 +74971,12 @@ vtree=all /d=2 a
 go bn_vtree.sub noexist
 /TREE=ALL
    in default dataset my_file_vars
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
 /TREE=USER
    in default dataset my_file_vars
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
 /TREE=FILE
-   NOEXIST  (unknown variable)
+   *unknown variable: NOEXIST
 the problem is UNKNOWN VARIABLE: NOEXIST
 ************************
  
@@ -74822,12 +74984,12 @@ the problem is UNKNOWN VARIABLE: NOEXIST
 go bn_vtree.sub v[d=noexist]
 /TREE=ALL
    in default dataset my_file_vars
-   V[D=NOEXIST] ??                           <== UNKNOWN DATASET ******
+   V[D=NOEXIST] ??			<== UNKNOWN DATASET ******
 /TREE=USER
    in default dataset my_file_vars
-   V[D=NOEXIST] ??                           <== UNKNOWN DATASET ******
+   V[D=NOEXIST] ??			<== UNKNOWN DATASET ******
 /TREE=FILE
-   V[D=NOEXIST]  (unknown dataset)
+   *unknown dataset: V[D=NOEXIST]
 the problem is UNKNOWN DATASET: V[D=NOEXIST]
 ************************
  
@@ -74835,12 +74997,12 @@ the problem is UNKNOWN DATASET: V[D=NOEXIST]
 go bn_vtree.sub novar[d=nodset]
 /TREE=ALL
    in default dataset my_file_vars
-   NOVAR[D=NODSET] ??                           <== UNKNOWN DATASET ******
+   NOVAR[D=NODSET] ??			<== UNKNOWN DATASET ******
 /TREE=USER
    in default dataset my_file_vars
-   NOVAR[D=NODSET] ??                           <== UNKNOWN DATASET ******
+   NOVAR[D=NODSET] ??			<== UNKNOWN DATASET ******
 /TREE=FILE
-   NOVAR[D=NODSET]  (unknown dataset)
+   *unknown dataset: NOVAR[D=NODSET]
 the problem is UNKNOWN DATASET: NOVAR[D=NODSET]
 ************************
  
@@ -74849,13 +75011,13 @@ go bn_vtree.sub b
 /TREE=ALL
    in default dataset my_file_vars
    B = NOEXIST
-     NOEXIST ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST ??			<== UNKNOWN VARIABLE ******
 /TREE=USER
    in default dataset my_file_vars
    B = NOEXIST
-     NOEXIST ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST ??			<== UNKNOWN VARIABLE ******
 /TREE=FILE
-   NOEXIST  (unknown variable)
+   *unknown variable: NOEXIST
 the problem is UNKNOWN VARIABLE: NOEXIST
 ************************
  
@@ -74881,11 +75043,13 @@ go bn_vtree.sub fv1z
    in default dataset my_file_vars
    FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
      FV1
+       regrid to ZPTS = Z[Z=0:500:100]
        FVZ
      FVX
 /TREE=USER
    in default dataset my_file_vars
    FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
+       regrid to ZPTS = Z[Z=0:500:100]
 /TREE=FILE
    FV1[d=my_file_vars]
    FVZ[d=my_file_vars]
@@ -74901,11 +75065,13 @@ go bn_vtree.sub fv1z
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
      FV1
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]
      FVX
 /TREE=USER
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]
 /TREE=FILE
    FV1[d=my_file_vars]
@@ -74920,12 +75086,14 @@ go bn_vtree.sub fv1z
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
      FV1
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
          FVZ
      FVX
 /TREE=USER
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
 /TREE=FILE
    FV1[d=my_file_vars]
@@ -74947,7 +75115,7 @@ go bn_vtree.sub fv1z
    FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
        NOEXIST   (unknown auxiliary variable)
 /TREE=FILE
-   NOEXIST  (unknown auxiliary variable)
+   *unknown auxiliary variable: NOEXIST
    FVX[d=my_file_vars]
 the problem is UNKNOWN AUXILIARY VARIABLE: NOEXIST
 ************************
@@ -74958,17 +75126,19 @@ go bn_vtree.sub fv1z
 /TREE=ALL
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
-     NOEXIST[GZ(DEPTH)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(DEPTH)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
          FVZ
      FVX
 /TREE=USER
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
-     NOEXIST[GZ(DEPTH)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(DEPTH)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
 /TREE=FILE
-   NOEXIST[GZ(DEPTH)=ZPTS]  (unknown variable)
+   *unknown variable: NOEXIST[GZ(DEPTH)=ZPTS]
    FVZ[d=my_file_vars]
    FVX[d=my_file_vars]
 the problem is UNKNOWN VARIABLE: NOEXIST[GZ(DEPTH)=ZPTS]
@@ -74980,17 +75150,19 @@ go bn_vtree.sub fv1z
 /TREE=ALL
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
-     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        UNKNOWN_AUX   (unknown auxiliary variable)
      FVX
 /TREE=USER
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
-     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        UNKNOWN_AUX   (unknown auxiliary variable)
 /TREE=FILE
-   NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]  (unknown variable)
-   UNKNOWN_AUX  (unknown auxiliary variable)
+   *unknown variable: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
+   *unknown auxiliary variable: UNKNOWN_AUX
    FVX[d=my_file_vars]
 the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
 ************************
@@ -75001,9 +75173,9 @@ go bn_vtree.sub fv1
 /TREE=ALL
    in default dataset MY_AGG
    FV1   (aggregate variable)
-     FV1[d=my_file_var]
-     FV1[d=other_file_var]
-     FV1[d=another_file_var]
+     FV1[d=my_file_vars]
+     FV1[d=other_file_vars]
+     FV1[d=another_file_vars]
 /TREE=USER
    in default dataset MY_AGG
    FV1   (aggregate variable)
@@ -75023,16 +75195,16 @@ go bn_vtree.sub fvx
 /TREE=ALL
    in default dataset MY_UVAR_AGG
    FVX   (aggregate variable)
-     FVX[d=my_file_var]
-     FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
-       FV1[d=other_file_var]
-     FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
-       FV1[d=another_file_var]
+     FVX[d=my_file_vars]
+     FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+       FV1[d=other_file_vars]
+     FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+       FV1[d=another_file_vars]
 /TREE=USER
    in default dataset MY_UVAR_AGG
    FVX   (aggregate variable)
-     FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
-     FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+     FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+     FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
 /TREE=FILE
  
    FVX[d=my_file_vars]
@@ -75051,30 +75223,30 @@ go bn_vtree.sub p0    ! recursion
 /TREE=ALL
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = P1 + S3
            P1 =   *** WARNING: RECURSIVE DEFINITION.  See above
-           S3 ??                           <== UNKNOWN VARIABLE ******
+           S3 ??			<== UNKNOWN VARIABLE ******
 /TREE=USER
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = P1 + S3
            P1 =   *** WARNING: RECURSIVE DEFINITION.  See above
-           S3 ??                           <== UNKNOWN VARIABLE ******
+           S3 ??			<== UNKNOWN VARIABLE ******
 /TREE=FILE
-   S1  (unknown variable)
-   S2  (unknown variable)
-   S3  (unknown variable)
-   S3  (unknown variable)
+   *unknown variable: S1
+   *unknown variable: S2
+   *unknown variable: S3
+   *unknown variable: S3
 the problem is ILLEGAL RECURSIVE VARIABLES: P1
 ************************
 let p3 = s1 + S3
@@ -75082,31 +75254,31 @@ go bn_vtree.sub p0    ! ok
 /TREE=ALL
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = S1 + S3
-           S1 ??                           <== UNKNOWN VARIABLE ******
-           S3 ??                           <== UNKNOWN VARIABLE ******
+           S1 ??			<== UNKNOWN VARIABLE ******
+           S3 ??			<== UNKNOWN VARIABLE ******
 /TREE=USER
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = S1 + S3
-           S1 ??                           <== UNKNOWN VARIABLE ******
-           S3 ??                           <== UNKNOWN VARIABLE ******
+           S1 ??			<== UNKNOWN VARIABLE ******
+           S3 ??			<== UNKNOWN VARIABLE ******
 /TREE=FILE
-   S1  (unknown variable)
-   S2  (unknown variable)
-   S3  (unknown variable)
-   S1  (unknown variable)
-   S3  (unknown variable)
+   *unknown variable: S1
+   *unknown variable: S2
+   *unknown variable: S3
+   *unknown variable: S1
+   *unknown variable: S3
 the problem is UNKNOWN VARIABLE: S1
 ************************
  
@@ -75128,8 +75300,8 @@ show var/tree/d=my_uvar_agg     uv
    in default dataset MY_UVAR_AGG
    UV = FVX + FVX + FVX
      FVX   (aggregate variable)
-       FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
-       FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+       FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+       FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
 ***************************
  
 ! suppressing duplicates elsewhere in the family tree ("defined above")
@@ -75144,8 +75316,8 @@ go bn_vtree.sub v2
    V2 = V1 + B + A + A
      V1 = A  + B + B^2
        A = FV1[D=1] - FV1[D=2]
-         FV1[d=my_file_var]
-         FV1[d=other_file_var]
+         FV1[d=my_file_vars]
+         FV1[d=other_file_vars]
        B = C
          C = 1
      B =  (defined above)
@@ -75169,8 +75341,8 @@ go bn_vtree.sub v3
    in default dataset MY_UVAR_AGG
    V3 = A + V1 + B + A + A
      A = FV1[D=1] - FV1[D=2]
-       FV1[d=my_file_var]
-       FV1[d=other_file_var]
+       FV1[d=my_file_vars]
+       FV1[d=other_file_vars]
      V1 = A  + B + B^2
        A =  (defined above)
        B = C
@@ -75204,26 +75376,26 @@ go bn_vtree.sub "a, b, c, noexist, d, e, fvx[d=my_file_vars]"
    in default dataset MY_UVAR_AGG
    D = B + C
      B = FV1[D=MY_FILE_VARS]
-       FV1[d=my_file_var]
+       FV1[d=my_file_vars]
      C = 1
    A = F
-     F ??                           <== UNKNOWN VARIABLE ******
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
+     F ??			<== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
    E = 1
-   FVX[d=my_file_var]
+   FVX[d=my_file_vars]
 /TREE=USER
    in default dataset MY_UVAR_AGG
    D = B + C
      B = FV1[D=MY_FILE_VARS]
      C = 1
    A = F
-     F ??                           <== UNKNOWN VARIABLE ******
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
+     F ??			<== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
    E = 1
 /TREE=FILE
-   F  (unknown variable)
+   *unknown variable: F
    FV1[d=my_file_vars]
-   NOEXIST  (unknown variable)
+   *unknown variable: NOEXIST
    FVX[d=my_file_vars]
 the problem is UNKNOWN VARIABLE: F
 ************************
@@ -75238,14 +75410,16 @@ the problem is UNKNOWN VARIABLE: F
 /TREE=ALL
    in default dataset MY_UVAR_AGG
    B = A[G=NOEXIST]
-     A[G=NOEXIST]   (unknown grid)
+     A = I[I=1:5]
+       regrid to NOEXIST ??		<== UNKNOWN GRID ******
 /TREE=USER
    in default dataset MY_UVAR_AGG
    B = A[G=NOEXIST]
-     A[G=NOEXIST]   (unknown grid)
+     A = I[I=1:5]
+       regrid to NOEXIST ??		<== UNKNOWN GRID ******
 /TREE=FILE
-   A[G=NOEXIST]  (unknown grid)
-the problem is UNKNOWN GRID: A[G=NOEXIST]
+   *unknown grid: NOEXIST
+the problem is UNKNOWN GRID: NOEXIST
 ************************
   list b
  
@@ -75261,7 +75435,7 @@ the problem is UNKNOWN GRID: A[G=NOEXIST]
    C = A[X=45S]
      A[X=45S]   *** WARNING: ERROR IN DEFINITION
 /TREE=FILE
-   A[X=45S]   *** WARNING: SYNTAX ERROR
+      *WARNING: syntax error: A[X=45S]
 the problem is ERROR IN EXPRESSION: A[X=45S]
 ************************
   list c
@@ -75278,7 +75452,7 @@ the problem is ERROR IN EXPRESSION: A[X=45S]
    D = A[I=1,,J=2]
      A[I=1,,J=2]   *** WARNING: ERROR IN DEFINITION
 /TREE=FILE
-   A[I=1,,J=2]   *** WARNING: SYNTAX ERROR
+      *WARNING: syntax error: A[I=1,,J=2]
 the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
 ************************
   list d
@@ -75295,7 +75469,7 @@ the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
    E = A[P=1]
      A[P=1]   *** WARNING: ERROR IN DEFINITION
 /TREE=FILE
-   A[P=1]   *** WARNING: SYNTAX ERROR
+      *WARNING: syntax error: A[P=1]
 the problem is ERROR IN EXPRESSION: A[P=1]
 ************************
   list e
@@ -75328,6 +75502,528 @@ show var/tree a
    in default dataset MY_UVAR_AGG
    A = ..HISTORY[D=1]
  
+! *****
+! 12/14 addition to test regridding dependencies
+go bn_vtree_regrid
+! bn_vtree_regrid.jnl
+! exercise 12/14 enhancements to display regrid target on a separate line
+! updated 1/26/15 to exercise multiple regrid target outputs
+! updated 2/23/15 to report target of regrid even when aux regridding occurs
+ 
+! case 1: target grid known,   regridded variable known
+let myvar = 1           ! var to be regridded is known
+let gvar = x[x=1:5]    ! target regridding var is known
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree a
+   in default dataset MY_UVAR_AGG
+   A = MYVAR[G=GVAR] + UNVAR + KVAR
+     MYVAR = 1
+       regrid to GVAR = X[X=1:5]
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 2: target grid known,   regridded variable unknown
+canc var/all
+! myvar unknown
+let gvar = x[x=1:5]    ! target regridding var is known
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree a
+   in default dataset MY_UVAR_AGG
+   A = MYVAR[G=GVAR] + UNVAR + KVAR
+     MYVAR[G=GVAR] ??			<== UNKNOWN VARIABLE ******
+       regrid to GVAR = X[X=1:5]
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 3: target grid unknown, regridded variable known
+canc var/all
+let myvar = 1           ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree a
+   in default dataset MY_UVAR_AGG
+   A = MYVAR[G=GVAR] + UNVAR + KVAR
+     MYVAR = 1
+       regrid to GVAR ??		<== UNKNOWN GRID ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 4: target grid unknown, regridded variable unknown
+canc var/all
+! myvar unknown
+! gvar  unknown
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree a
+   in default dataset MY_UVAR_AGG
+   A = MYVAR[G=GVAR] + UNVAR + KVAR
+     MYVAR[G=GVAR] ??			<== UNKNOWN VARIABLE ******
+       regrid to GVAR ??		<== UNKNOWN GRID ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! **************************************
+! same tests but now with a dataset named with the target grid
+use coads_climatology
+use levitus_climatology   ! default to d=2
+ 
+! case 1: target grid known,   regridded variable known
+canc var/all
+let myvar = 1           ! var to be regridded is known
+let a = myvar[g=sst[d=1]] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree=all a
+   in default dataset levitus_climatology
+   A = MYVAR[G=SST[D=1]] + UNVAR + KVAR
+     MYVAR = 1
+       regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 2: target grid known,   regridded variable unknown
+canc var/all
+! myvar unknown
+let a = myvar[g=sst[d=1]] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree=all a
+   in default dataset levitus_climatology
+   A = MYVAR[G=SST[D=1]] + UNVAR + KVAR
+     MYVAR[G=SST[D=1]] ??			<== UNKNOWN VARIABLE ******
+       regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 3a: target grid unknown, regridded variable known
+canc var/all
+let myvar = 1           ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=gvar[d=1]] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree=all a
+   in default dataset levitus_climatology
+   A = MYVAR[G=GVAR[D=1]] + UNVAR + KVAR
+     MYVAR = 1
+       regrid to GVAR[D=1] ??		<== UNKNOWN GRID ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 3b: target grid unknown cuz of dataset, regridded variable known
+canc var/all
+let myvar = 1           ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=sst[d=bad_dset]] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree=all a
+   in default dataset levitus_climatology
+   A = MYVAR[G=SST[D=BAD_DSET]] + UNVAR + KVAR
+     MYVAR[G=SST[D=BAD_DSET]] ??			<== UNKNOWN DATASET ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 4: target grid unknown, regridded variable unknown
+canc var/all
+! myvar unknown
+! gvar  unknown
+let a = myvar[g=gvar[d=1]] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree=all a
+   in default dataset levitus_climatology
+   A = MYVAR[G=GVAR[D=1]] + UNVAR + KVAR
+     MYVAR[G=GVAR[D=1]] ??			<== UNKNOWN VARIABLE ******
+       regrid to GVAR[D=1] ??		<== UNKNOWN GRID ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! *******************
+! file variable listing, only
+canc var/all
+let myvar = 1
+let fvar = airt[d=1]
+let kvar = 1  ! known var
+* /TREE=FILE with know regrid target
+let a = myvar[g=sst[d=1]] + fvar + kvar
+sho var/tree=file a
+   *unknown grid: SST[D=1]
+   *unknown variable: AIRT[D=1]
+ 
+* /TREE=FILE with unknow regrid target
+let a = myvar[g=unknown] + fvar + kvar
+sho var/tree=file a
+   *unknown grid: UNKNOWN
+   *unknown variable: AIRT[D=1]
+ 
+! ********************
+! regridding to multiple targets
+ 
+define axis/x=140e:160e:1 x1
+define axis/y=20s:20n:1   y1
+LET myvar = X[gx=x1] + Y[gy=y1]
+ 
+define axis/y=5s:5n:.5 yp5
+ 
+go bn_vtree.sub myvar[g=temp]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+myvar[g=temp] is ready and AVAILABLE
+************************
+ 
+! second target *is* a named variable
+go bn_vtree.sub myvar[g=temp,gy=sst[d=1]]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: SST[D=1]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+go bn_vtree.sub myvar[gx=temp,gy=sst[d=1]]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: SST[D=1]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+go bn_vtree.sub myvar[gy=sst[d=1],gx=temp]  ! reverse order, only
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+     regrid to TEMP
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   *unknown grid: SST[D=1]
+   regrid to TEMP[d=levitus_climatology]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+ 
+! second target is not a named variable
+go bn_vtree.sub myvar[g=temp,gy=yp5]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+myvar[g=temp,gy=yp5] is ready and AVAILABLE
+************************
+go bn_vtree.sub myvar[gx=temp,gy=yp5]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+myvar[gx=temp,gy=yp5] is ready and AVAILABLE
+************************
+go bn_vtree.sub myvar[g=temp,y=5s:5n:.5]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+myvar[g=temp,y=5s:5n:.5] is ready and AVAILABLE
+************************
+go bn_vtree.sub myvar[g=sst[d=1],y=5s:5n:.5]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   *unknown grid: SST[D=1]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+ 
+! multiple targets, including unknown variables
+go bn_vtree.sub myvar[g=temp,gy=mybad]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=mybad,gy=temp]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+     regrid to TEMP
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   *unknown grid: MYBAD
+   regrid to TEMP[d=levitus_climatology]
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[gy=temp,g=mybad[d=1]]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD[D=1]
+the problem is UNKNOWN GRID: MYBAD[D=1]
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad[d=1],gy=mybad2]! distinct unknown targets
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
+     regrid to MYBAD2 ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
+     regrid to MYBAD2 ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD[D=1]
+   *unknown grid: MYBAD2
+the problem is UNKNOWN GRID: MYBAD[D=1]
+************************
+go bn_vtree.sub myvar[gx=temp,gy=temp,g=mybad[d=1]]  ! dup known targets
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD[D=1]
+the problem is UNKNOWN GRID: MYBAD[D=1]
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad,gy=mybad]      ! dup unknown suppressed
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad[d=2],gy=mybad] ! dup unknown missed
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD[D=2] ??		<== UNKNOWN GRID ******
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD[D=2] ??		<== UNKNOWN GRID ******
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD[D=2]
+   *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD[D=2]
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad,gy='MYBAD']    ! dup unknown missed
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+     regrid to 'MYBAD' ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+     regrid to 'MYBAD' ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD
+   *unknown grid: 'MYBAD'
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=myvar,gy=mybad]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[gy=yp5,g=mybad]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=mybad,y=5s:5n:.5]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+ 
+! 2/15 additions -- auxiliary variable regridding
+USE levitus_climatology
+LET myzvar = Z[Z=100:500:100]
+DEFINE AXIS/z/units=meters zax = myzvar
+SET REGION/i=101:102/j=41:42
+ 
+LET/D=levitus_climatology depth = z[g=temp]+ 0*temp[k=1]
+ 
+! valid aux var and target variable
+LET tempz = temp[gz(depth)=myzvar]
+vtree=all tempz
+   in default dataset levitus_climatology
+   TEMPZ = TEMP[GZ(DEPTH)=MYZVAR]
+     TEMP
+       regrid to MYZVAR = Z[Z=100:500:100]
+       DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+         TEMP
+ 
+! valid aux var.  Target is axis name
+LET tempz1 = temp[gz(depth)=zax]
+vtree=all tempz1
+   in default dataset levitus_climatology
+   TEMPZ1 = TEMP[GZ(DEPTH)=ZAX]
+     TEMP
+       DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+         TEMP
+ 
+! valid aux var.  Target is unknown
+LET tempz2 = temp[gz(depth)=unknown_target]
+vtree=all tempz2
+   in default dataset levitus_climatology
+   TEMPZ2 = TEMP[GZ(DEPTH)=UNKNOWN_TARGET]
+     TEMP
+       regrid to UNKNOWN_TARGET ??		<== UNKNOWN GRID ******
+       DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+         TEMP
+ 
+! --- unknown aux var, valid target ---
+! When an unknown auxiliary variable error occurs it suppresses
+! the reporting of both the variable being regridded and the regrid target
+! The underlying issue is that GET_VAR_CONTEXT (called from is_dependencies.F)
+! can return only a single error status
+! If it contains ferr_unknown_auxvar, then the success or failure of other
+! parts of the context processing are unknown.
+! One could kludge the code to find a way around this, but the violence
+! required is not justified in order to fix this small loss in error reporting.
+LET tempz3 = temp[gz(unknown_aux)=myzvar]
+vtree=all tempz3
+   in default dataset levitus_climatology
+   TEMPZ3 = TEMP[GZ(UNKNOWN_AUX)=MYZVAR]
+       UNKNOWN_AUX   (unknown auxiliary variable)
+ 
+! a syntax error leads to a similar behavior
+LET tempz3a = temp[gz(unknown_aux)=myzvar,SYNTAX_ERROR]
+vtree=all tempz3a
+   in default dataset levitus_climatology
+   TEMPZ3A = TEMP[GZ(UNKNOWN_AUX)=MYZVAR,SYNTAX_ERROR]
+     TEMP[GZ(UNKNOWN_AUX)=MYZVAR,SYNTAX_ERROR]   *** WARNING: ERROR IN DEFINITION
+ 
+! similar behavior here:  the unknown_target does not get reported
+LET tempz4 = temp[gz(unknown_aux)=unknown_target]
+vtree=all tempz4
+   in default dataset levitus_climatology
+   TEMPZ4 = TEMP[GZ(UNKNOWN_AUX)=UNKNOWN_TARGET]
+       UNKNOWN_AUX   (unknown auxiliary variable)
+ 
+ 
+ 
  
 ! *********** v6.86 Additions ***********
 GO bn_reset
@@ -75731,7 +76427,7 @@ variables:
 		LABELS:history = "From http://dunkel.pmel.noaa.gov:8930/thredds/dodsC/data/atmos3.ncml" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75754,7 +76450,7 @@ variables:
 		STRVAR:long_name = "mystrings" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75906,7 +76602,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 : 03-JAN-2000 00:00:00 JULIAN"
+LAB5 = "FORECAST : 2000 JULIAN"
  
 GO bn_reset
 cancel mode verify
@@ -75982,7 +76678,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76012,7 +76708,7 @@ variables:
 		A:history = "From a" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76033,7 +76729,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76054,7 +76750,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76076,7 +76772,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76247,7 +76943,7 @@ show dat
  
  
 ! another error, new name is a user-var
-yes? set var/name=diff w
+set var/name=diff w
  
 SET MODE/LAST ignore
  
@@ -76305,7 +77001,7 @@ GO bn_short.sub tvar ave
 ! short script extracted from bn_negative_t.sub for bn_enter_exit_GO
  
 LIST/nohead/norow $1[t=-5:9@$2]	! neg/pos t endpoints
- !-> LIST/nohead/norow tvar[t=-5:9 at ave]	! neg/pos t endpoints
+ !-> LIST/nohead/norow tvar[t=-5:9 at ave]
    2.000
  
 ! Exit_GO
@@ -76397,11 +77093,11 @@ list/y=3/l=1 temp[x=@std]
 list/y=3/l=1 temp[z=@std,x=@std]
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
-             LONGITUDE: 140W to 122W (standard deviation)
+             LONGITUDE: 140W to 122W (XZ stddev)
              LATITUDE : 3N (interpolated)
-             DEPTH (m): 0 to 100 (standard deviation)
+             DEPTH (m): 0 to 100 (XZ stddev)
              TIME     : 17-AUG-1982 12:00
-          0.1946
+          1.037
  
 GO bn_reset
 cancel mode verify
@@ -76497,7 +77193,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        29   T       FERRET V6.93 (beta) 29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -76513,7 +77209,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        29   T       FERRET V6.93 (beta) 29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -76529,7 +77225,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        29   T       FERRET V6.93 (beta) 29-Oct-14
+ .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -76555,7 +77251,7 @@ set axis/name=.fr x_in_meters
  
 set mode/last ignore
  
-! *********** v6.9+ Additions ***********
+! *********** v6.93 Additions ***********
 GO bn_reset
 cancel mode verify
 GO bn691_bug_fixes
@@ -77058,7 +77754,7 @@ def axis/z=1:20:1 zaxis
 define axis/t=1-jan-2000:1-jan-2005:1/units=days  longtime
 let bigvar = x[gx=xaxis]+y[gy=yaxis] + z[gz=zaxis] + t[gt=longtime]
 sh grid bigvar
-    GRID (G085)
+    GRID (G103)
  name       axis              # pts   start                end
  XAXIS     X                  360 r   1                    360
  YAXIS     Y                  180 r   1                    180
@@ -77071,7 +77767,7 @@ load bigvar
 ! also was an incorrect size.
 define axis/t=1-jan-2000:1-jan-2010:1/units=days  longtime
 sh grid bigvar
-    GRID (G085)
+    GRID (G103)
  name       axis              # pts   start                end
  XAXIS     X                  360 r   1                    360
  YAXIS     Y                  180 r   1                    180
@@ -77363,10 +78059,12 @@ GO bn_vtree.sub c
 /TREE=ALL
    C = B2[GT=A]
      B2 = A
+       regrid to A = T[GT=1:2:1]
        A = T[GT=1:2:1]
 /TREE=USER
    C = B2[GT=A]
      B2 = A
+       regrid to A = T[GT=1:2:1]
        A = T[GT=1:2:1]
 /TREE=FILE
 c is ready and AVAILABLE
@@ -77404,6 +78102,8 @@ cancel mode verify
 GO err69_isready_bugs
 ! err69_isready_bugs.jnl
 ! Tickets 2201 and 2215
+! updated error script 12/14 *sh* - to ensure that bench log file
+! has verification of this problem and its fix, as well as the bench error file
  
 ! ticket 2201: isready operation meant we couldn't cancel the second axis
  
@@ -77425,6 +78125,18 @@ can axis xax_isready_1
 can var b
 can axis xax_isready_2
  
+! 12/14 additions:
+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
+show axis xax_isready_1, xax_isready_2   ! did they both get canceled?
+ name       axis              # pts   start                end
+ 
 ! Ticket 2215, only with an unreleased Ferret; the first fix to 2201.
  
 let a = x[gx=1:3:1]
@@ -77441,6 +78153,19 @@ m
  
 GO bn_reset
 cancel mode verify
+GO err691_substring_arg
+! err693_substring_arg
+! ACM 12/10/2014
+! ticket 2210. Argument checking was not done for the SUBSTRING function
+ 
+set mode ignore
+list substring("hello",1,-2)
+list substring("hello",1,-3)
+ 
+set mode/last ignore
+ 
+GO bn_reset
+cancel mode verify
 GO bn_append_dsg
 ! bn_append_dsg.jnl
 !From SOCAT 3: appending to a dsg file where the new variable is on the obs
@@ -77516,7 +78241,7 @@ variables:
 		:geospatial_lat_max = 29.07 ;
 		:time_coverage_start = "2006-06-10T23:48:00Z" ;
 		:time_converage_end = "2006-06-11T00:12:00Z" ;
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 }
  
 GO bn_reset
@@ -77609,7 +78334,7 @@ variables:
 		LON360:history = "added to test_save_dsg.nc" ;
 
 // global attributes:
-		:history = "CruiseDsgNcFile 1.0FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "CruiseDsgNcFile 1.0FERRET V6.951 (beta)  9-Nov-15" ;
 		:featureType = "Trajectory" ;
 		:Conventions = "Some other conventionsCF-1.6" ;
 		:geospatial_lon_min = -92.77 ;
@@ -77636,7 +78361,7 @@ can dat/all; use anew_global.nc
 sh att .
      attributes for dataset: ./anew_global.nc
  ..history = Subset of etopo20,
- FERRET V6.93 (beta) 29-Oct-14 
+ FERRET V6.951 (beta)  9-Nov-15 
  ..Conventions = Existing conventions note, , CF-1.6 
  
  
@@ -77668,7 +78393,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.93 (beta) 29-Oct-14 
+ ..history = The history of the fileFERRET V6.951 (beta)  9-Nov-15 
  ..Conventions = Conventions for variables named V2CF-1.6 
  
 GO bn_reset
@@ -78080,14 +78805,14 @@ a is ready and AVAILABLE
    in default dataset my_file_vars
    A = FV1[D=1] - FV1[D=2]
      FV1
-     FV1[d=other_file_var]
+     FV1[d=other_file_vars]
    in default dataset my_file_vars
    A = FV1[D=1] - FV1[D=2]
      FV1
-     FV1[d=other_file_var]
+     FV1[d=other_file_vars]
    in default dataset other_file_vars
    A = FV1[D=1] - FV1[D=2]
-     FV1[d=my_file_var]
+     FV1[d=my_file_vars]
      FV1
 ********************************
 /TREE=ALL
@@ -78096,30 +78821,30 @@ a is ready and AVAILABLE
 the problem is UNKNOWN VARIABLE: NOEXIST
 ************************
    in default dataset my_file_vars
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
    in default dataset my_file_vars
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
-   NOEXIST  (unknown variable)
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
+   *unknown variable: NOEXIST
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
 the problem is UNKNOWN DATASET: V[D=NOEXIST]
 ************************
    in default dataset my_file_vars
-   V[D=NOEXIST] ??                           <== UNKNOWN DATASET ******
+   V[D=NOEXIST] ??			<== UNKNOWN DATASET ******
    in default dataset my_file_vars
-   V[D=NOEXIST] ??                           <== UNKNOWN DATASET ******
-   V[D=NOEXIST]  (unknown dataset)
+   V[D=NOEXIST] ??			<== UNKNOWN DATASET ******
+   *unknown dataset: V[D=NOEXIST]
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
 the problem is UNKNOWN DATASET: NOVAR[D=NODSET]
 ************************
    in default dataset my_file_vars
-   NOVAR[D=NODSET] ??                           <== UNKNOWN DATASET ******
+   NOVAR[D=NODSET] ??			<== UNKNOWN DATASET ******
    in default dataset my_file_vars
-   NOVAR[D=NODSET] ??                           <== UNKNOWN DATASET ******
-   NOVAR[D=NODSET]  (unknown dataset)
+   NOVAR[D=NODSET] ??			<== UNKNOWN DATASET ******
+   *unknown dataset: NOVAR[D=NODSET]
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
@@ -78127,11 +78852,11 @@ the problem is UNKNOWN VARIABLE: NOEXIST
 ************************
    in default dataset my_file_vars
    B = NOEXIST
-     NOEXIST ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST ??			<== UNKNOWN VARIABLE ******
    in default dataset my_file_vars
    B = NOEXIST
-     NOEXIST ??                           <== UNKNOWN VARIABLE ******
-   NOEXIST  (unknown variable)
+     NOEXIST ??			<== UNKNOWN VARIABLE ******
+   *unknown variable: NOEXIST
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
@@ -78150,10 +78875,12 @@ fv1z is ready and AVAILABLE
    in default dataset my_file_vars
    FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
      FV1
+       regrid to ZPTS = Z[Z=0:500:100]
        FVZ
      FVX
    in default dataset my_file_vars
    FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
+       regrid to ZPTS = Z[Z=0:500:100]
    FV1[d=my_file_vars]
    FVZ[d=my_file_vars]
    FVX[d=my_file_vars]
@@ -78165,10 +78892,12 @@ fv1z is ready and AVAILABLE
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
      FV1
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]
      FVX
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]
    FV1[d=my_file_vars]
    FVX[d=my_file_vars]
@@ -78180,11 +78909,13 @@ fv1z is ready and AVAILABLE
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
      FV1
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
          FVZ
      FVX
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
    FV1[d=my_file_vars]
    FVZ[d=my_file_vars]
@@ -78201,7 +78932,7 @@ the problem is UNKNOWN AUXILIARY VARIABLE: NOEXIST
    in default dataset my_file_vars
    FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
        NOEXIST   (unknown auxiliary variable)
-   NOEXIST  (unknown auxiliary variable)
+   *unknown auxiliary variable: NOEXIST
    FVX[d=my_file_vars]
 /TREE=ALL
 /TREE=USER
@@ -78210,15 +78941,17 @@ the problem is UNKNOWN VARIABLE: NOEXIST[GZ(DEPTH)=ZPTS]
 ************************
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
-     NOEXIST[GZ(DEPTH)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(DEPTH)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
          FVZ
      FVX
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
-     NOEXIST[GZ(DEPTH)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(DEPTH)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
-   NOEXIST[GZ(DEPTH)=ZPTS]  (unknown variable)
+   *unknown variable: NOEXIST[GZ(DEPTH)=ZPTS]
    FVZ[d=my_file_vars]
    FVX[d=my_file_vars]
 /TREE=ALL
@@ -78228,15 +78961,17 @@ the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
 ************************
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
-     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        UNKNOWN_AUX   (unknown auxiliary variable)
      FVX
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
-     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        UNKNOWN_AUX   (unknown auxiliary variable)
-   NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]  (unknown variable)
-   UNKNOWN_AUX  (unknown auxiliary variable)
+   *unknown variable: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
+   *unknown auxiliary variable: UNKNOWN_AUX
    FVX[d=my_file_vars]
 /TREE=ALL
 /TREE=USER
@@ -78245,9 +78980,9 @@ fv1 is ready and AVAILABLE
 ************************
    in default dataset MY_AGG
    FV1   (aggregate variable)
-     FV1[d=my_file_var]
-     FV1[d=other_file_var]
-     FV1[d=another_file_var]
+     FV1[d=my_file_vars]
+     FV1[d=other_file_vars]
+     FV1[d=another_file_vars]
    in default dataset MY_AGG
    FV1   (aggregate variable)
  
@@ -78261,15 +78996,15 @@ fvx is ready and AVAILABLE
 ************************
    in default dataset MY_UVAR_AGG
    FVX   (aggregate variable)
-     FVX[d=my_file_var]
-     FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
-       FV1[d=other_file_var]
-     FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
-       FV1[d=another_file_var]
+     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
    FVX   (aggregate variable)
-     FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
-     FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+     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]
  
    FVX[d=my_file_vars]
    FV1[d=other_file_vars]
@@ -78281,28 +79016,28 @@ the problem is ILLEGAL RECURSIVE VARIABLES: P1
 ************************
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = P1 + S3
            P1 =   *** WARNING: RECURSIVE DEFINITION.  See above
-           S3 ??                           <== UNKNOWN VARIABLE ******
+           S3 ??			<== UNKNOWN VARIABLE ******
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = P1 + S3
            P1 =   *** WARNING: RECURSIVE DEFINITION.  See above
-           S3 ??                           <== UNKNOWN VARIABLE ******
-   S1  (unknown variable)
-   S2  (unknown variable)
-   S3  (unknown variable)
-   S3  (unknown variable)
+           S3 ??			<== UNKNOWN VARIABLE ******
+   *unknown variable: S1
+   *unknown variable: S2
+   *unknown variable: S3
+   *unknown variable: S3
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
@@ -78310,29 +79045,29 @@ the problem is UNKNOWN VARIABLE: S1
 ************************
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = S1 + S3
-           S1 ??                           <== UNKNOWN VARIABLE ******
-           S3 ??                           <== UNKNOWN VARIABLE ******
+           S1 ??			<== UNKNOWN VARIABLE ******
+           S3 ??			<== UNKNOWN VARIABLE ******
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = S1 + S3
-           S1 ??                           <== UNKNOWN VARIABLE ******
-           S3 ??                           <== UNKNOWN VARIABLE ******
-   S1  (unknown variable)
-   S2  (unknown variable)
-   S3  (unknown variable)
-   S1  (unknown variable)
-   S3  (unknown variable)
+           S1 ??			<== UNKNOWN VARIABLE ******
+           S3 ??			<== UNKNOWN VARIABLE ******
+   *unknown variable: S1
+   *unknown variable: S2
+   *unknown variable: S3
+   *unknown variable: S1
+   *unknown variable: S3
    in default dataset my_file_vars
    FV = FV1 + FV1 + FV1
    in default dataset MY_UVAR_AGG
@@ -78344,8 +79079,8 @@ the problem is UNKNOWN VARIABLE: S1
    in default dataset MY_UVAR_AGG
    UV = FVX + FVX + FVX
      FVX   (aggregate variable)
-       FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
-       FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+       FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+       FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
 ***************************
 /TREE=ALL
 /TREE=USER
@@ -78356,8 +79091,8 @@ v2 is ready and AVAILABLE
    V2 = V1 + B + A + A
      V1 = A  + B + B^2
        A = FV1[D=1] - FV1[D=2]
-         FV1[d=my_file_var]
-         FV1[d=other_file_var]
+         FV1[d=my_file_vars]
+         FV1[d=other_file_vars]
        B = C
          C = 1
      B =  (defined above)
@@ -78380,8 +79115,8 @@ v3 is ready and AVAILABLE
    in default dataset MY_UVAR_AGG
    V3 = A + V1 + B + A + A
      A = FV1[D=1] - FV1[D=2]
-       FV1[d=my_file_var]
-       FV1[d=other_file_var]
+       FV1[d=my_file_vars]
+       FV1[d=other_file_vars]
      V1 = A  + B + B^2
        A =  (defined above)
        B = C
@@ -78405,37 +79140,39 @@ the problem is UNKNOWN VARIABLE: F
    in default dataset MY_UVAR_AGG
    D = B + C
      B = FV1[D=MY_FILE_VARS]
-       FV1[d=my_file_var]
+       FV1[d=my_file_vars]
      C = 1
    A = F
-     F ??                           <== UNKNOWN VARIABLE ******
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
+     F ??			<== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
    E = 1
-   FVX[d=my_file_var]
+   FVX[d=my_file_vars]
    in default dataset MY_UVAR_AGG
    D = B + C
      B = FV1[D=MY_FILE_VARS]
      C = 1
    A = F
-     F ??                           <== UNKNOWN VARIABLE ******
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
+     F ??			<== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
    E = 1
-   F  (unknown variable)
+   *unknown variable: F
    FV1[d=my_file_vars]
-   NOEXIST  (unknown variable)
+   *unknown variable: NOEXIST
    FVX[d=my_file_vars]
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
-the problem is UNKNOWN GRID: A[G=NOEXIST]
+the problem is UNKNOWN GRID: NOEXIST
 ************************
    in default dataset MY_UVAR_AGG
    B = A[G=NOEXIST]
-     A[G=NOEXIST]   (unknown grid)
+     A = I[I=1:5]
+       regrid to NOEXIST ??		<== UNKNOWN GRID ******
    in default dataset MY_UVAR_AGG
    B = A[G=NOEXIST]
-     A[G=NOEXIST]   (unknown grid)
-   A[G=NOEXIST]  (unknown grid)
+     A = I[I=1:5]
+       regrid to NOEXIST ??		<== UNKNOWN GRID ******
+   *unknown grid: NOEXIST
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
@@ -78447,7 +79184,7 @@ the problem is ERROR IN EXPRESSION: A[X=45S]
    in default dataset MY_UVAR_AGG
    C = A[X=45S]
      A[X=45S]   *** WARNING: ERROR IN DEFINITION
-   A[X=45S]   *** WARNING: SYNTAX ERROR
+      *WARNING: syntax error: A[X=45S]
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
@@ -78459,7 +79196,7 @@ the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
    in default dataset MY_UVAR_AGG
    D = A[I=1,,J=2]
      A[I=1,,J=2]   *** WARNING: ERROR IN DEFINITION
-   A[I=1,,J=2]   *** WARNING: SYNTAX ERROR
+      *WARNING: syntax error: A[I=1,,J=2]
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
@@ -78471,7 +79208,7 @@ the problem is ERROR IN EXPRESSION: A[P=1]
    in default dataset MY_UVAR_AGG
    E = A[P=1]
      A[P=1]   *** WARNING: ERROR IN DEFINITION
-   A[P=1]   *** WARNING: SYNTAX ERROR
+      *WARNING: syntax error: A[P=1]
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
@@ -78570,8 +79307,8 @@ say `files,return=isize`
 ! Evaluate size without loading the variable first
 let datfiles = {spawn:"ls *.dat"}
 say `datfiles,return=isize`
- !-> MESSAGE/CONTINUE 36
-36
+ !-> MESSAGE/CONTINUE 37
+37
  
 ! expression syntax
 say `{spawn:"ls xml*.jnl"},return=isize`
@@ -78589,8 +79326,8 @@ list {spawn:"ls xml*.jnl"}
  
 LET filesets = xcat({spawn:"ls *.nc"}, {spawn:"ls *.jnl"})
 say `filesets, return=isize`
- !-> MESSAGE/CONTINUE 835
-835
+ !-> MESSAGE/CONTINUE 919
+919
  
 let files = {spawn:"ls *cdf*.jnl"}
 let name_len = strindex(files, ".sub")
@@ -78635,268 +79372,7722 @@ poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
  
 set mode/last ignore
  
-!  *********** Always do a bn_reset  ***********
-!  *********** make sure things clean up well **
+! *********** v6.94Additions ***********
+ 
 GO bn_reset
 cancel mode verify
+GO bn694_bug_fixes
+! bn694_bug_fixes
+! test various fixes that went into version 6.94
+! 11/2014 ACM
+! 12/2014 *sh* added IF-THEN flow fixes, including review of past tickets
+! 1/2015 *sh* added test for undetected bad dataset name in regrid target
  
-! version 2.3 requires exit/command *sh* 3/92
-exit/command
-yes? ! bn_all_ef_shell.jnl
-yes? ! 5/05 *acm*
-yes? ! run bn_all_ef tests
-yes? 
-yes? GO bn_all_ef
- 	NOAA/PMEL TMAP
- 	FERRET v6.93 (beta)
- 	Linux 2.6.32-504.el6.x86_64 64-bit - 10/29/14
- 	29-Oct-14 16:04     
-
-SET MODE VERIFY
-! bn_all_ef.jnl
-! - run all the benchmark tests for externally-linked external functions.
+GO bn_reset
+cancel mode verify
+GO err693_upcase_quoted_name
+! err693_upcase_quoted_name.jnl
+! ticket 2050. Names are saved in uppercase
+! form unless there are duplicates other than case.
+! Then searching for the name in quotes looked
+! only with a case-sensitive search.
+ 
+let abc = 12
+cancel mode upcase
+ 
+save/file=aa.nc/clobber abc
+can dat/all; can var/all
+ 
+use aa.nc
+! previously this failed to find the name.
+list 'abc'
+             VARIABLE : 12
+             FILENAME : aa.nc
+          12.00
  
  
 GO bn_reset
 cancel mode verify
-GO bn_ef_external_functions.jnl
-! Tests of external functions that are distributed as shared object files.
+GO err693_isready_hang
+! err693_isready_hang.jnl
+! ACM 12/10/2014
+! ticket 2219.  The last of these commands caused Ferret to hang.
  
-! Jon's benchmarks
-go bench_examples
-set mode ignore_error
-show func/ext add_9
-ADD_9(A,B,C,D,E,F,G,H,I)
-    (demonstration function) adds 9 arguments
-show func/ext ave*
-AVE_SCAT2GRID_T(TPTS,VPTS,TAXIS)
-    Compute average of a variable in each cell of output time axis
-    TPTS: T coordinates of scattered input time coordinates
-    VPTS: Variable at times in TPTS
-    TAXIS: Output time axis
-AVET(A)
-    (demonstration function) returns the time average
-    A: data to be averaged over the time axis
-show func pass_thru
-PASS_THRU(A)
-    (demonstration function) sets result equal to input
-    A: this arg is passed through
-show func sto*
-STORAGE(A)
-    sets result equal to input/10
-    A: input
+use gt4d011
+def ax/t/t0="`u,r=t0`"/unit="`u,r=tunit`" time = t[gt=u]
+ !-> def ax/t/t0="14-JAN-1980 14:00:00"/unit="hour" time = t[gt=u]
+let a = u
+IF `a,r=isready` THEN; let/title="`a,r=title`" a1 = a; ENDIF
+ !-> IF 1         THEN
+ !-> DEFINE VARIABLE/title="U" a1 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a2 = a; ENDIF
+ !-> IF 1         THEN
+ !-> DEFINE VARIABLE/title="U" a2 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a3 = a; ENDIF
+ !-> IF 1         THEN
+ !-> DEFINE VARIABLE/title="U" a3 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a4 = a; ENDIF
+ !-> IF 1         THEN
+ !-> DEFINE VARIABLE/title="U" a4 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a5 = a; ENDIF
+ !-> IF 1         THEN
+ !-> DEFINE VARIABLE/title="U" a5 = a
  
-go bench_add_9
-! Bench_add_9.jnl
-!  ACM  8/99
-!  benchmark script for testing external function add_9.
-! Note: bench_add_9_visual contains plots of similar computations
+GO bn_reset
+cancel mode verify
+GO err693_isready_dyn_grid_crash   ! 12/23/2014
+let/unit="m" b = x[gx=1:5:1]
+say "`b,r=unit`"     ! this causes dynamic grid of b to be created
+ !-> MESSAGE/CONTINUE "m"
+m
+let c = x[gx=1:5:2]
+let b2 = b+0*c[gx=b] ! dynamic grid of b exists, but not grid of c
+VTREE b2
+   B2 = B+0*C[GX=B]
+     B = X[GX=1:5:1]
+     C = X[GX=1:5:2]
+       regrid to B = X[GX=1:5:1]
  
-set mode ignore_errors
+GO bn_reset
+cancel mode verify
+GO err693_attr_in_gcfcn
+! err693_attr_in_gcfcn.jnl
+! ACM 12/10/2014
+! bug 2220 varname.attname as an argument to grid-changing functions.
+! All except the last of these caused various ungraceful stops.
  
+let/units="m" a = 1
+list is_element_of_str(a.units,{"m","a"})
+             VARIABLE : IS_ELEMENT_OF_STR(A.UNITS,{"m","a"})
+             X        : 1
+          1.000
  
-can region
-use coads_climatology
-set region/x=151E:179E/y=0
+let/units="m" a = 1
+let b = a.units
+list is_element_of_str(b,{"m","a"})
+             VARIABLE : IS_ELEMENT_OF_STR(B,{"m","a"})
+             X        : 1
+          1.000
  
-let a1 = sst[d=1,l=1]
-let a2 = sst[d=1,l=2]
-let a3 = sst[d=1,l=3]
  
-let a = add_9(a1,a2,a3,a1,a2,a3,a1,a2,a3)
+use levitus_climatology
  
-list a
-             VARIABLE : ADD_9(A1,A2,A3,A1,A2,A3,A1,A2,A3)
-             SUBSET   : 15 points (LONGITUDE)
-             LATITUDE : 1S
-             TIME     : 16-JAN 06:00
-                1S    
-                45
- 151E   / 66:  263.6
- 153E   / 67:  264.5
- 155E   / 68:  264.2
- 157E   / 69:  261.3
- 159E   / 70:  260.9
- 161E   / 71:  262.4
- 163E   / 72:  264.0
- 165E   / 73:  261.1
- 167E   / 74:  260.9
- 169E   / 75:  261.0
- 171E   / 76:  259.3
- 173E   / 77:  257.9
- 175E   / 78:  257.0
- 177E   / 79:  259.1
- 179E   / 80:  254.8
-list  a - 3 * sst[d=1,l=1:3 at sum]
-             VARIABLE : A - 3 * SST[D=coads_climatology,L=1:3 at SUM]
-             SUBSET   : 15 points (LONGITUDE)
-             LATITUDE : 1S
-             TIME     : 16-JAN 06:00
-                 1S    
-                 45
- 151E   / 66:  0.0000
- 153E   / 67:  0.0000
- 155E   / 68:  0.0000
- 157E   / 69:  0.0000
- 159E   / 70:  0.0000
- 161E   / 71:  0.0000
- 163E   / 72:  0.0000
- 165E   / 73:  0.0000
- 167E   / 74:  0.0000
- 169E   / 75:  0.0000
- 171E   / 76:  0.0000
- 173E   / 77:  0.0000
- 175E   / 78:  0.0000
- 177E   / 79:  0.0000
- 179E   / 80:  0.0000
-set mode/last ignore_errors
-go bench_avet
-! Bench_avet.jnl
-!  ACM  8/99
-!  benchmark script for testing external function avet.
-! Note: bench_avet_visual.jnl contains plots of similar computations
+list is_element_of_str_n (temp.long_name, {"Temperature", "temp"})
+             VARIABLE : IS_ELEMENT_OF_STR_N (TEMP.LONG_NAME, {"Temperature", "temp"})
+             FILENAME : levitus_climatology.cdf
+             X        : 1
+          2.000
  
-set mode ignore_errors
+let a = temp.units
+list is_element_of_str (a, {"Kelvin", "Celsius", "DEG C"})
+             VARIABLE : IS_ELEMENT_OF_STR (A, {"Kelvin", "Celsius", "DEG C"})
+             FILENAME : levitus_climatology.cdf
+             X        : 1
+          1.000
  
-can region
-use coads_climatology
-set region/x=151E:179E/y=0
  
-let a = avet(sst)
-list a
-             VARIABLE : AVET(SST)
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 15 points (LONGITUDE)
-             LATITUDE : 1S
-                1S    
-                45
- 151E   / 66:  29.28
- 153E   / 67:  29.39
- 155E   / 68:  29.35
- 157E   / 69:  29.03
- 159E   / 70:  28.99
- 161E   / 71:  29.15
- 163E   / 72:  29.33
- 165E   / 73:  29.01
- 167E   / 74:  28.99
- 169E   / 75:  29.00
- 171E   / 76:  28.81
- 173E   / 77:  28.66
- 175E   / 78:  28.56
- 177E   / 79:  28.79
- 179E   / 80:  28.31
-list a - sst[l=@ave]
-             VARIABLE : A - SST[L=@AVE]
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 15 points (LONGITUDE)
-             LATITUDE : 1S
-             TIME     : 01-JAN 00:45 to 01-APR 08:12
-                  1S      
-                  45
- 151E   / 66:  0.000E+00
- 153E   / 67: -3.553E-15
- 155E   / 68:  0.000E+00
- 157E   / 69:  0.000E+00
- 159E   / 70:  3.553E-15
- 161E   / 71:  7.105E-15
- 163E   / 72:  3.553E-15
- 165E   / 73:  0.000E+00
- 167E   / 74:  0.000E+00
- 169E   / 75:  3.553E-15
- 171E   / 76:  0.000E+00
- 173E   / 77:  3.553E-15
- 175E   / 78:  0.000E+00
- 177E   / 79:  3.553E-15
- 179E   / 80:  3.553E-15
  
-can region
-let a = x[i=1:9,k=1:5] + t[l=1:5]
-let b = x[i=1:9,k=1:5]
-let c = avet(a)
-list b, c
-             X: 0.5 to 9.5
- Column  1: B is X[I=1:9,K=1:5]
- Column  2: C is AVET(A)
-             B     C
-1   / 1:  1.000   4.00
-2   / 2:  2.000   5.00
-3   / 3:  3.000   6.00
-4   / 4:  4.000   7.00
-5   / 5:  5.000   8.00
-6   / 6:  6.000   9.00
-7   / 7:  7.000  10.00
-8   / 8:  8.000  11.00
-9   / 9:  9.000  12.00
+GO bn_reset
+cancel mode verify
+GO err693_inconsistent_quote
+! inconsistent interpretation of surrounding double quotes
+! the original source of the problem is in PARSE_COMMAND
+! arg_start and arg_end are set to skip surrounding quotation marks.
+! But since this behavior permeates so many routines it is best to repair
+! the problem in ALL_1_ARG
  
-set mode/last ignore_errors
-go bench_pass_thru
-! Bench_pass_thru.jnl
-!  ACM  8/99
-!  benchmark script for testing external function pass_thru.
-! Note: bench_pass_thru_visual.jnl contains plots of similar computations
  
-set mode ignore_errors
+let foobar = 1
+LIST "foobar", "foobar" ! this is correct - list as strings
+ Column  1: str is "foobar"
+ Column  2: str is "foobar"
+              str     str
+I / *:    "foobar" "foobar"
+LIST "foobar"           ! error: lists the value instead
+             VARIABLE : "foobar"
+        "foobar"
  
-can region
-let a = pass_thru(x)
-list a[i=1:20]
-             VARIABLE : PASS_THRU(X)
-             SUBSET   : 20 points (X)
- 1    /  1:   1.00
- 2    /  2:   2.00
- 3    /  3:   3.00
- 4    /  4:   4.00
- 5    /  5:   5.00
- 6    /  6:   6.00
- 7    /  7:   7.00
- 8    /  8:   8.00
- 9    /  9:   9.00
- 10   / 10:  10.00
- 11   / 11:  11.00
- 12   / 12:  12.00
- 13   / 13:  13.00
- 14   / 14:  14.00
- 15   / 15:  15.00
- 16   / 16:  16.00
- 17   / 17:  17.00
- 18   / 18:  18.00
- 19   / 19:  19.00
- 20   / 20:  20.00
-set region/i=1:20
-list sin(a)
-             VARIABLE : SIN(A)
-             SUBSET   : 20 points (X)
- 1    /  1:  0.8415
- 2    /  2:  0.9093
- 3    /  3:  0.1411
- 4    /  4: -0.7568
- 5    /  5: -0.9589
- 6    /  6: -0.2794
- 7    /  7:  0.6570
- 8    /  8:  0.9894
- 9    /  9:  0.4121
- 10   / 10: -0.5440
- 11   / 11: -1.0000
- 12   / 12: -0.5366
- 13   / 13:  0.4202
- 14   / 14:  0.9906
- 15   / 15:  0.6503
- 16   / 16: -0.2879
- 17   / 17: -0.9614
- 18   / 18: -0.7510
- 19   / 19:  0.1499
- 20   / 20:  0.9129
-can var/all
-can region
+! IF-THEN flow tests
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_2214
+! bug 2214
+! If we put the "say hi" in parentheses, this seems to work.
+! But parentheses haven't previously been required, so there are a lot of
+! scripts that don't have them.
  
-use coads_climatology
-let a = pass_thru(sst[l=@ave,y=@sbx:11])
-list/x=50 a
-             VARIABLE : PASS_THRU(SST[L=@AVE,Y=@SBX:11])
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 90 points (LATITUDE)
-             LONGITUDE: 49E
-             TIME     : 01-JAN 00:45 to 01-APR 08:12
+* 12/14 note (sh) - Ferret handles this situation correctly because
+* PARSE_COMMAND acts on the semi-colons in the full command line *before*
+* it acts on the "IF".  Thus the thress semicolon-connected commands
+* follow the same logical path through Ferret as if they were separated
+* onto three lines
+ 
+IF 0 THEN; rep/i=1:1 say ERROR; ENDIF
+ 
+IF 1 THEN; rep/i=1:1 say CORRECT; ENDIF
+!-> REPEAT: I=1
+CORRECT
+ 
+(IF 0 THEN; rep/i=1:1 say ERROR; ENDIF)
+ 
+(IF 1 THEN; rep/i=1:1 say CORRECT; ENDIF)
+!-> REPEAT: I=1
+CORRECT
+ 
+!yes? quit
+!yes? quit
+!yes? ^Z
+!Suspended
+ 
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_2211
+! bug #2211
+ 
+ 
+IF 0 THEN
+ELSE
+   exit/script
+ 
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1860
+! from bug 1860
+! continue line found within grave accents
+ 
+CANCEL MODE VERIFY
+This works:
+CORRECT IF THIS DISPLAYS
+This works:
+CORRECT IF THIS DISPLAYS
+This works:
+CORRECT IF THIS DISPLAYS
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1446
+! testing ticket 1446
+ 
+! the presence of a tab preceding the "!" comment caused a parsing error
+ 
+! the behavior of this even in v69+ today is problematic in that
+! it echos an ENDIF statement that should be a plain old skip
+ 
+IF 0 THEN
+ENDIF
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1681
+! testing ticker 1681
+ 
+!The third block of the following script issues an error:
+!ERROR: invalid command: ENDIF can only be used in an IF clause
+!
+!Looks like a parsing bug -- it seems the ENDIF inside the REPEAT is being
+!applied to the outermost IF. Note that the error goes away if we change
+!the outer 0 to a 1.
+ 
+ 
+say "test1"
+test1
+if 0 then
+endif
+ 
+say "test2"
+test2
+if 0 then
+endif
+ 
+say "test3"
+test3
+if 0 then
+endif
+ 
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1706
+! testing ticket 1706
+!
+def sym a say hi\\; say hi
+ 
+IF 0 THEN
+ENDIF
+ 
+! some versions (not v550 but yes v63 but not v6301) fail to say "here"
+IF 1 THEN
+   say here
+here
+ENDIF
+ 
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1368   ! Jan 28, 2010, Ferret version 5.812
+! testing ticket 1368 - first found in Ferret v5.812 (Jan 28, 2010)
+ 
+! this is still a bug in V69+
+! the initial IF command is not being closed by the first ENDIF
+! it is skipping down to the elif command
+ 
+define symbol xend 180
+let key_flag = 0
+ 
+! test 1 - line 1 false condition should suppress both outputs
+IF `($xend) GT 360` THEN
+ !-> IF 0 THEN
+ENDIF
+ 
+ 
+! test 2 - line 1 false condition should cause else clause - "point G"
+let dxymin = 0.20
+if `dxymin lt 0.12` then
+ !-> if 0 then
+elif `dxymin lt 0.25` then
+ !-> elif 1 then
+  SAY "CORRECT.  this message should display"
+CORRECT.  this message should display
+endif
+ 
+! test 3 - this is from bug #918 -- looks like the same bug as #1368
+IF 0 THEN
+ENDIF
+ 
+GO bn_reset
+cancel mode verify
+GO err693_ribbon_start_missing
+! err693_ribbon_start_missing
+! 1/6/2015 ACM
+!
+! Bug 2226: If data starts with a missing-value and we're using (-inf) then
+! the ribbon plot started with the lowest color instead of plotting as for missing
+! Only the cases starting with missing data were incorrect previous to fixing this bug.
+ 
+DEFINE SYMBOL ribbon_command = PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3
+ 
+let/units=degrees_east xvar = {-177,-174,-186}
+let/units=degrees_north yvar = {-43, -45, -42}
+let vvar = {,271, 319}
+! This previously started with purple, not a gray missing-value point
+($ribbon_command)/title="(-inf) in levels" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="(-inf) in levels" xvar,yvar,vvar
+ 
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,,,271,319}
+($ribbon_command)/title="start with several missing" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="start with several missing" xvar,yvar,vvar
+ 
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,,271,319,1000}
+($ribbon_command)/title="end large positive value" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="end large positive value" xvar,yvar,vvar
+ 
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,271,319,1000,}
+($ribbon_command)/title="end with large positive and missing" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="end with large positive and missing" xvar,yvar,vvar
+ 
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {1.e7,,,271,319}
+($ribbon_command)/title="start with large positive" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="start with large positive" xvar,yvar,vvar
+ 
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,1.e7,,271,319}
+($ribbon_command)/title="start with missing then large positive" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="start with missing then large positive" xvar,yvar,vvar
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err691_pt_in_poly
+! err691_pt_in_poly
+! ticket 1961: modulo longitude for pt_in_poly
+! and sending subset of the xy field
+ 
+use coads_climatology
+ 
+let xpts = {64,81,81,82,88,88,79,79,76,73,68,64}
+let ypts = {31,30,29,29,27,24,20,19,20,25,27,31}
+ 
+let pts = pt_in_poly(sst[L=5,x=60:90,y=15:35], xpts, ypts)
+shade/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
+             VARIABLE : MINMAX(PTS)
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 2 points (X)
+ 1   / 1: -1.000
+ 2   / 2:  1.000
+ 
+! Put the xpts on different modulo branches
+! Previously  the list commands would have listed -1,-1
+ 
+let xpts0 = {64,81,81,82,88,88,79,79,76,73,68,64}
+let/title=lon/units=degrees_east xpts = xpts0 + 360
+ 
+shade/title="Plus 360"/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
+             VARIABLE : MINMAX(PTS)
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 2 points (X)
+ 1   / 1: -1.000
+ 2   / 2:  1.000
+ 
+let/title=lon/units=degrees_east xpts = xpts0 - 360
+ 
+shade/title="Minus 360"/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
+             VARIABLE : MINMAX(PTS)
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 2 points (X)
+ 1   / 1: -1.000
+ 2   / 2:  1.000
+ 
+GO bn_reset
+cancel mode verify
+GO err693_undetected_regrid_dset
+! err693_undetected_regrid_dset.jnl    - Jan 2015
+ 
+! in GET_CONTEXT_MODS no check is made whether dataset name/number is
+! valid following   "gdset = FIND_DSET_NUMBER( name(dstart:dend) )"
+ 
+use coads_climatology
+use levitus_climatology   ! default to d=2
+ 
+canc var/all
+let myvar = temp
+let a = myvar[g=temp[d=bad_d]]    ! THIS SHOULD BE DETECTED AS AN ERROR
+ 
+set mode ignore
+stat/l=1/x=180/y=0 a    ! this *SHOULD* trigger an error.  Yes.  Detect it.
+set mode/last ignore
+ 
+GO bn_reset
+cancel mode verify
+GO err693_line_over_axis
+! Ticket 2232: line plots overlaid the plot axes
+show mode meta
+      MODE            STATE        ARGUMENT
+      METAFILE      CANCELLED      metafile.plt
+! line plot with /VS draw on top of the axes
+let xval = {0.0, 0.2, 1.0, 0.8, 0}
+let yval = {0.0, 1.1, 1.1, 0.0, 0}
+plot/vs/line/thick=3/color=lightblue xval, yval
+ 
+! any line overlay may draw on the axes
+let xval = {0.0, 0.0, 0.8, 0.2, 0}
+let yval = {0.1, 1.2, 1.2, 0.1, 0.1}
+plot/ribbon/vs/line/thick=3/over/nolab/pal=green_light xval, yval, yval
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_save_packed
+! err693_save_packed.jnl
+! ticket 2240: bug writing multiple vars with one SAVE when scaled
+!
+! Previously saw a netcdf error because first variable was mis-scaled on writing.
+ 
+use err693_save_packed.nc
+save/clobber/file=a.nc QA_OF_SEAICE_CONC_CDR, GODDARD_MERGED_SEAICE_CONC
+ 
+GO bn_reset
+cancel mode verify
+GO err693_subspan_trans
+! err693_subspan_trans
+! bug 2241  3/9/2015
+ 
+use coads_climatology
+let a = sst[x=120:284,y=-2:2 at ave,t=@ave]
+save/clob/file=a.nc a
+can var a
+use a
+set reg/x=25:385
+let b = a[x=@min]
+ 
+set mode diag
+say `a[x=@min]`
+ getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing moduloing A on X axis:     1    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
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
+ 
+! This previously resulted in an error.
+say `b`
+ dealloc  dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ getgrid B        C:  7 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    B        C:  6 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ strip --> A[X=25E:25E(385)@MIN,D=2]
+ strip 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
+ doing moduloing A on X axis:     1    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
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
+ 
+can mode diag
+ 
+! What if the region for @MIN is in the saved portion?
+say `a[x=150:200 at min]`
+ !-> MESSAGE/CONTINUE 26.96305592854818
+26.96305592854818
+let b = a[x=150:200 at min]
+say `b`
+ !-> MESSAGE/CONTINUE 26.96305592854818
+26.96305592854818
+ 
+! What if the region for @MIN extends beyond the saved portion?
+say `a[x=200:300 at min]`
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
+let b = a[x=200:300 at min]
+say `b`
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
+ 
+! What if the region for @MIN is outside the saved portion?
+say `a[x=300:385 at min]`
+ !-> MESSAGE/CONTINUE bad
+bad
+let b = a[x=300:385 at min]
+say `b`
+ !-> MESSAGE/CONTINUE bad
+bad
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_repeat_err
+!   err693_repeat_err.jnl
+! test fix for ticket 2244: Error handling in REPEAT
+ 
+! The second of these should result in an error - in debug mode
+! it instead was hitting an out-of-range subscript error.
+ 
+repeat/range=1:2/name=column repeat/range=1:2/name=row say `column`,`row`
+!-> REPEAT: COLUMN:1
+!-> REPEAT: ROW:1
+ !-> MESSAGE/CONTINUE 1,1
+1,1
+!-> REPEAT: ROW:2
+ !-> MESSAGE/CONTINUE 1,2
+1,2
+!-> REPEAT: COLUMN:2
+!-> REPEAT: ROW:1
+ !-> MESSAGE/CONTINUE 2,1
+2,1
+!-> REPEAT: ROW:2
+ !-> MESSAGE/CONTINUE 2,2
+2,2
+ 
+set mode ignore
+repeat/range=1:2/name=column repeat/range=1:2/name=row
+!-> REPEAT: COLUMN:1
+!-> REPEAT: COLUMN:2
+set mode/last ignore
+ 
+GO bn_reset
+cancel mode verify
+GO err693_edit_useratt
+! err693_edit_useratt.jnl
+! ticket 2249: set attribute properties for user-defined variable
+ 
+use err491_attval.cdf
+list/x=135.402W:135.321W/y=58.609 elev
+             VARIABLE : Surface elevation (meter)
+             DATA SET : K-Bay OAR3d model (200m)
+             FILENAME : err491_attval.cdf
+             SUBSET   : 7 points (LONGITUDE)
+             LATITUDE : 58.61N (interpolated)
+             T (day)  : 1.7837
+ 135.402W / 45:   ....
+ 135.389W / 46:   ....
+ 135.375W / 47:   ....
+ 135.362W / 48:  2.953
+ 135.348W / 49:  2.953
+ 135.335W / 50:  2.950
+ 135.321W / 51:  2.953
+ 
+ 
+! Rename the file variable, define a variable using its name
+set var/name=elev_in elev
+let  elev = missing(elev_in, -1.e34)
+ 
+! Inherit attributes from the file variable.
+! cancel writing the scale attributes
+set att/like=elev_in elev
+can att/output elev.scale_factor
+can att/output elev.add_offset
+ 
+! set the bad-flag (can't do this before the SET ATT/LIKE
+set var/bad=-1.e34 elev
+ 
+! save
+save/clobber/file=a.nc elev
+can var/all
+use a.nc
+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)
+             T (day)  : 1.7837
+ 135.402W / 45:   ....
+ 135.389W / 46:   ....
+ 135.375W / 47:   ....
+ 135.362W / 48:  2.953
+ 135.348W / 49:  2.953
+ 135.335W / 50:  2.950
+ 135.321W / 51:  2.953
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_redef_rec_axis
+! err693_redef_rec_axis.jnl
+! ticket 2271. Redefining the record axis meant
+! that SHOW AXIS/FULL couldnt get the time axis info
+ 
+define axis/x=1:5:1 xax
+define axis/y=2:10:2 yax
+define axis/t=1:7:1 tredef
+let var = x[gx=xax] + y[gy=yax] + t[gt=tredef]
+save/clobber/file=a.nc var
+ 
+can var/all
+can axis xax
+can axis yax
+can axis tredef
+ 
+use a.nc
+define axis/t=1:7:1/units=days/t0=1-jan-2000 tredef
+ 
+! Previously the output had  time range: ???
+show data/full
+     currently SET data sets:
+    1> ./a.nc  (default)
+ 
+ name     title                             I         J         K         L         M         N
+ VAR      X[GX=XAX] + Y[GY=YAX] + T[GT=TR  1:5       1:5       ...       1:7       ...       ...
+               on grid GSI1 with -1.E+34 for missing data
+             X=0.5:5.5  Y=1:11  
+ 
+  time range: 02-JAN-2000 00:00 to 08-JAN-2000 00:00
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_frame_types
+! bn_frame_types.jnl
+! Ticket 2275
+! The default file type for FRAME was still HDF
+ 
+set mode ignore
+ 
+use coads_climatology
+shade/l=1 sst
+ 
+! This issued an error and quit
+frame/format=hdf/file=a.hdf
+ 
+! so did this
+frame/file=a.png
+ 
+! this is (always) ok
+frame/file=a.gif
+frame/format=gif file=a.plot
+ 
+set mode/last ignore
+ 
+GO bn_reset
+cancel mode verify
+GO err693_shape
+! err693_shape.jnl
+! bug 2273 shape of variable with various subexpressions
+ 
+use coads_climatology
+let a = sst[x=@ave]
+let a_clim = a[gt=MONTH_IRREG at mod]
+let a_anom = a - a_clim[gt=a at nrst]
+ 
+! Should all be YT
+say `a,r=shape`  `a_clim[gt=a at nrst],r=shape` `a_anom,r=shape`
+ !-> MESSAGE/CONTINUE YT  YT YT
+YT  YT YT
+ 
+! Also works for size returns
+ 
+! Should be 180, 1, 1
+say `sst,r=isize`  `a,r=isize` `a_anom,r=isize`
+ !-> MESSAGE/CONTINUE 180  1 1
+180  1 1
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_ef_axis_precision
+ ! NOAA/PMEL TMAP
+ ! FERRET v6.94
+ ! Linux 2.6.32-504.12.2.el6.x86_64 64-bit - 03/20/15
+ ! 11-May-15 16:51
+ 
+define axis/f faxis = {0.001, 0.123, 0.234, 0.498}
+define axis/e eaxis = {1001.1009, 1234.005, 2112.321, 2520.45}
+let efvar = _M[ge=eaxis] + _n[gf=faxis]
+set view upper; plot/n=3 efvar
+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
+ 1001.1 / 1:  4.000
+ 1234   / 2:  5.000
+ 2112.3 / 3:  6.000
+ 2520.4 / 4:  7.000
+list/m=2 efvar
+             VARIABLE : _M[GE=EAXIS] + _N[GF=FAXIS]
+             SUBSET   : 4 points (F)
+             E        : 1234
+ 0    / 1:  3.000
+ 0.12 / 2:  4.000
+ 0.23 / 3:  5.000
+ 0.5  / 4:  6.000
+q
+ 
+GO bn_reset
+cancel mode verify
+GO err693_string_results
+! err693_string_results.jnl
+! Ticket 2234, the LIST B returned the numeric pointer to the string.
+! *acm* 5/14/2015
+ 
+let b = IF a then "yes" else "no"
+let a = 1/0
+list b
+             VARIABLE : IF A THEN "yes" ELSE "no"
+        "no"
+ 
+! The LOAD C makes the data type of D correct
+let d = if c then "ok" else "not ok"
+let c = 1/0
+load C
+list d
+             VARIABLE : IF C THEN "ok" ELSE "not ok"
+        "not ok"
+ 
+GO bn_reset
+cancel mode verify
+GO err693_lev_nv_over
+! err693_lev_nv_over.jnl
+! The polygon command with /LEV=20V caused a crash; levels settings incorrect.
+ 
+! draw any underlay to set up for polymark script
+use coads_climatology
+shade/x=120:250/Y=25s:65n/L=1/pal=white/nokey sst
+ 
+LET xpts = 180 + 50*COS(2*3.14*I[I=1:50]/60)
+LET ypts = 15  + 20*SIN(2*3.14*I[I=1:50]/60)
+ 
+! Variable is a constant w/ negative value
+LET sst = -5 + 0*ypts
+ 
+! The poly/over command caused a Fortran runtime error in tm_fmt_sngl
+GO polymark polygon/over/lev=20v/key/title="SST"  xpts,ypts,sst,square, 0.5
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_fcn_of_attvar
+! err693_fcn_of_attvar.jnl
+! Ticket 2291 Function of attribute-expression
+! returned just the first result
+ 
+use coads_climatology
+list sst.dimnames
+             VARIABLE : SST.DIMNAMES
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 3 points (X)
+ 1   / 1:"COADSX"
+ 2   / 2:"COADSY"
+ 3   / 3:"TIME10"
+list dncase(sst.dimnames)
+             VARIABLE : DNCASE(SST.DIMNAMES)
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 3 points (X)
+ 1   / 1:"coadsx"
+ 2   / 2:"coadsy"
+ 3   / 3:"time10"
+list strlen( sst.dimnames)
+             VARIABLE : STRLEN( SST.DIMNAMES)
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 3 points (X)
+ 1   / 1:  6.000
+ 2   / 2:  6.000
+ 3   / 3:  6.000
+list substring(sst.dimnames,2,3)
+             VARIABLE : SUBSTRING(SST.DIMNAMES,2,3)
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 3 points (X)
+ 1   / 1:"OAD"
+ 2   / 2:"OAD"
+ 3   / 3:"IME"
+list dncase(substring(sst.dimnames,2,3))
+             VARIABLE : DNCASE(SUBSTRING(SST.DIMNAMES,2,3))
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 3 points (X)
+ 1   / 1:"oad"
+ 2   / 2:"oad"
+ 3   / 3:"ime"
+list ysequence(dncase(sst.dimnames))
+             VARIABLE : YSEQUENCE(DNCASE(SST.DIMNAMES))
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 3 points (Y)
+ 1   / 1:"coadsx"
+ 2   / 2:"coadsy"
+ 3   / 3:"time10"
+ 
+GO bn_reset
+cancel mode verify
+GO err693_isize_and_gcfcn
+! err693_isize_and_gcfcn.jnl
+! ticket 2213
+! SET REGION interacting with ABSTRACT AXES
+! When the variable using XSEQUENCE was defined, suddenly the
+! region was being applied (inconsistently).
+ 
+can mode verify
+8
+    GRID XABSTRACT
+ name       axis              # pts   start                end
+ ABSTRACT  X             99999999 r   1                    1.E+08
+ normal    Y
+ normal    Z
+ normal    T
+ normal    E
+ normal    F
+8
+8 a
+8
+8 b
+8
+8 c
+8
+8 d
+8
+8 e
+8
+8 f
+8
+8 g
+8
+8 h
+8
+    GRID XABSTRACT
+ name       axis              # pts   start                end
+ ABSTRACT  X             99999999 r   1                    1.E+08
+ normal    Y
+ normal    Z
+ normal    T
+ normal    E
+ normal    F
+8
+8 a
+8
+8 b
+8
+8 c
+8
+8 d
+8
+8 e
+8
+8 f
+8
+8 g
+8
+8 h
+ 
+GO bn_reset
+cancel mode verify
+GO err693_ribbon_scale
+! err693_ribbon_scale.jnl
+! ticket 2295: the vertical scale is mis-computed
+! 5/29/2015
+ 
+let var = {-81,-81,-81}
+let color = {2,2,2}
+plot/ribbon/key var,color
+ 
+! should be -82 to -80
+sh sym yaxis*
+YAXIS_REVERSED = "0"
+YAXIS_MIN = "-82.0000000"
+YAXIS_MAX = "-80.0000000"
+ 
+GO bn_reset
+cancel mode verify
+GO err693_parse_curly
+! err693_parse_curly.jnl
+! the sub-routine defines a string variable containing commands for overlays in
+! different directions. the bug was that the parser doesn't handle quoted strings
+! inside { } if those strings include curly braces.
+! The argument chooses one of the strings with commands and plots the overlay
+ 
+use gt4d011
+ 
+shade/i=100/l=1/pal=grayscale temp
+go err693_parse_curly.sub yz
+! err693_parse_curly.sub
+! Define a variable with commands for overlays in different directions
+! the bug was that the parser doesn't handle quoted strings inside { } if those
+! strings include curly braces.
+! Choose one of the strings and plot the overlay
+ 
+! list of valid shapes
+ 
+let prd_shapes = {"xy", "xz", "yz"}
+ 
+! List of associated overlays
+! This is the part that's not working; due to bug #2296 we can't write {"...{}..."}.
+ 
+let prd_overlays = {\
+   "go land 6; go draw_line 180 -90 180 90 1; go draw_box 210 270 -5 5 6/dash=(.04,.06,.04,.06)",\
+   "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) {-1e3,1e3,,-1e3,1e3,,-1e3,1e3,,-136,-136,,-126,-126}, {85,85,,50,50,,20,20,,-1e4,1e4,,-1e4,1e4}",\
+   "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) 1e3*{-1,1,,-1,1,,-1,1},{85,85,,50,50,,20,20}"}
+ 
+! Then later when we're generating figures, we'll be
+! passing one of these shapes into a script like this:
+ 
+let p1s_shape = "$1%xy%"
+ !-> DEFINE VARIABLE p1s_shape = "yz"
+ 
+! For the specified shape, find the associated overlay command
+! (default is no overlay).
+let p1s_ov = ""
+IF `prd_shapes,r=isready` THEN
+ !-> IF 1         THEN
+      )
+ !-> rep/name=s/range=1:3 (let p1s_this_shape = prd_shapes[i=`s`];      IF `p1s_this_shape EQ p1s_shape` THEN;         let p1s_ov = prd_overlays[i=`s`];         exit/loop;      ENDIF;      )
+!-> REPEAT: S:1
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=1]
+ !-> IF 0 THEN
+!-> REPEAT: S:2
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=2]
+ !-> IF 0 THEN
+!-> REPEAT: S:3
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=3]
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE p1s_ov = prd_overlays[i=3]
+   can var p1s_this_shape
+ENDIF
+ 
+! generate a figure, with the appropriate overlay
+define symbol overcommands = `p1s_ov`
+ !-> define symbol overcommands = plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) 1e3*{-1,1,,-1,1,,-1,1},{85,85,,50,50,,20,20}
+($overcommands)
+ !-> plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) 1e3*{-1,1,,-1,1,,-1,1},{85,85,,50,50,,20,20}
+ 
+ shade/j=40/l=1/pal=grayscale temp
+go err693_parse_curly.sub xz
+! err693_parse_curly.sub
+! Define a variable with commands for overlays in different directions
+! the bug was that the parser doesn't handle quoted strings inside { } if those
+! strings include curly braces.
+! Choose one of the strings and plot the overlay
+ 
+! list of valid shapes
+ 
+let prd_shapes = {"xy", "xz", "yz"}
+ 
+! List of associated overlays
+! This is the part that's not working; due to bug #2296 we can't write {"...{}..."}.
+ 
+let prd_overlays = {\
+   "go land 6; go draw_line 180 -90 180 90 1; go draw_box 210 270 -5 5 6/dash=(.04,.06,.04,.06)",\
+   "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) {-1e3,1e3,,-1e3,1e3,,-1e3,1e3,,-136,-136,,-126,-126}, {85,85,,50,50,,20,20,,-1e4,1e4,,-1e4,1e4}",\
+   "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) 1e3*{-1,1,,-1,1,,-1,1},{85,85,,50,50,,20,20}"}
+ 
+! Then later when we're generating figures, we'll be
+! passing one of these shapes into a script like this:
+ 
+let p1s_shape = "$1%xy%"
+ !-> DEFINE VARIABLE p1s_shape = "xz"
+ 
+! For the specified shape, find the associated overlay command
+! (default is no overlay).
+let p1s_ov = ""
+IF `prd_shapes,r=isready` THEN
+ !-> IF 1         THEN
+      )
+ !-> rep/name=s/range=1:3 (let p1s_this_shape = prd_shapes[i=`s`];      IF `p1s_this_shape EQ p1s_shape` THEN;         let p1s_ov = prd_overlays[i=`s`];         exit/loop;      ENDIF;      )
+!-> REPEAT: S:1
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=1]
+ !-> IF 0 THEN
+!-> REPEAT: S:2
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=2]
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE p1s_ov = prd_overlays[i=2]
+   can var p1s_this_shape
+ENDIF
+ 
+! generate a figure, with the appropriate overlay
+define symbol overcommands = `p1s_ov`
+ !-> define symbol overcommands = plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) {-1e3,1e3,,-1e3,1e3,,-1e3,1e3,,-136,-136,,-126,-126}, {85,85,,50,50,,20,20,,-1e4,1e4,,-1e4,1e4}
+($overcommands)
+ !-> plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) {-1e3,1e3,,-1e3,1e3,,-1e3,1e3,,-136,-136,,-126,-126}, {85,85,,50,50,,20,20,,-1e4,1e4,,-1e4,1e4}
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_list_missing
+! err693_list_missing.jnl
+ 
+let a= {1,2,3}
+let b = 1./0
+ 
+! Ths listing of b is .... was squashed onto the ends of values of a.
+! 1   / 1:  1.000..
+! 2   / 2:  2.000..
+ 
+list a,b
+             X: 0.5 to 3.5
+ Column  1: A is {1,2,3}
+ Column  2: B is 1./0
+             A    B
+1   / 1:  1.000 ....
+2   / 2:  2.000 ....
+3   / 3:  3.000 ....
+ 
+GO bn_reset
+cancel mode verify
+GO err693_shf_subscr
+! err693_shf_subscr.jnl
+! ticket 2231  Subscripts used to compute @SHF-1 at the low end of the axis
+ 
+ 
+def ax/edge/z=0:40:10 zax_t
+def ax/edge/z=5:45:10 zax_w
+let zw = z[gz=zax_w]
+let zdiff = zw - missing(zw[z=@shf:-1],0)
+let zdiff_t = zdiff[gz=zax_t at asn]
+ 
+! a range of K shows the values correctly
+list zdiff_t
+             VARIABLE : ZDIFF[GZ=ZAX_T at ASN]
+             SUBSET   : 4 points (Z)
+ 5    / 1:  10.00
+ 15   / 2:  10.00
+ 25   / 3:  10.00
+ 35   / 4:  10.00
+ 
+! but just K=1 returned a K=0 error
+can mem
+list/k=1 zdiff_t
+             VARIABLE : ZDIFF[GZ=ZAX_T at ASN]
+             Z        : 5
+          10.00
+ 
+! Shift of +1
+can mem
+let zdiff = zw - missing(zw[z=@shf:1],0)
+list/k=4 zdiff_t
+             VARIABLE : ZDIFF[GZ=ZAX_T at ASN]
+             Z        : 35
+          40.00
+list/k=3:4 zdiff_t
+             VARIABLE : ZDIFF[GZ=ZAX_T at ASN]
+             SUBSET   : 2 points (Z)
+ 25   / 3: -10.00
+ 35   / 4:  40.00
+ 
+GO bn_reset
+cancel mode verify
+GO err693_shift_w_region
+! err693_shift_w_region
+! Ticket 2300.  In fact with bounds checking on, the list a[i=@shf] would have
+! caused a Fortran runtime error with out-of-bounds subscripts. The fix for
+! ticket 2301 fixes this as well.
+ 
+set region/x=10:20
+let a = {1,2,3}
+list a
+             VARIABLE : {1,2,3}
+             SUBSET   : 3 points (X)
+ 1   / 1:  1.000
+ 2   / 2:  2.000
+ 3   / 3:  3.000
+list a[i=@shf]
+             VARIABLE : {1,2,3}
+                        shifted by 1 pts on X
+             SUBSET   : 3 points (X)
+ 1   / 1:  2.000
+ 2   / 2:  3.000
+ 3   / 3:   ....
+cancel region
+list a[i=@shf]
+             VARIABLE : {1,2,3}
+                        shifted by 1 pts on X
+             SUBSET   : 3 points (X)
+ 1   / 1:  2.000
+ 2   / 2:  3.000
+ 3   / 3:   ....
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_scalar_grids
+! err693_scalar_grids.jnl
+! See ticket 1602
+ 
+!  multiplication by scalar variable "let one = 1" added
+!  abstract axes to the expression in all directions not
+!  already reperesented in the grid.
+ 
+ 
+! The T averaging is ignored; no T direction in the grid.
+use levitus_climatology
+let a = temp[x=140,y=0,z=0]
+list a[t=1-jan-0001:1-jan-0020 at ave]
+             VARIABLE : TEMP[X=140,Y=0,Z=0]
+             FILENAME : levitus_climatology.cdf
+             LONGITUDE: 140E
+             LATITUDE : 0
+             DEPTH (m): 0
+          29.30
+ 
+! Multiply by a variable which is a constant (prev. this
+! resulted in an illegal use of transform error.)
+let one = 1
+let b = one*a
+list b[t=1-jan-0001:1-jan-0020 at ave]
+             VARIABLE : ONE*A
+             FILENAME : levitus_climatology.cdf
+             DEPTH (m): 0
+          29.30
+ 
+! Test with a constant-array variable.
+let two = {2}
+let c = two*a
+list c[t=1-jan-0001:1-jan-0020 at ave]
+             VARIABLE : TWO*A
+             FILENAME : levitus_climatology.cdf
+             X        : 1
+             DEPTH (m): 0
+          58.59
+ 
+ 
+! check interactions with GC functions (prev. this
+! resulted in an illegal use of transform error.)
+LET v = X[x=1:4:1] + Y[Y=.1:.4:.1]
+LET a = XSEQUENCE( v[I=2:3,J=2:3] ) + Z[Z=.01:.02:.01]
+LIST a[t=1-jan-0001:1-jan-0020 at ave]
+             VARIABLE : XSEQUENCE( V[I=2:3,J=2:3] ) + Z[Z=.01:.02:.01]
+             SUBSET   : 4 by 2 points (X-Z)
+               1      2      3      4    
+               1      2      3      4
+ 0.01  / 1:  2.210  3.210  2.310  3.310
+ 0.02  / 2:  2.220  3.220  2.320  3.320
+list b
+             VARIABLE : ONE*A
+             SUBSET   : 4 by 2 points (X-Z)
+               1      2      3      4    
+               1      2      3      4
+ 0.01  / 1:  2.210  3.210  2.310  3.310
+ 0.02  / 2:  2.220  3.220  2.320  3.320
+ 
+list b[x=@ave,k=@ave]
+             VARIABLE : ONE*A
+             X        : 0.5 to 4.5 (XZ ave)
+             Z        : 0.005 to 0.025 (XZ ave)
+          2.765
+ 
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO bn_permute_ascii
+! bn_permute_ascii.jnl
+! test permutations when reading ascii data, in E and F directions
+! 11/18/2014
+! see ticket 2217: was not working for grids in E and F
+ 
+ 
+! First with T axis
+ 
+! unpermuted
+def axis/t=1:12:1 t12
+define axis/x=1:4:1 x4ax
+def grid/x=x4ax/t=t12 txgrid
+ FILE/SKIP=4/VAR="Tm"/COL=12/order=tx/GRID=txgrid fxdata.dat
+sh dat
+     currently SET data sets:
+    1> ./fxdata.dat  (default)
+ name     title                             I         J         K         L         M         N
+ TM       TM                               1:4       ...       ...       1:12      ...       ...
+ 
+list tm
+             VARIABLE : TM
+             FILENAME : fxdata.dat
+             SUBSET   : 4 by 12 points (X-T)
+               1      2      3      4    
+               1      2      3      4
+ 1    /  1:  -6.85  -6.75  -6.65  -6.55
+ 2    /  2: -11.71 -11.72 -11.73 -11.74
+ 3    /  3: -19.12 -19.22 -19.32 -19.42
+ 4    /  4: -24.81 -24.82 -24.83 -24.84
+ 5    /  5: -27.19 -27.29 -27.39 -27.49
+ 6    /  6: -28.51 -28.52 -28.53 -28.54
+ 7    /  7: -30.27 -30.37 -30.47 -30.57
+ 8    /  8: -31.34 -31.54 -31.64 -31.74
+ 9    /  9: -29.34 -29.44 -29.54 -29.64
+ 10   / 10: -23.29 -23.39 -23.49 -23.59
+ 11   / 11: -14.91 -14.92 -14.93 -14.94
+ 12   / 12:  -8.09  -8.19  -8.29  -8.39
+ 
+! permuted
+def axis/t=1:12:1 t12
+define axis/x=1:4:1 x4ax
+def grid/x=x4ax/t=t12 txgrid
+FILE/SKIP=4/VAR="Tm"/COL=12/order=tx/GRID=txgrid fxdata.dat
+sh dat
+     currently SET data sets:
+    1> ./fxdata.dat  (default)
+ name     title                             I         J         K         L         M         N
+ TM       TM                               1:4       ...       ...       1:12      ...       ...
+ 
+list tm
+             VARIABLE : TM
+             FILENAME : fxdata.dat
+             SUBSET   : 4 by 12 points (X-T)
+               1      2      3      4    
+               1      2      3      4
+ 1    /  1:  -6.85  -6.75  -6.65  -6.55
+ 2    /  2: -11.71 -11.72 -11.73 -11.74
+ 3    /  3: -19.12 -19.22 -19.32 -19.42
+ 4    /  4: -24.81 -24.82 -24.83 -24.84
+ 5    /  5: -27.19 -27.29 -27.39 -27.49
+ 6    /  6: -28.51 -28.52 -28.53 -28.54
+ 7    /  7: -30.27 -30.37 -30.47 -30.57
+ 8    /  8: -31.34 -31.54 -31.64 -31.74
+ 9    /  9: -29.34 -29.44 -29.54 -29.64
+ 10   / 10: -23.29 -23.39 -23.49 -23.59
+ 11   / 11: -14.91 -14.92 -14.93 -14.94
+ 12   / 12:  -8.09  -8.19  -8.29  -8.39
+ 
+! Then same with F axis
+can data/all
+ 
+def axis/f=1:12:1 f12
+define axis/x=1:4:1 x4ax
+def grid/x=x4ax/f=f12 fxgrid
+ FILE/SKIP=4/VAR="Tm"/COL=12/order=fx/GRID=fxgrid fxdata.dat
+sh dat
+     currently SET data sets:
+    1> ./fxdata.dat  (default)
+ name     title                             I         J         K         L         M         N
+ TM       TM                               1:4       ...       ...       ...       ...       1:12
+ 
+list tm
+             VARIABLE : TM
+             FILENAME : fxdata.dat
+             SUBSET   : 4 by 12 points (X-F)
+               1      2      3      4    
+               1      2      3      4
+ 1    /  1:  -6.85  -6.75  -6.65  -6.55
+ 2    /  2: -11.71 -11.72 -11.73 -11.74
+ 3    /  3: -19.12 -19.22 -19.32 -19.42
+ 4    /  4: -24.81 -24.82 -24.83 -24.84
+ 5    /  5: -27.19 -27.29 -27.39 -27.49
+ 6    /  6: -28.51 -28.52 -28.53 -28.54
+ 7    /  7: -30.27 -30.37 -30.47 -30.57
+ 8    /  8: -31.34 -31.54 -31.64 -31.74
+ 9    /  9: -29.34 -29.44 -29.54 -29.64
+ 10   / 10: -23.29 -23.39 -23.49 -23.59
+ 11   / 11: -14.91 -14.92 -14.93 -14.94
+ 12   / 12:  -8.09  -8.19  -8.29  -8.39
+ 
+! Read same data in y-z-t
+can data/all
+ 
+def axis/t=1:6:1 t6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/t=t6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/GRID=grid3d fxdata.dat
+sh dat
+     currently SET data sets:
+    1> ./fxdata.dat  (default)
+ name     title                             I         J         K         L         M         N
+ TM       TM                               ...       1:2       1:4       1:6       ...       ...
+ 
+list tm
+             VARIABLE : TM
+             FILENAME : fxdata.dat
+             SUBSET   : 2 by 4 by 6 points (Y-Z-T)
+             1      2    
+             1      2
+ ---- L:1 T:   1
+ 1   / 1:  -6.85 -11.71
+ 2   / 2: -19.12 -24.81
+ 3   / 3: -27.19 -28.51
+ 4   / 4: -30.27 -31.34
+ ---- L:2 T:   2
+ 1   / 1: -29.34 -23.29
+ 2   / 2: -14.91  -8.09
+ 3   / 3:  -6.75 -11.72
+ 4   / 4: -19.22 -24.82
+ ---- L:3 T:   3
+ 1   / 1: -27.29 -28.52
+ 2   / 2: -30.37 -31.54
+ 3   / 3: -29.44 -23.39
+ 4   / 4: -14.92  -8.19
+ ---- L:4 T:   4
+ 1   / 1:  -6.65 -11.73
+ 2   / 2: -19.32 -24.83
+ 3   / 3: -27.39 -28.53
+ 4   / 4: -30.47 -31.64
+ ---- L:5 T:   5
+ 1   / 1: -29.54 -23.49
+ 2   / 2: -14.93  -8.29
+ 3   / 3:  -6.55 -11.74
+ 4   / 4: -19.42 -24.84
+ ---- L:6 T:   6
+ 1   / 1: -27.49 -28.54
+ 2   / 2: -30.57 -31.74
+ 3   / 3: -29.64 -23.59
+ 4   / 4: -14.94  -8.39
+ 
+! And permuted
+ 
+can data/all
+ 
+def axis/t=1:6:1 t6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/t=t6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/order=tyz/GRID=grid3d fxdata.dat
+sh dat
+     currently SET data sets:
+    1> ./fxdata.dat  (default)
+ name     title                             I         J         K         L         M         N
+ TM       TM                               ...       1:2       1:4       1:6       ...       ...
+ 
+list tm
+             VARIABLE : TM
+             FILENAME : fxdata.dat
+             SUBSET   : 2 by 4 by 6 points (Y-Z-T)
+             1      2    
+             1      2
+ ---- L:1 T:   1
+ 1   / 1:  -6.85 -30.27
+ 2   / 2:  -6.75 -30.37
+ 3   / 3:  -6.65 -30.47
+ 4   / 4:  -6.55 -30.57
+ ---- L:2 T:   2
+ 1   / 1: -11.71 -31.34
+ 2   / 2: -11.72 -31.54
+ 3   / 3: -11.73 -31.64
+ 4   / 4: -11.74 -31.74
+ ---- L:3 T:   3
+ 1   / 1: -19.12 -29.34
+ 2   / 2: -19.22 -29.44
+ 3   / 3: -19.32 -29.54
+ 4   / 4: -19.42 -29.64
+ ---- L:4 T:   4
+ 1   / 1: -24.81 -23.29
+ 2   / 2: -24.82 -23.39
+ 3   / 3: -24.83 -23.49
+ 4   / 4: -24.84 -23.59
+ ---- L:5 T:   5
+ 1   / 1: -27.19 -14.91
+ 2   / 2: -27.29 -14.92
+ 3   / 3: -27.39 -14.93
+ 4   / 4: -27.49 -14.94
+ ---- L:6 T:   6
+ 1   / 1: -28.51  -8.09
+ 2   / 2: -28.52  -8.19
+ 3   / 3: -28.53  -8.29
+ 4   / 4: -28.54  -8.39
+ 
+! Now with Y-Z-E
+ 
+can data/all
+ 
+def axis/e=1:6:1 e6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/e=e6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/GRID=grid3d fxdata.dat
+sh dat
+     currently SET data sets:
+    1> ./fxdata.dat  (default)
+ name     title                             I         J         K         L         M         N
+ TM       TM                               ...       1:2       1:4       ...       1:6       ...
+ 
+list tm
+             VARIABLE : TM
+             FILENAME : fxdata.dat
+             SUBSET   : 2 by 4 by 6 points (Y-Z-E)
+             1      2    
+             1      2
+ ---- M:1 E:   1
+ 1   / 1:  -6.85 -11.71
+ 2   / 2: -19.12 -24.81
+ 3   / 3: -27.19 -28.51
+ 4   / 4: -30.27 -31.34
+ ---- M:2 E:   2
+ 1   / 1: -29.34 -23.29
+ 2   / 2: -14.91  -8.09
+ 3   / 3:  -6.75 -11.72
+ 4   / 4: -19.22 -24.82
+ ---- M:3 E:   3
+ 1   / 1: -27.29 -28.52
+ 2   / 2: -30.37 -31.54
+ 3   / 3: -29.44 -23.39
+ 4   / 4: -14.92  -8.19
+ ---- M:4 E:   4
+ 1   / 1:  -6.65 -11.73
+ 2   / 2: -19.32 -24.83
+ 3   / 3: -27.39 -28.53
+ 4   / 4: -30.47 -31.64
+ ---- M:5 E:   5
+ 1   / 1: -29.54 -23.49
+ 2   / 2: -14.93  -8.29
+ 3   / 3:  -6.55 -11.74
+ 4   / 4: -19.42 -24.84
+ ---- M:6 E:   6
+ 1   / 1: -27.49 -28.54
+ 2   / 2: -30.57 -31.74
+ 3   / 3: -29.64 -23.59
+ 4   / 4: -14.94  -8.39
+ 
+can data/all
+ 
+def axis/e=1:6:1 e6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/e=e6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/order=eyz/GRID=grid3d fxdata.dat
+sh dat
+     currently SET data sets:
+    1> ./fxdata.dat  (default)
+ name     title                             I         J         K         L         M         N
+ TM       TM                               ...       1:2       1:4       ...       1:6       ...
+ 
+list tm
+             VARIABLE : TM
+             FILENAME : fxdata.dat
+             SUBSET   : 2 by 4 by 6 points (Y-Z-E)
+             1      2    
+             1      2
+ ---- M:1 E:   1
+ 1   / 1:  -6.85 -30.27
+ 2   / 2:  -6.75 -30.37
+ 3   / 3:  -6.65 -30.47
+ 4   / 4:  -6.55 -30.57
+ ---- M:2 E:   2
+ 1   / 1: -11.71 -31.34
+ 2   / 2: -11.72 -31.54
+ 3   / 3: -11.73 -31.64
+ 4   / 4: -11.74 -31.74
+ ---- M:3 E:   3
+ 1   / 1: -19.12 -29.34
+ 2   / 2: -19.22 -29.44
+ 3   / 3: -19.32 -29.54
+ 4   / 4: -19.42 -29.64
+ ---- M:4 E:   4
+ 1   / 1: -24.81 -23.29
+ 2   / 2: -24.82 -23.39
+ 3   / 3: -24.83 -23.49
+ 4   / 4: -24.84 -23.59
+ ---- M:5 E:   5
+ 1   / 1: -27.19 -14.91
+ 2   / 2: -27.29 -14.92
+ 3   / 3: -27.39 -14.93
+ 4   / 4: -27.49 -14.94
+ ---- M:6 E:   6
+ 1   / 1: -28.51  -8.09
+ 2   / 2: -28.52  -8.19
+ 3   / 3: -28.53  -8.29
+ 4   / 4: -28.54  -8.39
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO bn_lon_lat_time_string
+! 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.
+ 
+show function lon_lat_time_string
+LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
+    Generate strings from longitude,latitude,time
+    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 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}
+ 
+! latitudes are labeled N or S
+let lat = {3.12, 4.9, -15.03}
+ 
+! Time steps are interpreted in terms of a time axis
+let time = {1,2,3}
+define axis/t=1-jan-2001:31-jan-2001:1/units=days/t0=1-jan-2001 taxis
+let tt = t[gt=taxis]
+ 
+list lon_lat_time_string(lon, lat, time, tt, "my_string")
+             VARIABLE : LON_LAT_TIME_STRING(LON, LAT, TIME, TT, "my_string")
+             SUBSET   : 3 points (X)
+ 1   / 1:"my_string_187.6E_3.12N_02-JAN-2001" 
+ 2   / 2:"my_string_210E_4.9N_03-JAN-2001"    
+ 3   / 3:"my_string_340.5E_15.03S_04-JAN-2001"
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO bn_save_justdim
+! 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.
+!
+! Allows for a dimension and a 2-D variable to have the same name.
+!  see ticket 2227
+! 1/21/2015 ACM
+ 
+use twodtime.nc
+sh dat
+     currently SET data sets:
+    1> ./twodtime.nc  (default)
+ name     title                             I         J         K         L         M         N
+ TIME     GRIB forecast or observation ti  ...       ...       ...       1:8       ...       1:3
+ 
+ 
+! previously this gave a name-in-use error
+save/file=a.nc/clobber time
+ 
+!  The file has 2D TIME variable, and TIME as a dimension.
+sp ncdump a.nc >> all_ncdump.out
+ 
+! Now, keep case and axis name as on input
+CANCEL MODE upcase
+ 
+save/clobber/keep/file=a.nc time
+sp ncdump a.nc >> all_ncdump.out
+ 
+SET MODE/LAST upcase_output
+ 
+GO bn_reset
+cancel mode verify
+GO bn_time2d
+! bn_time2d.jnl
+! 1/30/2015 ACM
+ 
+! initial changes to handle 2d time variable: forecast and time
+! plot both axes as formatted time axes.
+ 
+use twodtime.nc
+sh dat
+     currently SET data sets:
+    1> ./twodtime.nc  (default)
+ name     title                             I         J         K         L         M         N
+ TIME     GRIB forecast or observation ti  ...       ...       ...       1:8       ...       1:3
+ 
+sh att time
+     attributes for dataset: ./twodtime.nc
+ 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 
+ time.orig_file_axname = time 
+ 
+!  The file has the t axis as just a dimension. Define another
+!  axis with time units
+ 
+def axis/t=1:8:1/units=month/t0=1-nov-2014 taxis
+let time2d = time[gt=taxis at asn]
+set att/like=time time2d
+ 
+shade time2d
+shade/trans time2d
+ 
+GO bn_reset
+cancel mode verify
+GO bn_legend_labels
+! bn_legend_labels.jnl
+! The legend labels on a multi-line plot describe the
+!  variable and context but are not controlable by the user.
+!
+! /KEY=title tells Ferret to label the legend with the variable
+! title.
+! *acm* 2/4/2015 Ticket 2231
+ 
+use coads_climatology
+let/title=January sst1 = sst[l=1]
+let/title=February sst2 = sst[l=2]
+let/title=March sst3 = sst[l=3]
+ 
+! Draw a plot and show the labels on the legend.
+plot/x=300/y=20:65 sst1,sst2,sst3
+sh sym lab7,lab8,lab9
+LAB7 = "SST1[T=16-JAN 06:00]"
+LAB9 = "SST3[T=17-MAR 02:58]"
+LAB8 = "SST2[T=15-FEB 16:29]"
+ 
+! Draw a plot with legend labeled with the variable titles.
+plot/x=300/y=20:65/key=title  sst1,sst2,sst3
+sh sym lab7,lab8,lab9
+LAB7 = "January"
+LAB9 = "March"
+LAB8 = "February"
+ 
+GO bn_reset
+cancel mode verify
+GO bn_DQ
+! bn_DQ.jnl  *sh* 2/2015
+! test the use of _DQ_ and _SQ_ in lieu of " and '
+ 
+let foobar = 1
+let foobar_ = 1
+ 
+LIST foobar, foobar_
+ Column  1: FOOBAR is 1
+ Column  2: FOOBAR_ is 1
+         FOOBAR  FOOBAR_
+I / *:     1.000   1.000
+ 
+LIST    "foobar"    ! bug fix: pre-V694 used to list the value of foobar
+             VARIABLE : "foobar"
+        "foobar"
+let a = "foobar"
+list a
+             VARIABLE : "foobar"
+        "foobar"
+ 
+list    _DQ_foobar_DQ_
+             VARIABLE : _DQ_foobar_DQ_
+        "foobar"
+let a = _DQ_foobar_DQ_
+list a
+             VARIABLE : _DQ_foobar_DQ_
+        "foobar"
+ 
+! ======
+list    "_DQ_foobar_DQ_"
+             VARIABLE : "_DQ_foobar_DQ_"
+        "_DQ_foobar_DQ_"
+let a = "_DQ_foobar_DQ_"
+list a
+             VARIABLE : "_DQ_foobar_DQ_"
+        "_DQ_foobar_DQ_"
+ 
+list    _DQ_"foobar"_DQ_
+             VARIABLE : _DQ_"foobar"_DQ_
+        ""foobar""
+let a = _DQ_"foobar"_DQ_
+list a
+             VARIABLE : _DQ_"foobar"_DQ_
+        ""foobar""
+ 
+! ======
+list    'FOOBAR'
+             VARIABLE : 1
+          1.000
+let a = 'FOOBAR'
+list a
+             VARIABLE : 'FOOBAR'
+          1.000
+ 
+list    _SQ_FOOBAR_SQ_
+             VARIABLE : 1
+          1.000
+let a = _SQ_FOOBAR_SQ_
+list a
+             VARIABLE : _SQ_FOOBAR_SQ_
+          1.000
+ 
+! ======
+list       "'foobar'"
+             VARIABLE : "'foobar'"
+        "'foobar'"
+let a =    "'foobar'"
+list a
+             VARIABLE : "'foobar'"
+        "'foobar'"
+ 
+list    _DQ_'foobar'_DQ_
+             VARIABLE : _DQ_'foobar'_DQ_
+        "'foobar'"
+let a = _DQ_'foobar'_DQ_
+list a
+             VARIABLE : _DQ_'foobar'_DQ_
+        "'foobar'"
+ 
+! ======
+list       "_SQ_foobar_SQ_"
+             VARIABLE : "_SQ_foobar_SQ_"
+        "_SQ_foobar_SQ_"
+let a =    "_SQ_foobar_SQ_"
+list a
+             VARIABLE : "_SQ_foobar_SQ_"
+        "_SQ_foobar_SQ_"
+ 
+list    _DQ__SQ_foobar_SQ__DQ_
+             VARIABLE : _DQ__SQ_foobar_SQ__DQ_
+        "_SQ_foobar_SQ_"
+let a = _DQ__SQ_foobar_SQ__DQ_
+list a
+             VARIABLE : _DQ__SQ_foobar_SQ__DQ_
+        "_SQ_foobar_SQ_"
+ 
+! ======
+list    'FOOBAR'    +    'FOOBAR'
+             VARIABLE : 'FOOBAR'    +    'FOOBAR'
+          2.000
+let a = 'FOOBAR'    +    'FOOBAR'
+list a
+             VARIABLE : 'FOOBAR'    +    'FOOBAR'
+          2.000
+ 
+list    _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_  ! should behave like the preceding
+             VARIABLE : _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_
+          2.000
+let a = _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_
+list a
+             VARIABLE : _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_
+          2.000
+ 
+! ====== demonstrate hiding all sorts of characters
+let a = _DQ_'"+-/;_SQ_foobar"'_DQ_
+list a
+             VARIABLE : _DQ_'"+-/;_SQ_foobar"'_DQ_
+        "'"+-/;_SQ_foobar"'"
+ 
+! ======
+say     "hello"
+hello
+say  _DQ_hello_DQ_
+hello
+ 
+! ======
+list    {"foobar","foobar"}
+             VARIABLE : {"foobar","foobar"}
+             SUBSET   : 2 points (X)
+ 1   / 1:"foobar"
+ 2   / 2:"foobar"
+let a = {"foobar","foobar"}
+list a
+             VARIABLE : {"foobar","foobar"}
+             SUBSET   : 2 points (X)
+ 1   / 1:"foobar"
+ 2   / 2:"foobar"
+ 
+list    {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+             VARIABLE : {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+             SUBSET   : 2 points (X)
+ 1   / 1:"foobar"
+ 2   / 2:"foobar"
+let a = {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+list a
+             VARIABLE : {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+             SUBSET   : 2 points (X)
+ 1   / 1:"foobar"
+ 2   / 2:"foobar"
+ 
+list    {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_} ! DQ used to protect '"'
+             VARIABLE : {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_}
+             SUBSET   : 2 points (X)
+ 1   / 1:""foobar""
+ 2   / 2:""foobar""
+let a = {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_}
+list a
+             VARIABLE : {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_}
+             SUBSET   : 2 points (X)
+ 1   / 1:""foobar""
+ 2   / 2:""foobar""
+ 
+! ======
+list    {SPAWN:"ls weird_name1.cdf","foobar"}
+             VARIABLE : {SPAWN:"ls weird_name1.cdf","foobar"}
+             SUBSET   : 2 points (X)
+ 1   / 1:"weird_name1.cdf"
+ 2   / 2:"foobar"         
+let a = {SPAWN:"ls weird_name1.cdf","foobar"}
+list a
+             VARIABLE : {SPAWN:"ls weird_name1.cdf","foobar"}
+             SUBSET   : 2 points (X)
+ 1   / 1:"weird_name1.cdf"
+ 2   / 2:"foobar"         
+ 
+list    {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+             VARIABLE : {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+             SUBSET   : 2 points (X)
+ 1   / 1:"weird_name1.cdf"
+ 2   / 2:"foobar"         
+let a = {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+list a
+             VARIABLE : {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+             SUBSET   : 2 points (X)
+ 1   / 1:"weird_name1.cdf"
+ 2   / 2:"foobar"         
+ 
+list    {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_} ! DQ protects '"'
+             VARIABLE : {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+             SUBSET   : 2 points (X)
+ 1   / 1:"weird_name1.cdf"
+ 2   / 2:"foobar"         
+let a = {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+list a
+             VARIABLE : {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+             SUBSET   : 2 points (X)
+ 1   / 1:"weird_name1.cdf"
+ 2   / 2:"foobar"         
+ 
+! ======
+! in repl_exprns:
+say `"=" EQ "="`
+ !-> MESSAGE/CONTINUE 1
+1
+say `_DQ_=_DQ_ EQ _DQ_=_DQ_`
+ !-> MESSAGE/CONTINUE 1
+1
+say `_DQ_"="_DQ_ EQ _DQ_"="_DQ_`            ! DQ used to protect '"'
+ !-> MESSAGE/CONTINUE 1
+1
+ 
+! in xeq_if:
+IF 1 THEN SAY "I is too big" ENDIF
+I is too big
+IF 1 THEN SAY _DQ_I is too big_DQ_ ENDIF
+I is too big
+IF 1 THEN SAY _DQ_"I is too big"_DQ_ ENDIF  ! DQ used to protect '"'
+"I is too big"
+ 
+! ======
+DEFINE SYMBOL a    "foobar"
+say ($a)
+ !-> MESSAGE/CONTINUE foobar
+foobar
+DEFINE SYMBOL a _DQ_foobar_DQ_
+say ($a)
+ !-> MESSAGE/CONTINUE foobar
+foobar
+ 
+! ======
+DEFINE SYMBOL a    "(`foobar,return=xaxis`)"
+ !-> DEFINE SYMBOL a    "(ABSTRACT)"
+say ($a)
+ !-> MESSAGE/CONTINUE (ABSTRACT)
+(ABSTRACT)
+DEFINE SYMBOL a _DQ_(`foobar,return=xaxis`)_DQ_
+ !-> DEFINE SYMBOL a _DQ_(ABSTRACT)_DQ_
+say ($a)
+ !-> MESSAGE/CONTINUE (ABSTRACT)
+(ABSTRACT)
+ 
+! ======
+GO bn_DQ.sub _DQ_+-/_SQ_\!foo"bar;_SQ_"_DQ_    "_DQ_+-/_SQ_\!foobar;_SQ_"
+! bn_DQ.sub   arg_with_DQ    arg_with_quotes
+ 
+SAY _DQ_ "-quotations   ok as in $1%any_arg_with_quotes%_DQ_
+ !-> MESSAGE/CONTINUE _DQ_ "-quotations   ok as in +-/_SQ_!foo"bar;_SQ_"_DQ_
+ "-quotations   ok as in +-/_SQ_!foo"bar;_SQ_"
+SAY    "_DQ_ delimiters ok as in $2%any_arg_with_DQ%"
+ !-> MESSAGE/CONTINUE    "_DQ_ delimiters ok as in _DQ_+-/_SQ_!foobar;_SQ_"
+_DQ_ delimiters ok as in _DQ_+-/_SQ_!foobar;_SQ_
+ 
+ 
+! ======  string arguments to functions
+list STRCAT(   "HELL"   ,   "O"   )
+             VARIABLE : STRCAT(   "HELL"   ,   "O"   )
+        "HELLO"
+list STRCAT(_DQ_HELL_DQ_,_DQ_O_DQ_)
+             VARIABLE : STRCAT(_DQ_HELL_DQ_,_DQ_O_DQ_)
+        "HELLO"
+ 
+! ======
+let/title=   "title of A"    a = 1
+list a
+             VARIABLE : title of A
+          1.000
+let/title=_DQ_title of A_DQ_ a = 1
+list a
+             VARIABLE : title of A
+          1.000
+let/title=_DQ_"title of A"_DQ_ a = 1        ! DQ used to protect '"'
+list a
+             VARIABLE : "title of A"
+          1.000
+ 
+! ======
+use weird_name1.cdf
+list    'v2-and-minus'[i=4:6]
+             VARIABLE : SIN(2+I/10)
+             FILENAME : weird_name1.cdf
+             SUBSET   : 3 points (X)
+ 4   / 4:  0.6755
+ 5   / 5:  0.5985
+ 6   / 6:  0.5155
+list _SQ_v2-and-minus_SQ_[i=4:6]
+             VARIABLE : SIN(2+I/10)
+             FILENAME : weird_name1.cdf
+             SUBSET   : 3 points (X)
+ 4   / 4:  0.6755
+ 5   / 5:  0.5985
+ 6   / 6:  0.5155
+list    'v2-and-minus'[i=4:6]
+             VARIABLE : SIN(2+I/10)
+             FILENAME : weird_name1.cdf
+             SUBSET   : 3 points (X)
+ 4   / 4:  0.6755
+ 5   / 5:  0.5985
+ 6   / 6:  0.5155
+list _SQ_v2-and-minus_SQ_[i=4:6]
+             VARIABLE : SIN(2+I/10)
+             FILENAME : weird_name1.cdf
+             SUBSET   : 3 points (X)
+ 4   / 4:  0.6755
+ 5   / 5:  0.5985
+ 6   / 6:  0.5155
+list    'v2-and-minus'[i=4:6]    / 'X'[i=4:6]
+             VARIABLE : 'v2-and-minus'[I=4:6]    / 'X'[I=4:6]
+             FILENAME : weird_name1.cdf
+             SUBSET   : 3 points (X)
+ 4   / 4: -0.8741
+ 5   / 5: -0.8482
+ 6   / 6: -0.8166
+list _SQ_v2-and-minus_SQ_[i=4:6] / _SQ_X_SQ_[i=4:6]
+             VARIABLE : _SQ_v2-and-minus_SQ_[I=4:6] / _SQ_X_SQ_[I=4:6]
+             FILENAME : weird_name1.cdf
+             SUBSET   : 3 points (X)
+ 4   / 4: -0.8741
+ 5   / 5: -0.8482
+ 6   / 6: -0.8166
+ 
+! ======
+SET REGION/T=   "1-jan-2001":"15-jan-2001"
+SHOW REGION
+default region:
+        X/I is unspecified
+        Y/J is unspecified
+        Z/K is unspecified
+        T=-6.3146E+10:-6.3147E+10
+        E/M is unspecified
+        F/N is unspecified
+SET REGION/T=_DQ_1-jan-2001_DQ_:_DQ_15-jan-2001_DQ_
+SHOW REGION
+default region:
+        X/I is unspecified
+        Y/J is unspecified
+        Z/K is unspecified
+        T=-6.3146E+10:-6.3147E+10
+        E/M is unspecified
+        F/N is unspecified
+! ==> THE clean_draconian FILTER REMOVES THE FOLLOWING DATE-TIME LINES FROM LOG
+SET REGION/T=   "1-jan-2001:12:00":"15-jan-2001 12:00"
+SHOW REGION
+default region:
+        X/I is unspecified
+        Y/J is unspecified
+        Z/K is unspecified
+        T=-6.3146E+10:-6.3147E+10
+        E/M is unspecified
+        F/N is unspecified
+SET REGION/T=_DQ_1-jan-2001:12:00_DQ_:_DQ_15-jan-2001 12:00_DQ_
+SHOW REGION
+default region:
+        X/I is unspecified
+        Y/J is unspecified
+        Z/K is unspecified
+        T=-6.3146E+10:-6.3147E+10
+        E/M is unspecified
+        F/N is unspecified
+ 
+! ======
+DEFINE ATTRIBUTE foobar.some_text =    "some text about foobar"
+SHOW ATTRIBUTE/ALL foobar
+     attributes for user-defined variables
+ foobar.long_name = 1 
+ foobar.missing_value = -1.E+34
+ foobar.some_text = some text about foobar 
+DEFINE ATTRIBUTE foobar.some_text = _DQ_some text about foobar_DQ_
+SHOW ATTRIBUTE/ALL foobar
+     attributes for user-defined variables
+ foobar.long_name = 1 
+ foobar.missing_value = -1.E+34
+ foobar.some_text = some text about foobar 
+DEFINE ATTR foobar.some_text = _DQ_"quoted attribute"_DQ_ ! DQ protects '"'
+SHOW ATTRIBUTE/ALL foobar
+     attributes for user-defined variables
+ foobar.long_name = 1 
+ foobar.missing_value = -1.E+34
+ foobar.some_text = "quoted attribute" 
+ 
+! ======
+SPAWN    "ls weird_name1.*"
+weird_name1.cdf
+SPAWN _DQ_ls weird_name1.*_DQ_
+weird_name1.cdf
+ 
+! ======
+LET a = {"first.nc", SPAWN:   "ls weird_name1.*"   ,"last.nc"}
+LIST a
+             VARIABLE : {"first.nc", SPAWN:   "ls weird_name1.*"   ,"last.nc"}
+             SUBSET   : 3 points (X)
+ 1   / 1:"first.nc"       
+ 2   / 2:"weird_name1.cdf"
+ 3   / 3:"last.nc"        
+LET a = {"first.nc", SPAWN:_DQ_ls weird_name1.*_DQ_,"last.nc"}
+LIST a
+             VARIABLE : {"first.nc", SPAWN:_DQ_ls weird_name1.*_DQ_,"last.nc"}
+             SUBSET   : 3 points (X)
+ 1   / 1:"first.nc"       
+ 2   / 2:"weird_name1.cdf"
+ 3   / 3:"last.nc"        
+ 
+! =========================
+! !!!!!!  TEMPORARY LINE
+! !!!!!!  see bug report err693_xeq_show.jnl
+show data   ! to side step dset=-1 left behind by SHOW ATTRIBUTE previously
+     currently SET data sets:
+    1> ./weird_name1.cdf  (default)
+ name     title                             I         J         K         L         M         N
+ v1       lower case v1                    1:20      ...       ...       ...       ...       ...
+ v2-and-minus
+          SIN(2+I/10)                      1:20      ...       ...       ...       ...       ...
+ V1       Upper case V1                    1:20      ...       ...       ...       ...       ...
+ I        SIN(4+I/10)                      1:20      ...       ...       ...       ...       ...
+ X        SIN(5+I/10)                      1:20      ...       ...       ...       ...       ...
+ 
+! !!!!!!
+! =========================
+                                                                                ! ======
+define grid/x=_DQ_v1_DQ_ gg
+show grid gg
+    GRID GG
+ name       axis              # pts   start                end
+ XAX1_20   X                   20 r   1                    20
+ normal    Y
+ normal    Z
+ normal    T
+ normal    E
+ normal    F
+ 
+! ======
+LET/TITLE= _DQ_'A title w/ "sq"'. Ship_Ka'imimoana_DQ_ A = 1 ! ' char for emacs
+LIST A
+             VARIABLE : 'A title w/ "sq"'. Ship_Ka'imimoana
+          1.000
+ 
+! ======
+contour/LEVELS=    "(-10,10,2)DARK(-10,10,8)"    \
+               10*SIN(X[x=1:5:.1])*COS(Y[Y=1:5:.1])
+contour/LEVELS= _DQ_(-10,10,2)DARK(-10,10,8)_DQ_ \
+               10*SIN(X[x=1:5:.1])*COS(Y[Y=1:5:.1])
+ 
+! ====== parse, parsex routines
+!plot/set x[i=1:3]^2
+!ppl title    "'A title w/ single quotes'. Ship Ka'imimoana"
+!ppl plot
+!label 2,5,0 "'A title w/ single quotes'. Ship Ka'imimoana"
+ 
+plot/set x[i=1:3]^2
+ppl title _DQ_'A title w/ "single quotes"'. Ship_Ka'imimoana_DQ_ ! ' for emacs
+ppl plot
+label 2,5,0 _DQ_'A title w/ "single quotes"'. Ship_Ka'imimoana_DQ_ ! ' emacs
+ppl %label 2,4,0 _DQ_'A title w/ "single quotes"'. Ship_Ka'imimoana_DQ_ ! ' emacs
+ 
+! ======  EQUAL_PEMUTE
+list/order=_DQ_yx_DQ_ 10*i[i=1:3] + j[j=1:2]
+             VARIABLE : 10*I[I=1:3] + J[J=1:2]
+             SUBSET   : 2 by 3 points (Y-X)
+             1      2    
+             1      2
+ 1   / 1:  11.00  12.00
+ 2   / 2:  21.00  22.00
+ 3   / 3:  31.00  32.00
+ 
+! ======  EQUAL_COLOR
+plot/color=_DQ_red_DQ_ i[i=1:100]^2
+ 
+! ======  EQUAL_RANGE
+plot/vlim=-2:2/hlim="1-jan-1980":"15-feb-1980" \
+    SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+plot/vlim=-2:2/hlim=_DQ_1-jan-1980_DQ_:_DQ_15-feb-1980_DQ_ \
+    SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+! ==> THE clean_draconian FILTER REMOVES THE FOLLOWING DATE-TIME LINES FROM LOG
+plot/vlim=-2:2/hlim="1-jan-1980":"15-feb-1980:12:00" \
+    SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+plot/vlim=-2:2/hlim=_DQ_1-jan-1980_DQ_:_DQ_15-feb-1980:12:00_DQ_ \
+    SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+ 
+! the following usages for _DQ_ and _SQ_ are NOT supported:
+! 1. internal PLOT+ syntax
+!    e.g. PPL XFOR (i5, ''LONW'')
+ 
+! 2. quote used as a delimiter for symbol substitution
+!    e.g. ($mysymbol"0|red>1|green>2")     ! several single char als.  e.g. "%"
+ 
+! in xeq_set:  double quotes around SET MODE argument -- _DQ_ not supported
+ 
+! in put_label: special hack for "'date'" -- _SQ_ not supported
+ 
+! it isn't clear that there is really a requirement for the _SQ_ syntax at all
+! since we are adding this feature to meet our own needs in LAS, we won't
+! make the extra effort to hit all of the obscure cases.  As a result, the
+! occurrences of IF string .EQ. "'" in these routines will be ignored
+!   - break_varname
+!   - break_varattname
+!   - inherit_attrs
+ 
+! in xeq_define.F:  DEFINE AXIS/NAME='my-name' is of unclear purpose
+ 
+! *********** v6.95Additions ***********
+ 
+GO bn_reset
+cancel mode verify
+GO bn695_bug_fixes
+! bn695_bug_fixes
+! test various fixes that went into version 6.95
+ 
+GO bn_reset
+cancel mode verify
+GO err694_shf_missing
+! err694_shf_missing.jnl
+! Test the fix for ticket 2314
+ 
+! This had been getting a missing-result; now is correct
+use gt4d011.cdf
+list/i=100/j=50/k=1/l=24 temp[l=@shf]
+             VARIABLE : TEMPERATURE (deg. C)
+             FILENAME : gt4d011.cdf
+             LONGITUDE: 130.5W
+             LATITUDE : 1.5N
+             DEPTH (m): 5
+             TIME     : 04-JAN-1983 10:00 (shifted by 1 pts)
+          32.10
+ 
+! Check shift that takes us beyond the end of a modulo axis (at x=20)
+can dat/all; use coads_climatology
+list/x=10:30/y=-60/l=1  sst
+             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 10 points (LONGITUDE)
+             LATITUDE : 60S (interpolated)
+             TIME     : 16-JAN 06:00
+ 11E   / -4:  0.422
+ 13E   / -3:  0.368
+ 15E   / -2:  0.505
+ 17E   / -1:  0.207
+ 19E   /  0:  0.583
+ 21E   /  1:  0.734
+ 23E   /  2:  0.472
+ 25E   /  3:  0.526
+ 27E   /  4:  0.820
+ 29E   /  5:  1.017
+list/x=10:30/y=-60/l=1  sst[i=@shf:3]
+             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
+                        shifted by 3 pts on X
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 10 points (LONGITUDE)
+             LATITUDE : 60S (interpolated)
+             TIME     : 16-JAN 06:00
+ 11E   / -4:  0.207
+ 13E   / -3:  0.583
+ 15E   / -2:  0.734
+ 17E   / -1:  0.472
+ 19E   /  0:  0.526
+ 21E   /  1:  0.820
+ 23E   /  2:  1.017
+ 25E   /  3:  1.062
+ 27E   /  4:  1.423
+ 29E   /  5:  1.221
+ 
+GO bn_reset
+cancel mode verify
+GO err694_longname_showdat
+! err694_longname_showdat.jnl
+! ticket 2317
+!
+! Make a file whose name starts the same as file with long name.
+sp rm WestCoastCarbon_9d9c_f562_77b5_5.nc
+sp ln -s WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc WestCoastCarbon_9d9c_f562_77b5_5.nc
+ 
+use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+ 
+! Long name was not matched by SHOW DAT filename
+! this previously returned an unknown dataset error
+sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
+     currently SET data sets:
+    1> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc  (default)
+ name     title                             I         J         K         L         M         N
+ PROF     Prof                             ...       ...       ...       ...       1:21      ...
+ TIME     Time                             ...       ...       ...       ...       1:21      ...
+ LATITUDE Latitude                         ...       ...       ...       ...       1:21      ...
+ LONGITUDE
+          Longitude                        ...       ...       ...       ...       1:21      ...
+ ROWSIZE  Number of Observations for this  ...       ...       ...       ...       1:21      ...
+ PRESS_DB PRESS_DB                         1:373     ...       ...       ...       ...       ...
+ PCO2     PCO2                             1:373     ...       ...       ...       ...       ...
+ 
+ 
+! If a file matched to 1st 32 characters, the shorter-named
+! datset was mistakenly returned.
+ 
+use WestCoastCarbon_9d9c_f562_77b5_5
+sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
+     currently SET data sets:
+    1> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+ name     title                             I         J         K         L         M         N
+ PROF     Prof                             ...       ...       ...       ...       1:21      ...
+ TIME     Time                             ...       ...       ...       ...       1:21      ...
+ LATITUDE Latitude                         ...       ...       ...       ...       1:21      ...
+ LONGITUDE
+          Longitude                        ...       ...       ...       ...       1:21      ...
+ ROWSIZE  Number of Observations for this  ...       ...       ...       ...       1:21      ...
+ PRESS_DB PRESS_DB                         1:373     ...       ...       ...       ...       ...
+ PCO2     PCO2                             1:373     ...       ...       ...       ...       ...
+ 
+ 
+sp rm WestCoastCarbon_9d9c_f562_77b5_5.nc
+ 
+GO bn_reset
+cancel mode verify
+GO err693_std4d
+! err693_std4d
+! Check fix to ticket 2319: std transform in multi-dimensions
+ 
+ 
+let a = x[gx=1:3:1] * y[gy=1:3:1]
+let astd = a[x=@std,y=@std]
+let avar = a[x=@var,y=@var]
+let a2 = a^2
+let avar_calc = a2[x=@ave,y=@ave] - a[x=@ave,y=@ave]^2
+let astd_x = a[x=@std]
+let astd_x_y = astd_x[y=@std]
+ 
+! STD and VAR in x and y together; vs astd_x_y separately
+list astd^2, avar, avar_calc, astd_x_y^2
+             X: 0.5 to 3.5
+             Y: 0.5 to 3.5
+ Column  1: EX#1 is ASTD^2
+ Column  2: AVAR is A[X=@VAR,Y=@VAR]
+ Column  3: AVAR_CALC is A2[X=@AVE,Y=@AVE] - A[X=@AVE,Y=@AVE]^2
+ Column  4: EX#4 is ASTD_X_Y^2
+           EX#1   AVAR  AVAR_CA   EX#4
+I / *:     5.778  5.778   5.778  0.4444
+ 
+ 
+! Now in the E and F directions
+ 
+let a = _e[ge=1:3:1] * _f[gf=1:3:1]
+let astd = a[e=@std,f=@std]
+let avar = a[e=@var,f=@var]
+let a2 = a^2
+let avar_calc = a2[e=@ave,f=@ave] - a[e=@ave,f=@ave]^2
+let astd_e = a[e=@std]
+let astd_e_f = astd_e[f=@std]
+ 
+list astd^2, avar, avar_calc, astd_e_f^2
+             E: 0.5 to 3.5
+             F: 0.5 to 3.5
+ Column  1: EX#1 is ASTD^2
+ Column  2: AVAR is A[E=@VAR,F=@VAR]
+ Column  3: AVAR_CALC is A2[E=@AVE,F=@AVE] - A[E=@AVE,F=@AVE]^2
+ Column  4: EX#4 is ASTD_E_F^2
+           EX#1   AVAR  AVAR_CA   EX#4
+I / *:     5.778  5.778   5.778  0.4444
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO bn_f_tax_fcns
+! bn_f_from_tax_fcns.jnl
+! test tax_* functions returning results from a
+! time-formatted axis in the F direction
+!
+! 2/2015 ACM
+ 
+define axis/f=1-jan-2011:31-jan-2011:1/units=hours fax
+ 
+ 
+ 
+let ff = _f[gf=fax]
+! Test RETURN=F0
+say `ff,return=F0`
+ !-> MESSAGE/CONTINUE 15-JAN-1901
+15-JAN-1901
+ 
+list/N=20:30 tax_datestring(_F[g=ff],ff,"minute")
+             VARIABLE : TAX_DATESTRING(_F[G=FF],FF,"minute")
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:"01-JAN-2011 19:00"
+ 01-JAN-2011 20:00 / 21:"01-JAN-2011 20:00"
+ 01-JAN-2011 21:00 / 22:"01-JAN-2011 21:00"
+ 01-JAN-2011 22:00 / 23:"01-JAN-2011 22:00"
+ 01-JAN-2011 23:00 / 24:"01-JAN-2011 23:00"
+ 02-JAN-2011 00:00 / 25:"02-JAN-2011 00:00"
+ 02-JAN-2011 01:00 / 26:"02-JAN-2011 01:00"
+ 02-JAN-2011 02:00 / 27:"02-JAN-2011 02:00"
+ 02-JAN-2011 03:00 / 28:"02-JAN-2011 03:00"
+ 02-JAN-2011 04:00 / 29:"02-JAN-2011 04:00"
+ 02-JAN-2011 05:00 / 30:"02-JAN-2011 05:00"
+list/N=20:30 tax_datestring(_F[g=ff],ff,"hour")
+             VARIABLE : TAX_DATESTRING(_F[G=FF],FF,"hour")
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:"01-JAN-2011 19"
+ 01-JAN-2011 20:00 / 21:"01-JAN-2011 20"
+ 01-JAN-2011 21:00 / 22:"01-JAN-2011 21"
+ 01-JAN-2011 22:00 / 23:"01-JAN-2011 22"
+ 01-JAN-2011 23:00 / 24:"01-JAN-2011 23"
+ 02-JAN-2011 00:00 / 25:"02-JAN-2011 00"
+ 02-JAN-2011 01:00 / 26:"02-JAN-2011 01"
+ 02-JAN-2011 02:00 / 27:"02-JAN-2011 02"
+ 02-JAN-2011 03:00 / 28:"02-JAN-2011 03"
+ 02-JAN-2011 04:00 / 29:"02-JAN-2011 04"
+ 02-JAN-2011 05:00 / 30:"02-JAN-2011 05"
+list/N=20:30 tax_datestring(_F[g=ff],ff,"day")
+             VARIABLE : TAX_DATESTRING(_F[G=FF],FF,"day")
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:"01-JAN-2011"
+ 01-JAN-2011 20:00 / 21:"01-JAN-2011"
+ 01-JAN-2011 21:00 / 22:"01-JAN-2011"
+ 01-JAN-2011 22:00 / 23:"01-JAN-2011"
+ 01-JAN-2011 23:00 / 24:"01-JAN-2011"
+ 02-JAN-2011 00:00 / 25:"02-JAN-2011"
+ 02-JAN-2011 01:00 / 26:"02-JAN-2011"
+ 02-JAN-2011 02:00 / 27:"02-JAN-2011"
+ 02-JAN-2011 03:00 / 28:"02-JAN-2011"
+ 02-JAN-2011 04:00 / 29:"02-JAN-2011"
+ 02-JAN-2011 05:00 / 30:"02-JAN-2011"
+list/N=20:30 tax_dayfrac(_F[g=ff],ff)
+             VARIABLE : TAX_DAYFRAC(_F[G=FF],FF)
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:  0.7917
+ 01-JAN-2011 20:00 / 21:  0.8333
+ 01-JAN-2011 21:00 / 22:  0.8750
+ 01-JAN-2011 22:00 / 23:  0.9167
+ 01-JAN-2011 23:00 / 24:  0.9583
+ 02-JAN-2011 00:00 / 25:  0.0000
+ 02-JAN-2011 01:00 / 26:  0.0417
+ 02-JAN-2011 02:00 / 27:  0.0833
+ 02-JAN-2011 03:00 / 28:  0.1250
+ 02-JAN-2011 04:00 / 29:  0.1667
+ 02-JAN-2011 05:00 / 30:  0.2083
+list/N=20:30 tax_day(_F[g=ff],ff)
+             VARIABLE : TAX_DAY(_F[G=FF],FF)
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:  1.000
+ 01-JAN-2011 20:00 / 21:  1.000
+ 01-JAN-2011 21:00 / 22:  1.000
+ 01-JAN-2011 22:00 / 23:  1.000
+ 01-JAN-2011 23:00 / 24:  1.000
+ 02-JAN-2011 00:00 / 25:  2.000
+ 02-JAN-2011 01:00 / 26:  2.000
+ 02-JAN-2011 02:00 / 27:  2.000
+ 02-JAN-2011 03:00 / 28:  2.000
+ 02-JAN-2011 04:00 / 29:  2.000
+ 02-JAN-2011 05:00 / 30:  2.000
+list/N=20:30 tax_jday(_F[g=ff],ff)
+             VARIABLE : TAX_JDAY(_F[G=FF],FF)
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:  1.000
+ 01-JAN-2011 20:00 / 21:  1.000
+ 01-JAN-2011 21:00 / 22:  1.000
+ 01-JAN-2011 22:00 / 23:  1.000
+ 01-JAN-2011 23:00 / 24:  1.000
+ 02-JAN-2011 00:00 / 25:  2.000
+ 02-JAN-2011 01:00 / 26:  2.000
+ 02-JAN-2011 02:00 / 27:  2.000
+ 02-JAN-2011 03:00 / 28:  2.000
+ 02-JAN-2011 04:00 / 29:  2.000
+ 02-JAN-2011 05:00 / 30:  2.000
+list/N=20:30 tax_month(_F[g=ff],ff)
+             VARIABLE : TAX_MONTH(_F[G=FF],FF)
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:  1.000
+ 01-JAN-2011 20:00 / 21:  1.000
+ 01-JAN-2011 21:00 / 22:  1.000
+ 01-JAN-2011 22:00 / 23:  1.000
+ 01-JAN-2011 23:00 / 24:  1.000
+ 02-JAN-2011 00:00 / 25:  1.000
+ 02-JAN-2011 01:00 / 26:  1.000
+ 02-JAN-2011 02:00 / 27:  1.000
+ 02-JAN-2011 03:00 / 28:  1.000
+ 02-JAN-2011 04:00 / 29:  1.000
+ 02-JAN-2011 05:00 / 30:  1.000
+list/N=20:30 tax_yearfrac(_F[g=ff],ff)
+             VARIABLE : TAX_YEARFRAC(_F[G=FF],FF)
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:  0.004909
+ 01-JAN-2011 20:00 / 21:  0.005023
+ 01-JAN-2011 21:00 / 22:  0.005137
+ 01-JAN-2011 22:00 / 23:  0.005251
+ 01-JAN-2011 23:00 / 24:  0.005365
+ 02-JAN-2011 00:00 / 25:  0.005479
+ 02-JAN-2011 01:00 / 26:  0.005594
+ 02-JAN-2011 02:00 / 27:  0.005708
+ 02-JAN-2011 03:00 / 28:  0.005822
+ 02-JAN-2011 04:00 / 29:  0.005936
+ 02-JAN-2011 05:00 / 30:  0.006050
+list/N=20:30 tax_year(_F[g=ff],ff)
+             VARIABLE : TAX_YEAR(_F[G=FF],FF)
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:  2011.
+ 01-JAN-2011 20:00 / 21:  2011.
+ 01-JAN-2011 21:00 / 22:  2011.
+ 01-JAN-2011 22:00 / 23:  2011.
+ 01-JAN-2011 23:00 / 24:  2011.
+ 02-JAN-2011 00:00 / 25:  2011.
+ 02-JAN-2011 01:00 / 26:  2011.
+ 02-JAN-2011 02:00 / 27:  2011.
+ 02-JAN-2011 03:00 / 28:  2011.
+ 02-JAN-2011 04:00 / 29:  2011.
+ 02-JAN-2011 05:00 / 30:  2011.
+list/N=20:30 tax_jday1900(_F[g=ff],ff)
+             VARIABLE : TAX_JDAY1900(_F[G=FF],FF)
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:  40542.
+ 01-JAN-2011 20:00 / 21:  40542.
+ 01-JAN-2011 21:00 / 22:  40542.
+ 01-JAN-2011 22:00 / 23:  40542.
+ 01-JAN-2011 23:00 / 24:  40542.
+ 02-JAN-2011 00:00 / 25:  40543.
+ 02-JAN-2011 01:00 / 26:  40543.
+ 02-JAN-2011 02:00 / 27:  40543.
+ 02-JAN-2011 03:00 / 28:  40543.
+ 02-JAN-2011 04:00 / 29:  40543.
+ 02-JAN-2011 05:00 / 30:  40543.
+list tax_units(ff)
+             VARIABLE : TAX_UNITS(FF)
+          3600.
+ 
+! commands from tax_tstep, changing time origin
+ 
+DEFINE AXIS/F="1-JAN-2000:00:00:01":"1-JAN-2000:00:15:00":2/UNITS=seconds fsec
+LIST/N=440:451 _F[GF=fsec]
+             VARIABLE : _F
+                        axis FSEC
+             SUBSET   : 12 points (FORECAST)
+ 01-JAN-2000 00:14:39 / 440:  3.123E+09
+ 01-JAN-2000 00:14:41 / 441:  3.123E+09
+ 01-JAN-2000 00:14:43 / 442:  3.123E+09
+ 01-JAN-2000 00:14:45 / 443:  3.123E+09
+ 01-JAN-2000 00:14:47 / 444:  3.123E+09
+ 01-JAN-2000 00:14:49 / 445:  3.123E+09
+ 01-JAN-2000 00:14:51 / 446:  3.123E+09
+ 01-JAN-2000 00:14:53 / 447:  3.123E+09
+ 01-JAN-2000 00:14:55 / 448:  3.123E+09
+ 01-JAN-2000 00:14:57 / 449:  3.123E+09
+ 01-JAN-2000 00:14:59 / 450:  3.123E+09
+ 01-JAN-2000 00:15:01 / 451:  3.123E+09
+LET bsin = SIN(_F[GF=fsec]/40000)
+SAVE/FILE=a.nc/clobber bsin
+CAN VAR/all
+USE a.nc
+ 
+SET LIST/PREC=7
+! Reset the date to dec 1999
+! Function lets us leave off the leading 0.
+LIST/N=1:15  TAX_TSTEP(bsin, "1-dec-1999:00:00:00" )
+             VARIABLE : TAX_TSTEP(BSIN, "1-dec-1999:00:00:00" )
+             FILENAME : a.nc
+             SUBSET   : 15 points (FORECAST)
+ 01-JAN-2000 00:00:01 /  1:  2678401.
+ 01-JAN-2000 00:00:03 /  2:  2678403.
+ 01-JAN-2000 00:00:05 /  3:  2678405.
+ 01-JAN-2000 00:00:07 /  4:  2678407.
+ 01-JAN-2000 00:00:09 /  5:  2678409.
+ 01-JAN-2000 00:00:11 /  6:  2678411.
+ 01-JAN-2000 00:00:13 /  7:  2678413.
+ 01-JAN-2000 00:00:15 /  8:  2678415.
+ 01-JAN-2000 00:00:17 /  9:  2678417.
+ 01-JAN-2000 00:00:19 / 10:  2678419.
+ 01-JAN-2000 00:00:21 / 11:  2678421.
+ 01-JAN-2000 00:00:23 / 12:  2678423.
+ 01-JAN-2000 00:00:25 / 13:  2678425.
+ 01-JAN-2000 00:00:27 / 14:  2678427.
+ 01-JAN-2000 00:00:29 / 15:  2678429.
+ 
+! argument can be upper or lowercase
+! Should list values 1, 3, 5...
+LIST/N=1:15  TAX_TSTEP(bsin, "1-JAN-2000:00:00:00" )
+             VARIABLE : TAX_TSTEP(BSIN, "1-JAN-2000:00:00:00" )
+             FILENAME : a.nc
+             SUBSET   : 15 points (FORECAST)
+ 01-JAN-2000 00:00:01 /  1:   1.00000
+ 01-JAN-2000 00:00:03 /  2:   3.00000
+ 01-JAN-2000 00:00:05 /  3:   5.00000
+ 01-JAN-2000 00:00:07 /  4:   7.00000
+ 01-JAN-2000 00:00:09 /  5:   9.00000
+ 01-JAN-2000 00:00:11 /  6:  11.00000
+ 01-JAN-2000 00:00:13 /  7:  13.00000
+ 01-JAN-2000 00:00:15 /  8:  15.00000
+ 01-JAN-2000 00:00:17 /  9:  17.00000
+ 01-JAN-2000 00:00:19 / 10:  19.00000
+ 01-JAN-2000 00:00:21 / 11:  21.00000
+ 01-JAN-2000 00:00:23 / 12:  23.00000
+ 01-JAN-2000 00:00:25 / 13:  25.00000
+ 01-JAN-2000 00:00:27 / 14:  27.00000
+ 01-JAN-2000 00:00:29 / 15:  29.00000
+ 
+! Test  with TAX_DATESTRING
+ 
+DEFINE AXIS/F="1-JAN-1902:00:00:00":"1-JAN-1902:00:30:00":5/UNITS=seconds fsec
+LIST/N=200:205 _F[GF=fsec]
+             VARIABLE : _F
+                        axis FSEC
+             SUBSET   : 6 points (FORECAST)
+ 01-JAN-1902 00:16:35 / 200:  30327395.
+ 01-JAN-1902 00:16:40 / 201:  30327400.
+ 01-JAN-1902 00:16:45 / 202:  30327405.
+ 01-JAN-1902 00:16:50 / 203:  30327410.
+ 01-JAN-1902 00:16:55 / 204:  30327415.
+ 01-JAN-1902 00:17:00 / 205:  30327420.
+ 
+LET ff = _F[GF=fsec]
+LET reset_date = TAX_DATESTRING(`_F[GF=fsec,n=1]`, ff, "sec")
+ !-> DEFINE VARIABLE reset_date = TAX_DATESTRING(30326400, ff, "sec")
+LIST/N=1:15 TAX_TSTEP(ff, "`reset_date`")
+ !-> LIST/N=1:15 TAX_TSTEP(ff, "01-JAN-1902 00:00:00")
+             VARIABLE : TAX_TSTEP(FF, "01-JAN-1902 00:00:00")
+             SUBSET   : 15 points (FORECAST)
+ 01-JAN-1902 00:00:00 /  1:   0.00000
+ 01-JAN-1902 00:00:05 /  2:   5.00000
+ 01-JAN-1902 00:00:10 /  3:  10.00000
+ 01-JAN-1902 00:00:15 /  4:  15.00000
+ 01-JAN-1902 00:00:20 /  5:  20.00000
+ 01-JAN-1902 00:00:25 /  6:  25.00000
+ 01-JAN-1902 00:00:30 /  7:  30.00000
+ 01-JAN-1902 00:00:35 /  8:  35.00000
+ 01-JAN-1902 00:00:40 /  9:  40.00000
+ 01-JAN-1902 00:00:45 / 10:  45.00000
+ 01-JAN-1902 00:00:50 / 11:  50.00000
+ 01-JAN-1902 00:00:55 / 12:  55.00000
+ 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
+ 
+GO bn_reset
+cancel mode verify
+GO bn_fmrc
+! bn_fmrc.jnl
+! initial test of DEFINE DATA/F
+ 
+use "run1.nc"
+use "run2.nc"
+use "run3.nc"
+use "run4.nc"
+ 
+define data/hide/F/agg/title 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
+ normal    Z
+ TF_LAG_T  MODEL ELAPSED TIME (12 r   0                    11
+ normal    E
+ TF_CAL_F  FORECAST             4 r   02-JAN-2010 00:00    08-JAN-2010 00:00
+list/i=1/j=1/L=1:6/n=1:4 sst
+             VARIABLE : SST_IN (Deg C)
+             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      
+                          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
+ 
+show att sst
+     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 
+ 
+! Attribute _ftime2dRef pointe to the 2D time variable
+list/L=1:6/n=1:4 `sst._ftime2dRef`
+ !-> list/L=1:6/n=1:4 TF_TIMES
+             VARIABLE : Forecast time step matrix (day since 01-JAN-2010 00:00:00)
+             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      
+                          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
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO bn_return_defined
+! bn_return_defined.jnl
+! 5/3/2015 *acm*
+! `return=defined` returns 1 if the user variable is defined
+! see ticket 2293
+ 
+let a = b
+say `a,r=defined` `b,r=defined`
+ !-> MESSAGE/CONTINUE 1 0
+1 0
+ 
+! abbreviate to 3 letters
+use levitus_climatology
+let temp2 = 2*temp
+say `temp2,return=def`
+ !-> MESSAGE/CONTINUE 1
+1
+ 
+! returns false for file variables
+say `temp,return=defined`
+ !-> MESSAGE/CONTINUE 0
+0
+ 
+GO bn_reset
+cancel mode verify
+GO bn_can_var_noerr
+! bn_can_var_noerr.jnl
+! CANCEL VARIABLE/NOERROR
+ 
+ 
+let a = 1
+ 
+! intentional error
+set mode ignore
+cancel var b,a
+show var
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+     A = 1
+ 
+cancel mode ignore
+ 
+! specify /noerr and we can issue the command
+ 
+cancel var/noerror a,b
+show var
+ Created by DEFINE VARIABLE:
+ 
+! no effect on CAN VAR/ALL or CAN VAR template_name
+ 
+let a1 = 1
+let a7 = 7
+let c = 12
+ 
+cancel var/noerror name*
+show var
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+     C = 12
+     A7 = 7
+     A1 = 1
+ 
+cancel var/noerror a*
+show var
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+     C = 12
+ 
+cancel var/noerror/all
+show var
+ Created by DEFINE VARIABLE:
+ 
+GO bn_reset
+cancel mode verify
+GO bn_annotate
+! bn_annotate.jnl
+! The command ANNOTATE /USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE
+! locates user-defined labels on a plot.
+!   /USER and /NOUSER behave as the LABEL command does
+!   /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
+ 
+! ANNOTATE /USER
+set v ul
+plot/vs/sym=28/hl=-5:5/vl=-10:10 {-1,1},{-1,1}
+ 
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/USER labels"
+ !-> annotate/nouser/xpos=2.2495/ypos=3.89900/halign=0/valign=-8/siz=.25 "ANNOTATE/USER labels"
+annotate/user/xpos=-1/ypos=-1/halign=0/valign=0/angle=-90/siz=0.2 "X"
+annotate/user/xpos=0/ypos=0/halign=0/valign=0/angle=0/siz=0.2 "X"
+annotate/user/xpos=1/ypos=1/halign=0/valign=0/angle=45/siz=0.2 "X"
+ 
+plot/ov/vs/line=1/nolab {-1,1,1,-1,-1},{4,4,6,6,4}
+annotate/user/xpos=0/ypos=5/halign=0/valign=0/angle=0/siz=0.2 "BOX"
+ 
+plot/ov/vs/line=1/nolab .5*{-1,1,1,-1,-1},{-2,-2,-8,-8,-2}
+	annotate/user/xpos=0/ypos=-5/halign=0/valign=0/angle=90/siz=0.2 "BOX"
+ 
+plot/ov/vs/sym=2/size=2/nolab 3,0
+annotate/user/xpos=3/ypos=0/halign=0/valign=1/angle=45/siz=0.2 "TOP"
+annotate/user/xpos=3/ypos=0/halign=0/valign=-1/angle=45/siz=0.2 "BOTTOM"
+ 
+plot/ov/vs/sym=2/size=2/nolab -3,0
+annotate/user/xpos=-3/ypos=0/halign=-1/valign=-1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-1/valign=1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=1/valign=-1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=1/valign=1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-3/valign=-3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-3/valign=3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=3/valign=-3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=3/valign=3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-.99/valign=5/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=.99/valign=5/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-.99/valign=-5/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=.99/valign=-5/angle=45/siz=0.2 "M"
+ 
+ 
+ 
+! ANNOTATE/NORM
+set v ur
+plot/i=1:5/vlim=1:5/hlim=1:5/color=white/nolab i
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/NORM labels"
+ !-> annotate/nouser/xpos=2.2495/ypos=3.89900/halign=0/valign=-8/siz=.25 "ANNOTATE/NORM labels"
+ 
+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=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=.5/halign=0/valign=0/angle=0/size=0.14 "DEAD CENTER"
+annotate/norm/xpos=.5/ypos=0/halign=0/valign=1/angle=0/size=0.14 "HANGING FROM BOTTOM"
+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"
+ 
+! ANNOTATE/NOUSER
+set v ll
+plot/i=1:5/vlim=1:5/hlim=1:5/color=white/nolab i
+ 
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels"
+ !-> annotate/nouser/xpos=2.2495/ypos=3.89900/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels"
+ 
+! nouser
+annotate/nouser/xpos=0/ypos=0/halign=-1/angle=0/size=0.15 "At Origin"
+annotate/nouser/xpos=0/ypos=0/halign=-3/valign=-3/angle=0/size=0.15 "With/HALIGN=-3/VALIGN=-3"
+ 
+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=4.49900/ypos=3.89900/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"
+ !-> annotate/nouser/xpos=4.49900/ypos=3.89900/halign=4/valign=3/angle=0/siz=0.15 "With/HALIGN=3/VALIGN=4"
+ 
+plot/vs/line/over/color=lightblue/nolab {3,3},{1,6}
+plot/vs/line/over/color=lightblue/nolab {1,5}, {3,3}
+ 
+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 "
+ !-> annotate/nouser/xpos=2.2495/ypos=1.9495/halign=0/valign=0/angle=0/siz=0.15 "Arguments locate the first<nl>line of multi-line labels "
+ 
+! angles
+set v lr
+ 
+plot/i=1:5/vlim=1:5/hlim=1:5/color=white/nolab i
+! nouser
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels<nl>Use VALIGN=0"
+ !-> annotate/nouser/xpos=2.2495/ypos=3.89900/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels<nl>Use VALIGN=0"
+annotate/nouser/xpos=0/ypos=0/halign=0/valign=0/angle=45/size=0.15 "Center At Origin"
+annotate/nouser/xpos=0/ypos=($ppl$ylen)/halign=-1/valign=0/angle=-45/siz=0.15 "left-align"
+ !-> annotate/nouser/xpos=0/ypos=3.89900/halign=-1/valign=0/angle=-45/siz=0.15 "left-align"
+annotate/nouser/xpos=($ppl$xlen)/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "right-align"
+ !-> annotate/nouser/xpos=4.49900/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "right-align"
+ 
+! Test defaults
+! Default is like PPL user-labels
+! /USER/SIZ=0.12/ANGLE=0/HALIGN=0/VALIGN=-1
+ 
+shade/x=1:2/y=1:2/pal=grayscale i+j
+annotate/xpos=1.5/ypos=1.8 "Anno Label"
+label 1.5,1.6,,,, PPL label
+ 
+ 
+! DEFINE ANNOTATION inside a grapchics call with /SET
+can view
+use gt4d011.cdf
+shade/set temp[k=1,l=1]
+  DEFINE ANNOTATION/user/xpos=224/ypos=-3/halign=0/valign=0/angle=0/siz=.3 "X"
+ppl shade
+ 
+shade/set/j=40/L=1 temp
+  DEFINE ANNOTATION/user/xpos=224/ypos=80/halign=0/valign=0/angle=0/siz=.3 "X"
+ppl shade
+ 
+can data/all
+ 
+plot/set/i=1:5 i
+! nouser
+define annotation/nouser/xpos=0/ypos=0/halign=0/angle=0/size=0.15 "Center At Origin"
+define annotation/nouser/xpos=0/ypos=($ppl$ylen)/halign=-1/angle=0/siz=0.15 "left-align at upper left corner"
+ !-> define annotation/nouser/xpos=0/ypos=6.67400/halign=-1/angle=0/siz=0.15 "left-align at upper left corner"
+define annotation/nouser/xpos=($ppl$xlen)/ypos=0/halign=1/angle=0/siz=0.15 "right-align at lower right corner"
+ !-> define annotation/nouser/xpos=7.27400/ypos=0/halign=1/angle=0/siz=0.15 "right-align at lower right corner"
+! user
+define annotation/user/xpos=3/ypos=2/halign=0/angle=0/siz=0.15 "user units centered at 3,2"
+define annotation/user/xpos=3/ypos=3/halign=-1/angle=0/siz=0.15 "user units left at 3,3"
+define annotation/user/xpos=3/ypos=4/halign=1/angle=0/siz=0.15 "user units right at 3,4"
+ppl plot
+ 
+! angles
+ 
+plot/set/i=1:5 i
+define annotation/nouser/xpos=0/ypos=0/halign=0/angle=45/size=0.15 "Center At Origin"
+define annotation/nouser/xpos=0/ypos=($ppl$ylen)/halign=-1/angle=-45/siz=0.15 "left-align at upper left corner"
+ !-> define annotation/nouser/xpos=0/ypos=6.67400/halign=-1/angle=-45/siz=0.15 "left-align at upper left corner"
+define annotation/nouser/xpos=($ppl$xlen)/ypos=0/halign=1/angle=-45/siz=0.15 "right-align at lower right corner"
+ !-> define annotation/nouser/xpos=7.27400/ypos=0/halign=1/angle=-45/siz=0.15 "right-align at lower right corner"
+! user
+define annotation/user/xpos=3/ypos=2/halign=0/angle=45/siz=0.15 "user units centered at 3,2"
+define annotation/user/xpos=3/ypos=3/halign=-1/angle=45/siz=0.15 "user units left at 3,3"
+define annotation/user/xpos=3/ypos=4/halign=1/angle=45/siz=0.15 "user units right at 3,4"
+ppl plot
+ 
+! DEFINE ANNO/NORM
+plot/i=1:5/nolab/set i
+def anno/norm/xp=.5/yp=1.1/hal=0/ang=0/size=.3 "FLOATING TITLE"
+def anno/norm/xp=.5/yp=-.2/hal=0/ang=0/size=.3 "SUBMERGED TITLE"
+def anno/norm/xp=0/yp=1/hal=-1/ang=0/size=.3 "LEFT/TOP"
+def anno/norm/xp=.5/yp=1/hal=0/ang=0/size=.3 "CTR/TOP"
+def anno/norm/xp=1/yp=1/hal=1/ang=0/size=.3 "RIGHT/TOP"
+def anno/norm/xp=1/yp=.5/hal=0/ang=-90/size=.3 "RIGHT EDGE"
+def anno/norm/xp=0/yp=.5/hal=0/ang=90/size=.3 "LEFT EDGE"
+def anno/norm/xp=.5/yp=.5/hal=0/val=0/ang=0/size=.3 "DEAD CENTER"
+def anno/norm/xp=.5/yp=0/hal=0/val=1/ang=0/size=.3 "HANGING FROM BOTTOM"
+def anno/norm/xp=0/yp=0/hal=-2/val=-2/ang=0/size=.2 "BOTTOM LEFT INSET"
+def anno/norm/xp=0/yp=1/hal=-2/val=2/ang=0/size=.2 "TOP LEFT INSET"
+def anno/norm/xp=1/yp=0/hal=2/val=-2/ang=0/size=.2 "BOTTOM RIGHT INSET"
+def anno/norm/xp=1/yp=1/hal=2/val=2/ang=0/size=.2 "TOP RIGHT INSET"
+ppl plot
+ 
+plot/set/vs/sym=28/hl=-5:5/vl=-10:10 {-1,1},{-1,1}
+ 
+define annotation/user/xpos=-1/ypos=-1/halign=0/valign=0/angle=-90/siz=.5 "X"
+define annotation/user/xpos=0/ypos=0/halign=0/valign=0/angle=0/siz=.5 "X"
+define annotation/user/xpos=1/ypos=1/halign=0/valign=0/angle=45/siz=.5 "X"
+define annotation/user/xpos=0/ypos=5/halign=0/valign=0/angle=0/siz=.5 "BOX"
+define annotation/user/xpos=0/ypos=-5/halign=0/valign=0/angle=90/siz=.5 "BOX"
+define annotation/user/xpos=3/ypos=0/halign=0/valign=1/angle=45/siz=.5 "TOP"
+define annotation/user/xpos=3/ypos=0/halign=0/valign=-1/angle=45/siz=.5 "BOTTOM"
+define annotation/user/xpos=-3/ypos=0/halign=-1/valign=-1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-1/valign=1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=1/valign=-1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=1/valign=1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-3/valign=-3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-3/valign=3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=3/valign=-3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=3/valign=3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-.99/valign=5/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=.99/valign=5/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-.99/valign=-5/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=.99/valign=-5/angle=45/siz=.5 "M"
+ppl list labels
+                                                                                
+ @AS{-1,1}                                                                      
+ @AS{-1,1}                                                                      
+
+          XPOS       YPOS     HGT   ROT   UNITS
+ LAB 1  0.000E+00  7.270E+00 0.120    0  SYSTEM  @ASX : 0.5 to 2.5
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
+ LAB 2 -1.344E+00 -1.000E+00 0.500  -90  USER    X
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 3  0.000E+00 -7.492E-01 0.500    0  USER    X
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 4  1.243E+00  4.703E-01 0.500   45  USER    X
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 5  0.000E+00  4.251E+00 0.500    0  USER    BOX
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 6  3.437E-01 -5.000E+00 0.500   90  USER    BOX
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 7  3.486E+00 -1.059E+00 0.500   45  USER    TOP
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 8  3.000E+00  0.000E+00 0.500   45  USER    BOTTOM
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 9 -3.000E+00  0.000E+00 0.500   45  USER    M
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
+ LAB10 -2.514E+00 -1.059E+00 0.500   45  USER    M
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
+ LAB11 -3.000E+00  0.000E+00 0.500   45  USER    M
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
+ LAB12 -2.514E+00 -1.059E+00 0.500   45  USER    M
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
+ LAB13 -3.000E+00  2.119E+00 0.500   45  USER    M
+ 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
+ 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
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB18 -1.782E+00 -3.703E+00 0.500   45  USER    M
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB19 -3.732E+00  2.643E+00 0.500   45  USER    M
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB20 -4.213E+00  1.595E+00 0.500   45  USER    M
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ppl plot
+plot/ov/vs/line=1/nolab {-1,1,1,-1,-1},{4,4,6,6,4}
+plot/ov/vs/line=1/nolab .5*{-1,1,1,-1,-1},{-2,-2,-8,-8,-2}
+plot/ov/vs/sym=2/size=2/nolab 3,0
+plot/ov/vs/sym=2/size=2/nolab -3,0
+ 
+! intentional errors
+set mode ignore
+can v
+shade/i=1:2/j=1:2/nokey i+j
+ 
+ 
+! errors in arguments
+annotate/nouser/xpos=a2/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=b/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=0/halign=c/valign=0/angle=-45/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=0/halign=1/valign=d/angle=ee/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=0/halign=1/valign=0/angle=-45/siz=f "My Lab"
+ 
+! missing a location
+annotate/nouser/ypos=0 "My Lab"
+annotate/nouser/xpos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+ 
+! /USER and /NOUSER
+annotate/nouser/user/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+ 
+! define annotation
+ 
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=a2/ypos=0/hal=1/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0,3/ypos=b/hal=1/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=c/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=1/val=d/ang=ee/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=1/val=0/ang=-45/siz=f "My Lab"; ppl plot
+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.15 "My Lab"; ppl plot
+ 
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/ypos=0 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/hal=1/val=0 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/user/xpos=0/ypos=0 "My Lab"; ppl plot
+ 
+GO bn_reset
+cancel mode verify
+GO bn_auxiliary
+! bn_auxiliary.jnl:  exercise auxiliary coordinate regridding
+ 
+! notes about the 6/2015 version:
+! -- tests 1D regridding, only, as of 6/2015
+! -- includestests the deprecated "LAYERZ" and "__LayerzRef_" automation syntax
+!    ... to be replaced by a different automation syntax in the future
+ 
+! *sh* 6/2015
+ 
+! initialize the test environment
+USE levitus_3d_subset
+SPAWN rm layerz_test_data.txt
+LET Zpts = Z[Z=100:500:100]
+DEFINE AXIS/z/units=meters zax = zpts
+ 
+! conjure a 4D auxiliary variable that contains the same values
+! as the native Z coordinates
+! regridding using this auxiliary variable should give the same results as
+! conventional regridding -- usefuly to validate the results
+LET/D=levitus_3d_subset depth = z[g=temp]+ 0*temp[k=1]
+ 
+!************
+! exercise the syntax of setting layerz associations
+! do same tests on EZ, uvar, and netCDF variable
+ 
+! EZ file variable
+LIST/NOHEAD/FILE=layerz_test_data.txt 1
+FILE/VAR=v layerz_test_data.txt
+! set the layerz link to point to a variable named "depth"
+SET VAR/layerz=depth v
+SHOW VAR/LAYERZ v
+  DEPTH holds the designated vertical (layerz) coordinates of V
+SHOW ATT v
+! modify the layerz link
+SET VAR/layerz=newdepth v
+SHOW VAR/LAYERZ v
+  NEWDEPTH holds the designated vertical (layerz) coordinates of V
+SHOW ATT v
+     attributes for dataset: ./layerz_test_data.txt
+ V.long_name = V 
+ V.missing_value = -1.E+34
+ V.__LayerzRef_ = NEWDEPTH 
+cancel var/layerz v
+SHOW VAR/LAYERZ v
+  No variable holds vertical (layerz) coordinates of V
+SHOW ATT v
+     attributes for dataset: ./layerz_test_data.txt
+ V.long_name = V 
+ V.missing_value = -1.E+34
+CANCEL DATA layerz_test_data.txt
+ 
+! user variable
+! set the layerz link
+LET a = temp
+SET VAR/layerz=depth a
+SHOW VAR/LAYERZ a
+  DEPTH holds the designated vertical (layerz) coordinates of a
+SHOW ATT a
+     attributes for user-defined variables
+ a.long_name = TEMP 
+ a.missing_value = -1.E+34
+ a.__LayerzRef_ = DEPTH 
+! modify the layerz link
+SET VAR/layerz=newdepth a
+SHOW VAR/LAYERZ a
+  NEWDEPTH holds the designated vertical (layerz) coordinates of a
+SHOW ATT a
+     attributes for user-defined variables
+ a.long_name = TEMP 
+ a.missing_value = -1.E+34
+ a.__LayerzRef_ = NEWDEPTH 
+cancel var/layerz a
+SHOW VAR/LAYERZ a
+  No variable holds vertical (layerz) coordinates of a
+SHOW ATT a
+     attributes for user-defined variables
+ a.long_name = TEMP 
+ a.missing_value = -1.E+34
+ 
+! netCDF file variable
+! set the layerz link
+SET VAR/layerz=depth temp[d=levitus_3d_subset]
+SHOW VAR/LAYERZ/d=levitus_3d_subset temp
+  DEPTH holds the designated vertical (layerz) coordinates of TEMP
+SHOW ATT temp.__LayerzRef_[d=levitus_3d_subset]
+     attributes for dataset: ./levitus_3d_subset.nc
+ TEMP.__LayerzRef_ = DEPTH 
+! modify the layerz link
+SET VAR/layerz=newdepth temp[d=levitus_3d_subset]
+SHOW VAR/LAYERZ/d=levitus_3d_subset temp
+  NEWDEPTH holds the designated vertical (layerz) coordinates of TEMP
+SHOW ATT temp.__LayerzRef_[d=levitus_3d_subset]
+     attributes for dataset: ./levitus_3d_subset.nc
+ TEMP.__LayerzRef_ = NEWDEPTH 
+cancel var/layerz temp[d=levitus_3d_subset]
+SHOW VAR/LAYERZ/d=levitus_3d_subset temp
+  No variable holds vertical (layerz) coordinates of TEMP
+SHOW ATT temp[d=levitus_3d_subset]   ! __LayerzRef_ has been deleted
+     attributes for dataset: ./levitus_3d_subset.nc
+ TEMP.missing_value = -1.E+10
+ TEMP._FillValue = -1.E+10
+ TEMP.long_name = TEMPERATURE 
+ TEMP.history = From /home/users/tmap/ferret/linux/fer_dsets/data/levitus_climatology.cdf 
+ TEMP.units = DEG C 
+ 
+! deliberate error
+SET MODE ignore; SET VAR/layerz=depth noexist; SET MODE/last ignore
+ 
+!************
+! exercise the layerz calculations in various situations
+! compare the manually specified syntax with the automated results
+ 
+! make "depth" the layerz coordinate variable for "temp"
+SET VAR/layerz=depth temp[d=levitus_3d_subset]
+ 
+! values of the unadulterated variable
+list/PREC=7 temp[z=0:500]
+             VARIABLE : TEMPERATURE (DEG C)
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 11 points (LONGITUDE-LATITUDE-DEPTH (m))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   0
+ 48.5S / 2:  7.725000  7.917999
+ 49.5S / 1:  6.827000  7.007000
+ ---- K:2 Z:   10
+ 48.5S / 2:  7.726000  7.917999
+ 49.5S / 1:  6.843000  7.021999
+ ---- K:3 Z:   20
+ 48.5S / 2:  7.715000  7.907000
+ 49.5S / 1:  6.840000  7.018999
+ ---- K:4 Z:   30
+ 48.5S / 2:  7.594000  7.789000
+ 49.5S / 1:  6.740999  6.923000
+ ---- K:5 Z:   50
+ 48.5S / 2:  7.410999  7.584000
+ 49.5S / 1:  6.624001  6.785000
+ ---- K:6 Z:   75
+ 48.5S / 2:  7.572001  7.666000
+ 49.5S / 1:  6.750999  6.848000
+ ---- K:7 Z:   100
+ 48.5S / 2:  7.334999  7.436001
+ 49.5S / 1:  6.462000  6.572001
+ ---- K:8 Z:   150
+ 48.5S / 2:  7.372000  7.464001
+ 49.5S / 1:  6.466000  6.573999
+ ---- K:9 Z:   200
+ 48.5S / 2:  6.961000  7.073000
+ 49.5S / 1:  6.025999  6.150000
+ ---- K:10 Z:   300
+ 48.5S / 2:  6.457001  6.636999
+ 49.5S / 1:  5.445000  5.665000
+ ---- K:11 Z:   400
+ 48.5S / 2:  6.181999  6.377001
+ 49.5S / 1:  5.187000  5.410000
+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
+ normal    T
+ normal    E
+ normal    F
+ 
+! use aux var regridding.  Target coordinate points match the source points
+! identically at 0, 100, 200, ... 500
+! values should match the unadulterated variable at these points
+! this command will be issued in diagnostic mode to highlight that the
+! K range over which temp is read is the minimum needed to compute the result
+SET MODE diagnostic
+LET tempz = temp[gz(depth)=zpts]
+LIST/PREC=7 tempz
+ dealloc  dynamic grid GAO1            XAXLEVITR1YAXLEVITR4ZAXLEVITR NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ getgrid TEMPZ    C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ getgrid DEPTH    C:  9 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid GAO1            XAXLEVITR1YAXLEVITR4ZAXLEVITR NORMAL    NORMAL    NORMAL
+ getgrid ZPTS     C:  9 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid (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 (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    5  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    TEMPZ    C:  6 dset:   1 I:    1    2  J:    1    2  K:    1    5  L: -999 -999  M: -999 -999  N: -999 -999
+ allocate dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
+ strip regrid on Z: TEMP --> (G086)           @LIN
+ eval    DEPTH    C:  9 dset:   1 I:    1    2  J:    1    2  K:    1   20  L: -999 -999  M: -999 -999  N: -999 -999
+ pseudo  Z        M: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
+ dealloc  dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
+             VARIABLE : TEMP[GZ(DEPTH)=ZPTS]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.334999  7.436001
+ 49.5S / 1:  6.462000  6.572001
+ ---- K:2 Z:   200
+ 48.5S / 2:  6.961000  7.073000
+ 49.5S / 1:  6.025999  6.150000
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.457001  6.636999
+ 49.5S / 1:  5.445000  5.665000
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.181999  6.377001
+ 49.5S / 1:  5.187000  5.410000
+ ---- K:5 Z:   500
+ 48.5S / 2:  5.835500  6.045001
+ 49.5S / 1:  4.879000  5.102500
+SHOW GRID tempz
+ dealloc  dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
+    GRID (G086)
+ 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
+ normal    T
+ normal    E
+ normal    F
+!LET tempz = temp[gz=zpts,layerz]  ! same regrid using semi-automated notation
+!LIST/PREC=7 tempz
+!SHOW GRID tempz
+SET MODE/last diagnostic
+ 
+! list a little with no imtermediate variable, so Z labeling is visible
+LIST/PREC=7 temp[gz(depth)=zpts,k=1]
+             VARIABLE : TEMPERATURE (DEG C)
+                        regrid: 100 delta on Z at LIN using DEPTH field
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z        : 100
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2:  7.334999  7.436001
+ 49.5S / 1:  6.462000  6.572001
+!LIST/PREC=7 temp[gz=zpts,k=1,layerz] ! same using semi-automated notation
+ 
+! same calculation, but with a named Z axis
+LET tempzax = temp[gz(depth)=zax]
+LIST tempzax
+             VARIABLE : TEMP[GZ(DEPTH)=ZAX]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (METERS))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.334999  7.436001
+ 49.5S / 1:  6.462000  6.572001
+ ---- K:2 Z:   200
+ 48.5S / 2:  6.961000  7.073000
+ 49.5S / 1:  6.025999  6.150000
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.457001  6.636999
+ 49.5S / 1:  5.445000  5.665000
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.181999  6.377001
+ 49.5S / 1:  5.187000  5.410000
+ ---- K:5 Z:   500
+ 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
+ normal    T
+ normal    E
+ normal    F
+!LET tempzax = temp[gz=zax,layerz]  ! same regrid using semi-automated notation
+!LIST tempzax
+!SHOW GRID tempzax
+ 
+! regrid to a different set of Z points
+LET tempz_alt = temp[gz(depth)=2:10:2]
+LIST/PREC=7 tempz_alt
+             VARIABLE : TEMP[GZ(DEPTH)=2:10:2]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   2
+ 48.5S / 2:  7.725200  7.917999
+ 49.5S / 1:  6.830200  7.010000
+ ---- K:2 Z:   4
+ 48.5S / 2:  7.725400  7.917999
+ 49.5S / 1:  6.833400  7.013000
+ ---- K:3 Z:   6
+ 48.5S / 2:  7.725600  7.917999
+ 49.5S / 1:  6.836600  7.016000
+ ---- K:4 Z:   8
+ 48.5S / 2:  7.725800  7.917999
+ 49.5S / 1:  6.839800  7.018999
+ ---- K:5 Z:   10
+ 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
+ normal    T
+ normal    E
+ normal    F
+ 
+!! do same regrid using the shorhand semi-automated notation
+!LIST/PREC=7 temp[z=2:10:2,layerz]   ! lo:hi:delta notation
+!SHOW GRID
+ 
+! test the shorthand notation var[gz(depth)=100] as an implicit aux var
+! regrid via linear interpolation
+! the value should match the preceding output at Z=6
+LET tempz_1pt = temp[gz(depth)=6]
+LIST/PREC=7 tempz_1pt
+             VARIABLE : TEMP[GZ(DEPTH)=6]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z        : 6
+               120.5E    121.5E  
+                 1         2
+ 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
+ normal    T
+ normal    E
+ normal    F
+ 
+       K     Z                   ZBOX      ZBOXLO
+       1>  6                     6.E-05     5.99997
+ 
+! do same regrid using the shorhand semi-automated notation
+LIST/PREC=7 temp[z=6,layerz]     ! =1pt notation   WILL BE CHANGED!
+             VARIABLE : TEMPERATURE (DEG C)
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             DEPTH (m): 6 (interpolated using DEPTH)
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2:  7.725600  7.917999
+ 49.5S / 1:  6.836600  7.016000
+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
+ normal    T
+ normal    E
+ normal    F
+ 
+! auxiliary points in reverse order
+! to get results that we can check for correctness, we will reverse the Z-order
+! of the temperature field as well as the depth field.
+LET rvtemp0 = ZREVERSE(temp)
+LET rvtemp  = rvtemp0[gz=temp at asn]
+LET rvdepth0 = ZREVERSE(depth)
+LET/D=levitus_3d_subset rvdepth  = rvdepth0[gz=temp at asn]
+! **** NOTE: THERE'S A SUBTLE MISBEHAVIOR IN AUX REGRID SHOWN IN THIS COMMENTED
+! OUT LINE BUT WILL RARELY OCCUR AND EASILY WORKED AROUND
+!LET rvtempzax = rvtemp[gz(rvdepth)=zax]  ! zlims aren't filled in if not given
+LET rvtempzax = rvtemp[gz(rvdepth)=zax,z=100:500]
+LIST/PREC=7 rvtempzax - tempz
+             VARIABLE : RVTEMPZAX - TEMPZ
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+               120.5E     121.5E   
+                 1          2
+ ---- K:1 Z:   100
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ ---- K:2 Z:   200
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ ---- K:3 Z:   300
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ ---- K:4 Z:   400
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ ---- K:5 Z:   500
+ 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
+ normal    T
+ normal    E
+ normal    F
+ 
+! deliberate execution errors:
+LET disordered_depth1 = IF K EQ 3 THEN DEPTH[K=1] ELSE DEPTH
+LET disordered_tempz1 = temp[gz(disordered_depth1)=zax]
+LET disordered_depth2 = IF K EQ 3 THEN DEPTH[K=5] ELSE DEPTH
+LET disordered_tempz2 = temp[gz(disordered_depth2)=zax]
+SET MODE ignore
+LIST disordered_tempz1
+             VARIABLE : TEMP[GZ(DISORDERED_DEPTH1)=ZAX]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (METERS))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.334999  7.436001
+ 49.5S / 1:  6.462000  6.572001
+ ---- K:2 Z:   200
+ 48.5S / 2:  6.961000  7.073000
+ 49.5S / 1:  6.025999  6.150000
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.457001  6.636999
+ 49.5S / 1:  5.445000  5.665000
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.181999  6.377001
+ 49.5S / 1:  5.187000  5.410000
+ ---- K:5 Z:   500
+ 48.5S / 2:  5.835500  6.045001
+ 49.5S / 1:  4.879000  5.102500
+LIST disordered_tempz2
+             VARIABLE : TEMP[GZ(DISORDERED_DEPTH2)=ZAX]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (METERS))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.334999  7.436001
+ 49.5S / 1:  6.462000  6.572001
+ ---- K:2 Z:   200
+ 48.5S / 2:  6.961000  7.073000
+ 49.5S / 1:  6.025999  6.150000
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.457001  6.636999
+ 49.5S / 1:  5.445000  5.665000
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.181999  6.377001
+ 49.5S / 1:  5.187000  5.410000
+ ---- K:5 Z:   500
+ 48.5S / 2:  5.835500  6.045001
+ 49.5S / 1:  4.879000  5.102500
+SET MODE/last ignore
+ 
+! test VTREE with a complex auxiliary variable definitions
+VTREE
+   in default dataset levitus_3d_subset
+   RVTEMPZAX = RVTEMP[GZ(RVDEPTH)=ZAX,Z=100:500]
+     RVTEMP = RVTEMP0[GZ=TEMP at ASN]
+       RVDEPTH = RVDEPTH0[GZ=TEMP at ASN]
+         RVDEPTH0 = ZREVERSE(DEPTH)
+           DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+   DISORDERED_TEMPZ2 = TEMP[GZ(DISORDERED_DEPTH2)=ZAX]
+       DISORDERED_DEPTH2 = IF K EQ 3 THEN DEPTH[K=5] ELSE DEPTH
+         DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+   DISORDERED_TEMPZ1 = TEMP[GZ(DISORDERED_DEPTH1)=ZAX]
+       DISORDERED_DEPTH1 = IF K EQ 3 THEN DEPTH[K=1] ELSE DEPTH
+         DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+   TEMPZ = TEMP[GZ(DEPTH)=ZPTS]
+       regrid to ZPTS = Z[Z=100:500:100]
+       DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+   TEMPZAX = TEMP[GZ(DEPTH)=ZAX]
+       DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+   TEMPZ_1PT = TEMP[GZ(DEPTH)=6]
+   TEMPZ_ALT = TEMP[GZ(DEPTH)=2:10:2]
+   A = TEMP
+ 
+! 6-dimensional regridding
+ 
+! 6d temperature and 3d depth field (depth unchanging in time, ensemble and forecast)
+LET temp6d = temp/100 + 1*L[L=1:2] + 10*_M[M=1:2] + 100*_N[N=1:2]
+!list/k=7:12/PREC=7 temp6d
+LET tempz6d = temp6d[gz(depth)=zpts]
+!LIST/PREC=7 tempz6d
+! compare pre- and post- regrid at a fixed depth
+stat/z=100 temp6d-tempz6d
+ 
+             TEMP6D-TEMPZ6D
+             LONGITUDE: 120E to 122E
+             LATITUDE: 50S to 48S
+             DEPTH (m): 100
+             T: 0.5 to 2.5
+             E: 0.5 to 2.5
+             F: 0.5 to 2.5
+             DATA SET: ./levitus_3d_subset.nc
+ 
+ Total # of data points: 32 (2*2*1*2*2*2)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+ Standard deviation: 0
+stat/z=400 temp6d-tempz6d
+ 
+             TEMP6D-TEMPZ6D
+             LONGITUDE: 120E to 122E
+             LATITUDE: 50S to 48S
+             DEPTH (m): 400
+             T: 0.5 to 2.5
+             E: 0.5 to 2.5
+             F: 0.5 to 2.5
+             DATA SET: ./levitus_3d_subset.nc
+ 
+ Total # of data points: 32 (2*2*1*2*2*2)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+ Standard deviation: 0
+ 
+! 6d temperature and 6d depth field
+! hold temperature constant over time, have depths change
+! note that for N=2 depths of less than 100 are no longer in the data hence missing values at Z=100
+LET temp6d_const = temp + 0*L[L=1:2] + 0*_M[M=1:2] + 0*_N[N=1:2]     ! constant in T,E,F
+LET depth6d = depth + 10*(L[L=1:2]-1) + 50*(_M[M=1:2]-1) + 100*(_N[N=1:2]-1)
+LET tempz6d_tDep = temp6d_const[gz(depth6d)=zpts]
+LIST/PREC=7 tempz6d_tDep
+             VARIABLE : TEMP6D_CONST[GZ(DEPTH6D)=ZPTS]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 by 2 by 2 by 2 points (LONGITUDE-LATITUDE-Z-T-E-F)
+               120.5E    121.5E  
+                 1         2
+ ---- N:1 F:   1
+ ---- M:1 E:   1
+ ---- L:1 T:   1
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.334999  7.436001
+ 49.5S / 1:  6.462000  6.572001
+ ---- K:2 Z:   200
+ 48.5S / 2:  6.961000  7.073000
+ 49.5S / 1:  6.025999  6.150000
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.457001  6.636999
+ 49.5S / 1:  5.445000  5.665000
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.181999  6.377001
+ 49.5S / 1:  5.187000  5.410000
+ ---- K:5 Z:   500
+ 48.5S / 2:  5.835500  6.045001
+ 49.5S / 1:  4.879000  5.102500
+ ---- L:2 T:   2
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.429800  7.528001
+ 49.5S / 1:  6.577600  6.682400
+ ---- K:2 Z:   200
+ 48.5S / 2:  7.043200  7.151200
+ 49.5S / 1:  6.113999  6.234800
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.507401  6.680599
+ 49.5S / 1:  5.503100  5.713500
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.209499  6.403001
+ 49.5S / 1:  5.212800  5.435500
+ ---- K:5 Z:   500
+ 48.5S / 2:  5.870150  6.078201
+ 49.5S / 1:  4.909800  5.133250
+ ---- M:2 E:   2
+ ---- L:1 T:   1
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.410999  7.584000
+ 49.5S / 1:  6.624001  6.785000
+ ---- K:2 Z:   200
+ 48.5S / 2:  7.372000  7.464001
+ 49.5S / 1:  6.466000  6.573999
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.709001  6.855000
+ 49.5S / 1:  5.735499  5.907500
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.319500  6.507000
+ 49.5S / 1:  5.316000  5.537500
+ ---- K:5 Z:   500
+ 48.5S / 2:  6.008749  6.211001
+ 49.5S / 1:  5.033000  5.256250
+ ---- L:2 T:   2
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.502500  7.686500
+ 49.5S / 1:  6.682500  6.854000
+ ---- K:2 Z:   200
+ 48.5S / 2:  7.364600  7.458401
+ 49.5S / 1:  6.465200  6.573600
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.759401  6.898600
+ 49.5S / 1:  5.793599  5.956000
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.347000  6.533000
+ 49.5S / 1:  5.341800  5.563000
+ ---- K:5 Z:   500
+ 48.5S / 2:  6.043399  6.244201
+ 49.5S / 1:  5.063800  5.287000
+ ---- N:2 F:   2
+ ---- M:1 E:   1
+ ---- L:1 T:   1
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.725000  7.917999
+ 49.5S / 1:  6.827000  7.007000
+ ---- K:2 Z:   200
+ 48.5S / 2:  7.334999  7.436001
+ 49.5S / 1:  6.462000  6.572001
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.961000  7.073000
+ 49.5S / 1:  6.025999  6.150000
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.457001  6.636999
+ 49.5S / 1:  5.445000  5.665000
+ ---- K:5 Z:   500
+ 48.5S / 2:  6.181999  6.377001
+ 49.5S / 1:  5.187000  5.410000
+ ---- L:2 T:   2
+ ---- K:1 Z:   100
+ 48.5S / 2:      ....      ....
+ 49.5S / 1:      ....      ....
+ ---- K:2 Z:   200
+ 48.5S / 2:  7.429800  7.528001
+ 49.5S / 1:  6.577600  6.682400
+ ---- K:3 Z:   300
+ 48.5S / 2:  7.043200  7.151200
+ 49.5S / 1:  6.113999  6.234800
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.507401  6.680599
+ 49.5S / 1:  5.503100  5.713500
+ ---- K:5 Z:   500
+ 48.5S / 2:  6.209499  6.403001
+ 49.5S / 1:  5.212800  5.435500
+ ---- M:2 E:   2
+ ---- L:1 T:   1
+ ---- K:1 Z:   100
+ 48.5S / 2:      ....      ....
+ 49.5S / 1:      ....      ....
+ ---- K:2 Z:   200
+ 48.5S / 2:  7.410999  7.584000
+ 49.5S / 1:  6.624001  6.785000
+ ---- K:3 Z:   300
+ 48.5S / 2:  7.372000  7.464001
+ 49.5S / 1:  6.466000  6.573999
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.709001  6.855000
+ 49.5S / 1:  5.735499  5.907500
+ ---- K:5 Z:   500
+ 48.5S / 2:  6.319500  6.507000
+ 49.5S / 1:  5.316000  5.537500
+ ---- L:2 T:   2
+ ---- K:1 Z:   100
+ 48.5S / 2:      ....      ....
+ 49.5S / 1:      ....      ....
+ ---- K:2 Z:   200
+ 48.5S / 2:  7.502500  7.686500
+ 49.5S / 1:  6.682500  6.854000
+ ---- K:3 Z:   300
+ 48.5S / 2:  7.364600  7.458401
+ 49.5S / 1:  6.465200  6.573600
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.759401  6.898600
+ 49.5S / 1:  5.793599  5.956000
+ ---- K:5 Z:   500
+ 48.5S / 2:  6.347000  6.533000
+ 49.5S / 1:  5.341800  5.563000
+LIST/PREC=7/k=7:8 temp6d_const, depth6d  ! reference values at Z=100, 200, 300 for visual comparison
+             DATA SET: ./levitus_3d_subset.nc
+             LONGITUDE: 120E to 122E
+             LATITUDE: 50S to 48S
+             DEPTH (m): 87.5 to 175
+             T: 0.5 to 2.5
+             E: 0.5 to 2.5
+             F: 0.5 to 2.5
+ Column  1: TEMP6D_CONST is TEMP + 0*L[L=1:2] + 0*_M[M=1:2] + 0*_N[N=1:2]
+ Column  2: DEPTH6D is DEPTH + 10*(L[L=1:2]-1) + 50*(_M[M=1:2]-1) + 100*(_N[N=1:2]-1)
+         TEMP6D_CONS   DEPTH6D
+ ---- N:1 F:   1
+ ---- M:1 E:   1
+ ---- L:1 T:   1
+ ---- K:7 Z:   100
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.462000  100.0000
+121.5E / 2:  6.572001  100.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.334999  100.0000
+121.5E / 2:  7.436001  100.0000
+ ---- K:8 Z:   150
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.466000  150.0000
+121.5E / 2:  6.573999  150.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.372000  150.0000
+121.5E / 2:  7.464001  150.0000
+ ---- L:2 T:   2
+ ---- K:7 Z:   100
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.462000  110.0000
+121.5E / 2:  6.572001  110.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.334999  110.0000
+121.5E / 2:  7.436001  110.0000
+ ---- K:8 Z:   150
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.466000  160.0000
+121.5E / 2:  6.573999  160.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.372000  160.0000
+121.5E / 2:  7.464001  160.0000
+ ---- M:2 E:   2
+ ---- L:1 T:   1
+ ---- K:7 Z:   100
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.462000  150.0000
+121.5E / 2:  6.572001  150.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.334999  150.0000
+121.5E / 2:  7.436001  150.0000
+ ---- K:8 Z:   150
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.466000  200.0000
+121.5E / 2:  6.573999  200.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.372000  200.0000
+121.5E / 2:  7.464001  200.0000
+ ---- L:2 T:   2
+ ---- K:7 Z:   100
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.462000  160.0000
+121.5E / 2:  6.572001  160.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.334999  160.0000
+121.5E / 2:  7.436001  160.0000
+ ---- K:8 Z:   150
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.466000  210.0000
+121.5E / 2:  6.573999  210.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.372000  210.0000
+121.5E / 2:  7.464001  210.0000
+ ---- N:2 F:   2
+ ---- M:1 E:   1
+ ---- L:1 T:   1
+ ---- K:7 Z:   100
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.462000  200.0000
+121.5E / 2:  6.572001  200.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.334999  200.0000
+121.5E / 2:  7.436001  200.0000
+ ---- K:8 Z:   150
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.466000  250.0000
+121.5E / 2:  6.573999  250.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.372000  250.0000
+121.5E / 2:  7.464001  250.0000
+ ---- L:2 T:   2
+ ---- K:7 Z:   100
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.462000  210.0000
+121.5E / 2:  6.572001  210.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.334999  210.0000
+121.5E / 2:  7.436001  210.0000
+ ---- K:8 Z:   150
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.466000  260.0000
+121.5E / 2:  6.573999  260.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.372000  260.0000
+121.5E / 2:  7.464001  260.0000
+ ---- M:2 E:   2
+ ---- L:1 T:   1
+ ---- K:7 Z:   100
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.462000  250.0000
+121.5E / 2:  6.572001  250.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.334999  250.0000
+121.5E / 2:  7.436001  250.0000
+ ---- K:8 Z:   150
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.466000  300.0000
+121.5E / 2:  6.573999  300.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.372000  300.0000
+121.5E / 2:  7.464001  300.0000
+ ---- L:2 T:   2
+ ---- K:7 Z:   100
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.462000  260.0000
+121.5E / 2:  6.572001  260.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.334999  260.0000
+121.5E / 2:  7.436001  260.0000
+ ---- K:8 Z:   150
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.466000  310.0000
+121.5E / 2:  6.573999  310.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.372000  310.0000
+121.5E / 2:  7.464001  310.0000
+! ... some spot checks
+LIST/PREC=7/l=1/m=1/n=1 tempz6d_tDep[Z=100] - temp6d_const[k=7]
+             VARIABLE : TEMPZ6D_TDEP[Z=100] - TEMP6D_CONST[K=7]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z        : 100
+             T        : 1
+             E        : 1
+             F        : 1
+               120.5E     121.5E   
+                 1          2
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+LIST/PREC=7/l=1/m=2/n=1 tempz6d_tDep[Z=200] - temp6d_const[k=8]
+             VARIABLE : TEMPZ6D_TDEP[Z=200] - TEMP6D_CONST[K=8]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z        : 200
+             T        : 1
+             E        : 2
+             F        : 1
+               120.5E     121.5E   
+                 1          2
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+LIST/PREC=7/l=1/m=2/n=2 tempz6d_tDep[Z=300] - temp6d_const[k=8]
+             VARIABLE : TEMPZ6D_TDEP[Z=300] - TEMP6D_CONST[K=8]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z        : 300
+             T        : 1
+             E        : 2
+             F        : 2
+               120.5E     121.5E   
+                 1          2
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ 
+! ** deliberate error **
+! 6d temperature and 3d depth field (depth unchanging in time, ensemble and forecast)
+! Ferret does not permit auxiliary variable to have an axis not found on the source variable
+! (to avoid having to consider auxiliary variables during grid-getting ... possible to do)
+SET MODE IGNORE
+LET tempz6d_unmatch = temp[gz(depth6d)=zpts]
+LIST/PREC=7 tempz6d_unmatch
+SET MODE/LAST IGNORE
+ 
+! ********************************
+! test the @plave regridding -- ave defined from area under piecewise curve
+ 
+! first compare to our simplest of linear interpolation regrids, tempz
+! note that results will differ due to non-linearity
+! at Z=500 on the output they become identical because the Z=500 grid box
+! extends 450:550 with source points at Z=400 and Z=600 -- pure linear
+! LET tempz = temp[gz(depth)=zpts]
+LET tempzave = temp[gz(depth)=zpts at plave]
+LIST tempzave - tempz
+             VARIABLE : TEMPZAVE - TEMPZ
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+                120.5E      121.5E   
+                  1           2
+ ---- K:1 Z:   100
+ 48.5S / 2:  0.07800055  0.08299971
+ 49.5S / 1:  0.09349990  0.09612441
+ ---- K:2 Z:   200
+ 48.5S / 2:  0.03974986  0.04325008
+ 49.5S / 1:  0.03737521  0.04537499
+ ---- K:3 Z:   300
+ 48.5S / 2:  0.02862477  0.02200031
+ 49.5S / 1:  0.04037499  0.02874994
+ ---- K:4 Z:   400
+ 48.5S / 2: -0.00893724 -0.00900024
+ 49.5S / 1: -0.00625008 -0.00656247
+ ---- K:5 Z:   500
+ 48.5S / 2:  0.00000000  0.00000000
+ 49.5S / 1:  0.00000000  0.00000000
+ 
+! list a little.  Note the regridding transform label
+LIST/PREC=7 temp[gz(depth)=zpts at plave,k=1]
+             VARIABLE : TEMPERATURE (DEG C)
+                        regrid: 100 delta on Z at PLAVE using DEPTH field
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z        : 50 to 150
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2:  7.413000  7.519001
+ 49.5S / 1:  6.555500  6.668125
+ 
+! Levitus has points at 50, 75, 100, 150, 200
+! define target axis with edges at 50:75 (k=1),  75:100 (k=2)
+!                                 100:125(k=3), 125:150 (k=4), 150:175(k=5)
+define axis/edges/z=50:175:25/units=m zpt2     ! point at 125 is mid-way
+ 
+! raw source data -- artifically designed for easy mental calcs
+LET myvals = temp*0+100*(i-100)+10*(j-40)+k
+list/PREC=7 myvals[z=50:300]
+             VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+K
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 6 points (LONGITUDE-LATITUDE-DEPTH (m))
+               120.5E    121.5E  
+                 1         2
+ ---- K:5 Z:   50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:6 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:7 Z:   100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:8 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:9 Z:   200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+ ---- K:10 Z:   300
+ 48.5S / 2: -10270.00 -10170.00
+ 49.5S / 1: -10280.00 -10180.00
+ 
+! linear interpolation regridding
+LET mzlin2 = myvals[gz(depth)=zpt2]
+LIST/PREC=7 mzlin2
+             VARIABLE : MYVALS[GZ(DEPTH)=ZPT2]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   62.5
+ 48.5S / 2: -10274.50 -10174.50
+ 49.5S / 1: -10284.50 -10184.50
+ ---- K:2 Z:   87.5
+ 48.5S / 2: -10273.50 -10173.50
+ 49.5S / 1: -10283.50 -10183.50
+ ---- K:3 Z:   112.5
+ 48.5S / 2: -10272.75 -10172.75
+ 49.5S / 1: -10282.75 -10182.75
+ ---- K:4 Z:   137.5
+ 48.5S / 2: -10272.25 -10172.25
+ 49.5S / 1: -10282.25 -10182.25
+ ---- K:5 Z:   162.5
+ 48.5S / 2: -10271.75 -10171.75
+ 49.5S / 1: -10281.75 -10181.75
+ 
+! average-regridding
+LET mzave2 = myvals[gz(depth)=zpt2 at plave]
+ 
+! cases:
+! 1) both edges lie on source points
+LIST/PREC=7 mzave2[k=2]   ! vals at 75, 100 ==> 75:100
+             VARIABLE : MYVALS[GZ(DEPTH)=ZPT2 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z (M)    : 87.5
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10273.50 -10173.50
+ 49.5S / 1: -10283.50 -10183.50
+ 
+! 2) lower edge only lies on source point
+LIST/PREC=7 mzave2[k=3]   ! vals at 100, 150 ==> 100:125
+             VARIABLE : MYVALS[GZ(DEPTH)=ZPT2 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z (M)    : 112.5
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10272.75 -10172.75
+ 49.5S / 1: -10282.75 -10182.75
+ 
+! 3) upper edge only lies on source point
+LIST/PREC=7 mzave2[k=4]   ! vals at 100, 150 ==> 125:150
+             VARIABLE : MYVALS[GZ(DEPTH)=ZPT2 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z (M)    : 137.5
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10272.25 -10172.25
+ 49.5S / 1: -10282.25 -10182.25
+ 
+! 4) full range
+! myvals2 is linear in k, so @plave and @lin get identical results
+LIST/PREC=7 mzave2
+             VARIABLE : MYVALS[GZ(DEPTH)=ZPT2 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   62.5
+ 48.5S / 2: -10274.50 -10174.50
+ 49.5S / 1: -10284.50 -10184.50
+ ---- K:2 Z:   87.5
+ 48.5S / 2: -10273.50 -10173.50
+ 49.5S / 1: -10283.50 -10183.50
+ ---- K:3 Z:   112.5
+ 48.5S / 2: -10272.75 -10172.75
+ 49.5S / 1: -10282.75 -10182.75
+ ---- K:4 Z:   137.5
+ 48.5S / 2: -10272.25 -10172.25
+ 49.5S / 1: -10282.25 -10182.25
+ ---- K:5 Z:   162.5
+ 48.5S / 2: -10271.75 -10171.75
+ 49.5S / 1: -10281.75 -10181.75
+LIST/PREC=7 mzave2 - mzlin2
+             VARIABLE : MZAVE2 - MZLIN2
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E     121.5E   
+                 1          2
+ ---- K:1 Z:   62.5
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ ---- K:2 Z:   87.5
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ ---- K:3 Z:   112.5
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ ---- K:4 Z:   137.5
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ ---- K:5 Z:   162.5
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ 
+! 5) divide a single source range into multiple destination cells
+! a range of 50 divided into 5 cells will have means of x.1,x.3,x.5, x.7, x.9
+define axis/edges/z=150:200:10/units=m zpt3
+LET mzave3 = myvals[gz(depth)=zpt3 at plave]
+LIST/PREC=7 mzave3
+             VARIABLE : MYVALS[GZ(DEPTH)=ZPT3 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   155
+ 48.5S / 2: -10271.90 -10171.90
+ 49.5S / 1: -10281.90 -10181.90
+ ---- K:2 Z:   165
+ 48.5S / 2: -10271.70 -10171.70
+ 49.5S / 1: -10281.70 -10181.70
+ ---- K:3 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:4 Z:   185
+ 48.5S / 2: -10271.30 -10171.30
+ 49.5S / 1: -10281.30 -10181.30
+ ---- K:5 Z:   195
+ 48.5S / 2: -10271.10 -10171.10
+ 49.5S / 1: -10281.10 -10181.10
+ 
+! 6) derive a single destination cell from many source points
+! by manual calculation the correct answers will be n.333333
+define axis/edges/z=50:200:150/units=m zpt4
+LET mzave4 = myvals[gz(depth)=zpt4 at plave]
+LIST/PREC=7 mzave4
+             VARIABLE : MYVALS[GZ(DEPTH)=ZPT4 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z (M)    : 125
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10272.67 -10172.67
+ 49.5S / 1: -10282.67 -10182.67
+ 
+! 7) derive a single destination cell from many source points
+! by manual calculation the correct answers will be n.8125
+define axis/edges/z=50:250:200/units=m zpt5
+LET mzave5 = myvals[gz(depth)=zpt5 at plave]
+LIST/PREC=7 mzave5
+             VARIABLE : MYVALS[GZ(DEPTH)=ZPT5 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z (M)    : 150
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10272.19 -10172.19
+ 49.5S / 1: -10282.19 -10182.19
+ 
+! 8) test the short-hand notation var[gz(depth)=0:100 at ave] as an implicit
+! aux var regrid via piecewice linear averaging
+! To confirm correct results we create a piecewize linear function that
+! has constant slope.  Averaging such a function over a symmetric region
+! around a point on the source data should return the value at the point
+LET myvals_z = TEMP*0+100*(I-100)+10*(J-40)+Z
+list/PREC=7 myvals_z[z=200]
+             VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             DEPTH (m): 200
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10080.00  -9980.00
+ 49.5S / 1: -10090.00  -9990.00
+list/PREC=7 myvals_z[gz(depth)=190:210 at ave]
+             VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+                        regrid: on Z at PLAVE using DEPTH field
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z        : 190 to 210
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10080.00  -9980.00
+ 49.5S / 1: -10090.00  -9990.00
+list/PREC=7 myvals_z[gz(depth)=150:250 at ave]
+             VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+                        regrid: on Z at PLAVE using DEPTH field
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z        : 150 to 250
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10080.00  -9980.00
+ 49.5S / 1: -10090.00  -9990.00
+ 
+! 8a) do same regrid using the shorhand semi-automated notation
+SET VAR/LAYERZ=depth myvals_z
+list/PREC=7 myvals_z[z=190:210 at ave,layerz]  ! lo:hi at ave notation WILL BE CHANGED
+             VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             DEPTH (m): 190 to 210 (pc wise lin avgd using DEPTH)
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10080.00  -9980.00
+ 49.5S / 1: -10090.00  -9990.00
+list/PREC=7 myvals_z[z=150:250 at ave,layerz]  ! WILL BE CHANGED
+             VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             DEPTH (m): 150 to 250 (pc wise lin avgd using DEPTH)
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10080.00  -9980.00
+ 49.5S / 1: -10090.00  -9990.00
+ 
+! test missing values in the depth array
+! cases:
+! 1) missing values at start of aux array
+define axis/z=25:200:25/units=m zpt6
+LET depmis = IF (I NE 102 OR k GT 6) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+ 
+! 2) missing values at end of aux array
+LET depmis = IF (I NE 102 OR k LT 9) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+ 
+! 3) missing values in midst of aux array -- stops processing beyond
+LET depmis = IF (I NE 102 OR k EQ 7 OR K EQ 8) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+ 
+! 4) singleton non-missing values in a line of the aux array
+LET depmis = IF (I NE 102 OR K EQ 8) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+ 
+! 5) there are only missing values in a line of the aux array
+LET depmis = IF (I NE 102) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+ 
+! 6) two separated singletons -- only the first should be found
+LET depmis = IF (I NE 102 OR K EQ 6 OR K EQ 8) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+list depmis[z=25:200]      ! to illustrate why the result is as it is
+             VARIABLE : IF (I NE 102 OR K EQ 6 OR K EQ 8) THEN DEPTH
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 6 points (LONGITUDE-LATITUDE-DEPTH (m))
+               120.5E    121.5E  
+                 1         2
+ ---- K:4 Z:   30
+ 48.5S / 2:   30.0000   30.0000
+ 49.5S / 1:   30.0000   30.0000
+ ---- K:5 Z:   50
+ 48.5S / 2:   50.0000   50.0000
+ 49.5S / 1:   50.0000   50.0000
+ ---- K:6 Z:   75
+ 48.5S / 2:   75.0000   75.0000
+ 49.5S / 1:   75.0000   75.0000
+ ---- K:7 Z:   100
+ 48.5S / 2:  100.0000  100.0000
+ 49.5S / 1:  100.0000  100.0000
+ ---- K:8 Z:   150
+ 48.5S / 2:  150.0000  150.0000
+ 49.5S / 1:  150.0000  150.0000
+ ---- K:9 Z:   200
+ 48.5S / 2:  200.0000  200.0000
+ 49.5S / 1:  200.0000  200.0000
+ 
+! ********
+! reversed-auxiliary variable used in regridding
+! (see definitions made earlier)
+! Note that the regridded result only matches the original data in regions
+! where the underlying piecewise function remains strictly linear with
+! unchanging slope/intercept.  Since the Z=500 point has cell limits 450:550
+! and the underlying Levitus Z points (used in the definition of "depth") are
+! at 400 and 600, we get the identical result from @PLAVE and @LIN
+LET rvtempzaxave = rvtemp[gz(rvdepth)=zax at plave,z=100:500]
+LIST/PREC=7 rvtempzaxave - tempz
+             VARIABLE : RVTEMPZAXAVE - TEMPZ
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+                120.5E      121.5E   
+                  1           2
+ ---- K:1 Z:   100
+ 48.5S / 2:  0.07800055  0.08299971
+ 49.5S / 1:  0.09349990  0.09612441
+ ---- K:2 Z:   200
+ 48.5S / 2:  0.03974986  0.04325008
+ 49.5S / 1:  0.03737521  0.04537499
+ ---- K:3 Z:   300
+ 48.5S / 2:  0.02862477  0.02200031
+ 49.5S / 1:  0.04037499  0.02874994
+ ---- K:4 Z:   400
+ 48.5S / 2: -0.00893724 -0.00900024
+ 49.5S / 1: -0.00625008 -0.00656247
+ ---- K:5 Z:   500
+ 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
+ normal    T
+ normal    E
+ normal    F
+ 
+       K     Z                   ZBOX      ZBOXLO
+       1>  100                   100        50
+       2>  200                   100        150
+       3>  300                   100        250
+       4>  400                   100        350
+       5>  500                   100        450
+ 
+! 5/15 -- added tests for non-monotonic auxiliary variable
+!test_non_monotonic_aux_z.jnl
+ 
+cancel region
+define axis/x=161e:165e:1 xax
+define axis/z=100:600:100 zax
+ 
+let temp = 0.0001*Z[gz=zax]^2 + 0*x[gx=xax]
+list temp
+             VARIABLE : 0.0001*Z[GZ=ZAX]^2 + 0*X[GX=XAX]
+             SUBSET   : 5 by 6 points (LONGITUDE-Z)
+               161E      162E      163E      164E      165E    
+                 1         2         3         4         5
+ 100   / 1:   1.00000   1.00000   1.00000   1.00000   1.00000
+ 200   / 2:   4.00000   4.00000   4.00000   4.00000   4.00000
+ 300   / 3:   9.00000   9.00000   9.00000   9.00000   9.00000
+ 400   / 4:  16.00000  16.00000  16.00000  16.00000  16.00000
+ 500   / 5:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 600   / 6:  36.00000  36.00000  36.00000  36.00000  36.00000
+ 
+! disordered points at beginning, middle and end, missing at beginning
+let density0 = 0*i[gx=xax]*k[gz=zax] + z/10
+let density1 = if i eq 2 and k eq 4 then 20  else density0
+let density2 = if i eq 3 and k eq 1 then 20  else density1
+let density3 = if i eq 3 and k eq 2 then 10  else density2
+let density4 = if i eq 4 and k eq 6 then 30  else density3
+let density  = if i eq 5 and k le 2 then 1/0 else density4  ! missing at k=1:3
+list density
+             VARIABLE : IF I EQ 5 AND K LE 2 THEN 1/0 ELSE DENSITY4
+             SUBSET   : 5 by 6 points (LONGITUDE-Z)
+               161E      162E      163E      164E      165E    
+                 1         2         3         4         5
+ 100   / 1:  10.00000  10.00000  20.00000  10.00000      ....
+ 200   / 2:  20.00000  20.00000  10.00000  20.00000      ....
+ 300   / 3:  30.00000  30.00000  30.00000  30.00000  30.00000
+ 400   / 4:  40.00000  20.00000  40.00000  40.00000  40.00000
+ 500   / 5:  50.00000  50.00000  50.00000  50.00000  50.00000
+ 600   / 6:  60.00000  60.00000  60.00000  30.00000  60.00000
+ 
+! Z=200-300 on the density axis are double valued at I=2
+list temp[gz(density)=5:65:2.5]
+             VARIABLE : 0.0001*Z[GZ=ZAX]^2 + 0*X[GX=XAX]
+                        regrid: 2.5 delta on Z at LIN using DENSITY field
+             SUBSET   : 5 by 25 points (LONGITUDE-Z)
+               161E      162E      163E      164E      165E    
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 7.5  /  2:      ....      ....      ....      ....      ....
+ 10   /  3:   1.00000   1.00000   4.00000   1.00000      ....
+ 12.5 /  4:   1.75000   1.75000      ....   1.75000      ....
+ 15   /  5:   2.50000   2.50000      ....   2.50000      ....
+ 17.5 /  6:   3.25000   3.25000      ....   3.25000      ....
+ 20   /  7:   4.00000      ....      ....   4.00000      ....
+ 22.5 /  8:   5.25000      ....   7.12500   5.25000      ....
+ 25   /  9:   6.50000      ....   7.75000   6.50000      ....
+ 27.5 / 10:   7.75000      ....   8.37500   7.75000      ....
+ 30   / 11:   9.00000      ....   9.00000      ....   9.00000
+ 32.5 / 12:  10.75000  19.75000  10.75000      ....  10.75000
+ 35   / 13:  12.50000  20.50000  12.50000      ....  12.50000
+ 37.5 / 14:  14.25000  21.25000  14.25000      ....  14.25000
+ 40   / 15:  16.00000  22.00000  16.00000      ....  16.00000
+ 42.5 / 16:  18.25000  22.75000  18.25000      ....  18.25000
+ 45   / 17:  20.50000  23.50000  20.50000      ....  20.50000
+ 47.5 / 18:  22.75000  24.25000  22.75000      ....  22.75000
+ 50   / 19:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 52.5 / 20:  27.75000  27.75000  27.75000      ....  27.75000
+ 55   / 21:  30.50000  30.50000  30.50000      ....  30.50000
+ 57.5 / 22:  33.25000  33.25000  33.25000      ....  33.25000
+ 60   / 23:  36.00000  36.00000  36.00000      ....  36.00000
+ 62.5 / 24:      ....      ....      ....      ....      ....
+ 65   / 25:      ....      ....      ....      ....      ....
+ 
+ 
+!************************************
+! reverse-ordering of same field
+let btemp = 0.0001*(700-Z[gz=zax])^2  + 0*x[gx=xax]
+list btemp
+             VARIABLE : 0.0001*(700-Z[GZ=ZAX])^2  + 0*X[GX=XAX]
+             SUBSET   : 5 by 6 points (LONGITUDE-Z)
+               161E      162E      163E      164E      165E    
+                 1         2         3         4         5
+ 100   / 1:  36.00000  36.00000  36.00000  36.00000  36.00000
+ 200   / 2:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 300   / 3:  16.00000  16.00000  16.00000  16.00000  16.00000
+ 400   / 4:   9.00000   9.00000   9.00000   9.00000   9.00000
+ 500   / 5:   4.00000   4.00000   4.00000   4.00000   4.00000
+ 600   / 6:   1.00000   1.00000   1.00000   1.00000   1.00000
+ 
+let bdensity0 = 0*i[gx=xax]*k[gz=zax] + (700-z)/10
+let bdensity1 = if i eq 2 and (7-k) eq 4 then 20  else bdensity0
+let bdensity2 = if i eq 3 and (7-k) eq 1 then 20  else bdensity1
+let bdensity3 = if i eq 3 and (7-k) eq 2 then 10  else bdensity2
+let bdensity4 = if i eq 4 and (7-k) eq 6 then 30  else bdensity3
+let bdensity  = if i eq 5 and (7-k) le 2 then 1/0 else bdensity4 !missing k=1:3
+ 
+SAY "************ TBD: STILL NEED TO MAKE SURE UNITS ARE WORKING ********"
+************ TBD: STILL NEED TO MAKE SURE UNITS ARE WORKING ********
+SET VAR/units="kg/m^3" density
+ 
+list bdensity
+             VARIABLE : IF I EQ 5 AND (7-K) LE 2 THEN 1/0 ELSE BDENSITY4
+             SUBSET   : 5 by 6 points (LONGITUDE-Z)
+               161E      162E      163E      164E      165E    
+                 1         2         3         4         5
+ 100   / 1:  60.00000  60.00000  60.00000  30.00000  60.00000
+ 200   / 2:  50.00000  50.00000  50.00000  50.00000  50.00000
+ 300   / 3:  40.00000  20.00000  40.00000  40.00000  40.00000
+ 400   / 4:  30.00000  30.00000  30.00000  30.00000  30.00000
+ 500   / 5:  20.00000  20.00000  10.00000  20.00000      ....
+ 600   / 6:  10.00000  10.00000  20.00000  10.00000      ....
+ 
+list btemp[gz(bdensity)=5:65:2.5]
+             VARIABLE : 0.0001*(700-Z[GZ=ZAX])^2  + 0*X[GX=XAX]
+                        regrid: 2.5 delta on Z at LIN using BDENSITY field
+             SUBSET   : 5 by 25 points (LONGITUDE-Z)
+               161E      162E      163E      164E      165E    
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 7.5  /  2:      ....      ....      ....      ....      ....
+ 10   /  3:   1.00000   1.00000   4.00000   1.00000      ....
+ 12.5 /  4:   1.75000   1.75000      ....   1.75000      ....
+ 15   /  5:   2.50000   2.50000      ....   2.50000      ....
+ 17.5 /  6:   3.25000   3.25000      ....   3.25000      ....
+ 20   /  7:   4.00000      ....      ....   4.00000      ....
+ 22.5 /  8:   5.25000      ....   7.12500   5.25000      ....
+ 25   /  9:   6.50000      ....   7.75000   6.50000      ....
+ 27.5 / 10:   7.75000      ....   8.37500   7.75000      ....
+ 30   / 11:   9.00000      ....   9.00000      ....   9.00000
+ 32.5 / 12:  10.75000  19.75000  10.75000      ....  10.75000
+ 35   / 13:  12.50000  20.50000  12.50000      ....  12.50000
+ 37.5 / 14:  14.25000  21.25000  14.25000      ....  14.25000
+ 40   / 15:  16.00000  22.00000  16.00000      ....  16.00000
+ 42.5 / 16:  18.25000  22.75000  18.25000      ....  18.25000
+ 45   / 17:  20.50000  23.50000  20.50000      ....  20.50000
+ 47.5 / 18:  22.75000  24.25000  22.75000      ....  22.75000
+ 50   / 19:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 52.5 / 20:  27.75000  27.75000  27.75000      ....  27.75000
+ 55   / 21:  30.50000  30.50000  30.50000      ....  30.50000
+ 57.5 / 22:  33.25000  33.25000  33.25000      ....  33.25000
+ 60   / 23:  36.00000  36.00000  36.00000      ....  36.00000
+ 62.5 / 24:      ....      ....      ....      ....      ....
+ 65   / 25:      ....      ....      ....      ....      ....
+ 
+!************************************
+! similar analysis using @plave over wider cells
+! compare to reverse-ordered data
+list  temp[gz(density)=5:65:15 at plave]
+             VARIABLE : 0.0001*Z[GZ=ZAX]^2 + 0*X[GX=XAX]
+                        regrid: 15 kg/m^3 on Z at PLAVE using DENSITY field
+             SUBSET   : 5 by 5 points (LONGITUDE-Z (kg/m^3))
+              161E      162E      163E      164E      165E    
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+list btemp[gz(bdensity)=5:65:15 at plave]
+             VARIABLE : 0.0001*(700-Z[GZ=ZAX])^2  + 0*X[GX=XAX]
+                        regrid: 15 delta on Z at PLAVE using BDENSITY field
+             SUBSET   : 5 by 5 points (LONGITUDE-Z)
+              161E      162E      163E      164E      165E    
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 
+! 6/15
+! test 1D auxiliary axis regirdding on all axes
+ 
+! p for passive axis
+! a for active axis
+ 
+define axis/x=161:165:1 xp
+define axis/y=161:165:1 yp
+define axis/z=161:165:1 zp
+define axis/t=161:165:1 tp
+define axis/e=161:165:1 ep
+define axis/f=161:165:1 fp
+ 
+define axis/x=100:700:100 xa
+define axis/y=100:700:100 ya
+define axis/z=100:700:100 za
+define axis/t=100:700:100 ta
+define axis/e=100:700:100 ea
+define axis/f=100:700:100 fa
+ 
+ 
+GO bn_auxiliary.sub Z,X,F
+
+*****************************
+**********  Z,X,F ***********
+*****************************
+
+! show the underlying fields
+list/order=($pax1)($aax)($REG1) temp
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (X-Z)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:   1.00000   1.00000   1.00000   1.00000   1.00000
+ 200   / 2:   4.00000   4.00000   4.00000   4.00000   4.00000
+ 300   / 3:   9.00000   9.00000   9.00000   9.00000   9.00000
+ 400   / 4:  16.00000  16.00000  16.00000  16.00000  16.00000
+ 500   / 5:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 600   / 6:  36.00000  36.00000  36.00000  36.00000  36.00000
+ 700   / 7:  49.00000  49.00000  49.00000  49.00000  49.00000
+list/order=($pax1)($aax)($REG1) btemp
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (X-Z)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 200   / 2:  36.00000  36.00000  36.00000  36.00000  36.00000
+ 300   / 3:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 400   / 4:  16.00000  16.00000  16.00000  16.00000  16.00000
+ 500   / 5:   9.00000   9.00000   9.00000   9.00000   9.00000
+ 600   / 6:   4.00000   4.00000   4.00000   4.00000   4.00000
+ 700   / 7:   1.00000   1.00000   1.00000   1.00000   1.00000
+list/order=($pax1)($aax)($REG1) density
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 density
+             VARIABLE : IF (_I EQ 5 OR _N EQ 5) AND _K LE 2 THEN 1/0 ELSE DENSITY4
+             SUBSET   : 5 by 7 points (X-Z)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  10.00000  10.00000  20.00000  10.00000      ....
+ 200   / 2:  20.00000  20.00000  10.00000  20.00000      ....
+ 300   / 3:  30.00000  30.00000  30.00000  30.00000  30.00000
+ 400   / 4:  40.00000  20.00000  40.00000  40.00000  40.00000
+ 500   / 5:  50.00000  50.00000  50.00000  50.00000  50.00000
+ 600   / 6:  60.00000  60.00000  60.00000  30.00000  60.00000
+ 700   / 7:  70.00000  70.00000  70.00000  70.00000  70.00000
+list/order=($pax1)($aax)($REG1) bdensity
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 bdensity
+             VARIABLE : IF (_I EQ 5 OR _N EQ 5) AND (8-_K) LE 2 THEN 1/0 ELSE BDENSITY4
+             SUBSET   : 5 by 7 points (X-Z)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  70.00000  70.00000  70.00000  70.00000  70.00000
+ 200   / 2:  60.00000  60.00000  60.00000  30.00000  60.00000
+ 300   / 3:  50.00000  50.00000  50.00000  50.00000  50.00000
+ 400   / 4:  40.00000  20.00000  40.00000  40.00000  40.00000
+ 500   / 5:  30.00000  30.00000  30.00000  30.00000  30.00000
+ 600   / 6:  20.00000  20.00000  10.00000  20.00000      ....
+ 700   / 7:  10.00000  10.00000  20.00000  10.00000      ....
+ 
+! show the regridded fields
+! using interpolation
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:5]  ! passive ax 1
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp[gZ(density)=5:80:5]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on Z at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (X-Z)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:5]  ! passive ax 2
+ !-> list/order=FZ/i=1/j=1 /l=1/m=1 temp[gZ(density)=5:80:5]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on Z at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (F-Z)
+             X        : 161
+             Y        : 161
+             T        : 161
+             E        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:5]  ! backwards pasv ax 1
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=5:80:5]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on Z at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (X-Z)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:5]  ! backwards pasv ax 2
+ !-> list/order=FZ/i=1/j=1 /l=1/m=1 btemp[gZ(bdensity)=5:80:5]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on Z at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (F-Z)
+             X        : 161
+             Y        : 161
+             T        : 161
+             E        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp[gZ(density)=35]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on Z at LIN using DENSITY field
+             SUBSET   : 5 points (X)
+             Z        : 35
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          12.50000  20.50000  12.50000  12.50000  12.50000
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=35]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on Z at LIN using BDENSITY field
+             SUBSET   : 5 points (X)
+             Z        : 35
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          12.50000  20.50000  12.50000  12.50000  12.50000
+ 
+ 
+! using piecewise linear averaging
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:15 at plave]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp[gZ(density)=5:80:15 at plave]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on Z at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (X-Z)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:15 at plave]
+ !-> list/order=FZ/i=1/j=1 /l=1/m=1 temp[gZ(density)=5:80:15 at plave]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on Z at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (F-Z)
+             X        : 161
+             Y        : 161
+             T        : 161
+             E        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:15 at plave]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=5:80:15 at plave]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on Z at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (X-Z)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:15 at plave]
+ !-> list/order=FZ/i=1/j=1 /l=1/m=1 btemp[gZ(bdensity)=5:80:15 at plave]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on Z at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (F-Z)
+             X        : 161
+             Y        : 161
+             T        : 161
+             E        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35:55 at plave]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp[gZ(density)=35:55 at plave]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on Z at PLAVE using DENSITY field
+             SUBSET   : 5 points (X)
+             Z        : 35 to 55
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          20.75000  24.00000  20.75000      ....  20.75000
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35:55 at plave]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=35:55 at plave]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on Z at PLAVE using BDENSITY field
+             SUBSET   : 5 points (X)
+             Z        : 35 to 55
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          20.75000  24.00000  20.75000      ....  20.75000
+ 
+!*********************************************************************************
+!*********************************************************************************
+EXIT/SCRIPT
+GO bn_auxiliary.sub Z,Y,E
+
+*****************************
+**********  Z,Y,E ***********
+*****************************
+
+! show the underlying fields
+list/order=($pax1)($aax)($REG1) temp
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 temp
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (Y-Z)
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:   1.00000   1.00000   1.00000   1.00000   1.00000
+ 200   / 2:   4.00000   4.00000   4.00000   4.00000   4.00000
+ 300   / 3:   9.00000   9.00000   9.00000   9.00000   9.00000
+ 400   / 4:  16.00000  16.00000  16.00000  16.00000  16.00000
+ 500   / 5:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 600   / 6:  36.00000  36.00000  36.00000  36.00000  36.00000
+ 700   / 7:  49.00000  49.00000  49.00000  49.00000  49.00000
+list/order=($pax1)($aax)($REG1) btemp
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 btemp
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (Y-Z)
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 200   / 2:  36.00000  36.00000  36.00000  36.00000  36.00000
+ 300   / 3:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 400   / 4:  16.00000  16.00000  16.00000  16.00000  16.00000
+ 500   / 5:   9.00000   9.00000   9.00000   9.00000   9.00000
+ 600   / 6:   4.00000   4.00000   4.00000   4.00000   4.00000
+ 700   / 7:   1.00000   1.00000   1.00000   1.00000   1.00000
+list/order=($pax1)($aax)($REG1) density
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 density
+             VARIABLE : IF (_J EQ 5 OR _M EQ 5) AND _K LE 2 THEN 1/0 ELSE DENSITY4
+             SUBSET   : 5 by 7 points (Y-Z)
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  10.00000  10.00000  20.00000  10.00000      ....
+ 200   / 2:  20.00000  20.00000  10.00000  20.00000      ....
+ 300   / 3:  30.00000  30.00000  30.00000  30.00000  30.00000
+ 400   / 4:  40.00000  20.00000  40.00000  40.00000  40.00000
+ 500   / 5:  50.00000  50.00000  50.00000  50.00000  50.00000
+ 600   / 6:  60.00000  60.00000  60.00000  30.00000  60.00000
+ 700   / 7:  70.00000  70.00000  70.00000  70.00000  70.00000
+list/order=($pax1)($aax)($REG1) bdensity
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 bdensity
+             VARIABLE : IF (_J EQ 5 OR _M EQ 5) AND (8-_K) LE 2 THEN 1/0 ELSE BDENSITY4
+             SUBSET   : 5 by 7 points (Y-Z)
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  70.00000  70.00000  70.00000  70.00000  70.00000
+ 200   / 2:  60.00000  60.00000  60.00000  30.00000  60.00000
+ 300   / 3:  50.00000  50.00000  50.00000  50.00000  50.00000
+ 400   / 4:  40.00000  20.00000  40.00000  40.00000  40.00000
+ 500   / 5:  30.00000  30.00000  30.00000  30.00000  30.00000
+ 600   / 6:  20.00000  20.00000  10.00000  20.00000      ....
+ 700   / 7:  10.00000  10.00000  20.00000  10.00000      ....
+ 
+! show the regridded fields
+! using interpolation
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:5]  ! passive ax 1
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 temp[gZ(density)=5:80:5]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on Z at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (Y-Z)
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:5]  ! passive ax 2
+ !-> list/order=EZ/i=1/j=1 /l=1 /n=1 temp[gZ(density)=5:80:5]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on Z at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (E-Z)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:5]  ! backwards pasv ax 1
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 btemp[gZ(bdensity)=5:80:5]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on Z at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (Y-Z)
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:5]  ! backwards pasv ax 2
+ !-> list/order=EZ/i=1/j=1 /l=1 /n=1 btemp[gZ(bdensity)=5:80:5]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on Z at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (E-Z)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35]
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 temp[gZ(density)=35]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on Z at LIN using DENSITY field
+             SUBSET   : 5 points (Y)
+             Z        : 35
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          12.50000  20.50000  12.50000  12.50000  12.50000
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35]
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 btemp[gZ(bdensity)=35]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on Z at LIN using BDENSITY field
+             SUBSET   : 5 points (Y)
+             Z        : 35
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          12.50000  20.50000  12.50000  12.50000  12.50000
+ 
+ 
+! using piecewise linear averaging
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:15 at plave]
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 temp[gZ(density)=5:80:15 at plave]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on Z at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (Y-Z)
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:15 at plave]
+ !-> list/order=EZ/i=1/j=1 /l=1 /n=1 temp[gZ(density)=5:80:15 at plave]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on Z at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (E-Z)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:15 at plave]
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 btemp[gZ(bdensity)=5:80:15 at plave]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on Z at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (Y-Z)
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:15 at plave]
+ !-> list/order=EZ/i=1/j=1 /l=1 /n=1 btemp[gZ(bdensity)=5:80:15 at plave]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on Z at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (E-Z)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35:55 at plave]
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 temp[gZ(density)=35:55 at plave]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on Z at PLAVE using DENSITY field
+             SUBSET   : 5 points (Y)
+             Z        : 35 to 55
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          20.75000  24.00000  20.75000      ....  20.75000
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35:55 at plave]
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 btemp[gZ(bdensity)=35:55 at plave]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on Z at PLAVE using BDENSITY field
+             SUBSET   : 5 points (Y)
+             Z        : 35 to 55
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          20.75000  24.00000  20.75000      ....  20.75000
+ 
+!*********************************************************************************
+!*********************************************************************************
+EXIT/SCRIPT
+CANC MODE VERIFY
+
+*****************************
+**********  X,Z,F ***********
+*****************************
+
+             VARIABLE : 0.0001*     _X[GX=XA] ^2 +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (Z-X)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:   1.00000   1.00000   1.00000   1.00000   1.00000
+ 200   / 2:   4.00000   4.00000   4.00000   4.00000   4.00000
+ 300   / 3:   9.00000   9.00000   9.00000   9.00000   9.00000
+ 400   / 4:  16.00000  16.00000  16.00000  16.00000  16.00000
+ 500   / 5:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 600   / 6:  36.00000  36.00000  36.00000  36.00000  36.00000
+ 700   / 7:  49.00000  49.00000  49.00000  49.00000  49.00000
+             VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (Z-X)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 200   / 2:  36.00000  36.00000  36.00000  36.00000  36.00000
+ 300   / 3:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 400   / 4:  16.00000  16.00000  16.00000  16.00000  16.00000
+ 500   / 5:   9.00000   9.00000   9.00000   9.00000   9.00000
+ 600   / 6:   4.00000   4.00000   4.00000   4.00000   4.00000
+ 700   / 7:   1.00000   1.00000   1.00000   1.00000   1.00000
+             VARIABLE : IF (_K EQ 5 OR _N EQ 5) AND _I LE 2 THEN 1/0 ELSE DENSITY4
+             SUBSET   : 5 by 7 points (Z-X)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  10.00000  10.00000  20.00000  10.00000      ....
+ 200   / 2:  20.00000  20.00000  10.00000  20.00000      ....
+ 300   / 3:  30.00000  30.00000  30.00000  30.00000  30.00000
+ 400   / 4:  40.00000  20.00000  40.00000  40.00000  40.00000
+ 500   / 5:  50.00000  50.00000  50.00000  50.00000  50.00000
+ 600   / 6:  60.00000  60.00000  60.00000  30.00000  60.00000
+ 700   / 7:  70.00000  70.00000  70.00000  70.00000  70.00000
+             VARIABLE : IF (_K EQ 5 OR _N EQ 5) AND (8-_I) LE 2 THEN 1/0 ELSE BDENSITY4
+             SUBSET   : 5 by 7 points (Z-X)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  70.00000  70.00000  70.00000  70.00000  70.00000
+ 200   / 2:  60.00000  60.00000  60.00000  30.00000  60.00000
+ 300   / 3:  50.00000  50.00000  50.00000  50.00000  50.00000
+ 400   / 4:  40.00000  20.00000  40.00000  40.00000  40.00000
+ 500   / 5:  30.00000  30.00000  30.00000  30.00000  30.00000
+ 600   / 6:  20.00000  20.00000  10.00000  20.00000      ....
+ 700   / 7:  10.00000  10.00000  20.00000  10.00000      ....
+             VARIABLE : 0.0001*     _X[GX=XA] ^2 +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on X at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (Z-X)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0.0001*     _X[GX=XA] ^2 +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on X at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (F-X)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on X at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (Z-X)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on X at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (F-X)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0.0001*     _X[GX=XA] ^2 +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on X at LIN using DENSITY field
+             SUBSET   : 5 points (Z)
+             X        : 35
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          12.50000  20.50000  12.50000  12.50000  12.50000
+             VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on X at LIN using BDENSITY field
+             SUBSET   : 5 points (Z)
+             X        : 35
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          12.50000  20.50000  12.50000  12.50000  12.50000
+             VARIABLE : 0.0001*     _X[GX=XA] ^2 +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on X at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (Z-X)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0.0001*     _X[GX=XA] ^2 +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on X at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (F-X)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on X at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (Z-X)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on X at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (F-X)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0.0001*     _X[GX=XA] ^2 +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on X at PLAVE using DENSITY field
+             SUBSET   : 5 points (Z)
+             X        : 35 to 55
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          20.75000  24.00000  20.75000      ....  20.75000
+             VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on X at PLAVE using BDENSITY field
+             SUBSET   : 5 points (Z)
+             X        : 35 to 55
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          20.75000  24.00000  20.75000      ....  20.75000
+
+*****************************
+**********  Y,X,E ***********
+*****************************
+
+             VARIABLE : 0*_X[GX=XP] +  0.0001*     _Y[GY=YA] ^2 +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (X-Y)
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:   1.00000   1.00000   1.00000   1.00000   1.00000
+ 200   / 2:   4.00000   4.00000   4.00000   4.00000   4.00000
+ 300   / 3:   9.00000   9.00000   9.00000   9.00000   9.00000
+ 400   / 4:  16.00000  16.00000  16.00000  16.00000  16.00000
+ 500   / 5:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 600   / 6:  36.00000  36.00000  36.00000  36.00000  36.00000
+ 700   / 7:  49.00000  49.00000  49.00000  49.00000  49.00000
+             VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (X-Y)
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 200   / 2:  36.00000  36.00000  36.00000  36.00000  36.00000
+ 300   / 3:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 400   / 4:  16.00000  16.00000  16.00000  16.00000  16.00000
+ 500   / 5:   9.00000   9.00000   9.00000   9.00000   9.00000
+ 600   / 6:   4.00000   4.00000   4.00000   4.00000   4.00000
+ 700   / 7:   1.00000   1.00000   1.00000   1.00000   1.00000
+             VARIABLE : IF (_I EQ 5 OR _M EQ 5) AND _J LE 2 THEN 1/0 ELSE DENSITY4
+             SUBSET   : 5 by 7 points (X-Y)
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  10.00000  10.00000  20.00000  10.00000      ....
+ 200   / 2:  20.00000  20.00000  10.00000  20.00000      ....
+ 300   / 3:  30.00000  30.00000  30.00000  30.00000  30.00000
+ 400   / 4:  40.00000  20.00000  40.00000  40.00000  40.00000
+ 500   / 5:  50.00000  50.00000  50.00000  50.00000  50.00000
+ 600   / 6:  60.00000  60.00000  60.00000  30.00000  60.00000
+ 700   / 7:  70.00000  70.00000  70.00000  70.00000  70.00000
+             VARIABLE : IF (_I EQ 5 OR _M EQ 5) AND (8-_J) LE 2 THEN 1/0 ELSE BDENSITY4
+             SUBSET   : 5 by 7 points (X-Y)
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  70.00000  70.00000  70.00000  70.00000  70.00000
+ 200   / 2:  60.00000  60.00000  60.00000  30.00000  60.00000
+ 300   / 3:  50.00000  50.00000  50.00000  50.00000  50.00000
+ 400   / 4:  40.00000  20.00000  40.00000  40.00000  40.00000
+ 500   / 5:  30.00000  30.00000  30.00000  30.00000  30.00000
+ 600   / 6:  20.00000  20.00000  10.00000  20.00000      ....
+ 700   / 7:  10.00000  10.00000  20.00000  10.00000      ....
+             VARIABLE : 0*_X[GX=XP] +  0.0001*     _Y[GY=YA] ^2 +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on Y at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (X-Y)
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] +  0.0001*     _Y[GY=YA] ^2 +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on Y at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (E-Y)
+             X        : 161
+             Z        : 161
+             T        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on Y at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (X-Y)
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on Y at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (E-Y)
+             X        : 161
+             Z        : 161
+             T        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] +  0.0001*     _Y[GY=YA] ^2 +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on Y at LIN using DENSITY field
+             SUBSET   : 5 points (X)
+             Y        : 35
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          12.50000  20.50000  12.50000  12.50000  12.50000
+             VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on Y at LIN using BDENSITY field
+             SUBSET   : 5 points (X)
+             Y        : 35
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          12.50000  20.50000  12.50000  12.50000  12.50000
+             VARIABLE : 0*_X[GX=XP] +  0.0001*     _Y[GY=YA] ^2 +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on Y at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (X-Y)
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] +  0.0001*     _Y[GY=YA] ^2 +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on Y at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (E-Y)
+             X        : 161
+             Z        : 161
+             T        : 161
+             F        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on Y at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (X-Y)
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on Y at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (E-Y)
+             X        : 161
+             Z        : 161
+             T        : 161
+             F        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] +  0.0001*     _Y[GY=YA] ^2 +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on Y at PLAVE using DENSITY field
+             SUBSET   : 5 points (X)
+             Y        : 35 to 55
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          20.75000  24.00000  20.75000      ....  20.75000
+             VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on Y at PLAVE using BDENSITY field
+             SUBSET   : 5 points (X)
+             Y        : 35 to 55
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          20.75000  24.00000  20.75000      ....  20.75000
+
+*****************************
+**********  T,Y,F ***********
+*****************************
+
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0.0001*     _T[GT=TA] ^2 +  0*_E[GE=EP] +  0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (Y-T)
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:   1.00000   1.00000   1.00000   1.00000   1.00000
+ 200   / 2:   4.00000   4.00000   4.00000   4.00000   4.00000
+ 300   / 3:   9.00000   9.00000   9.00000   9.00000   9.00000
+ 400   / 4:  16.00000  16.00000  16.00000  16.00000  16.00000
+ 500   / 5:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 600   / 6:  36.00000  36.00000  36.00000  36.00000  36.00000
+ 700   / 7:  49.00000  49.00000  49.00000  49.00000  49.00000
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (Y-T)
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 200   / 2:  36.00000  36.00000  36.00000  36.00000  36.00000
+ 300   / 3:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 400   / 4:  16.00000  16.00000  16.00000  16.00000  16.00000
+ 500   / 5:   9.00000   9.00000   9.00000   9.00000   9.00000
+ 600   / 6:   4.00000   4.00000   4.00000   4.00000   4.00000
+ 700   / 7:   1.00000   1.00000   1.00000   1.00000   1.00000
+             VARIABLE : IF (_J EQ 5 OR _N EQ 5) AND _L LE 2 THEN 1/0 ELSE DENSITY4
+             SUBSET   : 5 by 7 points (Y-T)
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  10.00000  10.00000  20.00000  10.00000      ....
+ 200   / 2:  20.00000  20.00000  10.00000  20.00000      ....
+ 300   / 3:  30.00000  30.00000  30.00000  30.00000  30.00000
+ 400   / 4:  40.00000  20.00000  40.00000  40.00000  40.00000
+ 500   / 5:  50.00000  50.00000  50.00000  50.00000  50.00000
+ 600   / 6:  60.00000  60.00000  60.00000  30.00000  60.00000
+ 700   / 7:  70.00000  70.00000  70.00000  70.00000  70.00000
+             VARIABLE : IF (_J EQ 5 OR _N EQ 5) AND (8-_L) LE 2 THEN 1/0 ELSE BDENSITY4
+             SUBSET   : 5 by 7 points (Y-T)
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  70.00000  70.00000  70.00000  70.00000  70.00000
+ 200   / 2:  60.00000  60.00000  60.00000  30.00000  60.00000
+ 300   / 3:  50.00000  50.00000  50.00000  50.00000  50.00000
+ 400   / 4:  40.00000  20.00000  40.00000  40.00000  40.00000
+ 500   / 5:  30.00000  30.00000  30.00000  30.00000  30.00000
+ 600   / 6:  20.00000  20.00000  10.00000  20.00000      ....
+ 700   / 7:  10.00000  10.00000  20.00000  10.00000      ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0.0001*     _T[GT=TA] ^2 +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on T at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (Y-T)
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0.0001*     _T[GT=TA] ^2 +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on T at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (F-T)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             E        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on T at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (Y-T)
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on T at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (F-T)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             E        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0.0001*     _T[GT=TA] ^2 +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on T at LIN using DENSITY field
+             SUBSET   : 5 points (Y)
+             T        : 35
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          12.50000  20.50000  12.50000  12.50000  12.50000
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on T at LIN using BDENSITY field
+             SUBSET   : 5 points (Y)
+             T        : 35
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          12.50000  20.50000  12.50000  12.50000  12.50000
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0.0001*     _T[GT=TA] ^2 +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on T at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (Y-T)
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0.0001*     _T[GT=TA] ^2 +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on T at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (F-T)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             E        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on T at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (Y-T)
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on T at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (F-T)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             E        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0.0001*     _T[GT=TA] ^2 +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on T at PLAVE using DENSITY field
+             SUBSET   : 5 points (Y)
+             T        : 35 to 55
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          20.75000  24.00000  20.75000      ....  20.75000
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on T at PLAVE using BDENSITY field
+             SUBSET   : 5 points (Y)
+             T        : 35 to 55
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          20.75000  24.00000  20.75000      ....  20.75000
+
+*****************************
+**********  E,Z,F ***********
+*****************************
+
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0.0001*     _E[GE=EA] ^2 +  0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (Z-E)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:   1.00000   1.00000   1.00000   1.00000   1.00000
+ 200   / 2:   4.00000   4.00000   4.00000   4.00000   4.00000
+ 300   / 3:   9.00000   9.00000   9.00000   9.00000   9.00000
+ 400   / 4:  16.00000  16.00000  16.00000  16.00000  16.00000
+ 500   / 5:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 600   / 6:  36.00000  36.00000  36.00000  36.00000  36.00000
+ 700   / 7:  49.00000  49.00000  49.00000  49.00000  49.00000
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (Z-E)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 200   / 2:  36.00000  36.00000  36.00000  36.00000  36.00000
+ 300   / 3:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 400   / 4:  16.00000  16.00000  16.00000  16.00000  16.00000
+ 500   / 5:   9.00000   9.00000   9.00000   9.00000   9.00000
+ 600   / 6:   4.00000   4.00000   4.00000   4.00000   4.00000
+ 700   / 7:   1.00000   1.00000   1.00000   1.00000   1.00000
+             VARIABLE : IF (_K EQ 5 OR _N EQ 5) AND _M LE 2 THEN 1/0 ELSE DENSITY4
+             SUBSET   : 5 by 7 points (Z-E)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  10.00000  10.00000  20.00000  10.00000      ....
+ 200   / 2:  20.00000  20.00000  10.00000  20.00000      ....
+ 300   / 3:  30.00000  30.00000  30.00000  30.00000  30.00000
+ 400   / 4:  40.00000  20.00000  40.00000  40.00000  40.00000
+ 500   / 5:  50.00000  50.00000  50.00000  50.00000  50.00000
+ 600   / 6:  60.00000  60.00000  60.00000  30.00000  60.00000
+ 700   / 7:  70.00000  70.00000  70.00000  70.00000  70.00000
+             VARIABLE : IF (_K EQ 5 OR _N EQ 5) AND (8-_M) LE 2 THEN 1/0 ELSE BDENSITY4
+             SUBSET   : 5 by 7 points (Z-E)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  70.00000  70.00000  70.00000  70.00000  70.00000
+ 200   / 2:  60.00000  60.00000  60.00000  30.00000  60.00000
+ 300   / 3:  50.00000  50.00000  50.00000  50.00000  50.00000
+ 400   / 4:  40.00000  20.00000  40.00000  40.00000  40.00000
+ 500   / 5:  30.00000  30.00000  30.00000  30.00000  30.00000
+ 600   / 6:  20.00000  20.00000  10.00000  20.00000      ....
+ 700   / 7:  10.00000  10.00000  20.00000  10.00000      ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0.0001*     _E[GE=EA] ^2 +  0*_F[GF=FP]
+                        regrid: 5 delta on E at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (Z-E)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0.0001*     _E[GE=EA] ^2 +  0*_F[GF=FP]
+                        regrid: 5 delta on E at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (F-E)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             T        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+                        regrid: 5 delta on E at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (Z-E)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+                        regrid: 5 delta on E at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (F-E)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             T        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0.0001*     _E[GE=EA] ^2 +  0*_F[GF=FP]
+                        regrid: on E at LIN using DENSITY field
+             SUBSET   : 5 points (Z)
+             E        : 35
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          12.50000  20.50000  12.50000  12.50000  12.50000
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+                        regrid: on E at LIN using BDENSITY field
+             SUBSET   : 5 points (Z)
+             E        : 35
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          12.50000  20.50000  12.50000  12.50000  12.50000
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0.0001*     _E[GE=EA] ^2 +  0*_F[GF=FP]
+                        regrid: 15 delta on E at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (Z-E)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0.0001*     _E[GE=EA] ^2 +  0*_F[GF=FP]
+                        regrid: 15 delta on E at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (F-E)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             T        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+                        regrid: 15 delta on E at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (Z-E)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+                        regrid: 15 delta on E at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (F-E)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             T        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0.0001*     _E[GE=EA] ^2 +  0*_F[GF=FP]
+                        regrid: on E at PLAVE using DENSITY field
+             SUBSET   : 5 points (Z)
+             E        : 35 to 55
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          20.75000  24.00000  20.75000      ....  20.75000
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+                        regrid: on E at PLAVE using BDENSITY field
+             SUBSET   : 5 points (Z)
+             E        : 35 to 55
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          20.75000  24.00000  20.75000      ....  20.75000
+
+*****************************
+**********  F,X,T ***********
+*****************************
+
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0.0001*     _F[GF=FA] ^2
+             SUBSET   : 5 by 7 points (X-F)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:   1.00000   1.00000   1.00000   1.00000   1.00000
+ 200   / 2:   4.00000   4.00000   4.00000   4.00000   4.00000
+ 300   / 3:   9.00000   9.00000   9.00000   9.00000   9.00000
+ 400   / 4:  16.00000  16.00000  16.00000  16.00000  16.00000
+ 500   / 5:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 600   / 6:  36.00000  36.00000  36.00000  36.00000  36.00000
+ 700   / 7:  49.00000  49.00000  49.00000  49.00000  49.00000
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+             SUBSET   : 5 by 7 points (X-F)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 200   / 2:  36.00000  36.00000  36.00000  36.00000  36.00000
+ 300   / 3:  25.00000  25.00000  25.00000  25.00000  25.00000
+ 400   / 4:  16.00000  16.00000  16.00000  16.00000  16.00000
+ 500   / 5:   9.00000   9.00000   9.00000   9.00000   9.00000
+ 600   / 6:   4.00000   4.00000   4.00000   4.00000   4.00000
+ 700   / 7:   1.00000   1.00000   1.00000   1.00000   1.00000
+             VARIABLE : IF (_I EQ 5 OR _L EQ 5) AND _N LE 2 THEN 1/0 ELSE DENSITY4
+             SUBSET   : 5 by 7 points (X-F)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  10.00000  10.00000  20.00000  10.00000      ....
+ 200   / 2:  20.00000  20.00000  10.00000  20.00000      ....
+ 300   / 3:  30.00000  30.00000  30.00000  30.00000  30.00000
+ 400   / 4:  40.00000  20.00000  40.00000  40.00000  40.00000
+ 500   / 5:  50.00000  50.00000  50.00000  50.00000  50.00000
+ 600   / 6:  60.00000  60.00000  60.00000  30.00000  60.00000
+ 700   / 7:  70.00000  70.00000  70.00000  70.00000  70.00000
+             VARIABLE : IF (_I EQ 5 OR _L EQ 5) AND (8-_N) LE 2 THEN 1/0 ELSE BDENSITY4
+             SUBSET   : 5 by 7 points (X-F)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 100   / 1:  70.00000  70.00000  70.00000  70.00000  70.00000
+ 200   / 2:  60.00000  60.00000  60.00000  30.00000  60.00000
+ 300   / 3:  50.00000  50.00000  50.00000  50.00000  50.00000
+ 400   / 4:  40.00000  20.00000  40.00000  40.00000  40.00000
+ 500   / 5:  30.00000  30.00000  30.00000  30.00000  30.00000
+ 600   / 6:  20.00000  20.00000  10.00000  20.00000      ....
+ 700   / 7:  10.00000  10.00000  20.00000  10.00000      ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0.0001*     _F[GF=FA] ^2
+                        regrid: 5 delta on F at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (X-F)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0.0001*     _F[GF=FA] ^2
+                        regrid: 5 delta on F at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (T-F)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             E        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+                        regrid: 5 delta on F at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (X-F)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+                        regrid: 5 delta on F at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (T-F)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             E        : 161
+               161       162       163       164       165     
+                 1         2         3         4         5
+ 5    /  1:      ....      ....      ....      ....      ....
+ 10   /  2:   1.00000   1.00000   4.00000   1.00000      ....
+ 15   /  3:   2.50000   2.50000      ....   2.50000      ....
+ 20   /  4:   4.00000      ....      ....   4.00000      ....
+ 25   /  5:   6.50000      ....   7.75000   6.50000      ....
+ 30   /  6:   9.00000      ....   9.00000      ....   9.00000
+ 35   /  7:  12.50000  20.50000  12.50000      ....  12.50000
+ 40   /  8:  16.00000  22.00000  16.00000      ....  16.00000
+ 45   /  9:  20.50000  23.50000  20.50000      ....  20.50000
+ 50   / 10:  25.00000  25.00000  25.00000      ....  25.00000
+ 55   / 11:  30.50000  30.50000  30.50000  44.12500  30.50000
+ 60   / 12:  36.00000  36.00000  36.00000  45.75000  36.00000
+ 65   / 13:  42.50000  42.50000  42.50000  47.37500  42.50000
+ 70   / 14:  49.00000  49.00000  49.00000  49.00000  49.00000
+ 75   / 15:      ....      ....      ....      ....      ....
+ 80   / 16:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0.0001*     _F[GF=FA] ^2
+                        regrid: on F at LIN using DENSITY field
+             SUBSET   : 5 points (X)
+             F        : 35
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          12.50000  20.50000  12.50000  12.50000  12.50000
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+                        regrid: on F at LIN using BDENSITY field
+             SUBSET   : 5 points (X)
+             F        : 35
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          12.50000  20.50000  12.50000  12.50000  12.50000
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0.0001*     _F[GF=FA] ^2
+                        regrid: 15 delta on F at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (X-F)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0.0001*     _F[GF=FA] ^2
+                        regrid: 15 delta on F at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (T-F)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             E        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+                        regrid: 15 delta on F at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (X-F)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+                        regrid: 15 delta on F at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (T-F)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             E        : 161
+              161       162       163       164       165     
+                1         2         3         4         5
+ 5    / 1:      ....      ....      ....      ....      ....
+ 20   / 2:   4.37500      ....      ....   4.37500      ....
+ 35   / 3:  12.58333      ....  12.63542      ....      ....
+ 50   / 4:  25.37500  26.50000  25.37500      ....  25.37500
+ 65   / 5:      ....      ....      ....      ....      ....
+ 80   / 6:      ....      ....      ....      ....      ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0.0001*     _F[GF=FA] ^2
+                        regrid: on F at PLAVE using DENSITY field
+             SUBSET   : 5 points (X)
+             F        : 35 to 55
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          20.75000  24.00000  20.75000      ....  20.75000
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+                        regrid: on F at PLAVE using BDENSITY field
+             SUBSET   : 5 points (X)
+             F        : 35 to 55
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+            161       162       163       164       165     
+              1         2         3         4         5
+          20.75000  24.00000  20.75000      ....  20.75000
+ 
+GO bn_reset
+cancel mode verify
+GO bn_plot_ribbon_gaploc
+! bn_plot_ribbon_gaploc.jnl
+! 7/20/2015 *acm*  new PLOT/VS/RIBBON/GAPLOC
+!
+! If a trajectory leaves the selected region and then travels
+! 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.
+ 
+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
+ 
+GO bn_reset
+cancel mode verify
+GO bn_time_short_axes
+! 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
+ 
+GO bn_reset
+cancel mode verify
+GO bn_floatstr_extended
+! 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 : 50S (interpolated)
+             TIME     : 16-JAN 06:00
+ 165W   /  88:""
+ 163W   /  89:""
+ 161W   /  90:""
+ 159W   /  91:""
+ 157W   /  92:""
+ 155W   /  93:""
+ 153W   /  94:""
+ 151W   /  95:""
+ 149W   /  96:""
+ 147W   /  97:""
+ 145W   /  98:""
+ 143W   /  99:""
+ 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"
+ 
+! *********** 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
+ 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
+ 
+       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 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
+ 
+ 
+!  *********** Always do a bn_reset  ***********
+!  *********** make sure things clean up well **
+GO bn_reset
+cancel mode verify
+ 
+! version 2.3 requires exit/command *sh* 3/92
+exit/command
+yes? ! bn_all_ef_shell.jnl
+yes? ! 5/05 *acm*
+yes? ! run bn_all_ef tests
+yes? 
+yes? GO bn_all_ef
+ 	NOAA/PMEL TMAP
+ 	FERRET v6.951 (beta)
+ 	Linux 2.6.32-573.7.1.el6.x86_64 64-bit - 11/09/15
+ 	 9-Nov-15 15:04     
+
+SET MODE VERIFY
+! bn_all_ef.jnl
+! - run all the benchmark tests for externally-linked external functions.
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO bn_ef_external_functions.jnl
+! Tests of external functions that are distributed as shared object files.
+ 
+! Jon's benchmarks
+go bench_examples
+set mode ignore_error
+show func/ext add_9
+ADD_9(A,B,C,D,E,F,G,H,I)
+    (demonstration function) adds 9 arguments
+show func/ext ave*
+AVE_SCAT2GRID_T(TPTS,VPTS,TAXIS)
+    Compute average of a variable in each cell of output time axis
+    TPTS: T coordinates of scattered input time coordinates
+    VPTS: Variable at times in TPTS
+    TAXIS: Output time axis
+AVET(A)
+    (demonstration function) returns the time average
+    A: data to be averaged over the time axis
+show func pass_thru
+PASS_THRU(A)
+    (demonstration function) sets result equal to input
+    A: this arg is passed through
+show func sto*
+STORAGE(A)
+    sets result equal to input/10
+    A: input
+ 
+go bench_add_9
+! Bench_add_9.jnl
+!  ACM  8/99
+!  benchmark script for testing external function add_9.
+! Note: bench_add_9_visual contains plots of similar computations
+ 
+set mode ignore_errors
+ 
+ 
+can region
+use coads_climatology
+set region/x=151E:179E/y=0
+ 
+let a1 = sst[d=1,l=1]
+let a2 = sst[d=1,l=2]
+let a3 = sst[d=1,l=3]
+ 
+let a = add_9(a1,a2,a3,a1,a2,a3,a1,a2,a3)
+ 
+list a
+             VARIABLE : ADD_9(A1,A2,A3,A1,A2,A3,A1,A2,A3)
+             SUBSET   : 15 points (LONGITUDE)
+             LATITUDE : 1S
+             TIME     : 16-JAN 06:00
+                1S    
+                45
+ 151E   / 66:  263.6
+ 153E   / 67:  264.5
+ 155E   / 68:  264.2
+ 157E   / 69:  261.3
+ 159E   / 70:  260.9
+ 161E   / 71:  262.4
+ 163E   / 72:  264.0
+ 165E   / 73:  261.1
+ 167E   / 74:  260.9
+ 169E   / 75:  261.0
+ 171E   / 76:  259.3
+ 173E   / 77:  257.9
+ 175E   / 78:  257.0
+ 177E   / 79:  259.1
+ 179E   / 80:  254.8
+list  a - 3 * sst[d=1,l=1:3 at sum]
+             VARIABLE : A - 3 * SST[D=coads_climatology,L=1:3 at SUM]
+             SUBSET   : 15 points (LONGITUDE)
+             LATITUDE : 1S
+             TIME     : 16-JAN 06:00
+                 1S    
+                 45
+ 151E   / 66:  0.0000
+ 153E   / 67:  0.0000
+ 155E   / 68:  0.0000
+ 157E   / 69:  0.0000
+ 159E   / 70:  0.0000
+ 161E   / 71:  0.0000
+ 163E   / 72:  0.0000
+ 165E   / 73:  0.0000
+ 167E   / 74:  0.0000
+ 169E   / 75:  0.0000
+ 171E   / 76:  0.0000
+ 173E   / 77:  0.0000
+ 175E   / 78:  0.0000
+ 177E   / 79:  0.0000
+ 179E   / 80:  0.0000
+set mode/last ignore_errors
+go bench_avet
+! Bench_avet.jnl
+!  ACM  8/99
+!  benchmark script for testing external function avet.
+! Note: bench_avet_visual.jnl contains plots of similar computations
+ 
+set mode ignore_errors
+ 
+can region
+use coads_climatology
+set region/x=151E:179E/y=0
+ 
+let a = avet(sst)
+list a
+             VARIABLE : AVET(SST)
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 15 points (LONGITUDE)
+             LATITUDE : 1S
+                1S    
+                45
+ 151E   / 66:  29.28
+ 153E   / 67:  29.39
+ 155E   / 68:  29.35
+ 157E   / 69:  29.03
+ 159E   / 70:  28.99
+ 161E   / 71:  29.15
+ 163E   / 72:  29.33
+ 165E   / 73:  29.01
+ 167E   / 74:  28.99
+ 169E   / 75:  29.00
+ 171E   / 76:  28.81
+ 173E   / 77:  28.66
+ 175E   / 78:  28.56
+ 177E   / 79:  28.79
+ 179E   / 80:  28.31
+list a - sst[l=@ave]
+             VARIABLE : A - SST[L=@AVE]
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 15 points (LONGITUDE)
+             LATITUDE : 1S
+             TIME     : 01-JAN 00:45 to 01-APR 08:12
+                  1S      
+                  45
+ 151E   / 66:  0.000E+00
+ 153E   / 67: -3.553E-15
+ 155E   / 68:  0.000E+00
+ 157E   / 69:  0.000E+00
+ 159E   / 70:  3.553E-15
+ 161E   / 71:  7.105E-15
+ 163E   / 72:  3.553E-15
+ 165E   / 73:  0.000E+00
+ 167E   / 74:  0.000E+00
+ 169E   / 75:  3.553E-15
+ 171E   / 76:  0.000E+00
+ 173E   / 77:  3.553E-15
+ 175E   / 78:  0.000E+00
+ 177E   / 79:  3.553E-15
+ 179E   / 80:  3.553E-15
+ 
+can region
+let a = x[i=1:9,k=1:5] + t[l=1:5]
+let b = x[i=1:9,k=1:5]
+let c = avet(a)
+list b, c
+             X: 0.5 to 9.5
+ Column  1: B is X[I=1:9,K=1:5]
+ Column  2: C is AVET(A)
+             B     C
+1   / 1:  1.000   4.00
+2   / 2:  2.000   5.00
+3   / 3:  3.000   6.00
+4   / 4:  4.000   7.00
+5   / 5:  5.000   8.00
+6   / 6:  6.000   9.00
+7   / 7:  7.000  10.00
+8   / 8:  8.000  11.00
+9   / 9:  9.000  12.00
+ 
+set mode/last ignore_errors
+go bench_pass_thru
+! Bench_pass_thru.jnl
+!  ACM  8/99
+!  benchmark script for testing external function pass_thru.
+! Note: bench_pass_thru_visual.jnl contains plots of similar computations
+ 
+set mode ignore_errors
+ 
+can region
+let a = pass_thru(x)
+list a[i=1:20]
+             VARIABLE : PASS_THRU(X)
+             SUBSET   : 20 points (X)
+ 1    /  1:   1.00
+ 2    /  2:   2.00
+ 3    /  3:   3.00
+ 4    /  4:   4.00
+ 5    /  5:   5.00
+ 6    /  6:   6.00
+ 7    /  7:   7.00
+ 8    /  8:   8.00
+ 9    /  9:   9.00
+ 10   / 10:  10.00
+ 11   / 11:  11.00
+ 12   / 12:  12.00
+ 13   / 13:  13.00
+ 14   / 14:  14.00
+ 15   / 15:  15.00
+ 16   / 16:  16.00
+ 17   / 17:  17.00
+ 18   / 18:  18.00
+ 19   / 19:  19.00
+ 20   / 20:  20.00
+set region/i=1:20
+list sin(a)
+             VARIABLE : SIN(A)
+             SUBSET   : 20 points (X)
+ 1    /  1:  0.8415
+ 2    /  2:  0.9093
+ 3    /  3:  0.1411
+ 4    /  4: -0.7568
+ 5    /  5: -0.9589
+ 6    /  6: -0.2794
+ 7    /  7:  0.6570
+ 8    /  8:  0.9894
+ 9    /  9:  0.4121
+ 10   / 10: -0.5440
+ 11   / 11: -1.0000
+ 12   / 12: -0.5366
+ 13   / 13:  0.4202
+ 14   / 14:  0.9906
+ 15   / 15:  0.6503
+ 16   / 16: -0.2879
+ 17   / 17: -0.9614
+ 18   / 18: -0.7510
+ 19   / 19:  0.1499
+ 20   / 20:  0.9129
+can var/all
+can region
+ 
+use coads_climatology
+let a = pass_thru(sst[l=@ave,y=@sbx:11])
+list/x=50 a
+             VARIABLE : PASS_THRU(SST[L=@AVE,Y=@SBX:11])
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 90 points (LATITUDE)
+             LONGITUDE: 49E
+             TIME     : 01-JAN 00:45 to 01-APR 08:12
                49E   
                15
  89N   / 90:   ....
@@ -79504,7 +87695,7 @@ variables:
 		MY_VAR:long_name = "T[GT=T5]" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -79529,7 +87720,7 @@ variables:
 		MY_VAR:long_name = "T[GT=T5]" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -79553,7 +87744,7 @@ variables:
 		B:long_name = "\"one line of text\"" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -79592,7 +87783,7 @@ variables:
 		D:history = "From test_string" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -79627,7 +87818,7 @@ variables:
 		B:long_name = "SAMPLEJ(YSEQUENCE({\"a\",\"b\",,\"d\",\"e\",\"f\"}),{2,,1})" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -79668,7 +87859,7 @@ variables:
 		V:long_name = "T[GT=MONTH_IRREG]" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -79725,7 +87916,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -79782,7 +87973,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -79837,7 +88028,7 @@ variables:
 		T2:long_name = "Z[GZ=ZIRR]" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -79885,7 +88076,7 @@ variables:
 		V:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -79979,7 +88170,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -80049,7 +88240,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -80100,7 +88291,7 @@ variables:
 		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -80175,7 +88366,7 @@ variables:
 		A:long_name = "T[GT=TIME]" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -80202,7 +88393,7 @@ variables:
 		X_:long_name_mod = "axis ABSTRACT" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 		:title = "a long title longer than 80 characters a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789" ;
 data:
@@ -80226,7 +88417,7 @@ variables:
 		A:history = "From x" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		: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:
@@ -80253,11 +88444,11 @@ variables:
 		A:history = "From t0_cdc" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_long_revision_num.jnl --- history attribute
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 bn_bounds_defineax.jnl --- N+1 def of bounds.
 netcdf irrxzt {
 dimensions:
@@ -80288,7 +88479,7 @@ variables:
 		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -80360,7 +88551,7 @@ variables:
 		VAR_B:long_name = "my strings" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -80404,7 +88595,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -80446,7 +88637,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -80554,7 +88745,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 6 after CANCEL MODE upcase_output
@@ -80595,7 +88786,7 @@ variables:
 		Elev:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 7 outtput flags to control attribute output
@@ -80618,7 +88809,7 @@ variables:
 		BB:another_attr = 6.f ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -80644,7 +88835,7 @@ variables:
 		BB:another_attr = 6.f ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -80664,7 +88855,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -80685,7 +88876,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -80728,7 +88919,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 12 Check that settings hold for child axis.
@@ -80768,7 +88959,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 13 cancel output of attributes of the variable.
@@ -80806,7 +88997,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 14 attributes of data from ez data.
@@ -80835,7 +89026,7 @@ variables:
 		A3:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -80868,7 +89059,7 @@ variables:
 		V4:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -80894,7 +89085,7 @@ variables:
 		A:four = "theory" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -80940,7 +89131,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 		:simulation = "K-Bay OAR3d model (200m)" ;
 		:start_date = "980105000000" ;
@@ -81047,7 +89238,7 @@ variables:
 		TEMP:units = "deg. C" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 		:dt_internal = 15. ;
 }
@@ -81089,7 +89280,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -81172,7 +89363,7 @@ variables:
 		RIGUE:history = "From test0" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -81209,7 +89400,7 @@ variables:
 		B:long_name = "hello" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -81249,7 +89440,7 @@ variables:
 		VWND:units = "M/S" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -81300,7 +89491,7 @@ variables:
 		T2:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -81359,7 +89550,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -81404,7 +89595,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -81447,7 +89638,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -81482,7 +89673,7 @@ variables:
 		TEMP:units = "DEG C" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -81516,7 +89707,7 @@ variables:
 		TWO:history = "From levitus_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 27 attributes of  user-defined axes
@@ -81546,7 +89737,7 @@ variables:
 		AXY:long_name = "RESHAPE (A,RVAR)" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 28 Define a new global attribute
@@ -81575,7 +89766,7 @@ variables:
 		BROILED:history = "From test0" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 		:glob = "Global attribute" ;
 		:FERRET_comment = "File written via LAS. Attributes are inherited from originating dataset" ;
@@ -81636,7 +89827,7 @@ variables:
 		FAREN:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -81681,7 +89872,7 @@ variables:
 		FAREN:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -81700,7 +89891,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -81730,7 +89921,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -81760,7 +89951,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -81813,7 +90004,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -81855,7 +90046,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -81873,7 +90064,7 @@ variables:
 		V:long_name = "Y[GY=YAXIS]" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 err611_set_var_ez.jnl --- 
@@ -81892,7 +90083,7 @@ variables:
 		MY_ASC:history = "From dat.dat" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -81910,7 +90101,7 @@ variables:
 		MY_UNF:history = "From unf.dat" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- SET VAR/OUTTYPE for user variable
@@ -81927,7 +90118,7 @@ variables:
 		A:long_name = "{1.1,2.2,3.3}" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -81948,7 +90139,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.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -82011,7 +90202,7 @@ variables:
 		newvar:history = "From a" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_keep_axisnames.jnl --- test SAVE/KEEP_AXISNAMES
@@ -82038,7 +90229,7 @@ variables:
 		A:long_name = "X[GX=X100] + T[GT=T31]" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES
@@ -82065,7 +90256,7 @@ variables:
 		A:long_name = "X[GX=X100] + T[GT=T31]" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, degrees_east, degrees_north, std names on axes:
@@ -82131,7 +90322,7 @@ variables:
 		ZUP:long_name = "Z[GZ=ZAXUP]" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, Convert forms of DEG, degrees to degrees_east:
@@ -82163,7 +90354,7 @@ variables:
 		Y_:long_name_mod = "axis YFIFTEEN" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since
@@ -82196,8 +90387,84 @@ variables:
 		XYTVAR:history = "From bn_strides" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (beta) 29-Oct-14" ;
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:Conventions = "CF-1.6" ;
+}
+netcdf a {
+dimensions:
+	TIME16 = 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" ;
+
+// global attributes:
+		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:Conventions = "CF-1.6" ;
+data:
+
+ reftime = 0, 1, 2.03333333333333 ;
+
+ reftime_bnds =
+  -0.5, 0.5,
+  0.5, 1.51666666666667,
+  1.51666666666667, 2.55 ;
+
+ 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 ;
+}
+netcdf a {
+dimensions:
+	time = 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, time) ;
+		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" ;
 		:Conventions = "CF-1.6" ;
+data:
+
+ reftime = 0, 1, 2.03333333333333 ;
+
+ reftime_bnds =
+  -0.5, 0.5,
+  0.5, 1.51666666666667,
+  1.51666666666667, 2.55 ;
+
+ 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 ;
 }
 -----
 end of ncdump output
@@ -82210,49 +90477,49 @@ yes?
 yes? 
 yes? GO bn_startupfile
  	NOAA/PMEL TMAP
- 	FERRET v6.93 (beta)
- 	Linux 2.6.32-504.el6.x86_64 64-bit - 10/29/14
- 	29-Oct-14 16:04     
+ 	FERRET v6.951 (beta)
+ 	Linux 2.6.32-573.7.1.el6.x86_64 64-bit - 11/09/15
+ 	 9-Nov-15 15:04     
 
 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.93"
-FERRET_PLATFORM = "Linux 2.6.32-504.el6.x86_64 64-bit"
+FERRET_VERSION = "6.951"
+FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64 64-bit"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 10:43:06 $"
+NETCDF_VERSION = "4.3.3.1 of Jul  1 2015 15:02:01 $"
 FERRET_MEMORY = "31"
-SESSION_DATE = "29-Oct-14"
-SESSION_TIME = "16:04"
-SESSION_PID = "2382"
-DELTA_CPU = "0.070989"
-CLOCK_SECS = "0.418"
-CURRENT_DATE = "29-Oct-14"
-CURRENT_TIME = "16:04:39"
+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"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
 LAST_GO_FILE = "./bn_startupfile.jnl"
 PPL$FORMAT = "(3F10.2)"
 PPL$PLTNME = "startup_tests.plt"
-PPL$TEKNME = "/dev/tty"
-PPL$XLEN = "8.000"
-PPL$YLEN = "6.000"
-PPL$XORG = "1.200"
-PPL$YORG = "1.400"
-PPL$WIDTH = "10.20"
-PPL$HEIGHT = "8.800"
+PPL$TEKNME = "/dev/tt"
+PPL$XLEN = "8.00000"
+PPL$YLEN = "6.00000"
+PPL$XORG = "1.20000"
+PPL$YORG = "1.40000"
+PPL$WIDTH = "10.2000"
+PPL$HEIGHT = "8.80000"
 PPL$LINE_COUNT = "0"
-PPL$XFACT1 = "1.000"
-PPL$XOFF1 = "0.000"
-PPL$YFACT1 = "1.000"
-PPL$YOFF1 = "0.000"
+PPL$XFACT1 = "1.000000"
+PPL$XOFF1 = "0.000000"
+PPL$YFACT1 = "1.000000"
+PPL$YOFF1 = "0.000000"
 PPL$VIEW_X = "0.000"
 PPL$VIEW_Y = "0.000"
 PPL$VIEW_Z = "0.000"
 PPL$COMMAND_FILE = "$$MEMBUF$$"
-WIN_TITLE = "29-Oct-14:16:04"
+WIN_TITLE = "9-Nov-15:15:04"
 VP_WIDTH = "10.2"
 VP_HEIGHT = "8.8"
 VP_SCALE = "1"
@@ -82274,7 +90541,8 @@ GO_FILE = "./bn_startupfile.jnl"
       LATIT_LABEL   CANCELLED            1
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
-      6D_LAB           SET
+      E_LABEL          SET               1
+      F_LABEL          SET               1
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -82293,7 +90561,8 @@ GO_FILE = "./bn_startupfile.jnl"
       NODATA_LAB       SET
       SHRINK_YLAB   CANCELLED
       CURVILINEAR   CANCELLED
-      SIGMA         CANCELLED
+      LAYERZ        CANCELLED
+      6D_LAB           SET
      currently SET data sets:
     1> ./gtbc011.cdf  (default)
  name     title                             I         J         K         L         M         N
@@ -82314,9 +90583,9 @@ yes?
 yes? 
 yes? GO bn_gif
  	NOAA/PMEL TMAP
- 	FERRET v6.93 (beta)
- 	Linux 2.6.32-504.el6.x86_64 64-bit - 10/29/14
- 	29-Oct-14 16:04     
+ 	FERRET v6.951 (beta)
+ 	Linux 2.6.32-573.7.1.el6.x86_64 64-bit - 11/09/15
+ 	 9-Nov-15 15:04     
 
 ! bn450_gif.JNL - copied from bn450_plot.jnl
 ! this journal file only tests the writing of gif file in batch mode using
@@ -82533,9 +90802,9 @@ yes?
 yes? 
 yes? GO bn_ps
  	NOAA/PMEL TMAP
- 	FERRET v6.93 (beta)
- 	Linux 2.6.32-504.el6.x86_64 64-bit - 10/29/14
- 	29-Oct-14 16:04     
+ 	FERRET v6.951 (beta)
+ 	Linux 2.6.32-573.7.1.el6.x86_64 64-bit - 11/09/15
+ 	 9-Nov-15 15:04     
 
 ! bn450_ps.JNL - copied from bn450_plot.jnl
 ! this journal file only tests the writing of ps files in batch mode using
@@ -82647,9 +90916,9 @@ yes?
 yes? 
 yes? GO bn_batch_metafile
  	NOAA/PMEL TMAP
- 	FERRET v6.93 (beta)
- 	Linux 2.6.32-504.el6.x86_64 64-bit - 10/29/14
- 	29-Oct-14 16:04     
+ 	FERRET v6.951 (beta)
+ 	Linux 2.6.32-573.7.1.el6.x86_64 64-bit - 11/09/15
+ 	 9-Nov-15 15:04     
 
 ! bn_batch_metafile.jnl
 ! Run at the end of the benchmark scripts, starting ferret with the flags
@@ -82733,4 +91002,4 @@ set window/location=0.1,0.1/title="another title"
  
 set mode/last logo
 exit/command
-Ended at Wed Oct 29 16:04:41 PDT 2014
+Ended at Mon Nov 9 15:04:17 PST 2015
diff --git a/bench/ansley_official.x86_64-linux_err b/bench/ansley_official.x86_64-linux_err
index be314a6..2773bb8 100644
--- a/bench/ansley_official.x86_64-linux_err
+++ b/bench/ansley_official.x86_64-linux_err
@@ -1,26 +1,27 @@
 Procedure run_all to run all FERRET benchmarks
-Running FERRET version /home/users/ansley/build/x86/FERRET/fer/ferret_c
--rwxr-xr-x 1 ansley tmap 53365065 Oct  7 10:08 /home/users/ansley/build/x86/FERRET/fer/ferret_c
-Using external functions from /home/users/ansley/build/x86/FERRET/external_functions/ext_func
+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 the tests of external functions y
-Benchmark run by ansley
-Note: ticket 2203
+Benchmark run by Karl
+Note: Benchmark tests on RHEL5-64
 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/tmap/ferret/linux/fer_dsets
+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/ansley/build/x86/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_EXTERNAL_FUNCTIONS=/home/users/ksmith/Ferret/ext_func/libs
+FER_FONTS=/home/users/ksmith/Ferret/ppl/fonts
+FER_GO=. /home/users/ksmith/Ferret/go /home/users/ksmith/Ferret/examples /home/users/ksmith/Ferret/contrib
 FER_GRIDS=.
-FER_LIBS=/home/users/tmap/ferret/x86_64-linux/lib
-FER_LINK_DIR=/home/users/tmap/ferret_link/linux
-FER_PALETTE=. /home/users/tmap/ferret/x86_64-linux/ppl
-PWD=/home/users/ansley/build/x86/FERRET/bench
-Beginning at Tue Oct 7 10:41:47 PDT 2014
+FER_LIBS=/home/users/ksmith/Ferret/lib
+FER_PALETTE=. /home/users/ksmith/Ferret/ppl
+FER_WEB_BROWSER=firefox
+Beginning at Mon Oct 26 17:21:34 PDT 2015
+ Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
         SET EXPRESSION has not been given or implied
@@ -41,12 +42,12 @@ 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: Valid argument $1 choices are: xxxxx|goodbye
+           *** 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: Valid argument $3 choices are: hello|goodbye
+           *** NOTE: Valid argument $3 choices are: hello|goodbye
  **ERROR: my error message
 message/cont $3">greetings|hello|goodbye<my error message"
  **ERROR: my error message
@@ -57,17 +58,17 @@ message/cont $3""
 message/cont $3"<"
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3"||"
- *** NOTE: Valid argument $3 choices are: |
+           *** NOTE: Valid argument $3 choices are: |
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3"|>|"
- *** NOTE: Valid argument $3 choices are: >|
+           *** NOTE: Valid argument $3 choices are: >|
  **ERROR: command syntax: empty text string provided with ">": >|
 message/cont $3">|"
  **ERROR: command syntax: empty text string provided with ">": |<
 message/cont $3"|<"
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3"|>"
- *** NOTE: Valid argument $3 choices are: >
+           *** NOTE: Valid argument $3 choices are: >
  **ERROR: command syntax: arg number not in 1-99 range: $100
 say $100
  **ERROR: command syntax: arg number not in 1-99 range: $100)
@@ -105,16 +106,16 @@ MESSAGE/CONTINUE `1*/3`
  **ERROR: command syntax: sst*/3
           * before / is illegal
 MESSAGE/CONTINUE `sst*/3,return=lunits`
- **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,units,dset,
+ **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,f0,units,dset,
             dsetnum,dsetpath,dsettitle,*size,*start,*end,
             *units,*axis,nc_scale,nc_offset,user_scale,user_offset,
-            calendar,dtype,xmod,tmod,status,isDepth,isReady
+            calendar,dtype,xmod,tmod,status,isDepth,isReady,defined
           sst,return=Xsize
 MESSAGE/CONTINUE `sst,return=Xsize`
- **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,units,dset,
+ **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,f0,units,dset,
             dsetnum,dsetpath,dsettitle,*size,*start,*end,
             *units,*axis,nc_scale,nc_offset,user_scale,user_offset,
-            calendar,dtype,xmod,tmod,status,isDepth,isReady
+            calendar,dtype,xmod,tmod,status,isDepth,isReady,defined
           sst,return=trash
 MESSAGE/CONTINUE `sst,return=trash`
  PERMANENT data cleared from memory
@@ -129,12 +130,22 @@ can var
  LISTing to file v1file.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ **ERROR: invalid command: ENDIF can only be used in an IF clause
+ENDIF
+ **ERROR: command syntax: ELIF cannot be used in single line IF
+          IF 0 THEN say ERROR ELIF 1 THEN say "CORRECT if you see this"
+IF 0 THEN say ERROR ELIF 1 THEN say "CORRECT if you see this"
+ **ERROR: command syntax: Trash after ENDIF
+          IF 0 THEN say ERROR ELSE say "CORRECT if you see this" ENDIF say trash
+IF 0 THEN say ERROR ELSE say "CORRECT if you see this" ENDIF say trash
+           *** NOTE: Unclosed IF statement ... assuming ENDIF
  **ERROR: invalid command: ELSE can only be used between IF and ENDIF
 else
  **ERROR: invalid command: ENDIF can only be used in an IF clause
 endif
  **ERROR: invalid command: ELIF can only be used between IF and ENDIF
 elif
+           *** NOTE: Unclosed IF statement ... assuming ENDIF
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: command syntax: IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
@@ -152,7 +163,7 @@ load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Ambiguous coordinates on X axis: X[I=1:5] - X[I=6:9]
+           *** NOTE: Ambiguous coordinates on X axis: X[I=1:5] - X[I=6:9]
  **ERROR: inconsistent sizes of data regions: X axis
           X[I=6:9] has 4 points (I=6:9)
           expression has 5 points (I=1:5)
@@ -227,8 +238,8 @@ Re-defining viewport LM6
 Re-defining viewport UM6
  Using every   2th vector in the X direction
  Using every   2th vector in the Y direction
- *** NOTE: /XLIMITS and /YLIMITS are deprecated.
- *** NOTE: Use /HLIMITS and /VLIMITS instead.
+           *** NOTE: /XLIMITS and /YLIMITS are deprecated.
+           *** NOTE: Use /HLIMITS and /VLIMITS instead.
  **ERROR: invalid command: color=noexist
           Colors are Black,Red,Green,Blue,LightBlue,Purple, and White
 plot/over/i=1:10/color=noexist i
@@ -275,12 +286,12 @@ 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: Valid symbol test2 choices are: hello|bye|
+           *** 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: Valid symbol t2 choices are: solong>really hello|bye|
+           *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -330,12 +341,12 @@ list tu
  Cached data cleared from memory
  **ERROR: request exceeds memory setting: 25 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.
+           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
  Cached data cleared from memory
- *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] +  X[X=1.1:11:1.5]
- *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] +  X[X=1.1:11:1.5]
- *** NOTE: Ambiguous coordinates on X axis: TEMP[I=101:120:4]+X[I=101:120:4]
+           *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] +  X[X=1.1:11:1.5]
+           *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] +  X[X=1.1:11:1.5]
+           *** NOTE: Ambiguous coordinates on X axis: TEMP[I=101:120:4]+X[I=101:120:4]
  **ERROR: invalid command: non-positive delta value: X[I=1:5:-1]
 list x[i=1:5:-1]
  **ERROR: invalid command: non-positive delta value: X[I=1:5:0]
@@ -399,9 +410,9 @@ list a
  LISTing to file test_abs.cdf
  LISTing to file test_abs.cdf
  LISTing to file test_abs.cdf
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
- *** NOTE: Write the data initially with the /BOUNDS qualifier
+           *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
+           *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
+           *** NOTE: Write the data initially with the /BOUNDS qualifier
  LISTing to file test2.cdf
  LISTing to file FL.cdf
  LISTing to file FTLON.cdf
@@ -465,7 +476,7 @@ list/format=cdf/l=13/append/file=test_abs.cdf l1
  LISTing to file test_fil.cdf
  LISTing to file test_fil.cdf
  LISTing to file test_fil.cdf
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: regridding: G=W - more than 1 target grid
@@ -559,14 +570,12 @@ Replacing definition of axis TAX
 list v2-and-minus
  **ERROR: dimensions improperly specified: 99999999 words were requested.
 list x
- *** NOTE: Check for unspecified limits on an ABSTRACT axis
- *** NOTE: Use the SHOW GRID command to see the axes
+           *** NOTE: Check for unspecified limits on an ABSTRACT axis
+           *** NOTE: Use the SHOW GRID command to see the axes
  **ERROR: dimensions improperly specified: 99999999 words were requested.
 list i
- *** NOTE: Check for unspecified limits on an ABSTRACT axis
- *** NOTE: Use the SHOW GRID command to see the axes
- **ERROR: variable unknown or not in data set: 'i'
-list 'i'
+           *** NOTE: Check for unspecified limits on an ABSTRACT axis
+           *** NOTE: Use the SHOW GRID command to see the axes
  **ERROR: command syntax: v2-and-minus[i=5:15 at ddc]
           - before and is illegal
 list v2-and-minus[i=5:15 at ddc]
@@ -581,15 +590,15 @@ Replacing definition of axis ZAX
 Replacing definition of axis TAX
  **ERROR: request exceeds memory setting: 24000 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.
+           *** 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.
 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.
+           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
 Replacing definition of axis XAX
 Replacing definition of axis YAX
 Replacing definition of axis ZAX
@@ -599,7 +608,7 @@ Replacing definition of axis TAX
 SET DATA/EZ/format=stream/var=num/grid=mygrid NoSuchFile.dat
  **ERROR: Size of file ./junk.dat doesn't match size specified by variables/grid
 load num
- *** NOTE: Binary file reading: Insufficient memory reading variable    2
+           *** NOTE: Binary file reading: Insufficient memory reading variable    2
  **ERROR: invalid command: variable permutations only allowed for STREAM format
 SET DATA/EZ/var=num/order=vxyzt/grid=mygrid junk.dat
  **ERROR: invalid command: invalid argument for /TYPE
@@ -632,37 +641,37 @@ Replacing definition of axis TAX
 Replacing definition of axis TAX
 Replacing definition of axis TAX
 Replacing definition of axis TAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
  **ERROR: improper grid or axis definition: unrepairable repeated axis coords
 define axis/from/x/name=xax {6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
  **ERROR: improper grid or axis definition: unrepairable repeated axis coords
 define axis/from/x/name=xax/edges {6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
  **ERROR: improper grid or axis definition: unrepairable repeated axis coords
 define axis/from/x/name=xax/edges {6,6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
 Replacing definition of axis XAX2
- *** NOTE: (fyi) units are not subject to auto-conversion: BLAHS
+           *** NOTE: (fyi) units are not subject to auto-conversion: BLAHS
 Replacing definition of axis XAX2
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -695,7 +704,7 @@ Replacing definition of axis TCAL
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -751,8 +760,8 @@ stat i, noname(i)
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** 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
  **ERROR: invalid command: delta values may only modify variable names
 LIST/i=2:4:2 VAR
  PERMANENT data cleared from memory
@@ -761,15 +770,15 @@ LIST/i=2:4:2 VAR
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** 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
  PERMANENT data cleared from memory
  TEMPORARY 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
+           *** 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of grid GX
@@ -794,14 +803,11 @@ 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
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 360.00 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 360.00 days
 Replacing definition of grid TGRID
 Replacing definition of axis TDAYS
 Replacing definition of grid TGRID
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: command syntax: dash=(1., 2.)
@@ -814,6 +820,18 @@ 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
@@ -842,19 +860,10 @@ Replacing definition of axis X10
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Not deleted: X10
- *** NOTE: Axis is in use by grid G10X5
+           *** NOTE: Not deleted: X10
+           *** NOTE: Axis is in use by grid G10X5
  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
-
-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
  PERMANENT data cleared from memory
@@ -922,10 +931,10 @@ list strcat ("All work and no play")
  LISTing to file test_modulo.cdf
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** 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
+           *** NOTE: Not using NetCDF strides for multi-cycle modulo
+           *** 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Re-defining viewport MID
@@ -965,6 +974,18 @@ list a[gx=xnrst at sum]
  **ERROR: invalid command: cant use this regrid transform on strings: @MOD
 list a[gx=xnrst at mod]
  LISTing to file foo.cdf
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" - {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" * {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" / {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" ^ {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead SIN({"a","b","c"})
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead MAX("a",{"a","b","c"})
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -980,12 +1001,12 @@ Replacing definition of grid G1
  **TMAP ERR: syntax error in string
              Unrecognized field type: D
              Data set: ./bn_delimited_read_date_time.dat
- *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
+           *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
 SET DATA/FORM=delimited/type="d, da2,date2"  bn_delimited_read_date_time.dat
  **TMAP ERR: syntax error in string
              Unrecognized field type: DATE2
              Data set: ./bn_delimited_read_date_time.dat
- *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
+           *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
 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
@@ -1044,284 +1065,287 @@ 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: regarding ./test_axes.nc ...
- *** NOTE: Climatological axes test_irreg, test_seas defined
+           *** NOTE: regarding ./test_axes.nc ...
+           *** NOTE: Climatological axes test_irreg, test_seas defined
  PERMANENT data cleared from memory
  TEMPORARY 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: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
 Replacing definition of axis TAX2
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file string4d.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: regarding ./test_axes.nc ...
- *** NOTE: Climatological axes test_irreg, test_seas defined
- *** NOTE: Not deleted: TEST_IRREG
- *** NOTE: Axis is in use by grid (G023)
- *** NOTE: Not deleted: XEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: XODD
- *** NOTE: Axis is in use by grid G13
- *** NOTE: Not deleted: YEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: YODD
- *** NOTE: Axis is in use by grid G2
- *** NOTE: Not deleted: ZEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: ZODD
- *** NOTE: Axis is in use by grid G3
- *** NOTE: Not deleted: TEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: TODD
- *** NOTE: Axis is in use by grid G4
- *** NOTE: Not deleted: XCOARSE
- *** NOTE: Axis is in use by grid GCOARSE
- *** NOTE: Not deleted: YFINE
- *** NOTE: Axis is in use by grid GFINE
- *** NOTE: Not deleted: YCOARSE
- *** NOTE: Axis is in use by grid GCOARSE
- *** NOTE: Not deleted: XFINE
- *** NOTE: Axis is in use by grid GFINE
- *** NOTE: Not deleted: TAX48
- *** NOTE: Axis is in use by grid G48
- *** NOTE: Not deleted: XEZ1
- *** NOTE: Axis is in use by grid GEZ1
- *** NOTE: Not deleted: XEZ2
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: YEZ
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: ZEZ
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: XEZ3
- *** NOTE: Axis is in use by grid GEZ3
- *** NOTE: Not deleted: LON_FIELD_J_AXIS
- *** NOTE: Axis is in use by grid LON_FIELD_GRID
- *** NOTE: Not deleted: LAT_FIELD_I_AXIS
- *** NOTE: Axis is in use by grid LAT_FIELD_GRID
- *** NOTE: Not deleted: LAT_FIELD_J_AXIS
- *** NOTE: Axis is in use by grid LAT_FIELD_GRID
- *** NOTE: Not deleted: LON_FIELD_I_AXIS
- *** NOTE: Axis is in use by grid LON_FIELD_GRID
- *** NOTE: Not deleted: XIRREG
- *** NOTE: Axis is in use by grid GIRREG
- *** NOTE: Not deleted: TCENTURY
- *** NOTE: Axis is in use by grid GCENTURY
- *** NOTE: Not deleted: TAX5DAY
- *** NOTE: Axis is in use by grid G5DAY
- *** NOTE: Not deleted: XAX10
- *** NOTE: Axis is in use by grid G5_10
- *** NOTE: Not deleted: X5
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: Y5
- *** NOTE: Axis is in use by grid G10X5
- *** NOTE: Not deleted: TIME1
- *** NOTE: Axis is in use by grid GHB1
- *** NOTE: Not deleted: TIME2
- *** NOTE: Axis is in use by grid GCQ1
- *** NOTE: Not deleted: TAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: X4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: Y4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: Z4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: T4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: XCHANNEL
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: YRISE
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: ZLAYER
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: TIME
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: Z1
- *** NOTE: Axis is in use by grid G1
- *** NOTE: Not deleted: TCAL
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: XTROP
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: YTROP
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: ZAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: Y1
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: Y2
- *** NOTE: Axis is in use by grid G10X2
- *** NOTE: Not deleted: JMONTHS
- *** 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: 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: 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: 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
- *** NOTE: Axis is in use by grid G13
- *** NOTE: Not deleted: YEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: YODD
- *** NOTE: Axis is in use by grid G2
- *** NOTE: Not deleted: ZEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: ZODD
- *** NOTE: Axis is in use by grid G3
- *** NOTE: Not deleted: TEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: TODD
- *** NOTE: Axis is in use by grid G4
- *** NOTE: Not deleted: XCOARSE
- *** NOTE: Axis is in use by grid GCOARSE
- *** NOTE: Not deleted: YFINE
- *** NOTE: Axis is in use by grid GFINE
- *** NOTE: Not deleted: YCOARSE
- *** NOTE: Axis is in use by grid GCOARSE
- *** NOTE: Not deleted: XFINE
- *** NOTE: Axis is in use by grid GFINE
- *** NOTE: Not deleted: TAX48
- *** NOTE: Axis is in use by grid G48
- *** NOTE: Not deleted: XEZ1
- *** NOTE: Axis is in use by grid GEZ1
- *** NOTE: Not deleted: XEZ2
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: YEZ
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: ZEZ
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: XEZ3
- *** NOTE: Axis is in use by grid GEZ3
- *** NOTE: Not deleted: LON_FIELD_J_AXIS
- *** NOTE: Axis is in use by grid LON_FIELD_GRID
- *** NOTE: Not deleted: LAT_FIELD_I_AXIS
- *** NOTE: Axis is in use by grid LAT_FIELD_GRID
- *** NOTE: Not deleted: LAT_FIELD_J_AXIS
- *** NOTE: Axis is in use by grid LAT_FIELD_GRID
- *** NOTE: Not deleted: LON_FIELD_I_AXIS
- *** NOTE: Axis is in use by grid LON_FIELD_GRID
- *** NOTE: Not deleted: XIRREG
- *** NOTE: Axis is in use by grid GIRREG
- *** NOTE: Not deleted: TCENTURY
- *** NOTE: Axis is in use by grid GCENTURY
- *** NOTE: Not deleted: TAX5DAY
- *** NOTE: Axis is in use by grid G5DAY
- *** NOTE: Not deleted: XAX10
- *** NOTE: Axis is in use by grid G5_10
- *** NOTE: Not deleted: X5
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: Y5
- *** NOTE: Axis is in use by grid G10X5
- *** NOTE: Not deleted: TIME1
- *** NOTE: Axis is in use by grid GHB1
- *** NOTE: Not deleted: TIME2
- *** NOTE: Axis is in use by grid GCQ1
- *** NOTE: Not deleted: TAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: X4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: Y4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: Z4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: T4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: XCHANNEL
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: YRISE
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: ZLAYER
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: TIME
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: Z1
- *** NOTE: Axis is in use by grid G1
- *** NOTE: Not deleted: TCAL
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: XTROP
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: YTROP
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: ZAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: Y1
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: Y2
- *** NOTE: Axis is in use by grid G10X2
- *** NOTE: Not deleted: JMONTHS
- *** 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: 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: ZAXLEVITR1_1
- *** NOTE: Axis is in use by grid GG2
- *** NOTE: Not deleted: (AX020)
- *** NOTE: Axis is in use by grid GG3
+           *** NOTE: regarding ./test_axes.nc ...
+           *** NOTE: Climatological axes test_irreg, test_seas defined
+           *** NOTE: Not deleted: TEST_IRREG
+           *** NOTE: Axis is in use by grid (G023)
+           *** NOTE: Not deleted: XEVEN
+           *** NOTE: Axis is in use by grid EVEN
+           *** NOTE: Not deleted: XODD
+           *** NOTE: Axis is in use by grid G13
+           *** NOTE: Not deleted: YEVEN
+           *** NOTE: Axis is in use by grid EVEN
+           *** NOTE: Not deleted: YODD
+           *** NOTE: Axis is in use by grid G2
+           *** NOTE: Not deleted: ZEVEN
+           *** NOTE: Axis is in use by grid EVEN
+           *** NOTE: Not deleted: ZODD
+           *** NOTE: Axis is in use by grid G3
+           *** NOTE: Not deleted: TEVEN
+           *** NOTE: Axis is in use by grid EVEN
+           *** NOTE: Not deleted: TODD
+           *** NOTE: Axis is in use by grid G4
+           *** NOTE: Not deleted: XCOARSE
+           *** NOTE: Axis is in use by grid GCOARSE
+           *** NOTE: Not deleted: YFINE
+           *** NOTE: Axis is in use by grid GFINE
+           *** NOTE: Not deleted: YCOARSE
+           *** NOTE: Axis is in use by grid GCOARSE
+           *** NOTE: Not deleted: XFINE
+           *** NOTE: Axis is in use by grid GFINE
+           *** NOTE: Not deleted: TAX48
+           *** NOTE: Axis is in use by grid G48
+           *** NOTE: Not deleted: XEZ1
+           *** NOTE: Axis is in use by grid GEZ1
+           *** NOTE: Not deleted: XEZ2
+           *** NOTE: Axis is in use by grid GEZ2
+           *** NOTE: Not deleted: YEZ
+           *** NOTE: Axis is in use by grid GEZ2
+           *** NOTE: Not deleted: ZEZ
+           *** NOTE: Axis is in use by grid GEZ2
+           *** NOTE: Not deleted: XEZ3
+           *** NOTE: Axis is in use by grid GEZ3
+           *** NOTE: Not deleted: LON_FIELD_J_AXIS
+           *** NOTE: Axis is in use by grid LON_FIELD_GRID
+           *** NOTE: Not deleted: LAT_FIELD_I_AXIS
+           *** NOTE: Axis is in use by grid LAT_FIELD_GRID
+           *** NOTE: Not deleted: LAT_FIELD_J_AXIS
+           *** NOTE: Axis is in use by grid LAT_FIELD_GRID
+           *** NOTE: Not deleted: LON_FIELD_I_AXIS
+           *** NOTE: Axis is in use by grid LON_FIELD_GRID
+           *** NOTE: Not deleted: XIRREG
+           *** NOTE: Axis is in use by grid GIRREG
+           *** NOTE: Not deleted: TCENTURY
+           *** NOTE: Axis is in use by grid GCENTURY
+           *** NOTE: Not deleted: TAX5DAY
+           *** NOTE: Axis is in use by grid G5DAY
+           *** NOTE: Not deleted: XAX10
+           *** NOTE: Axis is in use by grid G5_10
+           *** NOTE: Not deleted: X5
+           *** NOTE: Axis is in use by grid GSRC
+           *** NOTE: Not deleted: Y5
+           *** NOTE: Axis is in use by grid G10X5
+           *** NOTE: Not deleted: TIME1
+           *** NOTE: Axis is in use by grid GHB1
+           *** NOTE: Not deleted: TIME2
+           *** NOTE: Axis is in use by grid GCQ1
+           *** NOTE: Not deleted: TAX
+           *** NOTE: Axis is in use by grid GFORMAT
+           *** NOTE: Not deleted: X4
+           *** NOTE: Axis is in use by grid G4D
+           *** NOTE: Not deleted: Y4
+           *** NOTE: Axis is in use by grid G4D
+           *** NOTE: Not deleted: Z4
+           *** NOTE: Axis is in use by grid G4D
+           *** NOTE: Not deleted: T4
+           *** NOTE: Axis is in use by grid G4D
+           *** NOTE: Not deleted: XCHANNEL
+           *** NOTE: Axis is in use by grid GSIGMA
+           *** NOTE: Not deleted: YRISE
+           *** NOTE: Axis is in use by grid GSIGMA
+           *** NOTE: Not deleted: ZLAYER
+           *** NOTE: Axis is in use by grid GSIGMA
+           *** NOTE: Not deleted: TIME
+           *** NOTE: Axis is in use by grid GSIGMA
+           *** NOTE: Not deleted: Z1
+           *** NOTE: Axis is in use by grid G1
+           *** NOTE: Not deleted: TCAL
+           *** NOTE: Axis is in use by grid GSRC
+           *** NOTE: Not deleted: XTROP
+           *** NOTE: Axis is in use by grid GXYT
+           *** NOTE: Not deleted: YTROP
+           *** NOTE: Axis is in use by grid GXYT
+           *** NOTE: Not deleted: ZAX
+           *** NOTE: Axis is in use by grid GFORMAT
+           *** NOTE: Not deleted: Y1
+           *** NOTE: Axis is in use by grid GSRC
+           *** NOTE: Not deleted: Y2
+           *** NOTE: Axis is in use by grid G10X2
+           *** NOTE: Not deleted: JMONTHS
+           *** 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: 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: 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: 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
+           *** NOTE: Axis is in use by grid G13
+           *** NOTE: Not deleted: YEVEN
+           *** NOTE: Axis is in use by grid EVEN
+           *** NOTE: Not deleted: YODD
+           *** NOTE: Axis is in use by grid G2
+           *** NOTE: Not deleted: ZEVEN
+           *** NOTE: Axis is in use by grid EVEN
+           *** NOTE: Not deleted: ZODD
+           *** NOTE: Axis is in use by grid G3
+           *** NOTE: Not deleted: TEVEN
+           *** NOTE: Axis is in use by grid EVEN
+           *** NOTE: Not deleted: TODD
+           *** NOTE: Axis is in use by grid G4
+           *** NOTE: Not deleted: XCOARSE
+           *** NOTE: Axis is in use by grid GCOARSE
+           *** NOTE: Not deleted: YFINE
+           *** NOTE: Axis is in use by grid GFINE
+           *** NOTE: Not deleted: YCOARSE
+           *** NOTE: Axis is in use by grid GCOARSE
+           *** NOTE: Not deleted: XFINE
+           *** NOTE: Axis is in use by grid GFINE
+           *** NOTE: Not deleted: TAX48
+           *** NOTE: Axis is in use by grid G48
+           *** NOTE: Not deleted: XEZ1
+           *** NOTE: Axis is in use by grid GEZ1
+           *** NOTE: Not deleted: XEZ2
+           *** NOTE: Axis is in use by grid GEZ2
+           *** NOTE: Not deleted: YEZ
+           *** NOTE: Axis is in use by grid GEZ2
+           *** NOTE: Not deleted: ZEZ
+           *** NOTE: Axis is in use by grid GEZ2
+           *** NOTE: Not deleted: XEZ3
+           *** NOTE: Axis is in use by grid GEZ3
+           *** NOTE: Not deleted: LON_FIELD_J_AXIS
+           *** NOTE: Axis is in use by grid LON_FIELD_GRID
+           *** NOTE: Not deleted: LAT_FIELD_I_AXIS
+           *** NOTE: Axis is in use by grid LAT_FIELD_GRID
+           *** NOTE: Not deleted: LAT_FIELD_J_AXIS
+           *** NOTE: Axis is in use by grid LAT_FIELD_GRID
+           *** NOTE: Not deleted: LON_FIELD_I_AXIS
+           *** NOTE: Axis is in use by grid LON_FIELD_GRID
+           *** NOTE: Not deleted: XIRREG
+           *** NOTE: Axis is in use by grid GIRREG
+           *** NOTE: Not deleted: TCENTURY
+           *** NOTE: Axis is in use by grid GCENTURY
+           *** NOTE: Not deleted: TAX5DAY
+           *** NOTE: Axis is in use by grid G5DAY
+           *** NOTE: Not deleted: XAX10
+           *** NOTE: Axis is in use by grid G5_10
+           *** NOTE: Not deleted: X5
+           *** NOTE: Axis is in use by grid GSRC
+           *** NOTE: Not deleted: Y5
+           *** NOTE: Axis is in use by grid G10X5
+           *** NOTE: Not deleted: TIME1
+           *** NOTE: Axis is in use by grid GHB1
+           *** NOTE: Not deleted: TIME2
+           *** NOTE: Axis is in use by grid GCQ1
+           *** NOTE: Not deleted: TAX
+           *** NOTE: Axis is in use by grid GFORMAT
+           *** NOTE: Not deleted: X4
+           *** NOTE: Axis is in use by grid G4D
+           *** NOTE: Not deleted: Y4
+           *** NOTE: Axis is in use by grid G4D
+           *** NOTE: Not deleted: Z4
+           *** NOTE: Axis is in use by grid G4D
+           *** NOTE: Not deleted: T4
+           *** NOTE: Axis is in use by grid G4D
+           *** NOTE: Not deleted: XCHANNEL
+           *** NOTE: Axis is in use by grid GSIGMA
+           *** NOTE: Not deleted: YRISE
+           *** NOTE: Axis is in use by grid GSIGMA
+           *** NOTE: Not deleted: ZLAYER
+           *** NOTE: Axis is in use by grid GSIGMA
+           *** NOTE: Not deleted: TIME
+           *** NOTE: Axis is in use by grid GSIGMA
+           *** NOTE: Not deleted: Z1
+           *** NOTE: Axis is in use by grid G1
+           *** NOTE: Not deleted: TCAL
+           *** NOTE: Axis is in use by grid GSRC
+           *** NOTE: Not deleted: XTROP
+           *** NOTE: Axis is in use by grid GXYT
+           *** NOTE: Not deleted: YTROP
+           *** NOTE: Axis is in use by grid GXYT
+           *** NOTE: Not deleted: ZAX
+           *** NOTE: Axis is in use by grid GFORMAT
+           *** NOTE: Not deleted: Y1
+           *** NOTE: Axis is in use by grid GSRC
+           *** NOTE: Not deleted: Y2
+           *** NOTE: Axis is in use by grid G10X2
+           *** NOTE: Not deleted: JMONTHS
+           *** 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: 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: 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
@@ -1345,14 +1369,14 @@ define axis/x=130e:500:10/modulo=360 xsub
  LISTing to file test_subspan_modulo.nc
  LISTing to file test_subspan_modulo.nc
  LISTing to file test_subspan_modulo.nc
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** 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
+           *** NOTE: Not using NetCDF strides for multi-cycle modulo
+           *** 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /THICKNESS ignored  on /SYMBOL=DOT
- *** NOTE: /SIZE= ignored  on /SYMBOL=DOT
+           *** NOTE: /THICKNESS ignored  on /SYMBOL=DOT
+           *** NOTE: /SIZE= ignored  on /SYMBOL=DOT
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1361,10 +1385,10 @@ define axis/x=130e:500:10/modulo=360 xsub
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY 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"
+           *** NOTE: Undecipherable value of netCDF attribute modulo on variable lon_moderr
+           *** NOTE: modulo = "j"
+           *** NOTE: Undecipherable value of netCDF attribute modulo on variable time_moderr
+           *** NOTE: modulo = "j"
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1407,11 +1431,12 @@ SHADE/L=1/LEV=0.01d sst
 POLYGON/KEY/LEV=0.01d/coord_ax=Z  PLMxpoly+PLMxpolymark, PLMypoly+PLMypolymark, PLMpolydata
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
- *** NOTE: Valid calendars are GREGORIAN NOLEAP    JULIAN    360_DAY   ALL_LEAP
- *** NOTE: A dummy axis of subscripts will be used
+           *** NOTE: Valid calendars are GREGORIAN NOLEAP    JULIAN    360_DAY   ALL_LEAP
+           *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
+           *** NOTE: A dummy axis of subscripts will be used
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+rm: cannot remove `input.txt': No such file or directory
 ls: input.txt: No such file or directory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -1419,10 +1444,10 @@ Replacing definition of axis XAX
 Replacing definition of axis YAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,units,dset,
+ **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,f0,units,dset,
             dsetnum,dsetpath,dsettitle,*size,*start,*end,
             *units,*axis,nc_scale,nc_offset,user_scale,user_offset,
-            calendar,dtype,xmod,tmod,status,isDepth,isReady
+            calendar,dtype,xmod,tmod,status,isDepth,isReady,defined
           axy, return=xx
 MESSAGE/CONTINUE `axy, return=xx`
  PERMANENT data cleared from memory
@@ -1433,7 +1458,7 @@ Replacing definition of axis XAX
  TEMPORARY data cleared from memory
 Replacing definition of axis YAX
 Replacing definition of axis Z1
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1443,8 +1468,8 @@ Replacing definition of axis Z1
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
- *** NOTE: Axis has repeated values -- micro-adjusting TIME
+           *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
+           *** NOTE: Axis has repeated values -- micro-adjusting TIME
  **ERROR: illegal limits: "DUMMY" does not exist at T=JAN-1990
           Axis extremes are T=DEC-1997:JAN-1998
 list/t=1-jan-1990 dummy
@@ -1515,7 +1540,7 @@ SHOW VAR/XML
  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: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** 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
@@ -1590,8 +1615,8 @@ Replacing definition of grid AGRID
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1627,9 +1652,9 @@ Replacing definition of axis YAX
  LISTing to file a.nc
 Replacing definition of axis TAX
 Replacing definition of axis TAX
- *** NOTE: Axis definition error on axis: TAX
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
+           *** NOTE: Axis definition error on axis: TAX
+           *** NOTE: Bounds given describe non-contiguous axis cells
+           *** NOTE: Using the LOWER bound specified for each axis cell
 Replacing definition of axis TAX
  **ERROR: improper grid or axis definition: BOUNDS specified do not correctly enclose coordinate points
 def axis/t/bounds tax={1.2,2,3.2,5,7,8.8,9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5}
@@ -1641,16 +1666,16 @@ def axis/t/bounds tax={0,2,3.2,5,7,8,9.9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,
 def axis/t/bounds tax={0,2,3.2,5,7,8,9.9}, {0.5,1.5,2.5,3.5,6.5,7.5,8.5,9.5}
  **ERROR: improper grid or axis definition: dimension of bounds (15) must be 2*N or N+1, N=number of axis coordinates (7)
 def axis/t/bounds tax={1.2,2,3.2,5,7,8.4,9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5,10.5}
- *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
+           *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
  **ERROR: improper grid or axis definition: BOUNDS specified do not correctly enclose coordinate points
 def axis/t/bounds tax= {12, 12.2, 36, 36.2, 60, 60.2, 84, 84.2, 108} , {0,24, 0,24, 24,48, 24,48, 48,72, 48,72, 72,96, 72,96, 96,120}
- *** NOTE: Not deleted: TAX
- *** NOTE: Axis is in use by grid GFORMAT
+           *** NOTE: Not deleted: TAX
+           *** NOTE: Axis is in use by grid GFORMAT
  LISTing to file a.nc
  LISTing to file a.nc
- *** NOTE: Cannot have both /BOUNDS and /RIGID Ignoring /RIGID
+           *** NOTE: Cannot have both /BOUNDS and /RIGID Ignoring /RIGID
  LISTing to file a.nc
- *** NOTE: Cannot have both /BOUNDS and /EDGES Ignoring /EDGES
+           *** NOTE: Cannot have both /BOUNDS and /EDGES Ignoring /EDGES
  LISTing to file a.nc
 Replacing definition of axis XAX
 Replacing definition of axis ZAX
@@ -1659,19 +1684,19 @@ Replacing definition of axis TAX
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: MONTH_REG
- *** NOTE: Write the data initially with the /BOUNDS qualifier
+           *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
+           *** NOTE: This will result in incorrect box sizes on record axis: MONTH_REG
+           *** NOTE: Write the data initially with the /BOUNDS qualifier
  LISTing to file a.nc
  LISTing to file a.nc
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
- *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
- *** NOTE: Substituting coordinate midpoints
- *** 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
+           *** NOTE: Axis definition error on axis: TGAP
+           *** NOTE: Bounds given describe non-contiguous axis cells
+           *** NOTE: Using the LOWER bound specified for each axis cell
+           *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
+           *** NOTE: Substituting coordinate midpoints
+           *** 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of grid TGRID
@@ -1679,16 +1704,16 @@ Replacing definition of grid TGRID
 def axis/t/cal=nogood/t=1-jan-2000:1-jan-2010:1/units=months tax
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Units  not recognized: something
- *** NOTE: They will not be convertible:
- *** NOTE: Units  not recognized: something
- *** NOTE: They will not be convertible:
- *** NOTE: Units  not recognized: zorro
- *** NOTE: They will not be convertible:
- *** NOTE: Units  not recognized for T axis: meters
- *** NOTE: They will not be convertible
- *** NOTE: Units  not recognized for Y axis: seconds
- *** NOTE: They will not be convertible
+           *** NOTE: Units  not recognized: something
+           *** NOTE: They will not be convertible:
+           *** NOTE: Units  not recognized: something
+           *** NOTE: They will not be convertible:
+           *** NOTE: Units  not recognized: zorro
+           *** NOTE: They will not be convertible:
+           *** NOTE: Units  not recognized for T axis: meters
+           *** NOTE: They will not be convertible
+           *** NOTE: Units  not recognized for Y axis: seconds
+           *** NOTE: They will not be convertible
 Replacing definition of axis TAX
 Replacing definition of axis XAX
  PERMANENT data cleared from memory
@@ -1701,7 +1726,7 @@ Replacing definition of axis XAX
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
 Replacing definition of axis TAX
 Replacing definition of axis ZAX
  PERMANENT data cleared from memory
@@ -1768,7 +1793,7 @@ plot/sym/siz=0.3 0*t[gt=vwnd]
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
 Replacing definition of axis TAX
  LISTing to file aa.nc
  LISTing to file cc.nc
@@ -1780,27 +1805,27 @@ 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: Valid argument $2 choices are: a|b|c|d|
+           *** 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: Valid argument $1 choices are: xxxxx|goodbye
+           *** 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: Valid argument $3 choices are: hello|goodbye
+           *** 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: Valid symbol test2 choices are: hello|bye|
+           *** 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: Valid symbol t2 choices are: solong>really hello|bye|
+           *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1824,29 +1849,28 @@ Replacing definition of axis XQ
 Replacing definition of axis YQ
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Evenly spaced axis has edges definition: TCOADS - ignored
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis TIME1
- *** NOTE: grid  used by data set coads_clim
- *** NOTE: Redefinition may alter apparent contents of data set
+           *** NOTE: grid GHB2 used by data set coads_clim
+           *** NOTE: Redefinition may alter apparent contents of data set
 Replacing definition of axis TIME1
- *** NOTE: grid  used by data set coads_clim
- *** NOTE: Redefinition may alter apparent contents of data set
+           *** NOTE: grid GHB2 used by data set coads_clim
+           *** NOTE: Redefinition may alter apparent contents of data set
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis COADSX.ILLEGAL
- *** NOTE: grid  used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
- *** NOTE: grid  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
+           *** 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  used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
- *** NOTE: grid  used by data set illeg_axname
- *** 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
+           *** 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
@@ -1881,10 +1905,10 @@ Replacing definition of axis TIME
 Replacing definition of axis TAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
  **ERROR: improper grid or axis definition: error in start,end,delta
 DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/t myt
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
  **ERROR: improper grid or axis definition: error in start,end,delta
 DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/T/CALENDAR=noleap myt
  PERMANENT data cleared from memory
@@ -1970,7 +1994,7 @@ sho att/all .
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1979,26 +2003,26 @@ sho att/all .
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  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 temp.pp
- *** NOTE: Changing the length  of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.some_text
+           *** NOTE: Changing the value of attribute temp.pp
+           *** NOTE: Changing the length  of attribute temp.pp
+           *** NOTE: Changing the value of attribute temp.some_text
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute temp.long_name
- *** NOTE: Changing the value of attribute temp.units
- *** NOTE: Changing the value of attribute temp.missing_value
- *** NOTE: Changing the value of attribute temp.missing_value
+           *** NOTE: Changing the value of attribute temp.long_name
+           *** NOTE: Changing the value of attribute temp.units
+           *** NOTE: Changing the value of attribute temp.missing_value
+           *** NOTE: Changing the value of attribute temp.missing_value
  LISTing to file a.nc
  LISTing to file a.nc
- *** NOTE: Changing the value of attribute (PSZT1).positive
- *** NOTE: Changing the type of attribute (coadsx).modulo
- *** NOTE: Changing the value of attribute (coadsx).modulo
- *** NOTE: Changing the value of attribute (TIME4).time_origin
+           *** NOTE: Changing the value of attribute (PSZT1).positive
+           *** NOTE: Changing the type of attribute (coadsx).modulo
+           *** NOTE: Changing the value of attribute (coadsx).modulo
+           *** NOTE: Changing the value of attribute (TIME4).time_origin
  **ERROR: command syntax: enclose coordinate variable name in parentheses
 list coadsx.units
  **ERROR: variable unknown or not in data set: COADSX.UNITS
@@ -2009,17 +2033,17 @@ set att (COADSX81_81).axis = "Z"
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute temp.pp
- *** NOTE: Changing the length  of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.some_text
- *** NOTE: Changing the type of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.pp
- *** NOTE: Changing the type of attribute temp.some_text
- *** NOTE: Changing the value of attribute temp.some_text
- *** NOTE: Changing the value of attribute temp.long_name
- *** NOTE: Changing the value of attribute temp.units
- *** NOTE: Changing the type of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.pp
+           *** NOTE: Changing the value of attribute temp.pp
+           *** NOTE: Changing the length  of attribute temp.pp
+           *** NOTE: Changing the value of attribute temp.some_text
+           *** NOTE: Changing the type of attribute temp.pp
+           *** NOTE: Changing the value of attribute temp.pp
+           *** NOTE: Changing the type of attribute temp.some_text
+           *** NOTE: Changing the value of attribute temp.some_text
+           *** NOTE: Changing the value of attribute temp.long_name
+           *** NOTE: Changing the value of attribute temp.units
+           *** NOTE: Changing the type of attribute temp.pp
+           *** NOTE: Changing the value of attribute temp.pp
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file a.nc
@@ -2055,10 +2079,10 @@ Replacing definition of grid MYGRID
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
  LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
@@ -2067,27 +2091,27 @@ Replacing definition of grid MYGRID
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file a.nc
- *** NOTE: Changing the value of attribute (COADSX).point_spacing
- *** NOTE: Changing the value of attribute (COADSY).point_spacing
+           *** NOTE: Changing the value of attribute (COADSX).point_spacing
+           *** NOTE: Changing the value of attribute (COADSY).point_spacing
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
 NetCDF: Numeric conversion not representable (OPeNDAP/netCDF Error code -60)
  data in attribute missing_value not representable in output type NC_INT
 LIST/FORMAT=CDF/file=a.nc/clobber/x=132w/k=1 temp
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  **ERROR: unknown or invalid argument: Can SET VARIABLE/OUTTYPE=INPUT, DOUBLE, FLOAT, INT, SHORT, BYTE
 set var/outtype=char broiled
  **ERROR: unknown or invalid argument: Can SET VARIABLE/OUTTYPE=INPUT, DOUBLE, FLOAT, INT, SHORT, BYTE
 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 (PSXT1).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 (PSYT1).units
+           *** NOTE: Changing the value of attribute (PSXT1).units
+           *** NOTE: Changing the value of attribute (PSYT1).units
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2098,17 +2122,17 @@ set var/outtype=garbage broiled
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis X2AX
- *** NOTE: Changing the value of attribute (z4ax).positive
+           *** NOTE: Changing the value of attribute (z4ax).positive
  LISTing to file string4d.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute (TIME7).units
- *** NOTE: Changing the value of attribute (TIME7).units
- *** NOTE: Changing the value of attribute (TIME7).time_origin
- *** NOTE: Changing the value of attribute (TIME7).time_origin
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: Changing the value of attribute (TIME7).units
+           *** NOTE: Changing the value of attribute (TIME7).units
+           *** NOTE: Changing the value of attribute (TIME7).time_origin
+           *** NOTE: Changing the value of attribute (TIME7).time_origin
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
 Replacing definition of axis TIME
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
@@ -2121,10 +2145,10 @@ curl error details:
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY 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 # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
  Using every   3th vector in the X direction
  Using every   4th vector in the Y direction
- *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
+           *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **TMAP ERR: non-existent or not on line
@@ -2176,7 +2200,7 @@ shade sst[t=@AVE,Z=@ave]
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 360.00 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 360.00 days
  LISTing to file t3file.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2187,18 +2211,18 @@ shade sst[t=@AVE,Z=@ave]
  LISTing to file subdir/0000_a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
 Replacing definition of axis TAX
  LISTing to file a.nc
- *** NOTE: Not deleted: TAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: cannot parse "units since date", date= "event"; leaving units string
+           *** NOTE: Not deleted: TAX
+           *** NOTE: Axis is in use by grid GFORMAT
+           *** NOTE: cannot parse "units since date", date= "event"; leaving units string
  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
- *** NOTE: Invalid I axis limits ignored: TEMP
+           *** NOTE: Invalid I axis limits ignored: TEMP
  **ERROR: dimensions improperly specified: specified data is not a line
            - its a 2D region: "plot/i=100/k=1 temp[x=122.5W]"
 plot/i=100/k=1 temp[x=122.5W]
@@ -2245,10 +2269,10 @@ Replacing definition of axis XAX
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
 Replacing definition of axis TIME9
- *** NOTE: grid  used by data set coads_climatology
- *** NOTE: Redefinition may alter apparent contents of data set
+           *** NOTE: grid GSQ1 used by data set coads_climatology
+           *** NOTE: Redefinition may alter apparent contents of data set
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis TIME
@@ -2274,9 +2298,9 @@ cancel axis/stride COADSX
 set axis/stride=2/offset=4 COADSX
  **ERROR: invalid command: not a strided axis: COADSX
 cancel axis/stride COADSX
- *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
+           *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
  LISTing to file d2.nc
- *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
+           *** 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
  PERMANENT data cleared from memory
@@ -2292,45 +2316,45 @@ set axis/stride=2 NORMAL
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
- *** NOTE: They will not be convertible:
+           *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
+           *** NOTE: They will not be convertible:
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  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
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
- *** NOTE: Axis has repeated values -- micro-adjusting TIME
- *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
- *** NOTE: Valid calendars are GREGORIAN NOLEAP    JULIAN    360_DAY   ALL_LEAP
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
- *** 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"
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
- *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
- *** NOTE: They will not be convertible:
- *** NOTE: regarding ./climatological_axes.cdf ...
- *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
- *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
- *** NOTE: A dummy axis of subscripts will be used
- *** 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
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
+           *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
+           *** NOTE: Axis has repeated values -- micro-adjusting TIME
+           *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
+           *** NOTE: Substituting coordinate midpoints
+           *** NOTE: Valid calendars are GREGORIAN NOLEAP    JULIAN    360_DAY   ALL_LEAP
+           *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
+           *** NOTE: A dummy axis of subscripts will be used
+           *** NOTE: Axis definition error on axis: TGAP
+           *** NOTE: Bounds given describe non-contiguous axis cells
+           *** NOTE: Using the LOWER bound specified for each axis cell
+           *** 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"
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
+           *** NOTE: They will not be convertible:
+           *** NOTE: regarding ./climatological_axes.cdf ...
+           *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
+           *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
+           *** NOTE: A dummy axis of subscripts will be used
+           *** 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
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -2454,8 +2478,8 @@ Replacing definition of axis TIME
  LISTing to file b.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Units on axis "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
+           *** NOTE: Units on axis "ENS" are not recognized: count
+           *** NOTE: They will not be convertible:
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file 1a.dat
@@ -2511,31 +2535,31 @@ Replacing definition of grid GG
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
+           *** NOTE: @NGD of string variable, counting null strings as missing
+           *** NOTE: @NBD of string variable, counting null strings as missing
 Replacing definition of axis XAX
 Replacing definition of axis YAX
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
+           *** NOTE: @NGD of string variable, counting null strings as missing
+           *** NOTE: @NGD of string variable, counting null strings as missing
+           *** NOTE: @NGD of string variable, counting null strings as missing
 Replacing definition of axis ZAX
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
+           *** NOTE: @NBD of string variable, counting null strings as missing
+           *** NOTE: @NBD of string variable, counting null strings as missing
+           *** NOTE: @NBD of string variable, counting null strings as missing
 Replacing definition of axis TAX
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
+           *** NOTE: @NGD of string variable, counting null strings as missing
+           *** NOTE: @NGD of string variable, counting null strings as missing
+           *** NOTE: @NGD of string variable, counting null strings as missing
 Replacing definition of axis XAX
 Replacing definition of axis YAX
 Replacing definition of axis ZAX
 Replacing definition of axis TAX
- *** NOTE: @NBD 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
- *** 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
+           *** NOTE: @NBD 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
+           *** 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -2597,9 +2621,9 @@ Replacing definition of grid G1
  LISTing to file test_abs.cdf
  LISTing to file test_abs.cdf
  LISTing to file test_abs.cdf
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
- *** NOTE: Write the data initially with the /BOUNDS qualifier
+           *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
+           *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
+           *** NOTE: Write the data initially with the /BOUNDS qualifier
  LISTing to file test2.cdf
  LISTing to file FL.cdf
  LISTing to file FTLON.cdf
@@ -2621,47 +2645,47 @@ list/format=cdf/keep_axnames/append/file=test_abs.cdf ijkl[k=@ave]
              disordered output coordinate value:         363  Axis: TCENTURY
 list/format=cdf/keep_axnames/l=13/append/file=test_abs.cdf l1
  LISTing to file FI.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
  LISTing to file test_fil.cdf
  LISTing to file test_fil.cdf
@@ -2673,80 +2697,80 @@ list/format=cdf/keep_axnames/l=13/append/file=test_abs.cdf l1
  LISTing to file test_fil.cdf
  LISTing to file test_fil.cdf
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf ijk
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf ikl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf ijl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSYT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf jkl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXU doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf ijkl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=1:50/l=2:3 ijl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=51:100/l=2:3 ijl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXU doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=30:40/k=5/l=1:3 ijkl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSZT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf iavejkl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXU doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf ijavekl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXU doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf ijkavel
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXU doesnt match CDF file
 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
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file a.nc
@@ -2770,8 +2794,8 @@ Replacing definition of axis TSEC
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis CAXIS
- *** NOTE: grid  used by data set grads_bug_file
- *** NOTE: Redefinition may alter apparent contents of data set
+           *** NOTE: grid GMY1 used by data set grads_bug_file
+           *** NOTE: Redefinition may alter apparent contents of data set
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -2782,15 +2806,15 @@ Replacing definition of axis CAXIS
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
 Replacing definition of axis TAX
- *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
- *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
+           *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
+           *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis ZAXLEVITR
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis ZAXLEVITR
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file xz.nc
@@ -2855,22 +2879,22 @@ 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
+           *** NOTE: Changing the value of attribute sst.history
  PERMANENT data cleared from memory
  TEMPORARY 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 "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
+           *** NOTE: Units on axis "ENS" are not recognized: count
+           *** NOTE: They will not be convertible:
  LISTing to file mypack.nc
- *** NOTE: LON1_15: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: LAT1800_1800: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: ENS: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: TIME13: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: Units on axis "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
+           *** NOTE: LON1_15: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+           *** NOTE: LAT1800_1800: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+           *** NOTE: ENS: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+           *** NOTE: TIME13: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+           *** NOTE: Units on axis "ENS" are not recognized: count
+           *** NOTE: They will not be convertible:
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -2909,14 +2933,17 @@ 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file nc4_deflate4.nc
- *** NOTE: NetCDF Classic style cannot set compression, ignoring /DEFLATE
- *** NOTE: NetCDF Classic style cannot set chunking, ignoring /*CHUNK
+           *** NOTE: NetCDF Classic style cannot set compression, ignoring /DEFLATE
+           *** NOTE: NetCDF Classic style cannot set chunking, ignoring /*CHUNK
  LISTing to file nc4_nodeflate3.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2927,13 +2954,13 @@ Re-defining viewport V8
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file nc4_inttemp_classic.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
  LISTing to file nc4_inttemp_set_list_deflate_chunk.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
  LISTing to file nc4_inttemp_shuffle_set_list_deflate_chunk.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
  LISTing to file nc4_inttemp_set_classic.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
  LISTing to file nc4_deflate4_t1.nc
  **TMAP ERR: syntax error in string
              If ChunkSize is set for any dimension of var, must set for all its dimensions
@@ -2948,8 +2975,8 @@ LIST/FORMAT=CDF/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Not deleted: X10
- *** NOTE: Axis is in use by grid G10X5
+           *** NOTE: Not deleted: X10
+           *** NOTE: Axis is in use by grid G10X5
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -2961,11 +2988,11 @@ LIST/FORMAT=CDF/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of grid MYGRID
- *** NOTE: Axis reset to be regular (evenly-spaced): MYX
- *** NOTE: Axis is already regular: MYX
+           *** 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
+           *** NOTE: Axis reset to be regular (evenly-spaced): MYX1
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  Use the GO command to name a file of FERRET commands to be executed.
@@ -2992,7 +3019,7 @@ Replacing definition of grid MYGRID
      e.g.   yes? GO filename
  
  Use "GO/HELP filename" to read documentation in  the file to be executed.
- *** NOTE: No active redirects to cancel
+           *** NOTE: No active redirects to cancel
  Use the GO command to name a file of FERRET commands to be executed.
      e.g.   yes? GO filename
  
@@ -3001,14 +3028,14 @@ Replacing definition of grid MYGRID
      e.g.   yes? GO filename
  
  Use "GO/HELP filename" to read documentation in  the file to be executed.
- *** NOTE: Axis is already regular: MYAXIS
+           *** NOTE: Axis is already regular: MYAXIS
  **ERROR: variable unknown or not in data set: GARBAGE
 show grid garbage
  Use the GO command to name a file of FERRET commands to be executed.
      e.g.   yes? GO filename
  
  Use "GO/HELP filename" to read documentation in  the file to be executed.
- *** NOTE: stderr is not redirected
+           *** NOTE: stderr is not redirected
  Use the GO command to name a file of FERRET commands to be executed.
      e.g.   yes? GO filename
  
@@ -3061,11 +3088,6 @@ Replacing definition of axis YAX
  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
- *** NOTE: 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.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb [...]
- *** NOTE: exceeds expected length. Maximum characters: 2048
  LISTing to file aa.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3093,11 +3115,11 @@ Replacing definition of axis YAX_DUP_AXNAMES
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** 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
+           *** NOTE: No missing_value or _FillValue attribute. Using NaN for variable: broiled
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -3117,7 +3139,7 @@ list/L=15:20 tax_year(t[gt=tvar],tvar)
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis lev
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis lev
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis XAX
@@ -3133,20 +3155,20 @@ Replacing definition of axis TAXIS
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis XAX
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.030, to avoid running off page.
+           *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
+           *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
+           *** NOTE: Adjusting Y-axis label size from 0.100 to 0.030, to avoid running off page.
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
+           *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -3208,10 +3230,10 @@ Replacing definition of axis TAXIS
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY 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 ...
+           *** 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 ...
 Replacing definition of axis TNEW
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3288,34 +3310,32 @@ 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
+           *** 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
- **ERROR: error defining aggregate dataset: Aggregate dataset not defined
-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: 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
- *** 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
+           *** 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -3326,8 +3346,8 @@ define data/agg windy = 1,2
  TEMPORARY 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: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
+           *** NOTE: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
+           *** NOTE: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -3352,7 +3372,7 @@ SET DAT/FORM=CDF ./z1.nc
  TEMPORARY data cleared from memory
  LISTing to file mytype.nc
  LISTing to file mytype.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
  LISTing to file mytype.nc
  LISTing to file mytype.nc
  LISTing to file mytype.nc
@@ -3372,7 +3392,7 @@ SET DAT/FORM=CDF ./z1.nc
  TEMPORARY data cleared from memory
  LISTing to file mytype.nc
  LISTing to file mytype.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
  LISTing to file mytype.nc
  LISTing to file mytype.nc
  LISTing to file mytype.nc
@@ -3388,7 +3408,7 @@ LIST/FORMAT=CDF/clobber/file=mytype.nc my_data
  LISTing to file mytype.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- **ERROR: improper grid or axis definition: data for DEFINE AXIS/FROM_VARIABLE is not monotonic at index 12
+ **ERROR: improper grid or axis definition: data for DEFINE AXIS/FROM_VARIABLE is not monotonically increasing at index 12
 define axis/t/units=days tax = tvar
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3424,11 +3444,7 @@ Replacing definition of axis TDAY
  LISTing to file aa.nc
  LISTing to file aa.nc
  LISTing to file aa.nc
-ncks: WARNING Overwriting global attribute history
-ncks: WARNING Overwriting global attribute Conventions
-ncks: WARNING Overwriting attribute point_spacing for output variable ZAXIS_ORIG
-ncks: WARNING Overwriting attribute axis for output variable ZAXIS_ORIG
-ncks: WARNING Overwriting attribute standard_name for output variable ZAXIS_ORIG
+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)
@@ -3473,8 +3489,8 @@ Replacing definition of axis AXI
 Replacing definition of axis AXI_COARSE
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: unrepairable repeated axis coords on axis trdim at subscript 2
- *** NOTE: A dummy axis of subscripts will be used
+           *** NOTE: unrepairable repeated axis coords on axis trdim at subscript 2
+           *** NOTE: A dummy axis of subscripts will be used
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file sst_new.nc
@@ -3493,9 +3509,9 @@ Replacing definition of axis ZAX
 Replacing definition of axis XIRREG
  LISTing to file a.nc
  LISTing to file a.nc
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
+           *** NOTE: Axis definition error on axis: TGAP
+           *** NOTE: Bounds given describe non-contiguous axis cells
+           *** NOTE: Using the LOWER bound specified for each axis cell
  LISTing to file a.nc
  LISTing to file a.nc
  PERMANENT data cleared from memory
@@ -3505,8 +3521,8 @@ Replacing definition of axis XIRREG
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY 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
+           *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
+           *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
  **ERROR: command syntax: COLOR
           /COLOR must have an argument for PLOT/OVERLAY
 plot/i=1:100/over/COLOR 0.6*sin(i/7)
@@ -3516,9 +3532,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: 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
  **ERROR: unknown defining grid: G=NOEXIST
 list b
  **ERROR: command syntax: 45S
@@ -3530,8 +3546,9 @@ 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
- *** NOTE: Not deleted: ENSEMBLE
- *** NOTE: Axis is in use by grid (G089)
+Replacing definition of axis X1
+Replacing definition of axis Y1
+Replacing definition of axis ZAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -3544,7 +3561,7 @@ list f
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute a.ival
+           *** NOTE: Changing the value of attribute a.ival
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **TMAP ERR: non-existent or not on line
@@ -3564,8 +3581,8 @@ SET DAT/FORM=CDF snoopy.dat
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: regarding ./climatological_axes.cdf ...
- *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
+           *** NOTE: regarding ./climatological_axes.cdf ...
+           *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3604,8 +3621,8 @@ LIST/FORMAT=CDF/clobber/keep/file=nc b,a[d=1]
 shade b
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute v1.long_name
- *** NOTE: Changing the value of attribute v1.units
+           *** NOTE: Changing the value of attribute v1.long_name
+           *** NOTE: Changing the value of attribute v1.units
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: attribute undefined or invalid attribute name: temp.noexist[d=levitus_climatology]
@@ -3625,9 +3642,9 @@ set var/name=psi myvar
 set var/name=diff w
  PERMANENT data cleared from memory
  TEMPORARY 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
+           *** NOTE: Axis definition error on axis: MONTH_IRREG. Bounds describe cells that overlap one another
+           *** NOTE: Error in bounds "MONTH_IRREG_bnds" or bounds do not enclose point on axis MONTH_IRREG
+           *** NOTE: Substituting coordinate midpoints
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis TAX
@@ -3657,12 +3674,12 @@ list tax_datestring (tt[L=3], tt, 5)
 list tax_datestring (tt[L=3], "my_tax", "minutes")
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Error in bounds "TAX_BB_PTSPAC_bnds" or bounds do not enclose point on axis TAX_BB_PTSPAC
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: Error in bounds "TAX_BB_EVEN_NOENC_bnds" or bounds do not enclose point on axis TAX_BB_EVEN_NOENC
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: Error in bounds "TAX_BB_IRR_bnds" or bounds do not enclose point on axis TAX_BB_IRR
- *** NOTE: Substituting coordinate midpoints
+           *** NOTE: Error in bounds "TAX_BB_PTSPAC_bnds" or bounds do not enclose point on axis TAX_BB_PTSPAC
+           *** NOTE: Substituting coordinate midpoints
+           *** NOTE: Error in bounds "TAX_BB_EVEN_NOENC_bnds" or bounds do not enclose point on axis TAX_BB_EVEN_NOENC
+           *** NOTE: Substituting coordinate midpoints
+           *** NOTE: Error in bounds "TAX_BB_IRR_bnds" or bounds do not enclose point on axis TAX_BB_IRR
+           *** NOTE: Substituting coordinate midpoints
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: command syntax: must be a constant COS(1)
@@ -3703,17 +3720,17 @@ Replacing definition of axis TAX
 Replacing definition of axis XAXIS
  **ERROR: request exceeds memory setting: 2369 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.
+           *** 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.
 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.
+           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Ambiguous coordinates on X axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
- *** NOTE: Ambiguous coordinates on Y axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
+           *** NOTE: Ambiguous coordinates on X axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
+           *** NOTE: Ambiguous coordinates on Y axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
  LISTing to file aa.nc
  LISTing to file bb.nc
  LISTing to file a.nc
@@ -3745,6 +3762,22 @@ shade a
  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
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: value out of legal range: Negative argument to function. Argument 3 : SUBSTRING
+list substring("hello",1,-2)
+ **ERROR: value out of legal range: Negative argument to function. Argument 3 : SUBSTRING
+list substring("hello",1,-3)
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+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
@@ -3759,9 +3792,10 @@ Replacing definition of axis X2
 Replacing definition of axis Y2
  PERMANENT data cleared from memory
  TEMPORARY 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
+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
  **ERROR: unknown defining grid: G=NOEXIST
 list b
  **ERROR: command syntax: 45S
@@ -3773,101 +3807,90 @@ 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
- *** NOTE: Not deleted: ENSEMBLE
- *** NOTE: Axis is in use by grid (G091)
+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
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY 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
  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
+ LISTing to file aa.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+Replacing definition of axis TIME
  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 Tue Oct 7 10:44:14 PDT 2014
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY 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: unknown data set: BAD_D
+stat/l=1/x=180/y=0 a
+ 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
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: invalid command: REPEAT what ?
+repeat/range=1:2/name=row
+ **ERROR: invalid command: REPEAT what ?
+repeat/range=1:2/name=row
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAX
+Replacing definition of axis YAX
+ LISTing to file a.nc
+           *** NOTE: Not deleted: XAX
+           *** NOTE: Axis is in use by grid GFORMAT
+           *** NOTE: Not deleted: YAX
+           *** NOTE: Axis is in use by grid GFORMAT
+Replacing definition of axis TREDEF
+           *** NOTE: grid GSI1 used by data set a
+           *** NOTE: Redefinition may alter apparent contents of data set
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: invalid command: illegal format type - must be "GIF"
+          frame/format=hdf/file=a.hdf
+frame/format=hdf/file=a.hdf
+ **ERROR: invalid command: illegal format type - must be "GIF"
+          frame/file=a.png
+frame/file=a.png
diff --git a/bench/ansley_official.x86_64-linux_log b/bench/ansley_official.x86_64-linux_log
index 72dec23..d3b80b0 100644
--- a/bench/ansley_official.x86_64-linux_log
+++ b/bench/ansley_official.x86_64-linux_log
@@ -1,26 +1,36 @@
 Procedure run_all to run all FERRET benchmarks
-Running FERRET version /home/users/ansley/build/x86/FERRET/fer/ferret_c
--rwxr-xr-x 1 ansley tmap 53365065 Oct  7 10:08 /home/users/ansley/build/x86/FERRET/fer/ferret_c
-Using external functions from /home/users/ansley/build/x86/FERRET/external_functions/ext_func
+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 the tests of external functions y
-Benchmark run by ansley
-Note: ticket 2203
+Benchmark run by Karl
+Note: Benchmark tests on RHEL5-64
 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/tmap/ferret/linux/fer_dsets
+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/ansley/build/x86/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_EXTERNAL_FUNCTIONS=/home/users/ksmith/Ferret/ext_func/libs
+FER_FONTS=/home/users/ksmith/Ferret/ppl/fonts
+FER_GO=. /home/users/ksmith/Ferret/go /home/users/ksmith/Ferret/examples /home/users/ksmith/Ferret/contrib
 FER_GRIDS=.
-FER_LIBS=/home/users/tmap/ferret/x86_64-linux/lib
-FER_LINK_DIR=/home/users/tmap/ferret_link/linux
-FER_PALETTE=. /home/users/tmap/ferret/x86_64-linux/ppl
-PWD=/home/users/ansley/build/x86/FERRET/bench
-Beginning at Tue Oct 7 10:41:47 PDT 2014
+FER_LIBS=/home/users/ksmith/Ferret/lib
+FER_PALETTE=. /home/users/ksmith/Ferret/ppl
+FER_WEB_BROWSER=firefox
+Beginning at Mon Oct 26 17:21:34 PDT 2015
+!bn500_all_shell
+ 
+! this "shell" is used because the Unix redirection fails to echo commands
+! from the top level command file
+! ... havn't explored the reason ... they echo fine to the screen
+! *kob* 2/02/98 - newly created - copied from bn490_all_shell.jnl
+ 
+ 
+GO bn_all
+SET MODE VERIFY
 ! BN500_ALL.JNL
 ! - run all the benchmark tests
 ! - ordered (more or less) from least to most complex
@@ -125,6 +135,7 @@ Beginning at Tue Oct 7 10:41:47 PDT 2014
 ! 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
  
 ! Include this statement to compare the outupt of 6D Ferret with
 ! previous 4D benchmark logs.
@@ -301,10 +312,10 @@ SHOW DATA/FULL
  name     title                             I         J         K         L         M         N
  P        my P variable                   1:99999999  1:99999999  1:99999999  1:99999999  1:99999999  1:99999999
                on grid ABSTRACT with -1.E+34 for missing data
-             X=0.5:1.E+08  Y=0.5:1.E+08  Z=0.5:1.E+08  E=0.5:1.E+08  F=0.5:1
+             X=0.5:1.E+08  Y=0.5:1.E+08  Z=0.5:1.E+08  E=0.5:1.E+08  F=0.5:1.E+08  
  Q        Q                               1:99999999  1:99999999  1:99999999  1:99999999  1:99999999  1:99999999
                on grid ABSTRACT with -1.E+34 for missing data
-             X=0.5:1.E+08  Y=0.5:1.E+08  Z=0.5:1.E+08  E=0.5:1.E+08  F=0.5:1
+             X=0.5:1.E+08  Y=0.5:1.E+08  Z=0.5:1.E+08  E=0.5:1.E+08  F=0.5:1.E+08  
  
  /FORMAT = UNF
  /SKIP = 2
@@ -422,17 +433,18 @@ SHOW MODES
       LATIT_LABEL      SET               1
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
-      6D_LAB           SET
+      E_LABEL          SET               1
+      F_LABEL          SET               1
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
-      DESPERATE     CANCELLED      2560000
+      DESPERATE     CANCELLED         10000000
       GKS              SET
       REFRESH          SET
       METAFILE      CANCELLED      metafile.plt
       PPLLIST       CANCELLED      ppllist.out
       GUI           CANCELLED
-      LOGO             SET
+      LOGO          CANCELLED
       LABELS           SET
       GRATICULE     CANCELLED
       LINECOLORS       SET               6
@@ -441,7 +453,8 @@ SHOW MODES
       NODATA_LAB       SET
       SHRINK_YLAB   CANCELLED
       CURVILINEAR   CANCELLED
-      SIGMA         CANCELLED
+      LAYERZ        CANCELLED
+      6D_LAB           SET
 SET MODE IGNORE_ERROR
 SHOW MODES
       MODE            STATE        ARGUMENT
@@ -455,17 +468,18 @@ SHOW MODES
       LATIT_LABEL      SET               1
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
-      6D_LAB           SET
+      E_LABEL          SET               1
+      F_LABEL          SET               1
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
-      DESPERATE     CANCELLED      2560000
+      DESPERATE     CANCELLED         10000000
       GKS              SET
       REFRESH          SET
       METAFILE      CANCELLED      metafile.plt
       PPLLIST       CANCELLED      ppllist.out
       GUI           CANCELLED
-      LOGO             SET
+      LOGO          CANCELLED
       LABELS           SET
       GRATICULE     CANCELLED
       LINECOLORS       SET               6
@@ -474,7 +488,8 @@ SHOW MODES
       NODATA_LAB       SET
       SHRINK_YLAB   CANCELLED
       CURVILINEAR   CANCELLED
-      SIGMA         CANCELLED
+      LAYERZ        CANCELLED
+      6D_LAB           SET
 CANCEL MODE IGNORE_ERROR
 SHOW MODES
       MODE            STATE        ARGUMENT
@@ -488,17 +503,18 @@ SHOW MODES
       LATIT_LABEL      SET               1
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
-      6D_LAB           SET
+      E_LABEL          SET               1
+      F_LABEL          SET               1
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
-      DESPERATE     CANCELLED      2560000
+      DESPERATE     CANCELLED         10000000
       GKS              SET
       REFRESH          SET
       METAFILE      CANCELLED      metafile.plt
       PPLLIST       CANCELLED      ppllist.out
       GUI           CANCELLED
-      LOGO             SET
+      LOGO          CANCELLED
       LABELS           SET
       GRATICULE     CANCELLED
       LINECOLORS       SET               6
@@ -507,7 +523,8 @@ SHOW MODES
       NODATA_LAB       SET
       SHRINK_YLAB   CANCELLED
       CURVILINEAR   CANCELLED
-      SIGMA         CANCELLED
+      LAYERZ        CANCELLED
+      6D_LAB           SET
 SHOW MODE STUPID
       MODE            STATE        ARGUMENT
       STUPID        CANCELLED
@@ -796,19 +813,19 @@ SHOW VARIABLES
  
 ! SHOW MEMORY , LOAD
 SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+ Current size of FERRET memory cache: 100 MegaWords  (1 word = 8 bytes)
 SHOW MEMORY/TEMPORARY
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+ Current size of FERRET memory cache: 100 MegaWords  (1 word = 8 bytes)
 data loaded without /PERMANENT:
  SALT[D=gt4d011]                   X     mr:3  blk1:1  nblk:1
   101  /130W          50  /1.3N           1  /0              5  /07-SEP-1982  ...  / ...         ...  / ...
   105  /125W          50  /1.7N           1  /10             5  /13-SEP-1982  ...  / ...         ...  / ...
  
 SHOW MEMORY/PERMANENT
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+ Current size of FERRET memory cache: 100 MegaWords  (1 word = 8 bytes)
 data loaded with /PERMANENT:
 SHOW MEMORY/ALL
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+ Current size of FERRET memory cache: 100 MegaWords  (1 word = 8 bytes)
 all data in memory:
  SALT[D=gt4d011]                   X     mr:3  blk1:1  nblk:1
   101  /130W          50  /1.3N           1  /0              5  /07-SEP-1982  ...  / ...         ...  / ...
@@ -818,12 +835,12 @@ all data in memory:
 LET A=i
 LOAD/PERM/I=1:5 A
 SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+ Current size of FERRET memory cache: 100 MegaWords  (1 word = 8 bytes)
 SHOW MEMORY/FREE
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+ Current size of FERRET memory cache: 100 MegaWords  (1 word = 8 bytes)
             total memory table slots: 500
             total memory blocks: 2000
-            memory block size: 12800
+            memory block size: 50000
  
             number of free memory blocks: 1997
             largest free region: 1997
@@ -834,12 +851,12 @@ SHOW MEMORY/FREE
             number of blocks used /PERM: 1
 LOAD/TEMPORARY/I=1:5 A
 SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+ Current size of FERRET memory cache: 100 MegaWords  (1 word = 8 bytes)
 SHOW MEMORY/FREE
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+ Current size of FERRET memory cache: 100 MegaWords  (1 word = 8 bytes)
             total memory table slots: 500
             total memory blocks: 2000
-            memory block size: 12800
+            memory block size: 50000
  
             number of free memory blocks: 1998
             largest free region: 1997
@@ -1075,8 +1092,8 @@ say "demonstrate that these leading blanks:\
 demonstrate that these leading blanks:       really are preserved
  
 ! continuation prompts are ignored, too
-yes? say "demonstrate that these leading blanks:\
-...?        really are preserved"
+say "demonstrate that these leading blanks:\
+       really are preserved"
 demonstrate that these leading blanks:       really are preserved
  
 ! weird little blank line inputs
@@ -1143,7 +1160,7 @@ message/continue here is: $1"some text" and some more stuff
 here is: hello and some more stuff
  
 message/cont here is a big $1 and $3&some text&      ! default provided
- !-> message/cont here is a big hello and some text      ! default provided
+ !-> message/cont here is a big hello and some text
 here is a big hello and some text
  
 message/cont $3			! error - no default
@@ -1251,7 +1268,7 @@ go bn_dollar.sub ((x+y),(x-5))	! ignore comma, get single arg
 ! V510 3/00
 set mode ignore
   message/continue "$1"                ! final quote used to get mis-applied
- !-> message/continue "hello"                ! final quote used to get mis-applied
+ !-> message/continue "hello"
 hello
 set mode/last ignore
 go bn_dollar.sub \"hello\"                 ! quotations as part of argument
@@ -1320,7 +1337,7 @@ message/continue "2 squared + 2 squared =`2^2` + `2+2`"
 2 squared + 2 squared =4 + 4
  
 message/continue "50/0 =`50/0`"	! invalid result
- !-> message/continue "50/0 =bad"	! invalid result
+ !-> message/continue "50/0 =bad"
 50/0 =bad
  
 repeat/i=1:3 message/continue "I=`I`"
@@ -1348,7 +1365,7 @@ I=7
 !cancel region/X ! removed - temporary experiment 3/00 *sh*
  
 message/continue "2+2=``2+2``"	! double grave accents get condensed
- !-> message/continue "2+2=`2+2`"	! double grave accents get condensed
+ !-> message/continue "2+2=`2+2`"
 2+2=`2+2`
  
 message/continue A default substitution: $9"default string|2+2=`2+2`"
@@ -1368,7 +1385,7 @@ message/continue "1/300=`1/300,p=5`"
  !-> message/continue "1/300=0.0033333"
 1/300=0.0033333
 message/continue "1/300=`1/300,p=-5`"	! decimal places
- !-> message/continue "1/300=0.00333"	! decimal places
+ !-> message/continue "1/300=0.00333"
 1/300=0.00333
 message/continue "1/300=`1/300 , precision=10`"
  !-> message/continue "1/300=0.003333333333"
@@ -1592,13 +1609,24 @@ say `a,return=isize`          ! full evaluation occurs
 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
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ found   A        M: 10 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  !-> MESSAGE/CONTINUE 2
 2
-say `a[i=100:200],return=isize`    ! WRONG! because full evaluation is bypassed
+say `a[i=100:200],return=isize`    ! correct starting with Ferret v694 (tkt 2213)
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- !-> MESSAGE/CONTINUE 101
-101
+ eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    A        C:  6 dset:   0 I:  100  200  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    (C01,V08 C:  8 dset:   0 I:  100  200  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ found   (C11,V08 M:  5 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ !-> MESSAGE/CONTINUE 5
+5
 set mode/last diagnostic
  
 ! deliberate errors
@@ -1963,6 +1991,19 @@ CORRECT:sym sub
 ---->CORRECT
 ---->CORRECT again
 ---->nested: all is well after multi-line IF
+CORRECT
+CORRECT
+LOOP=1
+more
+LOOP=2
+more
+LOOP=1
+LOOP=2
+semicolon group
+more
+semicolon group
+CORRECT
+WE SEE THIS CUZ OF IMPLIED CLOSE TO THE PREVIOUS
 >>> --> DELIBERATE WARNING: UNCLOSED IF in NESTED GO FILE<<<
 ---->... now inside of nested IF clause
 ---->CORRECT
@@ -1974,10 +2015,6 @@ IF yes THEN
   say ---->... now inside of IF clause
 ---->... now inside of IF clause
  
- 
- 
- 
- 
 GO bn_reset
 cancel mode verify
 GO bn_expressions
@@ -10189,7 +10226,7 @@ plot/i=1:10/ylimits=1:40/nolabel i      ! note that /nolabel supresses XLAB
 plot/i=1:10/over/sym=2 i^1.1
 plot/i=1:10/over/sym=2/size=.12 i^1.2
 plot/i=1:10/over/sym=2/color=red i^1.3
-plot/i=1:10/over/thick/step i^1.4
+plot/i=1:10/over/thick/step/color=light_blue i^1.4
 plot/i=1:10/over/thick/color=blue/step=connected i^1.5
 plot/i=1:10/over/thick=3/color=purple/size=.14 i^1.6
  
@@ -10268,7 +10305,6 @@ fill/nolabel/title="Orthographic View" masked_sst, x_page, y_page
 !
 !go mp_fland
 go mp_land
-pause
 go mp_label 237.7 47.6 -1 0 .1 @IISeattle
 go mp_label 204.4 19.5 -1 0 .1 @IIHawaii
 go mp_graticule
@@ -10446,21 +10482,21 @@ GO bn_symbols	! added 6/22/95
  
 cancel symbols/all
 show symbols/all
-PPL$XPIXEL = "406"
-PPL$YPIXEL = "406"
+PPL$XPIXEL = "760"
+PPL$YPIXEL = "760"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.925"
-FERRET_PLATFORM = "Linux 2.6.18-371.12.1.el5 64-bit"
+FERRET_VERSION = "6.95"
+FERRET_PLATFORM = "Linux 2.6.18-406.el5 64-bit"
 FERRET_PRECISION = "double"
 NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:38:15 $"
-FERRET_MEMORY = "25.6"
-SESSION_DATE = " 7-Oct-14"
-SESSION_TIME = "10:41"
-SESSION_PID = "14259"
-DELTA_CPU = "6.08308"
-CLOCK_SECS = "12.483"
-CURRENT_DATE = " 7-Oct-14"
-CURRENT_TIME = "10:41:59"
+FERRET_MEMORY = "100"
+SESSION_DATE = "26-Oct-15"
+SESSION_TIME = "17:21"
+SESSION_PID = "28772"
+DELTA_CPU = "6.15006"
+CLOCK_SECS = "57.95"
+CURRENT_DATE = "26-Oct-15"
+CURRENT_TIME = "17:22:32"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
  
@@ -10475,21 +10511,21 @@ define symbol t_($s1) = hi	! define "t_hello" as a symbol
  
 ! exercise SHOW SYMBOL
 show symbol/all
-PPL$XPIXEL = "406"
-PPL$YPIXEL = "406"
+PPL$XPIXEL = "760"
+PPL$YPIXEL = "760"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.925"
-FERRET_PLATFORM = "Linux 2.6.18-371.12.1.el5 64-bit"
+FERRET_VERSION = "6.95"
+FERRET_PLATFORM = "Linux 2.6.18-406.el5 64-bit"
 FERRET_PRECISION = "double"
 NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:38:15 $"
-FERRET_MEMORY = "25.6"
-SESSION_DATE = " 7-Oct-14"
-SESSION_TIME = "10:41"
-SESSION_PID = "14259"
-DELTA_CPU = "9.99E-04"
-CLOCK_SECS = "12.483"
-CURRENT_DATE = " 7-Oct-14"
-CURRENT_TIME = "10:41:59"
+FERRET_MEMORY = "100"
+SESSION_DATE = "26-Oct-15"
+SESSION_TIME = "17:21"
+SESSION_PID = "28772"
+DELTA_CPU = "0.001"
+CLOCK_SECS = "57.951"
+CURRENT_DATE = "26-Oct-15"
+CURRENT_TIME = "17:22:32"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
 S1 = "hello"
@@ -10499,9 +10535,9 @@ NUM = "3"
 T$DOLLAR = "hi"
 T_HELLO = "hi"
 show symbol s*
-SESSION_DATE = " 7-Oct-14"
-SESSION_TIME = "10:41"
-SESSION_PID = "14259"
+SESSION_DATE = "26-Oct-15"
+SESSION_TIME = "17:21"
+SESSION_PID = "28772"
 S1 = "hello"
 S2 = ""hello""
 S3 = "hello and goodbye"
@@ -10511,15 +10547,15 @@ S2 = ""hello""
 ! exercise CANCEL SYMBOL
 cancel symbol s2
 show symbol s*
-SESSION_DATE = " 7-Oct-14"
-SESSION_TIME = "10:41"
-SESSION_PID = "14259"
+SESSION_DATE = "26-Oct-15"
+SESSION_TIME = "17:21"
+SESSION_PID = "28772"
 S1 = "hello"
 S3 = "hello and goodbye"
 show symbol S*
-SESSION_DATE = " 7-Oct-14"
-SESSION_TIME = "10:41"
-SESSION_PID = "14259"
+SESSION_DATE = "26-Oct-15"
+SESSION_TIME = "17:21"
+SESSION_PID = "28772"
 S1 = "hello"
 S3 = "hello and goodbye"
 cancel symbol s2	! already deleted
@@ -10553,14 +10589,11 @@ Q23456789012345678901234567XXXAAAAA = "6"
 ! show the upper left coordinate limits labels as symbols
 plot/i=1:100/y=10/z=5/set_up SIN(I/6)+Y+Z
 show symbol lab*
-LAB1 = "FERRET Ver. 6.925"
-LAB2 = "NOAA/PMEL TMAP"
-LAB3 = "07-OCT-2014 10:41:59"
 LABX = "X"
-LAB4 = "Y : 10"
-LABNUM_Y = "4"
-LAB5 = "Z : 5"
-LABNUM_Z = "5"
+LAB1 = "Y : 10"
+LABNUM_Y = "1"
+LAB2 = "Z : 5"
+LABNUM_Z = "2"
 LABY = ""
 LABTIT = "SIN(I/6)+Y+Z"
 message/continue Z value saved as  ($LAB($LABNUM_Z))
@@ -10576,11 +10609,11 @@ No T value saved: " "
 ! template tests (4/23/96)
 cancel symbol lab?
 show symbol lab*
-LABNUM_Y = "4"
-LABNUM_Z = "5"
+LABNUM_Y = "1"
+LABNUM_Z = "2"
 LABTIT = "SIN(I/6)+Y+Z"
 show symbol lab*y
-LABNUM_Y = "4"
+LABNUM_Y = "1"
  
 ! deliberate errors
 set mode ignore_errors
@@ -10647,21 +10680,21 @@ say ($delayed_eval)         ! translate symbol and then evaluate
 ! cleanup
 cancel symbols/all
 show symbols/all
-PPL$XPIXEL = "406"
-PPL$YPIXEL = "406"
+PPL$XPIXEL = "760"
+PPL$YPIXEL = "760"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.925"
-FERRET_PLATFORM = "Linux 2.6.18-371.12.1.el5 64-bit"
+FERRET_VERSION = "6.95"
+FERRET_PLATFORM = "Linux 2.6.18-406.el5 64-bit"
 FERRET_PRECISION = "double"
 NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:38:15 $"
-FERRET_MEMORY = "25.6"
-SESSION_DATE = " 7-Oct-14"
-SESSION_TIME = "10:41"
-SESSION_PID = "14259"
-DELTA_CPU = "0.010999"
-CLOCK_SECS = "12.495"
-CURRENT_DATE = " 7-Oct-14"
-CURRENT_TIME = "10:41:59"
+FERRET_MEMORY = "100"
+SESSION_DATE = "26-Oct-15"
+SESSION_TIME = "17:21"
+SESSION_PID = "28772"
+DELTA_CPU = "0.012998"
+CLOCK_SECS = "57.964"
+CURRENT_DATE = "26-Oct-15"
+CURRENT_TIME = "17:22:32"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
  
@@ -12523,7 +12556,7 @@ define axis/z=5:15/npoints=999999/unit=meters/depth z999999
 !    else we list huge amount of adata
  
 let save_mem = ($ferret_memory)
- !-> DEFINE VARIABLE save_mem = 25.6
+ !-> DEFINE VARIABLE save_mem = 100
 set mem/siz = 10
  
 list temp[gz=z999999,z=5:15]	! err during regrid
@@ -12540,7 +12573,7 @@ Dynamic grids:
 Dynamic axes:
     no implicit axes
 set mem/siz=`save_mem`
- !-> set mem/siz=25.6
+ !-> set mem/siz=100
  
 shade 1/0 * temp[gx=u]		! err during plot
 show grid/dynamic
@@ -14117,7 +14150,7 @@ Dynamic axes:
  
 ! calendar axes
 list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave]   ! 6-day ave
- !-> list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:144 at ave]   ! 6-day ave
+ !-> list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:144 at ave]
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: 144 hour on T at AVE
              FILENAME : gtsa056_1.cdf
@@ -14143,7 +14176,7 @@ list/k=1/y=0/x=180/l=1 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave]
              TIME     : 15-JAN-1982 00:00
           27.7767
 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]			! pseudo-var
+ !-> list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:48]
              VARIABLE : T
                         axis (AX003)
              SUBSET   : 3 points (TIME)
@@ -20067,27 +20100,27 @@ GO bn_negative_t.sub tvar ave  ! like var and din
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ave]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at ave]
              VARIABLE : T[GT=TAX]
              T        : -5 to 5 (averaged)
           0.000000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ave]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at ave]
              VARIABLE : T[GT=TAX]
              T        : -8 to -5 (averaged)
          -6.66667
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ave]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at ave]
              VARIABLE : T[GT=TAX]
              T        : -9 to 3 (averaged)
          -3.00000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ave]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at ave]
              VARIABLE : T[GT=TAX]
              T        : -9 to -3 (averaged)
          -6.00000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ave]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@ave]
              VARIABLE : T[GT=TAX]
              T        : -11 to 11 (averaged)
           0.000000
@@ -20103,7 +20136,7 @@ GO bn_negative_t.sub tvar iin
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at iin]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at iin]
              VARIABLE : T[GT=TAX]
                         indef. integ. on T
              SUBSET   : 5 points (T)
@@ -20113,14 +20146,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  -8.0000
  4    / 8:   0.0000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at iin]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at iin]
              VARIABLE : T[GT=TAX]
                         indef. integ. on T
              SUBSET   : 2 points (T)
  -8   / 2:  -8.0000
  -6   / 3: -20.0000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at iin]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at iin]
              VARIABLE : T[GT=TAX]
                         indef. integ. on T
              SUBSET   : 6 points (T)
@@ -20131,7 +20164,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6: -40.0000
  2    / 7: -36.0000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at iin]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at iin]
              VARIABLE : T[GT=TAX]
                         indef. integ. on T
              SUBSET   : 3 points (T)
@@ -20139,7 +20172,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3: -28.0000
  -4   / 4: -36.0000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@iin]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@iin]
              VARIABLE : T[GT=TAX]
                         indef. integ. on T
              SUBSET   : 11 points (T)
@@ -20166,27 +20199,27 @@ GO bn_negative_t.sub tvar sum
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at sum]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at sum]
              VARIABLE : T[GT=TAX]
              T        : -5 to 5 (summed)
           0.000000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at sum]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at sum]
              VARIABLE : T[GT=TAX]
              T        : -8 to -5 (summed)
          -14.0000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at sum]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at sum]
              VARIABLE : T[GT=TAX]
              T        : -9 to 3 (summed)
          -18.0000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at sum]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at sum]
              VARIABLE : T[GT=TAX]
              T        : -9 to -3 (summed)
          -18.0000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@sum]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@sum]
              VARIABLE : T[GT=TAX]
              T        : -11 to 11 (summed)
           0.000000
@@ -20202,7 +20235,7 @@ GO bn_negative_t.sub tvar rsu
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at rsu]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at rsu]
              VARIABLE : T[GT=TAX]
                         running sum on T
              SUBSET   : 5 points (T)
@@ -20212,14 +20245,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7: -4.00000
  4    / 8:  0.00000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at rsu]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at rsu]
              VARIABLE : T[GT=TAX]
                         running sum on T
              SUBSET   : 2 points (T)
  -8   / 2:  -8.0000
  -6   / 3: -14.0000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at rsu]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at rsu]
              VARIABLE : T[GT=TAX]
                         running sum on T
              SUBSET   : 6 points (T)
@@ -20230,7 +20263,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6: -20.0000
  2    / 7: -18.0000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at rsu]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at rsu]
              VARIABLE : T[GT=TAX]
                         running sum on T
              SUBSET   : 3 points (T)
@@ -20238,7 +20271,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3: -14.0000
  -4   / 4: -18.0000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@rsu]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@rsu]
              VARIABLE : T[GT=TAX]
                         running sum on T
              SUBSET   : 11 points (T)
@@ -20265,7 +20298,7 @@ GO bn_negative_t.sub tvar shf
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at shf]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at shf]
              VARIABLE : T[GT=TAX]
                         shifted by 1 pts on T
              SUBSET   : 5 points (T)
@@ -20275,14 +20308,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  4.00000
  4    / 8:  6.00000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at shf]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at shf]
              VARIABLE : T[GT=TAX]
                         shifted by 1 pts on T
              SUBSET   : 2 points (T)
  -8   / 2: -6.00000
  -6   / 3: -4.00000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at shf]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at shf]
              VARIABLE : T[GT=TAX]
                         shifted by 1 pts on T
              SUBSET   : 6 points (T)
@@ -20293,7 +20326,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  2.00000
  2    / 7:  4.00000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at shf]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at shf]
              VARIABLE : T[GT=TAX]
                         shifted by 1 pts on T
              SUBSET   : 3 points (T)
@@ -20301,7 +20334,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3: -4.00000
  -4   / 4: -2.00000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@shf]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@shf]
              VARIABLE : T[GT=TAX]
                         shifted by 1 pts on T
              SUBSET   : 11 points (T)
@@ -20328,27 +20361,27 @@ GO bn_negative_t.sub tvar min   ! like @max
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at min]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at min]
              VARIABLE : T[GT=TAX]
              T        : -5 to 5 (minimum)
          -4.00000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at min]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at min]
              VARIABLE : T[GT=TAX]
              T        : -8 to -5 (minimum)
          -8.00000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at min]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at min]
              VARIABLE : T[GT=TAX]
              T        : -9 to 3 (minimum)
          -8.00000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at min]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at min]
              VARIABLE : T[GT=TAX]
              T        : -9 to -3 (minimum)
          -8.00000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@min]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@min]
              VARIABLE : T[GT=TAX]
              T        : -11 to 11 (minimum)
          -10.0000
@@ -20364,7 +20397,7 @@ GO bn_negative_t.sub tvar ddf
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ddf]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at ddf]
              VARIABLE : T[GT=TAX]
                         forward derivative on T
              SUBSET   : 5 points (T)
@@ -20374,14 +20407,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  1.00000
  4    / 8:  1.00000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ddf]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at ddf]
              VARIABLE : T[GT=TAX]
                         forward derivative on T
              SUBSET   : 2 points (T)
  -8   / 2:  1.00000
  -6   / 3:  1.00000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ddf]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at ddf]
              VARIABLE : T[GT=TAX]
                         forward derivative on T
              SUBSET   : 6 points (T)
@@ -20392,7 +20425,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  1.00000
  2    / 7:  1.00000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ddf]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at ddf]
              VARIABLE : T[GT=TAX]
                         forward derivative on T
              SUBSET   : 3 points (T)
@@ -20400,7 +20433,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3:  1.00000
  -4   / 4:  1.00000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ddf]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@ddf]
              VARIABLE : T[GT=TAX]
                         forward derivative on T
              SUBSET   : 11 points (T)
@@ -20427,7 +20460,7 @@ GO bn_negative_t.sub tvar ddb   ! @ddc like ddf and ddb
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ddb]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at ddb]
              VARIABLE : T[GT=TAX]
                         backwards derivative on T
              SUBSET   : 5 points (T)
@@ -20437,14 +20470,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  1.00000
  4    / 8:  1.00000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ddb]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at ddb]
              VARIABLE : T[GT=TAX]
                         backwards derivative on T
              SUBSET   : 2 points (T)
  -8   / 2:  1.00000
  -6   / 3:  1.00000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ddb]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at ddb]
              VARIABLE : T[GT=TAX]
                         backwards derivative on T
              SUBSET   : 6 points (T)
@@ -20455,7 +20488,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  1.00000
  2    / 7:  1.00000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ddb]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at ddb]
              VARIABLE : T[GT=TAX]
                         backwards derivative on T
              SUBSET   : 3 points (T)
@@ -20463,7 +20496,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3:  1.00000
  -4   / 4:  1.00000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ddb]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@ddb]
              VARIABLE : T[GT=TAX]
                         backwards derivative on T
              SUBSET   : 11 points (T)
@@ -20490,7 +20523,7 @@ GO bn_negative_t.sub tvar sbx  ! like sbn, swl, shn, spz
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at sbx]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at sbx]
              VARIABLE : T[GT=TAX]
                         box smoothed by 3 pts on T
              SUBSET   : 5 points (T)
@@ -20500,14 +20533,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  2.00000
  4    / 8:  4.00000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at sbx]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at sbx]
              VARIABLE : T[GT=TAX]
                         box smoothed by 3 pts on T
              SUBSET   : 2 points (T)
  -8   / 2: -8.00000
  -6   / 3: -6.00000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at sbx]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at sbx]
              VARIABLE : T[GT=TAX]
                         box smoothed by 3 pts on T
              SUBSET   : 6 points (T)
@@ -20518,7 +20551,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  0.00000
  2    / 7:  2.00000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at sbx]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at sbx]
              VARIABLE : T[GT=TAX]
                         box smoothed by 3 pts on T
              SUBSET   : 3 points (T)
@@ -20526,7 +20559,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3: -6.00000
  -4   / 4: -4.00000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@sbx]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@sbx]
              VARIABLE : T[GT=TAX]
                         box smoothed by 3 pts on T
              SUBSET   : 11 points (T)
@@ -20553,27 +20586,27 @@ GO bn_negative_t.sub tvar loc:-2.2
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at loc:-2.2]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at loc:-2.2]
              VARIABLE : T of -2.2 in T[GT=TAX]
              T        : -5 to 5 (location of -2.2)
          -2.20000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at loc:-2.2]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at loc:-2.2]
              VARIABLE : T of -2.2 in T[GT=TAX]
              T        : -8 to -5 (location of -2.2)
         ....
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at loc:-2.2]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at loc:-2.2]
              VARIABLE : T of -2.2 in T[GT=TAX]
              T        : -9 to 3 (location of -2.2)
          -2.20000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at loc:-2.2]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at loc:-2.2]
              VARIABLE : T of -2.2 in T[GT=TAX]
              T        : -9 to -3 (location of -2.2)
         ....
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@loc:-2.2]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@loc:-2.2]
              VARIABLE : T of -2.2 in T[GT=TAX]
              T        : -11 to 11 (location of -2.2)
          -2.20000
@@ -20589,7 +20622,7 @@ GO bn_negative_t.sub tvar weq:-2.2
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at weq:-2.2]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at weq:-2.2]
              VARIABLE : T[GT=TAX]
                         weighted equal of -2.2 on T
              SUBSET   : 5 points (T)
@@ -20599,14 +20632,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:      ....
  4    / 8:      ....
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at weq:-2.2]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at weq:-2.2]
              VARIABLE : T[GT=TAX]
                         weighted equal of -2.2 on T
              SUBSET   : 2 points (T)
  -8   / 2:....
  -6   / 3:....
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at weq:-2.2]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at weq:-2.2]
              VARIABLE : T[GT=TAX]
                         weighted equal of -2.2 on T
              SUBSET   : 6 points (T)
@@ -20617,7 +20650,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:      ....
  2    / 7:      ....
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at weq:-2.2]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at weq:-2.2]
              VARIABLE : T[GT=TAX]
                         weighted equal of -2.2 on T
              SUBSET   : 3 points (T)
@@ -20625,7 +20658,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3:....
  -4   / 4:....
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@weq:-2.2]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@weq:-2.2]
              VARIABLE : T[GT=TAX]
                         weighted equal of -2.2 on T
              SUBSET   : 11 points (T)
@@ -20668,27 +20701,27 @@ GO bn_negative_t.sub tgap ngd   ! like @nbd
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tgap[t=-5:5 at ngd]	! neg/pos t endpoints
+ !-> LIST tgap[t=-5:5 at ngd]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR (# of points)
              T        : -5 to 5 (number of valid)
           3.00000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tgap[t=-5:-8 at ngd]	! neg/neq t endpoints
+ !-> LIST tgap[t=-5:-8 at ngd]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR (# of points)
              T        : -8 to -5 (number of valid)
           1.00000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tgap[l=2:7 at ngd]	! neg/pos l endpoints
+ !-> LIST tgap[l=2:7 at ngd]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR (# of points)
              T        : -9 to 3 (number of valid)
           3.00000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tgap[l=2:4 at ngd]	! neg/neg l endpoints
+ !-> LIST tgap[l=2:4 at ngd]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR (# of points)
              T        : -9 to -3 (number of valid)
           2.00000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tgap[l=@ngd]	! unspecified limits (neg/pos)
+ !-> LIST tgap[l=@ngd]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR (# of points)
              T        : -11 to 11 (number of valid)
           5.00000
@@ -20704,7 +20737,7 @@ GO bn_negative_t.sub tgap fav  ! like fln (fnr not implemented)
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tgap[t=-5:5 at fav]	! neg/pos t endpoints
+ !-> LIST tgap[t=-5:5 at fav]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR
                         ave-filled by 3 pts on T
              SUBSET   : 5 points (T)
@@ -20714,14 +20747,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  2.00000
  4    / 8:  4.00000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tgap[t=-5:-8 at fav]	! neg/neq t endpoints
+ !-> LIST tgap[t=-5:-8 at fav]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR
                         ave-filled by 3 pts on T
              SUBSET   : 2 points (T)
  -8   / 2: -8.00000
  -6   / 3: -6.00000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tgap[l=2:7 at fav]	! neg/pos l endpoints
+ !-> LIST tgap[l=2:7 at fav]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR
                         ave-filled by 3 pts on T
              SUBSET   : 6 points (T)
@@ -20732,7 +20765,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  0.00000
  2    / 7:  2.00000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tgap[l=2:4 at fav]	! neg/neg l endpoints
+ !-> LIST tgap[l=2:4 at fav]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR
                         ave-filled by 3 pts on T
              SUBSET   : 3 points (T)
@@ -20740,7 +20773,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3: -6.00000
  -4   / 4: -4.00000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tgap[l=@fav]	! unspecified limits (neg/pos)
+ !-> LIST tgap[l=@fav]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR
                         ave-filled by 3 pts on T
              SUBSET   : 11 points (T)
@@ -20789,7 +20822,7 @@ GO bn_negative_t.sub blin nul
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST blin[t=-5:5 at nul]	! neg/pos t endpoints
+ !-> LIST blin[t=-5:5 at nul]
              VARIABLE : A[GT=TDST at LIN]
              SUBSET   : 5 points (T)
  -4   / 4: -4.00000
@@ -20798,13 +20831,13 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  2.00000
  4    / 8:  4.00000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST blin[t=-5:-8 at nul]	! neg/neq t endpoints
+ !-> LIST blin[t=-5:-8 at nul]
              VARIABLE : A[GT=TDST at LIN]
              SUBSET   : 2 points (T)
  -8   / 2: -8.00000
  -6   / 3: -6.00000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST blin[l=2:7 at nul]	! neg/pos l endpoints
+ !-> LIST blin[l=2:7 at nul]
              VARIABLE : A[GT=TDST at LIN]
              SUBSET   : 6 points (T)
  -8   / 2: -8.00000
@@ -20814,14 +20847,14 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  0.00000
  2    / 7:  2.00000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST blin[l=2:4 at nul]	! neg/neg l endpoints
+ !-> LIST blin[l=2:4 at nul]
              VARIABLE : A[GT=TDST at LIN]
              SUBSET   : 3 points (T)
  -8   / 2: -8.00000
  -6   / 3: -6.00000
  -4   / 4: -4.00000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST blin[l=@nul]	! unspecified limits (neg/pos)
+ !-> LIST blin[l=@nul]
              VARIABLE : A[GT=TDST at LIN]
              SUBSET   : 11 points (T)
  -10   /  1:     ....
@@ -20847,7 +20880,7 @@ GO bn_negative_t.sub bave nul
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST bave[t=-5:5 at nul]	! neg/pos t endpoints
+ !-> LIST bave[t=-5:5 at nul]
              VARIABLE : A[GT=TDST at AVE]
              SUBSET   : 5 points (T)
  -4   / 4: -4.00000
@@ -20856,13 +20889,13 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  2.00000
  4    / 8:  4.00000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST bave[t=-5:-8 at nul]	! neg/neq t endpoints
+ !-> LIST bave[t=-5:-8 at nul]
              VARIABLE : A[GT=TDST at AVE]
              SUBSET   : 2 points (T)
  -8   / 2: -8.00000
  -6   / 3: -6.00000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST bave[l=2:7 at nul]	! neg/pos l endpoints
+ !-> LIST bave[l=2:7 at nul]
              VARIABLE : A[GT=TDST at AVE]
              SUBSET   : 6 points (T)
  -8   / 2: -8.00000
@@ -20872,14 +20905,14 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  0.00000
  2    / 7:  2.00000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST bave[l=2:4 at nul]	! neg/neg l endpoints
+ !-> LIST bave[l=2:4 at nul]
              VARIABLE : A[GT=TDST at AVE]
              SUBSET   : 3 points (T)
  -8   / 2: -8.00000
  -6   / 3: -6.00000
  -4   / 4: -4.00000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST bave[l=@nul]	! unspecified limits (neg/pos)
+ !-> LIST bave[l=@nul]
              VARIABLE : A[GT=TDST at AVE]
              SUBSET   : 11 points (T)
  -10   /  1: -9.00000
@@ -20905,7 +20938,7 @@ GO bn_negative_t.sub basn nul
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST basn[t=-5:5 at nul]	! neg/pos t endpoints
+ !-> LIST basn[t=-5:5 at nul]
              VARIABLE : A[GT=TDST at ASN]
              SUBSET   : 5 points (T)
  -4   / 4: -6.00000
@@ -20914,13 +20947,13 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7: -3.00000
  4    / 8: -2.00000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST basn[t=-5:-8 at nul]	! neg/neq t endpoints
+ !-> LIST basn[t=-5:-8 at nul]
              VARIABLE : A[GT=TDST at ASN]
              SUBSET   : 2 points (T)
  -8   / 2: -8.00000
  -6   / 3: -7.00000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST basn[l=2:7 at nul]	! neg/pos l endpoints
+ !-> LIST basn[l=2:7 at nul]
              VARIABLE : A[GT=TDST at ASN]
              SUBSET   : 6 points (T)
  -8   / 2: -8.00000
@@ -20930,14 +20963,14 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6: -4.00000
  2    / 7: -3.00000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST basn[l=2:4 at nul]	! neg/neg l endpoints
+ !-> LIST basn[l=2:4 at nul]
              VARIABLE : A[GT=TDST at ASN]
              SUBSET   : 3 points (T)
  -8   / 2: -8.00000
  -6   / 3: -7.00000
  -4   / 4: -6.00000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST basn[l=@nul]	! unspecified limits (neg/pos)
+ !-> LIST basn[l=@nul]
              VARIABLE : A[GT=TDST at ASN]
              SUBSET   : 11 points (T)
  -10   /  1: -9.00000
@@ -21078,7 +21111,7 @@ CANCEL REGION
 GO bn_xact_regrid.sub X
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21088,7 +21121,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21102,7 +21135,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21112,7 +21145,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETBIG]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21126,7 +21159,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETSMALL]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21140,7 +21173,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINEOFFSET]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21153,7 +21186,7 @@ SET REGION/X=2:4
 GO bn_xact_regrid.sub X
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 3 points (X)
@@ -21161,7 +21194,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21171,7 +21204,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  3.5  / 6:     ....
  4    / 7:  4.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 3 points (X)
@@ -21179,7 +21212,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETBIG]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21189,7 +21222,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  3.5  / 6:  3.50000
  4    / 7:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETSMALL]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21199,7 +21232,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  3.5  / 6:  3.50000
  4    / 7:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINEOFFSET]
                         regrid: 1 delta on X at XACT
              SUBSET   : 3 points (X)
@@ -21210,7 +21243,7 @@ SET REGION/X=1:5
 GO bn_xact_regrid.sub X
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21220,7 +21253,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21234,7 +21267,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21244,7 +21277,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETBIG]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21258,7 +21291,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETSMALL]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21272,7 +21305,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINEOFFSET]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21285,7 +21318,7 @@ SET REGION/X=1.5:4.5
 GO bn_xact_regrid.sub X
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 3 points (X)
@@ -21293,7 +21326,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 7 points (X)
@@ -21305,7 +21338,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4    / 7:  4.00000
  4.5  / 8:     ....
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 3 points (X)
@@ -21313,7 +21346,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETBIG]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 7 points (X)
@@ -21325,7 +21358,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4    / 7:     ....
  4.5  / 8:  4.50000
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETSMALL]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 7 points (X)
@@ -21337,7 +21370,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4    / 7:     ....
  4.5  / 8:  4.50000
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINEOFFSET]
                         regrid: 1 delta on X at XACT
              SUBSET   : 3 points (X)
@@ -21348,7 +21381,7 @@ SET REGION/X=0:6
 GO bn_xact_regrid.sub X
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21358,7 +21391,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21372,7 +21405,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21382,7 +21415,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETBIG]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21396,7 +21429,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETSMALL]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21410,7 +21443,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINEOFFSET]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21425,7 +21458,7 @@ CANCEL REGION
 GO bn_xact_regrid.sub Y
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21435,7 +21468,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21449,7 +21482,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21459,7 +21492,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETBIG]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21473,7 +21506,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETSMALL]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21487,7 +21520,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINEOFFSET]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21500,7 +21533,7 @@ SET REGION/Y=2:4
 GO bn_xact_regrid.sub Y
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 3 points (Y)
@@ -21508,7 +21541,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21518,7 +21551,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  3.5  / 6:     ....
  4    / 7:  4.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 3 points (Y)
@@ -21526,7 +21559,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETBIG]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21536,7 +21569,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  3.5  / 6:  3.50000
  4    / 7:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETSMALL]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21546,7 +21579,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  3.5  / 6:  3.50000
  4    / 7:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINEOFFSET]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 3 points (Y)
@@ -21557,7 +21590,7 @@ SET REGION/Y=1:5
 GO bn_xact_regrid.sub Y
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21567,7 +21600,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21581,7 +21614,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21591,7 +21624,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETBIG]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21605,7 +21638,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETSMALL]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21619,7 +21652,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINEOFFSET]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21632,7 +21665,7 @@ SET REGION/Y=1.5:4.5
 GO bn_xact_regrid.sub Y
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 3 points (Y)
@@ -21640,7 +21673,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 7 points (Y)
@@ -21652,7 +21685,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4    / 7:  4.00000
  4.5  / 8:     ....
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 3 points (Y)
@@ -21660,7 +21693,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETBIG]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 7 points (Y)
@@ -21672,7 +21705,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4    / 7:     ....
  4.5  / 8:  4.50000
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETSMALL]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 7 points (Y)
@@ -21684,7 +21717,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4    / 7:     ....
  4.5  / 8:  4.50000
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINEOFFSET]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 3 points (Y)
@@ -21695,7 +21728,7 @@ SET REGION/Y=0:6
 GO bn_xact_regrid.sub Y
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21705,7 +21738,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21719,7 +21752,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21729,7 +21762,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETBIG]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21743,7 +21776,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETSMALL]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21757,7 +21790,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINEOFFSET]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21772,7 +21805,7 @@ CANCEL REGION
 GO bn_xact_regrid.sub Z
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21782,7 +21815,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21796,7 +21829,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21806,7 +21839,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETBIG]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21820,7 +21853,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETSMALL]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21834,7 +21867,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINEOFFSET]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21847,7 +21880,7 @@ SET REGION/Z=2:4
 GO bn_xact_regrid.sub Z
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 3 points (Z)
@@ -21855,7 +21888,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21865,7 +21898,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  3.5  / 6:     ....
  4    / 7:  4.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 3 points (Z)
@@ -21873,7 +21906,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETBIG]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21883,7 +21916,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  3.5  / 6:  3.50000
  4    / 7:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETSMALL]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21893,7 +21926,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  3.5  / 6:  3.50000
  4    / 7:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINEOFFSET]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 3 points (Z)
@@ -21904,7 +21937,7 @@ SET REGION/Z=1:5
 GO bn_xact_regrid.sub Z
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21914,7 +21947,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21928,7 +21961,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21938,7 +21971,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETBIG]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21952,7 +21985,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETSMALL]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21966,7 +21999,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINEOFFSET]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21979,7 +22012,7 @@ SET REGION/Z=1.5:4.5
 GO bn_xact_regrid.sub Z
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 3 points (Z)
@@ -21987,7 +22020,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 7 points (Z)
@@ -21999,7 +22032,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4    / 7:  4.00000
  4.5  / 8:     ....
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 3 points (Z)
@@ -22007,7 +22040,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETBIG]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 7 points (Z)
@@ -22019,7 +22052,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4    / 7:     ....
  4.5  / 8:  4.50000
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETSMALL]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 7 points (Z)
@@ -22031,7 +22064,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4    / 7:     ....
  4.5  / 8:  4.50000
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINEOFFSET]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 3 points (Z)
@@ -22042,7 +22075,7 @@ SET REGION/Z=0:6
 GO bn_xact_regrid.sub Z
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -22052,7 +22085,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -22066,7 +22099,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -22076,7 +22109,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETBIG]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -22090,7 +22123,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETSMALL]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -22104,7 +22137,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINEOFFSET]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -22119,7 +22152,7 @@ CANCEL REGION
 GO bn_xact_regrid.sub T
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22129,7 +22162,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22143,7 +22176,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22153,7 +22186,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETBIG]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22167,7 +22200,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETSMALL]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22181,7 +22214,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINEOFFSET]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22194,7 +22227,7 @@ SET REGION/T=2:4
 GO bn_xact_regrid.sub T
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 3 points (T)
@@ -22202,7 +22235,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22212,7 +22245,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  3.5  / 6:     ....
  4    / 7:  4.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 3 points (T)
@@ -22220,7 +22253,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETBIG]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22230,7 +22263,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  3.5  / 6:  3.50000
  4    / 7:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETSMALL]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22240,7 +22273,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  3.5  / 6:  3.50000
  4    / 7:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINEOFFSET]
                         regrid: 1 delta on T at XACT
              SUBSET   : 3 points (T)
@@ -22251,7 +22284,7 @@ SET REGION/T=1:5
 GO bn_xact_regrid.sub T
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22261,7 +22294,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22275,7 +22308,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22285,7 +22318,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETBIG]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22299,7 +22332,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETSMALL]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22313,7 +22346,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINEOFFSET]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22326,7 +22359,7 @@ SET REGION/T=1.5:4.5
 GO bn_xact_regrid.sub T
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 3 points (T)
@@ -22334,7 +22367,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 7 points (T)
@@ -22346,7 +22379,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4    / 7:  4.00000
  4.5  / 8:     ....
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 3 points (T)
@@ -22354,7 +22387,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.00000
  4   / 4:  4.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETBIG]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 7 points (T)
@@ -22366,7 +22399,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4    / 7:     ....
  4.5  / 8:  4.50000
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETSMALL]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 7 points (T)
@@ -22378,7 +22411,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4    / 7:     ....
  4.5  / 8:  4.50000
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINEOFFSET]
                         regrid: 1 delta on T at XACT
              SUBSET   : 3 points (T)
@@ -22389,7 +22422,7 @@ SET REGION/T=0:6
 GO bn_xact_regrid.sub T
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22399,7 +22432,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22413,7 +22446,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:     ....
  5    / 9:  5.00000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22423,7 +22456,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.00000
  5   / 5:  5.00000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETBIG]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22437,7 +22470,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETSMALL]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22451,7 +22484,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.50000
  5    / 9:     ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINEOFFSET]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -23867,7 +23900,7 @@ cancel mode verify
 GO bn_odd_variable_name
 ! make sure memory is limited; otherwise the abstract axis will list
 let save_mem = ($ferret_memory)
- !-> DEFINE VARIABLE save_mem = 25.6
+ !-> DEFINE VARIABLE save_mem = 100
 set mem /size=10
 use weird_name1.cdf
 sh data
@@ -23981,7 +24014,33 @@ list 'X'			! Now the proper syntax
  19   / 19:  0.578440
  20   / 20:  0.656987
 list i  			! Deliberate error
-list 'i'  			! Deliberate error
+ 
+! v694 No longer an error: See ticket 2050
+list 'i'  			!
+             VARIABLE : SIN(4+I/10)
+             FILENAME : weird_name1.cdf
+             SUBSET   : 20 points (X)
+ 1    /  1: -0.818277
+ 2    /  2: -0.871576
+ 3    /  3: -0.916166
+ 4    /  4: -0.951602
+ 5    /  5: -0.977530
+ 6    /  6: -0.993691
+ 7    /  7: -0.999923
+ 8    /  8: -0.996165
+ 9    /  9: -0.982453
+ 10   / 10: -0.958924
+ 11   / 11: -0.925815
+ 12   / 12: -0.883455
+ 13   / 13: -0.832267
+ 14   / 14: -0.772764
+ 15   / 15: -0.705540
+ 16   / 16: -0.631267
+ 17   / 17: -0.550686
+ 18   / 18: -0.464602
+ 19   / 19: -0.373877
+ 20   / 20: -0.279415
+ 
 list 'I'			! Now the proper syntax
              VARIABLE : SIN(4+I/10)
              FILENAME : weird_name1.cdf
@@ -24127,7 +24186,7 @@ list 'v2-and-minus'[i=5:15 at ddc] ! Now the proper syntax
  15   / 15: -0.0934896
 ! restore orginal memory size
 set mem /size=`save_mem`
- !-> set mem /size=25.6
+ !-> set mem /size=100
  
 GO bn_reset
 cancel mode verify
@@ -25631,7 +25690,7 @@ GO err491_spawn_quotes.jnl
  
 ! this should be a valid command
 SPAWN "date"
-Tue Oct  7 10:42:09 PDT 2014
+Mon Oct 26 17:23:01 PDT 2015
  
 GO bn_reset
 cancel mode verify
@@ -25758,10 +25817,10 @@ list SAMPLEI(sst[l=1:3,y=-2:2],{30,40,50})
  1N   / 46:  29.1373  28.9243  28.3264
  1S   / 45:  28.8965  28.8240  28.5357
 SHOW MEM/FREE
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+ Current size of FERRET memory cache: 100 MegaWords  (1 word = 8 bytes)
             total memory table slots: 500
             total memory blocks: 2000
-            memory block size: 12800
+            memory block size: 50000
  
             number of free memory blocks: 1987
             largest free region: 1984
@@ -26565,10 +26624,10 @@ list a 			!   <-- CACHE HIT FAILS!!!
 set mode/last diagnostic
  
 SHOW MEM/FREE
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+ Current size of FERRET memory cache: 100 MegaWords  (1 word = 8 bytes)
             total memory table slots: 500
             total memory blocks: 2000
-            memory block size: 12800
+            memory block size: 50000
  
             number of free memory blocks: 1978
             largest free region: 1976
@@ -30851,9 +30910,15 @@ say `a,return=isize`     ! no evaluation of a required -- just context
  getgrid A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
  pass #2 A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ pseudo  I        M: 97 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  !-> MESSAGE/CONTINUE 10
 10
 list/nohead a            ! evaluate it now
+ -DELETE I        M: 97 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
@@ -30873,6 +30938,7 @@ list/nohead a            ! evaluate it now
 let a = XSEQUENCE(j[j=1:5])
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  -DELETE A        M: 98 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE A        M: 99 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  -DELETE I        M: 97 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  -DELETE SST5SBX  M: 91 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
@@ -34117,8 +34183,17 @@ SAMPLEL_MULTI(L_INDICES,DAT_TO_SAMPLE)
     Returns data sampled according to L indices which may vary in IJK
     L_INDICES: ordered indices
     DAT_TO_SAMPLE: data to sample using L indices
+SAMPLEF_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
+    Returns data sampled by interpolating to a set of times in F direction
+    DAT_TO_SAMPLE: data to sample at set of times in F
+    YR: Year(s) yyyy
+    MO: Month(s), integer mm
+    DAY: Day(s) of month dd
+    HR: Hour(s) hh
+    MIN: Minute(s) mm
+    SEC: Second(s) ss
 SAMPLET_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
-    Returns data sampled by interpolating to a set of times
+    Returns data sampled by interpolating to a set of times in T direction
     DAT_TO_SAMPLE: data to sample at set of times
     YR: Year(s) yyyy
     MO: Month(s), integer mm
@@ -34183,6 +34258,14 @@ SAMPLE_FAST_I(V,Indices)
     Fast 1D sample variable using set of indices
     V: Variable to sample
     Indices: List of indices at which to sample
+SAMPLE_FAST_I_STR(S,Indices)
+    Fast 1D sample string variable using set of indices
+    S: String Variable to sample (STRING)
+    Indices: List of indices at which to sample
+SAMPLE_FAST_I(V,Indices)
+    Fast 1D sample variable using set of indices
+    V: Variable to sample
+    Indices: List of indices at which to sample
  
 go bench_sorti.jnl
  
@@ -35298,6 +35381,10 @@ CURV_TO_RECT_MAP(lon_in,lat_in,grid_out,radius)
     lat_in: Source grid latitudes (2-D) (degrees)
     grid_out: Any variable on destination Longitude-Latitude grid, Lon and Lat (degrees)
     radius: Source points falling within radius are included in mapping to destination point (degrees)
+CURV_TO_RECT_FSU(V,mapping)
+    Alt func to Apply mapping to regrid from curvilinear to rectangular grid
+    V: Variable to regrid, on curvilinear grid V(x,y,z,t)
+    mapping: mapping computed by curv_to_rect_MAP
  
 use tripolar_subset.nc
 shade ht, geolon_vert_t, geolat_vert_t
@@ -35386,12 +35473,12 @@ list/L=15:20 tax_month(t[gt=temp],temp), tax_yearfrac(t[gt=temp],temp)
  Column  1: TAX_MONTH(T[GT=TEMP],TEMP)
  Column  2: TAX_YEARFRAC(T[GT=TEMP],TEMP)
                  (C001,V001)  (C001,V009)
-10-NOV-1982 16 / 15:  11.0000  0.860274
-16-NOV-1982 18 / 16:  11.0000  0.876712
-22-NOV-1982 20 / 17:  11.0000  0.893151
-28-NOV-1982 22 / 18:  11.0000  0.909589
+10-NOV-1982 16 / 15:  11.0000  0.862100
+16-NOV-1982 18 / 16:  11.0000  0.878767
+22-NOV-1982 20 / 17:  11.0000  0.895434
+28-NOV-1982 22 / 18:  11.0000  0.912100
 05-DEC-1982 00 / 19:  12.0000  0.928767
-11-DEC-1982 02 / 20:  12.0000  0.945205
+11-DEC-1982 02 / 20:  12.0000  0.945434
 list/L=15:20 tax_year(t[gt=temp],temp)
              VARIABLE : TAX_YEAR(T[GT=TEMP],TEMP)
              FILENAME : gt4d011.cdf
@@ -36641,6 +36728,8 @@ list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", ") + "fri
 list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
  1   / 1:"now, goodbye, my friend" "now, hello, friend"      
  2   / 2:"then, goodbye, my friend""then, hello, friend"     
+ 
+SET MODE IGNORE
 list/nohead ysequence({98, 99})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
  1   / 1:........
  2   / 2:........
@@ -36655,18 +36744,11 @@ list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "g
  2   / 2:........
  
 ! numerical operators applied to strings
+ 
 list/nohead "b" - {"a","b"}
- 1   / 1:....
- 2   / 2:....
 list/nohead "b" * {"a","b"}
- 1   / 1:....
- 2   / 2:....
 list/nohead "b" / {"a","b"}
- 1   / 1:....
- 2   / 2:....
 list/nohead "b" ^ {"a","b"}
- 1   / 1:....
- 2   / 2:....
 list/nohead {"a","b"} + 1
  1   / 1:....
  2   / 2:....
@@ -36677,18 +36759,14 @@ list/nohead 1 - {"a","b"}
  1   / 1:....
  2   / 2:....
 list/nohead SIN({"a","b","c"})
- 1   / 1:....
- 2   / 2:....
- 3   / 3:....
 list/nohead MAX("a",{"a","b","c"})
- 1   / 1:....
- 2   / 2:....
- 3   / 3:....
 list/nohead MAX(1,{"a","b","c"})
  1   / 1:....
  2   / 2:....
  3   / 3:....
  
+CANCEL MODE IGNORE
+ 
 ! transformations applied to strings
 let a = {"a","b","c","d"}
 list a[i=@shf]
@@ -36983,13 +37061,13 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
  Column  8: V8
  Column  9: V9
  Column 10: V10
-                  V1  V2    V3       V4       V5     V6     V7       V8     V9     V10
-1   / 1: "one"       ...  1.10000 -24.0000  130.000 " "    10.000 "word 1" " "      ....
-2   / 2: "two"       ...  2.20000  24.0000 -130.000 "2S"     .... "word 2" " "      ....
-3   / 3: "three"     ...  3.30000  24.0000  130.000 "3N"    0.030 " wd 3 " " "      ....
-4   / 4: " "         ...     ....     ....     .... " "      .... " "      " "      ....
-5   / 5: "five"      ...  4.40000 -24.0000 -130.000 "91" -400.000 "word 4" "aa"  77.0000
-6   / 6: "extra line"...     ....     ....     .... " "      .... " "      " "      ....
+                  V1   V2     V3       V4       V5     V6     V7       V8     V9     V10
+1   / 1: "one"        ....  1.10000 -24.0000  130.000 " "    10.000 "word 1" " "      ....
+2   / 2: "two"        ....  2.20000  24.0000 -130.000 "2S"     .... "word 2" " "      ....
+3   / 3: "three"      ....  3.30000  24.0000  130.000 "3N"    0.030 " wd 3 " " "      ....
+4   / 4: " "          ....     ....     ....     .... " "      .... " "      " "      ....
+5   / 5: "five"       ....  4.40000 -24.0000 -130.000 "91" -400.000 "word 4" "aa"  77.0000
+6   / 6: "extra line" ....     ....     ....     .... " "      .... " "      " "      ....
  
 ! insist that all columns be treated as string
 file/format=delim/skip=1/type=text bn_delimited_read_1.dat
@@ -37057,13 +37135,13 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
  Column  8: V8
  Column  9: V9
  Column 10: V10
-        V1  V2    V3       V4       V5       V6       V7    V8 V9    V10
-1   / 1:......  1.10000     ....     ....     ....   10.000......     ....
-2   / 2:......  2.20000     ....     ....     ....     ..........     ....
-3   / 3:......  3.30000  24.0000  130.000     ....    0.030......     ....
-4   / 4:......     ....     ....     ....     ....     ..........     ....
-5   / 5:......  4.40000 -24.0000 -130.000  91.0000 -400.000......  77.0000
-6   / 6:......     ....     ....     ....     ....     ..........     ....
+          V1   V2     V3       V4       V5       V6       V7     V8   V9     V10
+1   / 1: .... ....  1.10000     ....     ....     ....   10.000 .... ....     ....
+2   / 2: .... ....  2.20000     ....     ....     ....     .... .... ....     ....
+3   / 3: .... ....  3.30000  24.0000  130.000     ....    0.030 .... ....     ....
+4   / 4: .... ....     ....     ....     ....     ....     .... .... ....     ....
+5   / 5: .... ....  4.40000 -24.0000 -130.000  91.0000 -400.000 .... ....  77.0000
+6   / 6: .... ....     ....     ....     ....     ....     .... .... ....     ....
  
 ! insist that all columns be treated as latitude
 file/format=delim/skip=1/type=latitude bn_delimited_read_1.dat
@@ -37080,13 +37158,13 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
  Column  8: V8 is V8 (degrees_north)(Latitude)
  Column  9: V9 is V9 (degrees_north)(Latitude)
  Column 10: V10 is V10 (degrees_north)(Latitude)
-        V1  V2    V3       V4       V5       V6       V7    V8 V9    V10
-1   / 1:......  1.10000 -24.0000     ....     ....   10.000......     ....
-2   / 2:......  2.20000  24.0000     ....  -2.0000     ..........     ....
-3   / 3:......  3.30000  24.0000  130.000   3.0000    0.030......     ....
-4   / 4:......     ....     ....     ....     ....     ..........     ....
-5   / 5:......  4.40000 -24.0000 -130.000  91.0000 -400.000......  77.0000
-6   / 6:......     ....     ....     ....     ....     ..........     ....
+          V1   V2     V3       V4       V5       V6       V7     V8   V9     V10
+1   / 1: .... ....  1.10000 -24.0000     ....     ....   10.000 .... ....     ....
+2   / 2: .... ....  2.20000  24.0000     ....  -2.0000     .... .... ....     ....
+3   / 3: .... ....  3.30000  24.0000  130.000   3.0000    0.030 .... ....     ....
+4   / 4: .... ....     ....     ....     ....     ....     .... .... ....     ....
+5   / 5: .... ....  4.40000 -24.0000 -130.000  91.0000 -400.000 .... ....  77.0000
+6   / 6: .... ....     ....     ....     ....     ....     .... .... ....     ....
  
 ! read only the first line of the file
 spawn head -1 bn_delimited_read_1.dat
@@ -37108,8 +37186,8 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
  Column  8: V8
  Column  9: V9
  Column 10: V10
-             V1    V2     V3     V4     V5    V6 V7  V8  V9 V10
-I / *:    "col1" "col2" "col3" "col4" "col5" " "... " " " "....
+             V1    V2     V3     V4     V5    V6  V7   V8  V9  V10
+I / *:    "col1" "col2" "col3" "col4" "col5" " " .... " " " " ....
 columns/grid=g1/var=c1,c2,c3,c4,c5 bn_delimited_read_1.dat
 list c1,c2,c3,c4,c5
              DATA SET: ./bn_delimited_read_1.dat
@@ -37227,11 +37305,11 @@ list v1,v2,v3,v4,v5,v6,v7,v8
  Column  6: V6 is V6 (days)(Julian days since 1-Jan-1900)
  Column  7: V7 is V7 (days)(Julian days since 1-Jan-1900)
  Column  8: V8 is V8 (days)(Julian days since 1-Jan-1900)
-              V1     V2    V3 V4    V5       V6    V7 V8
-1   / 1:  36493.0  36218.0......  36493.0  36218.0......
-2   / 2:  36494.0  36219.0......  36494.0  36219.0......
-3   / 3:     ....     ..........  36495.0  36220.0......
-4   / 4:  36496.0  36221.0......  36496.0  36221.0......
+              V1     V2     V3   V4     V5       V6     V7   V8
+1   / 1:  36493.0  36218.0 .... ....  36493.0  36218.0 .... ....
+2   / 2:  36494.0  36219.0 .... ....  36494.0  36219.0 .... ....
+3   / 3:     ....     .... .... ....  36495.0  36220.0 .... ....
+4   / 4:  36496.0  36221.0 .... ....  36496.0  36221.0 .... ....
 show data 2
      currently SET data sets:
     2> ./bn_delimited_read_date_time.dat  (default)
@@ -37266,11 +37344,11 @@ list v1,v2,v3,v4,v5,v6,v7,v8
  Column  6: V6 is V6 (hours)(Time of day)
  Column  7: V7 is V7 (hours)(Time of day)
  Column  8: V8 is V8 (hours)(Time of day)
-        V1  V2    V3       V4    V5 V6    V7       V8
-1   / 1:......  12.0000  13.7601......  12.0000  13.7601
-2   / 2:......   1.0037  14.7601......   1.0037  14.7601
-3   / 3:......     ....     ..........   2.0000  15.7500
-4   / 4:......   3.0000  16.7601......   3.0000  16.7601
+          V1   V2     V3       V4     V5   V6     V7       V8
+1   / 1: .... ....  12.0000  13.7601 .... ....  12.0000  13.7601
+2   / 2: .... ....   1.0037  14.7601 .... ....   1.0037  14.7601
+3   / 3: .... ....     ....     .... .... ....   2.0000  15.7500
+4   / 4: .... ....   3.0000  16.7601 .... ....   3.0000  16.7601
 show data 2
      currently SET data sets:
     2> ./bn_delimited_read_date_time.dat  (default)
@@ -40040,7 +40118,7 @@ list/nohead/l=1001:1009 time_series[gt=($TAXNAME)@mod]
  
 ! test modulo string arrays
 list $1_strings[i=5:7]  	! via IS_SUBSPAN_FILL
- !-> list vreg_strings[i=5:7]  	! via IS_SUBSPAN_FILL
+ !-> list vreg_strings[i=5:7]
              VARIABLE : MY_STRINGS[GX=XAX_SUBSPAN at ASN]
              FILENAME : test_subspan_modulo.nc
              SUBSET   : 3 points (X)
@@ -40048,7 +40126,7 @@ list $1_strings[i=5:7]  	! via IS_SUBSPAN_FILL
  46   / 6:"a6"
  93.5 / 7:""  
 list $1_strings[i=1013:1024] 	! via IS_MODULO
- !-> list vreg_strings[i=1013:1024] 	! via IS_MODULO
+ !-> list vreg_strings[i=1013:1024]
              VARIABLE : MY_STRINGS[GX=XAX_SUBSPAN at ASN]
              FILENAME : test_subspan_modulo.nc
              SUBSET   : 12 points (X)
@@ -40569,7 +40647,7 @@ list/nohead/l=1001:1009 time_series[gt=($TAXNAME)@mod]
  
 ! test modulo string arrays
 list $1_strings[i=5:7]  	! via IS_SUBSPAN_FILL
- !-> list virr_strings[i=5:7]  	! via IS_SUBSPAN_FILL
+ !-> list virr_strings[i=5:7]
              VARIABLE : MY_STRINGS[GX=XIRREG_SUBSPAN at ASN]
              FILENAME : test_subspan_modulo.nc
              SUBSET   : 3 points (X)
@@ -40577,7 +40655,7 @@ list $1_strings[i=5:7]  	! via IS_SUBSPAN_FILL
  46   / 6:"a6"
  93.5 / 7:""  
 list $1_strings[i=1013:1024] 	! via IS_MODULO
- !-> list virr_strings[i=1013:1024] 	! via IS_MODULO
+ !-> list virr_strings[i=1013:1024]
              VARIABLE : MY_STRINGS[GX=XIRREG_SUBSPAN at ASN]
              FILENAME : test_subspan_modulo.nc
              SUBSET   : 12 points (X)
@@ -40735,7 +40813,8 @@ show modes
       LATIT_LABEL      SET              -4
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         months
-      6D_LAB           SET
+      E_LABEL          SET               1
+      F_LABEL          SET               1
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -40754,7 +40833,8 @@ show modes
       NODATA_LAB       SET
       SHRINK_YLAB   CANCELLED
       CURVILINEAR   CANCELLED
-      SIGMA         CANCELLED
+      LAYERZ        CANCELLED
+      6D_LAB           SET
 contour/i=1:10/j=1:10 i/j
  
 ! restore the labels, logo still gone
@@ -45118,7 +45198,7 @@ list/k=1/l=1 a[i=3:5,j=1:8:2]
  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:136 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : BIGVAR[I=1:40:5]
                         regrid: 2 delta on Y
@@ -45137,7 +45217,7 @@ list/k=1/l=1 a[i=3:5,j=1:8:2]
  
 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:136 dset:   1 I:    3    5  J:    1    4  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
@@ -48031,7 +48111,7 @@ show data/full
      NCEP Ocean Analysis
  name     title                             I         J         K         L         M         N
  TEMP     temperature                      1:1       1:1       1:19      1:1       ...       ...
-             degree_Celsius on grid GGH1 with 1.E-34 & NaN for missing data
+             degree_Celsius on grid GGH1 with -1.E+34 & NaN for missing data
              X=139.8E:140.8E  Y=0.5S:0.5N  Z=0:375  
  
   time range: FEB-1980
@@ -48306,11 +48386,11 @@ ppl list labels
  @ASDeg C                                                                       
 
           XPOS       YPOS     HGT   ROT   UNITS
- LAB 1  8.000E+00  7.200E+00 0.060    0  SYSTEM  @ASFERRET Ver. 6.925
+ LAB 1  8.000E+00  7.200E+00 0.060    0  SYSTEM  @ASFERRET Ver. 6.95
  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  @AS07-OCT-2014 10:42:50
+ LAB 3  8.000E+00  7.000E+00 0.060    0  SYSTEM  @AS26-OCT-2015 17:27:50
  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
@@ -48939,9 +49019,9 @@ GO err580_irreg_bounds.jnl
 ! the bounds seem to be ignored; axis is seen as regular.
 ! Bug 1160 reported by Andrew.
  
-yes? def ax/t/edge time = {0,1,3}
-yes? let a = t[gt=time]
-yes? show grid/t a
+def ax/t/edge time = {0,1,3}
+let a = t[gt=time]
+show grid/t a
     GRID (G011)
  name       axis              # pts   start                end
  normal    X
@@ -48955,17 +49035,17 @@ yes? show grid/t a
        1>  0.5                   1          0
        2>  2                     2          1
  
-yes? save/clob/file=a.nc a
+save/clob/file=a.nc a
 sp echo "err580_irreg_bounds.jnl --- " >> all_ncdump.out
-yes? sp ncdump a.nc >> all_ncdump.out
+sp ncdump a.nc >> all_ncdump.out
  
 can data/all
 can var/all
 can mem
  
 !  T axis was marked as regular
-yes? use a.nc
-yes? show grid/t a
+use a.nc
+show grid/t a
     GRID GSI1
  name       axis              # pts   start                end
  normal    X
@@ -49587,7 +49667,7 @@ GO bn_long_revision_num.jnl
  
 ! ferret version
 sh sym FERRET_VERSION
-FERRET_VERSION = "6.925"
+FERRET_VERSION = "6.95"
  
 ! history attribute
 let a = 12
@@ -49605,7 +49685,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.925:
+ Commands in Program FERRET   version6.95:
  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
@@ -49617,7 +49697,7 @@ 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/SIGMA
+ SET VARIABLE/TITLE/UNIT/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
@@ -49636,7 +49716,7 @@ sho command
        /HIDDEN
  SHOW MODE/ALL
  SHOW MOVIE/ALL
- SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/SIGMA
+ SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ
        /CURVILIN
  SHOW COMMANDS/ALL
  SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
@@ -49660,7 +49740,7 @@ sho command
  CANCEL MODE
  CANCEL MOVIE/ALL
  CANCEL VIEWPORT
- CANCEL VARIABLE/ALL/DATASET/SIGMA/CURVILIN
+ CANCEL VARIABLE/ALL/DATASET/LAYERZ/CURVILIN/NOERROR
  CANCEL AXIS/MODULO/ALL/DEPTH/STRIDE
  CANCEL GRID
  CANCEL ATTRIBUT/OUTPUT/DATA
@@ -49677,11 +49757,11 @@ sho command
        /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/SIGMA
+       /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
+       /NOYADJUS/KEY/RIBBON/LEVELS/PALETTE/FAST/MISSING/GAPLOC
  GO/HELP
  HELP
  LOAD/TEMPORY/PERMANT/I/J/K/L/M/N/X/Y/Z/T/E/F/D/NAME
@@ -49697,7 +49777,8 @@ sho command
  DEFINE SYMBOL
  DEFINE ATTRIBUT/D/TYPE/OUTPUT/QUIET
  DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/E/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/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
@@ -49724,6 +49805,7 @@ sho command
           /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
  
@@ -49741,7 +49823,7 @@ go ptest
 PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
  
 sh sym win_title
-WIN_TITLE = "7-Oct-14:10:41"
+WIN_TITLE = "26-Oct-15:17:21"
  
 set win/title="set the title"
 sho sym win_title
@@ -49759,7 +49841,7 @@ sho sym win_title
 WIN_TITLE = "_"
  
 set win/title="($session_date):($session_time)"
- !-> set win/title=" 7-Oct-14:10:41"
+ !-> set win/title="26-Oct-15:17:21"
  
 ! If the date or time starts with a blank then we get an extra
 ! underscore in the window title. Evaluating the symbols into
@@ -49768,16 +49850,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 =  7-Oct-14
+ !-> DEFINE SYMBOL the_date = 26-Oct-15
 DEFINE SYMBOL the_time = ($session_time"SESSION_TIME")
- !-> DEFINE SYMBOL the_time = 10:41
+ !-> DEFINE SYMBOL the_time = 17:21
 SET WIN/TITLE="($the_date):($the_time)"
- !-> SET WIN/TITLE="7-Oct-14:10:41"
+ !-> SET WIN/TITLE="26-Oct-15:17:21"
  
 can win/all
 set win/new
 sh sym win_title
-WIN_TITLE = "7-Oct-14:10:41"
+WIN_TITLE = "26-Oct-15:17:21"
  
 GO bn_reset
 cancel mode verify
@@ -50566,6 +50648,7 @@ let a = temp.missing_value
 list a
              VARIABLE : TEMP.MISSING_VALUE
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
          -1.000E+34
  
 use ocean_atlas_temp
@@ -50573,6 +50656,7 @@ let s = temp.units
 list s
              VARIABLE : TEMP.UNITS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "Deg C"
  
 can data/all
@@ -50584,6 +50668,7 @@ list s
              VARIABLE : ..REMARK
              DATA SET : K-Bay OAR3d model (200m)
              FILENAME : err491_attval.cdf
+             X        : 1
         "Generated by oar3d                                                                                                                                              "
  
 go bn_reset
@@ -50602,6 +50687,7 @@ let anames = sst.attnames
 list nat
              VARIABLE : SST.NATTRS
              FILENAME : coads_climatology.cdf
+             X        : 1
           5.000
 list anames
              VARIABLE : SST.ATTNAMES
@@ -50619,6 +50705,7 @@ let cnames = sst.dimnames
 list nd
              VARIABLE : SST.NDIMS
              FILENAME : coads_climatology.cdf
+             X        : 1
           3.000
 list cnames
              VARIABLE : SST.DIMNAMES
@@ -50638,6 +50725,7 @@ let nd = ..ndims
 let vnames = ..varnames
 list/d=1 nv, nd
              DATA SET: ./gt4d011.cdf
+             X: 1
  Column  1: NV is ..NVARS
  Column  2: ND is ..NDIMS
              NV    ND
@@ -50663,6 +50751,7 @@ let vnames = ..varnames
 list/d=coads_climatology vnames
              VARIABLE : ..VARNAMES
              FILENAME : coads_climatology.cdf
+             X        : 1
         "SST"
 list/d=gt4d011 vnames
              VARIABLE : ..VARNAMES
@@ -50699,27 +50788,28 @@ list vnames
  3   / 3:"TIME4" 
 list lnames
              VARIABLE : ..DIMNAMES[D=gt4d011]
-             SUBSET   : 20 points (X)
- 1    /  1:"PSXT1"     
- 2    /  2:"PSYT1"     
- 3    /  3:"PSYTedges" 
- 4    /  4:"PSZT1"     
- 5    /  5:"PSZTedges" 
- 6    /  6:"TIME11"    
- 7    /  7:"PSXT91_108"
- 8    /  8:"PSYT35_56" 
- 9    /  9:"PSZT1_10"  
- 10   / 10:"PSYT35_55" 
- 11   / 11:"PSXU"      
- 12   / 12:"PSYU"      
- 13   / 13:"PSYUedges" 
- 14   / 14:"PSXU91_108"
- 15   / 15:"PSYU35_55" 
- 16   / 16:"PSZW"      
- 17   / 17:"PSZWedges" 
- 18   / 18:"PSYT36_55" 
- 19   / 19:"PSZW1_10"  
- 20   / 20:"PSYU35_56" 
+             SUBSET   : 21 points (X)
+ 1    /  1:"grid_definition"
+ 2    /  2:"PSXT1"          
+ 3    /  3:"PSYT1"          
+ 4    /  4:"PSYTedges"      
+ 5    /  5:"PSZT1"          
+ 6    /  6:"PSZTedges"      
+ 7    /  7:"TIME11"         
+ 8    /  8:"PSXT91_108"     
+ 9    /  9:"PSYT35_56"      
+ 10   / 10:"PSZT1_10"       
+ 11   / 11:"PSYT35_55"      
+ 12   / 12:"PSXU"           
+ 13   / 13:"PSYU"           
+ 14   / 14:"PSYUedges"      
+ 15   / 15:"PSXU91_108"     
+ 16   / 16:"PSYU35_55"      
+ 17   / 17:"PSZW"           
+ 18   / 18:"PSZWedges"      
+ 19   / 19:"PSYT36_55"      
+ 20   / 20:"PSZW1_10"       
+ 21   / 21:"PSYU35_56"      
  
 can var/all
 can data/all
@@ -50732,6 +50822,7 @@ list v
              VARIABLE : ..NDIMS
              DATA SET : K-Bay OAR3d model (200m)
              FILENAME : err491_attval.cdf
+             X        : 1
           3.000
  
 let na = ..nattrs
@@ -50739,6 +50830,7 @@ list na
              VARIABLE : ..NATTRS
              DATA SET : K-Bay OAR3d model (200m)
              FILENAME : err491_attval.cdf
+             X        : 1
           31.00
  
 let gnames = ..attnames
@@ -50802,12 +50894,14 @@ let nat = temp.nattrs
 list nat
              VARIABLE : TEMP.NATTRS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
           5.000
  
 list (`temp,return=xaxis`).nattrs
  !-> list (XAX_LEV9421_380).nattrs
              VARIABLE : (XAX_LEV9421_380).NATTRS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
           4.000
  
 use gt4d011
@@ -50841,15 +50935,18 @@ let a = temp.units
 list/d=3 a
              VARIABLE : TEMP.UNITS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "Deg C"
  
 list temp.units[d=3]
              VARIABLE : TEMP.UNITS[D=ocean_atlas_temp]
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "Deg C"
 list/d=3 temp.history
              VARIABLE : TEMP.HISTORY
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "From ocean_atlas_monthly"
  
 can data/all
@@ -50909,6 +51006,7 @@ let a= broiled.acl
 list a
              VARIABLE : BROILED.ACL
              FILENAME : test0.nc
+             X        : 1
           17000.
  
 let a= broiled.acf
@@ -50970,6 +51068,7 @@ use gt4d011
 list ..nvars
              VARIABLE : ..NVARS
              FILENAME : gt4d011.cdf
+             X        : 1
           12.00
  
 use coads_climatology
@@ -50977,10 +51076,12 @@ use coads_climatology
 list/d=1 ..nvars
              VARIABLE : ..NVARS
              FILENAME : gt4d011.cdf
+             X        : 1
           12.00
 list/d=2 ..nvars
              VARIABLE : ..NVARS
              FILENAME : coads_climatology.cdf
+             X        : 1
           1.000
  
 sh data
@@ -51003,6 +51104,7 @@ sh data
 list/d=2 ..varnames
              VARIABLE : ..VARNAMES
              FILENAME : coads_climatology.cdf
+             X        : 1
         "SST"
  
 list/d=2 ..dimnames
@@ -51015,49 +51117,55 @@ list/d=2 ..dimnames
 list/d=1 ..dimnames
              VARIABLE : ..DIMNAMES
              FILENAME : gt4d011.cdf
-             SUBSET   : 20 points (X)
- 1    /  1:"PSXT1"     
- 2    /  2:"PSYT1"     
- 3    /  3:"PSYTedges" 
- 4    /  4:"PSZT1"     
- 5    /  5:"PSZTedges" 
- 6    /  6:"TIME11"    
- 7    /  7:"PSXT91_108"
- 8    /  8:"PSYT35_56" 
- 9    /  9:"PSZT1_10"  
- 10   / 10:"PSYT35_55" 
- 11   / 11:"PSXU"      
- 12   / 12:"PSYU"      
- 13   / 13:"PSYUedges" 
- 14   / 14:"PSXU91_108"
- 15   / 15:"PSYU35_55" 
- 16   / 16:"PSZW"      
- 17   / 17:"PSZWedges" 
- 18   / 18:"PSYT36_55" 
- 19   / 19:"PSZW1_10"  
- 20   / 20:"PSYU35_56" 
+             SUBSET   : 21 points (X)
+ 1    /  1:"grid_definition"
+ 2    /  2:"PSXT1"          
+ 3    /  3:"PSYT1"          
+ 4    /  4:"PSYTedges"      
+ 5    /  5:"PSZT1"          
+ 6    /  6:"PSZTedges"      
+ 7    /  7:"TIME11"         
+ 8    /  8:"PSXT91_108"     
+ 9    /  9:"PSYT35_56"      
+ 10   / 10:"PSZT1_10"       
+ 11   / 11:"PSYT35_55"      
+ 12   / 12:"PSXU"           
+ 13   / 13:"PSYU"           
+ 14   / 14:"PSYUedges"      
+ 15   / 15:"PSXU91_108"     
+ 16   / 16:"PSYU35_55"      
+ 17   / 17:"PSZW"           
+ 18   / 18:"PSZWedges"      
+ 19   / 19:"PSYT36_55"      
+ 20   / 20:"PSZW1_10"       
+ 21   / 21:"PSYU35_56"      
  
 list/d=1 ..nattrs
              VARIABLE : ..NATTRS
              FILENAME : gt4d011.cdf
+             X        : 1
           1.000
 list/d=1 ..attnames
              VARIABLE : ..ATTNAMES
              FILENAME : gt4d011.cdf
+             X        : 1
         "history"
  
 list/d=1 ..ndims
              VARIABLE : ..NDIMS
              FILENAME : gt4d011.cdf
+             X        : 1
           21.00
 list/d=2 ..ndims
              VARIABLE : ..NDIMS
              FILENAME : coads_climatology.cdf
+             X        : 1
           3.000
  
 list ..nvars[d=1]
              VARIABLE : ..NVARS[D=gt4d011]
              FILENAME : gt4d011.cdf
+             X        : 1
           12.00
 sh var
  Created by DEFINE VARIABLE:
@@ -51084,6 +51192,7 @@ set data 1
 list/d=2 pp
              VARIABLE : ..VARNAMES
              FILENAME : coads_climatology.cdf
+             X        : 1
         "SST"
  
 go bn_reset
@@ -51173,10 +51282,12 @@ use coads_climatology
 list (coadsx).units
              VARIABLE : (COADSX).UNITS
              FILENAME : coads_climatology.cdf
+             X        : 1
         "degrees_east"
 list (coadsx).modulo
              VARIABLE : (COADSX).MODULO
              FILENAME : coads_climatology.cdf
+             X        : 1
         " "
 sho att/all (coadsx)
      attributes for dataset: ./coads_climatology.cdf
@@ -51265,6 +51376,7 @@ list (`sst,return=xaxis`).nattrs[d=2]
  !-> list (COADSX).nattrs[d=2]
              VARIABLE : (COADSX).NATTRS[D=coads_climatology]
              FILENAME : coads_climatology.cdf
+             X        : 1
           5.000
  
 ! using dimension names from the linked list structure
@@ -51284,6 +51396,7 @@ list (`cnames[i=1]`).nattrs
  !-> list (COADSX).nattrs
              VARIABLE : (COADSX).NATTRS
              FILENAME : coads_climatology.cdf
+             X        : 1
           5.000
  
 ! Intentional errors.
@@ -51426,6 +51539,7 @@ let pq = temp.pp
 list pq
              VARIABLE : TEMP.PP
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "PP now has some text."
  
 ! set an attribute when the variable is not in the default dataset.
@@ -52863,11 +52977,11 @@ 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
-PPL$XMIN = "131.0"
-PPL$XMAX = "281.0"
+PPL$XMIN = "131.000"
+PPL$XMAX = "281.000"
 sh sym ppl$xlow, ppl$xhigh   ! should be 165, 259
-PPL$XHIGH = "165.0"
-PPL$XLOW = "259.0"
+PPL$XHIGH = "165.000"
+PPL$XLOW = "259.000"
  
 sp rm -f err581_subspanx_fill_bug.nc
  
@@ -52949,8 +53063,6 @@ GO err581_if_conditional.jnl
 ! This should skip to the end, not trying to execute anything inside the IF 0 THEN
  
 if 0 then
-     endif
-  endif
 endif
  
 say "finished the if block"
@@ -52985,7 +53097,6 @@ let key_flag = 0
  
 IF `($xend) GT 360` THEN
  !-> IF 0 THEN
-  ENDIF
 ENDIF
 let dxymin = 0.20
 if `dxymin lt 0.12` then
@@ -53000,7 +53111,6 @@ endif
  
 IF `($xend) GT 360` THEN
  !-> IF 0 THEN
-   ENDIF
 ELSE
   say "this is the ELSE that should execute"
 this is the ELSE that should execute
@@ -53097,10 +53207,8 @@ ELIF ($refmap_type%|xline>1|*>0%) THEN    ! ELSE IF "xline"
  !-> ELIF 1 THEN
   define region/default/dy=$6"-30:30|1>-30:30|*>-20:20"/dx=$6"0:0|1>0:0|2>0:0|*>`max(-($ref_dx),-50)`:`min(($ref_dx),50)`" band
  !-> define region/default/dy=-20:20/dx=-50:50 band
- 
 ELIF ($refmap_type%|yline>1|*>0%) THEN    ! ELSE IF "yline"
  !-> ELIF 0 THEN
-   ENDIF
 ENDIF
 ! init the land mask data set
 set data coads_climatology
@@ -53139,17 +53247,12 @@ IF ($refmap_type%|box>1|*>0) THEN    ! IF "box"
  !-> IF 0 THEN
 ELIF ($refmap_type%|xline>1|*>0) THEN    ! ELSE IF "xline"
  !-> ELIF 1 THEN
- 
   IF ($refmap_ycompress) THEN
  !-> IF 0 THEN
   ENDIF
- 
   plot/over/vs/nolab/line=8/i=1:2 refmap_xrng, refmap_ymid+(i-i)
- 
 ELIF ($refmap_type%|yline>1|*>0) THEN    ! ELSE IF "yline"
  !-> ELIF 0 THEN
-  ENDIF
-  ENDIF
 ENDIF
  
  
@@ -53430,8 +53533,8 @@ GO err581_define_1pt_bounds.jnl
 ! again, and even that result is now very wrong!! Same results in both v5.81
 ! for Linux and v5.70 for Irix.
  
-yes? def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
+def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
+list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
              X: -2 to 6
  Column  1: XBOXLO is XBOXLO (axis XAX)
  Column  2: XBOXHI is XBOXHI (axis XAX)
@@ -53441,8 +53544,8 @@ yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
 3   / 2:  2.000  4.000  3.000
 5   / 3:  4.000  6.000  5.000
  
-yes? def ax/x/bounds xax = {0},{-2,2}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
+def ax/x/bounds xax = {0},{-2,2}
+list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
              X: 0
  Column  1: XBOXLO is XBOXLO (axis XAX)
  Column  2: XBOXHI is XBOXHI (axis XAX)
@@ -53450,8 +53553,8 @@ yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
          XBOXLO  XBOXHI    X
 I / *:    -2.000  2.000  0.0000
  
-yes? def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
+def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
+list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
              X: -2 to 6
  Column  1: XBOXLO is XBOXLO (axis XAX)
  Column  2: XBOXHI is XBOXHI (axis XAX)
@@ -53527,9 +53630,9 @@ go polymark poly/lev=(-5,30,1)/pal=white/fill/line=1/nolab/over v1 v2 v3 circle
  
 ! And, from Andrew with other reversed axes.
  
-yes? ppl cross 1
-yes? plot/vl=4:-4/hl=4:-4/vs/line/title="there should be just one triangle" {1,2,3,1},{0,2,1,0}
-yes? poly/ov/col=2/pal=yellow {1,2,3,1},{0,2,1,0}
+ppl cross 1
+plot/vl=4:-4/hl=4:-4/vs/line/title="there should be just one triangle" {1,2,3,1},{0,2,1,0}
+poly/ov/col=2/pal=yellow {1,2,3,1},{0,2,1,0}
  
 ppl cross 0
  
@@ -53701,12 +53804,10 @@ GO err600_if_comments_tab.jnl
 ! thrown off and we got an error about an invalid ENDIF
  
 IF 0 THEN
-   ENDIF
 ENDIF
  
 ! Here there is a tab before the ! which throws off the parsing...
 IF 0 THEN
-   ENDIF
 ENDIF
  
 ! err600_set_var_title.jnl
@@ -53858,6 +53959,7 @@ list ..dimnames
 list ..varnames
              VARIABLE : ..VARNAMES
              FILENAME : levitus_climatology.cdf
+             X        : 1
         "TEMP"
  
 ! err600_nc_des_order.jnl
@@ -54079,7 +54181,7 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        25   T       FERRET V6.925    7-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.95   26-Oct-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (PSXT191_108)          DOUBLE    units           CHAR        12   T       degrees_east
@@ -54124,7 +54226,7 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        25   T       FERRET V6.925    7-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.95   26-Oct-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (PSXT191_108)          DOUBLE    units           CHAR        12   T       degrees_east
@@ -55375,8 +55477,6 @@ LIST/NOHEAD/I=91:94/J=37/K=1/L=1 temp,salt
 ! Previously this did not have the effect of changing the precision.
 LIST/NOHEAD/I=91:94/J=37/K=1/L=1/PREC=3 temp,salt
 139.5W / 91:  27.3  2.37E-04
-Unable to allocate 500000.0 Mwords of memory.
-Restoring previous memory of 0.2 Mwords.
 138.5W / 92:  27.3  2.38E-04
 137.5W / 93:  27.2  2.38E-04
 136.5W / 94:  27.2  2.38E-04
@@ -55430,6 +55530,8 @@ LIST/X=179:183/Y=40/L=3 my_sst
              SUBSET   : 3 points (LONGITUDE)
              LATITUDE : 39N
              TIME     : MAR
+Unable to allocate 500000.0 Mwords of memory.
+Restoring previous memory of 0.2 Mwords.
                  39N     
                   65
  179E   / 80:  11.89756
@@ -55644,6 +55746,7 @@ IS_ELEMENT_OF_STR_N(VAR,VALUES)
 LABWID(STR,HT)
 LANCZOS(A,F1,F2,N)
 LIST_VALUE_XML(tag,value,cdata_flag,outputfile)
+LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
 LSL_LOWPASS(A,cutoff_period,filter_span)
 MINMAX(A)
 MINUTES24(formatted time)
@@ -55656,6 +55759,7 @@ SAMPLEI_MULTI(I_INDICES,DAT_TO_SAMPLE)
 SAMPLEJ_MULTI(J_INDICES,DAT_TO_SAMPLE)
 SAMPLEK_MULTI(K_INDICES,DAT_TO_SAMPLE)
 SAMPLEL_MULTI(L_INDICES,DAT_TO_SAMPLE)
+SAMPLEF_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
 SAMPLET_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
 SAMPLEXY(DAT_TO_SAMPLE,XPTS,YPTS)
 SAMPLEXY_CLOSEST(DAT_TO_SAMPLE,XPTS,YPTS)
@@ -55753,6 +55857,14 @@ EXPNDI_BY_M_COUNTS(dat,counts,max_row_len)
 STR_MASK(STRING,MASK,--)
 SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
 SEPARATE(A,Rowsize,FixLongitudes)
+TIME_REFORMAT(A)
+FT_TO_ORTHOGONAL(VAR,TIME2D,ALLTIME)
+CURV_TO_RECT_FSU(V,mapping)
+PIECEWISE3(V1,V2,V3,Control parameter,Tol1,Tol2,Tol3)
+SAMPLE_FAST_I(V,Indices)
+SAMPLE_FAST_I_STR(S,Indices)
+SEPARATE_STR(A,Rowsize,FixLongitudes)
+WRITE_WEBROW_GWT(id,name,Cruise_Mask,filename)
 ADD_9(A,B,C,D,E,F,G,H,I)
 APPENDE(ENS,VAR)
 AVET(A)
@@ -55763,6 +55875,7 @@ 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)
@@ -55922,15 +56035,15 @@ def axis/y=0.000001:0.000002/npoints=100 yax
 let a = x[gx=xax] + y[gy=yax]
 shade a; sh sym xax*; ; sh sym yax*
 XAXIS_REVERSED = "0"
-XAXIS_MIN = "3.99494949E-06"
+XAXIS_MIN = "3.994949495E-06"
 XAXL = "4.737"
 XAXNAME = "XIRREG_SUBSPAN"
-XAXIS_MAX = "5.0050505E-06"
+XAXIS_MAX = "5.005050505E-06"
 XAXNAM = "(XAX_LEV9421_380)"
 YAXIS_REVERSED = "0"
 YAXL = "4.737"
-YAXIS_MIN = "9.94949495E-07"
-YAXIS_MAX = "2.0050505E-06"
+YAXIS_MIN = "9.949494949E-07"
+YAXIS_MAX = "2.005050505E-06"
 YAXNAM = "YAX_LEV94"
  
  
@@ -55965,27 +56078,27 @@ USE ocean_atlas_temp
 SET VIEW upper
 FILL temp[L=2,X=180:200,Y=30:44]
 SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.50000"
-XAXIS_MAX = "199.5000"
-YAXIS_MIN = "30.500000"
-YAXIS_MAX = "43.50000"
+XAXIS_MIN = "180.500000"
+XAXIS_MAX = "199.500000"
+YAXIS_MIN = "30.5000000"
+YAXIS_MAX = "43.5000000"
  
 ! See the larger region used by default for SHADE
 SHADE temp[L=2,X=180:200,y=30:44]
 SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.00000"
-XAXIS_MAX = "200.0000"
-YAXIS_MIN = "30.000000"
-YAXIS_MAX = "44.00000"
+XAXIS_MIN = "180.000000"
+XAXIS_MAX = "200.000000"
+YAXIS_MIN = "30.0000000"
+YAXIS_MAX = "44.0000000"
  
 ! SHADE/TRIM trims the region as for a FILL plot
 SET VIEW lower
 SHADE/TRIM temp[L=2,X=180:200,y=30:44]
 SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.50000"
-XAXIS_MAX = "199.5000"
-YAXIS_MIN = "30.500000"
-YAXIS_MAX = "43.50000"
+XAXIS_MIN = "180.500000"
+XAXIS_MAX = "199.500000"
+YAXIS_MIN = "30.5000000"
+YAXIS_MAX = "43.5000000"
  
  
 GO bn_reset
@@ -56430,27 +56543,28 @@ list vnames
  4   / 4:"TIME3"          
 list lnames
              VARIABLE : ..DIMNAMES[D=gt4d011]
-             SUBSET   : 20 points (X)
- 1    /  1:"PSXT1"     
- 2    /  2:"PSYT1"     
- 3    /  3:"PSYTedges" 
- 4    /  4:"PSZT1"     
- 5    /  5:"PSZTedges" 
- 6    /  6:"TIME11"    
- 7    /  7:"PSXT91_108"
- 8    /  8:"PSYT35_56" 
- 9    /  9:"PSZT1_10"  
- 10   / 10:"PSYT35_55" 
- 11   / 11:"PSXU"      
- 12   / 12:"PSYU"      
- 13   / 13:"PSYUedges" 
- 14   / 14:"PSXU91_108"
- 15   / 15:"PSYU35_55" 
- 16   / 16:"PSZW"      
- 17   / 17:"PSZWedges" 
- 18   / 18:"PSYT36_55" 
- 19   / 19:"PSZW1_10"  
- 20   / 20:"PSYU35_56" 
+             SUBSET   : 21 points (X)
+ 1    /  1:"grid_definition"
+ 2    /  2:"PSXT1"          
+ 3    /  3:"PSYT1"          
+ 4    /  4:"PSYTedges"      
+ 5    /  5:"PSZT1"          
+ 6    /  6:"PSZTedges"      
+ 7    /  7:"TIME11"         
+ 8    /  8:"PSXT91_108"     
+ 9    /  9:"PSYT35_56"      
+ 10   / 10:"PSZT1_10"       
+ 11   / 11:"PSYT35_55"      
+ 12   / 12:"PSXU"           
+ 13   / 13:"PSYU"           
+ 14   / 14:"PSYUedges"      
+ 15   / 15:"PSXU91_108"     
+ 16   / 16:"PSYU35_55"      
+ 17   / 17:"PSZW"           
+ 18   / 18:"PSZWedges"      
+ 19   / 19:"PSYT36_55"      
+ 20   / 20:"PSZW1_10"       
+ 21   / 21:"PSYU35_56"      
  
 go bn_reset
 cancel mode verify
@@ -56465,12 +56579,14 @@ let nat = temp.nattrs
 list nat
              VARIABLE : TEMP.NATTRS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
           5.000000
  
 list (`temp,return=xaxis`)[d=2].nattrs
  !-> list (XAX_LEV9421_380)[d=2].nattrs
-             VARIABLE : (XAX_LEV9421_380)[d=ocean_atlas_temp].NATTRS
+             VARIABLE : (XAX_LEV9421_380)[D=ocean_atlas_temp].NATTRS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
           4.000000
  
 use gt4d011
@@ -56505,14 +56621,17 @@ let a = temp.units
 list/d=3 a
              VARIABLE : TEMP.UNITS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "Deg C"
 list temp[d=3].units
-             VARIABLE : TEMP[d=ocean_atlas_temp].UNITS
+             VARIABLE : TEMP[D=ocean_atlas_temp].UNITS
              FILENAME : gt4d011.cdf
+             X        : 1
         "Deg C"
 list/d=3 temp.history
              VARIABLE : TEMP.HISTORY
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "From ocean_atlas_monthly"
  
 can data/all
@@ -56525,7 +56644,7 @@ use coads_climatology
 ! But this does
 let a = sst[d=1].dimnames
 list a[i=2]
-             VARIABLE : SST[d=coads_climatology].DIMNAMES
+             VARIABLE : SST[D=coads_climatology].DIMNAMES
              FILENAME : coads_climatology.cdf
              X        : 2
         "COADSY"
@@ -56541,16 +56660,18 @@ use coads_climatology
 define symbol ferret_plot_var sst[x=30:39,y=-90:90]
 list ($ferret_plot_var).long_name
  !-> list sst[x=30:39,y=-90:90].long_name
-             VARIABLE : SST.LONG_NAME
+             VARIABLE : SST[X=30:39,Y=-90:90].LONG_NAME
              FILENAME : coads_climatology.cdf
+             X        : 1
         "SEA SURFACE TEMPERATURE"
  
 use coads_climatology
 define symbol ferret_plot_var sst[d=1,x=30:35,y=-90:90]
 list ($ferret_plot_var).units
  !-> list sst[d=1,x=30:35,y=-90:90].units
-             VARIABLE : SST[d=coads_climatology].UNITS
+             VARIABLE : SST[D=coads_climatology,X=30:35,Y=-90:90].UNITS
              FILENAME : coads_climatology.cdf
+             X        : 1
         "Deg C"
  
 use coads_climatology
@@ -56558,8 +56679,9 @@ use levitus_climatology
 define symbol ferret_plot_var sst[d=1,x=30:35,y=-90:90]
 list ($ferret_plot_var).history
  !-> list sst[d=1,x=30:35,y=-90:90].history
-             VARIABLE : SST[d=coads_climatology].HISTORY
+             VARIABLE : SST[D=coads_climatology,X=30:35,Y=-90:90].HISTORY
              FILENAME : levitus_climatology.cdf
+             X        : 1
         "From coads_climatology"
  
 go bn_reset
@@ -56575,13 +56697,15 @@ def sym yaxnam  "(`temp[d=1],return=yaxis`)"
  
 list ($xaxnam)[d=1].modulo
  !-> list (XAXLEVITR1_160)[d=1].modulo
-             VARIABLE : (XAXLEVITR1_160)[d=levitus_climatology].MODULO
+             VARIABLE : (XAXLEVITR1_160)[D=levitus_climatology].MODULO
              FILENAME : coads_climatology.cdf
+             X        : 1
         " "
 list ($yaxnam).point_spacing[d=1]
  !-> list (YAXLEVITR1_90).point_spacing[d=1]
              VARIABLE : (YAXLEVITR1_90).POINT_SPACING[D=levitus_climatology]
              FILENAME : levitus_climatology.cdf
+             X        : 1
         "even"
  
  
@@ -56779,12 +56903,12 @@ GO err611_exit_if.jnl
 ! This only in v6.11 GFDL release bug
 ! Fixed in xeq_exit.F
  
-yes? sp echo if 1 then > a.jnl
-yes? sp echo exit/script >> a.jnl
-yes? sp echo endif >> a.jnl
-yes? sp echo go a > b.jnl
-yes? sp echo say hello >> b.jnl
-yes? go b  !the following fails to say "hello"
+sp echo if 1 then > a.jnl
+sp echo exit/script >> a.jnl
+sp echo endif >> a.jnl
+sp echo go a > b.jnl
+sp echo say hello >> b.jnl
+go b  !the following fails to say "hello"
 go a
 if 1 then
 exit/script
@@ -56853,7 +56977,7 @@ ppl list labels
 plot/x=56e:100e/y=10 sst[L=1]
 plot/over/x=56e:100e/y=40 sst[L=1]
 ppl list labels
- @ACSEA SURFACE TEMPERATURE (Deg C)                                             
+                                                                                
  @ASLONGITUDE                                                                   
  @ASDeg C                                                                       
 
@@ -57065,12 +57189,12 @@ GO err611_exit_if.jnl
 ! This only in v6.11 GFDL release bug
 ! Fixed in xeq_exit.F
  
-yes? sp echo if 1 then > a.jnl
-yes? sp echo exit/script >> a.jnl
-yes? sp echo endif >> a.jnl
-yes? sp echo go a > b.jnl
-yes? sp echo say hello >> b.jnl
-yes? go b  !the following fails to say "hello"
+sp echo if 1 then > a.jnl
+sp echo exit/script >> a.jnl
+sp echo endif >> a.jnl
+sp echo go a > b.jnl
+sp echo say hello >> b.jnl
+go b  !the following fails to say "hello"
 go a
 if 1 then
 exit/script
@@ -59497,7 +59621,7 @@ sh command list
        /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/SIGMA
+       /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]
@@ -59990,10 +60114,10 @@ SH GRID am
  
 GO bn_clock_syms
 SH SYM delta_cpu, clock_secs, current_date, current_time
-DELTA_CPU = "47.1998"
-CLOCK_SECS = "93.535"
-CURRENT_DATE = " 7-Oct-14"
-CURRENT_TIME = "10:43:20"
+DELTA_CPU = "46.8229"
+CLOCK_SECS = "639.568"
+CURRENT_DATE = "26-Oct-15"
+CURRENT_TIME = "17:32:13"
 ! test special symbols DELTA_CPU, CLOCK_SECS
 !
 ! NOTE THAT THE VALUES OF THE SYMBOLS WILL VARY FROM ONE
@@ -60002,8 +60126,8 @@ CURRENT_TIME = "10:43:20"
 use gt4d011
 shade/k=1 temp[L=@ave]
 sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.040994"
-CLOCK_SECS = "93.638"
+DELTA_CPU = "0.048992"
+CLOCK_SECS = "643.172"
  
 repeat/k=1:10 shade temp[L=@ave]
 !-> REPEAT: K=1
@@ -60017,60 +60141,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.322951
+ !-> DEFINE VARIABLE ten_plots = 0.377943
 sh sym DELTA_CPU, CLOCK_SECS
 DELTA_CPU = "0"
-CLOCK_SECS = "94.678"
+CLOCK_SECS = "679.808"
  
 let  sumclock = 0
 let  sumcpu = 0
 sh sym CLOCK_SECS
-CLOCK_SECS = "94.679"
+CLOCK_SECS = "679.809"
 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.034995
- !-> DEFINE VARIABLE sumcpu =0.034995
+ !-> DEFINE VARIABLE dt = 0.042993
+ !-> DEFINE VARIABLE sumcpu =0.042993
 !-> REPEAT: K=2
- !-> DEFINE VARIABLE dt = 0.038994
- !-> DEFINE VARIABLE sumcpu =0.073989
+ !-> DEFINE VARIABLE dt = 0.042994
+ !-> DEFINE VARIABLE sumcpu =0.085987
 !-> REPEAT: K=3
- !-> DEFINE VARIABLE dt = 0.032995
- !-> DEFINE VARIABLE sumcpu =0.106984
+ !-> DEFINE VARIABLE dt = 0.041994
+ !-> DEFINE VARIABLE sumcpu =0.127981
 !-> REPEAT: K=4
- !-> DEFINE VARIABLE dt = 0.035995
- !-> DEFINE VARIABLE sumcpu =0.142979
+ !-> DEFINE VARIABLE dt = 0.038993
+ !-> DEFINE VARIABLE sumcpu =0.166974
 !-> REPEAT: K=5
- !-> DEFINE VARIABLE dt = 0.032995
- !-> DEFINE VARIABLE sumcpu =0.175974
+ !-> DEFINE VARIABLE dt = 0.036995
+ !-> DEFINE VARIABLE sumcpu =0.203969
 !-> REPEAT: K=6
- !-> DEFINE VARIABLE dt = 0.033994
- !-> DEFINE VARIABLE sumcpu =0.209968
+ !-> DEFINE VARIABLE dt = 0.041993
+ !-> DEFINE VARIABLE sumcpu =0.245962
 !-> REPEAT: K=7
- !-> DEFINE VARIABLE dt = 0.037995
- !-> DEFINE VARIABLE sumcpu =0.247963
+ !-> DEFINE VARIABLE dt = 0.038994
+ !-> DEFINE VARIABLE sumcpu =0.284956
 !-> REPEAT: K=8
- !-> DEFINE VARIABLE dt = 0.037994
- !-> DEFINE VARIABLE sumcpu =0.285957
+ !-> DEFINE VARIABLE dt = 0.042994
+ !-> DEFINE VARIABLE sumcpu =0.32795
 !-> REPEAT: K=9
- !-> DEFINE VARIABLE dt = 0.035994
- !-> DEFINE VARIABLE sumcpu =0.321951
+ !-> DEFINE VARIABLE dt = 0.042993
+ !-> DEFINE VARIABLE sumcpu =0.370943
 !-> REPEAT: K=10
- !-> DEFINE VARIABLE dt = 0.032996
- !-> DEFINE VARIABLE sumcpu =0.354947
+ !-> DEFINE VARIABLE dt = 0.043994
+ !-> DEFINE VARIABLE sumcpu =0.414937
  
 say `sumcpu`
- !-> MESSAGE/CONTINUE 0.354947
-0.354947
+ !-> MESSAGE/CONTINUE 0.414937
+0.414937
 sh sym CLOCK_SECS
-CLOCK_SECS = "96.227"
+CLOCK_SECS = "752.342"
  
 SH SYM session_date, current_date, session_time, current_time
-SESSION_DATE = " 7-Oct-14"
-SESSION_TIME = "10:41"
-CURRENT_DATE = " 7-Oct-14"
-CURRENT_TIME = "10:43:23"
+SESSION_DATE = "26-Oct-15"
+SESSION_TIME = "17:21"
+CURRENT_DATE = "26-Oct-15"
+CURRENT_TIME = "17:34:06"
  
  
 ! ******** V6.3 Additions below ***********
@@ -60895,8 +61019,8 @@ say `temp,return=isdepth`
  
 use coads_climatology
 say `sst,return=isdepth`
- !-> MESSAGE/CONTINUE NORMAL
-NORMAL
+ !-> MESSAGE/CONTINUE 0
+0
  
 can data 2
  
@@ -61415,24 +61539,24 @@ plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day]
  found   TEMP     M: 34 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
  regrid  TEMP     M: 26 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 23 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 22 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  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
 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: 23 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 22 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  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: 23 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  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: 23 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 22 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 23 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ 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
 setting up plot
 PPL plot 756  complete
@@ -61478,12 +61602,12 @@ plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at 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
  doing moduloing TEMP on T axis:     1   168 dset:   2
- regrid  TEMP     M: 16 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 13 dset:   2 I:   45   56  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 16 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ 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 XY
- regrid  TEMP     M: 16 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 13 dset:   2 I:   45   56  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 15 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 12 dset:   2 I:   45   56  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
 setting up plot
 PPL plot 759  complete
 plot/over temp[g=u at asn]
@@ -61495,16 +61619,16 @@ plot/over temp[g=u at asn]
  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
- regrid  TEMP     M: 14 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- -DELETE 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
  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: 15 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 12 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 15 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  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
  doing moduloing TEMP on T axis:     1     2 dset:   2
 setting up plot
 PPL plot 760  complete
@@ -61516,14 +61640,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: 15 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 11 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ reading TEMP     M: 14 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: 11 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 11 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
  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: 11 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
 setting up plot
 PPL plot 761  complete
 plot/over temp[g=u,gt=u at ave]
@@ -61545,10 +61669,10 @@ plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day,gt=g5dayg5da
  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: 11 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 10 dset:   2 I:   50   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: 11 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    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]
@@ -61559,11 +61683,11 @@ plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gt=g5_10g00abcdefg
  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: 11 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 10 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
  regrid  TEMP     M: 21 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 11 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 10 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 11 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: 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
@@ -61576,7 +61700,7 @@ plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day,gt=g5dayg5da
  found   TEMP     M: 18 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
  regrid  TEMP     M: 21 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M:  9 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ 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
@@ -62425,7 +62549,7 @@ GO bn_multi_decade
 ! New default no-small tics for multi-decade plots
 ! See bug 670
  
-def axis/t="01-JAN-1860":"30-DEC-2300":5/edges/units="Days"/cal="360d" simutaxis1
+def axis/t="01-JAN-1860":"30-DEC-2300":1/edges/units="years"/cal="360d" simutaxis1
 let tvar = t[gt=simutaxis1]*-1E+34
  
 define view/x=0:1/y=0.000:0.125 v1
@@ -62824,7 +62948,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.
@@ -63960,7 +64084,7 @@ list contents
  2   / 2:"     e.g.   yes? GO filename"                                              
  3   / 3:" "                                                                         
  4   / 4:" Use "GO/HELP filename" to read documentation in  the file to be executed."
- 5   / 5:" *** NOTE: Axis is already regular: MYAXIS"                                
+ 5   / 5:"           *** NOTE: Axis is already regular: MYAXIS"                      
  6   / 6:" **ERROR: variable unknown or not in data set: GARBAGE"                    
  7   / 7:"show grid garbage"                                                         
 cancel var contents
@@ -64046,9 +64170,9 @@ list contents
              VARIABLE : { SPAWN:"cat redirect_journal.txt" }
              SUBSET   : 47 points (X)
  1    /  1:" ! NOAA/PMEL TMAP"                                                          
- 2    /  2:" ! FERRET v6.925  "                                                         
- 3    /  3:" ! Linux 2.6.18-371.12.1.el5 64-bit - 10/07/14"                             
- 4    /  4:" !  7-Oct-14 10:41     "                                                    
+ 2    /  2:" ! FERRET v6.95  "                                                          
+ 3    /  3:" ! Linux 2.6.18-406.el5 64-bit - 10/26/15"                                  
+ 4    /  4:" ! 26-Oct-15 17:21     "                                                    
  5    /  5:""                                                                           
  6    /  6:"! "                                                                         
  7    /  7:"!! --- 22. produce some output to stdout and stderr"                        
@@ -64127,7 +64251,7 @@ variable transforms e.g.SST[T=1-jan:15-mar at DDC]
    @SBN        binomial smoothed            @SMN        minimum smoothed
    @SWL        Welch smoothed               @STD        standard deviation
    @SHN        Hanning smoothed             @WGT        weights for avg,int
-   @SPZ        Parzen smoothed
+   @SPZ        Parzen smoothed              @SPX        box smooth w/missing
  
 regridding transforms e.g.SST[GX=x5deg at AVE]
    code        description                  code        description
@@ -65153,8 +65277,7 @@ 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        2048 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.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2. [...]
+                                 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 [...]
   
 (LON273_289)           DOUBLE    long_name       CHAR        9    T       longitude
                                  units           CHAR        12   T       degrees_east
@@ -65335,7 +65458,6 @@ sh dat
  name     title                             I         J         K         L         M         N
  TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25      ...       ...
  TEMP_MM  TEMP - TEMPAVE                   1:18      1:22      1:10      1:25      ...       ...
-       (T=14-AUG-1982 11:00:13-JAN-1983 13:00)
  
  
  
@@ -65425,12 +65547,12 @@ list/L=15:20 tax_month(t[gt=tvar],tvar), tax_yearfrac(t[gt=tvar],tvar)
  Column  1: TAX_MONTH(T[GT=TVAR],TVAR)
  Column  2: TAX_YEARFRAC(T[GT=TVAR],TVAR)
              (C001,V002)  (C001,V005)
-17-MAR      / 15:   3.000  0.2082
-16-APR      / 16:   4.000  0.2904
-17-MAY      / 17:   5.000  0.3753
-16-JUN      / 18:   6.000  0.4575
-17-JUL      / 19:   7.000  0.5425
-16-AUG      / 20:   8.000  0.6247
+17-MAR      / 15:   3.000  0.2092
+16-APR      / 16:   4.000  0.2926
+17-MAY      / 17:   5.000  0.3760
+16-JUN      / 18:   6.000  0.4594
+17-JUL      / 19:   7.000  0.5428
+16-AUG      / 20:   8.000  0.6262
 ! the following is an error for a modulo time axis
 list/L=15:20 tax_year(t[gt=tvar],tvar)
 list tax_units(tvar)
@@ -65475,7 +65597,6 @@ sh dat
  name     title                             I         J         K         L         M         N
  TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25      ...       ...
  TEMP_MM  TEMP - TEMPAVE                   1:18      1:22      1:10      1:25      ...       ...
-       (T=14-AUG-1982 11:00:13-JAN-1983 13:00)
  
  
 GO bn_reset
@@ -65871,8 +65992,8 @@ list/l=1:7 TAX_yearfrac(t[gt=var], var)
  01-JAN-2010 00:00:10 / 3:  0.002740
  01-JAN-2010 00:00:15 / 4:  0.002740
  01-JAN-2010 00:00:20 / 5:  0.002740
- 01-JAN-2010 00:00:25 / 6:  0.002740
- 01-JAN-2010 00:00:30 / 7:  0.002740
+ 01-JAN-2010 00:00:25 / 6:  0.002741
+ 01-JAN-2010 00:00:30 / 7:  0.002741
  
 ! This example from Patrick B. Output of TAX_dayfrac repeats.
 ! We need to just return an error mesage. Cant represent 2.5 years
@@ -66517,40 +66638,40 @@ can mode ver
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.712
-randu2_randn2       0.201
-randu2_randn2       0.650
-randu2_randn2       0.382
-randu2_randn2       0.609
+randu2_randn2       0.913
+randu2_randn2       0.221
+randu2_randn2       0.584
+randu2_randn2       0.036
+randu2_randn2       0.766
              VARIABLE : RANDU2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.262
-randu2_randn2       0.997
-randu2_randn2       0.638
-randu2_randn2       0.693
-randu2_randn2       0.167
+randu2_randn2       0.463
+randu2_randn2       0.329
+randu2_randn2       0.936
+randu2_randn2       0.904
+randu2_randn2       0.370
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.833
-randu2_randn2       0.409
-randu2_randn2       0.953
-randu2_randn2       0.533
-randu2_randn2       0.222
-randu2_randn2       0.745
+randu2_randn2       0.982
+randu2_randn2       0.402
+randu2_randn2       0.270
+randu2_randn2       0.739
+randu2_randn2       0.243
+randu2_randn2       0.518
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.917
-randu2_randn2       0.701
-randu2_randn2       0.236
-randu2_randn2       0.034
-randu2_randn2       0.841
-randu2_randn2       0.972
+randu2_randn2       0.401
+randu2_randn2       0.497
+randu2_randn2       0.128
+randu2_randn2       0.496
+randu2_randn2       0.514
+randu2_randn2       0.849
              VARIABLE : RANDU2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
@@ -66575,40 +66696,40 @@ randu2_randn2       0.900
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.240
-randu2_randn2      -1.279
-randu2_randn2      -0.155
-randu2_randn2      -0.377
-randu2_randn2       2.940
+randu2_randn2       1.550
+randu2_randn2      -1.357
+randu2_randn2       0.921
+randu2_randn2      -2.208
+randu2_randn2      -1.365
              VARIABLE : RANDN2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2      -0.961
-randu2_randn2      -0.963
-randu2_randn2       1.489
-randu2_randn2       0.470
-randu2_randn2       1.017
+randu2_randn2      -1.928
+randu2_randn2      -1.458
+randu2_randn2      -1.332
+randu2_randn2       0.077
+randu2_randn2       1.939
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2      -0.310
-randu2_randn2       0.844
-randu2_randn2       0.924
-randu2_randn2      -0.357
-randu2_randn2       0.229
-randu2_randn2       1.450
+randu2_randn2      -1.352
+randu2_randn2       0.976
+randu2_randn2      -2.156
+randu2_randn2       1.193
+randu2_randn2       1.564
+randu2_randn2      -0.296
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.010
-randu2_randn2      -1.172
-randu2_randn2       1.298
-randu2_randn2       1.144
-randu2_randn2       0.021
-randu2_randn2       0.230
+randu2_randn2       0.242
+randu2_randn2      -1.126
+randu2_randn2       2.124
+randu2_randn2       1.044
+randu2_randn2      -0.462
+randu2_randn2      -0.179
              VARIABLE : RANDN2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
@@ -66633,14 +66754,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.199       1.199       0.549
-randu2_randn2       1.055       1.055       0.549
-randu2_randn2       0.549       0.549      -0.127
-randu2_randn2      -0.208      -0.127       0.549
-randu2_randn2      -0.127      -0.208       0.549
-randu2_randn2      -0.857      -0.262       0.549
-randu2_randn2      -0.262      -0.262       0.549
-randu2_randn2       0.759       0.759       0.759
+randu2_randn2       1.352       1.463       0.677
+randu2_randn2       1.463       1.352       0.677
+randu2_randn2       0.677       0.677      -0.037
+randu2_randn2      -0.037      -0.037       0.161
+randu2_randn2      -0.185      -0.185       0.161
+randu2_randn2      -0.186      -0.186       0.161
+randu2_randn2      -0.449      -0.186       0.161
+randu2_randn2       0.161       0.161       0.161
  
 GO bn_reset
 cancel mode verify
@@ -68250,7 +68371,7 @@ LIST v[@ypt]
 LIST v[@ept]
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 by 3 points (X-Y-F)
-             E        : 1.00499999999999989 (interpolated)
+             E        : 1 (interpolated)
               1        2        3     
               1        2        3
  ---- N:1 F:   1
@@ -68268,7 +68389,7 @@ LIST v[@ept]
 LIST v[@fpt]
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 by 3 points (X-Y-E)
-             F        : 1.000499999999999945 (interpolated)
+             F        : 1 (interpolated)
               1        2        3     
               1        2        3
  ---- M:1 E:   1
@@ -68288,8 +68409,8 @@ LIST v[@fpt]
 LIST v[@ept, at fpt]	!XY
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 points (X-Y)
-             E        : 1.00499999999999989 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             E        : 1 (interpolated)
+             F        : 1 (interpolated)
               1        2        3     
               1        2        3
  1   / 1:  1112.00  1113.00  1114.00
@@ -68299,7 +68420,7 @@ LIST v[@ypt, at fpt]	!XE
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 points (X-E)
              Y        : 1.05 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             F        : 1 (interpolated)
               1        2        3     
               1        2        3
  1   / 1:  1112.00  1113.00  1114.00
@@ -68309,7 +68430,7 @@ LIST v[@ypt, at ept]	!XF
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 points (X-F)
              Y        : 1.05 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
+             E        : 1 (interpolated)
               1        2        3     
               1        2        3
  1   / 1:  1112.00  1113.00  1114.00
@@ -68319,7 +68440,7 @@ LIST v[@xpt, at fpt]	!YE
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 points (Y-E)
              X        : 1.5 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             F        : 1 (interpolated)
               1        2        3     
               1        2        3
  1   / 1:  1112.00  1122.00  1132.00
@@ -68329,7 +68450,7 @@ LIST v[@xpt, at ept]	!YF
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 points (Y-F)
              X        : 1.5 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
+             E        : 1 (interpolated)
               1        2        3     
               1        2        3
  1   / 1:  1112.00  1122.00  1132.00
@@ -68352,7 +68473,7 @@ LIST/ORDER=F v[@xpt, at ypt, at ept]	! F
              SUBSET   : 3 points (F)
              X        : 1.5 (interpolated)
              Y        : 1.05 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
+             E        : 1 (interpolated)
              1        2        3     
              1        2        3
           1112.50  2112.50  3112.50
@@ -68361,7 +68482,7 @@ LIST/ORDER=E v[@xpt, at ypt, at fpt]	! E
              SUBSET   : 3 points (E)
              X        : 1.5 (interpolated)
              Y        : 1.05 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             F        : 1 (interpolated)
              1        2        3     
              1        2        3
           1112.50  1212.50  1312.50
@@ -68369,8 +68490,8 @@ LIST/ORDER=Y v[@xpt, at ept, at fpt]	! Y
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 points (Y)
              X        : 1.5 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             E        : 1 (interpolated)
+             F        : 1 (interpolated)
              1        2        3     
              1        2        3
           1112.50  1122.50  1132.50
@@ -68378,8 +68499,8 @@ LIST/ORDER=X v[@ypt, at ept, at fpt]	! X
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 points (X)
              Y        : 1.05 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             E        : 1 (interpolated)
+             F        : 1 (interpolated)
              1        2        3     
              1        2        3
           1112.50  1113.50  1114.50
@@ -68389,8 +68510,8 @@ LIST v[@xpt, at ypt, at ept, at fpt]
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              X        : 1.5 (interpolated)
              Y        : 1.05 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             E        : 1 (interpolated)
+             F        : 1 (interpolated)
           1113.00
  
 GO bn_reset
@@ -68463,7 +68584,7 @@ list veven
              SUBSET   : 3 by 3 by 3 by 3 points (X-Y-E-FORECAST)
               4        6        8     
               2        3        4
- ---- N:2 F:   05-JAN-1980 00:00:00
+ ---- N:2 F:   1980
  ---- M:2 E:   4
  4   / 2:  2222.00  3222.00  4222.00
  6   / 3:  2322.00  3322.00  4322.00
@@ -68476,7 +68597,7 @@ list veven
  4   / 2:  2242.00  3242.00  4242.00
  6   / 3:  2342.00  3342.00  4342.00
  8   / 4:  2442.00  3442.00  4442.00
- ---- N:3 F:   07-JAN-1980 00:00:00
+ ---- N:3 F:   1980
  ---- M:2 E:   4
  4   / 2:  2223.00  3223.00  4223.00
  6   / 3:  2323.00  3323.00  4323.00
@@ -68489,7 +68610,7 @@ list veven
  4   / 2:  2243.00  3243.00  4243.00
  6   / 3:  2343.00  3343.00  4343.00
  8   / 4:  2443.00  3443.00  4443.00
- ---- N:4 F:   09-JAN-1980 00:00:00
+ ---- N:4 F:   1980
  ---- M:2 E:   4
  4   / 2:  2224.00  3224.00  4224.00
  6   / 3:  2324.00  3324.00  4324.00
@@ -68507,7 +68628,7 @@ list v1234
              SUBSET   : 3 by 3 by 3 by 3 points (X-Y-E-FORECAST)
               5        7        9     
               3        4        5
- ---- N:3 F:   06-JAN-1980 00:00:00
+ ---- N:3 F:   1980
  ---- M:3 E:   5
  5   / 3:  2777.50  3777.50  4777.50
  7   / 4:  2877.50  3877.50  4877.50
@@ -68520,7 +68641,7 @@ list v1234
  5   / 3:  2797.50  3797.50  4797.50
  7   / 4:  2897.50  3897.50  4897.50
  9   / 5:  2997.50  3997.50  4997.50
- ---- N:4 F:   08-JAN-1980 00:00:00
+ ---- N:4 F:   1980
  ---- M:3 E:   5
  5   / 3:  2778.50  3778.50  4778.50
  7   / 4:  2878.50  3878.50  4878.50
@@ -68533,7 +68654,7 @@ list v1234
  5   / 3:  2798.50  3798.50  4798.50
  7   / 4:  2898.50  3898.50  4898.50
  9   / 5:  2998.50  3998.50  4998.50
- ---- N:5 F:   10-JAN-1980 00:00:00
+ ---- N:5 F:   1980
  ---- M:3 E:   5
  5   / 3:  2779.50  3779.50  4779.50
  7   / 4:  2879.50  3879.50  4879.50
@@ -68553,8 +68674,8 @@ stat veven
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68577,8 +68698,8 @@ stat v1[g=even]-veven, v1
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68593,8 +68714,8 @@ stat v1[g=even]-veven, v1
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68610,8 +68731,8 @@ stat v2[g=even]-veven, v2
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68626,8 +68747,8 @@ stat v2[g=even]-veven, v2
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68643,8 +68764,8 @@ stat v3[g=even]-veven, v3
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68659,8 +68780,8 @@ stat v3[g=even]-veven, v3
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68676,8 +68797,8 @@ stat v4[g=even]-veven, v4
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68692,8 +68813,8 @@ stat v4[g=even]-veven, v4
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68709,8 +68830,8 @@ stat v12[g=even]-veven, v12
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68725,8 +68846,8 @@ stat v12[g=even]-veven, v12
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68742,8 +68863,8 @@ stat v13[g=even]-veven, v13
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68758,8 +68879,8 @@ stat v13[g=even]-veven, v13
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68775,8 +68896,8 @@ stat v14[g=even]-veven, v14
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68791,8 +68912,8 @@ stat v14[g=even]-veven, v14
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68808,8 +68929,8 @@ stat v23[g=even]-veven, v23
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68824,8 +68945,8 @@ stat v23[g=even]-veven, v23
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68841,8 +68962,8 @@ stat v24[g=even]-veven, v24
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68857,8 +68978,8 @@ stat v24[g=even]-veven, v24
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68874,8 +68995,8 @@ stat v33[g=even]-veven, v33
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68890,8 +69011,8 @@ stat v33[g=even]-veven, v33
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68907,8 +69028,8 @@ stat v234[g=even]-veven, v234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68923,8 +69044,8 @@ stat v234[g=even]-veven, v234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68940,8 +69061,8 @@ stat v134[g=even]-veven, v134
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68956,8 +69077,8 @@ stat v134[g=even]-veven, v134
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68973,8 +69094,8 @@ stat v124[g=even]-veven, v124
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68989,8 +69110,8 @@ stat v124[g=even]-veven, v124
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69006,8 +69127,8 @@ stat v123[g=even]-veven, v123
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69022,8 +69143,8 @@ stat v123[g=even]-veven, v123
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69039,8 +69160,8 @@ stat v1234[g=even]-veven, v1234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69055,8 +69176,8 @@ stat v1234[g=even]-veven, v1234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69080,8 +69201,8 @@ stat v1[g=even]-veven, v1
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69096,8 +69217,8 @@ stat v1[g=even]-veven, v1
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69113,8 +69234,8 @@ stat v2[g=even]-veven, v2
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69129,8 +69250,8 @@ stat v2[g=even]-veven, v2
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69146,8 +69267,8 @@ stat v3[g=even]-veven, v3
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69162,8 +69283,8 @@ stat v3[g=even]-veven, v3
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69179,8 +69300,8 @@ stat v4[g=even]-veven, v4
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69195,8 +69316,8 @@ stat v4[g=even]-veven, v4
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69212,8 +69333,8 @@ stat v12[g=even]-veven, v12
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69228,8 +69349,8 @@ stat v12[g=even]-veven, v12
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69245,8 +69366,8 @@ stat v13[g=even]-veven, v13
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69261,8 +69382,8 @@ stat v13[g=even]-veven, v13
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69278,8 +69399,8 @@ stat v14[g=even]-veven, v14
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69294,8 +69415,8 @@ stat v14[g=even]-veven, v14
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69311,8 +69432,8 @@ stat v23[g=even]-veven, v23
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69327,8 +69448,8 @@ stat v23[g=even]-veven, v23
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69344,8 +69465,8 @@ stat v24[g=even]-veven, v24
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69360,8 +69481,8 @@ stat v24[g=even]-veven, v24
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69377,8 +69498,8 @@ stat v33[g=even]-veven, v33
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69393,8 +69514,8 @@ stat v33[g=even]-veven, v33
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69410,8 +69531,8 @@ stat v234[g=even]-veven, v234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69426,8 +69547,8 @@ stat v234[g=even]-veven, v234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69443,8 +69564,8 @@ stat v134[g=even]-veven, v134
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69459,8 +69580,8 @@ stat v134[g=even]-veven, v134
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69476,8 +69597,8 @@ stat v124[g=even]-veven, v124
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69492,8 +69613,8 @@ stat v124[g=even]-veven, v124
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69509,8 +69630,8 @@ stat v123[g=even]-veven, v123
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69525,8 +69646,8 @@ stat v123[g=even]-veven, v123
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69542,8 +69663,8 @@ stat v1234[g=even]-veven, v1234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69558,8 +69679,8 @@ stat v1234[g=even]-veven, v1234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -70643,7 +70764,7 @@ stat temp[g=g5day] - temp[g=g5day at ave]
              DEPTH (m): 5
              TIME: 21-JAN-1982 00:00 (interpolated)
              E: 1 to 2
-             FORECAST: 23-JAN-1982 00:00:00 to 24-JAN-1982 00:0
+             FORECAST: 1982 to 1982
              DATA SET: ./gtsa056_1_ef.nc
  
  Total # of data points: 120 (5*6*1*1*2*2)
@@ -70675,7 +70796,7 @@ LIST temp[g=g5day at ave]
              TIME     : 21-JAN-1982 00:00 (interpolated)
                129.5W   128.5W   127.5W   126.5W   125.5W  
                101      102      103      104      105
- ---- N:1 F:   23-JAN-1982 00:00:00
+ ---- N:1 F:   1982
  ---- M:1 E:   1
  1.5N  / 46:  32.3553  32.3552  32.5032  32.8652  33.3285
  1.17N / 45:  32.1766  32.1710  32.2834  32.5970  33.0244
@@ -70690,7 +70811,7 @@ LIST temp[g=g5day at ave]
  0.5N  / 43:  37.9306  37.8902  37.8887  38.0374  38.3408
  0.17N / 42:  37.8944  37.8343  37.7825  37.8263  38.0336
  0.17S / 41:  37.9538  37.8657  37.7716  37.7285  37.8282
- ---- N:2 F:   23-JAN-1982 20:00:00
+ ---- N:2 F:   1982
  ---- M:1 E:   1
  1.5N  / 46:  37.7553  37.7552  37.9032  38.2652  38.7285
  1.17N / 45:  37.5766  37.5710  37.6834  37.9970  38.4244
@@ -70724,7 +70845,7 @@ LIST temp[g=g5day]
              TIME     : 21-JAN-1982 00:00 (interpolated)
                129.5W   128.5W   127.5W   126.5W   125.5W  
                101      102      103      104      105
- ---- N:1 F:   23-JAN-1982 00:00:00
+ ---- N:1 F:   1982
  ---- M:1 E:   1
  1.5N  / 46:  34.3553  34.3552  34.5032  34.8652  35.3285
  1.17N / 45:  34.1766  34.1710  34.2834  34.5970  35.0244
@@ -70739,7 +70860,7 @@ LIST temp[g=g5day]
  0.5N  / 43:  39.9306  39.8902  39.8887  40.0374  40.3408
  0.17N / 42:  39.8944  39.8343  39.7825  39.8263  40.0336
  0.17S / 41:  39.9538  39.8657  39.7716  39.7285  39.8282
- ---- N:2 F:   23-JAN-1982 20:00:00
+ ---- N:2 F:   1982
  ---- M:1 E:   1
  1.5N  / 46:  36.0220  36.0219  36.1698  36.5318  36.9952
  1.17N / 45:  35.8433  35.8377  35.9501  36.2637  36.6910
@@ -70779,7 +70900,7 @@ plot temp
  -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
- strip --> EX#1[F=23-JAN-198200:00:00 at ITP,D=1]
+ strip --> EX#1[F=1982 at ITP,D=1]
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
@@ -70788,7 +70909,7 @@ plot temp
  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[F=23-JAN-198200:00:00 at ITP,D=1]
+ doing --> TEMP[F=1982 at ITP,D=1]
 setting up plot
 PPL plot 863  complete
 plot/over temp[g=g5day]
@@ -70855,14 +70976,14 @@ plot temp
  -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
- strip --> EX#1[F=23-JAN-198200:00:00 at ITP,D=1]
+ strip --> EX#1[F=1982 at ITP,D=1]
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
  eval    EX#1     C:  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[F=23-JAN-198200:00:00 at ITP,D=1]
+ doing --> TEMP[F=1982 at ITP,D=1]
 setting up plot
 PPL plot 867  complete
 plot/over temp[g=g5day]
@@ -71430,7 +71551,7 @@ GO bn_reset
 cancel mode verify
 GO bn_aggregate_e
 ! bn_aggregate_e.jnl
-! using the DEFINE ATTRIBUTE/E command
+! using the DEFINE DATA/AGGREGATE/E command
 ! Datasets share sst, but only ens1 has airt.
  
 set mode diag
@@ -71441,7 +71562,7 @@ define data/agg/title fourfiles = ens1, ens3, ens2, ens4
 ! The grid of SST is known.
 show data fourfiles
      currently SET data sets:
-    5> FOURFILES  (default)  Ferret-defined Ensemble dataset
+    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       ...
  
@@ -71492,7 +71613,7 @@ define data/agg fourfiles = ens1, ens3, ens2, ens4
  allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME13    NORMAL    NORMAL
 show data fourfiles
      currently SET data sets:
-    5> FOURFILES  (default)  Ferret-defined Ensemble dataset
+    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       ...
  AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      1:4       ...
@@ -71598,7 +71719,7 @@ define data/agg 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 dataset
+    3> WINDY  (default)  Ferret-defined 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       ...
@@ -71631,7 +71752,7 @@ define data/agg 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 dataset
+    3> WINDY  (default)  Ferret-defined 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       ...
@@ -71678,7 +71799,8 @@ sh command define
  DEFINE SYMBOL
  DEFINE ATTRIBUT/D/TYPE/OUTPUT/QUIET
  DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/E/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/E/F/TITLE/QUIET/HIDE
+ DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
 sh command show
  SHOW/ALL
  SHOW WINDOW/ALL
@@ -71690,7 +71812,7 @@ sh command show
        /HIDDEN
  SHOW MODE/ALL
  SHOW MOVIE/ALL
- SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/SIGMA
+ SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ
        /CURVILIN
  SHOW COMMANDS/ALL
  SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
@@ -71711,7 +71833,7 @@ ensemble/HIDE/title="ensemble with hidden members" fourfiles = ens1, ens2, ens3,
 ! should just show the ensemble set
 sh dat
      currently SET data sets:
-    5> FOURFILES  (default)  Ferret-defined Ensemble dataset
+    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       ...
  
@@ -71750,7 +71872,7 @@ sh dat/hidden
  name     title                             I         J         K         L         M         N
  SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
  
-    5> FOURFILES  (default)  Ferret-defined Ensemble dataset
+    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       ...
  
@@ -71793,7 +71915,7 @@ sh dat
  name     title                             I         J         K         L         M         N
  SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
  
-    5> MY_ENS  (default)  Ferret-defined Ensemble dataset
+    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       ...
  
@@ -71822,7 +71944,7 @@ ensemble/HIDE/title="uvars in dset 2"  my_ens = 1,2,3,4
 ! members hidden, showing only ensemble.
 sh dat
      currently SET data sets:
-    5> MY_ENS  (default)  Ferret-defined Ensemble dataset
+    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       ...
  
@@ -71857,15 +71979,15 @@ ensemble/HIDE/title="ensemble with hidden members" more = ens2, ens3, ens4
 ! Shows all the ensembles
 sh dat
      currently SET data sets:
-    5> FOURFILES     Ferret-defined Ensemble dataset
+    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 dataset
+    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 dataset
+    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       ...
  
@@ -72422,7 +72544,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        25   T       FERRET V6.925    7-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.95   26-Oct-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72473,7 +72595,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        25   T       FERRET V6.925    7-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.95   26-Oct-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72512,7 +72634,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        25   T       FERRET V6.925    7-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.95   26-Oct-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72551,7 +72673,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        25   T       FERRET V6.925    7-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.95   26-Oct-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72582,7 +72704,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        25   T       FERRET V6.925    7-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.95   26-Oct-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72614,7 +72736,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        25   T       FERRET V6.925    7-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.95   26-Oct-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72675,7 +72797,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        25   T       FERRET V6.925    7-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.95   26-Oct-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72720,7 +72842,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        25   T       FERRET V6.925    7-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.95   26-Oct-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72775,7 +72897,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        25   T       FERRET V6.925    7-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.95   26-Oct-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72811,7 +72933,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        25   T       FERRET V6.925    7-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.95   26-Oct-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72847,7 +72969,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        25   T       FERRET V6.925    7-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.95   26-Oct-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72883,7 +73005,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        25   T       FERRET V6.925    7-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.95   26-Oct-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72915,7 +73037,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        25   T       FERRET V6.925    7-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.95   26-Oct-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -73145,7 +73267,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        25   T       FERRET V6.925    7-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.95   26-Oct-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          FLOAT     units           CHAR        13   T       degrees_north
@@ -73177,7 +73299,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        25   T       FERRET V6.925    7-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.95   26-Oct-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          FLOAT     units           CHAR        13   T       degrees_north
@@ -73218,7 +73340,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        25   T       FERRET V6.925    7-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.95   26-Oct-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -73256,7 +73378,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        25   T       FERRET V6.925    7-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.95   26-Oct-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -73281,7 +73403,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        25   T       FERRET V6.925    7-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.95   26-Oct-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             INT       units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -73306,7 +73428,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        25   T       FERRET V6.925    7-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.95   26-Oct-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -73522,11 +73644,11 @@ GO err684_tax_fcns
  list/L=3:7 tax_yearfrac(var, var)
              VARIABLE : TAX_YEARFRAC(VAR, VAR)
              SUBSET   : 5 points (TIME)
- 08-OCT-2006 22 / 3:  0.7699
- 13-OCT-2006 23 / 4:  0.7836
- 18-OCT-2006 22 / 5:  0.7973
- 23-OCT-2006 21 / 6:  0.8110
- 28-OCT-2006 22 / 7:  0.8247
+ 08-OCT-2006 22 / 3:  0.7725
+ 13-OCT-2006 23 / 4:  0.7862
+ 18-OCT-2006 22 / 5:  0.7998
+ 23-OCT-2006 21 / 6:  0.8134
+ 28-OCT-2006 22 / 7:  0.8272
  
  list/L=3:7 tax_year(var, var)
              VARIABLE : TAX_YEAR(VAR, VAR)
@@ -73572,8 +73694,8 @@ GO err684_line_plot_zero
 plot {0,0,0}
 sh sym yaxis*
 YAXIS_REVERSED = "0"
-YAXIS_MIN = "-1.0000000"
-YAXIS_MAX = "1.000000"
+YAXIS_MIN = "-1.00000000"
+YAXIS_MAX = "1.00000000"
  
  
 GO bn_reset
@@ -73742,11 +73864,11 @@ variables:
 		A:missing_value = -1.e+34 ;
 		A:_FillValue = -1.e+34 ;
 		A:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
-		A:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
+		A:long_name_mod = "X=20E:20E(380), Y=90S:90N" ;
 		A:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
+		:history = "FERRET V6.95   26-Oct-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -73771,11 +73893,11 @@ variables:
 		E410:missing_value = -1.e+34 ;
 		E410:_FillValue = -1.e+34 ;
 		E410:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
-		E410:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
+		E410:long_name_mod = "X=20E:20E(380), Y=90S:90N" ;
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
+		:history = "FERRET V6.95   26-Oct-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -73790,7 +73912,7 @@ save/clob/file=aa.nc/y=-81:-75 sst[x=@ave]-sst[x=@ave,t=@ave]
 use aa.nc
 list e410
              VARIABLE : SST[X=@AVE]-SST[X=@AVE,T=@AVE]
-                        X=20E:20E(380), T=01-JAN 00:45:01-APR 08:12
+                        X=20E:20E(380)
              FILENAME : aa.nc
              SUBSET   : 4 by 3 points (LATITUDE-TIME)
                     81S    79S    77S    75S   
@@ -73822,11 +73944,11 @@ variables:
 		E410:missing_value = -1.e+34f ;
 		E410:_FillValue = -1.e+34f ;
 		E410:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
-		E410:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
+		E410:long_name_mod = "X=20E:20E(380), Y=90S:90N" ;
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
+		:history = "FERRET V6.95   26-Oct-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -73839,7 +73961,7 @@ save/clob/file=aa.nc/outtype=float/y=-81:-75 sst[x=@ave]-sst[x=@ave,t=@ave]
 use aa.nc
 list e410
              VARIABLE : SST[X=@AVE]-SST[X=@AVE,T=@AVE]
-                        X=20E:20E(380), T=01-JAN 00:45:01-APR 08:12
+                        X=20E:20E(380)
              FILENAME : aa.nc
              SUBSET   : 4 by 3 points (LATITUDE-TIME)
                     81S    79S    77S    75S   
@@ -73994,8 +74116,12 @@ let/title="tic labels on dependent axis" var = {\
 1.6897,1.687,1.6843,1.6817,1.679,1.6765,1.676,1.676}
  
 plot/line/sym/title="Vert axis labels should be 1.675 thru 1.715" var
-can mode meta
+cancel mode meta
  
+! rename the metafile. Else we get weird contents in axticlabel.plt
+! once the whole benchmark suite has finished. (why?)
+set mode meta metafile.plt
+cancel mode meta
  
 GO bn_reset
 cancel mode verify
@@ -74385,14 +74511,9 @@ variables:
 		CYCLE_ORIG:_FillValue = -1.e+34 ;
 		CYCLE_ORIG:long_name = "CYCLE[GZ=ZAXIS_ORIG at ASN]" ;
 		CYCLE_ORIG:history = "From z2" ;
-	double DDAT_ORIG(ZAXIS_ORIG) ;
-		DDAT_ORIG:missing_value = -1.e+34 ;
-		DDAT_ORIG:_FillValue = -1.e+34 ;
-		DDAT_ORIG:long_name = "DDAT[GZ=ZAXIS_ORIG at ASN]" ;
 
 // global attributes:
-		:history = "Tue Oct  7 10:43:58 2014: ncks -h -A -h z1.nc append_to_this.nc\n",
-			"FERRET V6.925    7-Oct-14" ;
+		:history = "FERRET V6.95   26-Oct-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74425,7 +74546,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
+		:history = "FERRET V6.95   26-Oct-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -74456,7 +74577,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
+		:history = "FERRET V6.95   26-Oct-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -74518,7 +74639,7 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
+		:history = "FERRET V6.95   26-Oct-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74546,7 +74667,7 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
+		:history = "FERRET V6.95   26-Oct-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74707,6 +74828,7 @@ GO bn_vtree
 ! bn_tree.jnl
  
 ! 11/2013 -- demonstrate SHOW VARIABLE/TREE and RETRUN=STATUS
+! 12/14 update to test regridding output using bn_vtree_regrid.jnl
  
 CANCEL DATA/ALL
 ! pure abstract variable -- no dataset
@@ -74787,16 +74909,16 @@ vtree=all a
    in default dataset my_file_vars
    A = FV1[D=1] - FV1[D=2]
      FV1
-     FV1[d=other_file_var]
+     FV1[d=other_file_vars]
 vtree=all /d=1 a
    in default dataset my_file_vars
    A = FV1[D=1] - FV1[D=2]
      FV1
-     FV1[d=other_file_var]
+     FV1[d=other_file_vars]
 vtree=all /d=2 a
    in default dataset other_file_vars
    A = FV1[D=1] - FV1[D=2]
-     FV1[d=my_file_var]
+     FV1[d=my_file_vars]
      FV1
 ********************************
  
@@ -74804,12 +74926,12 @@ vtree=all /d=2 a
 go bn_vtree.sub noexist
 /TREE=ALL
    in default dataset my_file_vars
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
 /TREE=USER
    in default dataset my_file_vars
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
 /TREE=FILE
-   NOEXIST  (unknown variable)
+   *unknown variable: NOEXIST
 the problem is UNKNOWN VARIABLE: NOEXIST
 ************************
  
@@ -74817,12 +74939,12 @@ the problem is UNKNOWN VARIABLE: NOEXIST
 go bn_vtree.sub v[d=noexist]
 /TREE=ALL
    in default dataset my_file_vars
-   V[D=NOEXIST] ??                           <== UNKNOWN DATASET ******
+   V[D=NOEXIST] ??			<== UNKNOWN DATASET ******
 /TREE=USER
    in default dataset my_file_vars
-   V[D=NOEXIST] ??                           <== UNKNOWN DATASET ******
+   V[D=NOEXIST] ??			<== UNKNOWN DATASET ******
 /TREE=FILE
-   V[D=NOEXIST]  (unknown dataset)
+   *unknown dataset: V[D=NOEXIST]
 the problem is UNKNOWN DATASET: V[D=NOEXIST]
 ************************
  
@@ -74830,12 +74952,12 @@ the problem is UNKNOWN DATASET: V[D=NOEXIST]
 go bn_vtree.sub novar[d=nodset]
 /TREE=ALL
    in default dataset my_file_vars
-   NOVAR[D=NODSET] ??                           <== UNKNOWN DATASET ******
+   NOVAR[D=NODSET] ??			<== UNKNOWN DATASET ******
 /TREE=USER
    in default dataset my_file_vars
-   NOVAR[D=NODSET] ??                           <== UNKNOWN DATASET ******
+   NOVAR[D=NODSET] ??			<== UNKNOWN DATASET ******
 /TREE=FILE
-   NOVAR[D=NODSET]  (unknown dataset)
+   *unknown dataset: NOVAR[D=NODSET]
 the problem is UNKNOWN DATASET: NOVAR[D=NODSET]
 ************************
  
@@ -74844,13 +74966,13 @@ go bn_vtree.sub b
 /TREE=ALL
    in default dataset my_file_vars
    B = NOEXIST
-     NOEXIST ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST ??			<== UNKNOWN VARIABLE ******
 /TREE=USER
    in default dataset my_file_vars
    B = NOEXIST
-     NOEXIST ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST ??			<== UNKNOWN VARIABLE ******
 /TREE=FILE
-   NOEXIST  (unknown variable)
+   *unknown variable: NOEXIST
 the problem is UNKNOWN VARIABLE: NOEXIST
 ************************
  
@@ -74876,11 +74998,13 @@ go bn_vtree.sub fv1z
    in default dataset my_file_vars
    FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
      FV1
+       regrid to ZPTS = Z[Z=0:500:100]
        FVZ
      FVX
 /TREE=USER
    in default dataset my_file_vars
    FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
+       regrid to ZPTS = Z[Z=0:500:100]
 /TREE=FILE
    FV1[d=my_file_vars]
    FVZ[d=my_file_vars]
@@ -74896,11 +75020,13 @@ go bn_vtree.sub fv1z
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
      FV1
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]
      FVX
 /TREE=USER
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]
 /TREE=FILE
    FV1[d=my_file_vars]
@@ -74915,12 +75041,14 @@ go bn_vtree.sub fv1z
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
      FV1
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
          FVZ
      FVX
 /TREE=USER
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
 /TREE=FILE
    FV1[d=my_file_vars]
@@ -74942,7 +75070,7 @@ go bn_vtree.sub fv1z
    FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
        NOEXIST   (unknown auxiliary variable)
 /TREE=FILE
-   NOEXIST  (unknown auxiliary variable)
+   *unknown auxiliary variable: NOEXIST
    FVX[d=my_file_vars]
 the problem is UNKNOWN AUXILIARY VARIABLE: NOEXIST
 ************************
@@ -74953,17 +75081,19 @@ go bn_vtree.sub fv1z
 /TREE=ALL
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
-     NOEXIST[GZ(DEPTH)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(DEPTH)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
          FVZ
      FVX
 /TREE=USER
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
-     NOEXIST[GZ(DEPTH)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(DEPTH)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
 /TREE=FILE
-   NOEXIST[GZ(DEPTH)=ZPTS]  (unknown variable)
+   *unknown variable: NOEXIST[GZ(DEPTH)=ZPTS]
    FVZ[d=my_file_vars]
    FVX[d=my_file_vars]
 the problem is UNKNOWN VARIABLE: NOEXIST[GZ(DEPTH)=ZPTS]
@@ -74975,17 +75105,19 @@ go bn_vtree.sub fv1z
 /TREE=ALL
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
-     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        UNKNOWN_AUX   (unknown auxiliary variable)
      FVX
 /TREE=USER
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
-     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        UNKNOWN_AUX   (unknown auxiliary variable)
 /TREE=FILE
-   NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]  (unknown variable)
-   UNKNOWN_AUX  (unknown auxiliary variable)
+   *unknown variable: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
+   *unknown auxiliary variable: UNKNOWN_AUX
    FVX[d=my_file_vars]
 the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
 ************************
@@ -74996,9 +75128,9 @@ go bn_vtree.sub fv1
 /TREE=ALL
    in default dataset MY_AGG
    FV1   (aggregate variable)
-     FV1[d=my_file_var]
-     FV1[d=other_file_var]
-     FV1[d=another_file_var]
+     FV1[d=my_file_vars]
+     FV1[d=other_file_vars]
+     FV1[d=another_file_vars]
 /TREE=USER
    in default dataset MY_AGG
    FV1   (aggregate variable)
@@ -75018,16 +75150,16 @@ go bn_vtree.sub fvx
 /TREE=ALL
    in default dataset MY_UVAR_AGG
    FVX   (aggregate variable)
-     FVX[d=my_file_var]
-     FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
-       FV1[d=other_file_var]
-     FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
-       FV1[d=another_file_var]
+     FVX[d=my_file_vars]
+     FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+       FV1[d=other_file_vars]
+     FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+       FV1[d=another_file_vars]
 /TREE=USER
    in default dataset MY_UVAR_AGG
    FVX   (aggregate variable)
-     FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
-     FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+     FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+     FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
 /TREE=FILE
  
    FVX[d=my_file_vars]
@@ -75046,30 +75178,30 @@ go bn_vtree.sub p0    ! recursion
 /TREE=ALL
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = P1 + S3
            P1 =   *** WARNING: RECURSIVE DEFINITION.  See above
-           S3 ??                           <== UNKNOWN VARIABLE ******
+           S3 ??			<== UNKNOWN VARIABLE ******
 /TREE=USER
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = P1 + S3
            P1 =   *** WARNING: RECURSIVE DEFINITION.  See above
-           S3 ??                           <== UNKNOWN VARIABLE ******
+           S3 ??			<== UNKNOWN VARIABLE ******
 /TREE=FILE
-   S1  (unknown variable)
-   S2  (unknown variable)
-   S3  (unknown variable)
-   S3  (unknown variable)
+   *unknown variable: S1
+   *unknown variable: S2
+   *unknown variable: S3
+   *unknown variable: S3
 the problem is ILLEGAL RECURSIVE VARIABLES: P1
 ************************
 let p3 = s1 + S3
@@ -75077,31 +75209,31 @@ go bn_vtree.sub p0    ! ok
 /TREE=ALL
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = S1 + S3
-           S1 ??                           <== UNKNOWN VARIABLE ******
-           S3 ??                           <== UNKNOWN VARIABLE ******
+           S1 ??			<== UNKNOWN VARIABLE ******
+           S3 ??			<== UNKNOWN VARIABLE ******
 /TREE=USER
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = S1 + S3
-           S1 ??                           <== UNKNOWN VARIABLE ******
-           S3 ??                           <== UNKNOWN VARIABLE ******
+           S1 ??			<== UNKNOWN VARIABLE ******
+           S3 ??			<== UNKNOWN VARIABLE ******
 /TREE=FILE
-   S1  (unknown variable)
-   S2  (unknown variable)
-   S3  (unknown variable)
-   S1  (unknown variable)
-   S3  (unknown variable)
+   *unknown variable: S1
+   *unknown variable: S2
+   *unknown variable: S3
+   *unknown variable: S1
+   *unknown variable: S3
 the problem is UNKNOWN VARIABLE: S1
 ************************
  
@@ -75123,8 +75255,8 @@ show var/tree/d=my_uvar_agg     uv
    in default dataset MY_UVAR_AGG
    UV = FVX + FVX + FVX
      FVX   (aggregate variable)
-       FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
-       FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+       FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+       FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
 ***************************
  
 ! suppressing duplicates elsewhere in the family tree ("defined above")
@@ -75139,8 +75271,8 @@ go bn_vtree.sub v2
    V2 = V1 + B + A + A
      V1 = A  + B + B^2
        A = FV1[D=1] - FV1[D=2]
-         FV1[d=my_file_var]
-         FV1[d=other_file_var]
+         FV1[d=my_file_vars]
+         FV1[d=other_file_vars]
        B = C
          C = 1
      B =  (defined above)
@@ -75164,8 +75296,8 @@ go bn_vtree.sub v3
    in default dataset MY_UVAR_AGG
    V3 = A + V1 + B + A + A
      A = FV1[D=1] - FV1[D=2]
-       FV1[d=my_file_var]
-       FV1[d=other_file_var]
+       FV1[d=my_file_vars]
+       FV1[d=other_file_vars]
      V1 = A  + B + B^2
        A =  (defined above)
        B = C
@@ -75199,26 +75331,26 @@ go bn_vtree.sub "a, b, c, noexist, d, e, fvx[d=my_file_vars]"
    in default dataset MY_UVAR_AGG
    D = B + C
      B = FV1[D=MY_FILE_VARS]
-       FV1[d=my_file_var]
+       FV1[d=my_file_vars]
      C = 1
    A = F
-     F ??                           <== UNKNOWN VARIABLE ******
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
+     F ??			<== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
    E = 1
-   FVX[d=my_file_var]
+   FVX[d=my_file_vars]
 /TREE=USER
    in default dataset MY_UVAR_AGG
    D = B + C
      B = FV1[D=MY_FILE_VARS]
      C = 1
    A = F
-     F ??                           <== UNKNOWN VARIABLE ******
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
+     F ??			<== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
    E = 1
 /TREE=FILE
-   F  (unknown variable)
+   *unknown variable: F
    FV1[d=my_file_vars]
-   NOEXIST  (unknown variable)
+   *unknown variable: NOEXIST
    FVX[d=my_file_vars]
 the problem is UNKNOWN VARIABLE: F
 ************************
@@ -75233,14 +75365,16 @@ the problem is UNKNOWN VARIABLE: F
 /TREE=ALL
    in default dataset MY_UVAR_AGG
    B = A[G=NOEXIST]
-     A[G=NOEXIST]   (unknown grid)
+     A = I[I=1:5]
+       regrid to NOEXIST ??		<== UNKNOWN GRID ******
 /TREE=USER
    in default dataset MY_UVAR_AGG
    B = A[G=NOEXIST]
-     A[G=NOEXIST]   (unknown grid)
+     A = I[I=1:5]
+       regrid to NOEXIST ??		<== UNKNOWN GRID ******
 /TREE=FILE
-   A[G=NOEXIST]  (unknown grid)
-the problem is UNKNOWN GRID: A[G=NOEXIST]
+   *unknown grid: NOEXIST
+the problem is UNKNOWN GRID: NOEXIST
 ************************
   list b
  
@@ -75256,7 +75390,7 @@ the problem is UNKNOWN GRID: A[G=NOEXIST]
    C = A[X=45S]
      A[X=45S]   *** WARNING: ERROR IN DEFINITION
 /TREE=FILE
-   A[X=45S]   *** WARNING: SYNTAX ERROR
+      *WARNING: syntax error: A[X=45S]
 the problem is ERROR IN EXPRESSION: A[X=45S]
 ************************
   list c
@@ -75273,7 +75407,7 @@ the problem is ERROR IN EXPRESSION: A[X=45S]
    D = A[I=1,,J=2]
      A[I=1,,J=2]   *** WARNING: ERROR IN DEFINITION
 /TREE=FILE
-   A[I=1,,J=2]   *** WARNING: SYNTAX ERROR
+      *WARNING: syntax error: A[I=1,,J=2]
 the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
 ************************
   list d
@@ -75290,7 +75424,7 @@ the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
    E = A[P=1]
      A[P=1]   *** WARNING: ERROR IN DEFINITION
 /TREE=FILE
-   A[P=1]   *** WARNING: SYNTAX ERROR
+      *WARNING: syntax error: A[P=1]
 the problem is ERROR IN EXPRESSION: A[P=1]
 ************************
   list e
@@ -75323,6 +75457,528 @@ show var/tree a
    in default dataset MY_UVAR_AGG
    A = ..HISTORY[D=1]
  
+! *****
+! 12/14 addition to test regridding dependencies
+go bn_vtree_regrid
+! bn_vtree_regrid.jnl
+! exercise 12/14 enhancements to display regrid target on a separate line
+! updated 1/26/15 to exercise multiple regrid target outputs
+! updated 2/23/15 to report target of regrid even when aux regridding occurs
+ 
+! case 1: target grid known,   regridded variable known
+let myvar = 1           ! var to be regridded is known
+let gvar = x[x=1:5]    ! target regridding var is known
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree a
+   in default dataset MY_UVAR_AGG
+   A = MYVAR[G=GVAR] + UNVAR + KVAR
+     MYVAR = 1
+       regrid to GVAR = X[X=1:5]
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 2: target grid known,   regridded variable unknown
+canc var/all
+! myvar unknown
+let gvar = x[x=1:5]    ! target regridding var is known
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree a
+   in default dataset MY_UVAR_AGG
+   A = MYVAR[G=GVAR] + UNVAR + KVAR
+     MYVAR[G=GVAR] ??			<== UNKNOWN VARIABLE ******
+       regrid to GVAR = X[X=1:5]
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 3: target grid unknown, regridded variable known
+canc var/all
+let myvar = 1           ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree a
+   in default dataset MY_UVAR_AGG
+   A = MYVAR[G=GVAR] + UNVAR + KVAR
+     MYVAR = 1
+       regrid to GVAR ??		<== UNKNOWN GRID ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 4: target grid unknown, regridded variable unknown
+canc var/all
+! myvar unknown
+! gvar  unknown
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree a
+   in default dataset MY_UVAR_AGG
+   A = MYVAR[G=GVAR] + UNVAR + KVAR
+     MYVAR[G=GVAR] ??			<== UNKNOWN VARIABLE ******
+       regrid to GVAR ??		<== UNKNOWN GRID ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! **************************************
+! same tests but now with a dataset named with the target grid
+use coads_climatology
+use levitus_climatology   ! default to d=2
+ 
+! case 1: target grid known,   regridded variable known
+canc var/all
+let myvar = 1           ! var to be regridded is known
+let a = myvar[g=sst[d=1]] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree=all a
+   in default dataset levitus_climatology
+   A = MYVAR[G=SST[D=1]] + UNVAR + KVAR
+     MYVAR = 1
+       regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 2: target grid known,   regridded variable unknown
+canc var/all
+! myvar unknown
+let a = myvar[g=sst[d=1]] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree=all a
+   in default dataset levitus_climatology
+   A = MYVAR[G=SST[D=1]] + UNVAR + KVAR
+     MYVAR[G=SST[D=1]] ??			<== UNKNOWN VARIABLE ******
+       regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 3a: target grid unknown, regridded variable known
+canc var/all
+let myvar = 1           ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=gvar[d=1]] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree=all a
+   in default dataset levitus_climatology
+   A = MYVAR[G=GVAR[D=1]] + UNVAR + KVAR
+     MYVAR = 1
+       regrid to GVAR[D=1] ??		<== UNKNOWN GRID ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 3b: target grid unknown cuz of dataset, regridded variable known
+canc var/all
+let myvar = 1           ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=sst[d=bad_dset]] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree=all a
+   in default dataset levitus_climatology
+   A = MYVAR[G=SST[D=BAD_DSET]] + UNVAR + KVAR
+     MYVAR[G=SST[D=BAD_DSET]] ??			<== UNKNOWN DATASET ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 4: target grid unknown, regridded variable unknown
+canc var/all
+! myvar unknown
+! gvar  unknown
+let a = myvar[g=gvar[d=1]] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree=all a
+   in default dataset levitus_climatology
+   A = MYVAR[G=GVAR[D=1]] + UNVAR + KVAR
+     MYVAR[G=GVAR[D=1]] ??			<== UNKNOWN VARIABLE ******
+       regrid to GVAR[D=1] ??		<== UNKNOWN GRID ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! *******************
+! file variable listing, only
+canc var/all
+let myvar = 1
+let fvar = airt[d=1]
+let kvar = 1  ! known var
+* /TREE=FILE with know regrid target
+let a = myvar[g=sst[d=1]] + fvar + kvar
+sho var/tree=file a
+   *unknown grid: SST[D=1]
+   *unknown variable: AIRT[D=1]
+ 
+* /TREE=FILE with unknow regrid target
+let a = myvar[g=unknown] + fvar + kvar
+sho var/tree=file a
+   *unknown grid: UNKNOWN
+   *unknown variable: AIRT[D=1]
+ 
+! ********************
+! regridding to multiple targets
+ 
+define axis/x=140e:160e:1 x1
+define axis/y=20s:20n:1   y1
+LET myvar = X[gx=x1] + Y[gy=y1]
+ 
+define axis/y=5s:5n:.5 yp5
+ 
+go bn_vtree.sub myvar[g=temp]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+myvar[g=temp] is ready and AVAILABLE
+************************
+ 
+! second target *is* a named variable
+go bn_vtree.sub myvar[g=temp,gy=sst[d=1]]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: SST[D=1]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+go bn_vtree.sub myvar[gx=temp,gy=sst[d=1]]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: SST[D=1]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+go bn_vtree.sub myvar[gy=sst[d=1],gx=temp]  ! reverse order, only
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+     regrid to TEMP
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   *unknown grid: SST[D=1]
+   regrid to TEMP[d=levitus_climatology]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+ 
+! second target is not a named variable
+go bn_vtree.sub myvar[g=temp,gy=yp5]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+myvar[g=temp,gy=yp5] is ready and AVAILABLE
+************************
+go bn_vtree.sub myvar[gx=temp,gy=yp5]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+myvar[gx=temp,gy=yp5] is ready and AVAILABLE
+************************
+go bn_vtree.sub myvar[g=temp,y=5s:5n:.5]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+myvar[g=temp,y=5s:5n:.5] is ready and AVAILABLE
+************************
+go bn_vtree.sub myvar[g=sst[d=1],y=5s:5n:.5]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   *unknown grid: SST[D=1]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+ 
+! multiple targets, including unknown variables
+go bn_vtree.sub myvar[g=temp,gy=mybad]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=mybad,gy=temp]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+     regrid to TEMP
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   *unknown grid: MYBAD
+   regrid to TEMP[d=levitus_climatology]
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[gy=temp,g=mybad[d=1]]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD[D=1]
+the problem is UNKNOWN GRID: MYBAD[D=1]
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad[d=1],gy=mybad2]! distinct unknown targets
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
+     regrid to MYBAD2 ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
+     regrid to MYBAD2 ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD[D=1]
+   *unknown grid: MYBAD2
+the problem is UNKNOWN GRID: MYBAD[D=1]
+************************
+go bn_vtree.sub myvar[gx=temp,gy=temp,g=mybad[d=1]]  ! dup known targets
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD[D=1]
+the problem is UNKNOWN GRID: MYBAD[D=1]
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad,gy=mybad]      ! dup unknown suppressed
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad[d=2],gy=mybad] ! dup unknown missed
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD[D=2] ??		<== UNKNOWN GRID ******
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD[D=2] ??		<== UNKNOWN GRID ******
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD[D=2]
+   *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD[D=2]
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad,gy='MYBAD']    ! dup unknown missed
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+     regrid to 'MYBAD' ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+     regrid to 'MYBAD' ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD
+   *unknown grid: 'MYBAD'
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=myvar,gy=mybad]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[gy=yp5,g=mybad]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=mybad,y=5s:5n:.5]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+ 
+! 2/15 additions -- auxiliary variable regridding
+USE levitus_climatology
+LET myzvar = Z[Z=100:500:100]
+DEFINE AXIS/z/units=meters zax = myzvar
+SET REGION/i=101:102/j=41:42
+ 
+LET/D=levitus_climatology depth = z[g=temp]+ 0*temp[k=1]
+ 
+! valid aux var and target variable
+LET tempz = temp[gz(depth)=myzvar]
+vtree=all tempz
+   in default dataset levitus_climatology
+   TEMPZ = TEMP[GZ(DEPTH)=MYZVAR]
+     TEMP
+       regrid to MYZVAR = Z[Z=100:500:100]
+       DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+         TEMP
+ 
+! valid aux var.  Target is axis name
+LET tempz1 = temp[gz(depth)=zax]
+vtree=all tempz1
+   in default dataset levitus_climatology
+   TEMPZ1 = TEMP[GZ(DEPTH)=ZAX]
+     TEMP
+       DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+         TEMP
+ 
+! valid aux var.  Target is unknown
+LET tempz2 = temp[gz(depth)=unknown_target]
+vtree=all tempz2
+   in default dataset levitus_climatology
+   TEMPZ2 = TEMP[GZ(DEPTH)=UNKNOWN_TARGET]
+     TEMP
+       regrid to UNKNOWN_TARGET ??		<== UNKNOWN GRID ******
+       DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+         TEMP
+ 
+! --- unknown aux var, valid target ---
+! When an unknown auxiliary variable error occurs it suppresses
+! the reporting of both the variable being regridded and the regrid target
+! The underlying issue is that GET_VAR_CONTEXT (called from is_dependencies.F)
+! can return only a single error status
+! If it contains ferr_unknown_auxvar, then the success or failure of other
+! parts of the context processing are unknown.
+! One could kludge the code to find a way around this, but the violence
+! required is not justified in order to fix this small loss in error reporting.
+LET tempz3 = temp[gz(unknown_aux)=myzvar]
+vtree=all tempz3
+   in default dataset levitus_climatology
+   TEMPZ3 = TEMP[GZ(UNKNOWN_AUX)=MYZVAR]
+       UNKNOWN_AUX   (unknown auxiliary variable)
+ 
+! a syntax error leads to a similar behavior
+LET tempz3a = temp[gz(unknown_aux)=myzvar,SYNTAX_ERROR]
+vtree=all tempz3a
+   in default dataset levitus_climatology
+   TEMPZ3A = TEMP[GZ(UNKNOWN_AUX)=MYZVAR,SYNTAX_ERROR]
+     TEMP[GZ(UNKNOWN_AUX)=MYZVAR,SYNTAX_ERROR]   *** WARNING: ERROR IN DEFINITION
+ 
+! similar behavior here:  the unknown_target does not get reported
+LET tempz4 = temp[gz(unknown_aux)=unknown_target]
+vtree=all tempz4
+   in default dataset levitus_climatology
+   TEMPZ4 = TEMP[GZ(UNKNOWN_AUX)=UNKNOWN_TARGET]
+       UNKNOWN_AUX   (unknown auxiliary variable)
+ 
+ 
+ 
  
 ! *********** v6.86 Additions ***********
 GO bn_reset
@@ -75714,19 +76370,19 @@ save/file=a.nc/clobber labels
 sp ncdump -h a.nc
 netcdf a {
 dimensions:
-	ENSEMBLE = 3 ;
+	ENSEMBLE1 = 3 ;
 	maxStrlen64 = 64 ;
 variables:
-	double ENSEMBLE(ENSEMBLE) ;
-		ENSEMBLE:long_name = "Ensemble of Realizations" ;
-		ENSEMBLE:axis = "E" ;
-		ENSEMBLE:point_spacing = "even" ;
-	char LABELS(ENSEMBLE, maxStrlen64) ;
+	double ENSEMBLE1(ENSEMBLE1) ;
+		ENSEMBLE1:long_name = "Ensemble of Realizations" ;
+		ENSEMBLE1:axis = "E" ;
+		ENSEMBLE1:point_spacing = "even" ;
+	char LABELS(ENSEMBLE1, maxStrlen64) ;
 		LABELS:long_name = "Realizations" ;
 		LABELS:history = "From http://dunkel.pmel.noaa.gov:8930/thredds/dodsC/data/atmos3.ncml" ;
 
 // global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
+		:history = "FERRET V6.95   26-Oct-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75749,7 +76405,7 @@ variables:
 		STRVAR:long_name = "mystrings" ;
 
 // global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
+		:history = "FERRET V6.95   26-Oct-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75901,7 +76557,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 : 03-JAN-2000 00:00:00 JULIAN"
+LAB5 = "FORECAST : 2000 JULIAN"
  
 GO bn_reset
 cancel mode verify
@@ -75977,7 +76633,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
+		:history = "FERRET V6.95   26-Oct-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76007,7 +76663,7 @@ variables:
 		A:history = "From a" ;
 
 // global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
+		:history = "FERRET V6.95   26-Oct-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76028,7 +76684,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
+		:history = "FERRET V6.95   26-Oct-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76049,7 +76705,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
+		:history = "FERRET V6.95   26-Oct-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76071,7 +76727,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
+		:history = "FERRET V6.95   26-Oct-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76242,7 +76898,7 @@ show dat
  
  
 ! another error, new name is a user-var
-yes? set var/name=diff w
+set var/name=diff w
  
 SET MODE/LAST ignore
  
@@ -76300,7 +76956,7 @@ GO bn_short.sub tvar ave
 ! short script extracted from bn_negative_t.sub for bn_enter_exit_GO
  
 LIST/nohead/norow $1[t=-5:9@$2]	! neg/pos t endpoints
- !-> LIST/nohead/norow tvar[t=-5:9 at ave]	! neg/pos t endpoints
+ !-> LIST/nohead/norow tvar[t=-5:9 at ave]
    2.000
  
 ! Exit_GO
@@ -76392,11 +77048,11 @@ list/y=3/l=1 temp[x=@std]
 list/y=3/l=1 temp[z=@std,x=@std]
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
-             LONGITUDE: 140W to 122W (standard deviation)
+             LONGITUDE: 140W to 122W (XZ stddev)
              LATITUDE : 3N (interpolated)
-             DEPTH (m): 0 to 100 (standard deviation)
+             DEPTH (m): 0 to 100 (XZ stddev)
              TIME     : 17-AUG-1982 12:00
-          0.1946
+          1.037
  
 GO bn_reset
 cancel mode verify
@@ -76492,7 +77148,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        25   T       FERRET V6.925    7-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.95   26-Oct-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -76508,7 +77164,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        25   T       FERRET V6.925    7-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.95   26-Oct-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -76524,7 +77180,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        25   T       FERRET V6.925    7-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.95   26-Oct-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -76550,7 +77206,7 @@ set axis/name=.fr x_in_meters
  
 set mode/last ignore
  
-! *********** v6.9+ Additions ***********
+! *********** v6.93 Additions ***********
 GO bn_reset
 cancel mode verify
 GO bn691_bug_fixes
@@ -77053,7 +77709,7 @@ def axis/z=1:20:1 zaxis
 define axis/t=1-jan-2000:1-jan-2005:1/units=days  longtime
 let bigvar = x[gx=xaxis]+y[gy=yaxis] + z[gz=zaxis] + t[gt=longtime]
 sh grid bigvar
-    GRID (G087)
+    GRID (G103)
  name       axis              # pts   start                end
  XAXIS     X                  360 r   1                    360
  YAXIS     Y                  180 r   1                    180
@@ -77066,7 +77722,7 @@ load bigvar
 ! also was an incorrect size.
 define axis/t=1-jan-2000:1-jan-2010:1/units=days  longtime
 sh grid bigvar
-    GRID (G087)
+    GRID (G103)
  name       axis              # pts   start                end
  XAXIS     X                  360 r   1                    360
  YAXIS     Y                  180 r   1                    180
@@ -77301,6 +77957,170 @@ label .5 .5 0 0 1 "El Nin\\^@MA45 at SRo\!"
  
 GO bn_reset
 cancel mode verify
+GO err69_isready_and_regridding
+! err69_isready_and_regridding.jnl
+! Ticket 2204: A `var,return=isready` sends Ferret into a hanged
+! state after other contexts have been defined
+ 
+can dat/all
+ 
+! create & load a file with a Gregorian time axis
+def ax/t/unit=days/t0=1-jan-1979 tax_g = {15,45,75,105,135}
+let a = t[gt=tax_g]
+save/clob/file=a.nc a
+can var a
+can ax tax_g
+use a.nc
+ 
+! create a variable on a Julian time axis
+def ax/edge/t=1-feb-1980:1-feb-2003/np=276/cal=julian/unit="hour"/t0=1-jan-1900 tax_j
+let b = t[gt=tax_j]
+ 
+! put the Gregorian data on the Julian axis
+let a2 = a
+let a2_on_b = a2[gt=b]
+ 
+! create a climatological axis (Julian)
+def ax/t/unit=days/t0=1-jan-0001/modulo=365.25/cal=julian tax_jc = {15.5,45.125,74.75,105.25,135.75,166.25,196.75,227.75,258.25,288.75,319.25,349.75}
+ 
+let b_one = missing(1+0*b,1)      !set everything to 1
+let nyr = b_one[gl=tax_jc at modsum] !# years that include each month
+ 
+! Execute some commands which put things into context storage
+ 
+say `a2_on_b,r=title`
+ !-> MESSAGE/CONTINUE A2[GT=B]
+A2[GT=B]
+say `nyr[l=1]`
+ !-> MESSAGE/CONTINUE 23
+23
+ 
+! This got us into a weird hanged state
+IF `a2_on_b,r=isready` THEN
+ !-> IF 1         THEN
+ENDIF
+ 
+GO bn_reset
+cancel mode verify
+GO err69_vtree_and_uvar_regrid
+! err69_vtree_and_uvar_regrid.jnl
+! Ticket 2206: This lead to a crash.
+! 10/9/2014
+ 
+let a = t[gt=1:2:1]
+let b2 = a
+let c = b2[gt=a]
+GO bn_vtree.sub c
+/TREE=ALL
+   C = B2[GT=A]
+     B2 = A
+       regrid to A = T[GT=1:2:1]
+       A = T[GT=1:2:1]
+/TREE=USER
+   C = B2[GT=A]
+     B2 = A
+       regrid to A = T[GT=1:2:1]
+       A = T[GT=1:2:1]
+/TREE=FILE
+c is ready and AVAILABLE
+************************
+ 
+GO bn_reset
+cancel mode verify
+GO err69_vtree_cancel_axis
+! err69_vtree_cancel_axis
+! Ticket 2201: After a return=isready,
+! cannot cancel the axis used by the var
+! 10-Oct-2014
+ 
+define axis/x=0:360:1 xax1
+define axis/x=0:360:10 xax2
+ 
+let a = x[gx=xax1]
+say `a,return=title`
+ !-> MESSAGE/CONTINUE X[GX=XAX1]
+X[GX=XAX1]
+ 
+let b = a[gx=xax2]
+say `b,return=isready`
+ !-> MESSAGE/CONTINUE 1
+1
+ 
+cancel var a b
+cancel axis xax1
+cancel axis xax2
+ 
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err69_isready_bugs
+! err69_isready_bugs.jnl
+! Tickets 2201 and 2215
+! updated error script 12/14 *sh* - to ensure that bench log file
+! has verification of this problem and its fix, as well as the bench error file
+ 
+! ticket 2201: isready operation meant we couldn't cancel the second axis
+ 
+def ax/x=0:360:1 xax_isready_1
+def ax/x=0:360:10 xax_isready_2
+let a = x[gx=xax_isready_1]
+say `a,r=title`
+ !-> MESSAGE/CONTINUE X[GX=XAX_ISREADY_1]
+X[GX=XAX_ISREADY_1]
+let b = a[gx=xax_isready_2]
+load b
+say `b,r=isready`
+ !-> MESSAGE/CONTINUE 1
+1
+ 
+ 
+can var a
+can axis xax_isready_1
+can var b
+can axis xax_isready_2
+ 
+! 12/14 additions:
+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
+show axis xax_isready_1, xax_isready_2   ! did they both get canceled?
+ name       axis              # pts   start                end
+ 
+! Ticket 2215, only with an unreleased Ferret; the first fix to 2201.
+ 
+let a = x[gx=1:3:1]
+let b = a - a[gx=a]
+let c = 1
+let/unit="m" f = b*c
+say `f,r=isready`
+ !-> MESSAGE/CONTINUE 1
+1
+ 
+say `f,r=unit`
+ !-> MESSAGE/CONTINUE m
+m
+ 
+GO bn_reset
+cancel mode verify
+GO err691_substring_arg
+! err693_substring_arg
+! ACM 12/10/2014
+! ticket 2210. Argument checking was not done for the SUBSTRING function
+ 
+set mode ignore
+list substring("hello",1,-2)
+list substring("hello",1,-3)
+ 
+set mode/last ignore
+ 
+GO bn_reset
+cancel mode verify
 GO bn_append_dsg
 ! bn_append_dsg.jnl
 !From SOCAT 3: appending to a dsg file where the new variable is on the obs
@@ -77376,7 +78196,7 @@ variables:
 		:geospatial_lat_max = 29.07 ;
 		:time_coverage_start = "2006-06-10T23:48:00Z" ;
 		:time_converage_end = "2006-06-11T00:12:00Z" ;
-		:history = "FERRET V6.925    7-Oct-14" ;
+		:history = "FERRET V6.95   26-Oct-15" ;
 }
  
 GO bn_reset
@@ -77469,7 +78289,7 @@ variables:
 		LON360:history = "added to test_save_dsg.nc" ;
 
 // global attributes:
-		:history = "CruiseDsgNcFile 1.0FERRET V6.925    7-Oct-14" ;
+		:history = "CruiseDsgNcFile 1.0FERRET V6.95   26-Oct-15" ;
 		:featureType = "Trajectory" ;
 		:Conventions = "Some other conventionsCF-1.6" ;
 		:geospatial_lon_min = -92.77 ;
@@ -77496,7 +78316,7 @@ can dat/all; use anew_global.nc
 sh att .
      attributes for dataset: ./anew_global.nc
  ..history = Subset of etopo20,
- FERRET V6.925    7-Oct-14 
+ FERRET V6.95   26-Oct-15 
  ..Conventions = Existing conventions note, , CF-1.6 
  
  
@@ -77528,7 +78348,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.925    7-Oct-14 
+ ..history = The history of the fileFERRET V6.95   26-Oct-15 
  ..Conventions = Conventions for variables named V2CF-1.6 
  
 GO bn_reset
@@ -77940,14 +78760,14 @@ a is ready and AVAILABLE
    in default dataset my_file_vars
    A = FV1[D=1] - FV1[D=2]
      FV1
-     FV1[d=other_file_var]
+     FV1[d=other_file_vars]
    in default dataset my_file_vars
    A = FV1[D=1] - FV1[D=2]
      FV1
-     FV1[d=other_file_var]
+     FV1[d=other_file_vars]
    in default dataset other_file_vars
    A = FV1[D=1] - FV1[D=2]
-     FV1[d=my_file_var]
+     FV1[d=my_file_vars]
      FV1
 ********************************
 /TREE=ALL
@@ -77956,30 +78776,30 @@ a is ready and AVAILABLE
 the problem is UNKNOWN VARIABLE: NOEXIST
 ************************
    in default dataset my_file_vars
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
    in default dataset my_file_vars
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
-   NOEXIST  (unknown variable)
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
+   *unknown variable: NOEXIST
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
 the problem is UNKNOWN DATASET: V[D=NOEXIST]
 ************************
    in default dataset my_file_vars
-   V[D=NOEXIST] ??                           <== UNKNOWN DATASET ******
+   V[D=NOEXIST] ??			<== UNKNOWN DATASET ******
    in default dataset my_file_vars
-   V[D=NOEXIST] ??                           <== UNKNOWN DATASET ******
-   V[D=NOEXIST]  (unknown dataset)
+   V[D=NOEXIST] ??			<== UNKNOWN DATASET ******
+   *unknown dataset: V[D=NOEXIST]
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
 the problem is UNKNOWN DATASET: NOVAR[D=NODSET]
 ************************
    in default dataset my_file_vars
-   NOVAR[D=NODSET] ??                           <== UNKNOWN DATASET ******
+   NOVAR[D=NODSET] ??			<== UNKNOWN DATASET ******
    in default dataset my_file_vars
-   NOVAR[D=NODSET] ??                           <== UNKNOWN DATASET ******
-   NOVAR[D=NODSET]  (unknown dataset)
+   NOVAR[D=NODSET] ??			<== UNKNOWN DATASET ******
+   *unknown dataset: NOVAR[D=NODSET]
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
@@ -77987,11 +78807,11 @@ the problem is UNKNOWN VARIABLE: NOEXIST
 ************************
    in default dataset my_file_vars
    B = NOEXIST
-     NOEXIST ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST ??			<== UNKNOWN VARIABLE ******
    in default dataset my_file_vars
    B = NOEXIST
-     NOEXIST ??                           <== UNKNOWN VARIABLE ******
-   NOEXIST  (unknown variable)
+     NOEXIST ??			<== UNKNOWN VARIABLE ******
+   *unknown variable: NOEXIST
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
@@ -78010,10 +78830,12 @@ fv1z is ready and AVAILABLE
    in default dataset my_file_vars
    FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
      FV1
+       regrid to ZPTS = Z[Z=0:500:100]
        FVZ
      FVX
    in default dataset my_file_vars
    FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
+       regrid to ZPTS = Z[Z=0:500:100]
    FV1[d=my_file_vars]
    FVZ[d=my_file_vars]
    FVX[d=my_file_vars]
@@ -78025,10 +78847,12 @@ fv1z is ready and AVAILABLE
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
      FV1
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]
      FVX
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]
    FV1[d=my_file_vars]
    FVX[d=my_file_vars]
@@ -78040,11 +78864,13 @@ fv1z is ready and AVAILABLE
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
      FV1
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
          FVZ
      FVX
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
    FV1[d=my_file_vars]
    FVZ[d=my_file_vars]
@@ -78061,7 +78887,7 @@ the problem is UNKNOWN AUXILIARY VARIABLE: NOEXIST
    in default dataset my_file_vars
    FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
        NOEXIST   (unknown auxiliary variable)
-   NOEXIST  (unknown auxiliary variable)
+   *unknown auxiliary variable: NOEXIST
    FVX[d=my_file_vars]
 /TREE=ALL
 /TREE=USER
@@ -78070,15 +78896,17 @@ the problem is UNKNOWN VARIABLE: NOEXIST[GZ(DEPTH)=ZPTS]
 ************************
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
-     NOEXIST[GZ(DEPTH)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(DEPTH)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
          FVZ
      FVX
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
-     NOEXIST[GZ(DEPTH)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(DEPTH)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
-   NOEXIST[GZ(DEPTH)=ZPTS]  (unknown variable)
+   *unknown variable: NOEXIST[GZ(DEPTH)=ZPTS]
    FVZ[d=my_file_vars]
    FVX[d=my_file_vars]
 /TREE=ALL
@@ -78088,15 +78916,17 @@ the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
 ************************
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
-     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        UNKNOWN_AUX   (unknown auxiliary variable)
      FVX
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
-     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        UNKNOWN_AUX   (unknown auxiliary variable)
-   NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]  (unknown variable)
-   UNKNOWN_AUX  (unknown auxiliary variable)
+   *unknown variable: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
+   *unknown auxiliary variable: UNKNOWN_AUX
    FVX[d=my_file_vars]
 /TREE=ALL
 /TREE=USER
@@ -78105,9 +78935,9 @@ fv1 is ready and AVAILABLE
 ************************
    in default dataset MY_AGG
    FV1   (aggregate variable)
-     FV1[d=my_file_var]
-     FV1[d=other_file_var]
-     FV1[d=another_file_var]
+     FV1[d=my_file_vars]
+     FV1[d=other_file_vars]
+     FV1[d=another_file_vars]
    in default dataset MY_AGG
    FV1   (aggregate variable)
  
@@ -78121,15 +78951,15 @@ fvx is ready and AVAILABLE
 ************************
    in default dataset MY_UVAR_AGG
    FVX   (aggregate variable)
-     FVX[d=my_file_var]
-     FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
-       FV1[d=other_file_var]
-     FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
-       FV1[d=another_file_var]
+     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
    FVX   (aggregate variable)
-     FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
-     FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+     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]
  
    FVX[d=my_file_vars]
    FV1[d=other_file_vars]
@@ -78141,28 +78971,28 @@ the problem is ILLEGAL RECURSIVE VARIABLES: P1
 ************************
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = P1 + S3
            P1 =   *** WARNING: RECURSIVE DEFINITION.  See above
-           S3 ??                           <== UNKNOWN VARIABLE ******
+           S3 ??			<== UNKNOWN VARIABLE ******
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = P1 + S3
            P1 =   *** WARNING: RECURSIVE DEFINITION.  See above
-           S3 ??                           <== UNKNOWN VARIABLE ******
-   S1  (unknown variable)
-   S2  (unknown variable)
-   S3  (unknown variable)
-   S3  (unknown variable)
+           S3 ??			<== UNKNOWN VARIABLE ******
+   *unknown variable: S1
+   *unknown variable: S2
+   *unknown variable: S3
+   *unknown variable: S3
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
@@ -78170,29 +79000,29 @@ the problem is UNKNOWN VARIABLE: S1
 ************************
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = S1 + S3
-           S1 ??                           <== UNKNOWN VARIABLE ******
-           S3 ??                           <== UNKNOWN VARIABLE ******
+           S1 ??			<== UNKNOWN VARIABLE ******
+           S3 ??			<== UNKNOWN VARIABLE ******
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = S1 + S3
-           S1 ??                           <== UNKNOWN VARIABLE ******
-           S3 ??                           <== UNKNOWN VARIABLE ******
-   S1  (unknown variable)
-   S2  (unknown variable)
-   S3  (unknown variable)
-   S1  (unknown variable)
-   S3  (unknown variable)
+           S1 ??			<== UNKNOWN VARIABLE ******
+           S3 ??			<== UNKNOWN VARIABLE ******
+   *unknown variable: S1
+   *unknown variable: S2
+   *unknown variable: S3
+   *unknown variable: S1
+   *unknown variable: S3
    in default dataset my_file_vars
    FV = FV1 + FV1 + FV1
    in default dataset MY_UVAR_AGG
@@ -78204,8 +79034,8 @@ the problem is UNKNOWN VARIABLE: S1
    in default dataset MY_UVAR_AGG
    UV = FVX + FVX + FVX
      FVX   (aggregate variable)
-       FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
-       FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+       FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+       FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
 ***************************
 /TREE=ALL
 /TREE=USER
@@ -78216,8 +79046,8 @@ v2 is ready and AVAILABLE
    V2 = V1 + B + A + A
      V1 = A  + B + B^2
        A = FV1[D=1] - FV1[D=2]
-         FV1[d=my_file_var]
-         FV1[d=other_file_var]
+         FV1[d=my_file_vars]
+         FV1[d=other_file_vars]
        B = C
          C = 1
      B =  (defined above)
@@ -78240,8 +79070,8 @@ v3 is ready and AVAILABLE
    in default dataset MY_UVAR_AGG
    V3 = A + V1 + B + A + A
      A = FV1[D=1] - FV1[D=2]
-       FV1[d=my_file_var]
-       FV1[d=other_file_var]
+       FV1[d=my_file_vars]
+       FV1[d=other_file_vars]
      V1 = A  + B + B^2
        A =  (defined above)
        B = C
@@ -78265,37 +79095,39 @@ the problem is UNKNOWN VARIABLE: F
    in default dataset MY_UVAR_AGG
    D = B + C
      B = FV1[D=MY_FILE_VARS]
-       FV1[d=my_file_var]
+       FV1[d=my_file_vars]
      C = 1
    A = F
-     F ??                           <== UNKNOWN VARIABLE ******
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
+     F ??			<== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
    E = 1
-   FVX[d=my_file_var]
+   FVX[d=my_file_vars]
    in default dataset MY_UVAR_AGG
    D = B + C
      B = FV1[D=MY_FILE_VARS]
      C = 1
    A = F
-     F ??                           <== UNKNOWN VARIABLE ******
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
+     F ??			<== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
    E = 1
-   F  (unknown variable)
+   *unknown variable: F
    FV1[d=my_file_vars]
-   NOEXIST  (unknown variable)
+   *unknown variable: NOEXIST
    FVX[d=my_file_vars]
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
-the problem is UNKNOWN GRID: A[G=NOEXIST]
+the problem is UNKNOWN GRID: NOEXIST
 ************************
    in default dataset MY_UVAR_AGG
    B = A[G=NOEXIST]
-     A[G=NOEXIST]   (unknown grid)
+     A = I[I=1:5]
+       regrid to NOEXIST ??		<== UNKNOWN GRID ******
    in default dataset MY_UVAR_AGG
    B = A[G=NOEXIST]
-     A[G=NOEXIST]   (unknown grid)
-   A[G=NOEXIST]  (unknown grid)
+     A = I[I=1:5]
+       regrid to NOEXIST ??		<== UNKNOWN GRID ******
+   *unknown grid: NOEXIST
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
@@ -78307,7 +79139,7 @@ the problem is ERROR IN EXPRESSION: A[X=45S]
    in default dataset MY_UVAR_AGG
    C = A[X=45S]
      A[X=45S]   *** WARNING: ERROR IN DEFINITION
-   A[X=45S]   *** WARNING: SYNTAX ERROR
+      *WARNING: syntax error: A[X=45S]
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
@@ -78319,7 +79151,7 @@ the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
    in default dataset MY_UVAR_AGG
    D = A[I=1,,J=2]
      A[I=1,,J=2]   *** WARNING: ERROR IN DEFINITION
-   A[I=1,,J=2]   *** WARNING: SYNTAX ERROR
+      *WARNING: syntax error: A[I=1,,J=2]
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
@@ -78331,7 +79163,7 @@ the problem is ERROR IN EXPRESSION: A[P=1]
    in default dataset MY_UVAR_AGG
    E = A[P=1]
      A[P=1]   *** WARNING: ERROR IN DEFINITION
-   A[P=1]   *** WARNING: SYNTAX ERROR
+      *WARNING: syntax error: A[P=1]
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
@@ -78430,8 +79262,8 @@ say `files,return=isize`
 ! Evaluate size without loading the variable first
 let datfiles = {spawn:"ls *.dat"}
 say `datfiles,return=isize`
- !-> MESSAGE/CONTINUE 36
-36
+ !-> MESSAGE/CONTINUE 37
+37
  
 ! expression syntax
 say `{spawn:"ls xml*.jnl"},return=isize`
@@ -78449,8 +79281,8 @@ list {spawn:"ls xml*.jnl"}
  
 LET filesets = xcat({spawn:"ls *.nc"}, {spawn:"ls *.jnl"})
 say `filesets, return=isize`
- !-> MESSAGE/CONTINUE 829
-829
+ !-> MESSAGE/CONTINUE 901
+901
  
 let files = {spawn:"ls *cdf*.jnl"}
 let name_len = strindex(files, ".sub")
@@ -78458,4102 +79290,686 @@ say `name_len, return=isize`
  !-> MESSAGE/CONTINUE 8
 8
  
-!  *********** Always do a bn_reset  ***********
-!  *********** make sure things clean up well **
 GO bn_reset
 cancel mode verify
+GO bn_polygon_log
+! bn_polygon_log.jnl
+! polygon plots on a log axis need tests
  
-! version 2.3 requires exit/command *sh* 3/92
-exit/command
-yes? ! bn_all_ef_shell.jnl
-yes? ! 5/05 *acm*
-yes? ! run bn_all_ef tests
-yes? 
-yes? GO bn_all_ef
- 	NOAA/PMEL TMAP
- 	FERRET v6.925  
- 	Linux 2.6.18-371.12.1.el5 64-bit - 10/07/14
- 	 7-Oct-14 10:44     
-
-SET MODE VERIFY
-! bn_all_ef.jnl
-! - run all the benchmark tests for externally-linked external functions.
+let xsqr = YSEQUENCE({0,.1,.1,0})
+let ysqr = YSEQUENCE({0,0,.1,.1})
+let xpts = cos(x/10) + 2
+let ypts = x/10+1
  
+! Polygon plot
+ 
+set view ul
+polygon/title="NOT LOG"/i=1:100 xpts+xsqr, ypts+ysqr, x*x/10
+ 
+! Poly/vlog and /hlog
+! (known bug: Whats up with the colorbar labels?)
+set view ur; poly/title=VLOG/i=1:100/vlog xpts+xsqr,ypts+ysqr,x*x/10
+set view ll; poly/title=HLOG/i=1:100/hlog xpts+xsqr,ypts+ysqr,x*x/10
+set view lr;poly/title=BOTH/i=1:100/vlog/hlog xpts+xsqr,ypts+ysqr,x*x/10
+ 
+! These are errors - log of negative values on axis
+ 
+set mode ignore
+ 
+let ybad = x/10 - 1
+let xbad = cos(x/10) + 0.8
+ 
+can view
+polygon/i=1:100/nolab xbad+xsqr,ybad+ysqr,x*x/10
+ 
+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
+ 
+! *********** v6.94Additions ***********
  
 GO bn_reset
 cancel mode verify
-GO bn_ef_external_functions.jnl
-! Tests of external functions that are distributed as shared object files.
+GO bn694_bug_fixes
+! bn694_bug_fixes
+! test various fixes that went into version 6.94
+! 11/2014 ACM
+! 12/2014 *sh* added IF-THEN flow fixes, including review of past tickets
+! 1/2015 *sh* added test for undetected bad dataset name in regrid target
  
-! Jon's benchmarks
-go bench_examples
-set mode ignore_error
-show func/ext add_9
-ADD_9(A,B,C,D,E,F,G,H,I)
-    (demonstration function) adds 9 arguments
-show func/ext ave*
-AVE_SCAT2GRID_T(TPTS,VPTS,TAXIS)
-    Compute average of a variable in each cell of output time axis
-    TPTS: T coordinates of scattered input time coordinates
-    VPTS: Variable at times in TPTS
-    TAXIS: Output time axis
-AVET(A)
-    (demonstration function) returns the time average
-    A: data to be averaged over the time axis
-show func pass_thru
-PASS_THRU(A)
-    (demonstration function) sets result equal to input
-    A: this arg is passed through
-show func sto*
-STORAGE(A)
-    sets result equal to input/10
-    A: input
+GO bn_reset
+cancel mode verify
+GO err693_upcase_quoted_name
+! err693_upcase_quoted_name.jnl
+! ticket 2050. Names are saved in uppercase
+! form unless there are duplicates other than case.
+! Then searching for the name in quotes looked
+! only with a case-sensitive search.
  
-go bench_add_9
-! Bench_add_9.jnl
-!  ACM  8/99
-!  benchmark script for testing external function add_9.
-! Note: bench_add_9_visual contains plots of similar computations
+let abc = 12
+cancel mode upcase
  
-set mode ignore_errors
+save/file=aa.nc/clobber abc
+can dat/all; can var/all
  
+use aa.nc
+! previously this failed to find the name.
+list 'abc'
+             VARIABLE : 12
+             FILENAME : aa.nc
+          12.00
  
-can region
-use coads_climatology
-set region/x=151E:179E/y=0
  
-let a1 = sst[d=1,l=1]
-let a2 = sst[d=1,l=2]
-let a3 = sst[d=1,l=3]
+GO bn_reset
+cancel mode verify
+GO err693_isready_hang
+! err693_isready_hang.jnl
+! ACM 12/10/2014
+! ticket 2219.  The last of these commands caused Ferret to hang.
  
-let a = add_9(a1,a2,a3,a1,a2,a3,a1,a2,a3)
+use gt4d011
+def ax/t/t0="`u,r=t0`"/unit="`u,r=tunit`" time = t[gt=u]
+ !-> def ax/t/t0="14-JAN-1980 14:00:00"/unit="hour" time = t[gt=u]
+let a = u
+IF `a,r=isready` THEN; let/title="`a,r=title`" a1 = a; ENDIF
+ !-> IF 1         THEN
+ !-> DEFINE VARIABLE/title="U" a1 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a2 = a; ENDIF
+ !-> IF 1         THEN
+ !-> DEFINE VARIABLE/title="U" a2 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a3 = a; ENDIF
+ !-> IF 1         THEN
+ !-> DEFINE VARIABLE/title="U" a3 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a4 = a; ENDIF
+ !-> IF 1         THEN
+ !-> DEFINE VARIABLE/title="U" a4 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a5 = a; ENDIF
+ !-> IF 1         THEN
+ !-> DEFINE VARIABLE/title="U" a5 = a
+ 
+GO bn_reset
+cancel mode verify
+GO err693_isready_dyn_grid_crash   ! 12/23/2014
+let/unit="m" b = x[gx=1:5:1]
+say "`b,r=unit`"     ! this causes dynamic grid of b to be created
+ !-> MESSAGE/CONTINUE "m"
+m
+let c = x[gx=1:5:2]
+let b2 = b+0*c[gx=b] ! dynamic grid of b exists, but not grid of c
+VTREE b2
+   B2 = B+0*C[GX=B]
+     B = X[GX=1:5:1]
+     C = X[GX=1:5:2]
+       regrid to B = X[GX=1:5:1]
+ 
+GO bn_reset
+cancel mode verify
+GO err693_attr_in_gcfcn
+! err693_attr_in_gcfcn.jnl
+! ACM 12/10/2014
+! bug 2220 varname.attname as an argument to grid-changing functions.
+! All except the last of these caused various ungraceful stops.
+ 
+let/units="m" a = 1
+list is_element_of_str(a.units,{"m","a"})
+             VARIABLE : IS_ELEMENT_OF_STR(A.UNITS,{"m","a"})
+             X        : 1
+          1.000
  
-list a
-             VARIABLE : ADD_9(A1,A2,A3,A1,A2,A3,A1,A2,A3)
-             SUBSET   : 15 points (LONGITUDE)
-             LATITUDE : 1S
-             TIME     : 16-JAN 06:00
-                1S    
-                45
- 151E   / 66:  263.6
- 153E   / 67:  264.5
- 155E   / 68:  264.2
- 157E   / 69:  261.3
- 159E   / 70:  260.9
- 161E   / 71:  262.4
- 163E   / 72:  264.0
- 165E   / 73:  261.1
- 167E   / 74:  260.9
- 169E   / 75:  261.0
- 171E   / 76:  259.3
- 173E   / 77:  257.9
- 175E   / 78:  257.0
- 177E   / 79:  259.1
- 179E   / 80:  254.8
-list  a - 3 * sst[d=1,l=1:3 at sum]
-             VARIABLE : A - 3 * SST[D=coads_climatology,L=1:3 at SUM]
-             SUBSET   : 15 points (LONGITUDE)
-             LATITUDE : 1S
-             TIME     : 16-JAN 06:00
-                 1S    
-                 45
- 151E   / 66:  0.0000
- 153E   / 67:  0.0000
- 155E   / 68:  0.0000
- 157E   / 69:  0.0000
- 159E   / 70:  0.0000
- 161E   / 71:  0.0000
- 163E   / 72:  0.0000
- 165E   / 73:  0.0000
- 167E   / 74:  0.0000
- 169E   / 75:  0.0000
- 171E   / 76:  0.0000
- 173E   / 77:  0.0000
- 175E   / 78:  0.0000
- 177E   / 79:  0.0000
- 179E   / 80:  0.0000
-set mode/last ignore_errors
-go bench_avet
-! Bench_avet.jnl
-!  ACM  8/99
-!  benchmark script for testing external function avet.
-! Note: bench_avet_visual.jnl contains plots of similar computations
+let/units="m" a = 1
+let b = a.units
+list is_element_of_str(b,{"m","a"})
+             VARIABLE : IS_ELEMENT_OF_STR(B,{"m","a"})
+             X        : 1
+          1.000
  
-set mode ignore_errors
  
-can region
-use coads_climatology
-set region/x=151E:179E/y=0
+use levitus_climatology
  
-let a = avet(sst)
-list a
-             VARIABLE : AVET(SST)
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 15 points (LONGITUDE)
-             LATITUDE : 1S
-                1S    
-                45
- 151E   / 66:  29.28
- 153E   / 67:  29.39
- 155E   / 68:  29.35
- 157E   / 69:  29.03
- 159E   / 70:  28.99
- 161E   / 71:  29.15
- 163E   / 72:  29.33
- 165E   / 73:  29.01
- 167E   / 74:  28.99
- 169E   / 75:  29.00
- 171E   / 76:  28.81
- 173E   / 77:  28.66
- 175E   / 78:  28.56
- 177E   / 79:  28.79
- 179E   / 80:  28.31
-list a - sst[l=@ave]
-             VARIABLE : A - SST[L=@AVE]
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 15 points (LONGITUDE)
-             LATITUDE : 1S
-             TIME     : 01-JAN 00:45 to 01-APR 08:12
-                  1S      
-                  45
- 151E   / 66:  0.000E+00
- 153E   / 67: -3.553E-15
- 155E   / 68:  0.000E+00
- 157E   / 69:  0.000E+00
- 159E   / 70:  3.553E-15
- 161E   / 71:  7.105E-15
- 163E   / 72:  3.553E-15
- 165E   / 73:  0.000E+00
- 167E   / 74:  0.000E+00
- 169E   / 75:  3.553E-15
- 171E   / 76:  0.000E+00
- 173E   / 77:  3.553E-15
- 175E   / 78:  0.000E+00
- 177E   / 79:  3.553E-15
- 179E   / 80:  3.553E-15
+list is_element_of_str_n (temp.long_name, {"Temperature", "temp"})
+             VARIABLE : IS_ELEMENT_OF_STR_N (TEMP.LONG_NAME, {"Temperature", "temp"})
+             FILENAME : levitus_climatology.cdf
+             X        : 1
+          2.000
  
-can region
-let a = x[i=1:9,k=1:5] + t[l=1:5]
-let b = x[i=1:9,k=1:5]
-let c = avet(a)
-list b, c
-             X: 0.5 to 9.5
- Column  1: B is X[I=1:9,K=1:5]
- Column  2: C is AVET(A)
-             B     C
-1   / 1:  1.000   4.00
-2   / 2:  2.000   5.00
-3   / 3:  3.000   6.00
-4   / 4:  4.000   7.00
-5   / 5:  5.000   8.00
-6   / 6:  6.000   9.00
-7   / 7:  7.000  10.00
-8   / 8:  8.000  11.00
-9   / 9:  9.000  12.00
+let a = temp.units
+list is_element_of_str (a, {"Kelvin", "Celsius", "DEG C"})
+             VARIABLE : IS_ELEMENT_OF_STR (A, {"Kelvin", "Celsius", "DEG C"})
+             FILENAME : levitus_climatology.cdf
+             X        : 1
+          1.000
  
-set mode/last ignore_errors
-go bench_pass_thru
-! Bench_pass_thru.jnl
-!  ACM  8/99
-!  benchmark script for testing external function pass_thru.
-! Note: bench_pass_thru_visual.jnl contains plots of similar computations
  
-set mode ignore_errors
  
-can region
-let a = pass_thru(x)
-list a[i=1:20]
-             VARIABLE : PASS_THRU(X)
-             SUBSET   : 20 points (X)
- 1    /  1:   1.00
- 2    /  2:   2.00
- 3    /  3:   3.00
- 4    /  4:   4.00
- 5    /  5:   5.00
- 6    /  6:   6.00
- 7    /  7:   7.00
- 8    /  8:   8.00
- 9    /  9:   9.00
- 10   / 10:  10.00
- 11   / 11:  11.00
- 12   / 12:  12.00
- 13   / 13:  13.00
- 14   / 14:  14.00
- 15   / 15:  15.00
- 16   / 16:  16.00
- 17   / 17:  17.00
- 18   / 18:  18.00
- 19   / 19:  19.00
- 20   / 20:  20.00
-set region/i=1:20
-list sin(a)
-             VARIABLE : SIN(A)
-             SUBSET   : 20 points (X)
- 1    /  1:  0.8415
- 2    /  2:  0.9093
- 3    /  3:  0.1411
- 4    /  4: -0.7568
- 5    /  5: -0.9589
- 6    /  6: -0.2794
- 7    /  7:  0.6570
- 8    /  8:  0.9894
- 9    /  9:  0.4121
- 10   / 10: -0.5440
- 11   / 11: -1.0000
- 12   / 12: -0.5366
- 13   / 13:  0.4202
- 14   / 14:  0.9906
- 15   / 15:  0.6503
- 16   / 16: -0.2879
- 17   / 17: -0.9614
- 18   / 18: -0.7510
- 19   / 19:  0.1499
- 20   / 20:  0.9129
-can var/all
-can region
+GO bn_reset
+cancel mode verify
+GO err693_inconsistent_quote
+! inconsistent interpretation of surrounding double quotes
+! the original source of the problem is in PARSE_COMMAND
+! arg_start and arg_end are set to skip surrounding quotation marks.
+! But since this behavior permeates so many routines it is best to repair
+! the problem in ALL_1_ARG
  
-use coads_climatology
-let a = pass_thru(sst[l=@ave,y=@sbx:11])
-list/x=50 a
-             VARIABLE : PASS_THRU(SST[L=@AVE,Y=@SBX:11])
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 90 points (LATITUDE)
-             LONGITUDE: 49E
-             TIME     : 01-JAN 00:45 to 01-APR 08:12
-               49E   
-               15
- 89N   / 90:   ....
- 87N   / 89:   ....
- 85N   / 88:   ....
- 83N   / 87:   ....
- 81N   / 86:   ....
- 79N   / 85:   ....
- 77N   / 84:   ....
- 75N   / 83:   ....
- 73N   / 82:   ....
- 71N   / 81:   ....
- 69N   / 80:   ....
- 67N   / 79:   ....
- 65N   / 78:   ....
- 63N   / 77:   ....
- 61N   / 76:   ....
- 59N   / 75:   ....
- 57N   / 74:   ....
- 55N   / 73:   ....
- 53N   / 72:   ....
- 51N   / 71:   ....
- 49N   / 70:   ....
- 47N   / 69:   ....
- 45N   / 68:   ....
- 43N   / 67:   ....
- 41N   / 66:   ....
- 39N   / 65:   ....
- 37N   / 64:   ....
- 35N   / 63:   ....
- 33N   / 62:   ....
- 31N   / 61:   ....
- 29N   / 60:   ....
- 27N   / 59:   ....
- 25N   / 58:   ....
- 23N   / 57:   ....
- 21N   / 56:   ....
- 19N   / 55:   ....
- 17N   / 54:   ....
- 15N   / 53:   ....
- 13N   / 52:   ....
- 11N   / 51:   ....
- 9N    / 50:   ....
- 7N    / 49:   ....
- 5N    / 48:  26.94
- 3N    / 47:  27.22
- 1N    / 46:  27.48
- 1S    / 45:  27.67
- 3S    / 44:  27.78
- 5S    / 43:  27.92
- 7S    / 42:  28.04
- 9S    / 41:  28.12
- 11S   / 40:  28.18
- 13S   / 39:  28.14
- 15S   / 38:  28.03
- 17S   / 37:  27.82
- 19S   / 36:  27.45
- 21S   / 35:  27.04
- 23S   / 34:  26.52
- 25S   / 33:  25.86
- 27S   / 32:  25.09
- 29S   / 31:  24.17
- 31S   / 30:  23.04
- 33S   / 29:  21.37
- 35S   / 28:  19.60
- 37S   / 27:  17.68
- 39S   / 26:  15.76
- 41S   / 25:  13.87
- 43S   / 24:  11.98
- 45S   / 23:  10.18
- 47S   / 22:   8.45
- 49S   / 21:   6.82
- 51S   / 20:   5.33
- 53S   / 19:   4.03
- 55S   / 18:   3.19
- 57S   / 17:   2.42
- 59S   / 16:   ....
- 61S   / 15:   ....
- 63S   / 14:   ....
- 65S   / 13:   ....
- 67S   / 12:   ....
- 69S   / 11:   ....
- 71S   / 10:   ....
- 73S   /  9:   ....
- 75S   /  8:   ....
- 77S   /  7:   ....
- 79S   /  6:   ....
- 81S   /  5:   ....
- 83S   /  4:   ....
- 85S   /  3:   ....
- 87S   /  2:   ....
- 89S   /  1:   ....
-let a = pass_thru(sst)
-set region/@w
-list/x=50 a[l=1]
-             VARIABLE : PASS_THRU(SST)
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 90 points (LATITUDE)
-             LONGITUDE: 49E
-             TIME     : 16-JAN 06:00
-               49E   
-               15
- 89N   / 90:   ....
- 87N   / 89:   ....
- 85N   / 88:   ....
- 83N   / 87:   ....
- 81N   / 86:   ....
- 79N   / 85:   ....
- 77N   / 84:   ....
- 75N   / 83:   ....
- 73N   / 82:   0.59
- 71N   / 81:   0.62
- 69N   / 80:   0.45
- 67N   / 79:   ....
- 65N   / 78:   ....
- 63N   / 77:   ....
- 61N   / 76:   ....
- 59N   / 75:   ....
- 57N   / 74:   ....
- 55N   / 73:   ....
- 53N   / 72:   ....
- 51N   / 71:   ....
- 49N   / 70:   ....
- 47N   / 69:   ....
- 45N   / 68:   3.32
- 43N   / 67:   4.72
- 41N   / 66:   4.84
- 39N   / 65:   8.63
- 37N   / 64:   8.07
- 35N   / 63:   ....
- 33N   / 62:   ....
- 31N   / 61:   ....
- 29N   / 60:  18.91
- 27N   / 59:  20.83
- 25N   / 58:   ....
- 23N   / 57:   ....
- 21N   / 56:   ....
- 19N   / 55:   ....
- 17N   / 54:   ....
- 15N   / 53:  25.41
- 13N   / 52:  25.37
- 11N   / 51:  25.82
- 9N    / 50:  27.20
- 7N    / 49:  26.11
- 5N    / 48:  26.10
- 3N    / 47:  26.25
- 1N    / 46:  26.44
- 1S    / 45:  27.01
- 3S    / 44:  27.61
- 5S    / 43:  28.24
- 7S    / 42:  28.71
- 9S    / 41:  28.46
- 11S   / 40:  28.07
- 13S   / 39:  28.15
- 15S   / 38:  28.08
- 17S   / 37:  28.29
- 19S   / 36:  27.61
- 21S   / 35:  27.59
- 23S   / 34:  27.06
- 25S   / 33:  26.70
- 27S   / 32:  25.89
- 29S   / 31:  24.65
- 31S   / 30:  23.86
- 33S   / 29:  22.16
- 35S   / 28:  20.58
- 37S   / 27:  19.20
- 39S   / 26:  17.51
- 41S   / 25:  14.44
- 43S   / 24:   8.55
- 45S   / 23:   7.51
- 47S   / 22:   5.77
- 49S   / 21:   4.21
- 51S   / 20:   3.64
- 53S   / 19:   2.87
- 55S   / 18:   2.67
- 57S   / 17:   2.05
- 59S   / 16:   1.37
- 61S   / 15:   1.33
- 63S   / 14:   0.77
- 65S   / 13:  -0.04
- 67S   / 12:  -0.93
- 69S   / 11:   ....
- 71S   / 10:   ....
- 73S   /  9:   ....
- 75S   /  8:   ....
- 77S   /  7:   ....
- 79S   /  6:   ....
- 81S   /  5:   ....
- 83S   /  4:   ....
- 85S   /  3:   ....
- 87S   /  2:   ....
- 89S   /  1:   ....
-list/x=50 a[l=@ave,y=@sbx:11]
-             VARIABLE : PASS_THRU(SST)
-                        box smoothed by 11 pts on Y
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 90 points (LATITUDE)
-             LONGITUDE: 49E
-             TIME     : 01-JAN 00:45 to 01-APR 08:12 (averaged)
-               49E   
-               15
- 89N   / 90:   ....
- 87N   / 89:   ....
- 85N   / 88:   ....
- 83N   / 87:   ....
- 81N   / 86:   ....
- 79N   / 85:   ....
- 77N   / 84:   ....
- 75N   / 83:   ....
- 73N   / 82:   ....
- 71N   / 81:   ....
- 69N   / 80:   ....
- 67N   / 79:   ....
- 65N   / 78:   ....
- 63N   / 77:   ....
- 61N   / 76:   ....
- 59N   / 75:   ....
- 57N   / 74:   ....
- 55N   / 73:   ....
- 53N   / 72:   ....
- 51N   / 71:   ....
- 49N   / 70:   ....
- 47N   / 69:   ....
- 45N   / 68:   ....
- 43N   / 67:   ....
- 41N   / 66:   ....
- 39N   / 65:   ....
- 37N   / 64:   ....
- 35N   / 63:   ....
- 33N   / 62:   ....
- 31N   / 61:   ....
- 29N   / 60:   ....
- 27N   / 59:   ....
- 25N   / 58:   ....
- 23N   / 57:   ....
- 21N   / 56:   ....
- 19N   / 55:   ....
- 17N   / 54:   ....
- 15N   / 53:   ....
- 13N   / 52:   ....
- 11N   / 51:   ....
- 9N    / 50:   ....
- 7N    / 49:   ....
- 5N    / 48:  26.94
- 3N    / 47:  27.22
- 1N    / 46:  27.48
- 1S    / 45:  27.67
- 3S    / 44:  27.78
- 5S    / 43:  27.92
- 7S    / 42:  28.04
- 9S    / 41:  28.12
- 11S   / 40:  28.18
- 13S   / 39:  28.14
- 15S   / 38:  28.03
- 17S   / 37:  27.82
- 19S   / 36:  27.45
- 21S   / 35:  27.04
- 23S   / 34:  26.52
- 25S   / 33:  25.86
- 27S   / 32:  25.09
- 29S   / 31:  24.17
- 31S   / 30:  23.04
- 33S   / 29:  21.37
- 35S   / 28:  19.60
- 37S   / 27:  17.68
- 39S   / 26:  15.76
- 41S   / 25:  13.87
- 43S   / 24:  11.98
- 45S   / 23:  10.18
- 47S   / 22:   8.45
- 49S   / 21:   6.82
- 51S   / 20:   5.33
- 53S   / 19:   4.03
- 55S   / 18:   3.19
- 57S   / 17:   2.42
- 59S   / 16:   ....
- 61S   / 15:   ....
- 63S   / 14:   ....
- 65S   / 13:   ....
- 67S   / 12:   ....
- 69S   / 11:   ....
- 71S   / 10:   ....
- 73S   /  9:   ....
- 75S   /  8:   ....
- 77S   /  7:   ....
- 79S   /  6:   ....
- 81S   /  5:   ....
- 83S   /  4:   ....
- 85S   /  3:   ....
- 87S   /  2:   ....
- 89S   /  1:   ....
  
-set mode/last ignore_errors
-go bench_storage
-! Bench_storage.jnl
-!  ACM  8/99
-!  benchmark script for testing external function storage.
-! Note: bench_storage_visual.jnl contains plots of similar computations
+let foobar = 1
+LIST "foobar", "foobar" ! this is correct - list as strings
+ Column  1: str is "foobar"
+ Column  2: str is "foobar"
+              str     str
+I / *:    "foobar" "foobar"
+LIST "foobar"           ! error: lists the value instead
+             VARIABLE : "foobar"
+        "foobar"
  
-set mode ignore_errors
+! IF-THEN flow tests
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_2214
+! bug 2214
+! If we put the "say hi" in parentheses, this seems to work.
+! But parentheses haven't previously been required, so there are a lot of
+! scripts that don't have them.
  
-use gtsa056_1
-let a = storage(temp)
-set region/k=1/l=5/i=1:2/j=44:50
-list  a
-             VARIABLE : STORAGE(TEMP)
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 2 by 7 points (LONGITUDE-LATITUDE)
-             DEPTH (m): 5
-             TIME     : 27-JAN-1982 18:00
-              130.5E 131.5E 
-                1      2
- 1.5N  / 50:   ....  2.955
- 1.17N / 49:   ....  2.962
- 0.83N / 48:   ....  2.966
- 0.5N  / 47:   ....  2.973
- 0.17N / 46:   ....  2.985
- 0.17S / 45:   ....  2.990
- 0.5S  / 44:   ....   ....
+* 12/14 note (sh) - Ferret handles this situation correctly because
+* PARSE_COMMAND acts on the semi-colons in the full command line *before*
+* it acts on the "IF".  Thus the thress semicolon-connected commands
+* follow the same logical path through Ferret as if they were separated
+* onto three lines
  
-can region
-set region/x=140w/y=10n/k=1
-list a
-             VARIABLE : STORAGE(TEMP)
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 5 points (TIME)
-             LONGITUDE: 140.5W
-             LATITUDE : 9.8N
-             DEPTH (m): 5
-                      140.5W 
-                       90
- 15-JAN-1982 14 / 1:  2.656
- 18-JAN-1982 15 / 2:  2.654
- 21-JAN-1982 16 / 3:  2.652
- 24-JAN-1982 17 / 4:  2.649
- 27-JAN-1982 18 / 5:  2.646
+IF 0 THEN; rep/i=1:1 say ERROR; ENDIF
  
-can region
+IF 1 THEN; rep/i=1:1 say CORRECT; ENDIF
+!-> REPEAT: I=1
+CORRECT
  
-let b = temp[x=140e:60w]
-let c = storage(b)
-list/i=11:20 c[k=1,l=5,j=44:50 at ave]
-             VARIABLE : STORAGE(B)
-             FILENAME : gtsa056_1.cdf
-             SUBSET   : 10 points (LONGITUDE)
-             LATITUDE : 0.7S to 1.7N (averaged)
-             DEPTH (m): 5
-             TIME     : 27-JAN-1982 18:00
- 140.5E / 11:  2.953
- 141.5E / 12:  2.956
- 142.5E / 13:  2.961
- 143.5E / 14:  2.966
- 144.5E / 15:  2.968
- 145.5E / 16:  2.968
- 146.5E / 17:  2.967
- 147.5E / 18:  2.970
- 148.5E / 19:  2.974
- 149.5E / 20:  2.979
+(IF 0 THEN; rep/i=1:1 say ERROR; ENDIF)
  
-set mode/last ignore_errors
+(IF 1 THEN; rep/i=1:1 say CORRECT; ENDIF)
+!-> REPEAT: I=1
+CORRECT
  
-go bench_subtract
-! Bench_subtract.jnl
-!  ACM  8/99
-!  benchmark script for testing external function subtract.
-! Note: bench_subtract_visual.jnl contains plots of similar computations
-! V550 *sh* 11/02 - documentation note only reflecting subspan modulo
+!yes? quit
+!yes? quit
+!yes? ^Z
+!Suspended
  
-set mode ignore_errors
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_2211
+! bug #2211
+ 
+ 
+IF 0 THEN
+ELSE
+   exit/script
+ 
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1860
+! from bug 1860
+! continue line found within grave accents
+ 
+CANCEL MODE VERIFY
+This works:
+CORRECT IF THIS DISPLAYS
+This works:
+CORRECT IF THIS DISPLAYS
+This works:
+CORRECT IF THIS DISPLAYS
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1446
+! testing ticket 1446
+ 
+! the presence of a tab preceding the "!" comment caused a parsing error
+ 
+! the behavior of this even in v69+ today is problematic in that
+! it echos an ENDIF statement that should be a plain old skip
+ 
+IF 0 THEN
+ENDIF
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1681
+! testing ticker 1681
+ 
+!The third block of the following script issues an error:
+!ERROR: invalid command: ENDIF can only be used in an IF clause
+!
+!Looks like a parsing bug -- it seems the ENDIF inside the REPEAT is being
+!applied to the outermost IF. Note that the error goes away if we change
+!the outer 0 to a 1.
+ 
+ 
+say "test1"
+test1
+if 0 then
+endif
+ 
+say "test2"
+test2
+if 0 then
+endif
+ 
+say "test3"
+test3
+if 0 then
+endif
+ 
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1706
+! testing ticket 1706
+!
+def sym a say hi\\; say hi
+ 
+IF 0 THEN
+ENDIF
+ 
+! some versions (not v550 but yes v63 but not v6301) fail to say "here"
+IF 1 THEN
+   say here
+here
+ENDIF
+ 
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1368   ! Jan 28, 2010, Ferret version 5.812
+! testing ticket 1368 - first found in Ferret v5.812 (Jan 28, 2010)
+ 
+! this is still a bug in V69+
+! the initial IF command is not being closed by the first ENDIF
+! it is skipping down to the elif command
+ 
+define symbol xend 180
+let key_flag = 0
+ 
+! test 1 - line 1 false condition should suppress both outputs
+IF `($xend) GT 360` THEN
+ !-> IF 0 THEN
+ENDIF
+ 
+ 
+! test 2 - line 1 false condition should cause else clause - "point G"
+let dxymin = 0.20
+if `dxymin lt 0.12` then
+ !-> if 0 then
+elif `dxymin lt 0.25` then
+ !-> elif 1 then
+  SAY "CORRECT.  this message should display"
+CORRECT.  this message should display
+endif
+ 
+! test 3 - this is from bug #918 -- looks like the same bug as #1368
+IF 0 THEN
+ENDIF
+ 
+GO bn_reset
+cancel mode verify
+GO err693_ribbon_start_missing
+! err693_ribbon_start_missing
+! 1/6/2015 ACM
+!
+! Bug 2226: If data starts with a missing-value and we're using (-inf) then
+! the ribbon plot started with the lowest color instead of plotting as for missing
+! Only the cases starting with missing data were incorrect previous to fixing this bug.
+ 
+DEFINE SYMBOL ribbon_command = PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3
+ 
+let/units=degrees_east xvar = {-177,-174,-186}
+let/units=degrees_north yvar = {-43, -45, -42}
+let vvar = {,271, 319}
+! This previously started with purple, not a gray missing-value point
+($ribbon_command)/title="(-inf) in levels" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="(-inf) in levels" xvar,yvar,vvar
+ 
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,,,271,319}
+($ribbon_command)/title="start with several missing" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="start with several missing" xvar,yvar,vvar
+ 
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,,271,319,1000}
+($ribbon_command)/title="end large positive value" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="end large positive value" xvar,yvar,vvar
+ 
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,271,319,1000,}
+($ribbon_command)/title="end with large positive and missing" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="end with large positive and missing" xvar,yvar,vvar
+ 
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {1.e7,,,271,319}
+($ribbon_command)/title="start with large positive" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="start with large positive" xvar,yvar,vvar
+ 
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,1.e7,,271,319}
+($ribbon_command)/title="start with missing then large positive" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="start with missing then large positive" xvar,yvar,vvar
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err691_pt_in_poly
+! err691_pt_in_poly
+! ticket 1961: modulo longitude for pt_in_poly
+! and sending subset of the xy field
  
-can region
-use ocean_atlas_temp
 use coads_climatology
-let oatemp = temp[d=ocean_atlas_temp,g=sst[d=coads_climatology]]
-set region/l=1
-let a = subtract(oatemp,sst)
-list/x=150:160/y=0  a
-             VARIABLE : SUBTRACT(OATEMP,SST)
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 5 points (LONGITUDE)
-             LATITUDE : 1S
-             DEPTH (m): 0
-             TIME     : 16-JAN 06:00
-                 1S    
-                 45
- 151E   / 66:  0.0233
- 153E   / 67:  0.0346
- 155E   / 68:  0.1315
- 157E   / 69:  0.2809
- 159E   / 70:  0.2610
-let b = oatemp- sst
-list/x=150:160/y=0  a - b
-             VARIABLE : A - B
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 5 points (LONGITUDE)
-             LATITUDE : 1S
-             DEPTH (m): 0
-             TIME     : 16-JAN 06:00
-                 1S    
-                 45
- 151E   / 66:  0.0000
- 153E   / 67:  0.0000
- 155E   / 68:  0.0000
- 157E   / 69:  0.0000
- 159E   / 70:  0.0000
  
-can region
-let a = oatemp[l=1]
-let b = sst[l=1]
-list/x=150:160/y=0  subtract(a,b)
-             VARIABLE : SUBTRACT(A,B)
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 5 points (LONGITUDE)
-             LATITUDE : 1S
-             DEPTH (m): 0
-             TIME     : 16-JAN 06:00
-                 1S    
-                 45
- 151E   / 66:  0.0233
- 153E   / 67:  0.0346
- 155E   / 68:  0.1315
- 157E   / 69:  0.2809
- 159E   / 70:  0.2610
- 
-let a = oatemp[x=180]
-let b = sst[x=180]
-list/y=0 subtract(a,b)
-             VARIABLE : SUBTRACT(A,B)
+let xpts = {64,81,81,82,88,88,79,79,76,73,68,64}
+let ypts = {31,30,29,29,27,24,20,19,20,25,27,31}
+ 
+let pts = pt_in_poly(sst[L=5,x=60:90,y=15:35], xpts, ypts)
+shade/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
+             VARIABLE : MINMAX(PTS)
              FILENAME : coads_climatology.cdf
-             SUBSET   : 3 points (TIME)
-             LONGITUDE: 179E
-             LATITUDE : 1S
-             DEPTH (m): 0
-                    179E   
-                     80
- 16-JAN      / 1:  0.1934
- 15-FEB      / 2:  0.1304
- 17-MAR      / 3:    ....
+             SUBSET   : 2 points (X)
+ 1   / 1: -1.000
+ 2   / 2:  1.000
  
-can region
-let a = x[i=1:30]
-let b = y[j=1:30]
-list/y=15 subtract(a,b)  ! pre: V550 this gave a valid MARCH. Valid behavior chg in V550
-             VARIABLE : SUBTRACT(A,B)
-             SUBSET   : 30 points (X)
-             Y        : 15
-              15    
-              15
- 1    /  1: -14.00
- 2    /  2: -13.00
- 3    /  3: -12.00
- 4    /  4: -11.00
- 5    /  5: -10.00
- 6    /  6:  -9.00
- 7    /  7:  -8.00
- 8    /  8:  -7.00
- 9    /  9:  -6.00
- 10   / 10:  -5.00
- 11   / 11:  -4.00
- 12   / 12:  -3.00
- 13   / 13:  -2.00
- 14   / 14:  -1.00
- 15   / 15:   0.00
- 16   / 16:   1.00
- 17   / 17:   2.00
- 18   / 18:   3.00
- 19   / 19:   4.00
- 20   / 20:   5.00
- 21   / 21:   6.00
- 22   / 22:   7.00
- 23   / 23:   8.00
- 24   / 24:   9.00
- 25   / 25:  10.00
- 26   / 26:  11.00
- 27   / 27:  12.00
- 28   / 28:  13.00
- 29   / 29:  14.00
- 30   / 30:  15.00
+! Put the xpts on different modulo branches
+! Previously  the list commands would have listed -1,-1
  
-can region
-let a = sst[l=1]
-let b = 26
-list/x=150:160/y=0 subtract(a,b)
-             VARIABLE : SUBTRACT(A,B)
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 5 points (LONGITUDE)
-             LATITUDE : 1S
-             TIME     : 16-JAN 06:00
-                1S    
-                45
- 151E   / 66:  3.416
- 153E   / 67:  3.431
- 155E   / 68:  3.334
- 157E   / 69:  3.190
- 159E   / 70:  3.219
-list/x=150:160/y=0 subtract(a,26)
-             VARIABLE : SUBTRACT(A,26)
+let xpts0 = {64,81,81,82,88,88,79,79,76,73,68,64}
+let/title=lon/units=degrees_east xpts = xpts0 + 360
+ 
+shade/title="Plus 360"/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
+             VARIABLE : MINMAX(PTS)
              FILENAME : coads_climatology.cdf
-             SUBSET   : 5 points (LONGITUDE)
-             LATITUDE : 1S
-             TIME     : 16-JAN 06:00
-                1S    
-                45
- 151E   / 66:  3.416
- 153E   / 67:  3.431
- 155E   / 68:  3.334
- 157E   / 69:  3.190
- 159E   / 70:  3.219
- 
-let b = sst[x=180,y=0,l=@ave]
-list/x=150:160/y=0  subtract(a,b)
-             VARIABLE : SUBTRACT(A,B)
+             SUBSET   : 2 points (X)
+ 1   / 1: -1.000
+ 2   / 2:  1.000
+ 
+let/title=lon/units=degrees_east xpts = xpts0 - 360
+ 
+shade/title="Minus 360"/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
+             VARIABLE : MINMAX(PTS)
              FILENAME : coads_climatology.cdf
-             SUBSET   : 5 points (LONGITUDE)
-             LATITUDE : 1S
-             TIME     : 01-JAN 00:45 to 01-APR 08:12
-                1S    
-                45
- 151E   / 66:  1.109
- 153E   / 67:  1.124
- 155E   / 68:  1.027
- 157E   / 69:  0.883
- 159E   / 70:  0.912
+             SUBSET   : 2 points (X)
+ 1   / 1: -1.000
+ 2   / 2:  1.000
  
-set mode/last ignore_errors
+GO bn_reset
+cancel mode verify
+GO err693_undetected_regrid_dset
+! err693_undetected_regrid_dset.jnl    - Jan 2015
  
+! in GET_CONTEXT_MODS no check is made whether dataset name/number is
+! valid following   "gdset = FIND_DSET_NUMBER( name(dstart:dend) )"
  
+use coads_climatology
+use levitus_climatology   ! default to d=2
+ 
+canc var/all
+let myvar = temp
+let a = myvar[g=temp[d=bad_d]]    ! THIS SHOULD BE DETECTED AS AN ERROR
+ 
+set mode ignore
+stat/l=1/x=180/y=0 a    ! this *SHOULD* trigger an error.  Yes.  Detect it.
+set mode/last ignore
+ 
+GO bn_reset
+cancel mode verify
+GO err693_line_over_axis
+! Ticket 2232: line plots overlaid the plot axes
+show mode meta
+      MODE            STATE        ARGUMENT
+      METAFILE      CANCELLED      metafile.plt
+! line plot with /VS draw on top of the axes
+let xval = {0.0, 0.2, 1.0, 0.8, 0}
+let yval = {0.0, 1.1, 1.1, 0.0, 0}
+plot/vs/line/thick=3/color=lightblue xval, yval
+ 
+! any line overlay may draw on the axes
+let xval = {0.0, 0.0, 0.8, 0.2, 0}
+let yval = {0.1, 1.2, 1.2, 0.1, 0.1}
+plot/ribbon/vs/line/thick=3/over/nolab/pal=green_light xval, yval, yval
  
-!!!!!!!!!!!!!!!!!!!!!!
-!
-! YAY!! End of bench_examples.jnl without crashing!!!!
-!
-!!!!!!!!!!!!!!!!!!!!!!
  
-! Ansley's benchmarks
-! move bench tests that test internal external functions to their
-! own .jnl file  bn_internal_external_functions
+GO bn_reset
+cancel mode verify
+GO err693_save_packed
+! err693_save_packed.jnl
+! ticket 2240: bug writing multiple vars with one SAVE when scaled
 !
-! 4/2006 all efs distributed with Ferret except writev5d and the
-!        examples tested in bench_examples.jnl are now internally linked.
+! Previously saw a netcdf error because first variable was mis-scaled on writing.
+ 
+use err693_save_packed.nc
+save/clobber/file=a.nc QA_OF_SEAICE_CONC_CDR, GODDARD_MERGED_SEAICE_CONC
  
 GO bn_reset
 cancel mode verify
-go bench_v5d
-! benchmark for Vis5D external function
-! 5/99 ACM
+GO err693_subspan_trans
+! err693_subspan_trans
+! bug 2241  3/9/2015
+ 
+use coads_climatology
+let a = sst[x=120:284,y=-2:2 at ave,t=@ave]
+save/clob/file=a.nc a
+can var a
+use a
+set reg/x=25:385
+let b = a[x=@min]
  
+set mode diag
+say `a[x=@min]`
+ getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing moduloing A on X axis:     1    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
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
+ 
+! This previously resulted in an error.
+say `b`
+ dealloc  dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ getgrid B        C:  7 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    B        C:  6 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ strip --> A[X=25E:25E(385)@MIN,D=2]
+ strip 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
+ doing moduloing A on X axis:     1    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
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
  
-!  Write data to a Vis5D file.  The first argument to the
-!  GO script is the file, arguments 2 through 9 are variable names to be written.
-! 7/2007 Funtion doesnt want to write a variable that doesnt have a vertical variation.
-!        To get a basic test of the function, make some data on a regularly-spaced xy grid.
+can mode diag
  
-can region
- set mode ignore_error
+! What if the region for @MIN is in the saved portion?
+say `a[x=150:200 at min]`
+ !-> MESSAGE/CONTINUE 26.96305592854818
+26.96305592854818
+let b = a[x=150:200 at min]
+say `b`
+ !-> MESSAGE/CONTINUE 26.96305592854818
+26.96305592854818
+ 
+! What if the region for @MIN extends beyond the saved portion?
+say `a[x=200:300 at min]`
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
+let b = a[x=200:300 at min]
+say `b`
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
+ 
+! What if the region for @MIN is outside the saved portion?
+say `a[x=300:385 at min]`
+ !-> MESSAGE/CONTINUE bad
+bad
+let b = a[x=300:385 at min]
+say `b`
+ !-> MESSAGE/CONTINUE bad
+bad
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_repeat_err
+!   err693_repeat_err.jnl
+! test fix for ticket 2244: Error handling in REPEAT
+ 
+! The second of these should result in an error - in debug mode
+! it instead was hitting an out-of-range subscript error.
+ 
+repeat/range=1:2/name=column repeat/range=1:2/name=row say `column`,`row`
+!-> REPEAT: COLUMN:1
+!-> REPEAT: ROW:1
+ !-> MESSAGE/CONTINUE 1,1
+1,1
+!-> REPEAT: ROW:2
+ !-> MESSAGE/CONTINUE 1,2
+1,2
+!-> REPEAT: COLUMN:2
+!-> REPEAT: ROW:1
+ !-> MESSAGE/CONTINUE 2,1
+2,1
+!-> REPEAT: ROW:2
+ !-> MESSAGE/CONTINUE 2,2
+2,2
  
-use gt4d011.cdf
-def axis/y=1:100:1/units=degrees yax
-let tr = temp[gy=yax at asn]
-go vis5d_write " " tr
-To view the file with Vis5D say:   GO vis5d_start vis5d_out.v5d
+set mode ignore
+repeat/range=1:2/name=column repeat/range=1:2/name=row
+!-> REPEAT: COLUMN:1
+!-> REPEAT: COLUMN:2
+set mode/last ignore
  
-set mode/last ignore_error
+GO bn_reset
+cancel mode verify
+GO err693_edit_useratt
+! err693_edit_useratt.jnl
+! ticket 2249: set attribute properties for user-defined variable
+ 
+use err491_attval.cdf
+list/x=135.402W:135.321W/y=58.609 elev
+             VARIABLE : Surface elevation (meter)
+             DATA SET : K-Bay OAR3d model (200m)
+             FILENAME : err491_attval.cdf
+             SUBSET   : 7 points (LONGITUDE)
+             LATITUDE : 58.61N (interpolated)
+             T (day)  : 1.7837
+ 135.402W / 45:   ....
+ 135.389W / 46:   ....
+ 135.375W / 47:   ....
+ 135.362W / 48:  2.953
+ 135.348W / 49:  2.953
+ 135.335W / 50:  2.950
+ 135.321W / 51:  2.953
+ 
+ 
+! Rename the file variable, define a variable using its name
+set var/name=elev_in elev
+let  elev = missing(elev_in, -1.e34)
+ 
+! Inherit attributes from the file variable.
+! cancel writing the scale attributes
+set att/like=elev_in elev
+can att/output elev.scale_factor
+can att/output elev.add_offset
+ 
+! set the bad-flag (can't do this before the SET ATT/LIKE
+set var/bad=-1.e34 elev
+ 
+! save
+save/clobber/file=a.nc elev
+can var/all
+use a.nc
+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)
+             T (day)  : 1.7837
+ 135.402W / 45:   ....
+ 135.389W / 46:   ....
+ 135.375W / 47:   ....
+ 135.362W / 48:  2.953
+ 135.348W / 49:  2.953
+ 135.335W / 50:  2.950
+ 135.321W / 51:  2.953
  
  
 GO bn_reset
 cancel mode verify
-GO bn_ef_v5d_strings.jnl
-! bn_ef_v5d_strings.jnl
-! Taken out of bn_strings, because it calls so file writev5d.
-! testing string argument to external function.
-! 5/4/05 acm
-exit/script ! I dont have writev5d on this machine.
+GO err693_redef_rec_axis
+! err693_redef_rec_axis.jnl
+! ticket 2271. Redefining the record axis meant
+! that SHOW AXIS/FULL couldnt get the time axis info
  
-go bn_reset
+define axis/x=1:5:1 xax
+define axis/y=2:10:2 yax
+define axis/t=1:7:1 tredef
+let var = x[gx=xax] + y[gy=yax] + t[gt=tredef]
+save/clobber/file=a.nc var
+ 
+can var/all
+can axis xax
+can axis yax
+can axis tredef
+ 
+use a.nc
+define axis/t=1:7:1/units=days/t0=1-jan-2000 tredef
+ 
+! Previously the output had  time range: ???
+show data/full
+     currently SET data sets:
+    1> ./a.nc  (default)
+ 
+ name     title                             I         J         K         L         M         N
+ VAR      X[GX=XAX] + Y[GY=YAX] + T[GT=TR  1:5       1:5       ...       1:7       ...       ...
+               on grid GSI1 with -1.E+34 for missing data
+             X=0.5:5.5  Y=1:11  
+ 
+  time range: 02-JAN-2000 00:00 to 08-JAN-2000 00:00
+ 
+ 
+GO bn_reset
 cancel mode verify
-go bn_fcn_calls.jnl
-! Simple tests of external functions
-! these are not otherwise tested in the benchmarkd
-! ACM 23-Aug-2006
-! 05/07 *acm* move tests of date1900, tax_* functions and
-!             fill_xy to bn_internal_external_functions.jnl
+GO err693_frame_types
+! bn_frame_types.jnl
+! Ticket 2275
+! The default file type for FRAME was still HDF
  
-exit
+set mode ignore
  
-exit/command
+use coads_climatology
+shade/l=1 sst
  
------
-Appending ncdump output
+! This issued an error and quit
+frame/format=hdf/file=a.hdf
  
-err491_dp_time_write.jnl --- 1 original file
-netcdf out {
-dimensions:
-	T5 = UNLIMITED ; // (1 currently)
-variables:
-	double T5(T5) ;
-		T5:units = "min since 1901-01-15 00:00:00" ;
-		T5:axis = "T" ;
-		T5:calendar = "GREGORIAN" ;
-		T5:time_origin = "15-JAN-1901" ;
-		T5:standard_name = "time" ;
-	double MY_VAR(T5) ;
-		MY_VAR:missing_value = -1.e+34 ;
-		MY_VAR:_FillValue = -1.e+34 ;
-		MY_VAR:long_name = "T[GT=T5]" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- T5 = 50757969 ;
-
- MY_VAR = 50757969 ;
-}
-err491_dp_time_write.jnl --- 2 after append
-netcdf out {
-dimensions:
-	T5 = UNLIMITED ; // (2 currently)
-variables:
-	double T5(T5) ;
-		T5:units = "min since 1901-01-15 00:00:00" ;
-		T5:axis = "T" ;
-		T5:calendar = "GREGORIAN" ;
-		T5:time_origin = "15-JAN-1901" ;
-		T5:standard_name = "time" ;
-	double MY_VAR(T5) ;
-		MY_VAR:missing_value = -1.e+34 ;
-		MY_VAR:_FillValue = -1.e+34 ;
-		MY_VAR:long_name = "T[GT=T5]" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- T5 = 50757969, 50757974 ;
-
- MY_VAR = 50757969, 50757974 ;
-}
-bn_strings.jnl --- 1 original file
-netcdf test_string {
-dimensions:
-	XAX1_3 = 3 ;
-	STRING1_10 = 10 ;
-	STRING1_16 = 16 ;
-variables:
-	double XAX1_3(XAX1_3) ;
-		XAX1_3:point_spacing = "even" ;
-		XAX1_3:axis = "X" ;
-	char A(XAX1_3, STRING1_10) ;
-		A:long_name = "{\"hello\",\"goodbye\", \"wave to me\"}" ;
-	char B(STRING1_16) ;
-		B:long_name = "\"one line of text\"" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- XAX1_3 = 1, 2, 3 ;
-
- A =
-  "hello",
-  "goodbye",
-  "wave to me" ;
-
- B = "one line of text" ;
-}
-bn_strings.jnl --- 2 append to file
-bn_strings.jnl --- 3 enhanced heading
-netcdf test_string {
-dimensions:
-	grid_definition = 1 ;
-	XAX1_19 = 19 ;
-	XAX1_192_5 = 4 ;
-	STRING1_17 = 17 ;
-variables:
-	char GFP3(grid_definition) ;
-		GFP3:axes = "XAX1_19 NORMAL NORMAL NORMAL NORMAL NORMAL" ;
-	double XAX1_19(XAX1_19) ;
-		XAX1_19:point_spacing = "even" ;
-		XAX1_19:axis = "X" ;
-	double XAX1_192_5(XAX1_192_5) ;
-		XAX1_192_5:child_axis = " " ;
-		XAX1_192_5:point_spacing = "even" ;
-		XAX1_192_5:axis = "X" ;
-	char D(XAX1_192_5, STRING1_17) ;
-		D:parent_grid = "GFP3" ;
-		D:slab_min_index = 2, 1, 1, 1 ;
-		D:slab_max_index = 5, 1, 1, 1 ;
-		D:long_name = "partial filename list" ;
-		D:history = "From test_string" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- GFP3 = "" ;
-
- XAX1_19 = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 ;
-
- XAX1_192_5 = 2, 3, 4, 5 ;
-
- D =
-  "dummy1.str_test",
-  "dummy2.str_test",
-  "dummy3.str_test",
-  "dummy4.str_test" ;
-}
-bn_strings.jnl --- 4 sample and ysequence functions on string var
-netcdf foo {
-dimensions:
-	XAX1_4 = 4 ;
-	STRING1_1 = 1 ;
-	YAX1_3 = 3 ;
-variables:
-	double XAX1_4(XAX1_4) ;
-		XAX1_4:point_spacing = "even" ;
-		XAX1_4:axis = "X" ;
-	char A(XAX1_4, STRING1_1) ;
-		A:long_name = "{\"a\",,\" \",\"\"}" ;
-	double YAX1_3(YAX1_3) ;
-		YAX1_3:point_spacing = "even" ;
-		YAX1_3:axis = "Y" ;
-	char B(YAX1_3, STRING1_1) ;
-		B:long_name = "SAMPLEJ(YSEQUENCE({\"a\",\"b\",,\"d\",\"e\",\"f\"}),{2,,1})" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- XAX1_4 = 1, 2, 3, 4 ;
-
- A =
-  "a",
-  "",
-  " ",
-  "" ;
-
- YAX1_3 = 1, 2, 3 ;
-
- B =
-  "b",
-  "",
-  "a" ;
-}
-err550_nc_seconds.jnl --- seconds of time axis
-		TIME:time_origin = "10-JUN-1996 04:03:36" ;
-bn_bounds.jnl --- 1 output of bounds on irreg axes.
-netcdf a {
-dimensions:
-	MONTH_IRREG = UNLIMITED ; // (12 currently)
-	bnds = 2 ;
-variables:
-	double MONTH_IRREG(MONTH_IRREG) ;
-		MONTH_IRREG:units = "days since 0000-01-01 00:00:00" ;
-		MONTH_IRREG:time_origin = "01-JAN-0000 00:00:00" ;
-		MONTH_IRREG:modulo = " " ;
-		MONTH_IRREG:axis = "T" ;
-		MONTH_IRREG:standard_name = "time" ;
-		MONTH_IRREG:bounds = "MONTH_IRREG_bnds" ;
-	double MONTH_IRREG_bnds(MONTH_IRREG, bnds) ;
-	double V(MONTH_IRREG) ;
-		V:missing_value = -1.e+34 ;
-		V:_FillValue = -1.e+34 ;
-		V:long_name = "T[GT=MONTH_IRREG]" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- MONTH_IRREG = 15.5, 45.12125, 74.7425, 105.2425, 135.7425, 166.2425, 
-    196.7425, 227.7425, 258.2425, 288.7425, 319.2425, 349.7425 ;
-
- MONTH_IRREG_bnds =
-  0, 31,
-  31, 59.2425,
-  59.2425, 90.2425,
-  90.2425, 120.2425,
-  120.2425, 151.2425,
-  151.2425, 181.2425,
-  181.2425, 212.2425,
-  212.2425, 243.2425,
-  243.2425, 273.2425,
-  273.2425, 304.2425,
-  304.2425, 334.2425,
-  334.2425, 365.2425 ;
-
- V = 15.5, 45.12125, 74.7425, 105.2425, 135.7425, 166.2425, 196.7425, 
-    227.7425, 258.2425, 288.7425, 319.2425, 349.7425 ;
-}
-bn_bounds.jnl --- 2 long irreg axes.
-netcdf a {
-dimensions:
-	COADSX90_90 = 1 ;
-	COADSY66_66 = 1 ;
-	TCOADS = UNLIMITED ; // (5 currently)
-	bnds = 2 ;
-variables:
-	double COADSX90_90(COADSX90_90) ;
-		COADSX90_90:units = "degrees_east" ;
-		COADSX90_90:modulo = " " ;
-		COADSX90_90:point_spacing = "even" ;
-		COADSX90_90:axis = "X" ;
-		COADSX90_90:standard_name = "longitude" ;
-	double COADSY66_66(COADSY66_66) ;
-		COADSY66_66:units = "degrees_north" ;
-		COADSY66_66:point_spacing = "even" ;
-		COADSY66_66:axis = "Y" ;
-		COADSY66_66:standard_name = "latitude" ;
-	double TCOADS(TCOADS) ;
-		TCOADS:units = "days since 1700-01-01 00:00:00" ;
-		TCOADS:time_origin = "01-JAN-1700 00:00:00" ;
-		TCOADS:axis = "T" ;
-		TCOADS:standard_name = "time" ;
-		TCOADS:bounds = "TCOADS_bnds" ;
-	double TCOADS_bnds(TCOADS, bnds) ;
-	double V(TCOADS, COADSY66_66, COADSX90_90) ;
-		V:missing_value = -1.e+34 ;
-		V:_FillValue = -1.e+34 ;
-		V:long_name = "MISSING(VWND,28.5)" ;
-		V:history = "From coads_vwnd" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- COADSX90_90 = 199 ;
-
- COADSY66_66 = 41 ;
-
- TCOADS = 91050, 91080.5, 91111, 91141.5, 91172.5 ;
-
- TCOADS_bnds =
-  91035, 91065,
-  91065, 91096,
-  91096, 91126,
-  91126, 91157,
-  91157, 91188 ;
-
- V =
-  4,
-  1.94999992847443,
-  4.25,
-  1.6599999666214,
-  -0.129999995231628 ;
-}
-bn_bounds.jnl --- 3 Append later time steps, adding a void point
-netcdf a {
-dimensions:
-	COADSX90_90 = 1 ;
-	COADSY66_66 = 1 ;
-	TCOADS = UNLIMITED ; // (10 currently)
-	bnds = 2 ;
-variables:
-	double COADSX90_90(COADSX90_90) ;
-		COADSX90_90:units = "degrees_east" ;
-		COADSX90_90:modulo = " " ;
-		COADSX90_90:point_spacing = "even" ;
-		COADSX90_90:axis = "X" ;
-		COADSX90_90:standard_name = "longitude" ;
-	double COADSY66_66(COADSY66_66) ;
-		COADSY66_66:units = "degrees_north" ;
-		COADSY66_66:point_spacing = "even" ;
-		COADSY66_66:axis = "Y" ;
-		COADSY66_66:standard_name = "latitude" ;
-	double TCOADS(TCOADS) ;
-		TCOADS:units = "days since 1700-01-01 00:00:00" ;
-		TCOADS:time_origin = "01-JAN-1700 00:00:00" ;
-		TCOADS:axis = "T" ;
-		TCOADS:standard_name = "time" ;
-		TCOADS:bounds = "TCOADS_bnds" ;
-	double TCOADS_bnds(TCOADS, bnds) ;
-	double V(TCOADS, COADSY66_66, COADSX90_90) ;
-		V:missing_value = -1.e+34 ;
-		V:_FillValue = -1.e+34 ;
-		V:long_name = "MISSING(VWND,28.5)" ;
-		V:history = "From coads_vwnd" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- COADSX90_90 = 199 ;
-
- COADSY66_66 = 41 ;
-
- TCOADS = 91050, 91080.5, 91111, 91141.5, 91172.5, 91264.5, 91355, 91384.5, 
-    91415, 91445.5 ;
-
- TCOADS_bnds =
-  91035, 91065,
-  91065, 91096,
-  91096, 91126,
-  91126, 91157,
-  91157, 91188,
-  91188, 91341,
-  91341, 91369,
-  91369, 91400,
-  91400, 91430,
-  91430, 91461 ;
-
- V =
-  4,
-  1.94999992847443,
-  4.25,
-  1.6599999666214,
-  -0.129999995231628,
-  _,
-  -1.0699999332428,
-  3.35999989509583,
-  -3.86999988555908,
-  3.93999981880188 ;
-}
-bn_bounds.jnl --- 4 depth axis, bounds positive up
-netcdf a {
-dimensions:
-	ZIRR = 4 ;
-	bnds = 2 ;
-variables:
-	double ZIRR(ZIRR) ;
-		ZIRR:units = "meters" ;
-		ZIRR:point_spacing = "uneven" ;
-		ZIRR:axis = "Z" ;
-		ZIRR:bounds = "ZIRR_bnds" ;
-		ZIRR:positive = "down" ;
-		ZIRR:standard_name = "depth" ;
-	double ZIRR_bnds(ZIRR, bnds) ;
-	double T2(ZIRR) ;
-		T2:missing_value = -1.e+34 ;
-		T2:_FillValue = -1.e+34 ;
-		T2:long_name = "Z[GZ=ZIRR]" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- ZIRR = 0, 10, 40, 70 ;
-
- ZIRR_bnds =
-  -5, 5,
-  5, 25,
-  25, 55,
-  55, 85 ;
-
- T2 = 0, 10, 40, 70 ;
-}
-bn_bounds.jnl --- 5 SAVE on irregular time axis, multi-dimensional save.
-netcdf a {
-dimensions:
-	COADSX81_83 = 3 ;
-	COADSY46_49 = 4 ;
-	MONTH_IRREG = UNLIMITED ; // (8 currently)
-	bnds = 2 ;
-variables:
-	double COADSX81_83(COADSX81_83) ;
-		COADSX81_83:units = "degrees_east" ;
-		COADSX81_83:modulo = " " ;
-		COADSX81_83:point_spacing = "even" ;
-		COADSX81_83:axis = "X" ;
-		COADSX81_83:standard_name = "longitude" ;
-	double COADSY46_49(COADSY46_49) ;
-		COADSY46_49:units = "degrees_north" ;
-		COADSY46_49:point_spacing = "even" ;
-		COADSY46_49:axis = "Y" ;
-		COADSY46_49:standard_name = "latitude" ;
-	double MONTH_IRREG(MONTH_IRREG) ;
-		MONTH_IRREG:units = "days since 0000-01-01 00:00:00" ;
-		MONTH_IRREG:time_origin = "01-JAN-0000 00:00:00" ;
-		MONTH_IRREG:modulo = " " ;
-		MONTH_IRREG:axis = "T" ;
-		MONTH_IRREG:standard_name = "time" ;
-		MONTH_IRREG:bounds = "MONTH_IRREG_bnds" ;
-	double MONTH_IRREG_bnds(MONTH_IRREG, bnds) ;
-	double V(MONTH_IRREG, COADSY46_49, COADSX81_83) ;
-		V:missing_value = -1.e+34 ;
-		V:_FillValue = -1.e+34 ;
-		V:long_name = "MISSING(SST[GT=MONTH_IRREG], 28)" ;
-		V:history = "From coads_climatology" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- COADSX81_83 = 181, 183, 185 ;
-
- COADSY46_49 = 1, 3, 5, 7 ;
-
- MONTH_IRREG = 15.5, 45.12125, 74.7425, 105.2425, 135.7425, 181.7425, 
-    227.7425, 258.2425 ;
-
- MONTH_IRREG_bnds =
-  0, 31,
-  31, 59.2425,
-  59.2425, 90.2425,
-  90.2425, 120.2425,
-  120.2425, 151.2425,
-  151.2425, 212.2425,
-  212.2425, 243.2425,
-  243.2425, 273.2425 ;
-
- V =
-  28.2849935840911, 28.414627680037, 27.9161884993111,
-  27.9765395405733, 28.2538326818959, 28.2807402581306,
-  28.2439206183922, 28.0639671835704, 28.4098884258851,
-  27.8988069263938, 28.1024085497053, 27.7289905177585,
-  28.4160049287061, 28.4018177891461, 28.0223225569069,
-  28.3564239921735, 28.4116722185187, 27.9981931574269,
-  27.9975107377818, 28.1639069786096, 28.1146483772156,
-  27.9665335861598, 27.7497643747061, 27.8315865878107,
-  28.0636671118728, 27.5906545051978, 27.7380534023442,
-  27.9418187705116, 28.0035441744124, 27.7237886368008,
-  27.8988417091574, 27.8729683348804, 27.9324667419545,
-  27.8429933705147, 27.8182966108574, 27.9089173534895,
-  28, 28, 28,
-  28, 28, 28,
-  28, 28, 28,
-  28, 28, 28,
-  28, 28, 28,
-  28, 28, 28,
-  28, 28, 28,
-  28, 28, 28,
-  _, _, _,
-  _, _, _,
-  _, _, _,
-  _, _, _,
-  28, 28, 28,
-  28, 28, 28,
-  28, 28, 28,
-  28, 28, 28,
-  28, 28, 28,
-  28, 28, 28,
-  28, 28, 28,
-  28, 28, 28 ;
-}
-bn_bounds.jnl --- 6 SAVE on regular time axis with bounds attribute
-netcdf a {
-dimensions:
-	COADSX81_81 = 1 ;
-	bnds = 2 ;
-	COADSY46_46 = 1 ;
-	TIME4 = UNLIMITED ; // (3 currently)
-variables:
-	double COADSX81_81(COADSX81_81) ;
-		COADSX81_81:units = "degrees_east" ;
-		COADSX81_81:modulo = " " ;
-		COADSX81_81:point_spacing = "even" ;
-		COADSX81_81:axis = "X" ;
-		COADSX81_81:standard_name = "longitude" ;
-		COADSX81_81:bounds = "COADSX81_81_bnds" ;
-	double COADSX81_81_bnds(COADSX81_81, bnds) ;
-	double COADSY46_46(COADSY46_46) ;
-		COADSY46_46:units = "degrees_north" ;
-		COADSY46_46:point_spacing = "even" ;
-		COADSY46_46:axis = "Y" ;
-		COADSY46_46:standard_name = "latitude" ;
-		COADSY46_46:bounds = "COADSY46_46_bnds" ;
-	double COADSY46_46_bnds(COADSY46_46, bnds) ;
-	double TIME4(TIME4) ;
-		TIME4:units = "hour since 0000-01-01 00:00:00" ;
-		TIME4:time_origin = "01-JAN-0000 00:00:00" ;
-		TIME4:modulo = " " ;
-		TIME4:axis = "T" ;
-		TIME4:standard_name = "time" ;
-		TIME4:bounds = "TIME4_bnds" ;
-	double TIME4_bnds(TIME4, bnds) ;
-	float SST(TIME4, COADSY46_46, COADSX81_81) ;
-		SST:missing_value = -1.e+34f ;
-		SST:_FillValue = -1.e+34f ;
-		SST:long_name = "SEA SURFACE TEMPERATURE" ;
-		SST:history = "From coads_climatology" ;
-		SST:units = "Deg C" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- COADSX81_81 = 181 ;
-
- COADSX81_81_bnds =
-  180, 182 ;
-
- COADSY46_46 = 1 ;
-
- COADSY46_46_bnds =
-  0, 2 ;
-
- TIME4 = 366, 1096.485, 1826.97 ;
-
- TIME4_bnds =
-  0.757499999999993, 731.2425,
-  731.2425, 1461.7275,
-  1461.7275, 2192.2125 ;
-
- SST =
-  28.28389,
-  28.41851,
-  28.0468 ;
-}
-bn_bounds.jnl --- 7 SAVE on regular time axis with edges attributes
-netcdf a {
-dimensions:
-	COADSX81_81 = 1 ;
-	COADSX81_81edges = 2 ;
-	COADSY46_46 = 1 ;
-	COADSY46_46edges = 2 ;
-	TIME4 = UNLIMITED ; // (3 currently)
-	TIME4edges = 4 ;
-variables:
-	double COADSX81_81(COADSX81_81) ;
-		COADSX81_81:units = "degrees_east" ;
-		COADSX81_81:modulo = " " ;
-		COADSX81_81:point_spacing = "even" ;
-		COADSX81_81:axis = "X" ;
-		COADSX81_81:standard_name = "longitude" ;
-		COADSX81_81:edges = "COADSX81_81edges" ;
-	double COADSX81_81edges(COADSX81_81edges) ;
-		COADSX81_81edges:edges = " " ;
-	double COADSY46_46(COADSY46_46) ;
-		COADSY46_46:units = "degrees_north" ;
-		COADSY46_46:point_spacing = "even" ;
-		COADSY46_46:axis = "Y" ;
-		COADSY46_46:standard_name = "latitude" ;
-		COADSY46_46:edges = "COADSY46_46edges" ;
-	double COADSY46_46edges(COADSY46_46edges) ;
-		COADSY46_46edges:edges = " " ;
-	double TIME4(TIME4) ;
-		TIME4:units = "hour since 0000-01-01 00:00:00" ;
-		TIME4:time_origin = "01-JAN-0000 00:00:00" ;
-		TIME4:modulo = " " ;
-		TIME4:axis = "T" ;
-		TIME4:standard_name = "time" ;
-		TIME4:edges = "TIME4edges" ;
-	double TIME4edges(TIME4edges) ;
-		TIME4edges:edges = " " ;
-	float SST(TIME4, COADSY46_46, COADSX81_81) ;
-		SST:missing_value = -1.e+34f ;
-		SST:_FillValue = -1.e+34f ;
-		SST:long_name = "SEA SURFACE TEMPERATURE" ;
-		SST:history = "From coads_climatology" ;
-		SST:units = "Deg C" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- COADSX81_81 = 181 ;
-
- COADSX81_81edges = 180, 182 ;
-
- COADSY46_46 = 1 ;
-
- COADSY46_46edges = 0, 2 ;
-
- TIME4 = 366, 1096.485, 1826.97 ;
-
- TIME4edges = 0.757499999999993, 731.2425, 1461.7275, 2192.2125 ;
-
- SST =
-  28.28389,
-  28.41851,
-  28.0468 ;
-}
-bn_bounds.jnl --- 8 outputting bounds on all irregular axes, depth axis
-netcdf irrxzt {
-dimensions:
-	XAX = 6 ;
-	bnds = 2 ;
-	ZAX = 5 ;
-	TAX = UNLIMITED ; // (5 currently)
-variables:
-	double XAX(XAX) ;
-		XAX:point_spacing = "uneven" ;
-		XAX:axis = "X" ;
-		XAX:bounds = "XAX_bnds" ;
-	double XAX_bnds(XAX, bnds) ;
-	double ZAX(ZAX) ;
-		ZAX:point_spacing = "uneven" ;
-		ZAX:axis = "Z" ;
-		ZAX:positive = "down" ;
-		ZAX:standard_name = "depth" ;
-		ZAX:bounds = "ZAX_bnds" ;
-	double ZAX_bnds(ZAX, bnds) ;
-	double TAX(TAX) ;
-		TAX:axis = "T" ;
-		TAX:bounds = "TAX_bnds" ;
-	double TAX_bnds(TAX, bnds) ;
-	double V(TAX, ZAX, XAX) ;
-		V:missing_value = -1.e+34 ;
-		V:_FillValue = -1.e+34 ;
-		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- XAX = 1, 2, 5, 6, 7, 8 ;
-
- XAX_bnds =
-  0.5, 1.5,
-  1.5, 3.5,
-  3.5, 5.5,
-  5.5, 6.5,
-  6.5, 7.5,
-  7.5, 8.5 ;
-
- ZAX = 0, 20, 50, 75, 120 ;
-
- ZAX_bnds =
-  0, 10,
-  10, 30,
-  30, 60,
-  60, 90,
-  90, 150 ;
-
- TAX = 1, 2, 9, 10, 11 ;
-
- TAX_bnds =
-  0.5, 1.5,
-  1.5, 5.5,
-  5.5, 9.5,
-  9.5, 10.5,
-  10.5, 11.5 ;
-
- V =
-  2, 3, 6, 7, 8, 9,
-  22, 23, 26, 27, 28, 29,
-  52, 53, 56, 57, 58, 59,
-  77, 78, 81, 82, 83, 84,
-  122, 123, 126, 127, 128, 129,
-  3, 4, 7, 8, 9, 10,
-  23, 24, 27, 28, 29, 30,
-  53, 54, 57, 58, 59, 60,
-  78, 79, 82, 83, 84, 85,
-  123, 124, 127, 128, 129, 130,
-  10, 11, 14, 15, 16, 17,
-  30, 31, 34, 35, 36, 37,
-  60, 61, 64, 65, 66, 67,
-  85, 86, 89, 90, 91, 92,
-  130, 131, 134, 135, 136, 137,
-  11, 12, 15, 16, 17, 18,
-  31, 32, 35, 36, 37, 38,
-  61, 62, 65, 66, 67, 68,
-  86, 87, 90, 91, 92, 93,
-  131, 132, 135, 136, 137, 138,
-  12, 13, 16, 17, 18, 19,
-  32, 33, 36, 37, 38, 39,
-  62, 63, 66, 67, 68, 69,
-  87, 88, 91, 92, 93, 94,
-  132, 133, 136, 137, 138, 139 ;
-}
-err580_irreg_bounds.jnl --- 
-netcdf a {
-dimensions:
-	TIME = UNLIMITED ; // (2 currently)
-	bnds = 2 ;
-variables:
-	double TIME(TIME) ;
-		TIME:axis = "T" ;
-		TIME:bounds = "TIME_bnds" ;
-	double TIME_bnds(TIME, bnds) ;
-	double A(TIME) ;
-		A:missing_value = -1.e+34 ;
-		A:_FillValue = -1.e+34 ;
-		A:long_name = "T[GT=TIME]" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- TIME = 0.5, 2 ;
-
- TIME_bnds =
-  0, 1,
-  1, 3 ;
-
- A = 0.5, 2 ;
-}
-err580_long_title.jnl --- 
-netcdf longtitle {
-dimensions:
-	XAX1_10 = 10 ;
-variables:
-	double XAX1_10(XAX1_10) ;
-		XAX1_10:point_spacing = "even" ;
-		XAX1_10:axis = "X" ;
-	double X_(XAX1_10) ;
-		X_:missing_value = -1.e+34 ;
-		X_:_FillValue = -1.e+34 ;
-		X_:long_name = "X" ;
-		X_:long_name_mod = "axis ABSTRACT" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-		:title = "a long title longer than 80 characters a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789" ;
-data:
-
- XAX1_10 = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ;
-
- X_ = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ;
-}
-err580_long_dsettitle.jnl --- 
-netcdf longtitle {
-dimensions:
-	XAX1_5 = 5 ;
-variables:
-	double XAX1_5(XAX1_5) ;
-		XAX1_5:point_spacing = "even" ;
-		XAX1_5:axis = "X" ;
-	float A(XAX1_5) ;
-		A:missing_value = -1.e+34f ;
-		A:_FillValue = -1.e+34f ;
-		A:long_name = "A" ;
-		A:history = "From x" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		: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:
-
- XAX1_5 = 1, 2, 3, 4, 5 ;
-
- A = 1, 2, 3, 4, 5 ;
-}
-err580_cdc_timeaxis.jnl --- 
-netcdf my_cdc_timeaxis {
-dimensions:
-	TCDC = UNLIMITED ; // (15 currently)
-variables:
-	double TCDC(TCDC) ;
-		TCDC:units = "days since 0001-01-01 00:00:00" ;
-		TCDC:axis = "T" ;
-		TCDC:calendar = "GREGORIAN" ;
-		TCDC:time_origin = "01-JAN-0001 00:00:00" ;
-		TCDC:standard_name = "time" ;
-	double A(TCDC) ;
-		A:missing_value = -1.e+34 ;
-		A:_FillValue = -1.e+34 ;
-		A:long_name = "SIN(T[GT=TCDC]/10000)" ;
-		A:history = "From t0_cdc" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-}
-bn_long_revision_num.jnl --- history attribute
-		:history = "FERRET V6.925    7-Oct-14" ;
-bn_bounds_defineax.jnl --- N+1 def of bounds.
-netcdf irrxzt {
-dimensions:
-	XAX = 6 ;
-	bnds = 2 ;
-	ZAX = 5 ;
-	TAX = UNLIMITED ; // (5 currently)
-variables:
-	double XAX(XAX) ;
-		XAX:point_spacing = "uneven" ;
-		XAX:axis = "X" ;
-		XAX:bounds = "XAX_bnds" ;
-	double XAX_bnds(XAX, bnds) ;
-	double ZAX(ZAX) ;
-		ZAX:point_spacing = "uneven" ;
-		ZAX:axis = "Z" ;
-		ZAX:positive = "down" ;
-		ZAX:standard_name = "depth" ;
-		ZAX:bounds = "ZAX_bnds" ;
-	double ZAX_bnds(ZAX, bnds) ;
-	double TAX(TAX) ;
-		TAX:axis = "T" ;
-		TAX:bounds = "TAX_bnds" ;
-	double TAX_bnds(TAX, bnds) ;
-	double V(TAX, ZAX, XAX) ;
-		V:missing_value = -1.e+34 ;
-		V:_FillValue = -1.e+34 ;
-		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- XAX = 1, 2, 5, 6, 7, 8 ;
-
- XAX_bnds =
-  0.5, 1.5,
-  1.5, 3.5,
-  3.5, 5.5,
-  5.5, 6.5,
-  6.5, 7.5,
-  7.5, 8.5 ;
-
- ZAX = 0, 20, 50, 75, 120 ;
-
- ZAX_bnds =
-  0, 10,
-  10, 30,
-  30, 60,
-  60, 90,
-  90, 150 ;
-
- TAX = 1, 2, 9, 10, 11 ;
-
- TAX_bnds =
-  0.5, 1.5,
-  1.5, 5.5,
-  5.5, 9.5,
-  9.5, 10.5,
-  10.5, 11.5 ;
-
- V =
-  2, 3, 6, 7, 8, 9,
-  22, 23, 26, 27, 28, 29,
-  52, 53, 56, 57, 58, 59,
-  77, 78, 81, 82, 83, 84,
-  122, 123, 126, 127, 128, 129,
-  3, 4, 7, 8, 9, 10,
-  23, 24, 27, 28, 29, 30,
-  53, 54, 57, 58, 59, 60,
-  78, 79, 82, 83, 84, 85,
-  123, 124, 127, 128, 129, 130,
-  10, 11, 14, 15, 16, 17,
-  30, 31, 34, 35, 36, 37,
-  60, 61, 64, 65, 66, 67,
-  85, 86, 89, 90, 91, 92,
-  130, 131, 134, 135, 136, 137,
-  11, 12, 15, 16, 17, 18,
-  31, 32, 35, 36, 37, 38,
-  61, 62, 65, 66, 67, 68,
-  86, 87, 90, 91, 92, 93,
-  131, 132, 135, 136, 137, 138,
-  12, 13, 16, 17, 18, 19,
-  32, 33, 36, 37, 38, 39,
-  62, 63, 66, 67, 68, 69,
-  87, 88, 91, 92, 93, 94,
-  132, 133, 136, 137, 138, 139 ;
-}
-bn_attributes.jnl --- 1 attributes of string variables
-netcdf a {
-dimensions:
-	XAX1_3 = 3 ;
-	STRING1_10 = 10 ;
-variables:
-	double XAX1_3(XAX1_3) ;
-		XAX1_3:point_spacing = "even" ;
-		XAX1_3:axis = "X" ;
-	char VAR_B(XAX1_3, STRING1_10) ;
-		VAR_B:long_name = "my strings" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- XAX1_3 = 1, 2, 3 ;
-
- VAR_B =
-  "Seattle",
-  "Skykomish",
-  "Snoqualmie" ;
-}
-bn_attributes.jnl --- 2 access and edit attributes of coordinate variables.
-netcdf a {
-dimensions:
-	COADSX105_105 = 1 ;
-	COADSY45_45 = 1 ;
-	TIME4 = UNLIMITED ; // (3 currently)
-variables:
-	double COADSX105_105(COADSX105_105) ;
-		COADSX105_105:units = "degrees_east" ;
-		COADSX105_105:modulo = " " ;
-		COADSX105_105:point_spacing = "even" ;
-		COADSX105_105:newatt = 0.f ;
-		COADSX105_105:axis = "X" ;
-		COADSX105_105:standard_name = "longitude" ;
-	double COADSY45_45(COADSY45_45) ;
-		COADSY45_45:units = "degrees_north" ;
-		COADSY45_45:point_spacing = "even" ;
-		COADSY45_45:axis = "Y" ;
-		COADSY45_45:standard_name = "latitude" ;
-	double TIME4(TIME4) ;
-		TIME4:units = "hour since 0000-01-01 00:00:00" ;
-		TIME4:time_origin = "01-JAN-0000 00:00:00" ;
-		TIME4:modulo = " " ;
-		TIME4:axis = "T" ;
-		TIME4:standard_name = "time" ;
-	float SST(TIME4, COADSY45_45, COADSX105_105) ;
-		SST:missing_value = -1.e+34f ;
-		SST:_FillValue = -1.e+34f ;
-		SST:long_name = "SEA SURFACE TEMPERATURE" ;
-		SST:history = "From coads_climatology" ;
-		SST:units = "Deg C" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- COADSX105_105 = 229 ;
-
- COADSY45_45 = -1 ;
-
- TIME4 = 366, 1096.485, 1826.97 ;
-}
-bn_attributes.jnl --- 3 modulo set to false
-netcdf a {
-dimensions:
-	COADSX81_81 = 1 ;
-	COADSY45_45 = 1 ;
-	TIME7 = UNLIMITED ; // (12 currently)
-variables:
-	double COADSX81_81(COADSX81_81) ;
-		COADSX81_81:units = "degrees_east" ;
-		COADSX81_81:modulo = "false" ;
-		COADSX81_81:point_spacing = "even" ;
-		COADSX81_81:axis = "X" ;
-		COADSX81_81:standard_name = "longitude" ;
-	double COADSY45_45(COADSY45_45) ;
-		COADSY45_45:units = "degrees_north" ;
-		COADSY45_45:point_spacing = "even" ;
-		COADSY45_45:axis = "Y" ;
-		COADSY45_45:standard_name = "latitude" ;
-	double TIME7(TIME7) ;
-		TIME7:units = "hour since 0000-01-01 00:00:00" ;
-		TIME7:time_origin = "01-JAN-0000 00:00:00" ;
-		TIME7:modulo = " " ;
-		TIME7:axis = "T" ;
-		TIME7:standard_name = "time" ;
-	float SST(TIME7, COADSY45_45, COADSX81_81) ;
-		SST:missing_value = -1.e+34f ;
-		SST:_FillValue = -1.e+34f ;
-		SST:long_name = "SEA SURFACE TEMPERATURE" ;
-		SST:history = "From coads_climatology" ;
-		SST:units = "Deg C" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- COADSX81_81 = 181 ;
-
- COADSY45_45 = -1 ;
-
- TIME7 = 366, 1096.485, 1826.97, 2557.455, 3287.94, 4018.425, 4748.91, 
-    5479.395, 6209.88, 6940.365, 7670.85, 8401.335 ;
-}
-bn_attributes.jnl --- 4 CANCEL MODE upcase_output; original file:
-netcdf err491_attval {
-dimensions:
-	Ti = UNLIMITED ; // (1 currently)
-	Yc = 127 ;
-	Xc = 35 ;
-variables:
-	double Ti(Ti) ;
-		Ti:long_name = "Time" ;
-		Ti:units = "day" ;
-	double Yc(Yc) ;
-		Yc:long_name = "Latitude" ;
-		Yc:units = "degrees_north" ;
-	double Xc(Xc) ;
-		Xc:long_name = "Longitude" ;
-		Xc:units = "degrees_east" ;
-	short Elev(Ti, Yc, Xc) ;
-		Elev:long_name = "Surface elevation" ;
-		Elev:units = "meter" ;
-		Elev:valid_range = -9., 9. ;
-		Elev:_FillValue = -32768s ;
-		Elev:missing_value = -32767s ;
-		Elev:scale_factor = 0.000274674967954587 ;
-		Elev:add_offset = 0. ;
-
-// global attributes:
-		:simulation = "K-Bay OAR3d model (200m)" ;
-		:start_date = "980105000000" ;
-		:history = "a\n",
-			"" ;
-		:option = 1 ;
-		:run_mode = 3 ;
-		:srfc_bndry = 3 ;
-		:rad_penet = 2 ;
-		:dt_external = 1. ;
-		:dt_internal = 15. ;
-		:horiz_diff = 0.2 ;
-		:inv_prandtl = 0.2 ;
-		:min_slope = 0.2 ;
-		:title = "K-Bay OAR3d model (200m)                                                        " ;
-		:command = "                                                                                                                                                                                                                                                                                                                                " ;
-		:remark = "Generated by oar3d                                                                                                                                              " ;
-		:x_units = "degrees                                                                         " ;
-		:y_units = "degrees                                                                         " ;
-		:z_units = "                                                                                " ;
-		:nx = 35 ;
-		:ny = 127 ;
-		:x_min = 0. ;
-		:x_max = 0. ;
-		:y_min = 0. ;
-		:y_max = 0. ;
-		:z_min = 0. ;
-		:z_max = 0. ;
-		:x_inc = 0. ;
-		:y_inc = 0. ;
-		:z_scale_factor = 0. ;
-		:z_add_offset = 0. ;
-		:node_offset = 0. ;
-}
-bn_attributes.jnl --- 5 before CANCEL MODE upcase_output
-netcdf a {
-dimensions:
-	XC3_3 = 1 ;
-	YC2_4 = 3 ;
-	bnds = 2 ;
-	TI = UNLIMITED ; // (1 currently)
-variables:
-	double XC3_3(XC3_3) ;
-		XC3_3:long_name = "Longitude" ;
-		XC3_3:units = "degrees_east" ;
-		XC3_3:modulo = 360. ;
-		XC3_3:point_spacing = "even" ;
-		XC3_3:axis = "X" ;
-		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 TI(TI) ;
-		TI:long_name = "Time" ;
-		TI:units = "day" ;
-		TI:axis = "T" ;
-		TI:standard_name = "time" ;
-	short ELEV(TI, YC2_4, XC3_3) ;
-		ELEV:missing_value = -32767s ;
-		ELEV:_FillValue = -32768s ;
-		ELEV:long_name = "Surface elevation" ;
-		ELEV:units = "meter" ;
-		ELEV:scale_factor = 0.000274674967954587 ;
-		ELEV:add_offset = 0. ;
-		ELEV:history = "From err491_attval" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-}
-bn_attributes.jnl --- 6 after CANCEL MODE upcase_output
-netcdf a {
-dimensions:
-	Xc3_3 = 1 ;
-	Yc2_4 = 3 ;
-	bnds = 2 ;
-	Ti = UNLIMITED ; // (1 currently)
-variables:
-	double Xc3_3(Xc3_3) ;
-		Xc3_3:long_name = "Longitude" ;
-		Xc3_3:units = "degrees_east" ;
-		Xc3_3:modulo = 360. ;
-		Xc3_3:point_spacing = "even" ;
-		Xc3_3:axis = "X" ;
-		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 Ti(Ti) ;
-		Ti:long_name = "Time" ;
-		Ti:units = "day" ;
-		Ti:axis = "T" ;
-		Ti:standard_name = "time" ;
-	short Elev(Ti, Yc2_4, Xc3_3) ;
-		Elev:missing_value = -32767s ;
-		Elev:_FillValue = -32768s ;
-		Elev:long_name = "Surface elevation" ;
-		Elev:units = "meter" ;
-		Elev:scale_factor = 0.000274674967954587 ;
-		Elev:add_offset = 0. ;
-		Elev:history = "From err491_attval" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-}
-bn_attributes.jnl --- 7 outtput flags to control attribute output
-netcdf a {
-dimensions:
-	XAX1_5 = 5 ;
-variables:
-	double AA ;
-		AA:missing_value = -1.e+34 ;
-		AA:_FillValue = -1.e+34 ;
-		AA:long_name = "12" ;
-	double XAX1_5(XAX1_5) ;
-		XAX1_5:point_spacing = "even" ;
-		XAX1_5:axis = "X" ;
-	double BB(XAX1_5) ;
-		BB:missing_value = -1.e+34 ;
-		BB:_FillValue = -1.e+34 ;
-		BB:long_name = "{3,4.5,6,7,4}" ;
-		BB:my_title = "This is my new variable bb" ;
-		BB:another_attr = 6.f ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- XAX1_5 = 1, 2, 3, 4, 5 ;
-}
-bn_attributes.jnl --- 8 outtput all flags
-netcdf a {
-dimensions:
-	XAX1_5 = 5 ;
-variables:
-	double AA ;
-		AA:missing_value = -1.e+34 ;
-		AA:_FillValue = -1.e+34 ;
-		AA:long_name = "12" ;
-	double XAX1_5(XAX1_5) ;
-		XAX1_5:point_spacing = "even" ;
-		XAX1_5:axis = "X" ;
-	double BB(XAX1_5) ;
-		BB:missing_value = -1.e+34 ;
-		BB:_FillValue = -1.e+34 ;
-		BB:long_name = "{3,4.5,6,7,4}" ;
-		BB:my_title = "This is my new variable bb" ;
-		BB:another_attr = 6.f ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- XAX1_5 = 1, 2, 3, 4, 5 ;
-}
-bn_attributes.jnl --- 9 Just output the default attributes
-netcdf a {
-dimensions:
-	XAX1_5 = 5 ;
-variables:
-	double XAX1_5(XAX1_5) ;
-		XAX1_5:point_spacing = "even" ;
-		XAX1_5:axis = "X" ;
-	double BB(XAX1_5) ;
-		BB:missing_value = -1.e+34 ;
-		BB:_FillValue = -1.e+34 ;
-		BB:long_name = "{3,4.5,6,7,4}" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- XAX1_5 = 1, 2, 3, 4, 5 ;
-}
-bn_attributes.jnl --- 10 Output none of the attributes for aa
-netcdf a {
-dimensions:
-	XAX1_5 = 5 ;
-variables:
-	double AA ;
-	double XAX1_5(XAX1_5) ;
-		XAX1_5:point_spacing = "even" ;
-		XAX1_5:axis = "X" ;
-	double BB(XAX1_5) ;
-		BB:missing_value = -1.e+34 ;
-		BB:_FillValue = -1.e+34 ;
-		BB:long_name = "{3,4.5,6,7,4}" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- XAX1_5 = 1, 2, 3, 4, 5 ;
-}
-bn_attributes.jnl --- 11 Surpress output of an attribute that Ferret would otherwise add.
-netcdf a {
-dimensions:
-	XAX_LEV9421_380 = 360 ;
-	YAX_LEV94 = 180 ;
-	ZAXLEVIT191_1 = 1 ;
-	TIME3 = UNLIMITED ; // (2 currently)
-variables:
-	double XAX_LEV9421_380(XAX_LEV9421_380) ;
-		XAX_LEV9421_380:units = "degrees_east" ;
-		XAX_LEV9421_380:modulo = " " ;
-		XAX_LEV9421_380:standard_name = "longitude" ;
-	double YAX_LEV94(YAX_LEV94) ;
-		YAX_LEV94:units = "degrees_north" ;
-		YAX_LEV94:point_spacing = "even" ;
-		YAX_LEV94:axis = "Y" ;
-		YAX_LEV94:standard_name = "latitude" ;
-	double ZAXLEVIT191_1(ZAXLEVIT191_1) ;
-		ZAXLEVIT191_1:units = "meters" ;
-		ZAXLEVIT191_1:positive = "down" ;
-		ZAXLEVIT191_1:point_spacing = "even" ;
-		ZAXLEVIT191_1:axis = "Z" ;
-		ZAXLEVIT191_1:standard_name = "depth" ;
-	double TIME3(TIME3) ;
-		TIME3:units = "hour since 0000-01-01 00:00:00" ;
-		TIME3:time_origin = "01-JAN-0000 00:00:00" ;
-		TIME3:modulo = " " ;
-		TIME3:axis = "T" ;
-		TIME3:standard_name = "time" ;
-	float TEMP(TIME3, ZAXLEVIT191_1, YAX_LEV94, XAX_LEV9421_380) ;
-		TEMP:missing_value = -1.e+34f ;
-		TEMP:_FillValue = -1.e+34f ;
-		TEMP:long_name = "Temperature" ;
-		TEMP:history = "From ocean_atlas_monthly" ;
-		TEMP:units = "Deg C" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-}
-bn_attributes.jnl --- 12 Check that settings hold for child axis.
-netcdf a {
-dimensions:
-	XAX_LEV9421_380281_340 = 60 ;
-	YAX_LEV94121_135 = 15 ;
-	ZAXLEVIT191_1 = 1 ;
-	TIME3 = UNLIMITED ; // (2 currently)
-variables:
-	double XAX_LEV9421_380281_340(XAX_LEV9421_380281_340) ;
-		XAX_LEV9421_380281_340:units = "degrees_east" ;
-		XAX_LEV9421_380281_340:modulo = " " ;
-		XAX_LEV9421_380281_340:standard_name = "longitude" ;
-	double YAX_LEV94121_135(YAX_LEV94121_135) ;
-		YAX_LEV94121_135:units = "degrees_north" ;
-		YAX_LEV94121_135:point_spacing = "even" ;
-		YAX_LEV94121_135:axis = "Y" ;
-		YAX_LEV94121_135:standard_name = "latitude" ;
-	double ZAXLEVIT191_1(ZAXLEVIT191_1) ;
-		ZAXLEVIT191_1:units = "meters" ;
-		ZAXLEVIT191_1:positive = "down" ;
-		ZAXLEVIT191_1:point_spacing = "even" ;
-		ZAXLEVIT191_1:axis = "Z" ;
-		ZAXLEVIT191_1:standard_name = "depth" ;
-	double TIME3(TIME3) ;
-		TIME3:units = "hour since 0000-01-01 00:00:00" ;
-		TIME3:time_origin = "01-JAN-0000 00:00:00" ;
-		TIME3:modulo = " " ;
-		TIME3:axis = "T" ;
-		TIME3:standard_name = "time" ;
-	float TEMP(TIME3, ZAXLEVIT191_1, YAX_LEV94121_135, XAX_LEV9421_380281_340) ;
-		TEMP:missing_value = -1.e+34f ;
-		TEMP:_FillValue = -1.e+34f ;
-		TEMP:long_name = "Temperature" ;
-		TEMP:history = "From ocean_atlas_monthly" ;
-		TEMP:units = "Deg C" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-}
-bn_attributes.jnl --- 13 cancel output of attributes of the variable.
-netcdf a {
-dimensions:
-	XAX_LEV9421_380 = 360 ;
-	YAX_LEV94 = 180 ;
-	ZAXLEVIT191_1 = 1 ;
-	TIME3 = UNLIMITED ; // (2 currently)
-variables:
-	double XAX_LEV9421_380(XAX_LEV9421_380) ;
-		XAX_LEV9421_380:units = "degrees_east" ;
-		XAX_LEV9421_380:modulo = " " ;
-		XAX_LEV9421_380:standard_name = "longitude" ;
-	double YAX_LEV94(YAX_LEV94) ;
-		YAX_LEV94:units = "degrees_north" ;
-		YAX_LEV94:point_spacing = "even" ;
-		YAX_LEV94:axis = "Y" ;
-		YAX_LEV94:standard_name = "latitude" ;
-	double ZAXLEVIT191_1(ZAXLEVIT191_1) ;
-		ZAXLEVIT191_1:units = "meters" ;
-		ZAXLEVIT191_1:positive = "down" ;
-		ZAXLEVIT191_1:point_spacing = "even" ;
-		ZAXLEVIT191_1:axis = "Z" ;
-		ZAXLEVIT191_1:standard_name = "depth" ;
-	double TIME3(TIME3) ;
-		TIME3:units = "hour since 0000-01-01 00:00:00" ;
-		TIME3:time_origin = "01-JAN-0000 00:00:00" ;
-		TIME3:modulo = " " ;
-		TIME3:axis = "T" ;
-		TIME3:standard_name = "time" ;
-	float TEMP(TIME3, ZAXLEVIT191_1, YAX_LEV94, XAX_LEV9421_380) ;
-		TEMP:missing_value = -1.e+34f ;
-		TEMP:_FillValue = -1.e+34f ;
-		TEMP:units = "Deg C" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-}
-bn_attributes.jnl --- 14 attributes of data from ez data.
-netcdf a {
-dimensions:
-	AX042 = 5 ;
-variables:
-	double AX042(AX042) ;
-		AX042:point_spacing = "even" ;
-		AX042:axis = "X" ;
-	float A1(AX042) ;
-		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) ;
-		A2:missing_value = -1.e+34f ;
-		A2:_FillValue = -1.e+34f ;
-		A2:long_name = "A2" ;
-		A2:history = "From EZ.DAT" ;
-	float A3(AX042) ;
-		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.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- AX042 = 1, 2, 3, 4, 5 ;
-
- A1 = 0.006, 0.355, 0.41, 0.435, 0.478 ;
-
- A2 = 0.8865, 0.6643, 0.6071, 0.5535, 0.5337 ;
-
- A3 = 0.176, 0.379, 0.417, 0.444, 0.515 ;
-}
-bn_attributes.jnl --- 15 attributes of data from delimited data.
-netcdf a {
-dimensions:
-	AX009 = 5 ;
-variables:
-	double AX009(AX009) ;
-		AX009:point_spacing = "even" ;
-		AX009:axis = "X" ;
-	float V1(AX009) ;
-		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) ;
-		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.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- AX009 = 1, 2, 3, 4, 5 ;
-
- V1 = 0.006, 0.355, 0.41, 0.435, 0.478 ;
-
- V4 = 0.7597, 0.6455, 0.5935, 0.5458, 0.5147 ;
-}
-bn_attributes.jnl --- 16 attributes of user vars
-netcdf a {
-dimensions:
-	XAX1_3 = 3 ;
-variables:
-	double XAX1_3(XAX1_3) ;
-		XAX1_3:point_spacing = "even" ;
-		XAX1_3:axis = "X" ;
-	double A(XAX1_3) ;
-		A:missing_value = -1.e+34 ;
-		A:_FillValue = -1.e+34 ;
-		A:long_name = "{12,14,15}" ;
-		A:three = 1.f, 2.f, 3.f ;
-		A:four = "theory" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- XAX1_3 = 1, 2, 3 ;
-
- A = 12, 14, 15 ;
-}
-bn_attributes.jnl --- 17 global attrs.
-netcdf a {
-dimensions:
-	XC = 35 ;
-	YC = 127 ;
-	bnds = 2 ;
-	TI = UNLIMITED ; // (1 currently)
-variables:
-	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, YC, XC) ;
-		ELEV:missing_value = -32767s ;
-		ELEV:_FillValue = -32768s ;
-		ELEV:long_name = "Surface elevation" ;
-		ELEV:units = "meter" ;
-		ELEV:scale_factor = 0.000274674967954587 ;
-		ELEV:add_offset = 0. ;
-		ELEV:history = "From err491_attval" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-		:simulation = "K-Bay OAR3d model (200m)" ;
-		:start_date = "980105000000" ;
-		:option = 0 ;
-		:run_mode = 0 ;
-		:srfc_bndry = 0 ;
-		:rad_penet = 0 ;
-		:dt_external = 1. ;
-		:dt_internal = 15. ;
-		:horiz_diff = 0.2 ;
-		:inv_prandtl = 0.2 ;
-		:min_slope = 0.2 ;
-		:command = " " ;
-		:remark = "Generated by oar3d" ;
-		:x_units = "degrees" ;
-		:y_units = "degrees" ;
-		:z_units = " " ;
-		:nx = 0 ;
-		:ny = 0 ;
-		:x_min = 0. ;
-		:x_max = 0. ;
-		:y_min = 0. ;
-		:y_max = 0. ;
-		:z_min = 0. ;
-		:z_max = 0. ;
-		:x_inc = 0. ;
-		:y_inc = 0. ;
-		:z_scale_factor = 0. ;
-		:z_add_offset = 0. ;
-		:node_offset = 0. ;
-}
-bn_attributes.jnl --- 18 choose global attr to write
-netcdf a {
-dimensions:
-	XC = 35 ;
-	YC = 127 ;
-	bnds = 2 ;
-	TI = UNLIMITED ; // (1 currently)
-	PSXT1100_100 = 1 ;
-	PSYT135_56 = 22 ;
-	PSZT11_1 = 1 ;
-	TIME11 = 25 ;
-variables:
-	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, YC, XC) ;
-		ELEV:missing_value = -32767s ;
-		ELEV:_FillValue = -32768s ;
-		ELEV:long_name = "Surface elevation" ;
-		ELEV:units = "meter" ;
-		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 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_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 TIME11(TIME11) ;
-		TIME11:units = "hour since 1980-01-14 14:00:00" ;
-		TIME11:time_origin = "14-JAN-1980 14:00:00" ;
-		TIME11:point_spacing = "even" ;
-		TIME11:axis = "T" ;
-		TIME11:standard_name = "time" ;
-	float TEMP(TIME11, PSZT11_1, PSYT135_56, PSXT1100_100) ;
-		TEMP:missing_value = -1.e+34f ;
-		TEMP:_FillValue = -1.e+34f ;
-		TEMP:long_name = "TEMPERATURE" ;
-		TEMP:history = "From gt4d011" ;
-		TEMP:units = "deg. C" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-		:dt_internal = 15. ;
-}
-bn_attributes.jnl --- 19 scale and offset attr.
-netcdf a {
-dimensions:
-	XC = 35 ;
-	YC1_1 = 1 ;
-	bnds = 2 ;
-	TI = UNLIMITED ; // (1 currently)
-variables:
-	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 YC1_1(YC1_1) ;
-		YC1_1:long_name = "Latitude" ;
-		YC1_1:units = "degrees_north" ;
-		YC1_1:point_spacing = "uneven" ;
-		YC1_1:axis = "Y" ;
-		YC1_1:standard_name = "latitude" ;
-		YC1_1:bounds = "YC1_1_bnds" ;
-	double YC1_1_bnds(YC1_1, bnds) ;
-	double TI(TI) ;
-		TI:long_name = "Time" ;
-		TI:units = "day" ;
-		TI:axis = "T" ;
-		TI:standard_name = "time" ;
-	short ELEV(TI, YC1_1, XC) ;
-		ELEV:missing_value = -32767s ;
-		ELEV:_FillValue = -32768s ;
-		ELEV:long_name = "Surface elevation" ;
-		ELEV:units = "meter" ;
-		ELEV:scale_factor = 0.000274674967954587 ;
-		ELEV:add_offset = 0. ;
-		ELEV:history = "From err491_attval" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- XC = -135.50957036625, -135.496120344706, -135.482670323162, 
-    -135.469220301618, -135.455770280074, -135.44232025853, 
-    -135.428870236985, -135.415420215441, -135.401970193897, 
-    -135.388520172353, -135.375070150809, -135.361620129265, 
-    -135.348170107721, -135.334720086177, -135.321270064633, 
-    -135.307820043089, -135.294370021545, -135.28092, -135.267469978456, 
-    -135.254019956912, -135.240569935368, -135.227119913824, 
-    -135.21366989228, -135.200219870736, -135.186769849192, 
-    -135.173319827648, -135.159869806104, -135.14641978456, 
-    -135.132969763016, -135.119519741471, -135.106069719927, 
-    -135.092619698383, -135.079169676839, -135.065719655295, -135.052269633751 ;
-
- YC1_1 = 58.5947143787844 ;
-
- YC1_1_bnds =
-  58.5912104049205, 58.5982183526484 ;
-
- TI = 1.78368055555556 ;
-
- ELEV =
-  -32767, -32767, -32767, -32767, -32767, -32767, -32767, -32767, -32767, 
-    -32767, -32767, 10702, 10702, 10702, 10702, 10702, 10702, 10702, 10702, 
-    10702, 10702, 10702, 10702, 10702, 10702, -32767, -32767, -32767, -32767, 
-    -32767, -32767, -32767, -32767, -32767, -32767 ;
-}
-bn_attributes.jnl --- 20 set data type on output int4
-	int TEMP(TIME11, PSZT11_1, PSYT148_48, PSXT191_108) ;
-		TEMP:missing_value = -1000 ;
-		TEMP:_FillValue = -1000 ;
-		TEMP:long_name = "TEMPERATURE" ;
-		TEMP:history = "From gt4d011" ;
-		TEMP:units = "deg. C" ;
-
-// global attributes:
---
- TEMP =
-  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) ;
-		SALT:missing_value = 0.00999999977648258 ;
-		SALT:_FillValue = 0.00999999977648258 ;
-		SALT:long_name = "(SALINITY(ppt) - 35) /1000" ;
-		SALT:history = "From gt4d011" ;
-		SALT:units = "frac. by wt. less .035" ;
-		SALT:Ferret_Precision_Note = "This variable written using Ferret was converted from FLOAT to DOUBLE" ;
-
-// global attributes:
---
- SALT =
-  0.00016033259453252, 0.000142609584145248, 0.000126281287521124, 
-    0.000120904369396158, 0.000120412340038456, 0.000123045203508809, 
-bn_attributes.jnl --- 22 outtype=input
-netcdf a {
-dimensions:
-	J = 3 ;
-	I = 2 ;
-	l = 3 ;
-variables:
-	float J(J) ;
-		J:point_spacing = "even" ;
-		J:axis = "X" ;
-	int I(I) ;
-		I:point_spacing = "even" ;
-		I:axis = "Y" ;
-	char BROILED(I, J, l) ;
-		BROILED:long_name = "BROILED" ;
-		BROILED:history = "From test0" ;
-	byte THE_BULLET(I, J) ;
-		THE_BULLET:long_name = "THE_BULLET" ;
-		THE_BULLET:history = "From test0" ;
-	short ORDER(I, J) ;
-		ORDER:long_name = "ORDER" ;
-		ORDER:history = "From test0" ;
-	int RIGUE(I, J) ;
-		RIGUE:long_name = "RIGUE" ;
-		RIGUE:history = "From test0" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- J = 2, 4, 6 ;
-
- I = 10, 20 ;
-
- BROILED =
-  "ind",
-  "ist",
-  "ing",
-  "uis",
-  "hab",
-  "le" ;
-
- THE_BULLET =
-  -127, 0, 127,
-  -128, -1, -127 ;
-
- ORDER =
-  1, 2, 3,
-  4, 5, 6 ;
-
- RIGUE =
-  2, 3, 4,
-  5, 6, 7 ;
-}
-bn_attributes.jnl --- 23 more user-defined vars
-netcdf a {
-variables:
-	double B ;
-		B:missing_value = -1.e+34 ;
-		B:_FillValue = -1.e+34 ;
-		B:long_name = "hello" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- B = 1 ;
-}
-bn_attributes.jnl --- 24 output redefined attr
-netcdf a {
-dimensions:
-	COADSX90_91 = 2 ;
-	COADSY65_66 = 2 ;
-	TCOADS = UNLIMITED ; // (1 currently)
-	bnds = 2 ;
-variables:
-	double COADSX90_91(COADSX90_91) ;
-		COADSX90_91:units = "degrees_east" ;
-		COADSX90_91:modulo = " " ;
-		COADSX90_91:point_spacing = "uneven" ;
-		COADSX90_91:axis = "X" ;
-		COADSX90_91:standard_name = "longitude" ;
-	double COADSY65_66(COADSY65_66) ;
-		COADSY65_66:units = "degrees_north" ;
-		COADSY65_66:point_spacing = "uneven" ;
-		COADSY65_66:axis = "Y" ;
-		COADSY65_66:standard_name = "latitude" ;
-	double TCOADS(TCOADS) ;
-		TCOADS:units = "days since 1700-01-01 00:00:00" ;
-		TCOADS:time_origin = "01-JAN-1700 00:00:00" ;
-		TCOADS:axis = "T" ;
-		TCOADS:standard_name = "time" ;
-		TCOADS:bounds = "TCOADS_bnds" ;
-	double TCOADS_bnds(TCOADS, bnds) ;
-	float VWND(TCOADS, COADSY65_66, COADSX90_91) ;
-		VWND:missing_value = -1.e+34f ;
-		VWND:_FillValue = -1.e+34f ;
-		VWND:long_name = "MERIDIONAL WIND" ;
-		VWND:history = "From coads_vwnd" ;
-		VWND:units = "M/S" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- COADSX90_91 = 199, 201 ;
-
- COADSY65_66 = 39, 41 ;
-
- TCOADS = 89864.5 ;
-
- TCOADS_bnds =
-  89849, 89880 ;
-
- VWND =
-  _, _,
-  _, _ ;
-}
-bn_attributes.jnl --- 25 output new attr on user-defined var
-netcdf a {
-dimensions:
-	COADSX90_91 = 2 ;
-	COADSY65_66 = 2 ;
-	TCOADS = UNLIMITED ; // (1 currently)
-	bnds = 2 ;
-variables:
-	double COADSX90_91(COADSX90_91) ;
-		COADSX90_91:units = "degrees_east" ;
-		COADSX90_91:modulo = " " ;
-		COADSX90_91:point_spacing = "uneven" ;
-		COADSX90_91:axis = "X" ;
-		COADSX90_91:standard_name = "longitude" ;
-	double COADSY65_66(COADSY65_66) ;
-		COADSY65_66:units = "degrees_north" ;
-		COADSY65_66:point_spacing = "uneven" ;
-		COADSY65_66:new_att = "somthing" ;
-		COADSY65_66:axis = "Y" ;
-		COADSY65_66:standard_name = "latitude" ;
-	double TCOADS(TCOADS) ;
-		TCOADS:units = "days since 1700-01-01 00:00:00" ;
-		TCOADS:time_origin = "01-JAN-1700 00:00:00" ;
-		TCOADS:axis = "T" ;
-		TCOADS:standard_name = "time" ;
-		TCOADS:bounds = "TCOADS_bnds" ;
-	double TCOADS_bnds(TCOADS, bnds) ;
-	double T2(TCOADS, COADSY65_66, COADSX90_91) ;
-		T2:missing_value = -1.e+34 ;
-		T2:_FillValue = -1.e+34 ;
-		T2:long_name = "2*VWND" ;
-		T2:history = "From coads_vwnd" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- COADSX90_91 = 199, 201 ;
-
- COADSY65_66 = 39, 41 ;
-
- TCOADS = 89864.5 ;
-
- TCOADS_bnds =
-  89849, 89880 ;
-
- T2 =
-  _, _,
-  _, _ ;
-}
-bn_attributes.jnl --- 26 attributes of axes
-netcdf a {
-dimensions:
-	PSXT191_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 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 TIME11(TIME11) ;
-		TIME11:units = "hour since 1980-01-14 14:00:00" ;
-		TIME11:time_origin = "14-JAN-1980 14:00:00" ;
-		TIME11:axis = "T" ;
-		TIME11:standard_name = "time" ;
-	double T2(TIME11, PSZT11_10, PSYT135_56, PSXT191_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.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-}
-netcdf a {
-dimensions:
-	PSXT191_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 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 TIME11(TIME11) ;
-		TIME11:units = "hour since 1980-01-14 14:00:00" ;
-		TIME11:time_origin = "14-JAN-1980 14:00:00" ;
-		TIME11:axis = "T" ;
-		TIME11:standard_name = "time" ;
-	double T2(TIME11, PSZT11_10, PSYT135_56, PSXT191_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.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-}
-netcdf a {
-dimensions:
-	PSXT191_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 PSYT135_56(PSYT135_56) ;
-		PSYT135_56:units = "meters" ;
-		PSYT135_56:point_spacing = "uneven" ;
-		PSYT135_56:axis = "Y" ;
-		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 TIME11(TIME11) ;
-		TIME11:units = "hour since 1980-01-14 14:00:00" ;
-		TIME11:time_origin = "14-JAN-1980 14:00:00" ;
-		TIME11:axis = "T" ;
-		TIME11:standard_name = "time" ;
-	double T2(TIME11, PSZT11_10, PSYT135_56, PSXT191_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.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-}
-netcdf a {
-dimensions:
-	XAXLEVITR1_160 = 160 ;
-	YAXLEVITR1_9090_90 = 1 ;
-	ZAXLEVITR1_1 = 1 ;
-variables:
-	double XAXLEVITR1_160(XAXLEVITR1_160) ;
-		XAXLEVITR1_160:units = "degrees_east" ;
-		XAXLEVITR1_160:modulo = " " ;
-		XAXLEVITR1_160:point_spacing = "even" ;
-		XAXLEVITR1_160:new_att = "something" ;
-		XAXLEVITR1_160:axis = "X" ;
-		XAXLEVITR1_160:standard_name = "longitude" ;
-	double YAXLEVITR1_9090_90(YAXLEVITR1_9090_90) ;
-		YAXLEVITR1_9090_90:units = "degrees_north" ;
-		YAXLEVITR1_9090_90:point_spacing = "even" ;
-		YAXLEVITR1_9090_90:axis = "Y" ;
-		YAXLEVITR1_9090_90:standard_name = "latitude" ;
-	double ZAXLEVITR1_1(ZAXLEVITR1_1) ;
-		ZAXLEVITR1_1:units = "meters" ;
-		ZAXLEVITR1_1:positive = "down" ;
-		ZAXLEVITR1_1:point_spacing = "even" ;
-		ZAXLEVITR1_1:axis = "Z" ;
-		ZAXLEVITR1_1:standard_name = "depth" ;
-	float TEMP(ZAXLEVITR1_1, YAXLEVITR1_9090_90, XAXLEVITR1_160) ;
-		TEMP:missing_value = -1.e+10f ;
-		TEMP:_FillValue = -1.e+10f ;
-		TEMP:long_name = "TEMPERATURE" ;
-		TEMP:history = "From levitus_climatology" ;
-		TEMP:units = "DEG C" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-}
-netcdf a {
-dimensions:
-	XAXLEVITR1_160161_161 = 1 ;
-	YAXLEVITR1_9090_90 = 1 ;
-	ZAXLEVITR1_1 = 1 ;
-variables:
-	double XAXLEVITR1_160161_161(XAXLEVITR1_160161_161) ;
-		XAXLEVITR1_160161_161:units = "degrees_east" ;
-		XAXLEVITR1_160161_161:modulo = " " ;
-		XAXLEVITR1_160161_161:point_spacing = "even" ;
-		XAXLEVITR1_160161_161:new_att = "something" ;
-		XAXLEVITR1_160161_161:axis = "X" ;
-		XAXLEVITR1_160161_161:standard_name = "longitude" ;
-	double YAXLEVITR1_9090_90(YAXLEVITR1_9090_90) ;
-		YAXLEVITR1_9090_90:units = "degrees_north" ;
-		YAXLEVITR1_9090_90:point_spacing = "even" ;
-		YAXLEVITR1_9090_90:axis = "Y" ;
-		YAXLEVITR1_9090_90:standard_name = "latitude" ;
-	double ZAXLEVITR1_1(ZAXLEVITR1_1) ;
-		ZAXLEVITR1_1:units = "meters" ;
-		ZAXLEVITR1_1:positive = "down" ;
-		ZAXLEVITR1_1:point_spacing = "even" ;
-		ZAXLEVITR1_1:axis = "Z" ;
-		ZAXLEVITR1_1:standard_name = "depth" ;
-	double TWO(ZAXLEVITR1_1, YAXLEVITR1_9090_90, XAXLEVITR1_160161_161) ;
-		TWO:missing_value = -1.e+34 ;
-		TWO:_FillValue = -1.e+34 ;
-		TWO:long_name = "2*TEMP[Y=0:15,X=180:200]" ;
-		TWO:history = "From levitus_climatology" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-}
-bn_attributes.jnl --- 27 attributes of  user-defined axes
-netcdf string4d {
-dimensions:
-	X2AX = 2 ;
-	Y3AX = 3 ;
-	Z4AX = 4 ;
-	T2AX = UNLIMITED ; // (2 currently)
-	STRING1_5 = 5 ;
-variables:
-	double X2AX(X2AX) ;
-		X2AX:point_spacing = "even" ;
-		X2AX:axis = "X" ;
-		X2AX:modulo = " " ;
-	double Y3AX(Y3AX) ;
-		Y3AX:point_spacing = "even" ;
-		Y3AX:axis = "Y" ;
-	double Z4AX(Z4AX) ;
-		Z4AX:point_spacing = "even" ;
-		Z4AX:axis = "Z" ;
-		Z4AX:positive = "up" ;
-		Z4AX:standard_name = "altitude" ;
-	double T2AX(T2AX) ;
-		T2AX:axis = "T" ;
-	char AXY(T2AX, Z4AX, Y3AX, X2AX, STRING1_5) ;
-		AXY:long_name = "RESHAPE (A,RVAR)" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-}
-bn_attributes.jnl --- 28 Define a new global attribute
-bn_attributes.jnl --- 29 SET ATT/OUTPUT=all for global attrs and a var
-netcdf a {
-dimensions:
-	J = 3 ;
-	I = 2 ;
-	l = 3 ;
-variables:
-	float J(J) ;
-		J:point_spacing = "even" ;
-		J:axis = "X" ;
-	int I(I) ;
-		I:point_spacing = "even" ;
-		I:axis = "Y" ;
-	char BROILED(I, J, l) ;
-		BROILED:act = "text string\n",
-			"\t123" ;
-		BROILED:acb = 10b ;
-		BROILED:acs = -200s ;
-		BROILED:acl = 17000 ;
-		BROILED:acf = -2.f, 1.f, 0.f ;
-		BROILED:acd = -1., 2.71828182845905 ;
-		BROILED:long_name = "BROILED" ;
-		BROILED:history = "From test0" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-		:glob = "Global attribute" ;
-		:FERRET_comment = "File written via LAS. Attributes are inherited from originating dataset" ;
-data:
-
- J = 2, 4, 6 ;
-
- I = 10, 20 ;
-
- BROILED =
-  "ind",
-  "ist",
-  "ing",
-  "uis",
-  "hab",
-  "le" ;
-}
-bn_attributes.jnl --- 29 SET VAR/OUTTYPE for user variable
-netcdf a {
-dimensions:
-	PSXT191_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 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 TIME11(TIME11) ;
-		TIME11:units = "hour since 1980-01-14 14:00:00" ;
-		TIME11:time_origin = "14-JAN-1980 14:00:00" ;
-		TIME11:axis = "T" ;
-		TIME11:standard_name = "time" ;
-	double FAREN(TIME11, PSZT11_10, PSYT135_56, PSXT191_108) ;
-		FAREN:missing_value = -1.e+34 ;
-		FAREN:_FillValue = -1.e+34 ;
-		FAREN:long_name = "TEMP*9/5 + 32" ;
-		FAREN:units = "Deg F" ;
-		FAREN:history = "From gt4d011" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-}
-netcdf a {
-dimensions:
-	PSXT191_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 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 TIME11(TIME11) ;
-		TIME11:units = "hour since 1980-01-14 14:00:00" ;
-		TIME11:time_origin = "14-JAN-1980 14:00:00" ;
-		TIME11:axis = "T" ;
-		TIME11:standard_name = "time" ;
-	int FAREN(TIME11, PSZT11_10, PSYT135_56, PSXT191_108) ;
-		FAREN:missing_value = -999 ;
-		FAREN:_FillValue = -999 ;
-		FAREN:long_name = "TEMP*9/5 + 32" ;
-		FAREN:units = "Deg F" ;
-		FAREN:history = "From gt4d011" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-}
-netcdf a {
-dimensions:
-	XAX = 4 ;
-	bnds = 2 ;
-variables:
-	double XAX(XAX) ;
-		XAX:point_spacing = "uneven" ;
-		XAX:axis = "X" ;
-		XAX:bounds = "XAX_bnds" ;
-	double XAX_bnds(XAX, bnds) ;
-	double A(XAX) ;
-		A:missing_value = -1.e+34 ;
-		A:_FillValue = -1.e+34 ;
-		A:long_name = "X[GX=XAX]" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- XAX = 1.5, 3, 6, 8.5 ;
-
- XAX_bnds =
-  1, 2,
-  2, 4,
-  4, 8,
-  8, 9 ;
-
- A = 1.5, 3, 6, 8.5 ;
-}
-netcdf a {
-dimensions:
-	XAX = 4 ;
-	bnds = 2 ;
-variables:
-	double XAX(XAX) ;
-		XAX:point_spacing = "uneven" ;
-		XAX:axis = "X" ;
-		XAX:bounds = "XAX_bnds" ;
-	double XAX_bnds(XAX, bnds) ;
-	double A(XAX) ;
-		A:missing_value = -1.e+34 ;
-		A:_FillValue = -1.e+34 ;
-		A:long_name = "X[GX=XAX]" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- XAX = 1.5, 3, 6, 8.5 ;
-
- XAX_bnds =
-  1, 2,
-  2, 4,
-  4, 8,
-  8, 9 ;
-
- A = 1.5, 3, 6, 8.5 ;
-}
-netcdf a {
-dimensions:
-	XAX = 4 ;
-	bnds = 2 ;
-variables:
-	double XAX(XAX) ;
-		XAX:point_spacing = "uneven" ;
-		XAX:axis = "X" ;
-		XAX:bounds = "XAX_bnds" ;
-	double XAX_bnds(XAX, bnds) ;
-	double A(XAX) ;
-		A:missing_value = -1.e+34 ;
-		A:_FillValue = -1.e+34 ;
-		A:long_name = "X[GX=XAX]" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- XAX = 1.5, 3, 6, 8.5 ;
-
- XAX_bnds =
-  1, 2,
-  2, 4,
-  4, 8,
-  8, 9 ;
-
- A = 1.5, 3, 6, 8.5 ;
-}
-netcdf a {
-dimensions:
-	XAX_LEV9421_380 = 360 ;
-	YAX_LEV9450_50 = 1 ;
-	ZAXLEVIT191_1 = 1 ;
-	TIME3 = UNLIMITED ; // (1 currently)
-variables:
-	double XAX_LEV9421_380(XAX_LEV9421_380) ;
-		XAX_LEV9421_380:units = "degrees_east" ;
-		XAX_LEV9421_380:modulo = " " ;
-		XAX_LEV9421_380:point_spacing = "even" ;
-		XAX_LEV9421_380:long_name = "Here is a long name for the x axis of TEMP" ;
-		XAX_LEV9421_380:axis = "X" ;
-		XAX_LEV9421_380:standard_name = "longitude" ;
-	double YAX_LEV9450_50(YAX_LEV9450_50) ;
-		YAX_LEV9450_50:units = "degrees_north" ;
-		YAX_LEV9450_50:point_spacing = "even" ;
-		YAX_LEV9450_50:axis = "Y" ;
-		YAX_LEV9450_50:standard_name = "latitude" ;
-	double ZAXLEVIT191_1(ZAXLEVIT191_1) ;
-		ZAXLEVIT191_1:units = "meters" ;
-		ZAXLEVIT191_1:positive = "down" ;
-		ZAXLEVIT191_1:point_spacing = "even" ;
-		ZAXLEVIT191_1:axis = "Z" ;
-		ZAXLEVIT191_1:standard_name = "depth" ;
-	double TIME3(TIME3) ;
-		TIME3:units = "hour since 0000-01-01 00:00:00" ;
-		TIME3:time_origin = "01-JAN-0000 00:00:00" ;
-		TIME3:modulo = " " ;
-		TIME3:axis = "T" ;
-		TIME3:standard_name = "time" ;
-	float TEMP(TIME3, ZAXLEVIT191_1, YAX_LEV9450_50, XAX_LEV9421_380) ;
-		TEMP:missing_value = -1.e+34f ;
-		TEMP:_FillValue = -1.e+34f ;
-		TEMP:long_name = "Temperature" ;
-		TEMP:history = "From ocean_atlas_monthly" ;
-		TEMP:units = "Deg C" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-}
-netcdf a {
-dimensions:
-	XAX_LEV9421_3801_12 = 12 ;
-	YAX_LEV9450_50 = 1 ;
-	ZAXLEVIT191_1 = 1 ;
-	TIME3 = UNLIMITED ; // (1 currently)
-variables:
-	double XAX_LEV9421_3801_12(XAX_LEV9421_3801_12) ;
-		XAX_LEV9421_3801_12:units = "degrees_east" ;
-		XAX_LEV9421_3801_12:modulo = " " ;
-		XAX_LEV9421_3801_12:point_spacing = "even" ;
-		XAX_LEV9421_3801_12:long_name = "Here is a long name for the x axis of TEMP" ;
-		XAX_LEV9421_3801_12:axis = "X" ;
-		XAX_LEV9421_3801_12:standard_name = "longitude" ;
-	double YAX_LEV9450_50(YAX_LEV9450_50) ;
-		YAX_LEV9450_50:units = "degrees_north" ;
-		YAX_LEV9450_50:point_spacing = "even" ;
-		YAX_LEV9450_50:axis = "Y" ;
-		YAX_LEV9450_50:standard_name = "latitude" ;
-	double ZAXLEVIT191_1(ZAXLEVIT191_1) ;
-		ZAXLEVIT191_1:units = "meters" ;
-		ZAXLEVIT191_1:positive = "down" ;
-		ZAXLEVIT191_1:point_spacing = "even" ;
-		ZAXLEVIT191_1:axis = "Z" ;
-		ZAXLEVIT191_1:standard_name = "depth" ;
-	double TIME3(TIME3) ;
-		TIME3:units = "hour since 0000-01-01 00:00:00" ;
-		TIME3:time_origin = "01-JAN-0000 00:00:00" ;
-		TIME3:modulo = " " ;
-		TIME3:axis = "T" ;
-		TIME3:standard_name = "time" ;
-	float TEMP(TIME3, ZAXLEVIT191_1, YAX_LEV9450_50, XAX_LEV9421_3801_12) ;
-		TEMP:missing_value = -1.e+34f ;
-		TEMP:_FillValue = -1.e+34f ;
-		TEMP:long_name = "Temperature" ;
-		TEMP:history = "From ocean_atlas_monthly" ;
-		TEMP:units = "Deg C" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-}
-netcdf a {
-dimensions:
-	YAXIS = 61 ;
-variables:
-	double YAXIS(YAXIS) ;
-		YAXIS:units = "degrees_north" ;
-		YAXIS:point_spacing = "even" ;
-		YAXIS:axis = "Y" ;
-		YAXIS:standard_name = "latitude" ;
-	double V(YAXIS) ;
-		V:missing_value = -1.e+34 ;
-		V:_FillValue = -1.e+34 ;
-		V:long_name = "Y[GY=YAXIS]" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-}
-err611_set_var_ez.jnl --- 
-netcdf a {
-dimensions:
-	AX138 = 3 ;
-variables:
-	double AX138(AX138) ;
-		AX138:point_spacing = "even" ;
-		AX138:axis = "X" ;
-	float MY_ASC(AX138) ;
-		MY_ASC:missing_value = 3.f ;
-		MY_ASC:_FillValue = 3.f ;
-		MY_ASC:long_name = "chlorophyll" ;
-		MY_ASC:units = "micrograms/L" ;
-		MY_ASC:history = "From dat.dat" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-}
-netcdf a {
-dimensions:
-	AX138 = 3 ;
-variables:
-	double AX138(AX138) ;
-		AX138:point_spacing = "even" ;
-		AX138:axis = "X" ;
-	float MY_UNF(AX138) ;
-		MY_UNF:missing_value = 5.f ;
-		MY_UNF:_FillValue = 5.f ;
-		MY_UNF:long_name = "Some Unformatted input" ;
-		MY_UNF:units = "metres" ;
-		MY_UNF:history = "From unf.dat" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-}
-bn_attributes.jnl --- SET VAR/OUTTYPE for user variable
-netcdf a {
-dimensions:
-	XAX1_3 = 3 ;
-variables:
-	double XAX1_3(XAX1_3) ;
-		XAX1_3:point_spacing = "even" ;
-		XAX1_3:axis = "X" ;
-	double A(XAX1_3) ;
-		A:missing_value = -1.e+34 ;
-		A:_FillValue = -1.e+34 ;
-		A:long_name = "{1.1,2.2,3.3}" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- XAX1_3 = 1, 2, 3 ;
-
- A = 1.1, 2.2, 3.3 ;
-}
-netcdf a {
-dimensions:
-	XAX1_12 = 12 ;
-variables:
-	double XAX1_12(XAX1_12) ;
-		XAX1_12:point_spacing = "even" ;
-		XAX1_12:axis = "X" ;
-	int A(XAX1_12) ;
-		A:missing_value = 999 ;
-		A:_FillValue = 999 ;
-		A:long_name = "{ 3.77, 4.00, 4.10, 4.33, 4.38, 4.27, 4.31, 4.40, 4.75, 5.01, 5.27, 5.52}" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- XAX1_12 = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ;
-
- A = 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5 ;
-}
-netcdf a {
-dimensions:
-	XAX1_10 = 10 ;
-	tday = UNLIMITED ; // (31 currently)
-	lon1_5 = 5 ;
-	lat1_5 = 5 ;
-	bnds = 2 ;
-	zt = 10 ;
-	time1478 = 3 ;
-variables:
-	double XAX1_10(XAX1_10) ;
-		XAX1_10:point_spacing = "even" ;
-		XAX1_10:axis = "X" ;
-	double tday(tday) ;
-		tday:units = "days since 1998-12-31 00:00:00" ;
-		tday:axis = "T" ;
-		tday:calendar = "GREGORIAN" ;
-		tday:time_origin = "31-DEC-1998" ;
-		tday:standard_name = "time" ;
-	double MyUpperLowerCaseVar(tday, XAX1_10) ;
-		MyUpperLowerCaseVar:missing_value = -1.e+34 ;
-		MyUpperLowerCaseVar:_FillValue = -1.e+34 ;
-		MyUpperLowerCaseVar:long_name = "X[X=1:10] + T[GT=TDAY]" ;
-	double lon1_5(lon1_5) ;
-		lon1_5:point_spacing = "even" ;
-		lon1_5:axis = "X" ;
-		lon1_5:standard_name = "longitude" ;
-	double lat1_5(lat1_5) ;
-		lat1_5:point_spacing = "uneven" ;
-		lat1_5:axis = "Y" ;
-		lat1_5:standard_name = "latitude" ;
-		lat1_5:bounds = "lat1_5_bnds" ;
-	double lat1_5_bnds(lat1_5, bnds) ;
-	float zt(zt) ;
-		zt:long_name = "zt" ;
-		zt:units = "meters" ;
-		zt:positive = "down" ;
-		zt:point_spacing = "uneven" ;
-		zt:axis = "Z" ;
-		zt:standard_name = "depth" ;
-		zt:bounds = "zt_bnds" ;
-	float zt_bnds(zt, bnds) ;
-	double time1478(time1478) ;
-		time1478:calendar = "NOLEAP" ;
-		time1478:axis = "T" ;
-		time1478:point_spacing = "even" ;
-		time1478:standard_name = "time" ;
-	double newvar(time1478, zt, lat1_5, lon1_5) ;
-		newvar:missing_value = -999. ;
-		newvar:_FillValue = -999. ;
-		newvar:long_name = "outgoing longwave radiation" ;
-		newvar:units = "watts/m2" ;
-		newvar:history = "From a" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-}
-bn_keep_axisnames.jnl --- test SAVE/KEEP_AXISNAMES
-netcdf a {
-dimensions:
-	X100 = 11 ;
-	T31 = UNLIMITED ; // (14 currently)
-variables:
-	double X100(X100) ;
-		X100:units = "degrees_east" ;
-		X100:point_spacing = "even" ;
-		X100:axis = "X" ;
-		X100:modulo = 360. ;
-		X100:standard_name = "longitude" ;
-	double T31(T31) ;
-		T31:units = "days since 1999-12-31 00:00:00" ;
-		T31:axis = "T" ;
-		T31:calendar = "GREGORIAN" ;
-		T31:time_origin = "31-DEC-1999" ;
-		T31:standard_name = "time" ;
-	double A(T31, X100) ;
-		A:missing_value = -1.e+34 ;
-		A:_FillValue = -1.e+34 ;
-		A:long_name = "X[GX=X100] + T[GT=T31]" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-}
-bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES
-netcdf a {
-dimensions:
-	X10030_40 = 11 ;
-	T31 = UNLIMITED ; // (14 currently)
-variables:
-	double X10030_40(X10030_40) ;
-		X10030_40:units = "degrees_east" ;
-		X10030_40:point_spacing = "even" ;
-		X10030_40:axis = "X" ;
-		X10030_40:modulo = 360. ;
-		X10030_40:standard_name = "longitude" ;
-	double T31(T31) ;
-		T31:units = "days since 1999-12-31 00:00:00" ;
-		T31:axis = "T" ;
-		T31:calendar = "GREGORIAN" ;
-		T31:time_origin = "31-DEC-1999" ;
-		T31:standard_name = "time" ;
-	double A(T31, X10030_40) ;
-		A:missing_value = -1.e+34 ;
-		A:_FillValue = -1.e+34 ;
-		A:long_name = "X[GX=X100] + T[GT=T31]" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-}
-bn_axis_cf.jnl, degrees_east, degrees_north, std names on axes:
-netcdf a {
-dimensions:
-	XAX = 11 ;
-	YAX = 6 ;
-	TAXIS = UNLIMITED ; // (5 currently)
-	ZAXDN = 4 ;
-	bnds = 2 ;
-	ZAXUP = 5 ;
-variables:
-	double XAX(XAX) ;
-		XAX:point_spacing = "even" ;
-		XAX:axis = "X" ;
-		XAX:units = "deg" ;
-		XAX:modulo = 360. ;
-		XAX:standard_name = "longitude" ;
-	double XX(XAX) ;
-		XX:missing_value = -1.e+34 ;
-		XX:_FillValue = -1.e+34 ;
-		XX:long_name = "X[GX=XAX]" ;
-	double YAX(YAX) ;
-		YAX:point_spacing = "even" ;
-		YAX:axis = "Y" ;
-		YAX:units = "degrees" ;
-		YAX:standard_name = "latitude" ;
-	double YY(YAX) ;
-		YY:missing_value = -1.e+34 ;
-		YY:_FillValue = -1.e+34 ;
-		YY:long_name = "Y[GY=YAX]" ;
-	double TAXIS(TAXIS) ;
-		TAXIS:units = "days since 2000-01-01 00:00:00" ;
-		TAXIS:axis = "T" ;
-		TAXIS:time_origin = "1-JAN-2000" ;
-		TAXIS:standard_name = "time" ;
-	double TT(TAXIS) ;
-		TT:missing_value = -1.e+34 ;
-		TT:_FillValue = -1.e+34 ;
-		TT:long_name = "T[GT=TAXIS]" ;
-	double ZAXDN(ZAXDN) ;
-		ZAXDN:units = "meters" ;
-		ZAXDN:point_spacing = "uneven" ;
-		ZAXDN:axis = "Z" ;
-		ZAXDN:bounds = "ZAXDN_bnds" ;
-		ZAXDN:positive = "down" ;
-		ZAXDN:standard_name = "depth" ;
-	double ZAXDN_bnds(ZAXDN, bnds) ;
-	double ZDN(ZAXDN) ;
-		ZDN:missing_value = -1.e+34 ;
-		ZDN:_FillValue = -1.e+34 ;
-		ZDN:long_name = "Z[GZ=ZAXDN]" ;
-	double ZAXUP(ZAXUP) ;
-		ZAXUP:units = "meters" ;
-		ZAXUP:point_spacing = "uneven" ;
-		ZAXUP:axis = "Z" ;
-		ZAXUP:bounds = "ZAXUP_bnds" ;
-		ZAXUP:standard_name = "altitude" ;
-	double ZAXUP_bnds(ZAXUP, bnds) ;
-	double ZUP(ZAXUP) ;
-		ZUP:missing_value = -1.e+34 ;
-		ZUP:_FillValue = -1.e+34 ;
-		ZUP:long_name = "Z[GZ=ZAXUP]" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-}
-bn_axis_cf.jnl, Convert forms of DEG, degrees to degrees_east:
-netcdf a {
-dimensions:
-	XAXIS = 31 ;
-	YFIFTEEN = 13 ;
-variables:
-	double XAXIS(XAXIS) ;
-		XAXIS:units = "degrees_east" ;
-		XAXIS:point_spacing = "even" ;
-		XAXIS:axis = "X" ;
-		XAXIS:modulo = 360. ;
-		XAXIS:standard_name = "longitude" ;
-	float VAR(XAXIS) ;
-		VAR:missing_value = -1.e+34f ;
-		VAR:_FillValue = -1.e+34f ;
-		VAR:long_name = "X[GX=XAXIS]" ;
-		VAR:history = "From degrees" ;
-	double YFIFTEEN(YFIFTEEN) ;
-		YFIFTEEN:units = "degrees_north" ;
-		YFIFTEEN:point_spacing = "even" ;
-		YFIFTEEN:axis = "Y" ;
-		YFIFTEEN:standard_name = "latitude" ;
-	double Y_(YFIFTEEN) ;
-		Y_:missing_value = -1.e+34 ;
-		Y_:_FillValue = -1.e+34 ;
-		Y_:long_name = "Y" ;
-		Y_:long_name_mod = "axis YFIFTEEN" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-}
-bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since
-netcdf a {
-dimensions:
-	XLON = 40 ;
-	YLAT = 30 ;
-	TTIME = UNLIMITED ; // (20 currently)
-variables:
-	double XLON(XLON) ;
-		XLON:units = "degrees_east" ;
-		XLON:point_spacing = "even" ;
-		XLON:modulo = 360. ;
-		XLON:axis = "X" ;
-		XLON:standard_name = "longitude" ;
-	double YLAT(YLAT) ;
-		YLAT:units = "degrees_north" ;
-		YLAT:point_spacing = "even" ;
-		YLAT:axis = "Y" ;
-		YLAT:standard_name = "latitude" ;
-	double TTIME(TTIME) ;
-		TTIME:units = "days since 1901-01-15 00:00:00" ;
-		TTIME:time_origin = "15-JAN-1901 00:00:00" ;
-		TTIME:axis = "T" ;
-		TTIME:standard_name = "time" ;
-	float XYTVAR(TTIME, YLAT, XLON) ;
-		XYTVAR:missing_value = -1.e+34f ;
-		XYTVAR:_FillValue = -1.e+34f ;
-		XYTVAR:long_name = "L*1000 + J*10 + I" ;
-		XYTVAR:history = "From bn_strides" ;
-
-// global attributes:
-		:history = "FERRET V6.925    7-Oct-14" ;
-		:Conventions = "CF-1.6" ;
-}
------
-end of ncdump output
- 
-yes? ! this "shell" is used because the Unix redirection fails to echo commands
-yes? ! from the top level command file
-yes? ! ... havn't explored the reason ... they echo fine to the screen
-yes? ! *kob* 3/04/98 - newly created - copied from bn490_all_shell.jnl
-yes? 
-yes? 
-yes? GO bn_startupfile
- 	NOAA/PMEL TMAP
- 	FERRET v6.925  
- 	Linux 2.6.18-371.12.1.el5 64-bit - 10/07/14
- 	 7-Oct-14 10:44     
-
-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.925"
-FERRET_PLATFORM = "Linux 2.6.18-371.12.1.el5 64-bit"
-FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:38:15 $"
-FERRET_MEMORY = "31"
-SESSION_DATE = " 7-Oct-14"
-SESSION_TIME = "10:44"
-SESSION_PID = "14783"
-DELTA_CPU = "0.031994"
-CLOCK_SECS = "0.316"
-CURRENT_DATE = " 7-Oct-14"
-CURRENT_TIME = "10:44:12"
-N_OPEN_DSETS = "0"
-PROGRAM_NAME = "Ferret"
-LAST_GO_FILE = "./bn_startupfile.jnl"
-PPL$FORMAT = "(3F10.2)"
-PPL$PLTNME = "startup_tests.plt"
-PPL$TEKNME = "/dev/tty"
-PPL$XLEN = "8.000"
-PPL$YLEN = "6.000"
-PPL$XORG = "1.200"
-PPL$YORG = "1.400"
-PPL$WIDTH = "10.20"
-PPL$HEIGHT = "8.800"
-PPL$LINE_COUNT = "0"
-PPL$XFACT1 = "1.000"
-PPL$XOFF1 = "0.000"
-PPL$YFACT1 = "1.000"
-PPL$YOFF1 = "0.000"
-PPL$VIEW_X = "0.000"
-PPL$VIEW_Y = "0.000"
-PPL$VIEW_Z = "0.000"
-PPL$COMMAND_FILE = "$$MEMBUF$$"
-WIN_TITLE = "7-Oct-14:10:44"
-VP_WIDTH = "10.2"
-VP_HEIGHT = "8.8"
-VP_SCALE = "1"
-VP_RT_MARGIN = "1"
-VP_TOP_MARGIN = "1.4"
-VP_XLO = "0"
-VP_XHI = "1"
-VP_YLO = "0"
-VP_YHI = "1"
-GO_FILE = "./bn_startupfile.jnl"
-      MODE            STATE        ARGUMENT
-      DIAGNOSTIC    CANCELLED           99
-      VERIFY        CANCELLED      DEFAULT
-      INTERPOLATE   CANCELLED
-      IGNORE_ERROR  CANCELLED
-      STUPID        CANCELLED
-      JOURNAL          SET         startup_tests.jnl
-      LONG_LABEL       SET               1
-      LATIT_LABEL   CANCELLED            1
-      DEPTH_LABEL      SET              -4
-      CALENDAR         SET         minutes
-      6D_LAB           SET
-      ASCII_FONT       SET
-      SEGMENT          SET
-      WAIT          CANCELLED
-      DESPERATE     CANCELLED      3100000
-      GKS              SET
-      REFRESH          SET
-      METAFILE         SET         startup_tests.plt
-      PPLLIST       CANCELLED      ppllist.out
-      GUI           CANCELLED
-      LOGO             SET
-      LABELS           SET
-      GRATICULE        SET
-      LINECOLORS       SET               7
-      UPCASE_OUTPU     SET
-      NLEVELS          SET             100
-      NODATA_LAB       SET
-      SHRINK_YLAB   CANCELLED
-      CURVILINEAR   CANCELLED
-      SIGMA         CANCELLED
-     currently SET data sets:
-    1> ./gtbc011.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
- 
-yes? ! this "shell" is used because the Unix redirection fails to echo commands
-yes? ! from the top level command file
-yes? ! ... havn't explored the reason ... they echo fine to the screen
-yes? ! *kob* 3/04/98 - newly created - copied from bn490_all_shell.jnl
-yes? 
-yes? 
-yes? GO bn_gif
- 	NOAA/PMEL TMAP
- 	FERRET v6.925  
- 	Linux 2.6.18-371.12.1.el5 64-bit - 10/07/14
- 	 7-Oct-14 10:44     
-
-! 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*
- 
-! 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
+! so did this
+frame/file=a.png
  
- 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.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.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.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
- 
-exit/command
-yes? ! this "shell" is used because the Unix redirection fails to echo commands
-yes? ! from the top level command file
-yes? ! ... havn't explored the reason ... they echo fine to the screen
-yes? ! *kob* 3/04/98 - newly created - copied from bn490_all_shell.jnl
-yes? 
-yes? 
-yes? GO bn_ps
- 	NOAA/PMEL TMAP
- 	FERRET v6.925  
- 	Linux 2.6.18-371.12.1.el5 64-bit - 10/07/14
- 	 7-Oct-14 10:44     
-
-! 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*
- 
-! 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= bnplot.ps                                                                                                                                                                                                                                                                                                                                                                                                                                                                                [...]
- 
-! 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
- 
-set mode ignore
-frame/file=bnplot.ps    ! DELIBERATE ERROR MESSAGE
-can mode ignore
-exit/command
-yes? ! this "shell" is used because the Unix redirection fails to echo commands
-yes? ! from the top level command file
-yes? ! ... havn't explored the reason ... they echo fine to the screen
-yes? ! *kob* 3/04/98 - newly created - copied from bn490_all_shell.jnl
-yes? 
-yes? 
-yes? GO bn_batch_metafile
- 	NOAA/PMEL TMAP
- 	FERRET v6.925  
- 	Linux 2.6.18-371.12.1.el5 64-bit - 10/07/14
- 	 7-Oct-14 10:44     
-
-! bn_batch_metafile.jnl
-! Run at the end of the benchmark scripts, starting ferret with the flags
-!   -batch bat.plt
-! Produces nine metafiles.
- 
-cancel mode logo
- 
-! test viewports and set window/clear; cancel viewport
-set view upper
-plot/i=1:150 sin(i/12)
-set view lower
-plot/color=red/i=1:150 cos(i/10)
- 
-set window/clear
- 
-set view left
-shade/i=1:15/j=1:15/lev=30 i*j
-set view right
-shade/i=1:15/j=1:15 cos(i)* sin(j)
- 
-cancel viewports
- 
-set view ur
-plot/i=1:12 1./i
-set view ll
-shade/i=1:150/j=1:150 cos(i/10) - sin(j/12)
- 
-! polygon command and palette
- 
-cancel viewports
-polygon/thick/color=red/palette=blue/axes=1,0,1,0 {1,2,1}, {2,1,0.5}
- 
-! more viewports, with pplus/reset
- 
-set view upper; shade/i=1:10/j=1:10 i*j
-cancel viewports
-pplus/reset
- 
-! cancel viewports when viewport wasnt set
-! and set window/clear after cancel viewports
- 
-plot/vs/line/i=1:314 i*cos(i/20),i*sin(i/20)
-plot/vs/line/over/i=1:314 i*cos(i/30),i*sin(i/20)
- 
-cancel viewports
-set window/clear
- 
-! aspect ratio can be set
- 
-set window/asp=3
-shade/i=1:15/j=1:15/lev=20 i*j
- 
-set win/asp=1
-fill/i=1:15/j=1:15/lev=20 i*j
- 
-pplus/reset
- 
- 
-! Bug 1396 fixed
- 
-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]
-cancel viewports
- 
-! intentional errors and ignored commands
-! set and cancel mode metafile are ignored
- 
-set mode metafile new.plt
- 
-cancel mode metafile
- 
-plot/i=1:12/title="after cancel mode metafile in batch mode" 1./i
- 
-! set window commands are ignored, except for set window/aspect
-set window/new
- 
-set window/location=0.1,0.1/title="another title"
- 
-set mode/last logo
-exit/command
-Ended at Tue Oct 7 10:44:14 PDT 2014
+! this is (always) ok
+frame/file=a.gif
+frame/format=gif file=a.plot
+FERRET ERRROR*********************************
diff --git a/bench/bn691_bug_fixes.jnl b/bench/bn691_bug_fixes.jnl
index ddeb2e5..a9374ec 100644
--- a/bench/bn691_bug_fixes.jnl
+++ b/bench/bn691_bug_fixes.jnl
@@ -73,3 +73,6 @@ GO err69_vtree_cancel_axis
 
 GO bn_reset
 GO err69_isready_bugs
+
+GO bn_reset
+GO err691_substring_arg
diff --git a/bench/bn694_bug_fixes.jnl b/bench/bn694_bug_fixes.jnl
new file mode 100644
index 0000000..f735007
--- /dev/null
+++ b/bench/bn694_bug_fixes.jnl
@@ -0,0 +1,108 @@
+! bn694_bug_fixes
+! test various fixes that went into version 6.94
+! 11/2014 ACM
+! 12/2014 *sh* added IF-THEN flow fixes, including review of past tickets
+! 1/2015 *sh* added test for undetected bad dataset name in regrid target 
+
+GO bn_reset
+GO err693_upcase_quoted_name
+
+GO bn_reset
+GO err693_isready_hang
+
+GO bn_reset
+GO err693_isready_dyn_grid_crash   ! 12/23/2014
+
+GO bn_reset
+GO err693_attr_in_gcfcn
+
+GO bn_reset
+GO err693_inconsistent_quote
+
+! IF-THEN flow tests
+GO bn_reset
+GO err693_if_then_flow_2214
+
+GO bn_reset
+GO err693_if_then_flow_2211
+
+GO bn_reset
+GO err693_if_then_flow_1860
+
+GO bn_reset
+GO err693_if_then_flow_1446
+
+GO bn_reset
+GO err693_if_then_flow_1681
+
+GO bn_reset
+GO err693_if_then_flow_1706
+
+GO bn_reset
+GO err693_if_then_flow_1368   ! Jan 28, 2010, Ferret version 5.812
+
+GO bn_reset
+GO err693_ribbon_start_missing
+
+GO bn_reset
+GO err691_pt_in_poly
+
+GO bn_reset
+GO err693_undetected_regrid_dset
+
+GO bn_reset
+GO err693_line_over_axis
+
+GO bn_reset
+GO err693_save_packed
+
+GO bn_reset
+GO err693_subspan_trans
+
+GO bn_reset
+GO err693_repeat_err
+
+GO bn_reset
+GO err693_edit_useratt
+
+GO bn_reset
+GO err693_redef_rec_axis
+
+GO bn_reset
+GO err693_frame_types
+
+GO bn_reset
+GO err693_shape
+
+GO bn_reset
+GO err693_ef_axis_precision
+
+GO bn_reset
+GO err693_string_results
+
+GO bn_reset
+GO err693_lev_nv_over
+
+GO bn_reset
+GO err693_fcn_of_attvar
+
+GO bn_reset
+GO err693_isize_and_gcfcn
+
+GO bn_reset
+GO err693_ribbon_scale
+
+GO bn_reset
+GO err693_parse_curly
+
+GO bn_reset
+GO err693_list_missing
+
+GO bn_reset
+GO err693_shf_subscr
+
+GO bn_reset
+GO err693_shift_w_region
+
+GO bn_reset
+GO err693_scalar_grids
diff --git a/bench/bn695_bug_fixes.jnl b/bench/bn695_bug_fixes.jnl
new file mode 100644
index 0000000..082b807
--- /dev/null
+++ b/bench/bn695_bug_fixes.jnl
@@ -0,0 +1,11 @@
+! bn695_bug_fixes
+! test various fixes that went into version 6.95
+
+GO bn_reset
+GO err694_shf_missing
+
+GO bn_reset
+GO err694_longname_showdat
+
+GO bn_reset
+GO err693_std4d
diff --git a/bench/bn696_bug_fixes.jnl b/bench/bn696_bug_fixes.jnl
new file mode 100644
index 0000000..356ed34
--- /dev/null
+++ b/bench/bn696_bug_fixes.jnl
@@ -0,0 +1,8 @@
+! bn696_bug_fixes
+! test various fixes that went into version 6.96
+
+GO bn_reset
+GO err695_bounds_match_axis
+
+GO bn_reset
+GO err695_show_dat_nodata
diff --git a/bench/bn_DQ.jnl b/bench/bn_DQ.jnl
new file mode 100644
index 0000000..c150e33
--- /dev/null
+++ b/bench/bn_DQ.jnl
@@ -0,0 +1,240 @@
+! bn_DQ.jnl  *sh* 2/2015
+! test the use of _DQ_ and _SQ_ in lieu of " and '
+
+let foobar = 1
+let foobar_ = 1
+
+LIST foobar, foobar_
+
+LIST    "foobar"    ! bug fix: pre-V694 used to list the value of foobar
+let a = "foobar"
+list a
+
+list    _DQ_foobar_DQ_
+let a = _DQ_foobar_DQ_
+list a
+
+! ======
+list    "_DQ_foobar_DQ_"
+let a = "_DQ_foobar_DQ_"
+list a
+
+list    _DQ_"foobar"_DQ_
+let a = _DQ_"foobar"_DQ_
+list a
+
+! ======
+list    'FOOBAR'
+let a = 'FOOBAR'
+list a
+
+list    _SQ_FOOBAR_SQ_ 
+let a = _SQ_FOOBAR_SQ_ 
+list a
+
+! ======
+list       "'foobar'"
+let a =    "'foobar'"
+list a
+
+list    _DQ_'foobar'_DQ_
+let a = _DQ_'foobar'_DQ_
+list a
+
+! ======
+list       "_SQ_foobar_SQ_"
+let a =    "_SQ_foobar_SQ_"
+list a
+
+list    _DQ__SQ_foobar_SQ__DQ_
+let a = _DQ__SQ_foobar_SQ__DQ_ 
+list a
+
+! ======
+list    'FOOBAR'    +    'FOOBAR' 
+let a = 'FOOBAR'    +    'FOOBAR' 
+list a
+
+list    _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_  ! should behave like the preceding
+let a = _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_
+list a
+
+! ====== demonstrate hiding all sorts of characters
+let a = _DQ_'"+-/;_SQ_foobar"'_DQ_
+list a
+
+! ======
+say     "hello"
+say  _DQ_hello_DQ_
+
+! ======
+list    {"foobar","foobar"}
+let a = {"foobar","foobar"}
+list a
+
+list    {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+let a = {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+list a
+
+list    {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_} ! DQ used to protect '"'
+let a = {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_}
+list a
+
+! ======
+list    {SPAWN:"ls weird_name1.cdf","foobar"}
+let a = {SPAWN:"ls weird_name1.cdf","foobar"}
+list a
+
+list    {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+let a = {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+list a
+
+list    {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_} ! DQ protects '"'
+let a = {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+list a
+
+! ======
+! in repl_exprns:
+say `"=" EQ "="`
+say `_DQ_=_DQ_ EQ _DQ_=_DQ_`
+say `_DQ_"="_DQ_ EQ _DQ_"="_DQ_`            ! DQ used to protect '"'
+
+! in xeq_if:
+IF 1 THEN SAY "I is too big" ENDIF
+IF 1 THEN SAY _DQ_I is too big_DQ_ ENDIF
+IF 1 THEN SAY _DQ_"I is too big"_DQ_ ENDIF  ! DQ used to protect '"'
+
+! ======
+DEFINE SYMBOL a    "foobar"
+say ($a)
+DEFINE SYMBOL a _DQ_foobar_DQ_
+say ($a)
+
+! ======
+DEFINE SYMBOL a    "(`foobar,return=xaxis`)"
+say ($a)
+DEFINE SYMBOL a _DQ_(`foobar,return=xaxis`)_DQ_
+say ($a)
+
+! ======
+GO bn_DQ.sub _DQ_+-/_SQ_\!foo"bar;_SQ_"_DQ_    "_DQ_+-/_SQ_\!foobar;_SQ_"
+
+! ======  string arguments to functions
+list STRCAT(   "HELL"   ,   "O"   )
+list STRCAT(_DQ_HELL_DQ_,_DQ_O_DQ_)
+
+! ======
+let/title=   "title of A"    a = 1
+list a
+let/title=_DQ_title of A_DQ_ a = 1
+list a
+let/title=_DQ_"title of A"_DQ_ a = 1        ! DQ used to protect '"'
+list a
+
+! ======
+use weird_name1.cdf
+list    'v2-and-minus'[i=4:6]
+list _SQ_v2-and-minus_SQ_[i=4:6]
+list    'v2-and-minus'[i=4:6]
+list _SQ_v2-and-minus_SQ_[i=4:6]
+list    'v2-and-minus'[i=4:6]    / 'X'[i=4:6]  
+list _SQ_v2-and-minus_SQ_[i=4:6] / _SQ_X_SQ_[i=4:6]
+
+! ======
+SET REGION/T=   "1-jan-2001":"15-jan-2001"
+SHOW REGION
+SET REGION/T=_DQ_1-jan-2001_DQ_:_DQ_15-jan-2001_DQ_
+SHOW REGION
+! ==> THE clean_draconian FILTER REMOVES THE FOLLOWING DATE-TIME LINES FROM LOG
+SET REGION/T=   "1-jan-2001:12:00":"15-jan-2001 12:00"
+SHOW REGION
+SET REGION/T=_DQ_1-jan-2001:12:00_DQ_:_DQ_15-jan-2001 12:00_DQ_
+SHOW REGION
+
+! ======
+DEFINE ATTRIBUTE foobar.some_text =    "some text about foobar"
+SHOW ATTRIBUTE/ALL foobar
+DEFINE ATTRIBUTE foobar.some_text = _DQ_some text about foobar_DQ_
+SHOW ATTRIBUTE/ALL foobar
+DEFINE ATTR foobar.some_text = _DQ_"quoted attribute"_DQ_ ! DQ protects '"'
+SHOW ATTRIBUTE/ALL foobar
+
+! ======
+SPAWN    "ls weird_name1.*"
+SPAWN _DQ_ls weird_name1.*_DQ_
+
+! ======
+LET a = {"first.nc", SPAWN:   "ls weird_name1.*"   ,"last.nc"}
+LIST a
+LET a = {"first.nc", SPAWN:_DQ_ls weird_name1.*_DQ_,"last.nc"}
+LIST a
+
+! =========================
+! !!!!!!  TEMPORARY LINE
+! !!!!!!  see bug report err693_xeq_show.jnl
+show data   ! to side step dset=-1 left behind by SHOW ATTRIBUTE previously
+! !!!!!!
+! =========================
+                                                                                ! ======
+define grid/x=_DQ_v1_DQ_ gg
+show grid gg
+
+! ======
+LET/TITLE= _DQ_'A title w/ "sq"'. Ship_Ka'imimoana_DQ_ A = 1 ! ' char for emacs
+LIST A
+
+! ======
+contour/LEVELS=    "(-10,10,2)DARK(-10,10,8)"    \
+               10*SIN(X[x=1:5:.1])*COS(Y[Y=1:5:.1])
+contour/LEVELS= _DQ_(-10,10,2)DARK(-10,10,8)_DQ_ \
+               10*SIN(X[x=1:5:.1])*COS(Y[Y=1:5:.1])
+
+! ====== parse, parsex routines
+!plot/set x[i=1:3]^2
+!ppl title    "'A title w/ single quotes'. Ship Ka'imimoana"
+!ppl plot
+!label 2,5,0 "'A title w/ single quotes'. Ship Ka'imimoana"
+
+plot/set x[i=1:3]^2
+ppl title _DQ_'A title w/ "single quotes"'. Ship_Ka'imimoana_DQ_ ! ' for emacs
+ppl plot 
+label 2,5,0 _DQ_'A title w/ "single quotes"'. Ship_Ka'imimoana_DQ_ ! ' emacs
+ppl %label 2,4,0 _DQ_'A title w/ "single quotes"'. Ship_Ka'imimoana_DQ_ ! ' emacs
+
+! ======  EQUAL_PEMUTE
+list/order=_DQ_yx_DQ_ 10*i[i=1:3] + j[j=1:2]
+
+! ======  EQUAL_COLOR
+plot/color=_DQ_red_DQ_ i[i=1:100]^2
+
+! ======  EQUAL_RANGE
+plot/vlim=-2:2/hlim="1-jan-1980":"15-feb-1980" \
+    SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+plot/vlim=-2:2/hlim=_DQ_1-jan-1980_DQ_:_DQ_15-feb-1980_DQ_ \
+    SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+! ==> THE clean_draconian FILTER REMOVES THE FOLLOWING DATE-TIME LINES FROM LOG
+plot/vlim=-2:2/hlim="1-jan-1980":"15-feb-1980:12:00" \
+    SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+plot/vlim=-2:2/hlim=_DQ_1-jan-1980_DQ_:_DQ_15-feb-1980:12:00_DQ_ \
+    SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+
+! the following usages for _DQ_ and _SQ_ are NOT supported:
+! 1. internal PLOT+ syntax
+!    e.g. PPL XFOR (i5, ''LONW'')
+
+! 2. quote used as a delimiter for symbol substitution
+!    e.g. ($mysymbol"0|red>1|green>2")     ! several single char als.  e.g. "%"
+
+! in xeq_set:  double quotes around SET MODE argument -- _DQ_ not supported
+
+! in put_label: special hack for "'date'" -- _SQ_ not supported
+
+! it isn't clear that there is really a requirement for the _SQ_ syntax at all
+! since we are adding this feature to meet our own needs in LAS, we won't
+! make the extra effort to hit all of the obscure cases.  As a result, the
+! occurrences of IF string .EQ. "'" in these routines will be ignored 
+!   - break_varname
+!   - break_varattname
+!   - inherit_attrs
+
+! in xeq_define.F:  DEFINE AXIS/NAME='my-name' is of unclear purpose
diff --git a/bench/bn_DQ.sub b/bench/bn_DQ.sub
new file mode 100644
index 0000000..ad87f32
--- /dev/null
+++ b/bench/bn_DQ.sub
@@ -0,0 +1,5 @@
+! bn_DQ.sub   arg_with_DQ    arg_with_quotes
+
+SAY _DQ_ "-quotations   ok as in $1%any_arg_with_quotes%_DQ_
+SAY    "_DQ_ delimiters ok as in $2%any_arg_with_DQ%"
+
diff --git a/bench/bn_aggregate_e.jnl b/bench/bn_aggregate_e.jnl
index c6fe56e..ed3e528 100644
--- a/bench/bn_aggregate_e.jnl
+++ b/bench/bn_aggregate_e.jnl
@@ -1,5 +1,5 @@
 ! bn_aggregate_e.jnl
-! using the DEFINE ATTRIBUTE/E command
+! using the DEFINE DATA/AGGREGATE/E command
 ! Datasets share sst, but only ens1 has airt. 
 
 set mode diag
diff --git a/bench/bn_all.jnl b/bench/bn_all.jnl
index 0dc4945..fb83d0e 100644
--- a/bench/bn_all.jnl
+++ b/bench/bn_all.jnl
@@ -103,6 +103,7 @@ SET MODE VERIFY
 ! 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
 
 ! Include this statement to compare the outupt of 6D Ferret with 
 ! previous 4D benchmark logs.
@@ -901,7 +902,7 @@ GO bn_stddev
 GO bn_reset
 GO bn_set_axis_name
 
-! *********** v6.9+ Additions ***********
+! *********** v6.93 Additions ***********
 GO bn_reset
 GO bn691_bug_fixes
 
@@ -932,6 +933,69 @@ GO bn_spawn_size
 GO bn_reset
 GO bn_polygon_log
 
+! *********** v6.94Additions ***********
+
+GO bn_reset
+GO bn694_bug_fixes
+
+GO bn_reset
+GO bn_permute_ascii
+
+GO bn_reset
+GO bn_lon_lat_time_string
+
+GO bn_reset
+GO bn_save_justdim
+
+GO bn_reset
+GO bn_time2d
+
+GO bn_reset
+GO bn_legend_labels
+
+GO bn_reset
+GO bn_DQ
+
+! *********** v6.95Additions ***********
+
+GO bn_reset
+GO bn695_bug_fixes
+
+GO bn_reset
+GO bn_f_tax_fcns
+
+GO bn_reset
+GO bn_fmrc
+
+GO bn_reset
+GO bn_return_defined
+
+GO bn_reset
+GO bn_can_var_noerr
+
+GO bn_reset
+GO bn_annotate
+
+GO bn_reset
+GO bn_auxiliary
+
+GO bn_reset
+GO bn_plot_ribbon_gaploc
+
+GO bn_reset
+GO bn_time_short_axes
+
+GO bn_reset
+GO bn_floatstr_extended
+
+! *********** v6.96 Additions ***********
+
+GO bn_reset
+GO bn696_bug_fixes
+
+GO bn_reset
+GO bn_bin_regrid
+
 !  *********** Always do a bn_reset  *********** 
 !  *********** make sure things clean up well **
 GO bn_reset
diff --git a/bench/bn_annotate.jnl b/bench/bn_annotate.jnl
new file mode 100644
index 0000000..c78c55c
--- /dev/null
+++ b/bench/bn_annotate.jnl
@@ -0,0 +1,217 @@
+! bn_annotate.jnl
+! The command ANNOTATE /USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE
+! locates user-defined labels on a plot.
+!   /USER and /NOUSER behave as the LABEL command does
+!   /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
+
+! ANNOTATE /USER
+set v ul
+plot/vs/sym=28/hl=-5:5/vl=-10:10 {-1,1},{-1,1}
+
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/USER labels"
+annotate/user/xpos=-1/ypos=-1/halign=0/valign=0/angle=-90/siz=0.2 "X"
+annotate/user/xpos=0/ypos=0/halign=0/valign=0/angle=0/siz=0.2 "X"
+annotate/user/xpos=1/ypos=1/halign=0/valign=0/angle=45/siz=0.2 "X"
+
+plot/ov/vs/line=1/nolab {-1,1,1,-1,-1},{4,4,6,6,4}
+annotate/user/xpos=0/ypos=5/halign=0/valign=0/angle=0/siz=0.2 "BOX"
+
+plot/ov/vs/line=1/nolab .5*{-1,1,1,-1,-1},{-2,-2,-8,-8,-2}
+	annotate/user/xpos=0/ypos=-5/halign=0/valign=0/angle=90/siz=0.2 "BOX"
+
+plot/ov/vs/sym=2/size=2/nolab 3,0
+annotate/user/xpos=3/ypos=0/halign=0/valign=1/angle=45/siz=0.2 "TOP"
+annotate/user/xpos=3/ypos=0/halign=0/valign=-1/angle=45/siz=0.2 "BOTTOM"
+
+plot/ov/vs/sym=2/size=2/nolab -3,0
+annotate/user/xpos=-3/ypos=0/halign=-1/valign=-1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-1/valign=1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=1/valign=-1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=1/valign=1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-3/valign=-3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-3/valign=3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=3/valign=-3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=3/valign=3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-.99/valign=5/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=.99/valign=5/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-.99/valign=-5/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=.99/valign=-5/angle=45/siz=0.2 "M"
+
+
+
+! ANNOTATE/NORM
+set v ur
+plot/i=1:5/vlim=1:5/hlim=1:5/color=white/nolab i
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/NORM labels"
+
+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=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=.5/halign=0/valign=0/angle=0/size=0.14 "DEAD CENTER"
+annotate/norm/xpos=.5/ypos=0/halign=0/valign=1/angle=0/size=0.14 "HANGING FROM BOTTOM"
+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"
+
+! ANNOTATE/NOUSER
+set v ll
+plot/i=1:5/vlim=1:5/hlim=1:5/color=white/nolab i
+
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels"
+
+! nouser
+annotate/nouser/xpos=0/ypos=0/halign=-1/angle=0/size=0.15 "At Origin"
+annotate/nouser/xpos=0/ypos=0/halign=-3/valign=-3/angle=0/size=0.15 "With/HALIGN=-3/VALIGN=-3"
+
+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"
+
+plot/vs/line/over/color=lightblue/nolab {3,3},{1,6}
+plot/vs/line/over/color=lightblue/nolab {1,5}, {3,3}
+
+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 "
+
+! angles
+set v lr
+
+plot/i=1:5/vlim=1:5/hlim=1:5/color=white/nolab i
+! nouser
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels<nl>Use VALIGN=0"
+annotate/nouser/xpos=0/ypos=0/halign=0/valign=0/angle=45/size=0.15 "Center At Origin"
+annotate/nouser/xpos=0/ypos=($ppl$ylen)/halign=-1/valign=0/angle=-45/siz=0.15 "left-align"
+annotate/nouser/xpos=($ppl$xlen)/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "right-align"
+
+! Test defaults
+! Default is like PPL user-labels
+! /USER/SIZ=0.12/ANGLE=0/HALIGN=0/VALIGN=-1
+
+shade/x=1:2/y=1:2/pal=grayscale i+j
+annotate/xpos=1.5/ypos=1.8 "Anno Label"
+label 1.5,1.6,,,, PPL label
+
+
+! DEFINE ANNOTATION inside a grapchics call with /SET
+can view
+use gt4d011.cdf
+shade/set temp[k=1,l=1]
+  DEFINE ANNOTATION/user/xpos=224/ypos=-3/halign=0/valign=0/angle=0/siz=.3 "X"
+ppl shade
+
+shade/set/j=40/L=1 temp
+  DEFINE ANNOTATION/user/xpos=224/ypos=80/halign=0/valign=0/angle=0/siz=.3 "X"
+ppl shade
+
+can data/all
+
+plot/set/i=1:5 i
+! nouser
+define annotation/nouser/xpos=0/ypos=0/halign=0/angle=0/size=0.15 "Center At Origin"
+define annotation/nouser/xpos=0/ypos=($ppl$ylen)/halign=-1/angle=0/siz=0.15 "left-align at upper left corner"
+define annotation/nouser/xpos=($ppl$xlen)/ypos=0/halign=1/angle=0/siz=0.15 "right-align at lower right corner"
+! user
+define annotation/user/xpos=3/ypos=2/halign=0/angle=0/siz=0.15 "user units centered at 3,2"
+define annotation/user/xpos=3/ypos=3/halign=-1/angle=0/siz=0.15 "user units left at 3,3"
+define annotation/user/xpos=3/ypos=4/halign=1/angle=0/siz=0.15 "user units right at 3,4"
+ppl plot
+
+! angles
+
+plot/set/i=1:5 i
+define annotation/nouser/xpos=0/ypos=0/halign=0/angle=45/size=0.15 "Center At Origin"
+define annotation/nouser/xpos=0/ypos=($ppl$ylen)/halign=-1/angle=-45/siz=0.15 "left-align at upper left corner"
+define annotation/nouser/xpos=($ppl$xlen)/ypos=0/halign=1/angle=-45/siz=0.15 "right-align at lower right corner"
+! user
+define annotation/user/xpos=3/ypos=2/halign=0/angle=45/siz=0.15 "user units centered at 3,2"
+define annotation/user/xpos=3/ypos=3/halign=-1/angle=45/siz=0.15 "user units left at 3,3"
+define annotation/user/xpos=3/ypos=4/halign=1/angle=45/siz=0.15 "user units right at 3,4"
+ppl plot
+
+! DEFINE ANNO/NORM
+plot/i=1:5/nolab/set i
+def anno/norm/xp=.5/yp=1.1/hal=0/ang=0/size=.3 "FLOATING TITLE"
+def anno/norm/xp=.5/yp=-.2/hal=0/ang=0/size=.3 "SUBMERGED TITLE"
+def anno/norm/xp=0/yp=1/hal=-1/ang=0/size=.3 "LEFT/TOP"
+def anno/norm/xp=.5/yp=1/hal=0/ang=0/size=.3 "CTR/TOP"
+def anno/norm/xp=1/yp=1/hal=1/ang=0/size=.3 "RIGHT/TOP"
+def anno/norm/xp=1/yp=.5/hal=0/ang=-90/size=.3 "RIGHT EDGE"
+def anno/norm/xp=0/yp=.5/hal=0/ang=90/size=.3 "LEFT EDGE"
+def anno/norm/xp=.5/yp=.5/hal=0/val=0/ang=0/size=.3 "DEAD CENTER"
+def anno/norm/xp=.5/yp=0/hal=0/val=1/ang=0/size=.3 "HANGING FROM BOTTOM"
+def anno/norm/xp=0/yp=0/hal=-2/val=-2/ang=0/size=.2 "BOTTOM LEFT INSET"
+def anno/norm/xp=0/yp=1/hal=-2/val=2/ang=0/size=.2 "TOP LEFT INSET"
+def anno/norm/xp=1/yp=0/hal=2/val=-2/ang=0/size=.2 "BOTTOM RIGHT INSET"
+def anno/norm/xp=1/yp=1/hal=2/val=2/ang=0/size=.2 "TOP RIGHT INSET"
+ppl plot
+
+plot/set/vs/sym=28/hl=-5:5/vl=-10:10 {-1,1},{-1,1}
+
+define annotation/user/xpos=-1/ypos=-1/halign=0/valign=0/angle=-90/siz=.5 "X"
+define annotation/user/xpos=0/ypos=0/halign=0/valign=0/angle=0/siz=.5 "X"
+define annotation/user/xpos=1/ypos=1/halign=0/valign=0/angle=45/siz=.5 "X"
+define annotation/user/xpos=0/ypos=5/halign=0/valign=0/angle=0/siz=.5 "BOX"
+define annotation/user/xpos=0/ypos=-5/halign=0/valign=0/angle=90/siz=.5 "BOX"
+define annotation/user/xpos=3/ypos=0/halign=0/valign=1/angle=45/siz=.5 "TOP"
+define annotation/user/xpos=3/ypos=0/halign=0/valign=-1/angle=45/siz=.5 "BOTTOM"
+define annotation/user/xpos=-3/ypos=0/halign=-1/valign=-1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-1/valign=1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=1/valign=-1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=1/valign=1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-3/valign=-3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-3/valign=3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=3/valign=-3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=3/valign=3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-.99/valign=5/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=.99/valign=5/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-.99/valign=-5/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=.99/valign=-5/angle=45/siz=.5 "M"
+ppl list labels
+ppl plot
+plot/ov/vs/line=1/nolab {-1,1,1,-1,-1},{4,4,6,6,4}
+plot/ov/vs/line=1/nolab .5*{-1,1,1,-1,-1},{-2,-2,-8,-8,-2}
+plot/ov/vs/sym=2/size=2/nolab 3,0
+plot/ov/vs/sym=2/size=2/nolab -3,0
+
+! intentional errors
+set mode ignore
+can v
+shade/i=1:2/j=1:2/nokey i+j
+
+
+! errors in arguments
+annotate/nouser/xpos=a2/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=b/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=0/halign=c/valign=0/angle=-45/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=0/halign=1/valign=d/angle=ee/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=0/halign=1/valign=0/angle=-45/siz=f "My Lab"
+
+! missing a location
+annotate/nouser/ypos=0 "My Lab"
+annotate/nouser/xpos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+
+! /USER and /NOUSER
+annotate/nouser/user/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+
+! define annotation
+
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=a2/ypos=0/hal=1/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0,3/ypos=b/hal=1/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=c/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=1/val=d/ang=ee/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=1/val=0/ang=-45/siz=f "My Lab"; ppl plot
+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.15 "My Lab"; ppl plot
+
+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
diff --git a/bench/bn_auxiliary.jnl b/bench/bn_auxiliary.jnl
new file mode 100644
index 0000000..1d135b3
--- /dev/null
+++ b/bench/bn_auxiliary.jnl
@@ -0,0 +1,403 @@
+! bn_auxiliary.jnl:  exercise auxiliary coordinate regridding
+
+! notes about the 6/2015 version:
+! -- tests 1D regridding, only, as of 6/2015
+! -- includestests the deprecated "LAYERZ" and "__LayerzRef_" automation syntax
+!    ... to be replaced by a different automation syntax in the future
+
+! *sh* 6/2015
+
+! initialize the test environment
+USE levitus_3d_subset
+SPAWN rm layerz_test_data.txt
+LET Zpts = Z[Z=100:500:100]
+DEFINE AXIS/z/units=meters zax = zpts
+
+! conjure a 4D auxiliary variable that contains the same values
+! as the native Z coordinates
+! regridding using this auxiliary variable should give the same results as
+! conventional regridding -- usefuly to validate the results
+LET/D=levitus_3d_subset depth = z[g=temp]+ 0*temp[k=1]
+
+!************
+! exercise the syntax of setting layerz associations
+! do same tests on EZ, uvar, and netCDF variable
+
+! EZ file variable
+LIST/NOHEAD/FILE=layerz_test_data.txt 1
+FILE/VAR=v layerz_test_data.txt
+! set the layerz link to point to a variable named "depth"
+SET VAR/layerz=depth v
+SHOW VAR/LAYERZ v
+SHOW ATT v
+! modify the layerz link
+SET VAR/layerz=newdepth v
+SHOW VAR/LAYERZ v
+SHOW ATT v
+cancel var/layerz v
+SHOW VAR/LAYERZ v
+SHOW ATT v
+CANCEL DATA layerz_test_data.txt
+
+! user variable
+! set the layerz link
+LET a = temp
+SET VAR/layerz=depth a
+SHOW VAR/LAYERZ a
+SHOW ATT a
+! modify the layerz link
+SET VAR/layerz=newdepth a
+SHOW VAR/LAYERZ a
+SHOW ATT a
+cancel var/layerz a
+SHOW VAR/LAYERZ a
+SHOW ATT a
+
+! netCDF file variable
+! set the layerz link
+SET VAR/layerz=depth temp[d=levitus_3d_subset]
+SHOW VAR/LAYERZ/d=levitus_3d_subset temp
+SHOW ATT temp.__LayerzRef_[d=levitus_3d_subset]
+! modify the layerz link
+SET VAR/layerz=newdepth temp[d=levitus_3d_subset]
+SHOW VAR/LAYERZ/d=levitus_3d_subset temp
+SHOW ATT temp.__LayerzRef_[d=levitus_3d_subset]
+cancel var/layerz temp[d=levitus_3d_subset]
+SHOW VAR/LAYERZ/d=levitus_3d_subset temp
+SHOW ATT temp[d=levitus_3d_subset]   ! __LayerzRef_ has been deleted
+
+! deliberate error
+SET MODE ignore; SET VAR/layerz=depth noexist; SET MODE/last ignore
+
+!************
+! exercise the layerz calculations in various situations
+! compare the manually specified syntax with the automated results
+
+! make "depth" the layerz coordinate variable for "temp"
+SET VAR/layerz=depth temp[d=levitus_3d_subset]
+
+! values of the unadulterated variable
+list/PREC=7 temp[z=0:500]
+SHOW GRID
+
+! use aux var regridding.  Target coordinate points match the source points 
+! identically at 0, 100, 200, ... 500
+! values should match the unadulterated variable at these points
+! this command will be issued in diagnostic mode to highlight that the
+! K range over which temp is read is the minimum needed to compute the result 
+SET MODE diagnostic 
+LET tempz = temp[gz(depth)=zpts]
+LIST/PREC=7 tempz
+SHOW GRID tempz
+!LET tempz = temp[gz=zpts,layerz]  ! same regrid using semi-automated notation
+!LIST/PREC=7 tempz
+!SHOW GRID tempz
+SET MODE/last diagnostic 
+
+! list a little with no imtermediate variable, so Z labeling is visible
+LIST/PREC=7 temp[gz(depth)=zpts,k=1]
+!LIST/PREC=7 temp[gz=zpts,k=1,layerz] ! same using semi-automated notation
+
+! same calculation, but with a named Z axis
+LET tempzax = temp[gz(depth)=zax]
+LIST tempzax
+SHOW GRID tempzax
+!LET tempzax = temp[gz=zax,layerz]  ! same regrid using semi-automated notation
+!LIST tempzax
+!SHOW GRID tempzax
+
+! regrid to a different set of Z points
+LET tempz_alt = temp[gz(depth)=2:10:2]
+LIST/PREC=7 tempz_alt
+SHOW GRID tempz_alt
+
+!! do same regrid using the shorhand semi-automated notation
+!LIST/PREC=7 temp[z=2:10:2,layerz]   ! lo:hi:delta notation
+!SHOW GRID
+
+! test the shorthand notation var[gz(depth)=100] as an implicit aux var
+! regrid via linear interpolation
+! the value should match the preceding output at Z=6
+LET tempz_1pt = temp[gz(depth)=6]
+LIST/PREC=7 tempz_1pt
+SHOW GRID/z tempz_1pt
+
+! do same regrid using the shorhand semi-automated notation
+LIST/PREC=7 temp[z=6,layerz]     ! =1pt notation   WILL BE CHANGED!
+SHOW GRID
+
+! auxiliary points in reverse order
+! to get results that we can check for correctness, we will reverse the Z-order
+! of the temperature field as well as the depth field.
+LET rvtemp0 = ZREVERSE(temp)
+LET rvtemp  = rvtemp0[gz=temp at asn]
+LET rvdepth0 = ZREVERSE(depth)
+LET/D=levitus_3d_subset rvdepth  = rvdepth0[gz=temp at asn]
+! **** NOTE: THERE'S A SUBTLE MISBEHAVIOR IN AUX REGRID SHOWN IN THIS COMMENTED
+! OUT LINE BUT WILL RARELY OCCUR AND EASILY WORKED AROUND
+!LET rvtempzax = rvtemp[gz(rvdepth)=zax]  ! zlims aren't filled in if not given
+LET rvtempzax = rvtemp[gz(rvdepth)=zax,z=100:500]
+LIST/PREC=7 rvtempzax - tempz
+SHOW GRID rvtempzax
+
+! deliberate execution errors:
+LET disordered_depth1 = IF K EQ 3 THEN DEPTH[K=1] ELSE DEPTH
+LET disordered_tempz1 = temp[gz(disordered_depth1)=zax]
+LET disordered_depth2 = IF K EQ 3 THEN DEPTH[K=5] ELSE DEPTH
+LET disordered_tempz2 = temp[gz(disordered_depth2)=zax]
+SET MODE ignore
+LIST disordered_tempz1
+LIST disordered_tempz2
+SET MODE/last ignore
+
+! test VTREE with a complex auxiliary variable definitions
+VTREE 
+
+! 6-dimensional regridding
+
+! 6d temperature and 3d depth field (depth unchanging in time, ensemble and forecast) 
+LET temp6d = temp/100 + 1*L[L=1:2] + 10*_M[M=1:2] + 100*_N[N=1:2] 
+!list/k=7:12/PREC=7 temp6d
+LET tempz6d = temp6d[gz(depth)=zpts]
+!LIST/PREC=7 tempz6d
+! compare pre- and post- regrid at a fixed depth
+stat/z=100 temp6d-tempz6d
+stat/z=400 temp6d-tempz6d
+
+! 6d temperature and 6d depth field
+! hold temperature constant over time, have depths change
+! note that for N=2 depths of less than 100 are no longer in the data hence missing values at Z=100
+LET temp6d_const = temp + 0*L[L=1:2] + 0*_M[M=1:2] + 0*_N[N=1:2]     ! constant in T,E,F
+LET depth6d = depth + 10*(L[L=1:2]-1) + 50*(_M[M=1:2]-1) + 100*(_N[N=1:2]-1) 
+LET tempz6d_tDep = temp6d_const[gz(depth6d)=zpts]
+LIST/PREC=7 tempz6d_tDep
+LIST/PREC=7/k=7:8 temp6d_const, depth6d  ! reference values at Z=100, 200, 300 for visual comparison
+! ... some spot checks
+LIST/PREC=7/l=1/m=1/n=1 tempz6d_tDep[Z=100] - temp6d_const[k=7]
+LIST/PREC=7/l=1/m=2/n=1 tempz6d_tDep[Z=200] - temp6d_const[k=8]
+LIST/PREC=7/l=1/m=2/n=2 tempz6d_tDep[Z=300] - temp6d_const[k=8]
+
+! ** deliberate error **
+! 6d temperature and 3d depth field (depth unchanging in time, ensemble and forecast) 
+! Ferret does not permit auxiliary variable to have an axis not found on the source variable
+! (to avoid having to consider auxiliary variables during grid-getting ... possible to do)
+SET MODE IGNORE
+LET tempz6d_unmatch = temp[gz(depth6d)=zpts]
+LIST/PREC=7 tempz6d_unmatch
+SET MODE/LAST IGNORE
+
+! ********************************
+! test the @plave regridding -- ave defined from area under piecewise curve
+
+! first compare to our simplest of linear interpolation regrids, tempz
+! note that results will differ due to non-linearity
+! at Z=500 on the output they become identical because the Z=500 grid box
+! extends 450:550 with source points at Z=400 and Z=600 -- pure linear
+! LET tempz = temp[gz(depth)=zpts]
+LET tempzave = temp[gz(depth)=zpts at plave]
+LIST tempzave - tempz
+
+! list a little.  Note the regridding transform label
+LIST/PREC=7 temp[gz(depth)=zpts at plave,k=1]
+
+! Levitus has points at 50, 75, 100, 150, 200
+! define target axis with edges at 50:75 (k=1),  75:100 (k=2)
+!                                 100:125(k=3), 125:150 (k=4), 150:175(k=5) 
+define axis/edges/z=50:175:25/units=m zpt2     ! point at 125 is mid-way
+
+! raw source data -- artifically designed for easy mental calcs
+LET myvals = temp*0+100*(i-100)+10*(j-40)+k 
+list/PREC=7 myvals[z=50:300]
+
+! linear interpolation regridding
+LET mzlin2 = myvals[gz(depth)=zpt2]
+LIST/PREC=7 mzlin2
+
+! average-regridding
+LET mzave2 = myvals[gz(depth)=zpt2 at plave]
+
+! cases:
+! 1) both edges lie on source points
+LIST/PREC=7 mzave2[k=2]   ! vals at 75, 100 ==> 75:100
+
+! 2) lower edge only lies on source point
+LIST/PREC=7 mzave2[k=3]   ! vals at 100, 150 ==> 100:125
+
+! 3) upper edge only lies on source point
+LIST/PREC=7 mzave2[k=4]   ! vals at 100, 150 ==> 125:150
+
+! 4) full range
+! myvals2 is linear in k, so @plave and @lin get identical results
+LIST/PREC=7 mzave2
+LIST/PREC=7 mzave2 - mzlin2
+
+! 5) divide a single source range into multiple destination cells
+! a range of 50 divided into 5 cells will have means of x.1,x.3,x.5, x.7, x.9
+define axis/edges/z=150:200:10/units=m zpt3 
+LET mzave3 = myvals[gz(depth)=zpt3 at plave]
+LIST/PREC=7 mzave3
+
+! 6) derive a single destination cell from many source points
+! by manual calculation the correct answers will be n.333333
+define axis/edges/z=50:200:150/units=m zpt4
+LET mzave4 = myvals[gz(depth)=zpt4 at plave]
+LIST/PREC=7 mzave4
+
+! 7) derive a single destination cell from many source points
+! by manual calculation the correct answers will be n.8125
+define axis/edges/z=50:250:200/units=m zpt5
+LET mzave5 = myvals[gz(depth)=zpt5 at plave]
+LIST/PREC=7 mzave5
+
+! 8) test the short-hand notation var[gz(depth)=0:100 at ave] as an implicit
+! aux var regrid via piecewice linear averaging
+! To confirm correct results we create a piecewize linear function that
+! has constant slope.  Averaging such a function over a symmetric region
+! around a point on the source data should return the value at the point
+LET myvals_z = TEMP*0+100*(I-100)+10*(J-40)+Z
+list/PREC=7 myvals_z[z=200]
+list/PREC=7 myvals_z[gz(depth)=190:210 at ave]
+list/PREC=7 myvals_z[gz(depth)=150:250 at ave]
+
+! 8a) do same regrid using the shorhand semi-automated notation
+SET VAR/LAYERZ=depth myvals_z
+list/PREC=7 myvals_z[z=190:210 at ave,layerz]  ! lo:hi at ave notation WILL BE CHANGED
+list/PREC=7 myvals_z[z=150:250 at ave,layerz]  ! WILL BE CHANGED
+
+! test missing values in the depth array
+! cases:
+! 1) missing values at start of aux array
+define axis/z=25:200:25/units=m zpt6
+LET depmis = IF (I NE 102 OR k GT 6) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+
+! 2) missing values at end of aux array
+LET depmis = IF (I NE 102 OR k LT 9) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+
+! 3) missing values in midst of aux array -- stops processing beyond
+LET depmis = IF (I NE 102 OR k EQ 7 OR K EQ 8) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+
+! 4) singleton non-missing values in a line of the aux array
+LET depmis = IF (I NE 102 OR K EQ 8) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+
+! 5) there are only missing values in a line of the aux array
+LET depmis = IF (I NE 102) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+
+! 6) two separated singletons -- only the first should be found
+LET depmis = IF (I NE 102 OR K EQ 6 OR K EQ 8) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+list depmis[z=25:200]      ! to illustrate why the result is as it is
+
+! ********
+! reversed-auxiliary variable used in regridding
+! (see definitions made earlier)
+! Note that the regridded result only matches the original data in regions 
+! where the underlying piecewise function remains strictly linear with
+! unchanging slope/intercept.  Since the Z=500 point has cell limits 450:550
+! and the underlying Levitus Z points (used in the definition of "depth") are
+! at 400 and 600, we get the identical result from @PLAVE and @LIN
+LET rvtempzaxave = rvtemp[gz(rvdepth)=zax at plave,z=100:500]
+LIST/PREC=7 rvtempzaxave - tempz
+SHOW GRID/z rvtempzaxave
+
+! 5/15 -- added tests for non-monotonic auxiliary variable
+!test_non_monotonic_aux_z.jnl
+
+cancel region
+define axis/x=161e:165e:1 xax
+define axis/z=100:600:100 zax
+
+let temp = 0.0001*Z[gz=zax]^2 + 0*x[gx=xax]
+list temp
+
+! disordered points at beginning, middle and end, missing at beginning
+let density0 = 0*i[gx=xax]*k[gz=zax] + z/10
+let density1 = if i eq 2 and k eq 4 then 20  else density0
+let density2 = if i eq 3 and k eq 1 then 20  else density1
+let density3 = if i eq 3 and k eq 2 then 10  else density2
+let density4 = if i eq 4 and k eq 6 then 30  else density3
+let density  = if i eq 5 and k le 2 then 1/0 else density4  ! missing at k=1:3
+list density
+
+! Z=200-300 on the density axis are double valued at I=2
+list temp[gz(density)=5:65:2.5]
+
+
+!************************************
+! reverse-ordering of same field
+let btemp = 0.0001*(700-Z[gz=zax])^2  + 0*x[gx=xax]
+list btemp
+
+let bdensity0 = 0*i[gx=xax]*k[gz=zax] + (700-z)/10
+let bdensity1 = if i eq 2 and (7-k) eq 4 then 20  else bdensity0
+let bdensity2 = if i eq 3 and (7-k) eq 1 then 20  else bdensity1
+let bdensity3 = if i eq 3 and (7-k) eq 2 then 10  else bdensity2
+let bdensity4 = if i eq 4 and (7-k) eq 6 then 30  else bdensity3
+let bdensity  = if i eq 5 and (7-k) le 2 then 1/0 else bdensity4 !missing k=1:3
+
+SAY "************ TBD: STILL NEED TO MAKE SURE UNITS ARE WORKING ********"
+SET VAR/units="kg/m^3" density
+
+list bdensity
+
+list btemp[gz(bdensity)=5:65:2.5]
+
+!************************************
+! similar analysis using @plave over wider cells
+! compare to reverse-ordered data
+list  temp[gz(density)=5:65:15 at plave]
+list btemp[gz(bdensity)=5:65:15 at plave]
+
+! 6/15
+! test 1D auxiliary axis regirdding on all axes
+
+! p for passive axis
+! a for active axis
+
+define axis/x=161:165:1 xp
+define axis/y=161:165:1 yp
+define axis/z=161:165:1 zp
+define axis/t=161:165:1 tp
+define axis/e=161:165:1 ep
+define axis/f=161:165:1 fp
+
+define axis/x=100:700:100 xa
+define axis/y=100:700:100 ya
+define axis/z=100:700:100 za
+define axis/t=100:700:100 ta
+define axis/e=100:700:100 ea
+define axis/f=100:700:100 fa
+
+
+GO bn_auxiliary.sub Z,X,F
+GO bn_auxiliary.sub Z,Y,E
+CANC MODE VERIFY
+GO bn_auxiliary.sub X,Z,F
+GO bn_auxiliary.sub Y,X,E
+GO bn_auxiliary.sub T,Y,F
+GO bn_auxiliary.sub E,Z,F
+GO bn_auxiliary.sub F,X,T
+
+SET MODE/LAST VERIFY
diff --git a/bench/bn_auxiliary.sub b/bench/bn_auxiliary.sub
new file mode 100644
index 0000000..20fff5e
--- /dev/null
+++ b/bench/bn_auxiliary.sub
@@ -0,0 +1,152 @@
+\CANC MODE VERIFY
+! bn_auxiliary.sub
+
+! define test variables and do a 1D auxiliary regridding test on the active axis 
+
+
+! 2 arguments:  active axis and 2 passive axes
+
+! e.g. GO test_all_axis_aux.sub   Z, X, F    ! test Z redrid in XZ and ZF planes
+! see example at end
+
+
+DEFINE SYMBOL aax  = $1
+DEFINE SYMBOL pax1 = $2
+DEFINE SYMBOL pax2 = $3
+DEFINE SYMBOL iaax  = ($aax%|X>I|Y>J|Z>K|T>L|E>M|F>N|%)
+DEFINE SYMBOL ipax1 = ($pax1%|X>I|Y>J|Z>K|T>L|E>M|F>N|%)
+DEFINE SYMBOL ipax2 = ($pax2%|X>I|Y>J|Z>K|T>L|E>M|F>N|%)
+DEFINE SYMBOL gax = g($aax)
+
+SAY
+SAY *****************************
+SAY **********  ($AAX),($PAX1),($PAX2) ***********
+SAY *****************************
+SAY
+
+! default all 6 axes to passive
+DEFINE SYMBOL  contrib_xax = 0*_x[gx=xp]
+DEFINE SYMBOL  contrib_yax = 0*_y[gy=yp]
+DEFINE SYMBOL  contrib_zax = 0*_z[gz=zp]
+DEFINE SYMBOL  contrib_tax = 0*_t[gt=tp]
+DEFINE SYMBOL  contrib_eax = 0*_e[ge=ep]
+DEFINE SYMBOL  contrib_fax = 0*_f[gf=fp]
+DEFINE SYMBOL bcontrib_xax = 0*_x[gx=xp]
+DEFINE SYMBOL bcontrib_yax = 0*_y[gy=yp]
+DEFINE SYMBOL bcontrib_zax = 0*_z[gz=zp]
+DEFINE SYMBOL bcontrib_tax = 0*_t[gt=tp]
+DEFINE SYMBOL bcontrib_eax = 0*_e[ge=ep]
+DEFINE SYMBOL bcontrib_fax = 0*_f[gf=fp]
+
+! non-default for active axis only
+DEFINE SYMBOL  contrib_($aax)ax = 0.0001*     _($aax)[g($aax)=($aax)a] ^2
+DEFINE SYMBOL bcontrib_($aax)ax = 0.0001*(800-_($aax)[g($aax)=($aax)a])^2
+
+! default all 6 region qualifiers to index 1
+DEFINE SYMBOL  sx = /i=1
+DEFINE SYMBOL  sy = /j=1
+DEFINE SYMBOL  sz = /k=1
+DEFINE SYMBOL  st = /l=1
+DEFINE SYMBOL  se = /m=1
+DEFINE SYMBOL  sf = /n=1
+
+! define regions to be used for listings
+CANCEL SYMBOL s($aax)
+DEFINE SYMBOL SAVE_PAX1 = ($s($pax1))
+CANCEL SYMBOL s($pax1)
+DEFINE SYMBOL REG1 = ($sx" ")($sy" ")($sz" ")($st" ")($se" ")($sf" ")
+DEFINE SYMBOL s($pax1) = ($SAVE_PAX1)
+CANCEL SYMBOL s($pax2)
+DEFINE SYMBOL REG2 = ($sx" ")($sy" ")($sz" ")($st" ")($se" ")($sf" ")
+
+! mock temperature field
+let temp =  ($contrib_xax) +  ($contrib_yax) +  ($contrib_zax) +  ($contrib_tax) +  ($contrib_eax) +  ($contrib_fax)
+
+! same but backwards ordered fields
+let btemp = ($bcontrib_xax) + ($bcontrib_yax) + ($bcontrib_zax) + ($bcontrib_tax) + ($bcontrib_eax) + ($bcontrib_fax)
+
+! mock density fields - 10, 20, 30, ... with inversions and missing
+let density0 = 0*temp + _($aax)/10
+let density1 = if (_($ipax1) eq 2 OR _($ipax2) eq 2) and _($iaax) eq 4 then 20  else density0
+let density2 = if (_($ipax1) eq 3 OR _($ipax2) eq 3) and _($iaax) eq 1 then 20  else density1
+let density3 = if (_($ipax1) eq 3 OR _($ipax2) eq 3) and _($iaax) eq 2 then 10  else density2
+let density4 = if (_($ipax1) eq 4 OR _($ipax2) eq 4) and _($iaax) eq 6 then 30  else density3
+let density  = if (_($ipax1) eq 5 OR _($ipax2) eq 5) and _($iaax) le 2 then 1/0 else density4
+
+! same but backwards ordered
+let bdensity0 = 0*temp + (800-_($aax))/10
+let bdensity1 = if (_($ipax1) eq 2 OR _($ipax2) eq 2) and (8-_($iaax)) eq 4 then 20  else bdensity0
+let bdensity2 = if (_($ipax1) eq 3 OR _($ipax2) eq 3) and (8-_($iaax)) eq 1 then 20  else bdensity1
+let bdensity3 = if (_($ipax1) eq 3 OR _($ipax2) eq 3) and (8-_($iaax)) eq 2 then 10  else bdensity2
+let bdensity4 = if (_($ipax1) eq 4 OR _($ipax2) eq 4) and (8-_($iaax)) eq 6 then 30  else bdensity3
+let bdensity  = if (_($ipax1) eq 5 OR _($ipax2) eq 5) and (8-_($iaax)) le 2 then 1/0 else bdensity4
+
+SET MODE/LAST VERIFY
+! show the underlying fields
+list/order=($pax1)($aax)($REG1) temp
+list/order=($pax1)($aax)($REG1) btemp
+list/order=($pax1)($aax)($REG1) density
+list/order=($pax1)($aax)($REG1) bdensity
+
+! show the regridded fields
+! using interpolation
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:5]  ! passive ax 1
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:5]  ! passive ax 2
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:5]  ! backwards pasv ax 1
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:5]  ! backwards pasv ax 2
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35]
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35]
+
+
+! using piecewise linear averaging
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:15 at plave]
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:15 at plave] 
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:15 at plave]
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:15 at plave] 
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35:55 at plave]
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35:55 at plave]
+
+!*********************************************************************************
+!*********************************************************************************
+EXIT/SCRIPT
+! below here is an example of the lines that are executed given args Z,X,F
+! mock temperature field
+let temp = 0*_x[gx=xp] + 0*_y[gy=yp] + 0.0001*_z[gz=za]^2 + 0*_t[gt=tp] + 0*_e[ge=ep] + 0*_f[gf=fp]
+! same but backwards ordered fields
+let btemp = 0*x[gx=xp] + 0*y[gy=yp] + 0.0001*(800-Z[gz=za])^2 + 0*t[gt=tp] + 0*_e[ge=ep] + 0*_f[gf=fp]
+
+! mock density fields - 10, 20, 30, ... with inversions and missing
+let density0 = 0*temp + _z/10
+let density1 = if (_i eq 2 OR _n eq 2) and _k eq 4 then 20  else density0
+let density2 = if (_i eq 3 OR _n eq 3) and _k eq 1 then 20  else density1
+let density3 = if (_i eq 3 OR _n eq 3) and _k eq 2 then 10  else density2
+let density4 = if (_i eq 4 OR _n eq 4) and _k eq 6 then 30  else density3
+let density  = if (_i eq 5 OR _n eq 5) and _k le 2 then 1/0 else density4
+
+! same but backwards ordered
+let bdensity0 = 0*temp + (800-_z)/10
+let bdensity1 = if (_i eq 2 OR _n eq 2) and (8-_k) eq 4 then 20  else bdensity0
+let bdensity2 = if (_i eq 3 OR _n eq 3) and (8-_k) eq 1 then 20  else bdensity1
+let bdensity3 = if (_i eq 3 OR _n eq 3) and (8-_k) eq 2 then 10  else bdensity2
+let bdensity4 = if (_i eq 4 OR _n eq 4) and (8-_k) eq 6 then 30  else bdensity3
+let bdensity  = if (_i eq 5 OR _n eq 5) and (8-_k) le 2 then 1/0 else bdensity4
+
+! show the underlying fields
+list/j=1/l=1/m=1/n=1 temp
+list/j=1/l=1/m=1/n=1 btemp
+list/j=1/l=1/m=1/n=1 density
+list/j=1/l=1/m=1/n=1 bdensity
+
+! show the regridded fields
+list/order=xz/j=1/l=1/m=1/n=1 temp[gz(density)=5:80:5]  ! X passive
+list/order=fz/i=1/j=1/l=1/m=1 temp[gz(density)=5:80:5]  ! F passive
+list/order=xz/j=1/l=1/m=1/n=1 btemp[gz(bdensity)=5:80:5]  ! backwards X passive
+list/order=fz/i=1/j=1/l=1/m=1 btemp[gz(bdensity)=5:80:5]  ! backwards F passive
+
+list/order=xz/j=1/l=1/m=1/n=1 temp[gz(density)=5:80:15 at plave]  ! X passive
+list/order=fz/i=1/j=1/l=1/m=1 temp[gz(density)=5:80:15 at plave]  ! F passive
+list/order=xz/j=1/l=1/m=1/n=1 btemp[gz(bdensity)=5:80:15 at plave] ! backw X passive
+list/order=fz/i=1/j=1/l=1/m=1 btemp[gz(bdensity)=5:80:15 at plave] ! backw F passive
+
diff --git a/bench/bn_axis_viewports.jnl b/bench/bn_axis_viewports.jnl
index de6735a..a959d33 100644
--- a/bench/bn_axis_viewports.jnl
+++ b/bench/bn_axis_viewports.jnl
@@ -6,7 +6,7 @@ set wind/clear/aspect=1
 def view/axes allax
 
 ! make guide lines
-show view allax   ! text = 1
+show view allax 
 set view allax
 plot/vs/line/hlim=0:1/vlim=0:1/nolab {0.5,0.5,,0,1},{0,1,,0.5,0.5}
 plot/vs/line/over/nolab {0.25,0.25,,0,1},{0,1,,0.25,0.25}
@@ -15,7 +15,7 @@ label 0.26,0.95,-1,0,.2 @P2 at AC<-At 0.25
 label 0.76,0.95,-1,0,.2 @P3 at AC<-At 0.75
 
 ! a plot from 0.25 to 0.75
-def view /xlim=0.25:0.75/ylim=0.25:0.75/text=1/axes mid
+def view /xlim=0.25:0.75/ylim=0.25:0.75/axes mid
 set view mid
 plot/vs/hlim=-1:1/vlim=-1:1/line/i=1:200 cos(i/15),sin(i/15)
 show view mid
@@ -23,7 +23,7 @@ ppl list xaxis
 ppl list yaxis
 
 ! guidelines showing origin, axlen, white space
-def view /xlim=0.25:0.75/ylim=0.25:0.75/text=1/axes mid2
+def view /xlim=0.25:0.75/ylim=0.25:0.75/axes mid2
 set view mid2
 ppl origin 0,0
 define symbol xaxl `($PPL$WIDTH)/2`
@@ -52,7 +52,7 @@ ppl list xaxis
 ppl list yaxis
 
 ! guidelines showing origin, axlen, white space
-def view /xlim=0.25:0.75/ylim=0.25:0.75/text=1/axes mid2
+def view /xlim=0.25:0.75/ylim=0.25:0.75/axes mid2
 set view mid2
 ppl origin 0,0
 define symbol xaxl `($PPL$WIDTH)/2`
@@ -71,25 +71,25 @@ show view mid
 ! pause
 set wind/clear
 
-def view/axes/xlim=0:0.5/ylim=0:0.5/text=1 llax
+def view/axes/xlim=0:0.5/ylim=0:0.5 llax
 set view llax
 PLOT/VS/LINE/I=1:314/noyadj i*cos(i/20),i*sin(i/20)
 ppl list xaxis
 ppl list yaxis
 
-def view/axes/xlim=0:0.5/ylim=0.5:1/text=1 lrax
+def view/axes/xlim=0:0.5/ylim=0.5:1 lrax
 set view lrax
 PLOT/VS/LINE/I=1:314/noyadj i*cos(i/20),i*sin(i/20)
 ppl list xaxis
 ppl list yaxis
 
-def view/axes/xlim=0.5:1/ylim=0:0.5/text=1 ulax
+def view/axes/xlim=0.5:1/ylim=0:0.5 ulax
 set view ulax
 PLOT/VS/LINE/I=1:314/noyadj i*cos(i/20),i*sin(i/20)
 ppl list xaxis
 ppl list yaxis
 
-def view/axes/xlim=0.5:1/ylim=0.5:1/text=1 urax
+def view/axes/xlim=0.5:1/ylim=0.5:1 urax
 set view urax
 PLOT/VS/LINE/I=1:314/noyadj i*cos(i/20),i*sin(i/20)
 ppl list xaxis
diff --git a/bench/bn_bin_regrid.jnl b/bench/bn_bin_regrid.jnl
new file mode 100644
index 0000000..f710dd3
--- /dev/null
+++ b/bench/bn_bin_regrid.jnl
@@ -0,0 +1,8 @@
+! bin regridding tests
+
+go bn_bin_regrid.sub X
+go bn_bin_regrid.sub Y
+go bn_bin_regrid.sub Z
+go bn_bin_regrid.sub T
+go bn_bin_regrid.sub E
+go bn_bin_regrid.sub F
diff --git a/bench/bn_bin_regrid.sub b/bench/bn_bin_regrid.sub
new file mode 100644
index 0000000..81eee75
--- /dev/null
+++ b/bench/bn_bin_regrid.sub
@@ -0,0 +1,22 @@
+! Tests of @BIN and @NBIN regridding transforms  
+
+DEFINE AXIS/$1=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
+LET var = _$1[G$1=irr]
+
+LET dest =  _$1[G$1=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]
+
+
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+LET dest =  _$1[G$1=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+
+LIST dest, var[G$1=dcoarse]
+
diff --git a/bench/bn_can_var_noerr.jnl b/bench/bn_can_var_noerr.jnl
new file mode 100644
index 0000000..ee02aea
--- /dev/null
+++ b/bench/bn_can_var_noerr.jnl
@@ -0,0 +1,32 @@
+! bn_can_var_noerr.jnl
+! CANCEL VARIABLE/NOERROR
+
+
+let a = 1
+
+! intentional error
+set mode ignore
+cancel var b,a
+show var
+
+cancel mode ignore
+
+! specify /noerr and we can issue the command
+
+cancel var/noerror a,b
+show var
+
+! no effect on CAN VAR/ALL or CAN VAR template_name
+
+let a1 = 1
+let a7 = 7
+let c = 12
+
+cancel var/noerror name*
+show var
+
+cancel var/noerror a*
+show var
+
+cancel var/noerror/all
+show var
diff --git a/bench/bn_dots.jnl b/bench/bn_dots.jnl
index ae41e72..bf5a166 100644
--- a/bench/bn_dots.jnl
+++ b/bench/bn_dots.jnl
@@ -16,4 +16,3 @@ 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)
-set mode logo
diff --git a/bench/bn_f_tax_fcns.jnl b/bench/bn_f_tax_fcns.jnl
new file mode 100644
index 0000000..b009cd3
--- /dev/null
+++ b/bench/bn_f_tax_fcns.jnl
@@ -0,0 +1,52 @@
+! bn_f_from_tax_fcns.jnl
+! test tax_* functions returning results from a 
+! time-formatted axis in the F direction
+!
+! 2/2015 ACM
+
+define axis/f=1-jan-2011:31-jan-2011:1/units=hours fax
+
+
+
+let ff = _f[gf=fax]
+! Test RETURN=F0
+say `ff,return=F0`
+
+list/N=20:30 tax_datestring(_F[g=ff],ff,"minute")
+list/N=20:30 tax_datestring(_F[g=ff],ff,"hour")
+list/N=20:30 tax_datestring(_F[g=ff],ff,"day")
+list/N=20:30 tax_dayfrac(_F[g=ff],ff)
+list/N=20:30 tax_day(_F[g=ff],ff)
+list/N=20:30 tax_jday(_F[g=ff],ff) 
+list/N=20:30 tax_month(_F[g=ff],ff)
+list/N=20:30 tax_yearfrac(_F[g=ff],ff)
+list/N=20:30 tax_year(_F[g=ff],ff)
+list/N=20:30 tax_jday1900(_F[g=ff],ff)
+list tax_units(ff)
+
+! commands from tax_tstep, changing time origin
+
+DEFINE AXIS/F="1-JAN-2000:00:00:01":"1-JAN-2000:00:15:00":2/UNITS=seconds fsec
+LIST/N=440:451 _F[GF=fsec]  
+LET bsin = SIN(_F[GF=fsec]/40000)
+SAVE/FILE=a.nc/clobber bsin
+CAN VAR/all
+USE a.nc
+
+SET LIST/PREC=7
+! Reset the date to dec 1999
+! Function lets us leave off the leading 0.
+LIST/N=1:15  TAX_TSTEP(bsin, "1-dec-1999:00:00:00" )
+
+! argument can be upper or lowercase
+! Should list values 1, 3, 5...
+LIST/N=1:15  TAX_TSTEP(bsin, "1-JAN-2000:00:00:00" )
+
+! Test  with TAX_DATESTRING 
+
+DEFINE AXIS/F="1-JAN-1902:00:00:00":"1-JAN-1902:00:30:00":5/UNITS=seconds fsec
+LIST/N=200:205 _F[GF=fsec]  
+
+LET ff = _F[GF=fsec]
+LET reset_date = TAX_DATESTRING(`_F[GF=fsec,n=1]`, ff, "sec")
+LIST/N=1:15 TAX_TSTEP(ff, "`reset_date`")
diff --git a/bench/bn_floatstr_extended.jnl b/bench/bn_floatstr_extended.jnl
new file mode 100644
index 0000000..8195471
--- /dev/null
+++ b/bench/bn_floatstr_extended.jnl
@@ -0,0 +1,60 @@
+! 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
+
+LET string = FLOATSTR({3.14159,2.71828},"(i3.3)")
+LIST string
+
+LET string = FLOATSTR({3.14159,2.71828},"(i03)")
+LIST string
+
+! Missing data returned as the null string
+LET string = FLOATSTR({3.14159,2.71828,},"(i3)")
+LIST string
+
+! Test some large and small values
+LET var = {3.14159,2.71828,}
+LIST FLOATSTR(36*var,"(i5)")
+LIST FLOATSTR(36*var,"(i4.3)")
+LIST FLOATSTR(1.e14*var,"(i12)")
+LIST FLOATSTR(1.e-14*var,"(i5)")
+
+! 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)")
+
+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
+
+! 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]
+
+
+! F0 format for zero-filled F format
+
+let a = {1.1, 3.7}
+list  floatstr(a, "(f04.1)")
+
+let a = {1.1, 13.7}
+list floatstr(a, "(f06.1)")
+
+let a = {-1.1, 13.7}
+list  floatstr(a, "(f04.1)")
+
+! 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]
diff --git a/bench/bn_flowlines.jnl b/bench/bn_flowlines.jnl
index bfef73f..313865e 100644
--- a/bench/bn_flowlines.jnl
+++ b/bench/bn_flowlines.jnl
@@ -39,5 +39,3 @@ 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
-
-set mode logo
diff --git a/bench/bn_fmrc.jnl b/bench/bn_fmrc.jnl
new file mode 100644
index 0000000..e69a476
--- /dev/null
+++ b/bench/bn_fmrc.jnl
@@ -0,0 +1,18 @@
+! bn_fmrc.jnl
+! initial test of DEFINE DATA/F 
+
+use "run1.nc"
+use "run2.nc"
+use "run3.nc"
+use "run4.nc"
+
+define data/hide/F/agg/title fourfiles = 1,2,3,4
+
+sh grid sst
+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`
+
diff --git a/bench/bn_gif.jnl b/bench/bn_gif.jnl
index 6abf095..a41524b 100644
--- a/bench/bn_gif.jnl
+++ b/bench/bn_gif.jnl
@@ -4,12 +4,12 @@
 ! *kob*
 
 ! 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
+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
 
 ! some variables for plotting
@@ -56,12 +56,12 @@ 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)
+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/text=.6/xlim=.333,1/ylim=.5,1 um6    ! redefine it longer in x (11/92)
+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))
@@ -81,7 +81,7 @@ 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)
+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
@@ -95,7 +95,7 @@ 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)
+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
diff --git a/bench/bn_graticules.jnl b/bench/bn_graticules.jnl
index 1a1ed55..807b64d 100644
--- a/bench/bn_graticules.jnl
+++ b/bench/bn_graticules.jnl
@@ -48,7 +48,6 @@ let fcn = k[gz=dlog]
 plot/vlog/vlimits=1:100000/hg="large(color=red),small(color=lightblue)" fcn
 
 can mode meta
-set mode logo
 
 can view
 
diff --git a/bench/bn_grave.jnl b/bench/bn_grave.jnl
index 48dd691..7812d9f 100644
--- a/bench/bn_grave.jnl
+++ b/bench/bn_grave.jnl
@@ -128,7 +128,7 @@ let a = XSEQUENCE(J[j=1:5])
 set mode diagnostic
 say `a,return=isize`          ! full evaluation occurs
 say `a[i=2:3],return=isize`   ! full evaluation is bypassed
-say `a[i=100:200],return=isize`    ! WRONG! because full evaluation is bypassed
+say `a[i=100:200],return=isize`    ! correct starting with Ferret v694 (tkt 2213)
 set mode/last diagnostic
 
 ! deliberate errors
diff --git a/bench/bn_if.sub b/bench/bn_if.sub
index 00929b4..a839b94 100644
--- a/bench/bn_if.sub
+++ b/bench/bn_if.sub
@@ -1,5 +1,6 @@
 ! bn430_if.sub
 ! 5/6/96
+! for V693+ deepen the tests of implied ENDIF and unclosed IF test at the end
 
 ! test closed and unclosed IF in a nested GO command
 
@@ -20,6 +21,62 @@ ELSE
 ENDIF
 say ---->nested: all is well after multi-line IF
 
+! ********************
+! Single line IF statements with implied ENDIF
+
+IF 0 THEN say "ERROR if you see this"      <== implied ENDIF
+
+IF 0 THEN \
+     SAY "ERROR if you see this"            <== implied ENDIF
+
+IF 0 THEN
+     SAY "ERROR if you see this"            <== NO implied ENDIF
+ENDIF
+
+IF 1 THEN say "CORRECT" ELSE say "ERROR if you see this"   <== implied ENDIF
+
+IF 1 THEN SAY CORRECT ELSE \
+     SAY "ERROR if you see this"            <== implied ENDIF
+
+! *************
+! unclosed IF conditions get closed with a warning
+REPEAT/I=1:2 (SAY "LOOP=`i`"; IF 1 THEN; SAY more)
+REPEAT/I=1:2 (SAY "LOOP=`i`"; IF 0 THEN; SAY more)
+
+(SAY "semicolon group"; IF 1 THEN; SAY more)
+(SAY "semicolon group"; IF 0 THEN; SAY more)
+
+! ***************
+! deliberate IF syntax errors
+SET MODE IGNORE
+! this should be detected as an error as it attempts to mix the
+!      single line IF syntax and the multi-line IF syntax
+IF 1 THEN SAY CORRECT ELSE
+     SAY "WE SEE THIS CUZ OF IMPLIED CLOSE TO THE PREVIOUS"
+ENDIF   ! DELIBERATE ERROR -- THIS EXECUTED AS A STAND_ALONE COMMAND
+
+! this should be detected as an error as ELIF cannot be in single line IF
+IF 0 THEN say ERROR ELIF 1 THEN say "CORRECT if you see this"
+
+! another error: trash after ENDIF
+IF 0 THEN say ERROR ELSE say "CORRECT if you see this" ENDIF say trash
+
+SET MODE/LAST IGNORE
+
+
 SAY ">>> --> DELIBERATE WARNING: UNCLOSED IF in NESTED GO FILE<<<"
 IF yes THEN
   say ---->... now inside of nested IF clause
+  IF 0 THEN
+    IF 1 THEN
+
+! note: these deserve a test, as well, but they only serve as documentation
+! here in this script, since they are skipped by the preceding "IF 0"
+     IF 0 THEN
+       REPEAT (SAY "ERROR -- NOT ALLOWED"; ENDIF)
+
+     IF 0 THEN
+       (SAY "ERROR -- NOT ALLOWED"; ENDIF)
+
+
+
diff --git a/bench/bn_labwid.jnl b/bench/bn_labwid.jnl
index 2bc5bcc..aab7a19 100644
--- a/bench/bn_labwid.jnl
+++ b/bench/bn_labwid.jnl
@@ -2,7 +2,19 @@
 ! string.  For multi-line strings, returns length of
 ! the longest line.
 
+! In pyFerret fonts, there must be an open window before we
+! can query font information.  The following is an error
+
+set mode ignore
 LIST LABWID("aaaaabbbbb", .15)
+cancel mode ignore
+
+go ptest
+
+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"
+
 LIST LABWID("aaaaabbbbb", .10)
 LIST LABWID("aaaaabbbbb<NL>ee", .15)
 LIST LABWID("ee<NL>aaaaabbbbb", .15)
@@ -12,10 +24,3 @@ LIST LABWID("@IISTRING", .15)
 LIST LABWID("@SSSTRING", .15)
 LIST LABWID("@SSSTRING<NL>@IISTRING", .15)
 LIST LABWID("@IISTRING<NL>@SSSTRING", .15)
-
-
-go ptest
-
-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"
diff --git a/bench/bn_legend_labels.jnl b/bench/bn_legend_labels.jnl
new file mode 100644
index 0000000..0da4bd3
--- /dev/null
+++ b/bench/bn_legend_labels.jnl
@@ -0,0 +1,20 @@
+! bn_legend_labels.jnl
+! The legend labels on a multi-line plot describe the
+!  variable and context but are not controlable by the user.
+!
+! /KEY=title tells Ferret to label the legend with the variable
+! title.
+! *acm* 2/4/2015 Ticket 2231
+
+use coads_climatology
+let/title=January sst1 = sst[l=1]
+let/title=February sst2 = sst[l=2]
+let/title=March sst3 = sst[l=3]
+
+! Draw a plot and show the labels on the legend.
+plot/x=300/y=20:65 sst1,sst2,sst3
+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
diff --git a/bench/bn_lon_lat_time_string.jnl b/bench/bn_lon_lat_time_string.jnl
new file mode 100644
index 0000000..37c118a
--- /dev/null
+++ b/bench/bn_lon_lat_time_string.jnl
@@ -0,0 +1,19 @@
+! 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.
+
+show function lon_lat_time_string
+
+! Longitudes are translated to 0:360 range
+let lon = {-172.44, 210.01, -19.5}
+
+! latitudes are labeled N or S
+let lat = {3.12, 4.9, -15.03}
+
+! Time steps are interpreted in terms of a time axis
+let time = {1,2,3}
+define axis/t=1-jan-2001:31-jan-2001:1/units=days/t0=1-jan-2001 taxis
+let tt = t[gt=taxis]
+
+list lon_lat_time_string(lon, lat, time, tt, "my_string")
+
diff --git a/bench/bn_mode_logo_lab.jnl b/bench/bn_mode_logo_lab.jnl
index c18d71d..beadc20 100644
--- a/bench/bn_mode_logo_lab.jnl
+++ b/bench/bn_mode_logo_lab.jnl
@@ -53,5 +53,5 @@ polygon/axes=1,0,1,0 {1,2,1}, {2,1,0.5}
 
 ! restore state of modes
 cancel view
-set mode logo
+cancel mode logo
 set mode labels
diff --git a/bench/bn_multi_decade.jnl b/bench/bn_multi_decade.jnl
index e7c435f..f7962ca 100644
--- a/bench/bn_multi_decade.jnl
+++ b/bench/bn_multi_decade.jnl
@@ -2,7 +2,7 @@
 ! New default no-small tics for multi-decade plots
 ! See bug 670
 
-def axis/t="01-JAN-1860":"30-DEC-2300":5/edges/units="Days"/cal="360d" simutaxis1
+def axis/t="01-JAN-1860":"30-DEC-2300":1/edges/units="years"/cal="360d" simutaxis1
 let tvar = t[gt=simutaxis1]*-1E+34
 
 define view/x=0:1/y=0.000:0.125 v1
diff --git a/bench/bn_odd_variable_name.jnl b/bench/bn_odd_variable_name.jnl
index 20c2a31..90ab3f5 100644
--- a/bench/bn_odd_variable_name.jnl
+++ b/bench/bn_odd_variable_name.jnl
@@ -11,7 +11,10 @@ list 'v2-and-minus'  		! Now the proper syntax
 list x 				! Deliberate error
 list 'X'			! Now the proper syntax
 list i  			! Deliberate error
-list 'i'  			! Deliberate error
+
+! v694 No longer an error: See ticket 2050
+list 'i'  			! 
+
 list 'I'			! Now the proper syntax
 list 'V1' - 'v1'
 list 'I'[i=6:15 at sbx:10] - 'X'[i=6:15 at ave]
diff --git a/bench/bn_outline_poly.jnl b/bench/bn_outline_poly.jnl
new file mode 100644
index 0000000..f0926c7
--- /dev/null
+++ b/bench/bn_outline_poly.jnl
@@ -0,0 +1,4 @@
+set win /xinch=8 /thick=1 /asp=1 /outline=5 1
+let v = 2*3.14159*x[gx=0:1:.01]
+poly/hl=-1:1/vl=-1:1/key/pal=red/thick=1/opac=50 sin(v), cos(v)
+frame /file=outline_poly.pdf
diff --git a/bench/bn_permute_ascii.jnl b/bench/bn_permute_ascii.jnl
new file mode 100644
index 0000000..a563b5d
--- /dev/null
+++ b/bench/bn_permute_ascii.jnl
@@ -0,0 +1,79 @@
+! bn_permute_ascii.jnl
+! test permutations when reading ascii data, in E and F directions
+! 11/18/2014
+! see ticket 2217: was not working for grids in E and F
+
+
+! First with T axis
+
+! unpermuted
+def axis/t=1:12:1 t12
+define axis/x=1:4:1 x4ax
+def grid/x=x4ax/t=t12 txgrid
+ FILE/SKIP=4/VAR="Tm"/COL=12/order=tx/GRID=txgrid fxdata.dat
+sh dat
+list tm
+
+! permuted
+def axis/t=1:12:1 t12
+define axis/x=1:4:1 x4ax
+def grid/x=x4ax/t=t12 txgrid
+FILE/SKIP=4/VAR="Tm"/COL=12/order=tx/GRID=txgrid fxdata.dat
+sh dat
+list tm
+
+! Then same with F axis
+can data/all
+
+def axis/f=1:12:1 f12
+define axis/x=1:4:1 x4ax
+def grid/x=x4ax/f=f12 fxgrid
+ FILE/SKIP=4/VAR="Tm"/COL=12/order=fx/GRID=fxgrid fxdata.dat
+sh dat
+list tm
+
+! Read same data in y-z-t
+can data/all
+
+def axis/t=1:6:1 t6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/t=t6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/GRID=grid3d fxdata.dat
+sh dat
+list tm
+
+! And permuted
+
+can data/all
+
+def axis/t=1:6:1 t6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/t=t6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/order=tyz/GRID=grid3d fxdata.dat
+sh dat
+list tm
+
+! Now with Y-Z-E
+
+can data/all
+
+def axis/e=1:6:1 e6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/e=e6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/GRID=grid3d fxdata.dat
+sh dat
+list tm
+
+can data/all
+
+def axis/e=1:6:1 e6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/e=e6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/order=eyz/GRID=grid3d fxdata.dat
+sh dat
+list tm
+
diff --git a/bench/bn_plot.jnl b/bench/bn_plot.jnl
index b60f16e..170cbd1 100644
--- a/bench/bn_plot.jnl
+++ b/bench/bn_plot.jnl
@@ -6,12 +6,12 @@
 ! v581 - for the last set, cancel mode logo, so that .plt files are comparable.
 
 ! 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
+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
 
 ! some variables for plotting
@@ -58,12 +58,12 @@ 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)
+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/text=.6/xlim=.333,1/ylim=.5,1 um6    ! redefine it longer in x (11/92)
+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))
@@ -82,7 +82,7 @@ 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)
+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
@@ -96,7 +96,7 @@ 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)
+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
diff --git a/bench/bn_plot_ribbon_gaploc.jnl b/bench/bn_plot_ribbon_gaploc.jnl
new file mode 100644
index 0000000..d520c54
--- /dev/null
+++ b/bench/bn_plot_ribbon_gaploc.jnl
@@ -0,0 +1,38 @@
+! bn_plot_ribbon_gaploc.jnl
+! 7/20/2015 *acm*  new PLOT/VS/RIBBON/GAPLOC
+!
+! If a trajectory leaves the selected region and then travels 
+! 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.
+
+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
diff --git a/bench/bn_ps.jnl b/bench/bn_ps.jnl
index 4f5d073..349b6a5 100644
--- a/bench/bn_ps.jnl
+++ b/bench/bn_ps.jnl
@@ -4,12 +4,12 @@
 ! *kob*
 
 ! 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
+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
 
 ! some variables for plotting
@@ -56,12 +56,12 @@ 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)
+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/text=.6/xlim=.333,1/ylim=.5,1 um6    ! redefine it longer in x (11/92)
+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))
diff --git a/bench/bn_return_defined.jnl b/bench/bn_return_defined.jnl
new file mode 100644
index 0000000..f9e6f74
--- /dev/null
+++ b/bench/bn_return_defined.jnl
@@ -0,0 +1,15 @@
+! bn_return_defined.jnl
+! 5/3/2015 *acm*
+! `return=defined` returns 1 if the user variable is defined
+! see ticket 2293
+
+let a = b
+say `a,r=defined` `b,r=defined`
+
+! abbreviate to 3 letters
+use levitus_climatology
+let temp2 = 2*temp
+say `temp2,return=def`
+
+! returns false for file variables
+say `temp,return=defined`
diff --git a/bench/bn_save_justdim.jnl b/bench/bn_save_justdim.jnl
new file mode 100644
index 0000000..14ba126
--- /dev/null
+++ b/bench/bn_save_justdim.jnl
@@ -0,0 +1,24 @@
+! 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.
+!
+! Allows for a dimension and a 2-D variable to have the same name.
+!  see ticket 2227
+! 1/21/2015 ACM
+
+use twodtime.nc
+sh dat
+
+! previously this gave a name-in-use error
+save/file=a.nc/clobber time
+
+!  The file has 2D TIME variable, and TIME as a dimension.
+sp ncdump a.nc >> all_ncdump.out
+
+! Now, keep case and axis name as on input
+CANCEL MODE upcase
+
+save/clobber/keep/file=a.nc time
+sp ncdump a.nc >> all_ncdump.out
+
+SET MODE/LAST upcase_output
diff --git a/bench/bn_strings.jnl b/bench/bn_strings.jnl
index c150b7d..f5d681b 100644
--- a/bench/bn_strings.jnl
+++ b/bench/bn_strings.jnl
@@ -165,12 +165,15 @@ list/nohead if {0,1} THEN "hello"
 list/nohead if {0,1} THEN "hello" ELSE "goodbye"
 list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", ") + "friend"
 list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
+
+SET MODE IGNORE
 list/nohead ysequence({98, 99})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
 list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+99 ELSE "goodbye"+", my ") + "friend"
 list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+99) + "friend"
 list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + 99
 
 ! numerical operators applied to strings
+
 list/nohead "b" - {"a","b"}
 list/nohead "b" * {"a","b"}
 list/nohead "b" / {"a","b"}
@@ -182,6 +185,8 @@ list/nohead SIN({"a","b","c"})
 list/nohead MAX("a",{"a","b","c"})
 list/nohead MAX(1,{"a","b","c"})
 
+CANCEL MODE IGNORE
+
 ! transformations applied to strings
 let a = {"a","b","c","d"}
 list a[i=@shf]
diff --git a/bench/bn_time2d.jnl b/bench/bn_time2d.jnl
new file mode 100644
index 0000000..de8b388
--- /dev/null
+++ b/bench/bn_time2d.jnl
@@ -0,0 +1,19 @@
+! bn_time2d.jnl
+! 1/30/2015 ACM
+
+! initial changes to handle 2d time variable: forecast and time
+! plot both axes as formatted time axes.
+
+use twodtime.nc
+sh dat
+sh att time
+
+!  The file has the t axis as just a dimension. Define another
+!  axis with time units
+
+def axis/t=1:8:1/units=month/t0=1-nov-2014 taxis
+let time2d = time[gt=taxis at asn]
+set att/like=time time2d
+
+shade time2d
+shade/trans time2d
diff --git a/bench/bn_time_short_axes.jnl b/bench/bn_time_short_axes.jnl
new file mode 100644
index 0000000..0e9d98b
--- /dev/null
+++ b/bench/bn_time_short_axes.jnl
@@ -0,0 +1,27 @@
+! 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
diff --git a/bench/bn_vec_curv.jnl b/bench/bn_vec_curv.jnl
index ca9266f..dfe46a1 100644
--- a/bench/bn_vec_curv.jnl
+++ b/bench/bn_vec_curv.jnl
@@ -67,4 +67,4 @@ let mypage = my + 0*mx
 vec/title="Stretched grid" a,b,mxpage,mypage
 
 can mode meta
-set mode logo
+
diff --git a/bench/bn_vtree.jnl b/bench/bn_vtree.jnl
index 0c524f6..0c919de 100644
--- a/bench/bn_vtree.jnl
+++ b/bench/bn_vtree.jnl
@@ -1,6 +1,7 @@
 ! bn_tree.jnl
 
 ! 11/2013 -- demonstrate SHOW VARIABLE/TREE and RETRUN=STATUS
+! 12/14 update to test regridding output using bn_vtree_regrid.jnl
 
 CANCEL DATA/ALL
 ! pure abstract variable -- no dataset
@@ -171,3 +172,7 @@ let a = fvz.long_name[d=1]
 show var/tree a
 let a = ..history[d=1]
 show var/tree a
+
+! *****
+! 12/14 addition to test regridding dependencies
+go bn_vtree_regrid
diff --git a/bench/bn_vtree_regrid.jnl b/bench/bn_vtree_regrid.jnl
new file mode 100644
index 0000000..5b0e591
--- /dev/null
+++ b/bench/bn_vtree_regrid.jnl
@@ -0,0 +1,178 @@
+! bn_vtree_regrid.jnl
+! exercise 12/14 enhancements to display regrid target on a separate line 
+! updated 1/26/15 to exercise multiple regrid target outputs
+! updated 2/23/15 to report target of regrid even when aux regridding occurs
+
+! case 1: target grid known,   regridded variable known
+let myvar = 1           ! var to be regridded is known
+let gvar = x[x=1:5]    ! target regridding var is known
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree a
+
+! case 2: target grid known,   regridded variable unknown
+canc var/all
+! myvar unknown
+let gvar = x[x=1:5]    ! target regridding var is known
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree a
+
+! case 3: target grid unknown, regridded variable known
+canc var/all
+let myvar = 1           ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree a
+
+! case 4: target grid unknown, regridded variable unknown
+canc var/all
+! myvar unknown
+! gvar  unknown
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree a
+
+! **************************************
+! same tests but now with a dataset named with the target grid
+use coads_climatology
+use levitus_climatology   ! default to d=2
+
+! case 1: target grid known,   regridded variable known
+canc var/all
+let myvar = 1           ! var to be regridded is known
+let a = myvar[g=sst[d=1]] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree=all a
+
+! case 2: target grid known,   regridded variable unknown
+canc var/all
+! myvar unknown
+let a = myvar[g=sst[d=1]] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree=all a
+
+! case 3a: target grid unknown, regridded variable known
+canc var/all
+let myvar = 1           ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=gvar[d=1]] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree=all a
+
+! case 3b: target grid unknown cuz of dataset, regridded variable known
+canc var/all
+let myvar = 1           ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=sst[d=bad_dset]] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree=all a
+
+! case 4: target grid unknown, regridded variable unknown
+canc var/all
+! myvar unknown
+! gvar  unknown
+let a = myvar[g=gvar[d=1]] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree=all a
+
+! *******************
+! file variable listing, only
+canc var/all
+let myvar = 1  
+let fvar = airt[d=1]
+let kvar = 1  ! known var
+* /TREE=FILE with know regrid target
+let a = myvar[g=sst[d=1]] + fvar + kvar
+sho var/tree=file a
+
+* /TREE=FILE with unknow regrid target
+let a = myvar[g=unknown] + fvar + kvar
+sho var/tree=file a
+
+! ********************
+! regridding to multiple targets
+
+define axis/x=140e:160e:1 x1
+define axis/y=20s:20n:1   y1
+LET myvar = X[gx=x1] + Y[gy=y1]
+
+define axis/y=5s:5n:.5 yp5
+
+go bn_vtree.sub myvar[g=temp]
+
+! second target *is* a named variable
+go bn_vtree.sub myvar[g=temp,gy=sst[d=1]]
+go bn_vtree.sub myvar[gx=temp,gy=sst[d=1]]
+go bn_vtree.sub myvar[gy=sst[d=1],gx=temp]  ! reverse order, only
+
+! second target is not a named variable
+go bn_vtree.sub myvar[g=temp,gy=yp5]
+go bn_vtree.sub myvar[gx=temp,gy=yp5]
+go bn_vtree.sub myvar[g=temp,y=5s:5n:.5]
+go bn_vtree.sub myvar[g=sst[d=1],y=5s:5n:.5]
+
+! multiple targets, including unknown variables
+go bn_vtree.sub myvar[g=temp,gy=mybad]
+go bn_vtree.sub myvar[g=mybad,gy=temp]
+go bn_vtree.sub myvar[gy=temp,g=mybad[d=1]]
+go bn_vtree.sub myvar[g=temp,gx=mybad[d=1],gy=mybad2]! distinct unknown targets
+go bn_vtree.sub myvar[gx=temp,gy=temp,g=mybad[d=1]]  ! dup known targets
+go bn_vtree.sub myvar[g=temp,gx=mybad,gy=mybad]      ! dup unknown suppressed
+go bn_vtree.sub myvar[g=temp,gx=mybad[d=2],gy=mybad] ! dup unknown missed
+go bn_vtree.sub myvar[g=temp,gx=mybad,gy='MYBAD']    ! dup unknown missed
+go bn_vtree.sub myvar[g=myvar,gy=mybad]
+go bn_vtree.sub myvar[gy=yp5,g=mybad]
+go bn_vtree.sub myvar[g=mybad,y=5s:5n:.5]
+
+! 2/15 additions -- auxiliary variable regridding
+USE levitus_climatology
+LET myzvar = Z[Z=100:500:100]
+DEFINE AXIS/z/units=meters zax = myzvar
+SET REGION/i=101:102/j=41:42
+
+LET/D=levitus_climatology depth = z[g=temp]+ 0*temp[k=1]
+
+! valid aux var and target variable
+LET tempz = temp[gz(depth)=myzvar]
+vtree=all tempz
+
+! valid aux var.  Target is axis name
+LET tempz1 = temp[gz(depth)=zax]
+vtree=all tempz1
+
+! valid aux var.  Target is unknown
+LET tempz2 = temp[gz(depth)=unknown_target]
+vtree=all tempz2
+
+! --- unknown aux var, valid target ---
+! When an unknown auxiliary variable error occurs it suppresses 
+! the reporting of both the variable being regridded and the regrid target
+! The underlying issue is that GET_VAR_CONTEXT (called from is_dependencies.F) 
+! can return only a single error status
+! If it contains ferr_unknown_auxvar, then the success or failure of other
+! parts of the context processing are unknown.
+! One could kludge the code to find a way around this, but the violence
+! required is not justified in order to fix this small loss in error reporting.
+LET tempz3 = temp[gz(unknown_aux)=myzvar]
+vtree=all tempz3
+
+! a syntax error leads to a similar behavior
+LET tempz3a = temp[gz(unknown_aux)=myzvar,SYNTAX_ERROR]
+vtree=all tempz3a
+
+! similar behavior here:  the unknown_target does not get reported
+LET tempz4 = temp[gz(unknown_aux)=unknown_target]
+vtree=all tempz4
+
+
diff --git a/bench/check_pdf_ImageMagick b/bench/check_pdf_ImageMagick
new file mode 100755
index 0000000..111c057
--- /dev/null
+++ b/bench/check_pdf_ImageMagick
@@ -0,0 +1,52 @@
+#!/bin/csh -f
+# script to check image files created after a run of the 
+# benchmark scripts against master image files. 
+#
+# ALSO NOTE THE compare utility
+# Here is a way to compare two images by subtracting them using ImageMagick's
+# "composite" utility.
+# 
+#   composite -compose subtract input1.png input2.png output.png
+# 
+# Pixels which are the same in both input images will be black in the output
+# image.
+
+# Clean up anything left from a previous check_metafiles_ImageMagick
+
+rm -f *.pdf.diff.pdf
+
+cd test_results
+set pdf_files = `ls *.pdf`
+set num_pdf_files = `ls -l *.pdf | wc -l `
+cd ../
+   
+set err_pdf = 0
+@ count = 0
+
+foreach pdf_file ($pdf_files)
+    set size = `ls -l $pdf_file | awk '{print $5}'`
+    set size2 = `ls -l test_results/$pdf_file | awk '{print $5}'`
+    if ("$size" != "$size2") then
+       echo "pdf files differ $pdf_file size $size test_results/$pdf_file size $size2" 
+       
+       cp test_results/$pdf_file test_results_$pdf_file
+       compare $pdf_file test_results/$pdf_file $pdf_file.diff.pdf
+       display $pdf_file &
+       display test_results_$pdf_file &  
+       display $pdf_file.diff.pdf
+
+       set err_pdf = 1
+    endif
+    @ count += 1
+
+end
+
+if ($err_pdf) then
+	echo "CHECK pdf FILES - THERE HAS BEEN AN ERROR"
+else
+	echo "    pdf files look good....."
+endif 
+
+# clean up
+rm -f *.pdf.diff.pdf
+rm -f test_results_*.pdf
diff --git a/bench/edge.nc b/bench/edge.nc
new file mode 100644
index 0000000..8157b66
Binary files /dev/null and b/bench/edge.nc differ
diff --git a/bench/err570_shakeylab.jnl b/bench/err570_shakeylab.jnl
index 8e15355..f6a4917 100644
--- a/bench/err570_shakeylab.jnl
+++ b/bench/err570_shakeylab.jnl
@@ -12,7 +12,7 @@
 use coads_climatology
 ppl dfltfnt cr
 
-define viewport/axes/text=1/xlim=0.1:0.85/ylim=`1/3`:`2/3` vp_1
+define viewport/axes/xlim=0.1:0.85/ylim=`1/3`:`2/3` vp_1
 set viewport vp_1
 
 fill/set/L=2 sst
@@ -29,7 +29,7 @@ ppl fill
 
 !
 
-define viewport/axes/text=1/xlim=0.1:0.85/ylim=`1/3`:`2/3` vp_1
+define viewport/axes/xlim=0.1:0.85/ylim=`1/3`:`2/3` vp_1
 set viewport vp_1
 
 shade/set/L=2 sst
diff --git a/bench/err580_def_view_axes.jnl b/bench/err580_def_view_axes.jnl
index 921eb77..7a575a5 100644
--- a/bench/err580_def_view_axes.jnl
+++ b/bench/err580_def_view_axes.jnl
@@ -9,7 +9,7 @@
 
 ! Does not crash with Ferret v5.50 
 
-define view/x=0.2:0.4/y=.2:.4/text=0.75/axes v1
+define view/x=0.2:0.4/y=.2:.4/axes v1
 
 set window/clear
 set mode metafile viewaxes.plt
diff --git a/bench/err600_reset_redefine_axis.jnl b/bench/err600_reset_redefine_axis.jnl
index 5d332c6..d947ce8 100644
--- a/bench/err600_reset_redefine_axis.jnl
+++ b/bench/err600_reset_redefine_axis.jnl
@@ -6,10 +6,10 @@
 use coads_climatology
 def sym timeax = `sst,return=taxis` 
 
-show att/all ($timeax)
+show att/all (($timeax))
 show axis ($timeax)
 define axis/t0=1-jan-0001/t=1:3:1/unit=months ($timeax)
-show att/all ($timeax)
+show att/all (($timeax))
 show axis ($timeax)
 
 ! Changing axis with the SET AXIS command
@@ -17,11 +17,11 @@ show axis ($timeax)
 can data/all
 use gt4d011
 def sym timeax = `temp,return=taxis` 
-show att/all ($timeax)
+show att/all (($timeax))
 show axis ($timeax)
 
 set ax/modulo/calendar=noleap/t0=1-jan-1900/units=days ($timeax)
-show att/all ($timeax)
+show att/all (($timeax))
 show axis ($timeax)
 
 
@@ -31,13 +31,13 @@ can data/all
 use gt4d011
 def sym timeax = `temp,return=taxis` 
 def sym zax = `temp,return=zaxis` 
-show att/all ($timeax)
+show att/all (($timeax))
 show axis ($zax)
 
 cancel axis/modulo ($timeax)
-show att/all ($timeax)
+show att/all (($timeax))
 show axis ($timeax)
 cancel axis/depth ($zax)
-show att/all ($zax)
+show att/all (($zax))
 show axis ($zax)
 
diff --git a/bench/err684_axticlab.jnl b/bench/err684_axticlab.jnl
index f9ee2bc..8950666 100644
--- a/bench/err684_axticlab.jnl
+++ b/bench/err684_axticlab.jnl
@@ -11,5 +11,9 @@ let/title="tic labels on dependent axis" var = {\
 1.6897,1.687,1.6843,1.6817,1.679,1.6765,1.676,1.676}
 
 plot/line/sym/title="Vert axis labels should be 1.675 thru 1.715" var
-can mode meta
+cancel mode meta
 
+! rename the metafile. Else we get weird contents in axticlabel.plt 
+! once the whole benchmark suite has finished. (why?)
+set mode meta metafile.plt
+cancel mode meta
diff --git a/bench/err691_pt_in_poly.jnl b/bench/err691_pt_in_poly.jnl
new file mode 100644
index 0000000..a954d1b
--- /dev/null
+++ b/bench/err691_pt_in_poly.jnl
@@ -0,0 +1,29 @@
+! err691_pt_in_poly
+! ticket 1961: modulo longitude for pt_in_poly
+! and sending subset of the xy field
+
+use coads_climatology
+
+let xpts = {64,81,81,82,88,88,79,79,76,73,68,64}
+let ypts = {31,30,29,29,27,24,20,19,20,25,27,31}
+
+let pts = pt_in_poly(sst[L=5,x=60:90,y=15:35], xpts, ypts)
+shade/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
+
+! Put the xpts on different modulo branches
+! Previously  the list commands would have listed -1,-1
+
+let xpts0 = {64,81,81,82,88,88,79,79,76,73,68,64}
+let/title=lon/units=degrees_east xpts = xpts0 + 360
+
+shade/title="Plus 360"/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
+
+let/title=lon/units=degrees_east xpts = xpts0 - 360
+
+shade/title="Minus 360"/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
diff --git a/bench/err691_substring_arg.jnl b/bench/err691_substring_arg.jnl
new file mode 100644
index 0000000..3777f93
--- /dev/null
+++ b/bench/err691_substring_arg.jnl
@@ -0,0 +1,9 @@
+! err693_substring_arg
+! ACM 12/10/2014
+! ticket 2210. Argument checking was not done for the SUBSTRING function
+
+set mode ignore
+list substring("hello",1,-2)
+list substring("hello",1,-3)
+
+set mode/last ignore
diff --git a/bench/err693_attr_in_gcfcn.jnl b/bench/err693_attr_in_gcfcn.jnl
new file mode 100644
index 0000000..9e5b824
--- /dev/null
+++ b/bench/err693_attr_in_gcfcn.jnl
@@ -0,0 +1,21 @@
+! err693_attr_in_gcfcn.jnl
+! ACM 12/10/2014
+! bug 2220 varname.attname as an argument to grid-changing functions. 
+! All except the last of these caused various ungraceful stops.
+
+let/units="m" a = 1
+list is_element_of_str(a.units,{"m","a"})
+
+let/units="m" a = 1
+let b = a.units
+list is_element_of_str(b,{"m","a"})
+
+
+use levitus_climatology
+
+list is_element_of_str_n (temp.long_name, {"Temperature", "temp"})
+
+let a = temp.units
+list is_element_of_str (a, {"Kelvin", "Celsius", "DEG C"})
+
+
diff --git a/bench/err693_check_edges.jnl b/bench/err693_check_edges.jnl
new file mode 100644
index 0000000..d13b3a1
--- /dev/null
+++ b/bench/err693_check_edges.jnl
@@ -0,0 +1,23 @@
+! err693_check_edges
+! Bug 2280. Regularly-spaced coordinates with edges did
+! not check the location of the edges but just ignored them
+
+
+use edge
+
+! Should be a regular axis
+
+say `x1,return=title`
+sh axis `x1,return=xaxis`
+
+! Should be an irregular axis
+say `x2,return=title`
+sh axis `x2,return=xaxis`
+
+! Should be an irregular axis
+say `x3,return=title`
+sh axis `x3,return=xaxis`
+
+! Should be an irregular axis -  previously would have been marked as regular
+say `x4,return=title`
+sh axis `x4,return=xaxis`
diff --git a/bench/err693_edit_useratt.jnl b/bench/err693_edit_useratt.jnl
new file mode 100644
index 0000000..c1b1605
--- /dev/null
+++ b/bench/err693_edit_useratt.jnl
@@ -0,0 +1,26 @@
+! err693_edit_useratt.jnl
+! ticket 2249: set attribute properties for user-defined variable
+
+use err491_attval.cdf
+list/x=135.402W:135.321W/y=58.609 elev
+
+
+! Rename the file variable, define a variable using its name
+set var/name=elev_in elev
+let  elev = missing(elev_in, -1.e34)
+
+! Inherit attributes from the file variable.
+! cancel writing the scale attributes
+set att/like=elev_in elev
+can att/output elev.scale_factor
+can att/output elev.add_offset
+
+! set the bad-flag (can't do this before the SET ATT/LIKE
+set var/bad=-1.e34 elev
+
+! save 
+save/clobber/file=a.nc elev
+can var/all
+use a.nc
+list/x=135.402W:135.321W/y=58.609 elev
+
diff --git a/bench/err693_ef_axis_precision.jnl b/bench/err693_ef_axis_precision.jnl
new file mode 100644
index 0000000..c31d884
--- /dev/null
+++ b/bench/err693_ef_axis_precision.jnl
@@ -0,0 +1,13 @@
+ ! NOAA/PMEL TMAP
+ ! FERRET v6.94  
+ ! Linux 2.6.32-504.12.2.el6.x86_64 64-bit - 03/20/15
+ ! 11-May-15 16:51     
+
+define axis/f faxis = {0.001, 0.123, 0.234, 0.498}
+define axis/e eaxis = {1001.1009, 1234.005, 2112.321, 2520.45}
+let efvar = _M[ge=eaxis] + _n[gf=faxis]
+set view upper; plot/n=3 efvar
+set view lower; plot/m=2 efvar
+list/n=3 efvar
+list/m=2 efvar
+q
diff --git a/bench/err693_fcn_of_attvar.jnl b/bench/err693_fcn_of_attvar.jnl
new file mode 100644
index 0000000..d54bdc5
--- /dev/null
+++ b/bench/err693_fcn_of_attvar.jnl
@@ -0,0 +1,11 @@
+! err693_fcn_of_attvar.jnl
+! Ticket 2291 Function of attribute-expression 
+! returned just the first result
+
+use coads_climatology
+list sst.dimnames
+list dncase(sst.dimnames)
+list strlen( sst.dimnames)
+list substring(sst.dimnames,2,3)
+list dncase(substring(sst.dimnames,2,3))
+list ysequence(dncase(sst.dimnames))
diff --git a/bench/err693_frame_types.jnl b/bench/err693_frame_types.jnl
new file mode 100644
index 0000000..45a69cd
--- /dev/null
+++ b/bench/err693_frame_types.jnl
@@ -0,0 +1,20 @@
+! bn_frame_types.jnl
+! Ticket 2275
+! The default file type for FRAME was still HDF
+
+set mode ignore
+
+use coads_climatology
+shade/l=1 sst
+
+! This issued an error and quit
+frame/format=hdf/file=a.hdf
+
+! so did this
+frame/file=a.png
+
+! this is (always) ok
+frame/file=a.gif
+frame/format=gif file=a.plot
+
+set mode/last ignore
diff --git a/bench/err693_if_then_flow_1368.jnl b/bench/err693_if_then_flow_1368.jnl
new file mode 100644
index 0000000..b8cc75f
--- /dev/null
+++ b/bench/err693_if_then_flow_1368.jnl
@@ -0,0 +1,30 @@
+! testing ticket 1368 - first found in Ferret v5.812 (Jan 28, 2010)
+
+! this is still a bug in V69+ 
+! the initial IF command is not being closed by the first ENDIF
+! it is skipping down to the elif command
+
+define symbol xend 180
+let key_flag = 0
+
+! test 1 - line 1 false condition should suppress both outputs
+IF `($xend) GT 360` THEN
+   SAY "ERROR - THIS MESSAGE SHOULD NOT DISPLAY"
+   IF key_flag EQ 0 THEN SAY "point E2"
+ENDIF
+
+
+! test 2 - line 1 false condition should cause else clause - "point G"
+let dxymin = 0.20
+if `dxymin lt 0.12` then
+  SAY "ERROR - this message should be silent"
+elif `dxymin lt 0.25` then
+  SAY "CORRECT.  this message should display"
+endif
+
+! test 3 - this is from bug #918 -- looks like the same bug as #1368
+IF 0 THEN
+  let a = 1
+  IF a THEN
+  ENDIF
+ENDIF
diff --git a/bench/err693_if_then_flow_1446.jnl b/bench/err693_if_then_flow_1446.jnl
new file mode 100644
index 0000000..37b7c60
--- /dev/null
+++ b/bench/err693_if_then_flow_1446.jnl
@@ -0,0 +1,14 @@
+! testing ticket 1446
+
+! the presence of a tab preceding the "!" comment caused a parsing error
+
+! the behavior of this even in v69+ today is problematic in that
+! it echos an ENDIF statement that should be a plain old skip
+
+IF 0 THEN
+  LET a = 12
+  IF `a` THEN	! a comment
+    say "IF YOU ARE SEEING THIS AN ERROR HAS OCCURED "
+  ENDIF
+ENDIF
+
diff --git a/bench/err693_if_then_flow_1681.jnl b/bench/err693_if_then_flow_1681.jnl
new file mode 100644
index 0000000..96f0860
--- /dev/null
+++ b/bench/err693_if_then_flow_1681.jnl
@@ -0,0 +1,29 @@
+! testing ticker 1681
+
+!The third block of the following script issues an error:
+!ERROR: invalid command: ENDIF can only be used in an IF clause
+!
+!Looks like a parsing bug -- it seems the ENDIF inside the REPEAT is being
+!applied to the outermost IF. Note that the error goes away if we change
+!the outer 0 to a 1.
+
+
+say "test1"
+if 0 then
+  repeat/RANGE=1:2 (if 0 then; say "hello1"; endif)
+endif
+
+say "test2"
+if 0 then
+  repeat/RANGE=1:2 (\\
+    if 0 then;\\
+      say "hello2"; endif)
+endif
+
+say "test3"
+if 0 then
+  repeat/RANGE=1:2 (\\
+    if 0 then;\\
+      say "hello3";\\
+    endif)
+endif
diff --git a/bench/err693_if_then_flow_1706.jnl b/bench/err693_if_then_flow_1706.jnl
new file mode 100644
index 0000000..9cf9784
--- /dev/null
+++ b/bench/err693_if_then_flow_1706.jnl
@@ -0,0 +1,11 @@
+! testing ticket 1706
+! 
+def sym a say hi\\; say hi
+
+IF 0 THEN
+ENDIF
+
+! some versions (not v550 but yes v63 but not v6301) fail to say "here"
+IF 1 THEN
+   say here
+ENDIF
diff --git a/bench/err693_if_then_flow_1860.jnl b/bench/err693_if_then_flow_1860.jnl
new file mode 100644
index 0000000..13b4c21
--- /dev/null
+++ b/bench/err693_if_then_flow_1860.jnl
@@ -0,0 +1,41 @@
+! from bug 1860
+! continue line found within grave accents
+
+CANCEL MODE VERIFY
+
+if 0 then
+  if `1 or \
+      1` then
+    say "ERROR IF THIS DISPLAYS"
+  endif
+endif
+
+say "This works:"
+if 1 then
+  if `1 or \
+      1` then
+    say "CORRECT IF THIS DISPLAYS"
+  endif
+endif
+
+say "This works:"
+if 1 then
+  if `1 or \
+      1` then
+    say "CORRECT IF THIS DISPLAYS"
+  endif
+endif
+
+say "This works:"
+if 0 then
+  let condition = 1 or \
+                  1
+  if `condition` then
+    say "ERROR IF THIS DISPLAYS"
+  endif
+else
+  say "CORRECT IF THIS DISPLAYS"
+endif
+
+SET MODE/LAST VERIFY
+
diff --git a/bench/err693_if_then_flow_2211.jnl b/bench/err693_if_then_flow_2211.jnl
new file mode 100644
index 0000000..d7965cb
--- /dev/null
+++ b/bench/err693_if_then_flow_2211.jnl
@@ -0,0 +1,17 @@
+! bug #2211
+
+
+IF 0 THEN
+   rep/name=s/range=1:1 (\
+      IF 1 THEN;\
+      ELSE;\
+      ENDIF)
+ELSE
+   exit/script
+ENDIF
+
+say ERROR: SHOULD NEVER GET HERE
+
+! note that Ferret v631 (10/08/09) does NOT have this bug. v64 (12/07/09) does
+! Ferret v550 has an earlier, different  bug.  It reports
+! "**ERROR: command syntax: ENDIF)"
\ No newline at end of file
diff --git a/bench/err693_if_then_flow_2214.jnl b/bench/err693_if_then_flow_2214.jnl
new file mode 100644
index 0000000..bd2d8e5
--- /dev/null
+++ b/bench/err693_if_then_flow_2214.jnl
@@ -0,0 +1,23 @@
+! bug 2214
+! If we put the "say hi" in parentheses, this seems to work.
+! But parentheses haven't previously been required, so there are a lot of
+! scripts that don't have them.
+
+* 12/14 note (sh) - Ferret handles this situation correctly because
+* PARSE_COMMAND acts on the semi-colons in the full command line *before*
+* it acts on the "IF".  Thus the thress semicolon-connected commands
+* follow the same logical path through Ferret as if they were separated
+* onto three lines
+
+IF 0 THEN; rep/i=1:1 say ERROR; ENDIF
+
+IF 1 THEN; rep/i=1:1 say CORRECT; ENDIF
+
+(IF 0 THEN; rep/i=1:1 say ERROR; ENDIF)
+
+(IF 1 THEN; rep/i=1:1 say CORRECT; ENDIF)
+
+!yes? quit
+!yes? quit
+!yes? ^Z
+!Suspended
diff --git a/bench/err693_inconsistent_quote.jnl b/bench/err693_inconsistent_quote.jnl
new file mode 100644
index 0000000..9b5db06
--- /dev/null
+++ b/bench/err693_inconsistent_quote.jnl
@@ -0,0 +1,10 @@
+! inconsistent interpretation of surrounding double quotes
+! the original source of the problem is in PARSE_COMMAND
+! arg_start and arg_end are set to skip surrounding quotation marks.
+! But since this behavior permeates so many routines it is best to repair
+! the problem in ALL_1_ARG
+
+
+let foobar = 1
+LIST "foobar", "foobar" ! this is correct - list as strings
+LIST "foobar"           ! error: lists the value instead
diff --git a/bench/err693_isize_and_gcfcn.jnl b/bench/err693_isize_and_gcfcn.jnl
new file mode 100644
index 0000000..ee55672
--- /dev/null
+++ b/bench/err693_isize_and_gcfcn.jnl
@@ -0,0 +1,26 @@
+! err693_isize_and_gcfcn.jnl
+! ticket 2213
+! SET REGION interacting with ABSTRACT AXES
+! When the variable using XSEQUENCE was defined, suddenly the
+! region was being applied (inconsistently).
+
+can mode verify
+cancel region 
+set reg/x=25:27
+
+! constant-array variable
+let strs = {"a","b","c","d","e","f","g","h"}
+say `strs,r=isize`
+sh grid strs
+rep/name=n/range=1:`strs,r=isize` (say `strs,r=isize`; let str=strs[i=`n`]; say `strs,r=isize` `str`)
+
+! Now with an xsequenced variable. The result should be the same (bug behavior did 
+! the repeatloop just 3 times.)
+
+let xstrs = xsequence(strs)
+say `xstrs,r=isize`
+sh grid xstrs
+rep/name=n/range=1:`xstrs,r=isize` (say `xstrs,r=isize`; let xstr=xstrs[i=`n`]; say `xstrs,r=isize` `xstr`)
+
+cancel region
+set mode/last verify
diff --git a/bench/err693_isready_dyn_grid_crash.jnl b/bench/err693_isready_dyn_grid_crash.jnl
new file mode 100644
index 0000000..0bb7a3c
--- /dev/null
+++ b/bench/err693_isready_dyn_grid_crash.jnl
@@ -0,0 +1,5 @@
+let/unit="m" b = x[gx=1:5:1]
+say "`b,r=unit`"     ! this causes dynamic grid of b to be created
+let c = x[gx=1:5:2]
+let b2 = b+0*c[gx=b] ! dynamic grid of b exists, but not grid of c
+VTREE b2
diff --git a/bench/err693_isready_hang.jnl b/bench/err693_isready_hang.jnl
new file mode 100644
index 0000000..4e0dde3
--- /dev/null
+++ b/bench/err693_isready_hang.jnl
@@ -0,0 +1,12 @@
+! err693_isready_hang.jnl
+! ACM 12/10/2014
+! ticket 2219.  The last of these commands caused Ferret to hang.
+
+use gt4d011
+def ax/t/t0="`u,r=t0`"/unit="`u,r=tunit`" time = t[gt=u]
+let a = u
+IF `a,r=isready` THEN; let/title="`a,r=title`" a1 = a; ENDIF
+IF `a,r=isready` THEN; let/title="`a,r=title`" a2 = a; ENDIF
+IF `a,r=isready` THEN; let/title="`a,r=title`" a3 = a; ENDIF
+IF `a,r=isready` THEN; let/title="`a,r=title`" a4 = a; ENDIF
+IF `a,r=isready` THEN; let/title="`a,r=title`" a5 = a; ENDIF
diff --git a/bench/err693_lev_nv_over.jnl b/bench/err693_lev_nv_over.jnl
new file mode 100644
index 0000000..ab6fa66
--- /dev/null
+++ b/bench/err693_lev_nv_over.jnl
@@ -0,0 +1,15 @@
+! err693_lev_nv_over.jnl
+! The polygon command with /LEV=20V caused a crash; levels settings incorrect.
+
+! draw any underlay to set up for polymark script
+use coads_climatology
+shade/x=120:250/Y=25s:65n/L=1/pal=white/nokey sst
+
+LET xpts = 180 + 50*COS(2*3.14*I[I=1:50]/60)
+LET ypts = 15  + 20*SIN(2*3.14*I[I=1:50]/60)
+
+! Variable is a constant w/ negative value
+LET sst = -5 + 0*ypts
+
+! The poly/over command caused a Fortran runtime error in tm_fmt_sngl
+GO polymark polygon/over/lev=20v/key/title="SST"  xpts,ypts,sst,square, 0.5
diff --git a/bench/err693_line_over_axis.jnl b/bench/err693_line_over_axis.jnl
new file mode 100644
index 0000000..f496e6e
--- /dev/null
+++ b/bench/err693_line_over_axis.jnl
@@ -0,0 +1,12 @@
+! Ticket 2232: line plots overlaid the plot axes
+show mode meta
+! 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}
+plot/vs/line/thick=3/color=lightblue xval, yval
+
+! any line overlay may draw on the axes
+let xval = {0.0, 0.0, 0.8, 0.2, 0}
+let yval = {0.1, 1.2, 1.2, 0.1, 0.1}
+plot/ribbon/vs/line/thick=3/over/nolab/pal=green_light xval, yval, yval
+
diff --git a/bench/err693_list_missing.jnl b/bench/err693_list_missing.jnl
new file mode 100644
index 0000000..865230a
--- /dev/null
+++ b/bench/err693_list_missing.jnl
@@ -0,0 +1,10 @@
+! err693_list_missing.jnl
+
+let a= {1,2,3}
+let b = 1./0
+
+! Ths listing of b is .... was squashed onto the ends of values of a.  
+! 1   / 1:  1.000..
+! 2   / 2:  2.000..
+
+list a,b
diff --git a/bench/err693_parse_curly.jnl b/bench/err693_parse_curly.jnl
new file mode 100644
index 0000000..0321f93
--- /dev/null
+++ b/bench/err693_parse_curly.jnl
@@ -0,0 +1,14 @@
+! err693_parse_curly.jnl
+! the sub-routine defines a string variable containing commands for overlays in 
+! different directions. the bug was that the parser doesn't handle quoted strings 
+! inside { } if those strings include curly braces.
+! The argument chooses one of the strings with commands and plots the overlay
+
+use gt4d011
+
+shade/i=100/l=1/pal=grayscale temp
+go err693_parse_curly.sub yz
+
+ shade/j=40/l=1/pal=grayscale temp
+go err693_parse_curly.sub xz
+
diff --git a/bench/err693_parse_curly.sub b/bench/err693_parse_curly.sub
new file mode 100644
index 0000000..1f28146
--- /dev/null
+++ b/bench/err693_parse_curly.sub
@@ -0,0 +1,39 @@
+! err693_parse_curly.sub
+! Define a variable with commands for overlays in different directions
+! the bug was that the parser doesn't handle quoted strings inside { } if those
+! strings include curly braces.
+! Choose one of the strings and plot the overlay
+
+! list of valid shapes
+
+let prd_shapes = {"xy", "xz", "yz"}
+
+! List of associated overlays
+! This is the part that's not working; due to bug #2296 we can't write {"...{}..."}.
+
+let prd_overlays = {\
+   "go land 6; go draw_line 180 -90 180 90 1; go draw_box 210 270 -5 5 6/dash=(.04,.06,.04,.06)",\
+   "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) {-1e3,1e3,,-1e3,1e3,,-1e3,1e3,,-136,-136,,-126,-126}, {85,85,,50,50,,20,20,,-1e4,1e4,,-1e4,1e4}",\
+   "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) 1e3*{-1,1,,-1,1,,-1,1},{85,85,,50,50,,20,20}"}
+
+! Then later when we're generating figures, we'll be
+! passing one of these shapes into a script like this:
+
+let p1s_shape = "$1%xy%"
+
+! For the specified shape, find the associated overlay command
+! (default is no overlay).
+let p1s_ov = ""
+IF `prd_shapes,r=isready` THEN
+   rep/name=s/range=1:`prd_shapes,r=isize` (let p1s_this_shape = prd_shapes[i=`s`];\
+      IF `p1s_this_shape EQ p1s_shape` THEN;\
+         let p1s_ov = prd_overlays[i=`s`];\
+         exit/loop;\
+      ENDIF;\
+      )
+   can var p1s_this_shape
+ENDIF
+
+! generate a figure, with the appropriate overlay
+define symbol overcommands = `p1s_ov`
+($overcommands)
diff --git a/bench/err693_redef_rec_axis.jnl b/bench/err693_redef_rec_axis.jnl
new file mode 100644
index 0000000..98454a1
--- /dev/null
+++ b/bench/err693_redef_rec_axis.jnl
@@ -0,0 +1,20 @@
+! err693_redef_rec_axis.jnl
+! ticket 2271. Redefining the record axis meant
+! that SHOW AXIS/FULL couldnt get the time axis info
+
+define axis/x=1:5:1 xax
+define axis/y=2:10:2 yax
+define axis/t=1:7:1 tredef
+let var = x[gx=xax] + y[gy=yax] + t[gt=tredef]
+save/clobber/file=a.nc var
+
+can var/all
+can axis xax
+can axis yax
+can axis tredef
+
+use a.nc
+define axis/t=1:7:1/units=days/t0=1-jan-2000 tredef
+
+! Previously the output had  time range: ???
+show data/full
diff --git a/bench/err693_repeat_err.jnl b/bench/err693_repeat_err.jnl
new file mode 100644
index 0000000..a4e21bc
--- /dev/null
+++ b/bench/err693_repeat_err.jnl
@@ -0,0 +1,11 @@
+!   err693_repeat_err.jnl
+! test fix for ticket 2244: Error handling in REPEAT
+
+! The second of these should result in an error - in debug mode
+! it instead was hitting an out-of-range subscript error.
+
+repeat/range=1:2/name=column repeat/range=1:2/name=row say `column`,`row`
+
+set mode ignore
+repeat/range=1:2/name=column repeat/range=1:2/name=row
+set mode/last ignore
diff --git a/bench/err693_ribbon_scale.jnl b/bench/err693_ribbon_scale.jnl
new file mode 100644
index 0000000..6317172
--- /dev/null
+++ b/bench/err693_ribbon_scale.jnl
@@ -0,0 +1,10 @@
+! err693_ribbon_scale.jnl
+! ticket 2295: the vertical scale is mis-computed
+! 5/29/2015
+
+let var = {-81,-81,-81}
+let color = {2,2,2}
+plot/ribbon/key var,color
+
+! should be -82 to -80
+sh sym yaxis*
diff --git a/bench/err693_ribbon_start_missing.jnl b/bench/err693_ribbon_start_missing.jnl
new file mode 100644
index 0000000..b241c8f
--- /dev/null
+++ b/bench/err693_ribbon_start_missing.jnl
@@ -0,0 +1,40 @@
+! err693_ribbon_start_missing
+! 1/6/2015 ACM
+!
+! Bug 2226: If data starts with a missing-value and we're using (-inf) then 
+! the ribbon plot started with the lowest color instead of plotting as for missing
+! Only the cases starting with missing data were incorrect previous to fixing this bug.
+
+DEFINE SYMBOL ribbon_command = PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3
+
+let/units=degrees_east xvar = {-177,-174,-186}
+let/units=degrees_north yvar = {-43, -45, -42}
+let vvar = {,271, 319}
+! This previously started with purple, not a gray missing-value point
+($ribbon_command)/title="(-inf) in levels" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,,,271,319}
+($ribbon_command)/title="start with several missing" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,,271,319,1000}
+($ribbon_command)/title="end large positive value" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,271,319,1000,}
+($ribbon_command)/title="end with large positive and missing" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {1.e7,,,271,319}
+($ribbon_command)/title="start with large positive" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,1.e7,,271,319}
+($ribbon_command)/title="start with missing then large positive" xvar,yvar,vvar
+
diff --git a/bench/err693_save_packed.jnl b/bench/err693_save_packed.jnl
new file mode 100644
index 0000000..2e5034d
--- /dev/null
+++ b/bench/err693_save_packed.jnl
@@ -0,0 +1,7 @@
+! err693_save_packed.jnl
+! ticket 2240: bug writing multiple vars with one SAVE when scaled
+!
+! Previously saw a netcdf error because first variable was mis-scaled on writing.
+
+use err693_save_packed.nc
+save/clobber/file=a.nc QA_OF_SEAICE_CONC_CDR, GODDARD_MERGED_SEAICE_CONC
diff --git a/bench/err693_save_packed.nc b/bench/err693_save_packed.nc
new file mode 100644
index 0000000..cb6e550
Binary files /dev/null and b/bench/err693_save_packed.nc differ
diff --git a/bench/err693_scalar_grids.jnl b/bench/err693_scalar_grids.jnl
new file mode 100644
index 0000000..3355f61
--- /dev/null
+++ b/bench/err693_scalar_grids.jnl
@@ -0,0 +1,35 @@
+! err693_scalar_grids.jnl
+! See ticket 1602
+
+!  multiplication by scalar variable "let one = 1" added 
+!  abstract axes to the expression in all directions not 
+!  already reperesented in the grid.
+
+
+! The T averaging is ignored; no T direction in the grid.
+use levitus_climatology
+let a = temp[x=140,y=0,z=0]
+list a[t=1-jan-0001:1-jan-0020 at ave]  
+
+! Multiply by a variable which is a constant (prev. this
+! resulted in an illegal use of transform error.)
+let one = 1
+let b = one*a
+list b[t=1-jan-0001:1-jan-0020 at ave]
+
+! Test with a constant-array variable.
+let two = {2}
+let c = two*a
+list c[t=1-jan-0001:1-jan-0020 at ave]
+
+
+! check interactions with GC functions (prev. this
+! resulted in an illegal use of transform error.)
+LET v = X[x=1:4:1] + Y[Y=.1:.4:.1]
+LET a = XSEQUENCE( v[I=2:3,J=2:3] ) + Z[Z=.01:.02:.01]
+LIST a[t=1-jan-0001:1-jan-0020 at ave]  
+list b
+
+list b[x=@ave,k=@ave]
+
+
diff --git a/bench/err693_shape.jnl b/bench/err693_shape.jnl
new file mode 100644
index 0000000..20e82a6
--- /dev/null
+++ b/bench/err693_shape.jnl
@@ -0,0 +1,16 @@
+! err693_shape.jnl
+! bug 2273 shape of variable with various subexpressions
+
+use coads_climatology
+let a = sst[x=@ave]
+let a_clim = a[gt=MONTH_IRREG at mod]
+let a_anom = a - a_clim[gt=a at nrst]
+
+! Should all be YT
+say `a,r=shape`  `a_clim[gt=a at nrst],r=shape` `a_anom,r=shape`
+
+! Also works for size returns
+
+! Should be 180, 1, 1
+say `sst,r=isize`  `a,r=isize` `a_anom,r=isize`
+
diff --git a/bench/err693_shf_subscr.jnl b/bench/err693_shf_subscr.jnl
new file mode 100644
index 0000000..074c4f8
--- /dev/null
+++ b/bench/err693_shf_subscr.jnl
@@ -0,0 +1,22 @@
+! err693_shf_subscr.jnl
+! ticket 2231  Subscripts used to compute @SHF-1 at the low end of the axis
+
+
+def ax/edge/z=0:40:10 zax_t
+def ax/edge/z=5:45:10 zax_w
+let zw = z[gz=zax_w]
+let zdiff = zw - missing(zw[z=@shf:-1],0)
+let zdiff_t = zdiff[gz=zax_t at asn]
+
+! a range of K shows the values correctly
+list zdiff_t
+
+! but just K=1 returned a K=0 error
+can mem
+list/k=1 zdiff_t
+
+! Shift of +1
+can mem 
+let zdiff = zw - missing(zw[z=@shf:1],0)
+list/k=4 zdiff_t
+list/k=3:4 zdiff_t
diff --git a/bench/err693_shift_w_region.jnl b/bench/err693_shift_w_region.jnl
new file mode 100644
index 0000000..7942993
--- /dev/null
+++ b/bench/err693_shift_w_region.jnl
@@ -0,0 +1,12 @@
+! err693_shift_w_region
+! Ticket 2300.  In fact with bounds checking on, the list a[i=@shf] would have 
+! caused a Fortran runtime error with out-of-bounds subscripts. The fix for 
+! ticket 2301 fixes this as well.
+
+set region/x=10:20
+let a = {1,2,3}
+list a
+list a[i=@shf]
+cancel region
+list a[i=@shf]
+
diff --git a/bench/err693_std4d.jnl b/bench/err693_std4d.jnl
new file mode 100755
index 0000000..d5d4773
--- /dev/null
+++ b/bench/err693_std4d.jnl
@@ -0,0 +1,28 @@
+! err693_std4d
+! Check fix to ticket 2319: std transform in multi-dimensions
+
+
+let a = x[gx=1:3:1] * y[gy=1:3:1]
+let astd = a[x=@std,y=@std]
+let avar = a[x=@var,y=@var]
+let a2 = a^2
+let avar_calc = a2[x=@ave,y=@ave] - a[x=@ave,y=@ave]^2
+let astd_x = a[x=@std]
+let astd_x_y = astd_x[y=@std]
+
+! STD and VAR in x and y together; vs astd_x_y separately
+list astd^2, avar, avar_calc, astd_x_y^2
+
+
+! Now in the E and F directions
+
+let a = _e[ge=1:3:1] * _f[gf=1:3:1]
+let astd = a[e=@std,f=@std]
+let avar = a[e=@var,f=@var]
+let a2 = a^2
+let avar_calc = a2[e=@ave,f=@ave] - a[e=@ave,f=@ave]^2
+let astd_e = a[e=@std]
+let astd_e_f = astd_e[f=@std]
+
+list astd^2, avar, avar_calc, astd_e_f^2
+
diff --git a/bench/err693_string_results.jnl b/bench/err693_string_results.jnl
new file mode 100644
index 0000000..1ca0e66
--- /dev/null
+++ b/bench/err693_string_results.jnl
@@ -0,0 +1,13 @@
+! err693_string_results.jnl
+! Ticket 2234, the LIST B returned the numeric pointer to the string.
+! *acm* 5/14/2015
+
+let b = IF a then "yes" else "no"
+let a = 1/0
+list b
+
+! The LOAD C makes the data type of D correct
+let d = if c then "ok" else "not ok"
+let c = 1/0
+load C
+list d
diff --git a/bench/err693_subspan_trans.jnl b/bench/err693_subspan_trans.jnl
new file mode 100644
index 0000000..262f2d3
--- /dev/null
+++ b/bench/err693_subspan_trans.jnl
@@ -0,0 +1,34 @@
+! err693_subspan_trans
+! bug 2241  3/9/2015
+
+use coads_climatology
+let a = sst[x=120:284,y=-2:2 at ave,t=@ave]
+save/clob/file=a.nc a
+can var a
+use a
+set reg/x=25:385
+let b = a[x=@min]
+
+set mode diag
+say `a[x=@min]`
+
+! This previously resulted in an error.
+say `b`
+
+can mode diag
+
+! What if the region for @MIN is in the saved portion?
+say `a[x=150:200 at min]`
+let b = a[x=150:200 at min]
+say `b`
+
+! What if the region for @MIN extends beyond the saved portion?
+say `a[x=200:300 at min]`
+let b = a[x=200:300 at min]
+say `b`
+
+! What if the region for @MIN is outside the saved portion?
+say `a[x=300:385 at min]`
+let b = a[x=300:385 at min]
+say `b`
+
diff --git a/bench/err693_undetected_regrid_dset.jnl b/bench/err693_undetected_regrid_dset.jnl
new file mode 100644
index 0000000..79cbe94
--- /dev/null
+++ b/bench/err693_undetected_regrid_dset.jnl
@@ -0,0 +1,15 @@
+! err693_undetected_regrid_dset.jnl    - Jan 2015
+
+! in GET_CONTEXT_MODS no check is made whether dataset name/number is
+! valid following   "gdset = FIND_DSET_NUMBER( name(dstart:dend) )"
+
+use coads_climatology
+use levitus_climatology   ! default to d=2
+
+canc var/all
+let myvar = temp
+let a = myvar[g=temp[d=bad_d]]    ! THIS SHOULD BE DETECTED AS AN ERROR
+
+set mode ignore
+stat/l=1/x=180/y=0 a    ! this *SHOULD* trigger an error.  Yes.  Detect it.
+set mode/last ignore
\ No newline at end of file
diff --git a/bench/err693_upcase_quoted_name.jnl b/bench/err693_upcase_quoted_name.jnl
new file mode 100644
index 0000000..f989beb
--- /dev/null
+++ b/bench/err693_upcase_quoted_name.jnl
@@ -0,0 +1,16 @@
+! err693_upcase_quoted_name.jnl
+! ticket 2050. Names are saved in uppercase
+! form unless there are duplicates other than case.
+! Then searching for the name in quotes looked 
+! only with a case-sensitive search.  
+
+let abc = 12
+cancel mode upcase
+
+save/file=aa.nc/clobber abc
+can dat/all; can var/all
+
+use aa.nc
+! previously this failed to find the name.
+list 'abc'
+
diff --git a/bench/err694_longname_showdat.jnl b/bench/err694_longname_showdat.jnl
new file mode 100644
index 0000000..1565260
--- /dev/null
+++ b/bench/err694_longname_showdat.jnl
@@ -0,0 +1,20 @@
+! err694_longname_showdat.jnl
+! ticket 2317
+!
+! Make a file whose name starts the same as file with long name.
+sp rm WestCoastCarbon_9d9c_f562_77b5_5.nc
+sp ln -s WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc WestCoastCarbon_9d9c_f562_77b5_5.nc
+
+use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+
+! Long name was not matched by SHOW DAT filename
+! this previously returned an unknown dataset error
+sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
+
+! If a file matched to 1st 32 characters, the shorter-named
+! datset was mistakenly returned.
+
+use WestCoastCarbon_9d9c_f562_77b5_5
+sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
+
+sp rm WestCoastCarbon_9d9c_f562_77b5_5.nc
diff --git a/bench/err694_shf_missing.jnl b/bench/err694_shf_missing.jnl
new file mode 100644
index 0000000..0a37436
--- /dev/null
+++ b/bench/err694_shf_missing.jnl
@@ -0,0 +1,11 @@
+! err694_shf_missing.jnl
+! Test the fix for ticket 2314
+
+! This had been getting a missing-result; now is correct
+use gt4d011.cdf 
+list/i=100/j=50/k=1/l=24 temp[l=@shf]
+
+! Check shift that takes us beyond the end of a modulo axis (at x=20)
+can dat/all; use coads_climatology
+list/x=10:30/y=-60/l=1  sst
+list/x=10:30/y=-60/l=1  sst[i=@shf:3]
diff --git a/bench/err695_bounds_match_axis.jnl b/bench/err695_bounds_match_axis.jnl
new file mode 100644
index 0000000..729a018
--- /dev/null
+++ b/bench/err695_bounds_match_axis.jnl
@@ -0,0 +1,12 @@
+! 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
diff --git a/bench/err695_show_dat_nodata.jnl b/bench/err695_show_dat_nodata.jnl
new file mode 100644
index 0000000..6de593b
--- /dev/null
+++ b/bench/err695_show_dat_nodata.jnl
@@ -0,0 +1,18 @@
+! 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
+SHOW DATA coads_climatology
+
+! intentional errors
+SET MODE ignore
+SHOW DATA noexist
+SHOW DATA 2
+SHOW DATA/ATT noexist
+
+SET MODE/LAST ignore
diff --git a/bench/err69_isready_bugs.jnl b/bench/err69_isready_bugs.jnl
index d20800a..ba23731 100644
--- a/bench/err69_isready_bugs.jnl
+++ b/bench/err69_isready_bugs.jnl
@@ -1,5 +1,7 @@
 ! err69_isready_bugs.jnl
 ! Tickets 2201 and 2215   
+! updated error script 12/14 *sh* - to ensure that bench log file
+! has verification of this problem and its fix, as well as the bench error file
 
 ! ticket 2201: isready operation meant we couldn't cancel the second axis
 
@@ -17,6 +19,10 @@ can axis xax_isready_1
 can var b
 can axis xax_isready_2
 
+! 12/14 additions:
+show grid/dynamic             ! look for "err: grid over-allocated" messages
+show axis xax_isready_1, xax_isready_2   ! did they both get canceled?
+
 ! Ticket 2215, only with an unreleased Ferret; the first fix to 2201.
 
 let a = x[gx=1:3:1]
diff --git a/bench/ferret_startup b/bench/ferret_startup
index c0343e9..a23f172 100644
--- a/bench/ferret_startup
+++ b/bench/ferret_startup
@@ -1,7 +1,7 @@
 CAN MODE VERIFY
 
 ! This file will be copied to .ferret as part
-! pf the benchmark testing
+! of the benchmark testing
 
 SET MEMORY/SIZE=31
 SET MODE journal startup_tests.jnl
@@ -16,3 +16,6 @@ CANCEL MODE latit_label
 
 SET MODE GRATICULE
 
+! always include removal of the LOGO
+CANCEL MODE LOGO
+
diff --git a/bench/fxdata.dat b/bench/fxdata.dat
new file mode 100644
index 0000000..ed90112
--- /dev/null
+++ b/bench/fxdata.dat
@@ -0,0 +1,8 @@
+paleonEBM K4, nohdsafemwpext fx Gb hconvert.Gg idHhp0.nn4s6/eu4 0.5 min marine b
+  73   37 -180.000000  180.000000  -90.000000   90.000000 5.00000 5.00000
+
+  time(years)=      -120000.0
+  -6.85 -11.71 -19.12 -24.81 -27.19 -28.51 -30.27 -31.34 -29.34 -23.29 -14.91  -8.09
+  -6.75 -11.72 -19.22 -24.82 -27.29 -28.52 -30.37 -31.54 -29.44 -23.39 -14.92  -8.19
+  -6.65 -11.73 -19.32 -24.83 -27.39 -28.53 -30.47 -31.64 -29.54 -23.49 -14.93  -8.29
+  -6.55 -11.74 -19.42 -24.84 -27.49 -28.54 -30.57 -31.74 -29.64 -23.59 -14.94  -8.39
diff --git a/bench/levitus_3d_subset.nc b/bench/levitus_3d_subset.nc
new file mode 100644
index 0000000..f701521
Binary files /dev/null and b/bench/levitus_3d_subset.nc differ
diff --git a/bench/run1.nc b/bench/run1.nc
new file mode 100644
index 0000000..02929ef
Binary files /dev/null and b/bench/run1.nc differ
diff --git a/bench/run2.nc b/bench/run2.nc
new file mode 100644
index 0000000..13e709a
Binary files /dev/null and b/bench/run2.nc differ
diff --git a/bench/run3.nc b/bench/run3.nc
new file mode 100644
index 0000000..f502322
Binary files /dev/null and b/bench/run3.nc differ
diff --git a/bench/run4.nc b/bench/run4.nc
new file mode 100644
index 0000000..4c4d349
Binary files /dev/null and b/bench/run4.nc differ
diff --git a/bench/run_all b/bench/run_all
index e110de5..d42a222 100755
--- a/bench/run_all
+++ b/bench/run_all
@@ -53,6 +53,7 @@
 #
 # for now you must also manually check the benchmark bn311_ez_order
 
+# *sh* 4/2015 automatically run clean_draconian at the end
 
 umask 002     #  make all files group deletable  3/16
 
@@ -112,9 +113,9 @@ set efdir = n
 if ( $do_shared_obj == "y" ) then
   echo "Enter the directory containing the external function libraries"
   set efdir = $<
-  echo "Contents of "$efdir" :"
+  echo "Contents of "$efdir "fcns a* :"
   echo " "
-  ls -1 $efdir
+  ls -1 $efdir/a*
   echo " "
 endif
 
@@ -348,3 +349,7 @@ echo "Checking PLT, GIF and PS files......."
 echo "open test_trans.html in a browser to test transparency option in gif mode. The continents should be gray"
 # save size of log file as part of the history record
 ls -l $log_file >>&  $bench_hist
+
+# make a clean version of the log file that can easily be compared
+./clean_draconian $log_file
+
diff --git a/bench/shorttemp.nc b/bench/shorttemp.nc
new file mode 100644
index 0000000..394ee81
Binary files /dev/null and b/bench/shorttemp.nc differ
diff --git a/bench/test_results/axticlabel.pdf b/bench/test_results/axticlabel.pdf
index 2c84f66..b2b209c 100644
Binary files a/bench/test_results/axticlabel.pdf and b/bench/test_results/axticlabel.pdf differ
diff --git a/bench/test_results/bnplot.pdf b/bench/test_results/bnplot.pdf
index f9eb8d7..30c3ef0 100644
Binary files a/bench/test_results/bnplot.pdf and b/bench/test_results/bnplot.pdf differ
diff --git a/bench/test_results/closed_lev.pdf b/bench/test_results/closed_lev.pdf
index b97931c..95aeee2 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/dashbug.pdf b/bench/test_results/dashbug.pdf
index 04a7002..a8b0008 100644
Binary files a/bench/test_results/dashbug.pdf and b/bench/test_results/dashbug.pdf differ
diff --git a/bench/test_results/degC_axlab.pdf b/bench/test_results/degC_axlab.pdf
index ab2d440..a515545 100644
Binary files a/bench/test_results/degC_axlab.pdf and b/bench/test_results/degC_axlab.pdf differ
diff --git a/bench/test_results/dots.pdf b/bench/test_results/dots.pdf
index 8214a4b..400608f 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 417940e..728cb62 100644
--- a/bench/test_results/ferret_run_tests_err
+++ b/bench/test_results/ferret_run_tests_err
@@ -1,8 +1,8 @@
 Using FERRET /home/flat/ksmith/Ferret/bin/ferret
-lrwxrwxrwx. 1 ksmith oerdnewp 12 Oct 30 11:11 /home/flat/ksmith/Ferret/bin/ferret -> ferret_v6.93
+lrwxrwxrwx. 1 ksmith oerdnewp 13 Nov  6 15:35 /home/flat/ksmith/Ferret/bin/ferret -> ferret_v6.951
 Using external functions from /home/flat/ksmith/Ferret/ext_func/libs
 Benchmark run by ksmith
-Note: RUN_TESTS.sh test results for debug build of Ferret on RHEL6-64
+Note: RUN_TESTS.sh test results for debug Ferret on RHEL6-64
 Benchmark scripts that will be run:
    bn_syntax.jnl
    bn_dollar.jnl
@@ -226,6 +226,25 @@ Benchmark scripts that will be run:
    bn_date1900_array.jnl
    bn_spawn_size.jnl
    bn_polygon_log.jnl
+   bn694_bug_fixes.jnl
+   bn_permute_ascii.jnl
+   bn_lon_lat_time_string.jnl
+   bn_save_justdim.jnl
+   bn_time2d.jnl
+   bn_legend_labels.jnl
+   bn_DQ.jnl
+   bn695_bug_fixes.jnl
+   bn_f_tax_fcns.jnl
+   bn_fmrc.jnl
+   bn_return_defined.jnl
+   bn_can_var_noerr.jnl
+   bn_annotate.jnl
+   bn_auxiliary.jnl
+   bn_plot_ribbon_gaploc.jnl
+   bn_time_short_axes.jnl
+   bn_floatstr_extended.jnl
+   bn696_bug_fixes
+   bn_bin_regrid
    bn_all_ef.jnl
    bn_startupfile.jnl
 ****** Restricting Ferret paths to bench directory ******
@@ -242,7 +261,7 @@ FER_GRIDS=.
 FER_LIBS=/home/flat/ksmith/Ferret/lib
 FER_PALETTE=. /home/flat/ksmith/Ferret/ppl
 FER_WEB_BROWSER=firefox
-Beginning at Thu Oct 30 11:13:49 PDT 2014
+Beginning at Fri Nov  6 15:53:35 PST 2015
 *** Running test: bn_syntax.jnl
  Cached data cleared from memory
         SET EXPRESSION has not been given or implied
@@ -263,12 +282,12 @@ 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: Valid argument $1 choices are: xxxxx|goodbye
+           *** 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: Valid argument $3 choices are: hello|goodbye
+           *** NOTE: Valid argument $3 choices are: hello|goodbye
  **ERROR: my error message
 message/cont $3">greetings|hello|goodbye<my error message"
  **ERROR: my error message
@@ -279,17 +298,17 @@ message/cont $3""
 message/cont $3"<"
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3"||"
- *** NOTE: Valid argument $3 choices are: |
+           *** NOTE: Valid argument $3 choices are: |
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3"|>|"
- *** NOTE: Valid argument $3 choices are: >|
+           *** NOTE: Valid argument $3 choices are: >|
  **ERROR: command syntax: empty text string provided with ">": >|
 message/cont $3">|"
  **ERROR: command syntax: empty text string provided with ">": |<
 message/cont $3"|<"
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3"|>"
- *** NOTE: Valid argument $3 choices are: >
+           *** NOTE: Valid argument $3 choices are: >
  **ERROR: command syntax: arg number not in 1-99 range: $100
 say $100
  **ERROR: command syntax: arg number not in 1-99 range: $100)
@@ -327,16 +346,16 @@ MESSAGE/CONTINUE `1*/3`
  **ERROR: command syntax: sst*/3
           * before / is illegal
 MESSAGE/CONTINUE `sst*/3,return=lunits`
- **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,units,dset,
+ **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,f0,units,dset,
             dsetnum,dsetpath,dsettitle,*size,*start,*end,
             *units,*axis,nc_scale,nc_offset,user_scale,user_offset,
-            calendar,dtype,xmod,tmod,status,isDepth,isReady
+            calendar,dtype,xmod,tmod,status,isDepth,isReady,defined
           sst,return=Xsize
 MESSAGE/CONTINUE `sst,return=Xsize`
- **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,units,dset,
+ **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,f0,units,dset,
             dsetnum,dsetpath,dsettitle,*size,*start,*end,
             *units,*axis,nc_scale,nc_offset,user_scale,user_offset,
-            calendar,dtype,xmod,tmod,status,isDepth,isReady
+            calendar,dtype,xmod,tmod,status,isDepth,isReady,defined
           sst,return=trash
 MESSAGE/CONTINUE `sst,return=trash`
 *** Running test: bn_letd.jnl
@@ -351,12 +370,22 @@ can var
  LISTing to file v1file.nc
 *** Running test: bn_if.jnl
  Cached data cleared from memory
+ **ERROR: invalid command: ENDIF can only be used in an IF clause
+ENDIF
+ **ERROR: command syntax: ELIF cannot be used in single line IF
+          IF 0 THEN say ERROR ELIF 1 THEN say "CORRECT if you see this"
+IF 0 THEN say ERROR ELIF 1 THEN say "CORRECT if you see this"
+ **ERROR: command syntax: Trash after ENDIF
+          IF 0 THEN say ERROR ELSE say "CORRECT if you see this" ENDIF say trash
+IF 0 THEN say ERROR ELSE say "CORRECT if you see this" ENDIF say trash
+           *** NOTE: Unclosed IF statement ... assuming ENDIF
  **ERROR: invalid command: ELSE can only be used between IF and ENDIF
 else
  **ERROR: invalid command: ENDIF can only be used in an IF clause
 endif
  **ERROR: invalid command: ELIF can only be used between IF and ENDIF
 elif
+           *** NOTE: Unclosed IF statement ... assuming ENDIF
 *** Running test: 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
@@ -374,7 +403,7 @@ load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Ambiguous coordinates on X axis: X[I=1:5] - X[I=6:9]
+           *** NOTE: Ambiguous coordinates on X axis: X[I=1:5] - X[I=6:9]
  **ERROR: inconsistent sizes of data regions: X axis
           X[I=6:9] has 4 points (I=6:9)
           expression has 5 points (I=1:5)
@@ -449,8 +478,8 @@ Re-defining viewport LM6
 Re-defining viewport UM6
  Using every   2th vector in the X direction
  Using every   2th vector in the Y direction
- *** NOTE: /XLIMITS and /YLIMITS are deprecated.
- *** NOTE: Use /HLIMITS and /VLIMITS instead.
+           *** NOTE: /XLIMITS and /YLIMITS are deprecated.
+           *** NOTE: Use /HLIMITS and /VLIMITS instead.
  **ERROR: invalid command: color=noexist
           Colors are Black,Red,Green,Blue,LightBlue,Purple, and White
 plot/over/i=1:10/color=noexist i
@@ -497,12 +526,12 @@ 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: Valid symbol test2 choices are: hello|bye|
+           *** 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: Valid symbol t2 choices are: solong>really hello|bye|
+           *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
 *** Running test: bn_comma_delimited.jnl
  Cached data cleared from memory
 *** Running test: bn_dynamic_grids.jnl
@@ -552,12 +581,12 @@ list tu
  Cached data cleared from memory
  **ERROR: request exceeds memory setting: 25 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.
+           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
  Cached data cleared from memory
- *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] +  X[X=1.1:11:1.5]
- *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] +  X[X=1.1:11:1.5]
- *** NOTE: Ambiguous coordinates on X axis: TEMP[I=101:120:4]+X[I=101:120:4]
+           *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] +  X[X=1.1:11:1.5]
+           *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] +  X[X=1.1:11:1.5]
+           *** NOTE: Ambiguous coordinates on X axis: TEMP[I=101:120:4]+X[I=101:120:4]
  **ERROR: invalid command: non-positive delta value: X[I=1:5:-1]
 list x[i=1:5:-1]
  **ERROR: invalid command: non-positive delta value: X[I=1:5:0]
@@ -621,9 +650,9 @@ list a
  LISTing to file test_abs.cdf
  LISTing to file test_abs.cdf
  LISTing to file test_abs.cdf
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
- *** NOTE: Write the data initially with the /BOUNDS qualifier
+           *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
+           *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
+           *** NOTE: Write the data initially with the /BOUNDS qualifier
  LISTing to file test2.cdf
  LISTing to file FL.cdf
  LISTing to file FTLON.cdf
@@ -687,7 +716,7 @@ list/format=cdf/l=13/append/file=test_abs.cdf l1
  LISTing to file test_fil.cdf
  LISTing to file test_fil.cdf
  LISTing to file test_fil.cdf
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
 *** Running test: bn_regrid_transforms.jnl
  Cached data cleared from memory
  **ERROR: regridding: G=W - more than 1 target grid
@@ -696,8 +725,8 @@ load temp[g=u,g=w]
 load temp[g=x]
 *** Running test: bn_axis_limits.jnl
  Cached data cleared from memory
- *** NOTE: /XLIMITS and /YLIMITS are deprecated.
- *** NOTE: Use /HLIMITS and /VLIMITS instead.
+           *** NOTE: /XLIMITS and /YLIMITS are deprecated.
+           *** NOTE: Use /HLIMITS and /VLIMITS instead.
  **ERROR: command syntax: xlimits
 plot/xlimits i
  **ERROR: command syntax: xlimits= i
@@ -751,8 +780,8 @@ LIST a[gt=tcal]
  Cached data cleared from memory
 *** Running test: bn_gc_functions.jnl
  Cached data cleared from memory
- *** NOTE: /XLIMITS and /YLIMITS are deprecated.
- *** NOTE: Use /HLIMITS and /VLIMITS instead.
+           *** NOTE: /XLIMITS and /YLIMITS are deprecated.
+           *** NOTE: Use /HLIMITS and /VLIMITS instead.
 *** Running test: bn491_bug_fixes.jnl
  Cached data cleared from memory
  LISTing to file test.cdf
@@ -783,14 +812,12 @@ Replacing definition of axis TAX
 list v2-and-minus
  **ERROR: dimensions improperly specified: 99999999 words were requested.
 list x
- *** NOTE: Check for unspecified limits on an ABSTRACT axis
- *** NOTE: Use the SHOW GRID command to see the axes
+           *** NOTE: Check for unspecified limits on an ABSTRACT axis
+           *** NOTE: Use the SHOW GRID command to see the axes
  **ERROR: dimensions improperly specified: 99999999 words were requested.
 list i
- *** NOTE: Check for unspecified limits on an ABSTRACT axis
- *** NOTE: Use the SHOW GRID command to see the axes
- **ERROR: variable unknown or not in data set: 'i'
-list 'i'
+           *** NOTE: Check for unspecified limits on an ABSTRACT axis
+           *** NOTE: Use the SHOW GRID command to see the axes
  **ERROR: command syntax: v2-and-minus[i=5:15 at ddc]
           - before and is illegal
 list v2-and-minus[i=5:15 at ddc]
@@ -801,15 +828,15 @@ list v2-and-minus[i=5:15 at ddc]
  LISTing to file junk.dat
  **ERROR: request exceeds memory setting: 24000 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.
+           *** 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.
 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.
+           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
 Replacing definition of axis XAX
 Replacing definition of axis YAX
 Replacing definition of axis ZAX
@@ -819,7 +846,7 @@ Replacing definition of axis TAX
 SET DATA/EZ/format=stream/var=num/grid=mygrid NoSuchFile.dat
  **ERROR: Size of file ./junk.dat doesn't match size specified by variables/grid
 load num
- *** NOTE: Binary file reading: Insufficient memory reading variable    2
+           *** NOTE: Binary file reading: Insufficient memory reading variable    2
  **ERROR: invalid command: variable permutations only allowed for STREAM format
 SET DATA/EZ/var=num/order=vxyzt/grid=mygrid junk.dat
  **ERROR: invalid command: invalid argument for /TYPE
@@ -850,37 +877,37 @@ Replacing definition of axis TAX
 Replacing definition of axis TAX
 Replacing definition of axis TAX
 Replacing definition of axis TAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
  **ERROR: improper grid or axis definition: unrepairable repeated axis coords
 define axis/from/x/name=xax {6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
  **ERROR: improper grid or axis definition: unrepairable repeated axis coords
 define axis/from/x/name=xax/edges {6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
  **ERROR: improper grid or axis definition: unrepairable repeated axis coords
 define axis/from/x/name=xax/edges {6,6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
 Replacing definition of axis XAX2
- *** NOTE: (fyi) units are not subject to auto-conversion: BLAHS
+           *** NOTE: (fyi) units are not subject to auto-conversion: BLAHS
 Replacing definition of axis XAX2
 *** Running test: bn_polygon.jnl
  Cached data cleared from memory
@@ -908,7 +935,7 @@ Replacing definition of axis XAX2
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -964,8 +991,8 @@ stat i, noname(i)
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** 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
  **ERROR: invalid command: delta values may only modify variable names
 LIST/i=2:4:2 VAR
  PERMANENT data cleared from memory
@@ -974,15 +1001,15 @@ LIST/i=2:4:2 VAR
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** 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_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
+           *** 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
  Cached data cleared from memory
 *** Running test: bn_regrid_to_user.jnl
@@ -1002,11 +1029,11 @@ Replacing definition of axis TWEEKS
 Replacing definition of axis TWEEKS
 Replacing definition of axis TWEEKS
  LISTing to file calsst.cdf
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 360.00 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 360.00 days
 Replacing definition of grid TGRID
 Replacing definition of axis TDAYS
 Replacing definition of grid TGRID
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
 *** Running test: bn_dash_dot.jnl
  Cached data cleared from memory
  **ERROR: command syntax: dash=(1., 2.)
@@ -1126,10 +1153,10 @@ list strcat ("All work and no play")
  LISTing to file test_modulo.cdf
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** 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
+           *** NOTE: Not using NetCDF strides for multi-cycle modulo
+           *** 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
  Cached data cleared from memory
 Re-defining viewport MID
@@ -1169,6 +1196,18 @@ list a[gx=xnrst at sum]
  **ERROR: invalid command: cant use this regrid transform on strings: @MOD
 list a[gx=xnrst at mod]
  LISTing to file foo.cdf
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" - {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" * {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" / {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" ^ {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+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
  Cached data cleared from memory
 *** Running test: bn_vec_curv.jnl
@@ -1180,12 +1219,12 @@ Replacing definition of grid G1
  **TMAP ERR: syntax error in string
              Unrecognized field type: D
              Data set: ./bn_delimited_read_date_time.dat
- *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
+           *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
 SET DATA/FORM=delimited/type="d, da2,date2"  bn_delimited_read_date_time.dat
  **TMAP ERR: syntax error in string
              Unrecognized field type: DATE2
              Data set: ./bn_delimited_read_date_time.dat
- *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
+           *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
 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
@@ -1233,50 +1272,47 @@ Replacing definition of axis XAX
 Replacing definition of axis YAX
  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
 *** Running test: bn_cancel_axes.jnl
  Cached data cleared from memory
  LISTing to file longax.dat
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: regarding ./test_axes.nc ...
- *** NOTE: Climatological axes test_irreg, test_seas defined
+           *** NOTE: regarding ./test_axes.nc ...
+           *** NOTE: Climatological axes test_irreg, test_seas defined
 *** Running test: bn542_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
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file string4d.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: regarding ./test_axes.nc ...
- *** NOTE: Climatological axes test_irreg, test_seas defined
- *** NOTE: Not deleted: TEST_IRREG
- *** NOTE: Axis is in use by grid (G001)
- *** NOTE: Not deleted: TEST_IRREG
- *** NOTE: Axis is in use by grid (G001)
+           *** NOTE: regarding ./test_axes.nc ...
+           *** NOTE: Climatological axes test_irreg, test_seas defined
+           *** NOTE: Not deleted: TEST_IRREG
+           *** NOTE: Axis is in use by grid (G001)
+           *** NOTE: Not deleted: TEST_IRREG
+           *** NOTE: Axis is in use by grid (G001)
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 *** Running test: bn_subspan_modulo.jnl
@@ -1300,24 +1336,24 @@ define axis/x=130e:500:10/modulo=360 xsub
  LISTing to file test_subspan_modulo.nc
  LISTing to file test_subspan_modulo.nc
  LISTing to file test_subspan_modulo.nc
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** 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
+           *** NOTE: Not using NetCDF strides for multi-cycle modulo
+           *** 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
  Cached data cleared from memory
- *** NOTE: /THICKNESS ignored  on /SYMBOL=DOT
- *** NOTE: /SIZE= ignored  on /SYMBOL=DOT
+           *** NOTE: /THICKNESS ignored  on /SYMBOL=DOT
+           *** NOTE: /SIZE= ignored  on /SYMBOL=DOT
 *** Running test: bn_lev_symbols.jnl
  Cached data cleared from memory
 *** Running test: bn_mode_logo_lab.jnl
  Cached data cleared from memory
 *** Running test: 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"
+           *** 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
  Cached data cleared from memory
  PERMANENT data cleared from memory
@@ -1358,9 +1394,9 @@ SHADE/L=1/LEV=0.01d sst
 POLYGON/KEY/LEV=0.01d/coord_ax=Z  PLMxpoly+PLMxpolymark, PLMypoly+PLMypolymark, PLMpolydata
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
- *** NOTE: Valid calendars are GREGORIAN NOLEAP    JULIAN    360_DAY   ALL_LEAP
- *** NOTE: A dummy axis of subscripts will be used
+           *** NOTE: Valid calendars are GREGORIAN NOLEAP    JULIAN    360_DAY   ALL_LEAP
+           *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
+           *** NOTE: A dummy axis of subscripts will be used
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 rm: cannot remove `input.txt': No such file or directory
@@ -1369,10 +1405,10 @@ ls: cannot access input.txt: No such file or directory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,units,dset,
+ **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,f0,units,dset,
             dsetnum,dsetpath,dsettitle,*size,*start,*end,
             *units,*axis,nc_scale,nc_offset,user_scale,user_offset,
-            calendar,dtype,xmod,tmod,status,isDepth,isReady
+            calendar,dtype,xmod,tmod,status,isDepth,isReady,defined
           axy, return=xx
 MESSAGE/CONTINUE `axy, return=xx`
  PERMANENT data cleared from memory
@@ -1382,7 +1418,7 @@ Replacing definition of axis XAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis YAX
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1392,8 +1428,8 @@ Replacing definition of axis YAX
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
- *** NOTE: Axis has repeated values -- micro-adjusting TIME
+           *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
+           *** NOTE: Axis has repeated values -- micro-adjusting TIME
  **ERROR: illegal limits: "DUMMY" does not exist at T=01-JAN-1990 00:00
           Axis extremes are T=31-DEC-1997 12:00:30-JAN-1998 12:00
 list/t=1-jan-1990 dummy
@@ -1460,7 +1496,7 @@ SHOW VAR/XML
  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: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** 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
@@ -1532,8 +1568,8 @@ Replacing definition of grid AGRID
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1567,9 +1603,9 @@ Replacing definition of axis YAX
  LISTing to file a.nc
  LISTing to file a.nc
 Replacing definition of axis TAX
- *** NOTE: Axis definition error on axis: TAX
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
+           *** NOTE: Axis definition error on axis: TAX
+           *** NOTE: Bounds given describe non-contiguous axis cells
+           *** NOTE: Using the LOWER bound specified for each axis cell
 Replacing definition of axis TAX
  **ERROR: improper grid or axis definition: BOUNDS specified do not correctly enclose coordinate points
 def axis/t/bounds tax={1.2,2,3.2,5,7,8.8,9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5}
@@ -1581,32 +1617,32 @@ def axis/t/bounds tax={0,2,3.2,5,7,8,9.9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,
 def axis/t/bounds tax={0,2,3.2,5,7,8,9.9}, {0.5,1.5,2.5,3.5,6.5,7.5,8.5,9.5}
  **ERROR: improper grid or axis definition: dimension of bounds (15) must be 2*N or N+1, N=number of axis coordinates (7)
 def axis/t/bounds tax={1.2,2,3.2,5,7,8.4,9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5,10.5}
- *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
+           *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
  **ERROR: improper grid or axis definition: BOUNDS specified do not correctly enclose coordinate points
 def axis/t/bounds tax= {12, 12.2, 36, 36.2, 60, 60.2, 84, 84.2, 108} , {0,24, 0,24, 24,48, 24,48, 48,72, 48,72, 72,96, 72,96, 96,120}
  LISTing to file a.nc
  LISTing to file a.nc
- *** NOTE: Cannot have both /BOUNDS and /RIGID Ignoring /RIGID
+           *** NOTE: Cannot have both /BOUNDS and /RIGID Ignoring /RIGID
  LISTing to file a.nc
- *** NOTE: Cannot have both /BOUNDS and /EDGES Ignoring /EDGES
+           *** NOTE: Cannot have both /BOUNDS and /EDGES Ignoring /EDGES
  LISTing to file a.nc
  LISTing to file irrxzt.nc
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: MONTH_REG
- *** NOTE: Write the data initially with the /BOUNDS qualifier
+           *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
+           *** NOTE: This will result in incorrect box sizes on record axis: MONTH_REG
+           *** NOTE: Write the data initially with the /BOUNDS qualifier
  LISTing to file a.nc
  LISTing to file a.nc
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
- *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
- *** NOTE: Substituting coordinate midpoints
- *** 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
+           *** NOTE: Axis definition error on axis: TGAP
+           *** NOTE: Bounds given describe non-contiguous axis cells
+           *** NOTE: Using the LOWER bound specified for each axis cell
+           *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
+           *** NOTE: Substituting coordinate midpoints
+           *** 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
  Cached data cleared from memory
  **ERROR: command syntax: Invalid calendar name. Names are, GREGORIAN, NOLEAP, JULIAN, 360_DAY, ALL_LEAP
@@ -1621,7 +1657,7 @@ def axis/t/cal=nogood/t=1-jan-2000:1-jan-2010:1/units=months tax
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file xlong.nc
@@ -1670,6 +1706,7 @@ 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
@@ -1680,7 +1717,7 @@ plot/sym/siz=0.3 0*t[gt=vwnd]
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
  LISTing to file aa.nc
  LISTing to file cc.nc
  PERMANENT data cleared from memory
@@ -1691,27 +1728,27 @@ 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: Valid argument $2 choices are: a|b|c|d|
+           *** 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: Valid argument $1 choices are: xxxxx|goodbye
+           *** 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: Valid argument $3 choices are: hello|goodbye
+           *** 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: Valid symbol test2 choices are: hello|bye|
+           *** 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: Valid symbol t2 choices are: solong>really hello|bye|
+           *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1733,29 +1770,28 @@ list/l=1/j=40/i=0:300:0 sst
  Cached data cleared from memory
 *** Running test: bn_regulart.jnl
  Cached data cleared from memory
- *** NOTE: Evenly spaced axis has edges definition: TCOADS - ignored
 *** Running test: bn_labwid.jnl
  Cached data cleared from memory
 *** Running test: bn_redefine_taxis_mc.jnl
  Cached data cleared from memory
 Replacing definition of axis TIME1
- *** NOTE: grid  used by data set coads_clim
- *** NOTE: Redefinition may alter apparent contents of data set
+           *** NOTE: grid GHB1 used by data set coads_clim
+           *** NOTE: Redefinition may alter apparent contents of data set
 Replacing definition of axis TIME1
- *** NOTE: grid  used by data set coads_clim
- *** NOTE: Redefinition may alter apparent contents of data set
+           *** NOTE: grid GHB1 used by data set coads_clim
+           *** NOTE: Redefinition may alter apparent contents of data set
 *** Running test: bn_illegal_axisname.jnl
  Cached data cleared from memory
 Replacing definition of axis COADSX.ILLEGAL
- *** NOTE: grid  used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
- *** NOTE: grid  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
+           *** 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  used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
- *** NOTE: grid  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
+           *** NOTE: grid GEX3 used by data set illeg_axname
+           *** NOTE: Redefinition may alter apparent contents of data set
 *** Running test: bn_exit_script.jnl
  Cached data cleared from memory
 *** Running test: bn_exit_cycle.jnl
@@ -1788,10 +1824,10 @@ Replacing definition of axis COADSY.ILLEGAL
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
  **ERROR: improper grid or axis definition: error in start,end,delta
 DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/t myt
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
  **ERROR: improper grid or axis definition: error in start,end,delta
 DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/T/CALENDAR=noleap myt
  PERMANENT data cleared from memory
@@ -1873,7 +1909,7 @@ sho att/all .
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1882,26 +1918,26 @@ sho att/all .
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  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 temp.pp
- *** NOTE: Changing the length  of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.some_text
+           *** NOTE: Changing the value of attribute temp.pp
+           *** NOTE: Changing the length  of attribute temp.pp
+           *** NOTE: Changing the value of attribute temp.some_text
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute temp.long_name
- *** NOTE: Changing the value of attribute temp.units
- *** NOTE: Changing the value of attribute temp.missing_value
- *** NOTE: Changing the value of attribute temp.missing_value
+           *** NOTE: Changing the value of attribute temp.long_name
+           *** NOTE: Changing the value of attribute temp.units
+           *** NOTE: Changing the value of attribute temp.missing_value
+           *** NOTE: Changing the value of attribute temp.missing_value
  LISTing to file a.nc
  LISTing to file a.nc
- *** NOTE: Changing the value of attribute (PSZT).positive
- *** NOTE: Changing the type of attribute (coadsx).modulo
- *** NOTE: Changing the value of attribute (coadsx).modulo
- *** NOTE: Changing the value of attribute (TIME1).time_origin
+           *** NOTE: Changing the value of attribute (PSZT).positive
+           *** NOTE: Changing the type of attribute (coadsx).modulo
+           *** NOTE: Changing the value of attribute (coadsx).modulo
+           *** NOTE: Changing the value of attribute (TIME1).time_origin
  **ERROR: command syntax: enclose coordinate variable name in parentheses
 list coadsx.units
  **ERROR: variable unknown or not in data set: COADSX.UNITS
@@ -1912,17 +1948,17 @@ set att (COADSX81_81).axis = "Z"
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute temp.pp
- *** NOTE: Changing the length  of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.some_text
- *** NOTE: Changing the type of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.pp
- *** NOTE: Changing the type of attribute temp.some_text
- *** NOTE: Changing the value of attribute temp.some_text
- *** NOTE: Changing the value of attribute temp.long_name
- *** NOTE: Changing the value of attribute temp.units
- *** NOTE: Changing the type of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.pp
+           *** NOTE: Changing the value of attribute temp.pp
+           *** NOTE: Changing the length  of attribute temp.pp
+           *** NOTE: Changing the value of attribute temp.some_text
+           *** NOTE: Changing the type of attribute temp.pp
+           *** NOTE: Changing the value of attribute temp.pp
+           *** NOTE: Changing the type of attribute temp.some_text
+           *** NOTE: Changing the value of attribute temp.some_text
+           *** NOTE: Changing the value of attribute temp.long_name
+           *** NOTE: Changing the value of attribute temp.units
+           *** NOTE: Changing the type of attribute temp.pp
+           *** NOTE: Changing the value of attribute temp.pp
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file a.nc
@@ -1953,10 +1989,10 @@ set att (COADSX81_81).axis = "Z"
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
  LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
@@ -1965,27 +2001,27 @@ set att (COADSX81_81).axis = "Z"
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file a.nc
- *** NOTE: Changing the value of attribute (COADSX).point_spacing
- *** NOTE: Changing the value of attribute (COADSY).point_spacing
+           *** NOTE: Changing the value of attribute (COADSX).point_spacing
+           *** NOTE: Changing the value of attribute (COADSY).point_spacing
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
 NetCDF: Numeric conversion not representable (OPeNDAP/netCDF Error code -60)
  data in attribute missing_value not representable in output type NC_INT
 LIST/FORMAT=CDF/file=a.nc/clobber/x=132w/k=1 temp
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  **ERROR: unknown or invalid argument: Can SET VARIABLE/OUTTYPE=INPUT, DOUBLE, FLOAT, INT, SHORT, BYTE
 set var/outtype=char broiled
  **ERROR: unknown or invalid argument: Can SET VARIABLE/OUTTYPE=INPUT, DOUBLE, FLOAT, INT, SHORT, BYTE
 set var/outtype=garbage broiled
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute (PSXT).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 (PSXT).units
- *** NOTE: Changing the value of attribute (PSYT).units
+           *** NOTE: Changing the value of attribute (PSXT).units
+           *** NOTE: Changing the value of attribute (PSYT).units
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -1996,19 +2032,19 @@ set var/outtype=garbage broiled
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis X2AX
- *** NOTE: Changing the value of attribute (z4ax).positive
+           *** NOTE: Changing the value of attribute (z4ax).positive
  LISTing to file string4d.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute (TIME).units
- *** NOTE: Changing the value of attribute (TIME).units
- *** NOTE: Changing the value of attribute (TIME).time_origin
- *** NOTE: Changing the value of attribute (TIME).time_origin
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: Changing the value of attribute (TIME).units
+           *** NOTE: Changing the value of attribute (TIME).units
+           *** NOTE: Changing the value of attribute (TIME).time_origin
+           *** NOTE: Changing the value of attribute (TIME).time_origin
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
 Replacing definition of axis TIME
- *** NOTE: grid  used by data set coads_climatology
- *** NOTE: Redefinition may alter apparent contents of data set
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** NOTE: grid GSQ1 used by data set coads_climatology
+           *** NOTE: Redefinition may alter apparent contents of data set
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
@@ -2020,17 +2056,21 @@ Replacing definition of axis TIME
  Cached data cleared from memory
  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
+           *** 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: 
  Cached data cleared from memory
  **TMAP ERR: non-existent or not on line
              this_is_not_a_file.nc
 SET DAT/FORM=CDF this_is_not_a_file.nc
  **Internet Data error
-             NetCDF: 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
@@ -2074,7 +2114,7 @@ shade sst[t=@AVE,Z=@ave]
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 360.00 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 360.00 days
  LISTing to file t3file.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2085,14 +2125,14 @@ shade sst[t=@AVE,Z=@ave]
  LISTing to file subdir/0000_a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
  LISTing to file a.nc
- *** NOTE: cannot parse "units since date", date= "event"; leaving units string
+           *** NOTE: cannot parse "units since date", date= "event"; leaving units string
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Invalid I axis limits ignored: TEMP
+           *** NOTE: Invalid I axis limits ignored: TEMP
  **ERROR: dimensions improperly specified: specified data is not a line
            - its a 2D region: "plot/i=100/k=1 temp[x=122.5W]"
 plot/i=100/k=1 temp[x=122.5W]
@@ -2138,10 +2178,10 @@ Replacing definition of axis XAX
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
 Replacing definition of axis TIME4
- *** NOTE: grid  used by data set coads_climatology
- *** NOTE: Redefinition may alter apparent contents of data set
+           *** NOTE: grid GSQ1 used by data set coads_climatology
+           *** NOTE: Redefinition may alter apparent contents of data set
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis TIME
@@ -2167,9 +2207,9 @@ cancel axis/stride COADSX
 set axis/stride=2/offset=4 COADSX
  **ERROR: invalid command: not a strided axis: COADSX
 cancel axis/stride COADSX
- *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
+           *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
  LISTing to file d2.nc
- *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
+           *** 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
@@ -2185,8 +2225,8 @@ set axis/stride=2 NORMAL
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
- *** NOTE: They will not be convertible:
+           *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
+           *** NOTE: They will not be convertible:
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file tripolar_missing_lon.nc
@@ -2198,31 +2238,31 @@ set axis/stride=2 NORMAL
  Cached data cleared from memory
 *** Running test: 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
- *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
- *** NOTE: Valid calendars are GREGORIAN NOLEAP    JULIAN    360_DAY   ALL_LEAP
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
- *** 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"
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
- *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
- *** NOTE: They will not be convertible:
- *** NOTE: regarding ./climatological_axes.cdf ...
- *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
- *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
- *** NOTE: A dummy axis of subscripts will be used
- *** 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
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
+           *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
+           *** NOTE: Axis has repeated values -- micro-adjusting TIME
+           *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
+           *** NOTE: Substituting coordinate midpoints
+           *** NOTE: Valid calendars are GREGORIAN NOLEAP    JULIAN    360_DAY   ALL_LEAP
+           *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
+           *** NOTE: A dummy axis of subscripts will be used
+           *** NOTE: Axis definition error on axis: TGAP
+           *** NOTE: Bounds given describe non-contiguous axis cells
+           *** NOTE: Using the LOWER bound specified for each axis cell
+           *** 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"
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
+           *** NOTE: They will not be convertible:
+           *** NOTE: regarding ./climatological_axes.cdf ...
+           *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
+           *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
+           *** NOTE: A dummy axis of subscripts will be used
+           *** 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
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
 *** Running test: bn603_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
@@ -2270,6 +2310,9 @@ SHADE/LEV=300/I=1:100/J=1:100 i+j
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 *** Running test: bn_test_opendap.jnl
+Cannot create cookie file
+Cannot create cookie file
+CURL Error: Couldn't resolve host name
 curl error details: 
  Cached data cleared from memory
 *** Running test: bn611_bug_fixes.jnl
@@ -2339,8 +2382,8 @@ Replacing definition of axis TIME
  LISTing to file b.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Units on axis "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
+           *** NOTE: Units on axis "ENS" are not recognized: count
+           *** NOTE: They will not be convertible:
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file 1a.dat
@@ -2394,35 +2437,35 @@ LIST a_regrid[D=1,GT=b[D=2]@MOD]
  Cached data cleared from memory
 *** Running test: bn_string_ngd_nbd.jnl
  Cached data cleared from memory
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NBD 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
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
+           *** 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
+           *** NOTE: @NGD of string variable, counting null strings as missing
+           *** NOTE: @NGD of string variable, counting null strings as missing
+           *** NOTE: @NBD of string variable, counting null strings as missing
+           *** NOTE: @NBD 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
+           *** NOTE: @NGD of string variable, counting null strings as missing
+           *** NOTE: @NGD of string variable, counting null strings as missing
 Replacing definition of axis XAX
 Replacing definition of axis YAX
 Replacing definition of axis ZAX
 Replacing definition of axis TAX
- *** NOTE: @NBD 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
- *** 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
+           *** NOTE: @NBD 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
+           *** 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
  Cached data cleared from memory
 *** Running test: bn_sort_strings.jnl
  Cached data cleared from memory
 *** Running test: bn_samplexyt.jnl
  Cached data cleared from memory
- *** NOTE: /XLIMITS and /YLIMITS are deprecated.
- *** NOTE: Use /HLIMITS and /VLIMITS instead.
+           *** NOTE: /XLIMITS and /YLIMITS are deprecated.
+           *** NOTE: Use /HLIMITS and /VLIMITS instead.
 *** Running test: bn_last_go_file.jnl
  Cached data cleared from memory
 *** Running test: bn_cancel_upcase_uservar.jnl
@@ -2475,9 +2518,9 @@ Replacing definition of axis TAX
  LISTing to file test_abs.cdf
  LISTing to file test_abs.cdf
  LISTing to file test_abs.cdf
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
- *** NOTE: Write the data initially with the /BOUNDS qualifier
+           *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
+           *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
+           *** NOTE: Write the data initially with the /BOUNDS qualifier
  LISTing to file test2.cdf
  LISTing to file FL.cdf
  LISTing to file FTLON.cdf
@@ -2499,47 +2542,47 @@ list/format=cdf/keep_axnames/append/file=test_abs.cdf ijkl[k=@ave]
              disordered output coordinate value:         363  Axis: TCENTURY
 list/format=cdf/keep_axnames/l=13/append/file=test_abs.cdf l1
  LISTing to file FI.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
  LISTing to file test_fil.cdf
  LISTing to file test_fil.cdf
@@ -2551,80 +2594,80 @@ list/format=cdf/keep_axnames/l=13/append/file=test_abs.cdf l1
  LISTing to file test_fil.cdf
  LISTing to file test_fil.cdf
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf ijk
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf ikl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf ijl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSYT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf jkl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXU doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf ijkl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=1:50/l=2:3 ijl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=51:100/l=2:3 ijl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXU doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=30:40/k=5/l=1:3 ijkl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSZT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf iavejkl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXU doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf ijavekl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXU doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf ijkavel
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXU doesnt match CDF file
 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
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
 *** Running test: bn_keep_axisnames.jnl
  Cached data cleared from memory
  LISTing to file a.nc
@@ -2646,8 +2689,8 @@ Replacing definition of axis TSEC
 *** Running test: bn_grads_z.jnl
  Cached data cleared from memory
 Replacing definition of axis CAXIS
- *** NOTE: grid  used by data set grads_bug_file
- *** NOTE: Redefinition may alter apparent contents of data set
+           *** 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
  Cached data cleared from memory
 *** Running test: bn63_bug_fixes.jnl
@@ -2660,14 +2703,14 @@ Replacing definition of axis CAXIS
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
- *** 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
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
+           *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis ZAXLEVITR
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis ZAXLEVITR
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file xz.nc
@@ -2730,22 +2773,22 @@ load/x=160e/y=5s temp[d=2,k=1,g=no_exist12345678901234567890]
  TEMPORARY data cleared from memory
 *** Running test: bn_xml_repl.jnl
  Cached data cleared from memory
- *** NOTE: Changing the value of attribute sst.history
+           *** NOTE: Changing the value of attribute sst.history
 *** Running test: bn65_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
- *** NOTE: Units on axis "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
+           *** NOTE: Units on axis "ENS" are not recognized: count
+           *** NOTE: They will not be convertible:
  LISTing to file mypack.nc
- *** NOTE: LON1_15: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: LAT1800_1800: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: ENS: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: TIME: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: Units on axis "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
+           *** NOTE: LON1_15: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+           *** NOTE: LAT1800_1800: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+           *** NOTE: ENS: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+           *** NOTE: TIME: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+           *** NOTE: Units on axis "ENS" are not recognized: count
+           *** NOTE: They will not be convertible:
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -2788,8 +2831,8 @@ Re-defining viewport V8
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file nc4_deflate4.nc
- *** NOTE: NetCDF Classic style cannot set compression, ignoring /DEFLATE
- *** NOTE: NetCDF Classic style cannot set chunking, ignoring /*CHUNK
+           *** NOTE: NetCDF Classic style cannot set compression, ignoring /DEFLATE
+           *** NOTE: NetCDF Classic style cannot set chunking, ignoring /*CHUNK
  LISTing to file nc4_nodeflate3.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2800,13 +2843,13 @@ Re-defining viewport V8
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file nc4_inttemp_classic.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
  LISTing to file nc4_inttemp_set_list_deflate_chunk.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
  LISTing to file nc4_inttemp_shuffle_set_list_deflate_chunk.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
  LISTing to file nc4_inttemp_set_classic.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
  LISTing to file nc4_deflate4_t1.nc
  **TMAP ERR: syntax error in string
              If ChunkSize is set for any dimension of var, must set for all its dimensions
@@ -2831,11 +2874,11 @@ LIST/FORMAT=CDF/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk
  TEMPORARY data cleared from memory
 *** Running test: 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
+           *** 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
+           *** NOTE: Axis reset to be regular (evenly-spaced): MYX1
 *** Running test: bn_set_cancel_redirect.jnl
  Cached data cleared from memory
  Use the GO command to name a file of FERRET commands to be executed.
@@ -2862,7 +2905,7 @@ LIST/FORMAT=CDF/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk
      e.g.   yes? GO filename
  
  Use "GO/HELP filename" to read documentation in  the file to be executed.
- *** NOTE: No active redirects to cancel
+           *** NOTE: No active redirects to cancel
  Use the GO command to name a file of FERRET commands to be executed.
      e.g.   yes? GO filename
  
@@ -2871,14 +2914,14 @@ LIST/FORMAT=CDF/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk
      e.g.   yes? GO filename
  
  Use "GO/HELP filename" to read documentation in  the file to be executed.
- *** NOTE: Axis is already regular: MYAXIS
+           *** NOTE: Axis is already regular: MYAXIS
  **ERROR: variable unknown or not in data set: GARBAGE
 show grid garbage
  Use the GO command to name a file of FERRET commands to be executed.
      e.g.   yes? GO filename
  
  Use "GO/HELP filename" to read documentation in  the file to be executed.
- *** NOTE: stderr is not redirected
+           *** NOTE: stderr is not redirected
  Use the GO command to name a file of FERRET commands to be executed.
      e.g.   yes? GO filename
  
@@ -2927,8 +2970,6 @@ Replacing definition of axis YAX
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: 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.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb [...]
- *** NOTE: exceeds expected length. Maximum characters: 2048
  LISTing to file aa.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2956,11 +2997,11 @@ Replacing definition of axis YAX_DUP_AXNAMES
  LISTing to file a.nc
 *** Running test: bn_NaN_note.jnl
  Cached data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** 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
+           *** 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":
@@ -2983,7 +3024,7 @@ list/L=15:20 tax_year(t[gt=tvar],tvar)
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis lev
+           *** 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
@@ -2997,21 +3038,21 @@ Replacing definition of axis TAXIS
  TEMPORARY 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.089, to avoid running off page.
- *** NOTE: ./err672_vert_axislabel.jnl
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.030, to avoid running off page.
+           *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
+           *** NOTE: ./err672_vert_axislabel.jnl
+           *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
+           *** NOTE: Adjusting Y-axis label size from 0.100 to 0.030, to avoid running off page.
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
+           *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -3069,10 +3110,10 @@ DEFINE VARIABLE A = ifv I LT 5 THEN I ELSE -9
  LISTing to file a.nc
 *** Running test: 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 ...
+           *** 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
  Cached data cleared from memory
 *** Running test: bn_eof_simple.jnl
@@ -3126,34 +3167,32 @@ load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
 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
+           *** 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
- **ERROR: error defining aggregate dataset: Aggregate dataset not defined
-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: 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
- *** 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
+           *** 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
  Cached data cleared from memory
 *** Running test: bn682_bug_fixes.jnl
@@ -3164,8 +3203,8 @@ define data/agg windy = 1,2
  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/flat/ksmith/Ferret/go/magnify.jnl
+           *** NOTE: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
+           *** NOTE: /home/flat/ksmith/Ferret/go/magnify.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -3190,7 +3229,7 @@ SET DAT/FORM=CDF ./z1.nc
  Cached data cleared from memory
  LISTing to file mytype.nc
  LISTing to file mytype.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
  LISTing to file mytype.nc
  LISTing to file mytype.nc
  LISTing to file mytype.nc
@@ -3210,7 +3249,7 @@ SET DAT/FORM=CDF ./z1.nc
  Cached data cleared from memory
  LISTing to file mytype.nc
  LISTing to file mytype.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
  LISTing to file mytype.nc
  LISTing to file mytype.nc
  LISTing to file mytype.nc
@@ -3226,7 +3265,7 @@ LIST/FORMAT=CDF/clobber/file=mytype.nc my_data
  LISTing to file mytype.nc
 *** Running test: bn_axis_nonmonotonic.jnl
  Cached data cleared from memory
- **ERROR: improper grid or axis definition: data for DEFINE AXIS/FROM_VARIABLE is not monotonic at index 12
+ **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
  Cached data cleared from memory
@@ -3305,8 +3344,8 @@ Replacing definition of axis AXI
 Replacing definition of axis AXI_COARSE
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: unrepairable repeated axis coords on axis trdim at subscript 2
- *** NOTE: A dummy axis of subscripts will be used
+           *** NOTE: unrepairable repeated axis coords on axis trdim at subscript 2
+           *** NOTE: A dummy axis of subscripts will be used
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file sst_new.nc
@@ -3319,14 +3358,13 @@ Replacing definition of axis AXI_COARSE
 *** Running test: bn_nco_append.jnl
  Cached data cleared from memory
  LISTing to file append_to_this.nc
-sh: ncks: command not found
 *** Running test: bn_nobounds.jnl
  Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
+           *** NOTE: Axis definition error on axis: TGAP
+           *** NOTE: Bounds given describe non-contiguous axis cells
+           *** 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
@@ -3336,8 +3374,8 @@ sh: ncks: command not found
  Cached data cleared from memory
 *** Running test: 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
+           *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
+           *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
  **ERROR: command syntax: COLOR
           /COLOR must have an argument for PLOT/OVERLAY
 plot/i=1:100/over/COLOR 0.6*sin(i/7)
@@ -3346,9 +3384,9 @@ plot/i=1:100/over/COLOR 0.6*sin(i/7)
 plot/i=1:100/ribbon/COLOR sin(i/6),0.6*sin(i/7)
 *** Running test: 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: 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
  **ERROR: unknown defining grid: G=NOEXIST
 list b
  **ERROR: command syntax: 45S
@@ -3360,6 +3398,7 @@ 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
+Replacing definition of axis ZAX
 *** Running test: bn686_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
@@ -3372,7 +3411,7 @@ list f
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute a.ival
+           *** NOTE: Changing the value of attribute a.ival
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **TMAP ERR: non-existent or not on line
@@ -3392,8 +3431,8 @@ SET DAT/FORM=CDF snoopy.dat
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: regarding ./climatological_axes.cdf ...
- *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
+           *** NOTE: regarding ./climatological_axes.cdf ...
+           *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3432,8 +3471,8 @@ LIST/FORMAT=CDF/clobber/keep/file=nc b,a[d=1]
 shade b
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute v1.long_name
- *** NOTE: Changing the value of attribute v1.units
+           *** NOTE: Changing the value of attribute v1.long_name
+           *** NOTE: Changing the value of attribute v1.units
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: attribute undefined or invalid attribute name: temp.noexist[d=levitus_climatology]
@@ -3453,9 +3492,9 @@ set var/name=psi myvar
 set var/name=diff w
 *** Running test: 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
+           *** 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
  Cached data cleared from memory
 *** Running test: bn_stddev.jnl
@@ -3484,12 +3523,12 @@ list tax_datestring (tt[L=3], tt, 5)
 list tax_datestring (tt[L=3], "my_tax", "minutes")
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Error in bounds "TAX_BB_PTSPAC_bnds" or bounds do not enclose point on axis TAX_BB_PTSPAC
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: Error in bounds "TAX_BB_EVEN_NOENC_bnds" or bounds do not enclose point on axis TAX_BB_EVEN_NOENC
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: Error in bounds "TAX_BB_IRR_bnds" or bounds do not enclose point on axis TAX_BB_IRR
- *** NOTE: Substituting coordinate midpoints
+           *** NOTE: Error in bounds "TAX_BB_PTSPAC_bnds" or bounds do not enclose point on axis TAX_BB_PTSPAC
+           *** NOTE: Substituting coordinate midpoints
+           *** NOTE: Error in bounds "TAX_BB_EVEN_NOENC_bnds" or bounds do not enclose point on axis TAX_BB_EVEN_NOENC
+           *** NOTE: Substituting coordinate midpoints
+           *** NOTE: Error in bounds "TAX_BB_IRR_bnds" or bounds do not enclose point on axis TAX_BB_IRR
+           *** NOTE: Substituting coordinate midpoints
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: command syntax: must be a constant COS(1)
@@ -3529,17 +3568,17 @@ list {5*3+1, 2+3}
 Replacing definition of axis XAXIS
  **ERROR: request exceeds memory setting: 2369 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.
+           *** 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.
 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.
+           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Ambiguous coordinates on X axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
- *** NOTE: Ambiguous coordinates on Y axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
+           *** NOTE: Ambiguous coordinates on X axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
+           *** NOTE: Ambiguous coordinates on Y axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
  LISTing to file aa.nc
  LISTing to file bb.nc
  LISTing to file a.nc
@@ -3578,6 +3617,12 @@ shade a
  TEMPORARY 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: value out of legal range: Negative argument to function. Argument 3 : SUBSTRING
+list substring("hello",1,-2)
+ **ERROR: value out of legal range: Negative argument to function. Argument 3 : SUBSTRING
+list substring("hello",1,-3)
 *** Running test: bn_append_dsg.jnl
  Cached data cleared from memory
 rm: cannot remove `test_save_dsg.nc': No such file or directory
@@ -3593,9 +3638,9 @@ rm: cannot remove `test_save_dsg.nc': No such file or directory
  Cached data cleared from memory
 *** Running test: 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: 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
  **ERROR: unknown defining grid: G=NOEXIST
 list b
  **ERROR: command syntax: 45S
@@ -3617,6 +3662,216 @@ list f
 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
+ Cached data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file aa.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
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY 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: unknown data set: BAD_D
+stat/l=1/x=180/y=0 a
+ 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
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: invalid command: REPEAT what ?
+repeat/range=1:2/name=row
+ **ERROR: invalid command: REPEAT what ?
+repeat/range=1:2/name=row
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+Replacing definition of axis TREDEF
+           *** NOTE: grid GSI1 used by data set a
+           *** NOTE: Redefinition may alter apparent contents of data set
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: invalid command: illegal format type - must be "GIF"
+          frame/format=hdf/file=a.hdf
+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
+ 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
+*** Running test: bn_permute_ascii.jnl
+ Cached data cleared from memory
+Replacing definition of grid GRID3D
+*** Running test: bn_lon_lat_time_string.jnl
+ Cached data cleared from memory
+*** Running test: 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
+ Cached data cleared from memory
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+*** Running test: bn_legend_labels.jnl
+ Cached data cleared from memory
+*** Running test: 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
+ 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
+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
+ 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
+ Cached data cleared from memory
+*** Running test: bn_return_defined.jnl
+ Cached data cleared from memory
+*** Running test: 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
+ Cached data cleared from memory
+ **ERROR: command syntax: xpos=a2
+annotate/nouser/xpos=a2/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: ypos=b
+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"
+*** Running test: bn_auxiliary.jnl
+ Cached data cleared from memory
+rm: cannot remove `layerz_test_data.txt': No such file or directory
+ LISTing to file layerz_test_data.txt
+ **ERROR: variable unknown or not in data set: (data set ok ?): noexist
+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 ZAX
+*** Running test: bn_plot_ribbon_gaploc.jnl
+ Cached data cleared from memory
+ **ERROR: command syntax: PLOT/VS/RIBBON/GAPLOC plot needs 4 arguments
+plot/vs/thick/line/sym=21/siz=.3/ribbon/gap xpts, 10*ypts, color
+ **ERROR: command syntax: PLOT/GAPLOC applies only to PLOT/VS/RIBBON
+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
+ Cached data cleared from memory
+*** Running test: bn_floatstr_extended.jnl
+ Cached data cleared from memory
+*** Running test: bn696_bug_fixes
+ 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
+ Cached 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
 *** Running test: bn_all_ef.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
@@ -3636,4 +3891,4 @@ LOAD/TEMPORARY vflag
  TEMPORARY data cleared from memory
 *** Running test: bn_startupfile.jnl
  Cached data cleared from memory
-Ended at Thu Oct 30 11:20:08 PDT 2014
+Ended at Fri Nov  6 15:55:16 PST 2015
diff --git a/bench/test_results/ferret_run_tests_log b/bench/test_results/ferret_run_tests_log
index ba1dd4b..119d3ab 100644
--- a/bench/test_results/ferret_run_tests_log
+++ b/bench/test_results/ferret_run_tests_log
@@ -1,8 +1,8 @@
 Using FERRET /home/flat/ksmith/Ferret/bin/ferret
-lrwxrwxrwx. 1 ksmith oerdnewp 12 Oct 30 11:11 /home/flat/ksmith/Ferret/bin/ferret -> ferret_v6.93
+lrwxrwxrwx. 1 ksmith oerdnewp 13 Nov  6 15:35 /home/flat/ksmith/Ferret/bin/ferret -> ferret_v6.951
 Using external functions from /home/flat/ksmith/Ferret/ext_func/libs
 Benchmark run by ksmith
-Note: RUN_TESTS.sh test results for debug build of Ferret on RHEL6-64
+Note: RUN_TESTS.sh test results for debug Ferret on RHEL6-64
 Benchmark scripts that will be run:
    bn_syntax.jnl
    bn_dollar.jnl
@@ -226,6 +226,25 @@ Benchmark scripts that will be run:
    bn_date1900_array.jnl
    bn_spawn_size.jnl
    bn_polygon_log.jnl
+   bn694_bug_fixes.jnl
+   bn_permute_ascii.jnl
+   bn_lon_lat_time_string.jnl
+   bn_save_justdim.jnl
+   bn_time2d.jnl
+   bn_legend_labels.jnl
+   bn_DQ.jnl
+   bn695_bug_fixes.jnl
+   bn_f_tax_fcns.jnl
+   bn_fmrc.jnl
+   bn_return_defined.jnl
+   bn_can_var_noerr.jnl
+   bn_annotate.jnl
+   bn_auxiliary.jnl
+   bn_plot_ribbon_gaploc.jnl
+   bn_time_short_axes.jnl
+   bn_floatstr_extended.jnl
+   bn696_bug_fixes
+   bn_bin_regrid
    bn_all_ef.jnl
    bn_startupfile.jnl
 ****** Restricting Ferret paths to bench directory ******
@@ -242,7 +261,7 @@ FER_GRIDS=.
 FER_LIBS=/home/flat/ksmith/Ferret/lib
 FER_PALETTE=. /home/flat/ksmith/Ferret/ppl
 FER_WEB_BROWSER=firefox
-Beginning at Thu Oct 30 11:13:49 PDT 2014
+Beginning at Fri Nov  6 15:53:35 PST 2015
 *** Running test: bn_syntax.jnl
 ! bn401_syntax.JNL
 ! - test syntax interpretation of Program FERRET
@@ -412,10 +431,10 @@ SHOW DATA/FULL
  name     title                             I         J         K         L         M         N
  P        my P variable                   1:99999999  1:99999999  1:99999999  1:99999999  1:99999999  1:99999999
                on grid ABSTRACT with -1.E+34 for missing data
-             X=0.5:1.E+08  Y=0.5:1.E+08  Z=0.5:1.E+08  E=0.5:1.E+08  F=0.5:1
+             X=0.5:1.E+08  Y=0.5:1.E+08  Z=0.5:1.E+08  E=0.5:1.E+08  F=0.5:1.E+08  
  Q        Q                               1:99999999  1:99999999  1:99999999  1:99999999  1:99999999  1:99999999
                on grid ABSTRACT with -1.E+34 for missing data
-             X=0.5:1.E+08  Y=0.5:1.E+08  Z=0.5:1.E+08  E=0.5:1.E+08  F=0.5:1
+             X=0.5:1.E+08  Y=0.5:1.E+08  Z=0.5:1.E+08  E=0.5:1.E+08  F=0.5:1.E+08  
  
  /FORMAT = UNF
  /SKIP = 2
@@ -547,7 +566,8 @@ SHOW MODES
       LATIT_LABEL      SET               1
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
-      6D_LAB           SET
+      E_LABEL          SET               1
+      F_LABEL          SET               1
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -566,7 +586,8 @@ SHOW MODES
       NODATA_LAB       SET
       SHRINK_YLAB   CANCELLED
       CURVILINEAR   CANCELLED
-      SIGMA         CANCELLED
+      LAYERZ        CANCELLED
+      6D_LAB           SET
 SET MODE IGNORE_ERROR
 SHOW MODES
       MODE            STATE        ARGUMENT
@@ -580,7 +601,8 @@ SHOW MODES
       LATIT_LABEL      SET               1
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
-      6D_LAB           SET
+      E_LABEL          SET               1
+      F_LABEL          SET               1
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -599,7 +621,8 @@ SHOW MODES
       NODATA_LAB       SET
       SHRINK_YLAB   CANCELLED
       CURVILINEAR   CANCELLED
-      SIGMA         CANCELLED
+      LAYERZ        CANCELLED
+      6D_LAB           SET
 CANCEL MODE IGNORE_ERROR
 SHOW MODES
       MODE            STATE        ARGUMENT
@@ -613,7 +636,8 @@ SHOW MODES
       LATIT_LABEL      SET               1
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
-      6D_LAB           SET
+      E_LABEL          SET               1
+      F_LABEL          SET               1
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -632,7 +656,8 @@ SHOW MODES
       NODATA_LAB       SET
       SHRINK_YLAB   CANCELLED
       CURVILINEAR   CANCELLED
-      SIGMA         CANCELLED
+      LAYERZ        CANCELLED
+      6D_LAB           SET
 SHOW MODE STUPID
       MODE            STATE        ARGUMENT
       STUPID        CANCELLED
@@ -1200,8 +1225,8 @@ say "demonstrate that these leading blanks:\
 demonstrate that these leading blanks:       really are preserved
  
 ! continuation prompts are ignored, too
-yes? say "demonstrate that these leading blanks:\
-...?        really are preserved"
+say "demonstrate that these leading blanks:\
+       really are preserved"
 demonstrate that these leading blanks:       really are preserved
  
 ! weird little blank line inputs
@@ -1264,7 +1289,7 @@ message/continue here is: $1"some text" and some more stuff
 here is: hello and some more stuff
  
 message/cont here is a big $1 and $3&some text&      ! default provided
- !-> message/cont here is a big hello and some text      ! default provided
+ !-> message/cont here is a big hello and some text
 here is a big hello and some text
  
 message/cont $3			! error - no default
@@ -1372,7 +1397,7 @@ go bn_dollar.sub ((x+y),(x-5))	! ignore comma, get single arg
 ! V510 3/00
 set mode ignore
   message/continue "$1"                ! final quote used to get mis-applied
- !-> message/continue "hello"                ! final quote used to get mis-applied
+ !-> message/continue "hello"
 hello
 set mode/last ignore
 go bn_dollar.sub \"hello\"                 ! quotations as part of argument
@@ -1437,7 +1462,7 @@ message/continue "2 squared + 2 squared =`2^2` + `2+2`"
 2 squared + 2 squared =4 + 4
  
 message/continue "50/0 =`50/0`"	! invalid result
- !-> message/continue "50/0 =bad"	! invalid result
+ !-> message/continue "50/0 =bad"
 50/0 =bad
  
 repeat/i=1:3 message/continue "I=`I`"
@@ -1465,7 +1490,7 @@ I=7
 !cancel region/X ! removed - temporary experiment 3/00 *sh*
  
 message/continue "2+2=``2+2``"	! double grave accents get condensed
- !-> message/continue "2+2=`2+2`"	! double grave accents get condensed
+ !-> message/continue "2+2=`2+2`"
 2+2=`2+2`
  
 message/continue A default substitution: $9"default string|2+2=`2+2`"
@@ -1485,7 +1510,7 @@ message/continue "1/300=`1/300,p=5`"
  !-> message/continue "1/300=0.0033333"
 1/300=0.0033333
 message/continue "1/300=`1/300,p=-5`"	! decimal places
- !-> message/continue "1/300=0.00333"	! decimal places
+ !-> message/continue "1/300=0.00333"
 1/300=0.00333
 message/continue "1/300=`1/300 , precision=10`"
  !-> message/continue "1/300=0.003333333333"
@@ -1709,13 +1734,24 @@ say `a,return=isize`          ! full evaluation occurs
 say `a[i=2:3],return=isize`   ! full evaluation is bypassed
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ -DELETE J        M:  4 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ found   A        M: 10 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  !-> MESSAGE/CONTINUE 2
 2
-say `a[i=100:200],return=isize`    ! WRONG! because full evaluation is bypassed
+say `a[i=100:200],return=isize`    ! correct starting with Ferret v694 (tkt 2213)
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- !-> MESSAGE/CONTINUE 101
-101
+ eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    A        C:  6 dset:   0 I:  100  200  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    (C01,V08 C:  8 dset:   0 I:  100  200  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ found   (C11,V08 M:  8 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ !-> MESSAGE/CONTINUE 5
+5
 set mode/last diagnostic
  
 ! deliberate errors
@@ -2072,6 +2108,19 @@ CORRECT:sym sub
 ---->CORRECT
 ---->CORRECT again
 ---->nested: all is well after multi-line IF
+CORRECT
+CORRECT
+LOOP=1
+more
+LOOP=2
+more
+LOOP=1
+LOOP=2
+semicolon group
+more
+semicolon group
+CORRECT
+WE SEE THIS CUZ OF IMPLIED CLOSE TO THE PREVIOUS
 >>> --> DELIBERATE WARNING: UNCLOSED IF in NESTED GO FILE<<<
 ---->... now inside of nested IF clause
 ---->CORRECT
@@ -2082,10 +2131,6 @@ SAY ">>> --> DELIBERATE WARNING: UNCLOSED IF <<<"
 IF yes THEN
   say ---->... now inside of IF clause
 ---->... now inside of IF clause
- 
- 
- 
- 
 *** Running test: bn_expressions.jnl
 ! bn450_expressions.JNL
 ! test all manner of expressions
@@ -10503,18 +10548,18 @@ show symbols/all
 PPL$XPIXEL = "0"
 PPL$YPIXEL = "0"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.93"
-FERRET_PLATFORM = "Linux 2.6.32-504.el6.x86_64 64-bit"
+FERRET_VERSION = "6.951"
+FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64 64-bit"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 10:43:06 $"
+NETCDF_VERSION = "4.3.3.1 of Jul  1 2015 15:02:01 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "30-Oct-14"
-SESSION_TIME = "11:14"
-SESSION_PID = "10236"
-DELTA_CPU = "0.035993"
-CLOCK_SECS = "0.007"
-CURRENT_DATE = "30-Oct-14"
-CURRENT_TIME = "11:14:18"
+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"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
  
@@ -10532,18 +10577,18 @@ show symbol/all
 PPL$XPIXEL = "0"
 PPL$YPIXEL = "0"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.93"
-FERRET_PLATFORM = "Linux 2.6.32-504.el6.x86_64 64-bit"
+FERRET_VERSION = "6.951"
+FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64 64-bit"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 10:43:06 $"
+NETCDF_VERSION = "4.3.3.1 of Jul  1 2015 15:02:01 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "30-Oct-14"
-SESSION_TIME = "11:14"
-SESSION_PID = "10236"
+SESSION_DATE = " 6-Nov-15"
+SESSION_TIME = "15:53"
+SESSION_PID = "19236"
 DELTA_CPU = "0.001"
-CLOCK_SECS = "0.008"
-CURRENT_DATE = "30-Oct-14"
-CURRENT_TIME = "11:14:18"
+CLOCK_SECS = "0.003"
+CURRENT_DATE = " 6-Nov-15"
+CURRENT_TIME = "15:53:40"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
 S1 = "hello"
@@ -10553,9 +10598,9 @@ NUM = "3"
 T$DOLLAR = "hi"
 T_HELLO = "hi"
 show symbol s*
-SESSION_DATE = "30-Oct-14"
-SESSION_TIME = "11:14"
-SESSION_PID = "10236"
+SESSION_DATE = " 6-Nov-15"
+SESSION_TIME = "15:53"
+SESSION_PID = "19236"
 S1 = "hello"
 S2 = ""hello""
 S3 = "hello and goodbye"
@@ -10565,15 +10610,15 @@ S2 = ""hello""
 ! exercise CANCEL SYMBOL
 cancel symbol s2
 show symbol s*
-SESSION_DATE = "30-Oct-14"
-SESSION_TIME = "11:14"
-SESSION_PID = "10236"
+SESSION_DATE = " 6-Nov-15"
+SESSION_TIME = "15:53"
+SESSION_PID = "19236"
 S1 = "hello"
 S3 = "hello and goodbye"
 show symbol S*
-SESSION_DATE = "30-Oct-14"
-SESSION_TIME = "11:14"
-SESSION_PID = "10236"
+SESSION_DATE = " 6-Nov-15"
+SESSION_TIME = "15:53"
+SESSION_PID = "19236"
 S1 = "hello"
 S3 = "hello and goodbye"
 cancel symbol s2	! already deleted
@@ -10701,18 +10746,18 @@ show symbols/all
 PPL$XPIXEL = "656"
 PPL$YPIXEL = "492"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.93"
-FERRET_PLATFORM = "Linux 2.6.32-504.el6.x86_64 64-bit"
+FERRET_VERSION = "6.951"
+FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64 64-bit"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 10:43:06 $"
+NETCDF_VERSION = "4.3.3.1 of Jul  1 2015 15:02:01 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "30-Oct-14"
-SESSION_TIME = "11:14"
-SESSION_PID = "10236"
-DELTA_CPU = "0.029996"
-CLOCK_SECS = "0.709"
-CURRENT_DATE = "30-Oct-14"
-CURRENT_TIME = "11:14:18"
+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"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
  
@@ -14163,7 +14208,7 @@ Dynamic axes:
  
 ! calendar axes
 list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave]   ! 6-day ave
- !-> list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:144 at ave]   ! 6-day ave
+ !-> list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:144 at ave]
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: 144 hour on T at AVE
              FILENAME : gtsa056_1.cdf
@@ -14191,7 +14236,7 @@ list/k=1/y=0/x=180/l=1 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave]
              TIME     : 15-JAN-1982 00:00
           27.85
 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]			! pseudo-var
+ !-> list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:48]
              VARIABLE : T
                         axis (AX001)
              SUBSET   : 3 points (TIME)
@@ -19882,27 +19927,27 @@ GO bn_negative_t.sub tvar ave  ! like var and din
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ave]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at ave]
              VARIABLE : T[GT=TAX]
              T        : -5 to 5 (averaged)
           0.0000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ave]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at ave]
              VARIABLE : T[GT=TAX]
              T        : -8 to -5 (averaged)
          -6.667
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ave]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at ave]
              VARIABLE : T[GT=TAX]
              T        : -9 to 3 (averaged)
          -3.000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ave]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at ave]
              VARIABLE : T[GT=TAX]
              T        : -9 to -3 (averaged)
          -6.000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ave]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@ave]
              VARIABLE : T[GT=TAX]
              T        : -11 to 11 (averaged)
           0.0000
@@ -19918,7 +19963,7 @@ GO bn_negative_t.sub tvar iin
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at iin]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at iin]
              VARIABLE : T[GT=TAX]
                         indef. integ. on T
              SUBSET   : 5 points (T)
@@ -19928,14 +19973,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  -8.00
  4    / 8:   0.00
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at iin]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at iin]
              VARIABLE : T[GT=TAX]
                         indef. integ. on T
              SUBSET   : 2 points (T)
  -8   / 2:  -8.00
  -6   / 3: -20.00
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at iin]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at iin]
              VARIABLE : T[GT=TAX]
                         indef. integ. on T
              SUBSET   : 6 points (T)
@@ -19946,7 +19991,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6: -40.00
  2    / 7: -36.00
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at iin]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at iin]
              VARIABLE : T[GT=TAX]
                         indef. integ. on T
              SUBSET   : 3 points (T)
@@ -19954,7 +19999,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3: -28.00
  -4   / 4: -36.00
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@iin]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@iin]
              VARIABLE : T[GT=TAX]
                         indef. integ. on T
              SUBSET   : 11 points (T)
@@ -19981,27 +20026,27 @@ GO bn_negative_t.sub tvar sum
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at sum]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at sum]
              VARIABLE : T[GT=TAX]
              T        : -5 to 5 (summed)
           0.0000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at sum]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at sum]
              VARIABLE : T[GT=TAX]
              T        : -8 to -5 (summed)
          -14.00
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at sum]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at sum]
              VARIABLE : T[GT=TAX]
              T        : -9 to 3 (summed)
          -18.00
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at sum]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at sum]
              VARIABLE : T[GT=TAX]
              T        : -9 to -3 (summed)
          -18.00
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@sum]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@sum]
              VARIABLE : T[GT=TAX]
              T        : -11 to 11 (summed)
           0.0000
@@ -20017,7 +20062,7 @@ GO bn_negative_t.sub tvar rsu
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at rsu]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at rsu]
              VARIABLE : T[GT=TAX]
                         running sum on T
              SUBSET   : 5 points (T)
@@ -20027,14 +20072,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7: -4.000
  4    / 8:  0.000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at rsu]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at rsu]
              VARIABLE : T[GT=TAX]
                         running sum on T
              SUBSET   : 2 points (T)
  -8   / 2:  -8.00
  -6   / 3: -14.00
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at rsu]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at rsu]
              VARIABLE : T[GT=TAX]
                         running sum on T
              SUBSET   : 6 points (T)
@@ -20045,7 +20090,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6: -20.00
  2    / 7: -18.00
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at rsu]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at rsu]
              VARIABLE : T[GT=TAX]
                         running sum on T
              SUBSET   : 3 points (T)
@@ -20053,7 +20098,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3: -14.00
  -4   / 4: -18.00
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@rsu]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@rsu]
              VARIABLE : T[GT=TAX]
                         running sum on T
              SUBSET   : 11 points (T)
@@ -20080,7 +20125,7 @@ GO bn_negative_t.sub tvar shf
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at shf]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at shf]
              VARIABLE : T[GT=TAX]
                         shifted by 1 pts on T
              SUBSET   : 5 points (T)
@@ -20090,14 +20135,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  4.000
  4    / 8:  6.000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at shf]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at shf]
              VARIABLE : T[GT=TAX]
                         shifted by 1 pts on T
              SUBSET   : 2 points (T)
  -8   / 2: -6.000
  -6   / 3: -4.000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at shf]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at shf]
              VARIABLE : T[GT=TAX]
                         shifted by 1 pts on T
              SUBSET   : 6 points (T)
@@ -20108,7 +20153,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  2.000
  2    / 7:  4.000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at shf]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at shf]
              VARIABLE : T[GT=TAX]
                         shifted by 1 pts on T
              SUBSET   : 3 points (T)
@@ -20116,7 +20161,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3: -4.000
  -4   / 4: -2.000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@shf]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@shf]
              VARIABLE : T[GT=TAX]
                         shifted by 1 pts on T
              SUBSET   : 11 points (T)
@@ -20143,27 +20188,27 @@ GO bn_negative_t.sub tvar min   ! like @max
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at min]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at min]
              VARIABLE : T[GT=TAX]
              T        : -5 to 5 (minimum)
          -4.000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at min]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at min]
              VARIABLE : T[GT=TAX]
              T        : -8 to -5 (minimum)
          -8.000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at min]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at min]
              VARIABLE : T[GT=TAX]
              T        : -9 to 3 (minimum)
          -8.000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at min]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at min]
              VARIABLE : T[GT=TAX]
              T        : -9 to -3 (minimum)
          -8.000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@min]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@min]
              VARIABLE : T[GT=TAX]
              T        : -11 to 11 (minimum)
          -10.00
@@ -20179,7 +20224,7 @@ GO bn_negative_t.sub tvar ddf
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ddf]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at ddf]
              VARIABLE : T[GT=TAX]
                         forward derivative on T
              SUBSET   : 5 points (T)
@@ -20189,14 +20234,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  1.000
  4    / 8:  1.000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ddf]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at ddf]
              VARIABLE : T[GT=TAX]
                         forward derivative on T
              SUBSET   : 2 points (T)
  -8   / 2:  1.000
  -6   / 3:  1.000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ddf]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at ddf]
              VARIABLE : T[GT=TAX]
                         forward derivative on T
              SUBSET   : 6 points (T)
@@ -20207,7 +20252,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  1.000
  2    / 7:  1.000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ddf]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at ddf]
              VARIABLE : T[GT=TAX]
                         forward derivative on T
              SUBSET   : 3 points (T)
@@ -20215,7 +20260,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3:  1.000
  -4   / 4:  1.000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ddf]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@ddf]
              VARIABLE : T[GT=TAX]
                         forward derivative on T
              SUBSET   : 11 points (T)
@@ -20242,7 +20287,7 @@ GO bn_negative_t.sub tvar ddb   ! @ddc like ddf and ddb
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ddb]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at ddb]
              VARIABLE : T[GT=TAX]
                         backwards derivative on T
              SUBSET   : 5 points (T)
@@ -20252,14 +20297,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  1.000
  4    / 8:  1.000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ddb]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at ddb]
              VARIABLE : T[GT=TAX]
                         backwards derivative on T
              SUBSET   : 2 points (T)
  -8   / 2:  1.000
  -6   / 3:  1.000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ddb]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at ddb]
              VARIABLE : T[GT=TAX]
                         backwards derivative on T
              SUBSET   : 6 points (T)
@@ -20270,7 +20315,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  1.000
  2    / 7:  1.000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ddb]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at ddb]
              VARIABLE : T[GT=TAX]
                         backwards derivative on T
              SUBSET   : 3 points (T)
@@ -20278,7 +20323,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3:  1.000
  -4   / 4:  1.000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ddb]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@ddb]
              VARIABLE : T[GT=TAX]
                         backwards derivative on T
              SUBSET   : 11 points (T)
@@ -20305,7 +20350,7 @@ GO bn_negative_t.sub tvar sbx  ! like sbn, swl, shn, spz
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at sbx]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at sbx]
              VARIABLE : T[GT=TAX]
                         box smoothed by 3 pts on T
              SUBSET   : 5 points (T)
@@ -20315,14 +20360,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  2.000
  4    / 8:  4.000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at sbx]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at sbx]
              VARIABLE : T[GT=TAX]
                         box smoothed by 3 pts on T
              SUBSET   : 2 points (T)
  -8   / 2: -8.000
  -6   / 3: -6.000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at sbx]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at sbx]
              VARIABLE : T[GT=TAX]
                         box smoothed by 3 pts on T
              SUBSET   : 6 points (T)
@@ -20333,7 +20378,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  0.000
  2    / 7:  2.000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at sbx]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at sbx]
              VARIABLE : T[GT=TAX]
                         box smoothed by 3 pts on T
              SUBSET   : 3 points (T)
@@ -20341,7 +20386,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3: -6.000
  -4   / 4: -4.000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@sbx]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@sbx]
              VARIABLE : T[GT=TAX]
                         box smoothed by 3 pts on T
              SUBSET   : 11 points (T)
@@ -20368,27 +20413,27 @@ GO bn_negative_t.sub tvar loc:-2.2
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at loc:-2.2]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at loc:-2.2]
              VARIABLE : T of -2.2 in T[GT=TAX]
              T        : -5 to 5 (location of -2.2)
          -2.200
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at loc:-2.2]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at loc:-2.2]
              VARIABLE : T of -2.2 in T[GT=TAX]
              T        : -8 to -5 (location of -2.2)
         ....
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at loc:-2.2]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at loc:-2.2]
              VARIABLE : T of -2.2 in T[GT=TAX]
              T        : -9 to 3 (location of -2.2)
          -2.200
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at loc:-2.2]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at loc:-2.2]
              VARIABLE : T of -2.2 in T[GT=TAX]
              T        : -9 to -3 (location of -2.2)
         ....
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@loc:-2.2]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@loc:-2.2]
              VARIABLE : T of -2.2 in T[GT=TAX]
              T        : -11 to 11 (location of -2.2)
          -2.200
@@ -20404,7 +20449,7 @@ GO bn_negative_t.sub tvar weq:-2.2
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at weq:-2.2]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at weq:-2.2]
              VARIABLE : T[GT=TAX]
                         weighted equal of -2.2 on T
              SUBSET   : 5 points (T)
@@ -20414,14 +20459,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:    ....
  4    / 8:    ....
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at weq:-2.2]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at weq:-2.2]
              VARIABLE : T[GT=TAX]
                         weighted equal of -2.2 on T
              SUBSET   : 2 points (T)
  -8   / 2:....
  -6   / 3:....
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at weq:-2.2]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at weq:-2.2]
              VARIABLE : T[GT=TAX]
                         weighted equal of -2.2 on T
              SUBSET   : 6 points (T)
@@ -20432,7 +20477,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:    ....
  2    / 7:    ....
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at weq:-2.2]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at weq:-2.2]
              VARIABLE : T[GT=TAX]
                         weighted equal of -2.2 on T
              SUBSET   : 3 points (T)
@@ -20440,7 +20485,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3:....
  -4   / 4:....
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@weq:-2.2]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@weq:-2.2]
              VARIABLE : T[GT=TAX]
                         weighted equal of -2.2 on T
              SUBSET   : 11 points (T)
@@ -20483,27 +20528,27 @@ GO bn_negative_t.sub tgap ngd   ! like @nbd
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tgap[t=-5:5 at ngd]	! neg/pos t endpoints
+ !-> LIST tgap[t=-5:5 at ngd]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR (# of points)
              T        : -5 to 5 (number of valid)
           3.000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tgap[t=-5:-8 at ngd]	! neg/neq t endpoints
+ !-> LIST tgap[t=-5:-8 at ngd]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR (# of points)
              T        : -8 to -5 (number of valid)
           1.000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tgap[l=2:7 at ngd]	! neg/pos l endpoints
+ !-> LIST tgap[l=2:7 at ngd]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR (# of points)
              T        : -9 to 3 (number of valid)
           3.000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tgap[l=2:4 at ngd]	! neg/neg l endpoints
+ !-> LIST tgap[l=2:4 at ngd]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR (# of points)
              T        : -9 to -3 (number of valid)
           2.000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tgap[l=@ngd]	! unspecified limits (neg/pos)
+ !-> LIST tgap[l=@ngd]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR (# of points)
              T        : -11 to 11 (number of valid)
           5.000
@@ -20519,7 +20564,7 @@ GO bn_negative_t.sub tgap fav  ! like fln (fnr not implemented)
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tgap[t=-5:5 at fav]	! neg/pos t endpoints
+ !-> LIST tgap[t=-5:5 at fav]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR
                         ave-filled by 3 pts on T
              SUBSET   : 5 points (T)
@@ -20529,14 +20574,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  2.000
  4    / 8:  4.000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tgap[t=-5:-8 at fav]	! neg/neq t endpoints
+ !-> LIST tgap[t=-5:-8 at fav]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR
                         ave-filled by 3 pts on T
              SUBSET   : 2 points (T)
  -8   / 2: -8.000
  -6   / 3: -6.000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tgap[l=2:7 at fav]	! neg/pos l endpoints
+ !-> LIST tgap[l=2:7 at fav]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR
                         ave-filled by 3 pts on T
              SUBSET   : 6 points (T)
@@ -20547,7 +20592,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  0.000
  2    / 7:  2.000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tgap[l=2:4 at fav]	! neg/neg l endpoints
+ !-> LIST tgap[l=2:4 at fav]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR
                         ave-filled by 3 pts on T
              SUBSET   : 3 points (T)
@@ -20555,7 +20600,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3: -6.000
  -4   / 4: -4.000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tgap[l=@fav]	! unspecified limits (neg/pos)
+ !-> LIST tgap[l=@fav]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR
                         ave-filled by 3 pts on T
              SUBSET   : 11 points (T)
@@ -20604,7 +20649,7 @@ GO bn_negative_t.sub blin nul
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST blin[t=-5:5 at nul]	! neg/pos t endpoints
+ !-> LIST blin[t=-5:5 at nul]
              VARIABLE : A[GT=TDST at LIN]
              SUBSET   : 5 points (T)
  -4   / 4: -4.000
@@ -20613,13 +20658,13 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  2.000
  4    / 8:  4.000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST blin[t=-5:-8 at nul]	! neg/neq t endpoints
+ !-> LIST blin[t=-5:-8 at nul]
              VARIABLE : A[GT=TDST at LIN]
              SUBSET   : 2 points (T)
  -8   / 2: -8.000
  -6   / 3: -6.000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST blin[l=2:7 at nul]	! neg/pos l endpoints
+ !-> LIST blin[l=2:7 at nul]
              VARIABLE : A[GT=TDST at LIN]
              SUBSET   : 6 points (T)
  -8   / 2: -8.000
@@ -20629,14 +20674,14 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  0.000
  2    / 7:  2.000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST blin[l=2:4 at nul]	! neg/neg l endpoints
+ !-> LIST blin[l=2:4 at nul]
              VARIABLE : A[GT=TDST at LIN]
              SUBSET   : 3 points (T)
  -8   / 2: -8.000
  -6   / 3: -6.000
  -4   / 4: -4.000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST blin[l=@nul]	! unspecified limits (neg/pos)
+ !-> LIST blin[l=@nul]
              VARIABLE : A[GT=TDST at LIN]
              SUBSET   : 11 points (T)
  -10   /  1:   ....
@@ -20662,7 +20707,7 @@ GO bn_negative_t.sub bave nul
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST bave[t=-5:5 at nul]	! neg/pos t endpoints
+ !-> LIST bave[t=-5:5 at nul]
              VARIABLE : A[GT=TDST at AVE]
              SUBSET   : 5 points (T)
  -4   / 4: -4.000
@@ -20671,13 +20716,13 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  2.000
  4    / 8:  4.000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST bave[t=-5:-8 at nul]	! neg/neq t endpoints
+ !-> LIST bave[t=-5:-8 at nul]
              VARIABLE : A[GT=TDST at AVE]
              SUBSET   : 2 points (T)
  -8   / 2: -8.000
  -6   / 3: -6.000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST bave[l=2:7 at nul]	! neg/pos l endpoints
+ !-> LIST bave[l=2:7 at nul]
              VARIABLE : A[GT=TDST at AVE]
              SUBSET   : 6 points (T)
  -8   / 2: -8.000
@@ -20687,14 +20732,14 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  0.000
  2    / 7:  2.000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST bave[l=2:4 at nul]	! neg/neg l endpoints
+ !-> LIST bave[l=2:4 at nul]
              VARIABLE : A[GT=TDST at AVE]
              SUBSET   : 3 points (T)
  -8   / 2: -8.000
  -6   / 3: -6.000
  -4   / 4: -4.000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST bave[l=@nul]	! unspecified limits (neg/pos)
+ !-> LIST bave[l=@nul]
              VARIABLE : A[GT=TDST at AVE]
              SUBSET   : 11 points (T)
  -10   /  1: -9.000
@@ -20720,7 +20765,7 @@ GO bn_negative_t.sub basn nul
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST basn[t=-5:5 at nul]	! neg/pos t endpoints
+ !-> LIST basn[t=-5:5 at nul]
              VARIABLE : A[GT=TDST at ASN]
              SUBSET   : 5 points (T)
  -4   / 4: -6.000
@@ -20729,13 +20774,13 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7: -3.000
  4    / 8: -2.000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST basn[t=-5:-8 at nul]	! neg/neq t endpoints
+ !-> LIST basn[t=-5:-8 at nul]
              VARIABLE : A[GT=TDST at ASN]
              SUBSET   : 2 points (T)
  -8   / 2: -8.000
  -6   / 3: -7.000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST basn[l=2:7 at nul]	! neg/pos l endpoints
+ !-> LIST basn[l=2:7 at nul]
              VARIABLE : A[GT=TDST at ASN]
              SUBSET   : 6 points (T)
  -8   / 2: -8.000
@@ -20745,14 +20790,14 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6: -4.000
  2    / 7: -3.000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST basn[l=2:4 at nul]	! neg/neg l endpoints
+ !-> LIST basn[l=2:4 at nul]
              VARIABLE : A[GT=TDST at ASN]
              SUBSET   : 3 points (T)
  -8   / 2: -8.000
  -6   / 3: -7.000
  -4   / 4: -6.000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST basn[l=@nul]	! unspecified limits (neg/pos)
+ !-> LIST basn[l=@nul]
              VARIABLE : A[GT=TDST at ASN]
              SUBSET   : 11 points (T)
  -10   /  1: -9.000
@@ -20856,7 +20901,7 @@ CANCEL REGION
 GO bn_xact_regrid.sub X
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -20866,7 +20911,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -20880,7 +20925,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:   ....
  5    / 9:  5.000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -20890,7 +20935,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETBIG]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -20904,7 +20949,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETSMALL]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -20918,7 +20963,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINEOFFSET]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -20931,7 +20976,7 @@ SET REGION/X=2:4
 GO bn_xact_regrid.sub X
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 3 points (X)
@@ -20939,7 +20984,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.000
  4   / 4:  4.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -20949,7 +20994,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  3.5  / 6:   ....
  4    / 7:  4.000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 3 points (X)
@@ -20957,7 +21002,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.000
  4   / 4:  4.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETBIG]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -20967,7 +21012,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  3.5  / 6:  3.500
  4    / 7:   ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETSMALL]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -20977,7 +21022,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  3.5  / 6:  3.500
  4    / 7:   ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINEOFFSET]
                         regrid: 1 delta on X at XACT
              SUBSET   : 3 points (X)
@@ -20988,7 +21033,7 @@ SET REGION/X=1:5
 GO bn_xact_regrid.sub X
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -20998,7 +21043,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21012,7 +21057,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:   ....
  5    / 9:  5.000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21022,7 +21067,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETBIG]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21036,7 +21081,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETSMALL]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21050,7 +21095,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINEOFFSET]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21063,7 +21108,7 @@ SET REGION/X=1.5:4.5
 GO bn_xact_regrid.sub X
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 3 points (X)
@@ -21071,7 +21116,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.000
  4   / 4:  4.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 7 points (X)
@@ -21083,7 +21128,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4    / 7:  4.000
  4.5  / 8:   ....
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 3 points (X)
@@ -21091,7 +21136,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.000
  4   / 4:  4.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETBIG]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 7 points (X)
@@ -21103,7 +21148,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4    / 7:   ....
  4.5  / 8:  4.500
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETSMALL]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 7 points (X)
@@ -21115,7 +21160,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4    / 7:   ....
  4.5  / 8:  4.500
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINEOFFSET]
                         regrid: 1 delta on X at XACT
              SUBSET   : 3 points (X)
@@ -21126,7 +21171,7 @@ SET REGION/X=0:6
 GO bn_xact_regrid.sub X
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21136,7 +21181,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21150,7 +21195,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:   ....
  5    / 9:  5.000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21160,7 +21205,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETBIG]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21174,7 +21219,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETSMALL]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21188,7 +21233,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINEOFFSET]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21203,7 +21248,7 @@ CANCEL REGION
 GO bn_xact_regrid.sub Y
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21213,7 +21258,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21227,7 +21272,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:   ....
  5    / 9:  5.000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21237,7 +21282,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETBIG]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21251,7 +21296,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETSMALL]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21265,7 +21310,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINEOFFSET]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21278,7 +21323,7 @@ SET REGION/Y=2:4
 GO bn_xact_regrid.sub Y
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 3 points (Y)
@@ -21286,7 +21331,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.000
  4   / 4:  4.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21296,7 +21341,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  3.5  / 6:   ....
  4    / 7:  4.000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 3 points (Y)
@@ -21304,7 +21349,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.000
  4   / 4:  4.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETBIG]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21314,7 +21359,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  3.5  / 6:  3.500
  4    / 7:   ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETSMALL]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21324,7 +21369,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  3.5  / 6:  3.500
  4    / 7:   ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINEOFFSET]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 3 points (Y)
@@ -21335,7 +21380,7 @@ SET REGION/Y=1:5
 GO bn_xact_regrid.sub Y
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21345,7 +21390,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21359,7 +21404,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:   ....
  5    / 9:  5.000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21369,7 +21414,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETBIG]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21383,7 +21428,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETSMALL]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21397,7 +21442,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINEOFFSET]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21410,7 +21455,7 @@ SET REGION/Y=1.5:4.5
 GO bn_xact_regrid.sub Y
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 3 points (Y)
@@ -21418,7 +21463,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.000
  4   / 4:  4.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 7 points (Y)
@@ -21430,7 +21475,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4    / 7:  4.000
  4.5  / 8:   ....
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 3 points (Y)
@@ -21438,7 +21483,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.000
  4   / 4:  4.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETBIG]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 7 points (Y)
@@ -21450,7 +21495,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4    / 7:   ....
  4.5  / 8:  4.500
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETSMALL]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 7 points (Y)
@@ -21462,7 +21507,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4    / 7:   ....
  4.5  / 8:  4.500
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINEOFFSET]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 3 points (Y)
@@ -21473,7 +21518,7 @@ SET REGION/Y=0:6
 GO bn_xact_regrid.sub Y
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21483,7 +21528,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21497,7 +21542,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:   ....
  5    / 9:  5.000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21507,7 +21552,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETBIG]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21521,7 +21566,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETSMALL]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21535,7 +21580,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINEOFFSET]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21550,7 +21595,7 @@ CANCEL REGION
 GO bn_xact_regrid.sub Z
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21560,7 +21605,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21574,7 +21619,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:   ....
  5    / 9:  5.000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21584,7 +21629,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETBIG]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21598,7 +21643,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETSMALL]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21612,7 +21657,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINEOFFSET]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21625,7 +21670,7 @@ SET REGION/Z=2:4
 GO bn_xact_regrid.sub Z
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 3 points (Z)
@@ -21633,7 +21678,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.000
  4   / 4:  4.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21643,7 +21688,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  3.5  / 6:   ....
  4    / 7:  4.000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 3 points (Z)
@@ -21651,7 +21696,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.000
  4   / 4:  4.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETBIG]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21661,7 +21706,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  3.5  / 6:  3.500
  4    / 7:   ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETSMALL]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21671,7 +21716,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  3.5  / 6:  3.500
  4    / 7:   ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINEOFFSET]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 3 points (Z)
@@ -21682,7 +21727,7 @@ SET REGION/Z=1:5
 GO bn_xact_regrid.sub Z
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21692,7 +21737,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21706,7 +21751,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:   ....
  5    / 9:  5.000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21716,7 +21761,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETBIG]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21730,7 +21775,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETSMALL]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21744,7 +21789,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINEOFFSET]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21757,7 +21802,7 @@ SET REGION/Z=1.5:4.5
 GO bn_xact_regrid.sub Z
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 3 points (Z)
@@ -21765,7 +21810,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.000
  4   / 4:  4.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 7 points (Z)
@@ -21777,7 +21822,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4    / 7:  4.000
  4.5  / 8:   ....
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 3 points (Z)
@@ -21785,7 +21830,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.000
  4   / 4:  4.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETBIG]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 7 points (Z)
@@ -21797,7 +21842,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4    / 7:   ....
  4.5  / 8:  4.500
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETSMALL]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 7 points (Z)
@@ -21809,7 +21854,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4    / 7:   ....
  4.5  / 8:  4.500
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINEOFFSET]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 3 points (Z)
@@ -21820,7 +21865,7 @@ SET REGION/Z=0:6
 GO bn_xact_regrid.sub Z
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21830,7 +21875,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21844,7 +21889,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:   ....
  5    / 9:  5.000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21854,7 +21899,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETBIG]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21868,7 +21913,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETSMALL]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21882,7 +21927,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINEOFFSET]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21897,7 +21942,7 @@ CANCEL REGION
 GO bn_xact_regrid.sub T
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -21907,7 +21952,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -21921,7 +21966,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:   ....
  5    / 9:  5.000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -21931,7 +21976,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETBIG]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -21945,7 +21990,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETSMALL]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -21959,7 +22004,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINEOFFSET]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -21972,7 +22017,7 @@ SET REGION/T=2:4
 GO bn_xact_regrid.sub T
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 3 points (T)
@@ -21980,7 +22025,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.000
  4   / 4:  4.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -21990,7 +22035,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  3.5  / 6:   ....
  4    / 7:  4.000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 3 points (T)
@@ -21998,7 +22043,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.000
  4   / 4:  4.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETBIG]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22008,7 +22053,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  3.5  / 6:  3.500
  4    / 7:   ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETSMALL]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22018,7 +22063,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  3.5  / 6:  3.500
  4    / 7:   ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINEOFFSET]
                         regrid: 1 delta on T at XACT
              SUBSET   : 3 points (T)
@@ -22029,7 +22074,7 @@ SET REGION/T=1:5
 GO bn_xact_regrid.sub T
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22039,7 +22084,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22053,7 +22098,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:   ....
  5    / 9:  5.000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22063,7 +22108,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETBIG]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22077,7 +22122,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETSMALL]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22091,7 +22136,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINEOFFSET]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22104,7 +22149,7 @@ SET REGION/T=1.5:4.5
 GO bn_xact_regrid.sub T
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 3 points (T)
@@ -22112,7 +22157,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.000
  4   / 4:  4.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 7 points (T)
@@ -22124,7 +22169,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4    / 7:  4.000
  4.5  / 8:   ....
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 3 points (T)
@@ -22132,7 +22177,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.000
  4   / 4:  4.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETBIG]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 7 points (T)
@@ -22144,7 +22189,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4    / 7:   ....
  4.5  / 8:  4.500
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETSMALL]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 7 points (T)
@@ -22156,7 +22201,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4    / 7:   ....
  4.5  / 8:  4.500
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINEOFFSET]
                         regrid: 1 delta on T at XACT
              SUBSET   : 3 points (T)
@@ -22167,7 +22212,7 @@ SET REGION/T=0:6
 GO bn_xact_regrid.sub T
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22177,7 +22222,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22191,7 +22236,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:   ....
  5    / 9:  5.000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22201,7 +22246,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETBIG]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22215,7 +22260,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETSMALL]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22229,7 +22274,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINEOFFSET]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -23661,7 +23706,33 @@ list 'X'			! Now the proper syntax
  19   / 19:  0.5784
  20   / 20:  0.6570
 list i  			! Deliberate error
-list 'i'  			! Deliberate error
+ 
+! v694 No longer an error: See ticket 2050
+list 'i'  			!
+             VARIABLE : SIN(4+I/10)
+             FILENAME : weird_name1.cdf
+             SUBSET   : 20 points (X)
+ 1    /  1: -0.8183
+ 2    /  2: -0.8716
+ 3    /  3: -0.9162
+ 4    /  4: -0.9516
+ 5    /  5: -0.9775
+ 6    /  6: -0.9937
+ 7    /  7: -0.9999
+ 8    /  8: -0.9962
+ 9    /  9: -0.9825
+ 10   / 10: -0.9589
+ 11   / 11: -0.9258
+ 12   / 12: -0.8835
+ 13   / 13: -0.8323
+ 14   / 14: -0.7728
+ 15   / 15: -0.7055
+ 16   / 16: -0.6313
+ 17   / 17: -0.5507
+ 18   / 18: -0.4646
+ 19   / 19: -0.3739
+ 20   / 20: -0.2794
+ 
 list 'I'			! Now the proper syntax
              VARIABLE : SIN(4+I/10)
              FILENAME : weird_name1.cdf
@@ -25248,7 +25319,7 @@ GO err491_spawn_quotes.jnl
  
 ! this should be a valid command
 SPAWN "date"
-Thu Oct 30 11:14:33 PDT 2014
+Fri Nov  6 15:53:44 PST 2015
  
 GO bn_reset
 cancel mode verify
@@ -30237,14 +30308,19 @@ say `a,return=isize`     ! no evaluation of a required -- just context
  getgrid A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
  pass #2 A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ pseudo  I        M: 15 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  !-> MESSAGE/CONTINUE 10
 10
 list/nohead a            ! evaluate it now
+ -DELETE I        M: 15 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 15 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ found   A        M: 16 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  1    /  1:   1.00
  2    /  2:   2.00
  3    /  3:   3.00
@@ -30260,7 +30336,6 @@ let a = XSEQUENCE(j[j=1:5])
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  -DELETE A        M: 16 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE I        M: 15 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  -DELETE SST5SBX  M: 14 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
  -DELETE SST5XAVE M:  9 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
@@ -33368,8 +33443,17 @@ SAMPLEL_MULTI(L_INDICES,DAT_TO_SAMPLE)
     Returns data sampled according to L indices which may vary in IJK
     L_INDICES: ordered indices
     DAT_TO_SAMPLE: data to sample using L indices
+SAMPLEF_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
+    Returns data sampled by interpolating to a set of times in F direction
+    DAT_TO_SAMPLE: data to sample at set of times in F
+    YR: Year(s) yyyy
+    MO: Month(s), integer mm
+    DAY: Day(s) of month dd
+    HR: Hour(s) hh
+    MIN: Minute(s) mm
+    SEC: Second(s) ss
 SAMPLET_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
-    Returns data sampled by interpolating to a set of times
+    Returns data sampled by interpolating to a set of times in T direction
     DAT_TO_SAMPLE: data to sample at set of times
     YR: Year(s) yyyy
     MO: Month(s), integer mm
@@ -33434,6 +33518,14 @@ SAMPLE_FAST_I(V,Indices)
     Fast 1D sample variable using set of indices
     V: Variable to sample
     Indices: List of indices at which to sample
+SAMPLE_FAST_I_STR(S,Indices)
+    Fast 1D sample string variable using set of indices
+    S: String Variable to sample (STRING)
+    Indices: List of indices at which to sample
+SAMPLE_FAST_I(V,Indices)
+    Fast 1D sample variable using set of indices
+    V: Variable to sample
+    Indices: List of indices at which to sample
  
 go bench_sorti.jnl
  
@@ -34549,6 +34641,10 @@ CURV_TO_RECT_MAP(lon_in,lat_in,grid_out,radius)
     lat_in: Source grid latitudes (2-D) (degrees)
     grid_out: Any variable on destination Longitude-Latitude grid, Lon and Lat (degrees)
     radius: Source points falling within radius are included in mapping to destination point (degrees)
+CURV_TO_RECT_FSU(V,mapping)
+    Alt func to Apply mapping to regrid from curvilinear to rectangular grid
+    V: Variable to regrid, on curvilinear grid V(x,y,z,t)
+    mapping: mapping computed by curv_to_rect_MAP
  
 use tripolar_subset.nc
 shade ht, geolon_vert_t, geolat_vert_t
@@ -34637,12 +34733,12 @@ list/L=15:20 tax_month(t[gt=temp],temp), tax_yearfrac(t[gt=temp],temp)
  Column  1: TAX_MONTH(T[GT=TEMP],TEMP)
  Column  2: TAX_YEARFRAC(T[GT=TEMP],TEMP)
                 (C001,V001)  (C001,V009)
-10-NOV-1982 16 / 15:   11.00  0.8603
-16-NOV-1982 18 / 16:   11.00  0.8767
-22-NOV-1982 20 / 17:   11.00  0.8932
-28-NOV-1982 22 / 18:   11.00  0.9096
+10-NOV-1982 16 / 15:   11.00  0.8621
+16-NOV-1982 18 / 16:   11.00  0.8788
+22-NOV-1982 20 / 17:   11.00  0.8954
+28-NOV-1982 22 / 18:   11.00  0.9121
 05-DEC-1982 00 / 19:   12.00  0.9288
-11-DEC-1982 02 / 20:   12.00  0.9452
+11-DEC-1982 02 / 20:   12.00  0.9454
 list/L=15:20 tax_year(t[gt=temp],temp)
              VARIABLE : TAX_YEAR(T[GT=TEMP],TEMP)
              FILENAME : gt4d011.cdf
@@ -35869,6 +35965,8 @@ list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", ") + "fri
 list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
  1   / 1:"now, goodbye, my friend" "now, hello, friend"      
  2   / 2:"then, goodbye, my friend""then, hello, friend"     
+ 
+SET MODE IGNORE
 list/nohead ysequence({98, 99})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
  1   / 1:........
  2   / 2:........
@@ -35883,18 +35981,11 @@ list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "g
  2   / 2:........
  
 ! numerical operators applied to strings
+ 
 list/nohead "b" - {"a","b"}
- 1   / 1:....
- 2   / 2:....
 list/nohead "b" * {"a","b"}
- 1   / 1:....
- 2   / 2:....
 list/nohead "b" / {"a","b"}
- 1   / 1:....
- 2   / 2:....
 list/nohead "b" ^ {"a","b"}
- 1   / 1:....
- 2   / 2:....
 list/nohead {"a","b"} + 1
  1   / 1:....
  2   / 2:....
@@ -35905,18 +35996,14 @@ list/nohead 1 - {"a","b"}
  1   / 1:....
  2   / 2:....
 list/nohead SIN({"a","b","c"})
- 1   / 1:....
- 2   / 2:....
- 3   / 3:....
 list/nohead MAX("a",{"a","b","c"})
- 1   / 1:....
- 2   / 2:....
- 3   / 3:....
 list/nohead MAX(1,{"a","b","c"})
  1   / 1:....
  2   / 2:....
  3   / 3:....
  
+CANCEL MODE IGNORE
+ 
 ! transformations applied to strings
 let a = {"a","b","c","d"}
 list a[i=@shf]
@@ -36202,13 +36289,13 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
  Column  8: V8
  Column  9: V9
  Column 10: V10
-                  V1  V2   V3     V4     V5    V6    V7      V8     V9    V10
-1   / 1: "one"       ...  1.100 -24.00  130.0 " "    10.0 "word 1" " "    ....
-2   / 2: "two"       ...  2.200  24.00 -130.0 "2S"   .... "word 2" " "    ....
-3   / 3: "three"     ...  3.300  24.00  130.0 "3N"    0.0 " wd 3 " " "    ....
-4   / 4: " "         ...   ....   ....   .... " "    .... " "      " "    ....
-5   / 5: "five"      ...  4.400 -24.00 -130.0 "91" -400.0 "word 4" "aa"  77.00
-6   / 6: "extra line"...   ....   ....   .... " "    .... " "      " "    ....
+                  V1   V2    V3     V4     V5    V6    V7      V8     V9    V10
+1   / 1: "one"        ....  1.100 -24.00  130.0 " "    10.0 "word 1" " "    ....
+2   / 2: "two"        ....  2.200  24.00 -130.0 "2S"   .... "word 2" " "    ....
+3   / 3: "three"      ....  3.300  24.00  130.0 "3N"    0.0 " wd 3 " " "    ....
+4   / 4: " "          ....   ....   ....   .... " "    .... " "      " "    ....
+5   / 5: "five"       ....  4.400 -24.00 -130.0 "91" -400.0 "word 4" "aa"  77.00
+6   / 6: "extra line" ....   ....   ....   .... " "    .... " "      " "    ....
  
 ! insist that all columns be treated as string
 file/format=delim/skip=1/type=text bn_delimited_read_1.dat
@@ -36276,13 +36363,13 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
  Column  8: V8
  Column  9: V9
  Column 10: V10
-        V1  V2   V3     V4     V5     V6     V7   V8 V9   V10
-1   / 1:......  1.100   ....   ....   ....   10.0......   ....
-2   / 2:......  2.200   ....   ....   ....   ..........   ....
-3   / 3:......  3.300  24.00  130.0   ....    0.0......   ....
-4   / 4:......   ....   ....   ....   ....   ..........   ....
-5   / 5:......  4.400 -24.00 -130.0  91.00 -400.0......  77.00
-6   / 6:......   ....   ....   ....   ....   ..........   ....
+          V1   V2    V3     V4     V5     V6     V7    V8   V9    V10
+1   / 1: .... ....  1.100   ....   ....   ....   10.0 .... ....   ....
+2   / 2: .... ....  2.200   ....   ....   ....   .... .... ....   ....
+3   / 3: .... ....  3.300  24.00  130.0   ....    0.0 .... ....   ....
+4   / 4: .... ....   ....   ....   ....   ....   .... .... ....   ....
+5   / 5: .... ....  4.400 -24.00 -130.0  91.00 -400.0 .... ....  77.00
+6   / 6: .... ....   ....   ....   ....   ....   .... .... ....   ....
  
 ! insist that all columns be treated as latitude
 file/format=delim/skip=1/type=latitude bn_delimited_read_1.dat
@@ -36299,13 +36386,13 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
  Column  8: V8 is V8 (degrees_north)(Latitude)
  Column  9: V9 is V9 (degrees_north)(Latitude)
  Column 10: V10 is V10 (degrees_north)(Latitude)
-        V1  V2   V3     V4     V5     V6     V7   V8 V9   V10
-1   / 1:......  1.100 -24.00   ....   ....   10.0......   ....
-2   / 2:......  2.200  24.00   ....  -2.00   ..........   ....
-3   / 3:......  3.300  24.00  130.0   3.00    0.0......   ....
-4   / 4:......   ....   ....   ....   ....   ..........   ....
-5   / 5:......  4.400 -24.00 -130.0  91.00 -400.0......  77.00
-6   / 6:......   ....   ....   ....   ....   ..........   ....
+          V1   V2    V3     V4     V5     V6     V7    V8   V9    V10
+1   / 1: .... ....  1.100 -24.00   ....   ....   10.0 .... ....   ....
+2   / 2: .... ....  2.200  24.00   ....  -2.00   .... .... ....   ....
+3   / 3: .... ....  3.300  24.00  130.0   3.00    0.0 .... ....   ....
+4   / 4: .... ....   ....   ....   ....   ....   .... .... ....   ....
+5   / 5: .... ....  4.400 -24.00 -130.0  91.00 -400.0 .... ....  77.00
+6   / 6: .... ....   ....   ....   ....   ....   .... .... ....   ....
  
 ! read only the first line of the file
 spawn head -1 bn_delimited_read_1.dat
@@ -36327,8 +36414,8 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
  Column  8: V8
  Column  9: V9
  Column 10: V10
-             V1    V2     V3     V4     V5    V6 V7  V8  V9 V10
-I / *:    "col1" "col2" "col3" "col4" "col5" " "... " " " "....
+             V1    V2     V3     V4     V5    V6  V7   V8  V9  V10
+I / *:    "col1" "col2" "col3" "col4" "col5" " " .... " " " " ....
 columns/grid=g1/var=c1,c2,c3,c4,c5 bn_delimited_read_1.dat
 list c1,c2,c3,c4,c5
              DATA SET: ./bn_delimited_read_1.dat
@@ -36446,11 +36533,11 @@ list v1,v2,v3,v4,v5,v6,v7,v8
  Column  6: V6 is V6 (days)(Julian days since 1-Jan-1900)
  Column  7: V7 is V7 (days)(Julian days since 1-Jan-1900)
  Column  8: V8 is V8 (days)(Julian days since 1-Jan-1900)
-             V1     V2   V3 V4    V5      V6   V7 V8
-1   / 1:  36493.  36218.......  36493.  36218.......
-2   / 2:  36494.  36219.......  36494.  36219.......
-3   / 3:    ....    ..........  36495.  36220.......
-4   / 4:  36496.  36221.......  36496.  36221.......
+             V1     V2    V3   V4     V5      V6    V7   V8
+1   / 1:  36493.  36218. .... ....  36493.  36218. .... ....
+2   / 2:  36494.  36219. .... ....  36494.  36219. .... ....
+3   / 3:    ....    .... .... ....  36495.  36220. .... ....
+4   / 4:  36496.  36221. .... ....  36496.  36221. .... ....
 show data 2
      currently SET data sets:
     2> ./bn_delimited_read_date_time.dat  (default)
@@ -36485,11 +36572,11 @@ list v1,v2,v3,v4,v5,v6,v7,v8
  Column  6: V6 is V6 (hours)(Time of day)
  Column  7: V7 is V7 (hours)(Time of day)
  Column  8: V8 is V8 (hours)(Time of day)
-        V1  V2   V3     V4   V5 V6   V7     V8
-1   / 1:......  12.00  13.76......  12.00  13.76
-2   / 2:......   1.00  14.76......   1.00  14.76
-3   / 3:......   ....   ..........   2.00  15.75
-4   / 4:......   3.00  16.76......   3.00  16.76
+          V1   V2    V3     V4    V5   V6    V7     V8
+1   / 1: .... ....  12.00  13.76 .... ....  12.00  13.76
+2   / 2: .... ....   1.00  14.76 .... ....   1.00  14.76
+3   / 3: .... ....   ....   .... .... ....   2.00  15.75
+4   / 4: .... ....   3.00  16.76 .... ....   3.00  16.76
 show data 2
      currently SET data sets:
     2> ./bn_delimited_read_date_time.dat  (default)
@@ -38028,8 +38115,11 @@ save/q/clob/file=g.nc b
 can var a b
  
 sp ncrename -h -v A,a f.nc
+ncrename: In total renamed 0 attributes, 0 dimensions, 0 groups, and 1 variable
 sp ncrename -h -v A,a -v B,b f2.nc
+ncrename: In total renamed 0 attributes, 0 dimensions, 0 groups, and 2 variables
 sp ncrename -h -v B,b g.nc
+ncrename: In total renamed 0 attributes, 0 dimensions, 0 groups, and 1 variable
 use f.nc
 use f2.nc
 use g.nc
@@ -39237,7 +39327,7 @@ list/nohead/l=1001:1009 time_series[gt=($TAXNAME)@mod]
  
 ! test modulo string arrays
 list $1_strings[i=5:7]  	! via IS_SUBSPAN_FILL
- !-> list vreg_strings[i=5:7]  	! via IS_SUBSPAN_FILL
+ !-> list vreg_strings[i=5:7]
              VARIABLE : MY_STRINGS[GX=XAX_SUBSPAN at ASN]
              FILENAME : test_subspan_modulo.nc
              SUBSET   : 3 points (X)
@@ -39245,7 +39335,7 @@ list $1_strings[i=5:7]  	! via IS_SUBSPAN_FILL
  46   / 6:"a6"
  93.5 / 7:""  
 list $1_strings[i=1013:1024] 	! via IS_MODULO
- !-> list vreg_strings[i=1013:1024] 	! via IS_MODULO
+ !-> list vreg_strings[i=1013:1024]
              VARIABLE : MY_STRINGS[GX=XAX_SUBSPAN at ASN]
              FILENAME : test_subspan_modulo.nc
              SUBSET   : 12 points (X)
@@ -39766,7 +39856,7 @@ list/nohead/l=1001:1009 time_series[gt=($TAXNAME)@mod]
  
 ! test modulo string arrays
 list $1_strings[i=5:7]  	! via IS_SUBSPAN_FILL
- !-> list virr_strings[i=5:7]  	! via IS_SUBSPAN_FILL
+ !-> list virr_strings[i=5:7]
              VARIABLE : MY_STRINGS[GX=XIRREG_SUBSPAN at ASN]
              FILENAME : test_subspan_modulo.nc
              SUBSET   : 3 points (X)
@@ -39774,7 +39864,7 @@ list $1_strings[i=5:7]  	! via IS_SUBSPAN_FILL
  46   / 6:"a6"
  93.5 / 7:""  
 list $1_strings[i=1013:1024] 	! via IS_MODULO
- !-> list virr_strings[i=1013:1024] 	! via IS_MODULO
+ !-> list virr_strings[i=1013:1024]
              VARIABLE : MY_STRINGS[GX=XIRREG_SUBSPAN at ASN]
              FILENAME : test_subspan_modulo.nc
              SUBSET   : 12 points (X)
@@ -39919,7 +40009,8 @@ show modes
       LATIT_LABEL      SET               1
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
-      6D_LAB           SET
+      E_LABEL          SET               1
+      F_LABEL          SET               1
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -39938,7 +40029,8 @@ show modes
       NODATA_LAB       SET
       SHRINK_YLAB   CANCELLED
       CURVILINEAR   CANCELLED
-      SIGMA         CANCELLED
+      LAYERZ        CANCELLED
+      6D_LAB           SET
 contour/i=1:10/j=1:10 i/j
  
 ! restore the labels, logo still gone
@@ -44262,7 +44354,7 @@ list/k=1/l=1 a[i=3:5,j=1:8:2]
  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: 15 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : BIGVAR[I=1:40:5]
                         regrid: 2 delta on Y
@@ -44284,7 +44376,7 @@ cancel mem/all
  -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: 15 dset:   1 I:    3    5  J:    1    4  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
  
 ! basic strides
 LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
@@ -44299,7 +44391,7 @@ LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
  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: 15 dset:   1 I:    2    4  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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
@@ -44328,7 +44420,7 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  allocate dynamic grid (G007)          (AX021)   (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: 15 dset:   1 I:    1    4  J:    1    3  K:    1    2  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
              VARIABLE : VAR
@@ -44347,7 +44439,7 @@ 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: 15 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:    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
  
@@ -44362,7 +44454,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: 11 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 15 dset:   1 I:    3    9  J:    2    6  K:    1    3  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
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
@@ -44397,7 +44489,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  allocate dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX022)   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: 15 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  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
              VARIABLE : L*1000 + J*10 + I
@@ -44418,7 +44510,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
 use/order=tyx bn_strides
 show grid xytvar
  dealloc  dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
- -DELETE XYTVAR   M: 15 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    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
@@ -44440,7 +44532,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: 11 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 15 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
@@ -44484,7 +44576,7 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
  allocate dynamic grid (G006)          (AX023)   (AX024)   (AX022)   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: 15 dset:   1 I:    1    4  J:    1    3  K:    1    2  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
              VARIABLE : L*1000 + J*10 + I
@@ -44502,7 +44594,7 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
  144   / 2:  1054.  3054.  5054.  7054.
  146   / 3:  1056.  3056.  5056.  7056.
 canc data/all
- -DELETE XYTVAR   M: 15 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ -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
  
  
@@ -44520,7 +44612,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: 11 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 15 dset:   1 I:    1    5  J:    2    5  K:    3    5  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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -44553,7 +44645,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: 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: 15 dset:   1 I:    1    5  J:    2    5  K:    3    5  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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -44583,7 +44675,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  allocate dynamic grid (G006)          (AX024)   (AX023)   (AX021)   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: 15 dset:   1 I:    1    2  J:    1    2  K:    1    2  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
              VARIABLE : VAR
@@ -44600,7 +44692,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1125.  5125.
  5   / 2:  1155.  5155.
 canc data/all
- -DELETE MIDVAR   M: 15 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    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
  
 ! note the reversal on axes 1,2 and 3 (X,Y,Z in memory -- NOT T)
@@ -44616,8 +44708,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: 15 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 15 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
+ 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
              VARIABLE : VAR
@@ -44634,7 +44726,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  6775.  2775.
  5   / 2:  6745.  2745.
 canc data/all
- -DELETE MIDVAR   M: 15 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    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
  
 ! reference output
@@ -44649,7 +44741,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: 11 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 15 dset:   1 I:    1    5  J:    2    5  K:    3    5  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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -44682,7 +44774,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: 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: 15 dset:   1 I:    1    5  J:    2    5  K:    3    5  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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -46799,7 +46891,7 @@ show data/full
      NCEP Ocean Analysis
  name     title                             I         J         K         L         M         N
  TEMP     temperature                      1:1       1:1       1:19      1:1       ...       ...
-             degree_Celsius on grid GGH1 with 1.E-34 & NaN for missing data
+             degree_Celsius on grid GGH1 with -1.E+34 & NaN for missing data
              X=139.8E:140.8E  Y=0.5S:0.5N  Z=0:375  
  
   time range: 15-FEB-1980 12:00
@@ -47670,9 +47762,9 @@ GO err580_irreg_bounds.jnl
 ! the bounds seem to be ignored; axis is seen as regular.
 ! Bug 1160 reported by Andrew.
  
-yes? def ax/t/edge time = {0,1,3}
-yes? let a = t[gt=time]
-yes? show grid/t a
+def ax/t/edge time = {0,1,3}
+let a = t[gt=time]
+show grid/t a
     GRID (G001)
  name       axis              # pts   start                end
  normal    X
@@ -47686,17 +47778,17 @@ yes? show grid/t a
        1>  0.5                   1          0
        2>  2                     2          1
  
-yes? save/clob/file=a.nc a
+save/clob/file=a.nc a
 sp echo "err580_irreg_bounds.jnl --- " >> all_ncdump.out
-yes? sp ncdump a.nc >> all_ncdump.out
+sp ncdump a.nc >> all_ncdump.out
  
 can data/all
 can var/all
 can mem
  
 !  T axis was marked as regular
-yes? use a.nc
-yes? show grid/t a
+use a.nc
+show grid/t a
     GRID GSI1
  name       axis              # pts   start                end
  normal    X
@@ -48308,7 +48400,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.93"
+FERRET_VERSION = "6.951"
  
 ! history attribute
 let a = 12
@@ -48326,7 +48418,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.93:
+ Commands in Program FERRET  version6.951:
  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
@@ -48338,7 +48430,7 @@ 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/SIGMA
+ SET VARIABLE/TITLE/UNIT/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
@@ -48357,7 +48449,7 @@ sho command
        /HIDDEN
  SHOW MODE/ALL
  SHOW MOVIE/ALL
- SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/SIGMA
+ SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ
        /CURVILIN
  SHOW COMMANDS/ALL
  SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
@@ -48381,7 +48473,7 @@ sho command
  CANCEL MODE
  CANCEL MOVIE/ALL
  CANCEL VIEWPORT
- CANCEL VARIABLE/ALL/DATASET/SIGMA/CURVILIN
+ CANCEL VARIABLE/ALL/DATASET/LAYERZ/CURVILIN/NOERROR
  CANCEL AXIS/MODULO/ALL/DEPTH/STRIDE
  CANCEL GRID
  CANCEL ATTRIBUT/OUTPUT/DATA
@@ -48398,11 +48490,11 @@ sho command
        /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/SIGMA
+       /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
+       /NOYADJUS/KEY/RIBBON/LEVELS/PALETTE/FAST/MISSING/GAPLOC
  GO/HELP
  HELP
  LOAD/TEMPORY/PERMANT/I/J/K/L/M/N/X/Y/Z/T/E/F/D/NAME
@@ -48418,7 +48510,8 @@ sho command
  DEFINE SYMBOL
  DEFINE ATTRIBUT/D/TYPE/OUTPUT/QUIET
  DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/E/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/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
@@ -48445,6 +48538,7 @@ sho command
           /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
@@ -48459,7 +48553,7 @@ go ptest
 PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
  
 sh sym win_title
-WIN_TITLE = "30-Oct-14:11:16"
+WIN_TITLE = "6-Nov-15:15:54"
  
 set win/title="set the title"
 sho sym win_title
@@ -48477,7 +48571,7 @@ sho sym win_title
 WIN_TITLE = "_"
  
 set win/title="($session_date):($session_time)"
- !-> set win/title="30-Oct-14:11:16"
+ !-> set win/title=" 6-Nov-15:15:54"
  
 ! If the date or time starts with a blank then we get an extra
 ! underscore in the window title. Evaluating the symbols into
@@ -48486,16 +48580,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 = 30-Oct-14
+ !-> DEFINE SYMBOL the_date =  6-Nov-15
 DEFINE SYMBOL the_time = ($session_time"SESSION_TIME")
- !-> DEFINE SYMBOL the_time = 11:16
+ !-> DEFINE SYMBOL the_time = 15:54
 SET WIN/TITLE="($the_date):($the_time)"
- !-> SET WIN/TITLE="30-Oct-14:11:16"
+ !-> SET WIN/TITLE="6-Nov-15:15:54"
  
 can win/all
 set win/new
 sh sym win_title
-WIN_TITLE = "30-Oct-14:11:16"
+WIN_TITLE = "6-Nov-15:15:54"
 *** Running test: bn_last_error.jnl
 ! bn_last_error.jnl
 ! acm Nov 2005
@@ -49269,6 +49363,7 @@ let a = temp.missing_value
 list a
              VARIABLE : TEMP.MISSING_VALUE
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
          -1.000E+34
  
 use ocean_atlas_temp
@@ -49276,6 +49371,7 @@ let s = temp.units
 list s
              VARIABLE : TEMP.UNITS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "Deg C"
  
 can data/all
@@ -49287,6 +49383,7 @@ list s
              VARIABLE : ..REMARK
              DATA SET : K-Bay OAR3d model (200m)
              FILENAME : err491_attval.cdf
+             X        : 1
         "Generated by oar3d                                                                                                                                              "
  
 go bn_reset
@@ -49305,6 +49402,7 @@ let anames = sst.attnames
 list nat
              VARIABLE : SST.NATTRS
              FILENAME : coads_climatology.cdf
+             X        : 1
           5.000
 list anames
              VARIABLE : SST.ATTNAMES
@@ -49322,6 +49420,7 @@ let cnames = sst.dimnames
 list nd
              VARIABLE : SST.NDIMS
              FILENAME : coads_climatology.cdf
+             X        : 1
           3.000
 list cnames
              VARIABLE : SST.DIMNAMES
@@ -49341,6 +49440,7 @@ let nd = ..ndims
 let vnames = ..varnames
 list/d=1 nv, nd
              DATA SET: ./gt4d011.cdf
+             X: 1
  Column  1: NV is ..NVARS
  Column  2: ND is ..NDIMS
              NV    ND
@@ -49366,6 +49466,7 @@ let vnames = ..varnames
 list/d=coads_climatology vnames
              VARIABLE : ..VARNAMES
              FILENAME : coads_climatology.cdf
+             X        : 1
         "SST"
 list/d=gt4d011 vnames
              VARIABLE : ..VARNAMES
@@ -49402,27 +49503,28 @@ list vnames
  3   / 3:"TIME"  
 list lnames
              VARIABLE : ..DIMNAMES[D=gt4d011]
-             SUBSET   : 20 points (X)
- 1    /  1:"PSXT"      
- 2    /  2:"PSYT"      
- 3    /  3:"PSYTedges" 
- 4    /  4:"PSZT"      
- 5    /  5:"PSZTedges" 
- 6    /  6:"TIME1"     
- 7    /  7:"PSXT91_108"
- 8    /  8:"PSYT35_56" 
- 9    /  9:"PSZT1_10"  
- 10   / 10:"PSYT35_55" 
- 11   / 11:"PSXU"      
- 12   / 12:"PSYU"      
- 13   / 13:"PSYUedges" 
- 14   / 14:"PSXU91_108"
- 15   / 15:"PSYU35_55" 
- 16   / 16:"PSZW"      
- 17   / 17:"PSZWedges" 
- 18   / 18:"PSYT36_55" 
- 19   / 19:"PSZW1_10"  
- 20   / 20:"PSYU35_56" 
+             SUBSET   : 21 points (X)
+ 1    /  1:"grid_definition"
+ 2    /  2:"PSXT"           
+ 3    /  3:"PSYT"           
+ 4    /  4:"PSYTedges"      
+ 5    /  5:"PSZT"           
+ 6    /  6:"PSZTedges"      
+ 7    /  7:"TIME1"          
+ 8    /  8:"PSXT91_108"     
+ 9    /  9:"PSYT35_56"      
+ 10   / 10:"PSZT1_10"       
+ 11   / 11:"PSYT35_55"      
+ 12   / 12:"PSXU"           
+ 13   / 13:"PSYU"           
+ 14   / 14:"PSYUedges"      
+ 15   / 15:"PSXU91_108"     
+ 16   / 16:"PSYU35_55"      
+ 17   / 17:"PSZW"           
+ 18   / 18:"PSZWedges"      
+ 19   / 19:"PSYT36_55"      
+ 20   / 20:"PSZW1_10"       
+ 21   / 21:"PSYU35_56"      
  
 can var/all
 can data/all
@@ -49435,6 +49537,7 @@ list v
              VARIABLE : ..NDIMS
              DATA SET : K-Bay OAR3d model (200m)
              FILENAME : err491_attval.cdf
+             X        : 1
           3.000
  
 let na = ..nattrs
@@ -49442,6 +49545,7 @@ list na
              VARIABLE : ..NATTRS
              DATA SET : K-Bay OAR3d model (200m)
              FILENAME : err491_attval.cdf
+             X        : 1
           31.00
  
 let gnames = ..attnames
@@ -49505,12 +49609,14 @@ let nat = temp.nattrs
 list nat
              VARIABLE : TEMP.NATTRS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
           5.000
  
 list (`temp,return=xaxis`).nattrs
  !-> list (XAX_LEV9421_380).nattrs
              VARIABLE : (XAX_LEV9421_380).NATTRS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
           4.000
  
 use gt4d011
@@ -49544,15 +49650,18 @@ let a = temp.units
 list/d=3 a
              VARIABLE : TEMP.UNITS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "Deg C"
  
 list temp.units[d=3]
              VARIABLE : TEMP.UNITS[D=ocean_atlas_temp]
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "Deg C"
 list/d=3 temp.history
              VARIABLE : TEMP.HISTORY
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "From ocean_atlas_monthly"
  
 can data/all
@@ -49612,6 +49721,7 @@ let a= broiled.acl
 list a
              VARIABLE : BROILED.ACL
              FILENAME : test0.nc
+             X        : 1
           17000.
  
 let a= broiled.acf
@@ -49673,6 +49783,7 @@ use gt4d011
 list ..nvars
              VARIABLE : ..NVARS
              FILENAME : gt4d011.cdf
+             X        : 1
           12.00
  
 use coads_climatology
@@ -49680,10 +49791,12 @@ use coads_climatology
 list/d=1 ..nvars
              VARIABLE : ..NVARS
              FILENAME : gt4d011.cdf
+             X        : 1
           12.00
 list/d=2 ..nvars
              VARIABLE : ..NVARS
              FILENAME : coads_climatology.cdf
+             X        : 1
           1.000
  
 sh data
@@ -49706,6 +49819,7 @@ sh data
 list/d=2 ..varnames
              VARIABLE : ..VARNAMES
              FILENAME : coads_climatology.cdf
+             X        : 1
         "SST"
  
 list/d=2 ..dimnames
@@ -49718,49 +49832,55 @@ list/d=2 ..dimnames
 list/d=1 ..dimnames
              VARIABLE : ..DIMNAMES
              FILENAME : gt4d011.cdf
-             SUBSET   : 20 points (X)
- 1    /  1:"PSXT"      
- 2    /  2:"PSYT"      
- 3    /  3:"PSYTedges" 
- 4    /  4:"PSZT"      
- 5    /  5:"PSZTedges" 
- 6    /  6:"TIME1"     
- 7    /  7:"PSXT91_108"
- 8    /  8:"PSYT35_56" 
- 9    /  9:"PSZT1_10"  
- 10   / 10:"PSYT35_55" 
- 11   / 11:"PSXU"      
- 12   / 12:"PSYU"      
- 13   / 13:"PSYUedges" 
- 14   / 14:"PSXU91_108"
- 15   / 15:"PSYU35_55" 
- 16   / 16:"PSZW"      
- 17   / 17:"PSZWedges" 
- 18   / 18:"PSYT36_55" 
- 19   / 19:"PSZW1_10"  
- 20   / 20:"PSYU35_56" 
+             SUBSET   : 21 points (X)
+ 1    /  1:"grid_definition"
+ 2    /  2:"PSXT"           
+ 3    /  3:"PSYT"           
+ 4    /  4:"PSYTedges"      
+ 5    /  5:"PSZT"           
+ 6    /  6:"PSZTedges"      
+ 7    /  7:"TIME1"          
+ 8    /  8:"PSXT91_108"     
+ 9    /  9:"PSYT35_56"      
+ 10   / 10:"PSZT1_10"       
+ 11   / 11:"PSYT35_55"      
+ 12   / 12:"PSXU"           
+ 13   / 13:"PSYU"           
+ 14   / 14:"PSYUedges"      
+ 15   / 15:"PSXU91_108"     
+ 16   / 16:"PSYU35_55"      
+ 17   / 17:"PSZW"           
+ 18   / 18:"PSZWedges"      
+ 19   / 19:"PSYT36_55"      
+ 20   / 20:"PSZW1_10"       
+ 21   / 21:"PSYU35_56"      
  
 list/d=1 ..nattrs
              VARIABLE : ..NATTRS
              FILENAME : gt4d011.cdf
+             X        : 1
           1.000
 list/d=1 ..attnames
              VARIABLE : ..ATTNAMES
              FILENAME : gt4d011.cdf
+             X        : 1
         "history"
  
 list/d=1 ..ndims
              VARIABLE : ..NDIMS
              FILENAME : gt4d011.cdf
+             X        : 1
           21.00
 list/d=2 ..ndims
              VARIABLE : ..NDIMS
              FILENAME : coads_climatology.cdf
+             X        : 1
           3.000
  
 list ..nvars[d=1]
              VARIABLE : ..NVARS[D=gt4d011]
              FILENAME : gt4d011.cdf
+             X        : 1
           12.00
 sh var
  Created by DEFINE VARIABLE:
@@ -49787,6 +49907,7 @@ set data 1
 list/d=2 pp
              VARIABLE : ..VARNAMES
              FILENAME : coads_climatology.cdf
+             X        : 1
         "SST"
  
 go bn_reset
@@ -49876,10 +49997,12 @@ use coads_climatology
 list (coadsx).units
              VARIABLE : (COADSX).UNITS
              FILENAME : coads_climatology.cdf
+             X        : 1
         "degrees_east"
 list (coadsx).modulo
              VARIABLE : (COADSX).MODULO
              FILENAME : coads_climatology.cdf
+             X        : 1
         " "
 sho att/all (coadsx)
      attributes for dataset: ./coads_climatology.cdf
@@ -49968,6 +50091,7 @@ list (`sst,return=xaxis`).nattrs[d=2]
  !-> list (COADSX).nattrs[d=2]
              VARIABLE : (COADSX).NATTRS[D=coads_climatology]
              FILENAME : coads_climatology.cdf
+             X        : 1
           5.000
  
 ! using dimension names from the linked list structure
@@ -49987,6 +50111,7 @@ list (`cnames[i=1]`).nattrs
  !-> list (COADSX).nattrs
              VARIABLE : (COADSX).NATTRS
              FILENAME : coads_climatology.cdf
+             X        : 1
           5.000
  
 ! Intentional errors.
@@ -50129,6 +50254,7 @@ let pq = temp.pp
 list pq
              VARIABLE : TEMP.PP
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "PP now has some text."
  
 ! set an attribute when the variable is not in the default dataset.
@@ -51542,11 +51668,11 @@ 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
-PPL$XMIN = "131.0"
-PPL$XMAX = "281.0"
+PPL$XMIN = "131.0000"
+PPL$XMAX = "281.0000"
 sh sym ppl$xlow, ppl$xhigh   ! should be 165, 259
-PPL$XHIGH = "165.0"
-PPL$XLOW = "259.0"
+PPL$XHIGH = "165.0000"
+PPL$XLOW = "259.0000"
  
 sp rm -f err581_subspanx_fill_bug.nc
  
@@ -51628,8 +51754,6 @@ GO err581_if_conditional.jnl
 ! This should skip to the end, not trying to execute anything inside the IF 0 THEN
  
 if 0 then
-     endif
-  endif
 endif
  
 say "finished the if block"
@@ -51664,7 +51788,6 @@ let key_flag = 0
  
 IF `($xend) GT 360` THEN
  !-> IF 0 THEN
-  ENDIF
 ENDIF
 let dxymin = 0.20
 if `dxymin lt 0.12` then
@@ -51679,7 +51802,6 @@ endif
  
 IF `($xend) GT 360` THEN
  !-> IF 0 THEN
-   ENDIF
 ELSE
   say "this is the ELSE that should execute"
 this is the ELSE that should execute
@@ -51776,10 +51898,8 @@ ELIF ($refmap_type%|xline>1|*>0%) THEN    ! ELSE IF "xline"
  !-> ELIF 1 THEN
   define region/default/dy=$6"-30:30|1>-30:30|*>-20:20"/dx=$6"0:0|1>0:0|2>0:0|*>`max(-($ref_dx),-50)`:`min(($ref_dx),50)`" band
  !-> define region/default/dy=-20:20/dx=-50:50 band
- 
 ELIF ($refmap_type%|yline>1|*>0%) THEN    ! ELSE IF "yline"
  !-> ELIF 0 THEN
-   ENDIF
 ENDIF
 ! init the land mask data set
 set data coads_climatology
@@ -51818,17 +51938,12 @@ IF ($refmap_type%|box>1|*>0) THEN    ! IF "box"
  !-> IF 0 THEN
 ELIF ($refmap_type%|xline>1|*>0) THEN    ! ELSE IF "xline"
  !-> ELIF 1 THEN
- 
   IF ($refmap_ycompress) THEN
  !-> IF 0 THEN
   ENDIF
- 
   plot/over/vs/nolab/line=8/i=1:2 refmap_xrng, refmap_ymid+(i-i)
- 
 ELIF ($refmap_type%|yline>1|*>0) THEN    ! ELSE IF "yline"
  !-> ELIF 0 THEN
-  ENDIF
-  ENDIF
 ENDIF
  
  
@@ -52109,8 +52224,8 @@ GO err581_define_1pt_bounds.jnl
 ! again, and even that result is now very wrong!! Same results in both v5.81
 ! for Linux and v5.70 for Irix.
  
-yes? def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
+def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
+list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
              X: -2 to 6
  Column  1: XBOXLO is XBOXLO (axis XAX)
  Column  2: XBOXHI is XBOXHI (axis XAX)
@@ -52120,8 +52235,8 @@ yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
 3   / 2:  2.000  4.000  3.000
 5   / 3:  4.000  6.000  5.000
  
-yes? def ax/x/bounds xax = {0},{-2,2}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
+def ax/x/bounds xax = {0},{-2,2}
+list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
              X: 0
  Column  1: XBOXLO is XBOXLO (axis XAX)
  Column  2: XBOXHI is XBOXHI (axis XAX)
@@ -52129,8 +52244,8 @@ yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
          XBOXLO  XBOXHI    X
 I / *:    -2.000  2.000  0.0000
  
-yes? def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
+def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
+list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
              X: -2 to 6
  Column  1: XBOXLO is XBOXLO (axis XAX)
  Column  2: XBOXHI is XBOXHI (axis XAX)
@@ -52206,9 +52321,9 @@ go polymark poly/lev=(-5,30,1)/pal=white/fill/line=1/nolab/over v1 v2 v3 circle
  
 ! And, from Andrew with other reversed axes.
  
-yes? ppl cross 1
-yes? plot/vl=4:-4/hl=4:-4/vs/line/title="there should be just one triangle" {1,2,3,1},{0,2,1,0}
-yes? poly/ov/col=2/pal=yellow {1,2,3,1},{0,2,1,0}
+ppl cross 1
+plot/vl=4:-4/hl=4:-4/vs/line/title="there should be just one triangle" {1,2,3,1},{0,2,1,0}
+poly/ov/col=2/pal=yellow {1,2,3,1},{0,2,1,0}
  
 ppl cross 0
  
@@ -52376,12 +52491,10 @@ GO err600_if_comments_tab.jnl
 ! thrown off and we got an error about an invalid ENDIF
  
 IF 0 THEN
-   ENDIF
 ENDIF
  
 ! Here there is a tab before the ! which throws off the parsing...
 IF 0 THEN
-   ENDIF
 ENDIF
  
 ! err600_set_var_title.jnl
@@ -52533,6 +52646,7 @@ list ..dimnames
 list ..varnames
              VARIABLE : ..VARNAMES
              FILENAME : levitus_climatology.cdf
+             X        : 1
         "TEMP"
  
 ! err600_nc_des_order.jnl
@@ -52754,7 +52868,7 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V6.93  30-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (PSXT91_108)           DOUBLE    units           CHAR        12   T       degrees_east
@@ -52799,7 +52913,7 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V6.93  30-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (PSXT91_108)           DOUBLE    units           CHAR        12   T       degrees_east
@@ -54275,6 +54389,7 @@ IS_ELEMENT_OF_STR_N(VAR,VALUES)
 LABWID(STR,HT)
 LANCZOS(A,F1,F2,N)
 LIST_VALUE_XML(tag,value,cdata_flag,outputfile)
+LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
 LSL_LOWPASS(A,cutoff_period,filter_span)
 MINMAX(A)
 MINUTES24(formatted time)
@@ -54287,6 +54402,7 @@ SAMPLEI_MULTI(I_INDICES,DAT_TO_SAMPLE)
 SAMPLEJ_MULTI(J_INDICES,DAT_TO_SAMPLE)
 SAMPLEK_MULTI(K_INDICES,DAT_TO_SAMPLE)
 SAMPLEL_MULTI(L_INDICES,DAT_TO_SAMPLE)
+SAMPLEF_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
 SAMPLET_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
 SAMPLEXY(DAT_TO_SAMPLE,XPTS,YPTS)
 SAMPLEXY_CLOSEST(DAT_TO_SAMPLE,XPTS,YPTS)
@@ -54384,6 +54500,14 @@ EXPNDI_BY_M_COUNTS(dat,counts,max_row_len)
 STR_MASK(STRING,MASK,--)
 SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
 SEPARATE(A,Rowsize,FixLongitudes)
+TIME_REFORMAT(A)
+FT_TO_ORTHOGONAL(VAR,TIME2D,ALLTIME)
+CURV_TO_RECT_FSU(V,mapping)
+PIECEWISE3(V1,V2,V3,Control parameter,Tol1,Tol2,Tol3)
+SAMPLE_FAST_I(V,Indices)
+SAMPLE_FAST_I_STR(S,Indices)
+SEPARATE_STR(A,Rowsize,FixLongitudes)
+WRITE_WEBROW_GWT(id,name,Cruise_Mask,filename)
 ADD_9(A,B,C,D,E,F,G,H,I)
 APPENDE(ENS,VAR)
 AVET(A)
@@ -54394,6 +54518,7 @@ 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)
@@ -54541,11 +54666,11 @@ def axis/y=0.000001:0.000002/npoints=100 yax
 let a = x[gx=xax] + y[gy=yax]
 shade a; sh sym xax*; ; sh sym yax*
 XAXIS_REVERSED = "0"
-XAXIS_MIN = "3.99494949E-06"
-XAXIS_MAX = "5.0050505E-06"
+XAXIS_MIN = "3.994949495E-06"
+XAXIS_MAX = "5.005050505E-06"
 YAXIS_REVERSED = "0"
-YAXIS_MIN = "9.94949495E-07"
-YAXIS_MAX = "2.0050505E-06"
+YAXIS_MIN = "9.949494949E-07"
+YAXIS_MAX = "2.005050505E-06"
  
  
  
@@ -54573,27 +54698,27 @@ USE ocean_atlas_temp
 SET VIEW upper
 FILL temp[L=2,X=180:200,Y=30:44]
 SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.50000"
-XAXIS_MAX = "199.5000"
-YAXIS_MIN = "30.500000"
-YAXIS_MAX = "43.50000"
+XAXIS_MIN = "180.500000"
+XAXIS_MAX = "199.500000"
+YAXIS_MIN = "30.5000000"
+YAXIS_MAX = "43.5000000"
  
 ! See the larger region used by default for SHADE
 SHADE temp[L=2,X=180:200,y=30:44]
 SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.00000"
-XAXIS_MAX = "200.0000"
-YAXIS_MIN = "30.000000"
-YAXIS_MAX = "44.00000"
+XAXIS_MIN = "180.000000"
+XAXIS_MAX = "200.000000"
+YAXIS_MIN = "30.0000000"
+YAXIS_MAX = "44.0000000"
  
 ! SHADE/TRIM trims the region as for a FILL plot
 SET VIEW lower
 SHADE/TRIM temp[L=2,X=180:200,y=30:44]
 SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.50000"
-XAXIS_MAX = "199.5000"
-YAXIS_MIN = "30.500000"
-YAXIS_MAX = "43.50000"
+XAXIS_MIN = "180.500000"
+XAXIS_MAX = "199.500000"
+YAXIS_MIN = "30.5000000"
+YAXIS_MAX = "43.5000000"
  
 *** Running test: bn_mode_nlevels.jnl
 ! bn_mode_nlevels.jnl
@@ -55021,27 +55146,28 @@ list vnames
  4   / 4:"TIME"           
 list lnames
              VARIABLE : ..DIMNAMES[D=gt4d011]
-             SUBSET   : 20 points (X)
- 1    /  1:"PSXT"      
- 2    /  2:"PSYT"      
- 3    /  3:"PSYTedges" 
- 4    /  4:"PSZT"      
- 5    /  5:"PSZTedges" 
- 6    /  6:"TIME1"     
- 7    /  7:"PSXT91_108"
- 8    /  8:"PSYT35_56" 
- 9    /  9:"PSZT1_10"  
- 10   / 10:"PSYT35_55" 
- 11   / 11:"PSXU"      
- 12   / 12:"PSYU"      
- 13   / 13:"PSYUedges" 
- 14   / 14:"PSXU91_108"
- 15   / 15:"PSYU35_55" 
- 16   / 16:"PSZW"      
- 17   / 17:"PSZWedges" 
- 18   / 18:"PSYT36_55" 
- 19   / 19:"PSZW1_10"  
- 20   / 20:"PSYU35_56" 
+             SUBSET   : 21 points (X)
+ 1    /  1:"grid_definition"
+ 2    /  2:"PSXT"           
+ 3    /  3:"PSYT"           
+ 4    /  4:"PSYTedges"      
+ 5    /  5:"PSZT"           
+ 6    /  6:"PSZTedges"      
+ 7    /  7:"TIME1"          
+ 8    /  8:"PSXT91_108"     
+ 9    /  9:"PSYT35_56"      
+ 10   / 10:"PSZT1_10"       
+ 11   / 11:"PSYT35_55"      
+ 12   / 12:"PSXU"           
+ 13   / 13:"PSYU"           
+ 14   / 14:"PSYUedges"      
+ 15   / 15:"PSXU91_108"     
+ 16   / 16:"PSYU35_55"      
+ 17   / 17:"PSZW"           
+ 18   / 18:"PSZWedges"      
+ 19   / 19:"PSYT36_55"      
+ 20   / 20:"PSZW1_10"       
+ 21   / 21:"PSYU35_56"      
  
 go bn_reset
 cancel mode verify
@@ -55056,12 +55182,14 @@ let nat = temp.nattrs
 list nat
              VARIABLE : TEMP.NATTRS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
           5.000
  
 list (`temp,return=xaxis`)[d=2].nattrs
  !-> list (XAX_LEV9421_380)[d=2].nattrs
-             VARIABLE : (XAX_LEV9421_380)[d=ocean_atlas_temp].NATTRS
+             VARIABLE : (XAX_LEV9421_380)[D=ocean_atlas_temp].NATTRS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
           4.000
  
 use gt4d011
@@ -55096,14 +55224,17 @@ let a = temp.units
 list/d=3 a
              VARIABLE : TEMP.UNITS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "Deg C"
 list temp[d=3].units
-             VARIABLE : TEMP[d=ocean_atlas_temp].UNITS
+             VARIABLE : TEMP[D=ocean_atlas_temp].UNITS
              FILENAME : gt4d011.cdf
+             X        : 1
         "Deg C"
 list/d=3 temp.history
              VARIABLE : TEMP.HISTORY
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "From ocean_atlas_monthly"
  
 can data/all
@@ -55116,7 +55247,7 @@ use coads_climatology
 ! But this does
 let a = sst[d=1].dimnames
 list a[i=2]
-             VARIABLE : SST[d=coads_climatology].DIMNAMES
+             VARIABLE : SST[D=coads_climatology].DIMNAMES
              FILENAME : coads_climatology.cdf
              X        : 2
         "COADSY"
@@ -55132,16 +55263,18 @@ use coads_climatology
 define symbol ferret_plot_var sst[x=30:39,y=-90:90]
 list ($ferret_plot_var).long_name
  !-> list sst[x=30:39,y=-90:90].long_name
-             VARIABLE : SST.LONG_NAME
+             VARIABLE : SST[X=30:39,Y=-90:90].LONG_NAME
              FILENAME : coads_climatology.cdf
+             X        : 1
         "SEA SURFACE TEMPERATURE"
  
 use coads_climatology
 define symbol ferret_plot_var sst[d=1,x=30:35,y=-90:90]
 list ($ferret_plot_var).units
  !-> list sst[d=1,x=30:35,y=-90:90].units
-             VARIABLE : SST[d=coads_climatology].UNITS
+             VARIABLE : SST[D=coads_climatology,X=30:35,Y=-90:90].UNITS
              FILENAME : coads_climatology.cdf
+             X        : 1
         "Deg C"
  
 use coads_climatology
@@ -55149,8 +55282,9 @@ use levitus_climatology
 define symbol ferret_plot_var sst[d=1,x=30:35,y=-90:90]
 list ($ferret_plot_var).history
  !-> list sst[d=1,x=30:35,y=-90:90].history
-             VARIABLE : SST[d=coads_climatology].HISTORY
+             VARIABLE : SST[D=coads_climatology,X=30:35,Y=-90:90].HISTORY
              FILENAME : levitus_climatology.cdf
+             X        : 1
         "From coads_climatology"
  
 go bn_reset
@@ -55166,13 +55300,15 @@ def sym yaxnam  "(`temp[d=1],return=yaxis`)"
  
 list ($xaxnam)[d=1].modulo
  !-> list (XAXLEVITR1_160)[d=1].modulo
-             VARIABLE : (XAXLEVITR1_160)[d=levitus_climatology].MODULO
+             VARIABLE : (XAXLEVITR1_160)[D=levitus_climatology].MODULO
              FILENAME : coads_climatology.cdf
+             X        : 1
         " "
 list ($yaxnam).point_spacing[d=1]
  !-> list (YAXLEVITR1_90).point_spacing[d=1]
              VARIABLE : (YAXLEVITR1_90).POINT_SPACING[D=levitus_climatology]
              FILENAME : levitus_climatology.cdf
+             X        : 1
         "even"
  
  
@@ -55370,12 +55506,12 @@ GO err611_exit_if.jnl
 ! This only in v6.11 GFDL release bug
 ! Fixed in xeq_exit.F
  
-yes? sp echo if 1 then > a.jnl
-yes? sp echo exit/script >> a.jnl
-yes? sp echo endif >> a.jnl
-yes? sp echo go a > b.jnl
-yes? sp echo say hello >> b.jnl
-yes? go b  !the following fails to say "hello"
+sp echo if 1 then > a.jnl
+sp echo exit/script >> a.jnl
+sp echo endif >> a.jnl
+sp echo go a > b.jnl
+sp echo say hello >> b.jnl
+go b  !the following fails to say "hello"
 go a
 if 1 then
 exit/script
@@ -55440,7 +55576,7 @@ ppl list labels
 plot/x=56e:100e/y=10 sst[L=1]
 plot/over/x=56e:100e/y=40 sst[L=1]
 ppl list labels
- @ACSEA SURFACE TEMPERATURE (Deg C)                                             
+                                                                                
  @ASLONGITUDE                                                                   
  @ASDeg C                                                                       
 
@@ -55646,12 +55782,12 @@ GO err611_exit_if.jnl
 ! This only in v6.11 GFDL release bug
 ! Fixed in xeq_exit.F
  
-yes? sp echo if 1 then > a.jnl
-yes? sp echo exit/script >> a.jnl
-yes? sp echo endif >> a.jnl
-yes? sp echo go a > b.jnl
-yes? sp echo say hello >> b.jnl
-yes? go b  !the following fails to say "hello"
+sp echo if 1 then > a.jnl
+sp echo exit/script >> a.jnl
+sp echo endif >> a.jnl
+sp echo go a > b.jnl
+sp echo say hello >> b.jnl
+go b  !the following fails to say "hello"
 go a
 if 1 then
 exit/script
@@ -58036,7 +58172,7 @@ sh command list
        /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/SIGMA
+       /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]
@@ -58512,10 +58648,10 @@ SH GRID am
  normal    F
 *** Running test: bn_clock_syms.jnl
 SH SYM delta_cpu, clock_secs, current_date, current_time
-DELTA_CPU = "0.028994"
+DELTA_CPU = "0.007998"
 CLOCK_SECS = "0.003"
-CURRENT_DATE = "30-Oct-14"
-CURRENT_TIME = "11:17:55"
+CURRENT_DATE = " 6-Nov-15"
+CURRENT_TIME = "15:54:33"
 ! test special symbols DELTA_CPU, CLOCK_SECS
 !
 ! NOTE THAT THE VALUES OF THE SYMBOLS WILL VARY FROM ONE
@@ -58524,8 +58660,8 @@ CURRENT_TIME = "11:17:55"
 use gt4d011
 shade/k=1 temp[L=@ave]
 sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.062991"
-CLOCK_SECS = "1.171"
+DELTA_CPU = "0.032995"
+CLOCK_SECS = "0.18"
  
 repeat/k=1:10 shade temp[L=@ave]
 !-> REPEAT: K=1
@@ -58539,60 +58675,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.220966
+ !-> DEFINE VARIABLE ten_plots = 0.093985
 sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.001"
-CLOCK_SECS = "6.226"
+DELTA_CPU = "0"
+CLOCK_SECS = "1.038"
  
 let  sumclock = 0
 let  sumcpu = 0
 sh sym CLOCK_SECS
-CLOCK_SECS = "6.226"
+CLOCK_SECS = "1.038"
 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.030995
- !-> DEFINE VARIABLE sumcpu =0.030995
+ !-> DEFINE VARIABLE dt = 0.010999
+ !-> DEFINE VARIABLE sumcpu =0.010999
 !-> REPEAT: K=2
- !-> DEFINE VARIABLE dt = 0.027997
- !-> DEFINE VARIABLE sumcpu =0.058992
+ !-> DEFINE VARIABLE dt = 0.010998
+ !-> DEFINE VARIABLE sumcpu =0.021997
 !-> REPEAT: K=3
- !-> DEFINE VARIABLE dt = 0.028995
- !-> DEFINE VARIABLE sumcpu =0.087987
+ !-> DEFINE VARIABLE dt = 0.011998
+ !-> DEFINE VARIABLE sumcpu =0.033995
 !-> REPEAT: K=4
- !-> DEFINE VARIABLE dt = 0.020997
- !-> DEFINE VARIABLE sumcpu =0.108984
+ !-> DEFINE VARIABLE dt = 0.010999
+ !-> DEFINE VARIABLE sumcpu =0.044994
 !-> REPEAT: K=5
- !-> DEFINE VARIABLE dt = 0.025996
- !-> DEFINE VARIABLE sumcpu =0.13498
+ !-> DEFINE VARIABLE dt = 0.011998
+ !-> DEFINE VARIABLE sumcpu =0.056992
 !-> REPEAT: K=6
- !-> DEFINE VARIABLE dt = 0.023996
- !-> DEFINE VARIABLE sumcpu =0.158976
+ !-> DEFINE VARIABLE dt = 0.010998
+ !-> DEFINE VARIABLE sumcpu =0.06799
 !-> REPEAT: K=7
- !-> DEFINE VARIABLE dt = 0.021997
- !-> DEFINE VARIABLE sumcpu =0.180973
+ !-> DEFINE VARIABLE dt = 0.010998
+ !-> DEFINE VARIABLE sumcpu =0.078988
 !-> REPEAT: K=8
- !-> DEFINE VARIABLE dt = 0.019996
- !-> DEFINE VARIABLE sumcpu =0.200969
+ !-> DEFINE VARIABLE dt = 0.011999
+ !-> DEFINE VARIABLE sumcpu =0.090987
 !-> REPEAT: K=9
- !-> DEFINE VARIABLE dt = 0.029996
- !-> DEFINE VARIABLE sumcpu =0.230965
+ !-> DEFINE VARIABLE dt = 0.010998
+ !-> DEFINE VARIABLE sumcpu =0.101985
 !-> REPEAT: K=10
- !-> DEFINE VARIABLE dt = 0.020997
- !-> DEFINE VARIABLE sumcpu =0.251962
+ !-> DEFINE VARIABLE dt = 0.010998
+ !-> DEFINE VARIABLE sumcpu =0.112983
  
 say `sumcpu`
- !-> MESSAGE/CONTINUE 0.251962
-0.251962
+ !-> MESSAGE/CONTINUE 0.112983
+0.112983
 sh sym CLOCK_SECS
-CLOCK_SECS = "14.836"
+CLOCK_SECS = "1.885"
  
 SH SYM session_date, current_date, session_time, current_time
-SESSION_DATE = "30-Oct-14"
-SESSION_TIME = "11:17"
-CURRENT_DATE = "30-Oct-14"
-CURRENT_TIME = "11:18:10"
+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
 ! bn63_bug_fixes.jnl
 ! Fixes that go into v6.3 release
@@ -59402,8 +59538,8 @@ say `temp,return=isdepth`
  
 use coads_climatology
 say `sst,return=isdepth`
- !-> MESSAGE/CONTINUE NORMAL
-NORMAL
+ !-> MESSAGE/CONTINUE 0
+0
  
 can data 2
  
@@ -60911,7 +61047,7 @@ N_OPEN_DSETS = "0"
 ! New default no-small tics for multi-decade plots
 ! See bug 670
  
-def axis/t="01-JAN-1860":"30-DEC-2300":5/edges/units="Days"/cal="360d" simutaxis1
+def axis/t="01-JAN-1860":"30-DEC-2300":1/edges/units="years"/cal="360d" simutaxis1
 let tvar = t[gt=simutaxis1]*-1E+34
  
 define view/x=0:1/y=0.000:0.125 v1
@@ -61301,7 +61437,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.
@@ -62417,7 +62553,7 @@ list contents
  2   / 2:"     e.g.   yes? GO filename"                                              
  3   / 3:" "                                                                         
  4   / 4:" Use "GO/HELP filename" to read documentation in  the file to be executed."
- 5   / 5:" *** NOTE: Axis is already regular: MYAXIS"                                
+ 5   / 5:"           *** NOTE: Axis is already regular: MYAXIS"                      
  6   / 6:" **ERROR: variable unknown or not in data set: GARBAGE"                    
  7   / 7:"show grid garbage"                                                         
 cancel var contents
@@ -62503,9 +62639,9 @@ list contents
              VARIABLE : { SPAWN:"cat redirect_journal.txt" }
              SUBSET   : 47 points (X)
  1    /  1:" ! NOAA/PMEL TMAP"                                                          
- 2    /  2:" ! FERRET v6.93 (beta)"                                                     
- 3    /  3:" ! Linux 2.6.32-504.el6.x86_64 64-bit - 10/30/14"                           
- 4    /  4:" ! 30-Oct-14 11:19     "                                                    
+ 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     "                                                    
  5    /  5:""                                                                           
  6    /  6:"! "                                                                         
  7    /  7:"!! --- 22. produce some output to stdout and stderr"                        
@@ -62581,20 +62717,21 @@ variable transforms e.g.SST[T=1-jan:15-mar at DDC]
    @SBN        binomial smoothed            @SMN        minimum smoothed
    @SWL        Welch smoothed               @STD        standard deviation
    @SHN        Hanning smoothed             @WGT        weights for avg,int
-   @SPZ        Parzen smoothed
+   @SPZ        Parzen smoothed              @SPX        box smooth w/missing
  
 regridding transforms e.g.SST[GX=x5deg at AVE]
    code        description                  code        description
    ----        -----------                  ----        -----------
-   @LIN        lin. interp.                 @MOD        modulo ave
-   @AVE        box avgd                     @MODVAR     modulo var
-   @XACT       exact match                  @MODNGD     # gd mod pts
-   @ASN        index assn                   @MODNBD     #bad mod pts
-   @VAR        variance                     @MODSUM     modulo sum
-   @MIN        minimum                      @MODMIN     modulo min
-   @MAX        maximum                      @MODMAX     modulo max
-   @SUM        sum                          @NRST       nearst coord
-   @NGD        # gd pts
+   @LIN        lin. interp.                 @MODVAR     modulo var
+   @AVE        box 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
+   @MOD        modulo ave
  
 auxiliary varible regridding transforms e.g.TEMP[GZ(depth)=zax at AVE]
    code        description                  code        description
@@ -63592,8 +63729,7 @@ 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        2048 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.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2. [...]
+                                 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 [...]
   
 (LON273_289)           DOUBLE    long_name       CHAR        9    T       longitude
                                  units           CHAR        12   T       degrees_east
@@ -63774,7 +63910,6 @@ sh dat
  name     title                             I         J         K         L         M         N
  TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25      ...       ...
  TEMP_MM  TEMP - TEMPAVE                   1:18      1:22      1:10      1:25      ...       ...
-       (T=14-AUG-1982 11:00:13-JAN-1983 13:00)
  
  
 *** Running test: bn_NaN_note.jnl
@@ -63857,12 +63992,12 @@ list/L=15:20 tax_month(t[gt=tvar],tvar), tax_yearfrac(t[gt=tvar],tvar)
  Column  1: TAX_MONTH(T[GT=TVAR],TVAR)
  Column  2: TAX_YEARFRAC(T[GT=TVAR],TVAR)
              (C001,V002)  (C001,V005)
-17-MAR      / 15:   3.000  0.2082
-16-APR      / 16:   4.000  0.2904
-17-MAY      / 17:   5.000  0.3753
-16-JUN      / 18:   6.000  0.4575
-17-JUL      / 19:   7.000  0.5425
-16-AUG      / 20:   8.000  0.6247
+17-MAR      / 15:   3.000  0.2092
+16-APR      / 16:   4.000  0.2926
+17-MAY      / 17:   5.000  0.3760
+16-JUN      / 18:   6.000  0.4594
+17-JUL      / 19:   7.000  0.5428
+16-AUG      / 20:   8.000  0.6262
 ! the following is an error for a modulo time axis
 list/L=15:20 tax_year(t[gt=tvar],tvar)
 list tax_units(tvar)
@@ -63907,7 +64042,6 @@ sh dat
  name     title                             I         J         K         L         M         N
  TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25      ...       ...
  TEMP_MM  TEMP - TEMPAVE                   1:18      1:22      1:10      1:25      ...       ...
-       (T=14-AUG-1982 11:00:13-JAN-1983 13:00)
  
  
 GO bn_reset
@@ -64299,8 +64433,8 @@ list/l=1:7 TAX_yearfrac(t[gt=var], var)
  01-JAN-2010 00:00:10 / 3:  0.002740
  01-JAN-2010 00:00:15 / 4:  0.002740
  01-JAN-2010 00:00:20 / 5:  0.002740
- 01-JAN-2010 00:00:25 / 6:  0.002740
- 01-JAN-2010 00:00:30 / 7:  0.002740
+ 01-JAN-2010 00:00:25 / 6:  0.002741
+ 01-JAN-2010 00:00:30 / 7:  0.002741
  
 ! This example from Patrick B. Output of TAX_dayfrac repeats.
 ! We need to just return an error mesage. Cant represent 2.5 years
@@ -64939,40 +65073,40 @@ can mode ver
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.527
-randu2_randn2       0.005
-randu2_randn2       0.868
-randu2_randn2       0.513
-randu2_randn2       0.881
+randu2_randn2       0.633
+randu2_randn2       0.923
+randu2_randn2       0.140
+randu2_randn2       0.897
+randu2_randn2       0.548
              VARIABLE : RANDU2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.138
-randu2_randn2       0.897
-randu2_randn2       0.700
-randu2_randn2       0.970
-randu2_randn2       0.978
+randu2_randn2       0.266
+randu2_randn2       0.933
+randu2_randn2       0.953
+randu2_randn2       0.187
+randu2_randn2       0.698
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.432
-randu2_randn2       0.519
-randu2_randn2       0.131
-randu2_randn2       0.769
-randu2_randn2       0.876
-randu2_randn2       0.810
+randu2_randn2       0.582
+randu2_randn2       0.110
+randu2_randn2       0.976
+randu2_randn2       0.181
+randu2_randn2       0.825
+randu2_randn2       0.167
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.678
-randu2_randn2       0.492
-randu2_randn2       0.405
-randu2_randn2       0.765
-randu2_randn2       0.736
-randu2_randn2       0.568
+randu2_randn2       0.861
+randu2_randn2       0.964
+randu2_randn2       0.576
+randu2_randn2       0.825
+randu2_randn2       0.362
+randu2_randn2       0.932
              VARIABLE : RANDU2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
@@ -64997,40 +65131,40 @@ randu2_randn2       0.638
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.354
-randu2_randn2       1.401
-randu2_randn2       0.440
-randu2_randn2       0.430
-randu2_randn2      -1.294
+randu2_randn2      -0.480
+randu2_randn2      -0.007
+randu2_randn2       0.572
+randu2_randn2      -0.015
+randu2_randn2       2.431
              VARIABLE : RANDN2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.302
-randu2_randn2      -0.063
-randu2_randn2      -0.794
-randu2_randn2       0.971
-randu2_randn2      -2.604
+randu2_randn2       0.182
+randu2_randn2      -0.903
+randu2_randn2      -0.379
+randu2_randn2       0.360
+randu2_randn2       0.141
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.810
-randu2_randn2       0.335
-randu2_randn2      -0.531
-randu2_randn2      -0.837
-randu2_randn2      -0.772
-randu2_randn2      -1.977
+randu2_randn2      -0.007
+randu2_randn2      -0.438
+randu2_randn2       0.848
+randu2_randn2       0.722
+randu2_randn2       1.096
+randu2_randn2       1.026
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2      -1.337
-randu2_randn2       0.783
-randu2_randn2       1.666
-randu2_randn2      -0.327
-randu2_randn2       1.031
-randu2_randn2       1.036
+randu2_randn2       0.803
+randu2_randn2       0.446
+randu2_randn2       0.647
+randu2_randn2       0.836
+randu2_randn2      -0.392
+randu2_randn2       1.482
              VARIABLE : RANDN2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
@@ -65055,14 +65189,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.220       1.726       1.165
-randu2_randn2       1.726       1.220       1.165
-randu2_randn2       1.165       1.165       0.240
-randu2_randn2      -0.268      -0.268       0.247
-randu2_randn2      -0.608      -0.585       0.247
-randu2_randn2      -0.585      -0.585       0.247
-randu2_randn2       0.240       0.240       0.247
-randu2_randn2       0.247       0.247       0.247
+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
 ! Ticket 1792: Write axes with CF-compliant units
 ! and with standard name attributes for geophysical attrs.
@@ -66658,7 +66792,7 @@ LIST v[@ypt]
 LIST v[@ept]
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 by 3 points (X-Y-F)
-             E        : 1.00499999999999989 (interpolated)
+             E        : 1 (interpolated)
               1        2        3     
               1        2        3
  ---- N:1 F:   1
@@ -66676,7 +66810,7 @@ LIST v[@ept]
 LIST v[@fpt]
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 by 3 points (X-Y-E)
-             F        : 1.000499999999999945 (interpolated)
+             F        : 1 (interpolated)
               1        2        3     
               1        2        3
  ---- M:1 E:   1
@@ -66696,8 +66830,8 @@ LIST v[@fpt]
 LIST v[@ept, at fpt]	!XY
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 points (X-Y)
-             E        : 1.00499999999999989 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             E        : 1 (interpolated)
+             F        : 1 (interpolated)
               1        2        3     
               1        2        3
  1   / 1:  1112.00  1113.00  1114.00
@@ -66707,7 +66841,7 @@ LIST v[@ypt, at fpt]	!XE
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 points (X-E)
              Y        : 1.05 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             F        : 1 (interpolated)
               1        2        3     
               1        2        3
  1   / 1:  1112.00  1113.00  1114.00
@@ -66717,7 +66851,7 @@ LIST v[@ypt, at ept]	!XF
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 points (X-F)
              Y        : 1.05 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
+             E        : 1 (interpolated)
               1        2        3     
               1        2        3
  1   / 1:  1112.00  1113.00  1114.00
@@ -66727,7 +66861,7 @@ LIST v[@xpt, at fpt]	!YE
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 points (Y-E)
              X        : 1.5 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             F        : 1 (interpolated)
               1        2        3     
               1        2        3
  1   / 1:  1112.00  1122.00  1132.00
@@ -66737,7 +66871,7 @@ LIST v[@xpt, at ept]	!YF
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 points (Y-F)
              X        : 1.5 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
+             E        : 1 (interpolated)
               1        2        3     
               1        2        3
  1   / 1:  1112.00  1122.00  1132.00
@@ -66760,7 +66894,7 @@ LIST/ORDER=F v[@xpt, at ypt, at ept]	! F
              SUBSET   : 3 points (F)
              X        : 1.5 (interpolated)
              Y        : 1.05 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
+             E        : 1 (interpolated)
              1        2        3     
              1        2        3
           1112.50  2112.50  3112.50
@@ -66769,7 +66903,7 @@ LIST/ORDER=E v[@xpt, at ypt, at fpt]	! E
              SUBSET   : 3 points (E)
              X        : 1.5 (interpolated)
              Y        : 1.05 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             F        : 1 (interpolated)
              1        2        3     
              1        2        3
           1112.50  1212.50  1312.50
@@ -66777,8 +66911,8 @@ LIST/ORDER=Y v[@xpt, at ept, at fpt]	! Y
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 points (Y)
              X        : 1.5 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             E        : 1 (interpolated)
+             F        : 1 (interpolated)
              1        2        3     
              1        2        3
           1112.50  1122.50  1132.50
@@ -66786,8 +66920,8 @@ LIST/ORDER=X v[@ypt, at ept, at fpt]	! X
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 points (X)
              Y        : 1.05 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             E        : 1 (interpolated)
+             F        : 1 (interpolated)
              1        2        3     
              1        2        3
           1112.50  1113.50  1114.50
@@ -66797,8 +66931,8 @@ LIST v[@xpt, at ypt, at ept, at fpt]
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              X        : 1.5 (interpolated)
              Y        : 1.05 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             E        : 1 (interpolated)
+             F        : 1 (interpolated)
           1113.00
 *** Running test: bn_regrid_6d.jnl
 ! bn_regrid_6d.jnl
@@ -66868,7 +67002,7 @@ list veven
              SUBSET   : 3 by 3 by 3 by 3 points (X-Y-E-FORECAST)
              4      6      8    
              2      3      4
- ---- N:2 F:   05-JAN-1980 00:00:00
+ ---- N:2 F:   1980
  ---- M:2 E:   4
  4   / 2:  2222.  3222.  4222.
  6   / 3:  2322.  3322.  4322.
@@ -66881,7 +67015,7 @@ list veven
  4   / 2:  2242.  3242.  4242.
  6   / 3:  2342.  3342.  4342.
  8   / 4:  2442.  3442.  4442.
- ---- N:3 F:   07-JAN-1980 00:00:00
+ ---- N:3 F:   1980
  ---- M:2 E:   4
  4   / 2:  2223.  3223.  4223.
  6   / 3:  2323.  3323.  4323.
@@ -66894,7 +67028,7 @@ list veven
  4   / 2:  2243.  3243.  4243.
  6   / 3:  2343.  3343.  4343.
  8   / 4:  2443.  3443.  4443.
- ---- N:4 F:   09-JAN-1980 00:00:00
+ ---- N:4 F:   1980
  ---- M:2 E:   4
  4   / 2:  2224.  3224.  4224.
  6   / 3:  2324.  3324.  4324.
@@ -66912,7 +67046,7 @@ list v1234
              SUBSET   : 3 by 3 by 3 by 3 points (X-Y-E-FORECAST)
              5      7      9    
              3      4      5
- ---- N:3 F:   06-JAN-1980 00:00:00
+ ---- N:3 F:   1980
  ---- M:3 E:   5
  5   / 3:  2778.  3778.  4778.
  7   / 4:  2878.  3878.  4878.
@@ -66925,7 +67059,7 @@ list v1234
  5   / 3:  2798.  3798.  4798.
  7   / 4:  2898.  3898.  4898.
  9   / 5:  2998.  3998.  4998.
- ---- N:4 F:   08-JAN-1980 00:00:00
+ ---- N:4 F:   1980
  ---- M:3 E:   5
  5   / 3:  2779.  3779.  4779.
  7   / 4:  2879.  3879.  4879.
@@ -66938,7 +67072,7 @@ list v1234
  5   / 3:  2799.  3799.  4799.
  7   / 4:  2899.  3899.  4899.
  9   / 5:  2999.  3999.  4999.
- ---- N:5 F:   10-JAN-1980 00:00:00
+ ---- N:5 F:   1980
  ---- M:3 E:   5
  5   / 3:  2780.  3780.  4780.
  7   / 4:  2880.  3880.  4880.
@@ -66958,8 +67092,8 @@ stat veven
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -66982,8 +67116,8 @@ stat v1[g=even]-veven, v1
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -66998,8 +67132,8 @@ stat v1[g=even]-veven, v1
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67015,8 +67149,8 @@ stat v2[g=even]-veven, v2
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67031,8 +67165,8 @@ stat v2[g=even]-veven, v2
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67048,8 +67182,8 @@ stat v3[g=even]-veven, v3
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67064,8 +67198,8 @@ stat v3[g=even]-veven, v3
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67081,8 +67215,8 @@ stat v4[g=even]-veven, v4
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67097,8 +67231,8 @@ stat v4[g=even]-veven, v4
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67114,8 +67248,8 @@ stat v12[g=even]-veven, v12
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67130,8 +67264,8 @@ stat v12[g=even]-veven, v12
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67147,8 +67281,8 @@ stat v13[g=even]-veven, v13
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67163,8 +67297,8 @@ stat v13[g=even]-veven, v13
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67180,8 +67314,8 @@ stat v14[g=even]-veven, v14
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67196,8 +67330,8 @@ stat v14[g=even]-veven, v14
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67213,8 +67347,8 @@ stat v23[g=even]-veven, v23
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67229,8 +67363,8 @@ stat v23[g=even]-veven, v23
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67246,8 +67380,8 @@ stat v24[g=even]-veven, v24
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67262,8 +67396,8 @@ stat v24[g=even]-veven, v24
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67279,8 +67413,8 @@ stat v33[g=even]-veven, v33
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67295,8 +67429,8 @@ stat v33[g=even]-veven, v33
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67312,8 +67446,8 @@ stat v234[g=even]-veven, v234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67328,8 +67462,8 @@ stat v234[g=even]-veven, v234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67345,8 +67479,8 @@ stat v134[g=even]-veven, v134
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67361,8 +67495,8 @@ stat v134[g=even]-veven, v134
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67378,8 +67512,8 @@ stat v124[g=even]-veven, v124
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67394,8 +67528,8 @@ stat v124[g=even]-veven, v124
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67411,8 +67545,8 @@ stat v123[g=even]-veven, v123
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67427,8 +67561,8 @@ stat v123[g=even]-veven, v123
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67444,8 +67578,8 @@ stat v1234[g=even]-veven, v1234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67460,8 +67594,8 @@ stat v1234[g=even]-veven, v1234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67485,8 +67619,8 @@ stat v1[g=even]-veven, v1
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67501,8 +67635,8 @@ stat v1[g=even]-veven, v1
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67518,8 +67652,8 @@ stat v2[g=even]-veven, v2
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67534,8 +67668,8 @@ stat v2[g=even]-veven, v2
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67551,8 +67685,8 @@ stat v3[g=even]-veven, v3
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67567,8 +67701,8 @@ stat v3[g=even]-veven, v3
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67584,8 +67718,8 @@ stat v4[g=even]-veven, v4
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67600,8 +67734,8 @@ stat v4[g=even]-veven, v4
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67617,8 +67751,8 @@ stat v12[g=even]-veven, v12
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67633,8 +67767,8 @@ stat v12[g=even]-veven, v12
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67650,8 +67784,8 @@ stat v13[g=even]-veven, v13
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67666,8 +67800,8 @@ stat v13[g=even]-veven, v13
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67683,8 +67817,8 @@ stat v14[g=even]-veven, v14
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67699,8 +67833,8 @@ stat v14[g=even]-veven, v14
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67716,8 +67850,8 @@ stat v23[g=even]-veven, v23
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67732,8 +67866,8 @@ stat v23[g=even]-veven, v23
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67749,8 +67883,8 @@ stat v24[g=even]-veven, v24
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67765,8 +67899,8 @@ stat v24[g=even]-veven, v24
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67782,8 +67916,8 @@ stat v33[g=even]-veven, v33
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67798,8 +67932,8 @@ stat v33[g=even]-veven, v33
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67815,8 +67949,8 @@ stat v234[g=even]-veven, v234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67831,8 +67965,8 @@ stat v234[g=even]-veven, v234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67848,8 +67982,8 @@ stat v134[g=even]-veven, v134
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67864,8 +67998,8 @@ stat v134[g=even]-veven, v134
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67881,8 +68015,8 @@ stat v124[g=even]-veven, v124
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67897,8 +68031,8 @@ stat v124[g=even]-veven, v124
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67914,8 +68048,8 @@ stat v123[g=even]-veven, v123
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67930,8 +68064,8 @@ stat v123[g=even]-veven, v123
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67947,8 +68081,8 @@ stat v1234[g=even]-veven, v1234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67963,8 +68097,8 @@ stat v1234[g=even]-veven, v1234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -69025,7 +69159,7 @@ stat temp[g=g5day] - temp[g=g5day at ave]
              DEPTH (m): 5
              TIME: 21-JAN-1982 16:00
              E: 1 to 2
-             FORECAST: 23-JAN-1982 00:00:00 to 24-JAN-1982 00:0
+             FORECAST: 1982 to 1982
              DATA SET: ./gtsa056_1_ef.nc
  
  Total # of data points: 120 (5*6*1*1*2*2)
@@ -69054,7 +69188,7 @@ LIST temp[g=g5day at ave]
              TIME     : 21-JAN-1982 16:00
               129.5W 128.5W 127.5W 126.5W 125.5W 
               101    102    103    104    105
- ---- N:1 F:   23-JAN-1982 00:00:00
+ ---- N:1 F:   1982
  ---- M:1 E:   1
  1.5N  / 46:  32.35  32.37  32.56  32.97  33.45
  1.17N / 45:  32.17  32.19  32.33  32.69  33.14
@@ -69069,7 +69203,7 @@ LIST temp[g=g5day at ave]
  0.5N  / 43:  37.93  37.90  37.91  38.09  38.43
  0.17N / 42:  37.89  37.84  37.79  37.86  38.10
  0.17S / 41:  37.95  37.86  37.77  37.74  37.87
- ---- N:2 F:   23-JAN-1982 20:00:00
+ ---- N:2 F:   1982
  ---- M:1 E:   1
  1.5N  / 46:  37.75  37.77  37.96  38.37  38.85
  1.17N / 45:  37.57  37.59  37.73  38.09  38.54
@@ -69100,7 +69234,7 @@ LIST temp[g=g5day]
              TIME     : 21-JAN-1982 16:00
               129.5W 128.5W 127.5W 126.5W 125.5W 
               101    102    103    104    105
- ---- N:1 F:   23-JAN-1982 00:00:00
+ ---- N:1 F:   1982
  ---- M:1 E:   1
  1.5N  / 46:  34.35  34.37  34.56  34.97  35.45
  1.17N / 45:  34.17  34.19  34.33  34.69  35.14
@@ -69115,7 +69249,7 @@ LIST temp[g=g5day]
  0.5N  / 43:  39.93  39.90  39.91  40.09  40.43
  0.17N / 42:  39.89  39.84  39.79  39.86  40.10
  0.17S / 41:  39.95  39.86  39.77  39.74  39.87
- ---- N:2 F:   23-JAN-1982 20:00:00
+ ---- N:2 F:   1982
  ---- M:1 E:   1
  1.5N  / 46:  36.01  36.04  36.23  36.64  37.12
  1.17N / 45:  35.84  35.85  36.00  36.36  36.80
@@ -69154,7 +69288,7 @@ plot temp
  -DELETE TEMP     M:  3 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    3    3  M:    1    2  N:    1    2
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAXIS
- strip --> EX#1[F=23-JAN-198200:00:00 at ITP,D=1]
+ strip --> EX#1[F=1982 at ITP,D=1]
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
@@ -69163,7 +69297,7 @@ plot temp
  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[F=23-JAN-198200:00:00 at ITP,D=1]
+ doing --> TEMP[F=1982 at ITP,D=1]
 setting up plot
 PPL plot 1    complete
 plot/over temp[g=g5day]
@@ -69230,14 +69364,14 @@ plot temp
  -DELETE TEMP     M: 10 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAXIS
- strip --> EX#1[F=23-JAN-198200:00:00 at ITP,D=1]
+ strip --> EX#1[F=1982 at ITP,D=1]
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
  eval    EX#1     C:  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[F=23-JAN-198200:00:00 at ITP,D=1]
+ doing --> TEMP[F=1982 at ITP,D=1]
 setting up plot
 PPL plot 5    complete
 plot/over temp[g=g5day]
@@ -69755,7 +69889,7 @@ show grid
 set mode/last diag
 *** Running test: bn_aggregate_e.jnl
 ! bn_aggregate_e.jnl
-! using the DEFINE ATTRIBUTE/E command
+! using the DEFINE DATA/AGGREGATE/E command
 ! Datasets share sst, but only ens1 has airt.
  
 set mode diag
@@ -69766,7 +69900,7 @@ define data/agg/title fourfiles = ens1, ens3, ens2, ens4
 ! The grid of SST is known.
 show data fourfiles
      currently SET data sets:
-    5> FOURFILES  (default)  Ferret-defined Ensemble dataset
+    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       ...
  
@@ -69817,7 +69951,7 @@ define data/agg fourfiles = ens1, ens3, ens2, ens4
  allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME      NORMAL    NORMAL
 show data fourfiles
      currently SET data sets:
-    5> FOURFILES  (default)  Ferret-defined Ensemble dataset
+    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       ...
  AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      1:4       ...
@@ -69923,7 +70057,7 @@ define data/agg 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 dataset
+    3> WINDY  (default)  Ferret-defined 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       ...
@@ -69956,7 +70090,7 @@ define data/agg 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 dataset
+    3> WINDY  (default)  Ferret-defined 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       ...
@@ -70003,7 +70137,8 @@ sh command define
  DEFINE SYMBOL
  DEFINE ATTRIBUT/D/TYPE/OUTPUT/QUIET
  DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/E/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/E/F/TITLE/QUIET/HIDE
+ DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
 sh command show
  SHOW/ALL
  SHOW WINDOW/ALL
@@ -70015,7 +70150,7 @@ sh command show
        /HIDDEN
  SHOW MODE/ALL
  SHOW MOVIE/ALL
- SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/SIGMA
+ SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ
        /CURVILIN
  SHOW COMMANDS/ALL
  SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
@@ -70036,7 +70171,7 @@ ensemble/HIDE/title="ensemble with hidden members" fourfiles = ens1, ens2, ens3,
 ! should just show the ensemble set
 sh dat
      currently SET data sets:
-    5> FOURFILES  (default)  Ferret-defined Ensemble dataset
+    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       ...
  
@@ -70075,7 +70210,7 @@ sh dat/hidden
  name     title                             I         J         K         L         M         N
  SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
  
-    5> FOURFILES  (default)  Ferret-defined Ensemble dataset
+    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       ...
  
@@ -70118,7 +70253,7 @@ sh dat
  name     title                             I         J         K         L         M         N
  SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
  
-    5> MY_ENS  (default)  Ferret-defined Ensemble dataset
+    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       ...
  
@@ -70147,7 +70282,7 @@ ensemble/HIDE/title="uvars in dset 2"  my_ens = 1,2,3,4
 ! members hidden, showing only ensemble.
 sh dat
      currently SET data sets:
-    5> MY_ENS  (default)  Ferret-defined Ensemble dataset
+    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       ...
  
@@ -70182,15 +70317,15 @@ ensemble/HIDE/title="ensemble with hidden members" more = ens2, ens3, ens4
 ! Shows all the ensembles
 sh dat
      currently SET data sets:
-    5> FOURFILES     Ferret-defined Ensemble dataset
+    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 dataset
+    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 dataset
+    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       ...
  
@@ -70730,7 +70865,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V6.93  30-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -70785,7 +70920,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V6.93  30-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -70829,7 +70964,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V6.93  30-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -70873,7 +71008,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V6.93  30-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -70910,7 +71045,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V6.93  30-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -70948,7 +71083,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V6.93  30-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71015,7 +71150,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V6.93  30-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71064,7 +71199,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V6.93  30-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71125,7 +71260,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V6.93  30-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71166,7 +71301,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V6.93  30-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71207,7 +71342,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V6.93  30-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71248,7 +71383,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V6.93  30-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71286,7 +71421,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V6.93  30-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71514,7 +71649,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V6.93  30-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        FLOAT     units           CHAR        12   T       degrees_east
@@ -71552,7 +71687,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V6.93  30-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        FLOAT     units           CHAR        12   T       degrees_east
@@ -71599,7 +71734,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V6.93  30-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71643,7 +71778,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V6.93  30-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -71668,7 +71803,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V6.93  30-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             INT       units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -71693,7 +71828,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V6.93  30-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -71899,11 +72034,11 @@ GO err684_tax_fcns
  list/L=3:7 tax_yearfrac(var, var)
              VARIABLE : TAX_YEARFRAC(VAR, VAR)
              SUBSET   : 5 points (TIME)
- 08-OCT-2006 22 / 3:  0.7699
- 13-OCT-2006 23 / 4:  0.7836
- 18-OCT-2006 22 / 5:  0.7973
- 23-OCT-2006 21 / 6:  0.8110
- 28-OCT-2006 22 / 7:  0.8247
+ 08-OCT-2006 22 / 3:  0.7725
+ 13-OCT-2006 23 / 4:  0.7862
+ 18-OCT-2006 22 / 5:  0.7998
+ 23-OCT-2006 21 / 6:  0.8134
+ 28-OCT-2006 22 / 7:  0.8272
  
  list/L=3:7 tax_year(var, var)
              VARIABLE : TAX_YEAR(VAR, VAR)
@@ -71948,8 +72083,8 @@ GO err684_line_plot_zero
  
 plot {0,0,0}
 sh sym yaxis*
-YAXIS_MIN = "-1.0000000"
-YAXIS_MAX = "1.000000"
+YAXIS_MIN = "-1.00000000"
+YAXIS_MAX = "1.00000000"
  
  
 GO bn_reset
@@ -72118,11 +72253,11 @@ variables:
 		A:missing_value = -1.e+34 ;
 		A:_FillValue = -1.e+34 ;
 		A:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
-		A:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
+		A:long_name_mod = "X=20E:20E(380), Y=90S:90N" ;
 		A:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -72147,11 +72282,11 @@ variables:
 		E410:missing_value = -1.e+34 ;
 		E410:_FillValue = -1.e+34 ;
 		E410:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
-		E410:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
+		E410:long_name_mod = "X=20E:20E(380), Y=90S:90N" ;
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -72166,7 +72301,7 @@ save/clob/file=aa.nc/y=-81:-75 sst[x=@ave]-sst[x=@ave,t=@ave]
 use aa.nc
 list e410
              VARIABLE : SST[X=@AVE]-SST[X=@AVE,T=@AVE]
-                        X=20E:20E(380), T=01-JAN 00:45:01-APR 08:12
+                        X=20E:20E(380)
              FILENAME : aa.nc
              SUBSET   : 4 by 3 points (LATITUDE-TIME)
                     81S    79S    77S    75S   
@@ -72198,11 +72333,11 @@ variables:
 		E410:missing_value = -1.e+34f ;
 		E410:_FillValue = -1.e+34f ;
 		E410:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
-		E410:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
+		E410:long_name_mod = "X=20E:20E(380), Y=90S:90N" ;
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -72215,7 +72350,7 @@ save/clob/file=aa.nc/outtype=float/y=-81:-75 sst[x=@ave]-sst[x=@ave,t=@ave]
 use aa.nc
 list e410
              VARIABLE : SST[X=@AVE]-SST[X=@AVE,T=@AVE]
-                        X=20E:20E(380), T=01-JAN 00:45:01-APR 08:12
+                        X=20E:20E(380)
              FILENAME : aa.nc
              SUBSET   : 4 by 3 points (LATITUDE-TIME)
                     81S    79S    77S    75S   
@@ -72379,8 +72514,12 @@ let/title="tic labels on dependent axis" var = {\
 1.6897,1.687,1.6843,1.6817,1.679,1.6765,1.676,1.676}
  
 plot/line/sym/title="Vert axis labels should be 1.675 thru 1.715" var
-can mode meta
+cancel mode meta
  
+! rename the metafile. Else we get weird contents in axticlabel.plt
+! once the whole benchmark suite has finished. (why?)
+set mode meta metafile.plt
+cancel mode meta
  
 GO bn_reset
 cancel mode verify
@@ -72764,10 +72903,16 @@ variables:
 		CYCLE_ORIG:_FillValue = -1.e+34 ;
 		CYCLE_ORIG:long_name = "CYCLE[GZ=ZAXIS_ORIG at ASN]" ;
 		CYCLE_ORIG:history = "From z2" ;
+	double DDAT_ORIG(ZAXIS_ORIG) ;
+		DDAT_ORIG:missing_value = -1.e+34 ;
+		DDAT_ORIG:_FillValue = -1.e+34 ;
+		DDAT_ORIG:long_name = "DDAT[GZ=ZAXIS_ORIG at ASN]" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		: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" ;
 		:Conventions = "CF-1.6" ;
+		:NCO = "4.4.6" ;
 }
 *** Running test: bn_nobounds.jnl
 ! bn_nobounds.jnl
@@ -72796,7 +72941,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -72827,7 +72972,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -72889,7 +73034,7 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -72917,7 +73062,7 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -73070,6 +73215,7 @@ set mode/last ignore
 ! bn_tree.jnl
  
 ! 11/2013 -- demonstrate SHOW VARIABLE/TREE and RETRUN=STATUS
+! 12/14 update to test regridding output using bn_vtree_regrid.jnl
  
 CANCEL DATA/ALL
 ! pure abstract variable -- no dataset
@@ -73150,16 +73296,16 @@ vtree=all a
    in default dataset my_file_vars
    A = FV1[D=1] - FV1[D=2]
      FV1
-     FV1[d=other_file_var]
+     FV1[d=other_file_vars]
 vtree=all /d=1 a
    in default dataset my_file_vars
    A = FV1[D=1] - FV1[D=2]
      FV1
-     FV1[d=other_file_var]
+     FV1[d=other_file_vars]
 vtree=all /d=2 a
    in default dataset other_file_vars
    A = FV1[D=1] - FV1[D=2]
-     FV1[d=my_file_var]
+     FV1[d=my_file_vars]
      FV1
 ********************************
  
@@ -73167,12 +73313,12 @@ vtree=all /d=2 a
 go bn_vtree.sub noexist
 /TREE=ALL
    in default dataset my_file_vars
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
 /TREE=USER
    in default dataset my_file_vars
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
 /TREE=FILE
-   NOEXIST  (unknown variable)
+   *unknown variable: NOEXIST
 the problem is UNKNOWN VARIABLE: NOEXIST
 ************************
  
@@ -73180,12 +73326,12 @@ the problem is UNKNOWN VARIABLE: NOEXIST
 go bn_vtree.sub v[d=noexist]
 /TREE=ALL
    in default dataset my_file_vars
-   V[D=NOEXIST] ??                           <== UNKNOWN DATASET ******
+   V[D=NOEXIST] ??			<== UNKNOWN DATASET ******
 /TREE=USER
    in default dataset my_file_vars
-   V[D=NOEXIST] ??                           <== UNKNOWN DATASET ******
+   V[D=NOEXIST] ??			<== UNKNOWN DATASET ******
 /TREE=FILE
-   V[D=NOEXIST]  (unknown dataset)
+   *unknown dataset: V[D=NOEXIST]
 the problem is UNKNOWN DATASET: V[D=NOEXIST]
 ************************
  
@@ -73193,12 +73339,12 @@ the problem is UNKNOWN DATASET: V[D=NOEXIST]
 go bn_vtree.sub novar[d=nodset]
 /TREE=ALL
    in default dataset my_file_vars
-   NOVAR[D=NODSET] ??                           <== UNKNOWN DATASET ******
+   NOVAR[D=NODSET] ??			<== UNKNOWN DATASET ******
 /TREE=USER
    in default dataset my_file_vars
-   NOVAR[D=NODSET] ??                           <== UNKNOWN DATASET ******
+   NOVAR[D=NODSET] ??			<== UNKNOWN DATASET ******
 /TREE=FILE
-   NOVAR[D=NODSET]  (unknown dataset)
+   *unknown dataset: NOVAR[D=NODSET]
 the problem is UNKNOWN DATASET: NOVAR[D=NODSET]
 ************************
  
@@ -73207,13 +73353,13 @@ go bn_vtree.sub b
 /TREE=ALL
    in default dataset my_file_vars
    B = NOEXIST
-     NOEXIST ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST ??			<== UNKNOWN VARIABLE ******
 /TREE=USER
    in default dataset my_file_vars
    B = NOEXIST
-     NOEXIST ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST ??			<== UNKNOWN VARIABLE ******
 /TREE=FILE
-   NOEXIST  (unknown variable)
+   *unknown variable: NOEXIST
 the problem is UNKNOWN VARIABLE: NOEXIST
 ************************
  
@@ -73239,11 +73385,13 @@ go bn_vtree.sub fv1z
    in default dataset my_file_vars
    FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
      FV1
+       regrid to ZPTS = Z[Z=0:500:100]
        FVZ
      FVX
 /TREE=USER
    in default dataset my_file_vars
    FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
+       regrid to ZPTS = Z[Z=0:500:100]
 /TREE=FILE
    FV1[d=my_file_vars]
    FVZ[d=my_file_vars]
@@ -73259,11 +73407,13 @@ go bn_vtree.sub fv1z
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
      FV1
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]
      FVX
 /TREE=USER
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]
 /TREE=FILE
    FV1[d=my_file_vars]
@@ -73278,12 +73428,14 @@ go bn_vtree.sub fv1z
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
      FV1
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
          FVZ
      FVX
 /TREE=USER
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
 /TREE=FILE
    FV1[d=my_file_vars]
@@ -73305,7 +73457,7 @@ go bn_vtree.sub fv1z
    FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
        NOEXIST   (unknown auxiliary variable)
 /TREE=FILE
-   NOEXIST  (unknown auxiliary variable)
+   *unknown auxiliary variable: NOEXIST
    FVX[d=my_file_vars]
 the problem is UNKNOWN AUXILIARY VARIABLE: NOEXIST
 ************************
@@ -73316,17 +73468,19 @@ go bn_vtree.sub fv1z
 /TREE=ALL
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
-     NOEXIST[GZ(DEPTH)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(DEPTH)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
          FVZ
      FVX
 /TREE=USER
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
-     NOEXIST[GZ(DEPTH)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(DEPTH)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
 /TREE=FILE
-   NOEXIST[GZ(DEPTH)=ZPTS]  (unknown variable)
+   *unknown variable: NOEXIST[GZ(DEPTH)=ZPTS]
    FVZ[d=my_file_vars]
    FVX[d=my_file_vars]
 the problem is UNKNOWN VARIABLE: NOEXIST[GZ(DEPTH)=ZPTS]
@@ -73338,17 +73492,19 @@ go bn_vtree.sub fv1z
 /TREE=ALL
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
-     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        UNKNOWN_AUX   (unknown auxiliary variable)
      FVX
 /TREE=USER
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
-     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        UNKNOWN_AUX   (unknown auxiliary variable)
 /TREE=FILE
-   NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]  (unknown variable)
-   UNKNOWN_AUX  (unknown auxiliary variable)
+   *unknown variable: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
+   *unknown auxiliary variable: UNKNOWN_AUX
    FVX[d=my_file_vars]
 the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
 ************************
@@ -73359,9 +73515,9 @@ go bn_vtree.sub fv1
 /TREE=ALL
    in default dataset MY_AGG
    FV1   (aggregate variable)
-     FV1[d=my_file_var]
-     FV1[d=other_file_var]
-     FV1[d=another_file_var]
+     FV1[d=my_file_vars]
+     FV1[d=other_file_vars]
+     FV1[d=another_file_vars]
 /TREE=USER
    in default dataset MY_AGG
    FV1   (aggregate variable)
@@ -73381,16 +73537,16 @@ go bn_vtree.sub fvx
 /TREE=ALL
    in default dataset MY_UVAR_AGG
    FVX   (aggregate variable)
-     FVX[d=my_file_var]
-     FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
-       FV1[d=other_file_var]
-     FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
-       FV1[d=another_file_var]
+     FVX[d=my_file_vars]
+     FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+       FV1[d=other_file_vars]
+     FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+       FV1[d=another_file_vars]
 /TREE=USER
    in default dataset MY_UVAR_AGG
    FVX   (aggregate variable)
-     FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
-     FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+     FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+     FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
 /TREE=FILE
  
    FVX[d=my_file_vars]
@@ -73409,30 +73565,30 @@ go bn_vtree.sub p0    ! recursion
 /TREE=ALL
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = P1 + S3
            P1 =   *** WARNING: RECURSIVE DEFINITION.  See above
-           S3 ??                           <== UNKNOWN VARIABLE ******
+           S3 ??			<== UNKNOWN VARIABLE ******
 /TREE=USER
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = P1 + S3
            P1 =   *** WARNING: RECURSIVE DEFINITION.  See above
-           S3 ??                           <== UNKNOWN VARIABLE ******
+           S3 ??			<== UNKNOWN VARIABLE ******
 /TREE=FILE
-   S1  (unknown variable)
-   S2  (unknown variable)
-   S3  (unknown variable)
-   S3  (unknown variable)
+   *unknown variable: S1
+   *unknown variable: S2
+   *unknown variable: S3
+   *unknown variable: S3
 the problem is ILLEGAL RECURSIVE VARIABLES: P1
 ************************
 let p3 = s1 + S3
@@ -73440,31 +73596,31 @@ go bn_vtree.sub p0    ! ok
 /TREE=ALL
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = S1 + S3
-           S1 ??                           <== UNKNOWN VARIABLE ******
-           S3 ??                           <== UNKNOWN VARIABLE ******
+           S1 ??			<== UNKNOWN VARIABLE ******
+           S3 ??			<== UNKNOWN VARIABLE ******
 /TREE=USER
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = S1 + S3
-           S1 ??                           <== UNKNOWN VARIABLE ******
-           S3 ??                           <== UNKNOWN VARIABLE ******
+           S1 ??			<== UNKNOWN VARIABLE ******
+           S3 ??			<== UNKNOWN VARIABLE ******
 /TREE=FILE
-   S1  (unknown variable)
-   S2  (unknown variable)
-   S3  (unknown variable)
-   S1  (unknown variable)
-   S3  (unknown variable)
+   *unknown variable: S1
+   *unknown variable: S2
+   *unknown variable: S3
+   *unknown variable: S1
+   *unknown variable: S3
 the problem is UNKNOWN VARIABLE: S1
 ************************
  
@@ -73486,8 +73642,8 @@ show var/tree/d=my_uvar_agg     uv
    in default dataset MY_UVAR_AGG
    UV = FVX + FVX + FVX
      FVX   (aggregate variable)
-       FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
-       FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+       FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+       FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
 ***************************
  
 ! suppressing duplicates elsewhere in the family tree ("defined above")
@@ -73502,8 +73658,8 @@ go bn_vtree.sub v2
    V2 = V1 + B + A + A
      V1 = A  + B + B^2
        A = FV1[D=1] - FV1[D=2]
-         FV1[d=my_file_var]
-         FV1[d=other_file_var]
+         FV1[d=my_file_vars]
+         FV1[d=other_file_vars]
        B = C
          C = 1
      B =  (defined above)
@@ -73527,8 +73683,8 @@ go bn_vtree.sub v3
    in default dataset MY_UVAR_AGG
    V3 = A + V1 + B + A + A
      A = FV1[D=1] - FV1[D=2]
-       FV1[d=my_file_var]
-       FV1[d=other_file_var]
+       FV1[d=my_file_vars]
+       FV1[d=other_file_vars]
      V1 = A  + B + B^2
        A =  (defined above)
        B = C
@@ -73562,26 +73718,26 @@ go bn_vtree.sub "a, b, c, noexist, d, e, fvx[d=my_file_vars]"
    in default dataset MY_UVAR_AGG
    D = B + C
      B = FV1[D=MY_FILE_VARS]
-       FV1[d=my_file_var]
+       FV1[d=my_file_vars]
      C = 1
    A = F
-     F ??                           <== UNKNOWN VARIABLE ******
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
+     F ??			<== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
    E = 1
-   FVX[d=my_file_var]
+   FVX[d=my_file_vars]
 /TREE=USER
    in default dataset MY_UVAR_AGG
    D = B + C
      B = FV1[D=MY_FILE_VARS]
      C = 1
    A = F
-     F ??                           <== UNKNOWN VARIABLE ******
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
+     F ??			<== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
    E = 1
 /TREE=FILE
-   F  (unknown variable)
+   *unknown variable: F
    FV1[d=my_file_vars]
-   NOEXIST  (unknown variable)
+   *unknown variable: NOEXIST
    FVX[d=my_file_vars]
 the problem is UNKNOWN VARIABLE: F
 ************************
@@ -73596,14 +73752,16 @@ the problem is UNKNOWN VARIABLE: F
 /TREE=ALL
    in default dataset MY_UVAR_AGG
    B = A[G=NOEXIST]
-     A[G=NOEXIST]   (unknown grid)
+     A = I[I=1:5]
+       regrid to NOEXIST ??		<== UNKNOWN GRID ******
 /TREE=USER
    in default dataset MY_UVAR_AGG
    B = A[G=NOEXIST]
-     A[G=NOEXIST]   (unknown grid)
+     A = I[I=1:5]
+       regrid to NOEXIST ??		<== UNKNOWN GRID ******
 /TREE=FILE
-   A[G=NOEXIST]  (unknown grid)
-the problem is UNKNOWN GRID: A[G=NOEXIST]
+   *unknown grid: NOEXIST
+the problem is UNKNOWN GRID: NOEXIST
 ************************
   list b
  
@@ -73619,7 +73777,7 @@ the problem is UNKNOWN GRID: A[G=NOEXIST]
    C = A[X=45S]
      A[X=45S]   *** WARNING: ERROR IN DEFINITION
 /TREE=FILE
-   A[X=45S]   *** WARNING: SYNTAX ERROR
+      *WARNING: syntax error: A[X=45S]
 the problem is ERROR IN EXPRESSION: A[X=45S]
 ************************
   list c
@@ -73636,7 +73794,7 @@ the problem is ERROR IN EXPRESSION: A[X=45S]
    D = A[I=1,,J=2]
      A[I=1,,J=2]   *** WARNING: ERROR IN DEFINITION
 /TREE=FILE
-   A[I=1,,J=2]   *** WARNING: SYNTAX ERROR
+      *WARNING: syntax error: A[I=1,,J=2]
 the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
 ************************
   list d
@@ -73653,7 +73811,7 @@ the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
    E = A[P=1]
      A[P=1]   *** WARNING: ERROR IN DEFINITION
 /TREE=FILE
-   A[P=1]   *** WARNING: SYNTAX ERROR
+      *WARNING: syntax error: A[P=1]
 the problem is ERROR IN EXPRESSION: A[P=1]
 ************************
   list e
@@ -73685,6 +73843,528 @@ let a = ..history[d=1]
 show var/tree a
    in default dataset MY_UVAR_AGG
    A = ..HISTORY[D=1]
+ 
+! *****
+! 12/14 addition to test regridding dependencies
+go bn_vtree_regrid
+! bn_vtree_regrid.jnl
+! exercise 12/14 enhancements to display regrid target on a separate line
+! updated 1/26/15 to exercise multiple regrid target outputs
+! updated 2/23/15 to report target of regrid even when aux regridding occurs
+ 
+! case 1: target grid known,   regridded variable known
+let myvar = 1           ! var to be regridded is known
+let gvar = x[x=1:5]    ! target regridding var is known
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree a
+   in default dataset MY_UVAR_AGG
+   A = MYVAR[G=GVAR] + UNVAR + KVAR
+     MYVAR = 1
+       regrid to GVAR = X[X=1:5]
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 2: target grid known,   regridded variable unknown
+canc var/all
+! myvar unknown
+let gvar = x[x=1:5]    ! target regridding var is known
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree a
+   in default dataset MY_UVAR_AGG
+   A = MYVAR[G=GVAR] + UNVAR + KVAR
+     MYVAR[G=GVAR] ??			<== UNKNOWN VARIABLE ******
+       regrid to GVAR = X[X=1:5]
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 3: target grid unknown, regridded variable known
+canc var/all
+let myvar = 1           ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree a
+   in default dataset MY_UVAR_AGG
+   A = MYVAR[G=GVAR] + UNVAR + KVAR
+     MYVAR = 1
+       regrid to GVAR ??		<== UNKNOWN GRID ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 4: target grid unknown, regridded variable unknown
+canc var/all
+! myvar unknown
+! gvar  unknown
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree a
+   in default dataset MY_UVAR_AGG
+   A = MYVAR[G=GVAR] + UNVAR + KVAR
+     MYVAR[G=GVAR] ??			<== UNKNOWN VARIABLE ******
+       regrid to GVAR ??		<== UNKNOWN GRID ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! **************************************
+! same tests but now with a dataset named with the target grid
+use coads_climatology
+use levitus_climatology   ! default to d=2
+ 
+! case 1: target grid known,   regridded variable known
+canc var/all
+let myvar = 1           ! var to be regridded is known
+let a = myvar[g=sst[d=1]] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree=all a
+   in default dataset levitus_climatology
+   A = MYVAR[G=SST[D=1]] + UNVAR + KVAR
+     MYVAR = 1
+       regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 2: target grid known,   regridded variable unknown
+canc var/all
+! myvar unknown
+let a = myvar[g=sst[d=1]] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree=all a
+   in default dataset levitus_climatology
+   A = MYVAR[G=SST[D=1]] + UNVAR + KVAR
+     MYVAR[G=SST[D=1]] ??			<== UNKNOWN VARIABLE ******
+       regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 3a: target grid unknown, regridded variable known
+canc var/all
+let myvar = 1           ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=gvar[d=1]] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree=all a
+   in default dataset levitus_climatology
+   A = MYVAR[G=GVAR[D=1]] + UNVAR + KVAR
+     MYVAR = 1
+       regrid to GVAR[D=1] ??		<== UNKNOWN GRID ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 3b: target grid unknown cuz of dataset, regridded variable known
+canc var/all
+let myvar = 1           ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=sst[d=bad_dset]] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree=all a
+   in default dataset levitus_climatology
+   A = MYVAR[G=SST[D=BAD_DSET]] + UNVAR + KVAR
+     MYVAR[G=SST[D=BAD_DSET]] ??			<== UNKNOWN DATASET ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 4: target grid unknown, regridded variable unknown
+canc var/all
+! myvar unknown
+! gvar  unknown
+let a = myvar[g=gvar[d=1]] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree=all a
+   in default dataset levitus_climatology
+   A = MYVAR[G=GVAR[D=1]] + UNVAR + KVAR
+     MYVAR[G=GVAR[D=1]] ??			<== UNKNOWN VARIABLE ******
+       regrid to GVAR[D=1] ??		<== UNKNOWN GRID ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! *******************
+! file variable listing, only
+canc var/all
+let myvar = 1
+let fvar = airt[d=1]
+let kvar = 1  ! known var
+* /TREE=FILE with know regrid target
+let a = myvar[g=sst[d=1]] + fvar + kvar
+sho var/tree=file a
+   *unknown grid: SST[D=1]
+   *unknown variable: AIRT[D=1]
+ 
+* /TREE=FILE with unknow regrid target
+let a = myvar[g=unknown] + fvar + kvar
+sho var/tree=file a
+   *unknown grid: UNKNOWN
+   *unknown variable: AIRT[D=1]
+ 
+! ********************
+! regridding to multiple targets
+ 
+define axis/x=140e:160e:1 x1
+define axis/y=20s:20n:1   y1
+LET myvar = X[gx=x1] + Y[gy=y1]
+ 
+define axis/y=5s:5n:.5 yp5
+ 
+go bn_vtree.sub myvar[g=temp]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+myvar[g=temp] is ready and AVAILABLE
+************************
+ 
+! second target *is* a named variable
+go bn_vtree.sub myvar[g=temp,gy=sst[d=1]]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: SST[D=1]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+go bn_vtree.sub myvar[gx=temp,gy=sst[d=1]]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: SST[D=1]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+go bn_vtree.sub myvar[gy=sst[d=1],gx=temp]  ! reverse order, only
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+     regrid to TEMP
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   *unknown grid: SST[D=1]
+   regrid to TEMP[d=levitus_climatology]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+ 
+! second target is not a named variable
+go bn_vtree.sub myvar[g=temp,gy=yp5]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+myvar[g=temp,gy=yp5] is ready and AVAILABLE
+************************
+go bn_vtree.sub myvar[gx=temp,gy=yp5]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+myvar[gx=temp,gy=yp5] is ready and AVAILABLE
+************************
+go bn_vtree.sub myvar[g=temp,y=5s:5n:.5]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+myvar[g=temp,y=5s:5n:.5] is ready and AVAILABLE
+************************
+go bn_vtree.sub myvar[g=sst[d=1],y=5s:5n:.5]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   *unknown grid: SST[D=1]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+ 
+! multiple targets, including unknown variables
+go bn_vtree.sub myvar[g=temp,gy=mybad]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=mybad,gy=temp]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+     regrid to TEMP
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   *unknown grid: MYBAD
+   regrid to TEMP[d=levitus_climatology]
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[gy=temp,g=mybad[d=1]]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD[D=1]
+the problem is UNKNOWN GRID: MYBAD[D=1]
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad[d=1],gy=mybad2]! distinct unknown targets
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
+     regrid to MYBAD2 ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
+     regrid to MYBAD2 ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD[D=1]
+   *unknown grid: MYBAD2
+the problem is UNKNOWN GRID: MYBAD[D=1]
+************************
+go bn_vtree.sub myvar[gx=temp,gy=temp,g=mybad[d=1]]  ! dup known targets
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD[D=1]
+the problem is UNKNOWN GRID: MYBAD[D=1]
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad,gy=mybad]      ! dup unknown suppressed
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad[d=2],gy=mybad] ! dup unknown missed
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD[D=2] ??		<== UNKNOWN GRID ******
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD[D=2] ??		<== UNKNOWN GRID ******
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD[D=2]
+   *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD[D=2]
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad,gy='MYBAD']    ! dup unknown missed
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+     regrid to 'MYBAD' ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+     regrid to 'MYBAD' ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD
+   *unknown grid: 'MYBAD'
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=myvar,gy=mybad]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[gy=yp5,g=mybad]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=mybad,y=5s:5n:.5]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+ 
+! 2/15 additions -- auxiliary variable regridding
+USE levitus_climatology
+LET myzvar = Z[Z=100:500:100]
+DEFINE AXIS/z/units=meters zax = myzvar
+SET REGION/i=101:102/j=41:42
+ 
+LET/D=levitus_climatology depth = z[g=temp]+ 0*temp[k=1]
+ 
+! valid aux var and target variable
+LET tempz = temp[gz(depth)=myzvar]
+vtree=all tempz
+   in default dataset levitus_climatology
+   TEMPZ = TEMP[GZ(DEPTH)=MYZVAR]
+     TEMP
+       regrid to MYZVAR = Z[Z=100:500:100]
+       DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+         TEMP
+ 
+! valid aux var.  Target is axis name
+LET tempz1 = temp[gz(depth)=zax]
+vtree=all tempz1
+   in default dataset levitus_climatology
+   TEMPZ1 = TEMP[GZ(DEPTH)=ZAX]
+     TEMP
+       DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+         TEMP
+ 
+! valid aux var.  Target is unknown
+LET tempz2 = temp[gz(depth)=unknown_target]
+vtree=all tempz2
+   in default dataset levitus_climatology
+   TEMPZ2 = TEMP[GZ(DEPTH)=UNKNOWN_TARGET]
+     TEMP
+       regrid to UNKNOWN_TARGET ??		<== UNKNOWN GRID ******
+       DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+         TEMP
+ 
+! --- unknown aux var, valid target ---
+! When an unknown auxiliary variable error occurs it suppresses
+! the reporting of both the variable being regridded and the regrid target
+! The underlying issue is that GET_VAR_CONTEXT (called from is_dependencies.F)
+! can return only a single error status
+! If it contains ferr_unknown_auxvar, then the success or failure of other
+! parts of the context processing are unknown.
+! One could kludge the code to find a way around this, but the violence
+! required is not justified in order to fix this small loss in error reporting.
+LET tempz3 = temp[gz(unknown_aux)=myzvar]
+vtree=all tempz3
+   in default dataset levitus_climatology
+   TEMPZ3 = TEMP[GZ(UNKNOWN_AUX)=MYZVAR]
+       UNKNOWN_AUX   (unknown auxiliary variable)
+ 
+! a syntax error leads to a similar behavior
+LET tempz3a = temp[gz(unknown_aux)=myzvar,SYNTAX_ERROR]
+vtree=all tempz3a
+   in default dataset levitus_climatology
+   TEMPZ3A = TEMP[GZ(UNKNOWN_AUX)=MYZVAR,SYNTAX_ERROR]
+     TEMP[GZ(UNKNOWN_AUX)=MYZVAR,SYNTAX_ERROR]   *** WARNING: ERROR IN DEFINITION
+ 
+! similar behavior here:  the unknown_target does not get reported
+LET tempz4 = temp[gz(unknown_aux)=unknown_target]
+vtree=all tempz4
+   in default dataset levitus_climatology
+   TEMPZ4 = TEMP[GZ(UNKNOWN_AUX)=UNKNOWN_TARGET]
+       UNKNOWN_AUX   (unknown auxiliary variable)
+ 
+ 
 *** Running test: bn686_bug_fixes.jnl
 ! bn686_bug_fixes
 ! test various fixes that went into version 6.86
@@ -74078,7 +74758,7 @@ variables:
 		LABELS:history = "From http://dunkel.pmel.noaa.gov:8930/thredds/dodsC/data/atmos3.ncml" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74101,7 +74781,7 @@ variables:
 		STRVAR:long_name = "mystrings" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74245,7 +74925,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 : 03-JAN-2000 00:00:00 JULIAN"
+LAB2 = "FORECAST : 2000 JULIAN"
  
 GO bn_reset
 cancel mode verify
@@ -74321,7 +75001,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74351,7 +75031,7 @@ variables:
 		A:history = "From a" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74372,7 +75052,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74393,7 +75073,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74415,7 +75095,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74586,7 +75266,7 @@ show dat
  
  
 ! another error, new name is a user-var
-yes? set var/name=diff w
+set var/name=diff w
  
 SET MODE/LAST ignore
 *** Running test: bn_bad_axis_bounds.jnl
@@ -74638,7 +75318,7 @@ GO bn_short.sub tvar ave
 ! short script extracted from bn_negative_t.sub for bn_enter_exit_GO
  
 LIST/nohead/norow $1[t=-5:9@$2]	! neg/pos t endpoints
- !-> LIST/nohead/norow tvar[t=-5:9 at ave]	! neg/pos t endpoints
+ !-> LIST/nohead/norow tvar[t=-5:9 at ave]
    2.000
  
 ! Exit_GO
@@ -74727,11 +75407,11 @@ list/y=3/l=1 temp[x=@std]
 list/y=3/l=1 temp[z=@std,x=@std]
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
-             LONGITUDE: 140W to 122W (standard deviation)
+             LONGITUDE: 140W to 122W (XZ stddev)
              LATITUDE : 2.8N
-             DEPTH (m): 0 to 100 (standard deviation)
+             DEPTH (m): 0 to 100 (XZ stddev)
              TIME     : 17-AUG-1982 12:00
-          0.1895
+          0.9487
 *** Running test: bn_set_axis_name.jnl
 ! bn_set_axis_name.jnl
 ! ticket 2160 Implementing new qualifier SET AXIS/NAME
@@ -74824,7 +75504,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V6.93  30-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -74840,7 +75520,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V6.93  30-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -74856,7 +75536,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V6.93  30-Oct-14
+ .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -75686,10 +76366,12 @@ GO bn_vtree.sub c
 /TREE=ALL
    C = B2[GT=A]
      B2 = A
+       regrid to A = T[GT=1:2:1]
        A = T[GT=1:2:1]
 /TREE=USER
    C = B2[GT=A]
      B2 = A
+       regrid to A = T[GT=1:2:1]
        A = T[GT=1:2:1]
 /TREE=FILE
 c is ready and AVAILABLE
@@ -75727,6 +76409,8 @@ cancel mode verify
 GO err69_isready_bugs
 ! err69_isready_bugs.jnl
 ! Tickets 2201 and 2215
+! updated error script 12/14 *sh* - to ensure that bench log file
+! has verification of this problem and its fix, as well as the bench error file
  
 ! ticket 2201: isready operation meant we couldn't cancel the second axis
  
@@ -75748,6 +76432,15 @@ can axis xax_isready_1
 can var b
 can axis xax_isready_2
  
+! 12/14 additions:
+show grid/dynamic             ! look for "err: grid over-allocated" messages
+No dynamic grids
+    no implicit grids
+No dynamic axes
+    no implicit axes
+show axis xax_isready_1, xax_isready_2   ! did they both get canceled?
+ name       axis              # pts   start                end
+ 
 ! Ticket 2215, only with an unreleased Ferret; the first fix to 2201.
  
 let a = x[gx=1:3:1]
@@ -75761,6 +76454,19 @@ say `f,r=isready`
 say `f,r=unit`
  !-> MESSAGE/CONTINUE m
 m
+ 
+GO bn_reset
+cancel mode verify
+GO err691_substring_arg
+! err693_substring_arg
+! ACM 12/10/2014
+! ticket 2210. Argument checking was not done for the SUBSTRING function
+ 
+set mode ignore
+list substring("hello",1,-2)
+list substring("hello",1,-3)
+ 
+set mode/last ignore
 *** Running test: bn_append_dsg.jnl
 ! bn_append_dsg.jnl
 !From SOCAT 3: appending to a dsg file where the new variable is on the obs
@@ -75836,7 +76542,7 @@ variables:
 		:geospatial_lat_max = 29.07 ;
 		:time_coverage_start = "2006-06-10T23:48:00Z" ;
 		:time_converage_end = "2006-06-11T00:12:00Z" ;
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 }
 *** Running test: bn_global_atts.jnl
  ! NOAA/PMEL TMAP
@@ -75926,7 +76632,7 @@ variables:
 		LON360:history = "added to test_save_dsg.nc" ;
 
 // global attributes:
-		:history = "CruiseDsgNcFile 1.0FERRET V6.93  30-Oct-14" ;
+		:history = "CruiseDsgNcFile 1.0FERRET V6.951   6-Nov-15" ;
 		:featureType = "Trajectory" ;
 		:Conventions = "Some other conventionsCF-1.6" ;
 		:geospatial_lon_min = -92.77 ;
@@ -75953,7 +76659,7 @@ can dat/all; use anew_global.nc
 sh att .
      attributes for dataset: ./anew_global.nc
  ..history = Subset of etopo20,
- FERRET V6.93  30-Oct-14 
+ FERRET V6.951   6-Nov-15 
  ..Conventions = Existing conventions note, , CF-1.6 
  
  
@@ -75982,7 +76688,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.93  30-Oct-14 
+ ..history = The history of the fileFERRET V6.951   6-Nov-15 
  ..Conventions = Conventions for variables named V2CF-1.6 
 *** Running test: bn_center_key_labels.jnl
 ! bn_center_key_labels
@@ -76378,14 +77084,14 @@ a is ready and AVAILABLE
    in default dataset my_file_vars
    A = FV1[D=1] - FV1[D=2]
      FV1
-     FV1[d=other_file_var]
+     FV1[d=other_file_vars]
    in default dataset my_file_vars
    A = FV1[D=1] - FV1[D=2]
      FV1
-     FV1[d=other_file_var]
+     FV1[d=other_file_vars]
    in default dataset other_file_vars
    A = FV1[D=1] - FV1[D=2]
-     FV1[d=my_file_var]
+     FV1[d=my_file_vars]
      FV1
 ********************************
 /TREE=ALL
@@ -76394,30 +77100,30 @@ a is ready and AVAILABLE
 the problem is UNKNOWN VARIABLE: NOEXIST
 ************************
    in default dataset my_file_vars
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
    in default dataset my_file_vars
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
-   NOEXIST  (unknown variable)
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
+   *unknown variable: NOEXIST
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
 the problem is UNKNOWN DATASET: V[D=NOEXIST]
 ************************
    in default dataset my_file_vars
-   V[D=NOEXIST] ??                           <== UNKNOWN DATASET ******
+   V[D=NOEXIST] ??			<== UNKNOWN DATASET ******
    in default dataset my_file_vars
-   V[D=NOEXIST] ??                           <== UNKNOWN DATASET ******
-   V[D=NOEXIST]  (unknown dataset)
+   V[D=NOEXIST] ??			<== UNKNOWN DATASET ******
+   *unknown dataset: V[D=NOEXIST]
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
 the problem is UNKNOWN DATASET: NOVAR[D=NODSET]
 ************************
    in default dataset my_file_vars
-   NOVAR[D=NODSET] ??                           <== UNKNOWN DATASET ******
+   NOVAR[D=NODSET] ??			<== UNKNOWN DATASET ******
    in default dataset my_file_vars
-   NOVAR[D=NODSET] ??                           <== UNKNOWN DATASET ******
-   NOVAR[D=NODSET]  (unknown dataset)
+   NOVAR[D=NODSET] ??			<== UNKNOWN DATASET ******
+   *unknown dataset: NOVAR[D=NODSET]
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
@@ -76425,11 +77131,11 @@ the problem is UNKNOWN VARIABLE: NOEXIST
 ************************
    in default dataset my_file_vars
    B = NOEXIST
-     NOEXIST ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST ??			<== UNKNOWN VARIABLE ******
    in default dataset my_file_vars
    B = NOEXIST
-     NOEXIST ??                           <== UNKNOWN VARIABLE ******
-   NOEXIST  (unknown variable)
+     NOEXIST ??			<== UNKNOWN VARIABLE ******
+   *unknown variable: NOEXIST
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
@@ -76448,10 +77154,12 @@ fv1z is ready and AVAILABLE
    in default dataset my_file_vars
    FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
      FV1
+       regrid to ZPTS = Z[Z=0:500:100]
        FVZ
      FVX
    in default dataset my_file_vars
    FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
+       regrid to ZPTS = Z[Z=0:500:100]
    FV1[d=my_file_vars]
    FVZ[d=my_file_vars]
    FVX[d=my_file_vars]
@@ -76463,10 +77171,12 @@ fv1z is ready and AVAILABLE
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
      FV1
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]
      FVX
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]
    FV1[d=my_file_vars]
    FVX[d=my_file_vars]
@@ -76478,11 +77188,13 @@ fv1z is ready and AVAILABLE
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
      FV1
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
          FVZ
      FVX
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
    FV1[d=my_file_vars]
    FVZ[d=my_file_vars]
@@ -76499,7 +77211,7 @@ the problem is UNKNOWN AUXILIARY VARIABLE: NOEXIST
    in default dataset my_file_vars
    FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
        NOEXIST   (unknown auxiliary variable)
-   NOEXIST  (unknown auxiliary variable)
+   *unknown auxiliary variable: NOEXIST
    FVX[d=my_file_vars]
 /TREE=ALL
 /TREE=USER
@@ -76508,15 +77220,17 @@ the problem is UNKNOWN VARIABLE: NOEXIST[GZ(DEPTH)=ZPTS]
 ************************
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
-     NOEXIST[GZ(DEPTH)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(DEPTH)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
          FVZ
      FVX
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
-     NOEXIST[GZ(DEPTH)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(DEPTH)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
-   NOEXIST[GZ(DEPTH)=ZPTS]  (unknown variable)
+   *unknown variable: NOEXIST[GZ(DEPTH)=ZPTS]
    FVZ[d=my_file_vars]
    FVX[d=my_file_vars]
 /TREE=ALL
@@ -76526,15 +77240,17 @@ the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
 ************************
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
-     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        UNKNOWN_AUX   (unknown auxiliary variable)
      FVX
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
-     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        UNKNOWN_AUX   (unknown auxiliary variable)
-   NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]  (unknown variable)
-   UNKNOWN_AUX  (unknown auxiliary variable)
+   *unknown variable: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
+   *unknown auxiliary variable: UNKNOWN_AUX
    FVX[d=my_file_vars]
 /TREE=ALL
 /TREE=USER
@@ -76543,9 +77259,9 @@ fv1 is ready and AVAILABLE
 ************************
    in default dataset MY_AGG
    FV1   (aggregate variable)
-     FV1[d=my_file_var]
-     FV1[d=other_file_var]
-     FV1[d=another_file_var]
+     FV1[d=my_file_vars]
+     FV1[d=other_file_vars]
+     FV1[d=another_file_vars]
    in default dataset MY_AGG
    FV1   (aggregate variable)
  
@@ -76559,15 +77275,15 @@ fvx is ready and AVAILABLE
 ************************
    in default dataset MY_UVAR_AGG
    FVX   (aggregate variable)
-     FVX[d=my_file_var]
-     FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
-       FV1[d=other_file_var]
-     FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
-       FV1[d=another_file_var]
+     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
    FVX   (aggregate variable)
-     FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
-     FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+     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]
  
    FVX[d=my_file_vars]
    FV1[d=other_file_vars]
@@ -76579,28 +77295,28 @@ the problem is ILLEGAL RECURSIVE VARIABLES: P1
 ************************
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = P1 + S3
            P1 =   *** WARNING: RECURSIVE DEFINITION.  See above
-           S3 ??                           <== UNKNOWN VARIABLE ******
+           S3 ??			<== UNKNOWN VARIABLE ******
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = P1 + S3
            P1 =   *** WARNING: RECURSIVE DEFINITION.  See above
-           S3 ??                           <== UNKNOWN VARIABLE ******
-   S1  (unknown variable)
-   S2  (unknown variable)
-   S3  (unknown variable)
-   S3  (unknown variable)
+           S3 ??			<== UNKNOWN VARIABLE ******
+   *unknown variable: S1
+   *unknown variable: S2
+   *unknown variable: S3
+   *unknown variable: S3
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
@@ -76608,29 +77324,29 @@ the problem is UNKNOWN VARIABLE: S1
 ************************
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = S1 + S3
-           S1 ??                           <== UNKNOWN VARIABLE ******
-           S3 ??                           <== UNKNOWN VARIABLE ******
+           S1 ??			<== UNKNOWN VARIABLE ******
+           S3 ??			<== UNKNOWN VARIABLE ******
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = S1 + S3
-           S1 ??                           <== UNKNOWN VARIABLE ******
-           S3 ??                           <== UNKNOWN VARIABLE ******
-   S1  (unknown variable)
-   S2  (unknown variable)
-   S3  (unknown variable)
-   S1  (unknown variable)
-   S3  (unknown variable)
+           S1 ??			<== UNKNOWN VARIABLE ******
+           S3 ??			<== UNKNOWN VARIABLE ******
+   *unknown variable: S1
+   *unknown variable: S2
+   *unknown variable: S3
+   *unknown variable: S1
+   *unknown variable: S3
    in default dataset my_file_vars
    FV = FV1 + FV1 + FV1
    in default dataset MY_UVAR_AGG
@@ -76642,8 +77358,8 @@ the problem is UNKNOWN VARIABLE: S1
    in default dataset MY_UVAR_AGG
    UV = FVX + FVX + FVX
      FVX   (aggregate variable)
-       FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
-       FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+       FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+       FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
 ***************************
 /TREE=ALL
 /TREE=USER
@@ -76654,8 +77370,8 @@ v2 is ready and AVAILABLE
    V2 = V1 + B + A + A
      V1 = A  + B + B^2
        A = FV1[D=1] - FV1[D=2]
-         FV1[d=my_file_var]
-         FV1[d=other_file_var]
+         FV1[d=my_file_vars]
+         FV1[d=other_file_vars]
        B = C
          C = 1
      B =  (defined above)
@@ -76678,8 +77394,8 @@ v3 is ready and AVAILABLE
    in default dataset MY_UVAR_AGG
    V3 = A + V1 + B + A + A
      A = FV1[D=1] - FV1[D=2]
-       FV1[d=my_file_var]
-       FV1[d=other_file_var]
+       FV1[d=my_file_vars]
+       FV1[d=other_file_vars]
      V1 = A  + B + B^2
        A =  (defined above)
        B = C
@@ -76703,37 +77419,39 @@ the problem is UNKNOWN VARIABLE: F
    in default dataset MY_UVAR_AGG
    D = B + C
      B = FV1[D=MY_FILE_VARS]
-       FV1[d=my_file_var]
+       FV1[d=my_file_vars]
      C = 1
    A = F
-     F ??                           <== UNKNOWN VARIABLE ******
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
+     F ??			<== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
    E = 1
-   FVX[d=my_file_var]
+   FVX[d=my_file_vars]
    in default dataset MY_UVAR_AGG
    D = B + C
      B = FV1[D=MY_FILE_VARS]
      C = 1
    A = F
-     F ??                           <== UNKNOWN VARIABLE ******
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
+     F ??			<== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
    E = 1
-   F  (unknown variable)
+   *unknown variable: F
    FV1[d=my_file_vars]
-   NOEXIST  (unknown variable)
+   *unknown variable: NOEXIST
    FVX[d=my_file_vars]
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
-the problem is UNKNOWN GRID: A[G=NOEXIST]
+the problem is UNKNOWN GRID: NOEXIST
 ************************
    in default dataset MY_UVAR_AGG
    B = A[G=NOEXIST]
-     A[G=NOEXIST]   (unknown grid)
+     A = I[I=1:5]
+       regrid to NOEXIST ??		<== UNKNOWN GRID ******
    in default dataset MY_UVAR_AGG
    B = A[G=NOEXIST]
-     A[G=NOEXIST]   (unknown grid)
-   A[G=NOEXIST]  (unknown grid)
+     A = I[I=1:5]
+       regrid to NOEXIST ??		<== UNKNOWN GRID ******
+   *unknown grid: NOEXIST
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
@@ -76745,7 +77463,7 @@ the problem is ERROR IN EXPRESSION: A[X=45S]
    in default dataset MY_UVAR_AGG
    C = A[X=45S]
      A[X=45S]   *** WARNING: ERROR IN DEFINITION
-   A[X=45S]   *** WARNING: SYNTAX ERROR
+      *WARNING: syntax error: A[X=45S]
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
@@ -76757,7 +77475,7 @@ the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
    in default dataset MY_UVAR_AGG
    D = A[I=1,,J=2]
      A[I=1,,J=2]   *** WARNING: ERROR IN DEFINITION
-   A[I=1,,J=2]   *** WARNING: SYNTAX ERROR
+      *WARNING: syntax error: A[I=1,,J=2]
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
@@ -76769,7 +77487,7 @@ the problem is ERROR IN EXPRESSION: A[P=1]
    in default dataset MY_UVAR_AGG
    E = A[P=1]
      A[P=1]   *** WARNING: ERROR IN DEFINITION
-   A[P=1]   *** WARNING: SYNTAX ERROR
+      *WARNING: syntax error: A[P=1]
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
@@ -76862,8 +77580,8 @@ say `files,return=isize`
 ! Evaluate size without loading the variable first
 let datfiles = {spawn:"ls *.dat"}
 say `datfiles,return=isize`
- !-> MESSAGE/CONTINUE 36
-36
+ !-> MESSAGE/CONTINUE 37
+37
  
 ! expression syntax
 say `{spawn:"ls xml*.jnl"},return=isize`
@@ -76881,8 +77599,8 @@ list {spawn:"ls xml*.jnl"}
  
 LET filesets = xcat({spawn:"ls *.nc"}, {spawn:"ls *.jnl"})
 say `filesets, return=isize`
- !-> MESSAGE/CONTINUE 834
-834
+ !-> MESSAGE/CONTINUE 905
+905
  
 let files = {spawn:"ls *cdf*.jnl"}
 let name_len = strindex(files, ".sub")
@@ -76923,266 +77641,7627 @@ 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: bn_all_ef.jnl
-SET MODE VERIFY
-! bn_all_ef.jnl
-! - run all the benchmark tests for externally-linked external functions.
+*** Running test: bn694_bug_fixes.jnl
+! bn694_bug_fixes
+! test various fixes that went into version 6.94
+! 11/2014 ACM
+! 12/2014 *sh* added IF-THEN flow fixes, including review of past tickets
+! 1/2015 *sh* added test for undetected bad dataset name in regrid target
+ 
+GO bn_reset
+cancel mode verify
+GO err693_upcase_quoted_name
+! err693_upcase_quoted_name.jnl
+! ticket 2050. Names are saved in uppercase
+! form unless there are duplicates other than case.
+! Then searching for the name in quotes looked
+! only with a case-sensitive search.
+ 
+let abc = 12
+cancel mode upcase
+ 
+save/file=aa.nc/clobber abc
+can dat/all; can var/all
+ 
+use aa.nc
+! previously this failed to find the name.
+list 'abc'
+             VARIABLE : 12
+             FILENAME : aa.nc
+          12.00
  
  
 GO bn_reset
 cancel mode verify
-GO bn_ef_external_functions.jnl
-! Tests of external functions that are distributed as shared object files.
+GO err693_isready_hang
+! err693_isready_hang.jnl
+! ACM 12/10/2014
+! ticket 2219.  The last of these commands caused Ferret to hang.
  
-! Jon's benchmarks
-go bench_examples
-set mode ignore_error
-show func/ext add_9
-ADD_9(A,B,C,D,E,F,G,H,I)
-    (demonstration function) adds 9 arguments
-show func/ext ave*
-AVE_SCAT2GRID_T(TPTS,VPTS,TAXIS)
-    Compute average of a variable in each cell of output time axis
-    TPTS: T coordinates of scattered input time coordinates
-    VPTS: Variable at times in TPTS
-    TAXIS: Output time axis
-AVET(A)
-    (demonstration function) returns the time average
-    A: data to be averaged over the time axis
-show func pass_thru
-PASS_THRU(A)
-    (demonstration function) sets result equal to input
-    A: this arg is passed through
-show func sto*
-STORAGE(A)
-    sets result equal to input/10
-    A: input
+use gt4d011
+def ax/t/t0="`u,r=t0`"/unit="`u,r=tunit`" time = t[gt=u]
+ !-> def ax/t/t0="14-JAN-1980 14:00:00"/unit="hour" time = t[gt=u]
+let a = u
+IF `a,r=isready` THEN; let/title="`a,r=title`" a1 = a; ENDIF
+ !-> IF 1         THEN
+ !-> DEFINE VARIABLE/title="U" a1 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a2 = a; ENDIF
+ !-> IF 1         THEN
+ !-> DEFINE VARIABLE/title="U" a2 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a3 = a; ENDIF
+ !-> IF 1         THEN
+ !-> DEFINE VARIABLE/title="U" a3 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a4 = a; ENDIF
+ !-> IF 1         THEN
+ !-> DEFINE VARIABLE/title="U" a4 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a5 = a; ENDIF
+ !-> IF 1         THEN
+ !-> DEFINE VARIABLE/title="U" a5 = a
  
-go bench_add_9
-! Bench_add_9.jnl
-!  ACM  8/99
-!  benchmark script for testing external function add_9.
-! Note: bench_add_9_visual contains plots of similar computations
+GO bn_reset
+cancel mode verify
+GO err693_isready_dyn_grid_crash   ! 12/23/2014
+let/unit="m" b = x[gx=1:5:1]
+say "`b,r=unit`"     ! this causes dynamic grid of b to be created
+ !-> MESSAGE/CONTINUE "m"
+m
+let c = x[gx=1:5:2]
+let b2 = b+0*c[gx=b] ! dynamic grid of b exists, but not grid of c
+VTREE b2
+   B2 = B+0*C[GX=B]
+     B = X[GX=1:5:1]
+     C = X[GX=1:5:2]
+       regrid to B = X[GX=1:5:1]
  
-set mode ignore_errors
+GO bn_reset
+cancel mode verify
+GO err693_attr_in_gcfcn
+! err693_attr_in_gcfcn.jnl
+! ACM 12/10/2014
+! bug 2220 varname.attname as an argument to grid-changing functions.
+! All except the last of these caused various ungraceful stops.
+ 
+let/units="m" a = 1
+list is_element_of_str(a.units,{"m","a"})
+             VARIABLE : IS_ELEMENT_OF_STR(A.UNITS,{"m","a"})
+             X        : 1
+          1.000
  
+let/units="m" a = 1
+let b = a.units
+list is_element_of_str(b,{"m","a"})
+             VARIABLE : IS_ELEMENT_OF_STR(B,{"m","a"})
+             X        : 1
+          1.000
  
-can region
-use coads_climatology
-set region/x=151E:179E/y=0
  
-let a1 = sst[d=1,l=1]
-let a2 = sst[d=1,l=2]
-let a3 = sst[d=1,l=3]
+use levitus_climatology
  
-let a = add_9(a1,a2,a3,a1,a2,a3,a1,a2,a3)
+list is_element_of_str_n (temp.long_name, {"Temperature", "temp"})
+             VARIABLE : IS_ELEMENT_OF_STR_N (TEMP.LONG_NAME, {"Temperature", "temp"})
+             FILENAME : levitus_climatology.cdf
+             X        : 1
+          2.000
  
-list a
-             VARIABLE : ADD_9(A1,A2,A3,A1,A2,A3,A1,A2,A3)
-             SUBSET   : 15 points (LONGITUDE)
-             LATITUDE : 1S
-             TIME     : 16-JAN 06:00
-                1S    
-                45
- 151E   / 66:  263.6
- 153E   / 67:  264.5
- 155E   / 68:  264.2
- 157E   / 69:  261.3
- 159E   / 70:  260.9
- 161E   / 71:  262.4
- 163E   / 72:  264.0
- 165E   / 73:  261.1
- 167E   / 74:  260.9
- 169E   / 75:  261.0
- 171E   / 76:  259.3
- 173E   / 77:  257.9
- 175E   / 78:  257.0
- 177E   / 79:  259.1
- 179E   / 80:  254.8
-list  a - 3 * sst[d=1,l=1:3 at sum]
-             VARIABLE : A - 3 * SST[D=coads_climatology,L=1:3 at SUM]
-             SUBSET   : 15 points (LONGITUDE)
-             LATITUDE : 1S
-             TIME     : 16-JAN 06:00
-                 1S    
-                 45
- 151E   / 66:  0.0000
- 153E   / 67:  0.0000
- 155E   / 68:  0.0000
- 157E   / 69:  0.0000
- 159E   / 70:  0.0000
- 161E   / 71:  0.0000
- 163E   / 72:  0.0000
- 165E   / 73:  0.0000
- 167E   / 74:  0.0000
- 169E   / 75:  0.0000
- 171E   / 76:  0.0000
- 173E   / 77:  0.0000
- 175E   / 78:  0.0000
- 177E   / 79:  0.0000
- 179E   / 80:  0.0000
-set mode/last ignore_errors
-go bench_avet
-! Bench_avet.jnl
-!  ACM  8/99
-!  benchmark script for testing external function avet.
-! Note: bench_avet_visual.jnl contains plots of similar computations
+let a = temp.units
+list is_element_of_str (a, {"Kelvin", "Celsius", "DEG C"})
+             VARIABLE : IS_ELEMENT_OF_STR (A, {"Kelvin", "Celsius", "DEG C"})
+             FILENAME : levitus_climatology.cdf
+             X        : 1
+          1.000
  
-set mode ignore_errors
  
-can region
+ 
+GO bn_reset
+cancel mode verify
+GO err693_inconsistent_quote
+! inconsistent interpretation of surrounding double quotes
+! the original source of the problem is in PARSE_COMMAND
+! arg_start and arg_end are set to skip surrounding quotation marks.
+! But since this behavior permeates so many routines it is best to repair
+! the problem in ALL_1_ARG
+ 
+ 
+let foobar = 1
+LIST "foobar", "foobar" ! this is correct - list as strings
+ Column  1: str is "foobar"
+ Column  2: str is "foobar"
+              str     str
+I / *:    "foobar" "foobar"
+LIST "foobar"           ! error: lists the value instead
+             VARIABLE : "foobar"
+        "foobar"
+ 
+! IF-THEN flow tests
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_2214
+! bug 2214
+! If we put the "say hi" in parentheses, this seems to work.
+! But parentheses haven't previously been required, so there are a lot of
+! scripts that don't have them.
+ 
+* 12/14 note (sh) - Ferret handles this situation correctly because
+* PARSE_COMMAND acts on the semi-colons in the full command line *before*
+* it acts on the "IF".  Thus the thress semicolon-connected commands
+* follow the same logical path through Ferret as if they were separated
+* onto three lines
+ 
+IF 0 THEN; rep/i=1:1 say ERROR; ENDIF
+ 
+IF 1 THEN; rep/i=1:1 say CORRECT; ENDIF
+!-> REPEAT: I=1
+CORRECT
+ 
+(IF 0 THEN; rep/i=1:1 say ERROR; ENDIF)
+ 
+(IF 1 THEN; rep/i=1:1 say CORRECT; ENDIF)
+!-> REPEAT: I=1
+CORRECT
+ 
+!yes? quit
+!yes? quit
+!yes? ^Z
+!Suspended
+ 
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_2211
+! bug #2211
+ 
+ 
+IF 0 THEN
+ELSE
+   exit/script
+ 
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1860
+! from bug 1860
+! continue line found within grave accents
+ 
+CANCEL MODE VERIFY
+This works:
+CORRECT IF THIS DISPLAYS
+This works:
+CORRECT IF THIS DISPLAYS
+This works:
+CORRECT IF THIS DISPLAYS
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1446
+! testing ticket 1446
+ 
+! the presence of a tab preceding the "!" comment caused a parsing error
+ 
+! the behavior of this even in v69+ today is problematic in that
+! it echos an ENDIF statement that should be a plain old skip
+ 
+IF 0 THEN
+ENDIF
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1681
+! testing ticker 1681
+ 
+!The third block of the following script issues an error:
+!ERROR: invalid command: ENDIF can only be used in an IF clause
+!
+!Looks like a parsing bug -- it seems the ENDIF inside the REPEAT is being
+!applied to the outermost IF. Note that the error goes away if we change
+!the outer 0 to a 1.
+ 
+ 
+say "test1"
+test1
+if 0 then
+endif
+ 
+say "test2"
+test2
+if 0 then
+endif
+ 
+say "test3"
+test3
+if 0 then
+endif
+ 
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1706
+! testing ticket 1706
+!
+def sym a say hi\\; say hi
+ 
+IF 0 THEN
+ENDIF
+ 
+! some versions (not v550 but yes v63 but not v6301) fail to say "here"
+IF 1 THEN
+   say here
+here
+ENDIF
+ 
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1368   ! Jan 28, 2010, Ferret version 5.812
+! testing ticket 1368 - first found in Ferret v5.812 (Jan 28, 2010)
+ 
+! this is still a bug in V69+
+! the initial IF command is not being closed by the first ENDIF
+! it is skipping down to the elif command
+ 
+define symbol xend 180
+let key_flag = 0
+ 
+! test 1 - line 1 false condition should suppress both outputs
+IF `($xend) GT 360` THEN
+ !-> IF 0 THEN
+ENDIF
+ 
+ 
+! test 2 - line 1 false condition should cause else clause - "point G"
+let dxymin = 0.20
+if `dxymin lt 0.12` then
+ !-> if 0 then
+elif `dxymin lt 0.25` then
+ !-> elif 1 then
+  SAY "CORRECT.  this message should display"
+CORRECT.  this message should display
+endif
+ 
+! test 3 - this is from bug #918 -- looks like the same bug as #1368
+IF 0 THEN
+ENDIF
+ 
+GO bn_reset
+cancel mode verify
+GO err693_ribbon_start_missing
+! err693_ribbon_start_missing
+! 1/6/2015 ACM
+!
+! Bug 2226: If data starts with a missing-value and we're using (-inf) then
+! the ribbon plot started with the lowest color instead of plotting as for missing
+! Only the cases starting with missing data were incorrect previous to fixing this bug.
+ 
+DEFINE SYMBOL ribbon_command = PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3
+ 
+let/units=degrees_east xvar = {-177,-174,-186}
+let/units=degrees_north yvar = {-43, -45, -42}
+let vvar = {,271, 319}
+! This previously started with purple, not a gray missing-value point
+($ribbon_command)/title="(-inf) in levels" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="(-inf) in levels" xvar,yvar,vvar
+ 
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,,,271,319}
+($ribbon_command)/title="start with several missing" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="start with several missing" xvar,yvar,vvar
+ 
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,,271,319,1000}
+($ribbon_command)/title="end large positive value" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="end large positive value" xvar,yvar,vvar
+ 
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,271,319,1000,}
+($ribbon_command)/title="end with large positive and missing" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="end with large positive and missing" xvar,yvar,vvar
+ 
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {1.e7,,,271,319}
+($ribbon_command)/title="start with large positive" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="start with large positive" xvar,yvar,vvar
+ 
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,1.e7,,271,319}
+($ribbon_command)/title="start with missing then large positive" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="start with missing then large positive" xvar,yvar,vvar
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err691_pt_in_poly
+! err691_pt_in_poly
+! ticket 1961: modulo longitude for pt_in_poly
+! and sending subset of the xy field
+ 
 use coads_climatology
-set region/x=151E:179E/y=0
  
-let a = avet(sst)
-list a
-             VARIABLE : AVET(SST)
+let xpts = {64,81,81,82,88,88,79,79,76,73,68,64}
+let ypts = {31,30,29,29,27,24,20,19,20,25,27,31}
+ 
+let pts = pt_in_poly(sst[L=5,x=60:90,y=15:35], xpts, ypts)
+shade/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
+             VARIABLE : MINMAX(PTS)
              FILENAME : coads_climatology.cdf
-             SUBSET   : 15 points (LONGITUDE)
-             LATITUDE : 1S
-                1S    
-                45
- 151E   / 66:  29.28
- 153E   / 67:  29.39
- 155E   / 68:  29.35
- 157E   / 69:  29.03
- 159E   / 70:  28.99
- 161E   / 71:  29.15
- 163E   / 72:  29.33
- 165E   / 73:  29.01
- 167E   / 74:  28.99
- 169E   / 75:  29.00
- 171E   / 76:  28.81
- 173E   / 77:  28.66
- 175E   / 78:  28.56
- 177E   / 79:  28.79
- 179E   / 80:  28.31
-list a - sst[l=@ave]
-             VARIABLE : A - SST[L=@AVE]
+             SUBSET   : 2 points (X)
+ 1   / 1: -1.000
+ 2   / 2:  1.000
+ 
+! Put the xpts on different modulo branches
+! Previously  the list commands would have listed -1,-1
+ 
+let xpts0 = {64,81,81,82,88,88,79,79,76,73,68,64}
+let/title=lon/units=degrees_east xpts = xpts0 + 360
+ 
+shade/title="Plus 360"/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
+             VARIABLE : MINMAX(PTS)
              FILENAME : coads_climatology.cdf
-             SUBSET   : 15 points (LONGITUDE)
-             LATITUDE : 1S
-             TIME     : 01-JAN 00:45 to 01-APR 08:12
-                  1S      
-                  45
- 151E   / 66:  0.000E+00
- 153E   / 67: -3.553E-15
- 155E   / 68:  0.000E+00
- 157E   / 69:  0.000E+00
- 159E   / 70:  3.553E-15
- 161E   / 71:  7.105E-15
- 163E   / 72:  3.553E-15
- 165E   / 73:  0.000E+00
- 167E   / 74:  0.000E+00
- 169E   / 75:  3.553E-15
- 171E   / 76:  0.000E+00
- 173E   / 77:  3.553E-15
- 175E   / 78:  0.000E+00
- 177E   / 79:  3.553E-15
- 179E   / 80:  3.553E-15
+             SUBSET   : 2 points (X)
+ 1   / 1: -1.000
+ 2   / 2:  1.000
  
-can region
-let a = x[i=1:9,k=1:5] + t[l=1:5]
-let b = x[i=1:9,k=1:5]
-let c = avet(a)
-list b, c
-             X: 0.5 to 9.5
- Column  1: B is X[I=1:9,K=1:5]
- Column  2: C is AVET(A)
-             B     C
-1   / 1:  1.000   4.00
-2   / 2:  2.000   5.00
-3   / 3:  3.000   6.00
-4   / 4:  4.000   7.00
-5   / 5:  5.000   8.00
-6   / 6:  6.000   9.00
-7   / 7:  7.000  10.00
-8   / 8:  8.000  11.00
-9   / 9:  9.000  12.00
+let/title=lon/units=degrees_east xpts = xpts0 - 360
  
-set mode/last ignore_errors
-go bench_pass_thru
-! Bench_pass_thru.jnl
-!  ACM  8/99
-!  benchmark script for testing external function pass_thru.
-! Note: bench_pass_thru_visual.jnl contains plots of similar computations
+shade/title="Minus 360"/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
+             VARIABLE : MINMAX(PTS)
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 2 points (X)
+ 1   / 1: -1.000
+ 2   / 2:  1.000
  
-set mode ignore_errors
+GO bn_reset
+cancel mode verify
+GO err693_undetected_regrid_dset
+! err693_undetected_regrid_dset.jnl    - Jan 2015
  
-can region
-let a = pass_thru(x)
-list a[i=1:20]
-             VARIABLE : PASS_THRU(X)
-             SUBSET   : 20 points (X)
- 1    /  1:   1.00
- 2    /  2:   2.00
- 3    /  3:   3.00
- 4    /  4:   4.00
- 5    /  5:   5.00
- 6    /  6:   6.00
- 7    /  7:   7.00
- 8    /  8:   8.00
- 9    /  9:   9.00
- 10   / 10:  10.00
- 11   / 11:  11.00
- 12   / 12:  12.00
- 13   / 13:  13.00
- 14   / 14:  14.00
- 15   / 15:  15.00
- 16   / 16:  16.00
- 17   / 17:  17.00
- 18   / 18:  18.00
- 19   / 19:  19.00
- 20   / 20:  20.00
-set region/i=1:20
-list sin(a)
-             VARIABLE : SIN(A)
-             SUBSET   : 20 points (X)
- 1    /  1:  0.8415
- 2    /  2:  0.9093
- 3    /  3:  0.1411
- 4    /  4: -0.7568
- 5    /  5: -0.9589
- 6    /  6: -0.2794
- 7    /  7:  0.6570
- 8    /  8:  0.9894
- 9    /  9:  0.4121
- 10   / 10: -0.5440
- 11   / 11: -1.0000
- 12   / 12: -0.5366
- 13   / 13:  0.4202
- 14   / 14:  0.9906
- 15   / 15:  0.6503
- 16   / 16: -0.2879
- 17   / 17: -0.9614
- 18   / 18: -0.7510
- 19   / 19:  0.1499
- 20   / 20:  0.9129
+! in GET_CONTEXT_MODS no check is made whether dataset name/number is
+! valid following   "gdset = FIND_DSET_NUMBER( name(dstart:dend) )"
+ 
+use coads_climatology
+use levitus_climatology   ! default to d=2
+ 
+canc var/all
+let myvar = temp
+let a = myvar[g=temp[d=bad_d]]    ! THIS SHOULD BE DETECTED AS AN ERROR
+ 
+set mode ignore
+stat/l=1/x=180/y=0 a    ! this *SHOULD* trigger an error.  Yes.  Detect it.
+set mode/last ignore
+ 
+GO bn_reset
+cancel mode verify
+GO err693_line_over_axis
+! Ticket 2232: line plots overlaid the plot axes
+show mode meta
+      MODE            STATE        ARGUMENT
+      METAFILE      CANCELLED      metafile.plt
+! line plot with /VS draw on top of the axes
+let xval = {0.0, 0.2, 1.0, 0.8, 0}
+let yval = {0.0, 1.1, 1.1, 0.0, 0}
+plot/vs/line/thick=3/color=lightblue xval, yval
+ 
+! any line overlay may draw on the axes
+let xval = {0.0, 0.0, 0.8, 0.2, 0}
+let yval = {0.1, 1.2, 1.2, 0.1, 0.1}
+plot/ribbon/vs/line/thick=3/over/nolab/pal=green_light xval, yval, yval
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_save_packed
+! err693_save_packed.jnl
+! ticket 2240: bug writing multiple vars with one SAVE when scaled
+!
+! Previously saw a netcdf error because first variable was mis-scaled on writing.
+ 
+use err693_save_packed.nc
+save/clobber/file=a.nc QA_OF_SEAICE_CONC_CDR, GODDARD_MERGED_SEAICE_CONC
+ 
+GO bn_reset
+cancel mode verify
+GO err693_subspan_trans
+! err693_subspan_trans
+! bug 2241  3/9/2015
+ 
+use coads_climatology
+let a = sst[x=120:284,y=-2:2 at ave,t=@ave]
+save/clob/file=a.nc a
+can var a
+use a
+set reg/x=25:385
+let b = a[x=@min]
+ 
+set mode diag
+say `a[x=@min]`
+ getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing moduloing A on X axis:     1    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
+ 
+! This previously resulted in an error.
+say `b`
+ dealloc  dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ getgrid B        C:  7 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    B        C:  6 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ found   A        M:  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
+ 
+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
+let b = a[x=150:200 at min]
+say `b`
+ !-> MESSAGE/CONTINUE 26.96305592854818
+26.96305592854818
+ 
+! What if the region for @MIN extends beyond the saved portion?
+say `a[x=200:300 at min]`
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
+let b = a[x=200:300 at min]
+say `b`
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
+ 
+! What if the region for @MIN is outside the saved portion?
+say `a[x=300:385 at min]`
+ !-> MESSAGE/CONTINUE bad
+bad
+let b = a[x=300:385 at min]
+say `b`
+ !-> MESSAGE/CONTINUE bad
+bad
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_repeat_err
+!   err693_repeat_err.jnl
+! test fix for ticket 2244: Error handling in REPEAT
+ 
+! The second of these should result in an error - in debug mode
+! it instead was hitting an out-of-range subscript error.
+ 
+repeat/range=1:2/name=column repeat/range=1:2/name=row say `column`,`row`
+!-> REPEAT: COLUMN:1
+!-> REPEAT: ROW:1
+ !-> MESSAGE/CONTINUE 1,1
+1,1
+!-> REPEAT: ROW:2
+ !-> MESSAGE/CONTINUE 1,2
+1,2
+!-> REPEAT: COLUMN:2
+!-> REPEAT: ROW:1
+ !-> MESSAGE/CONTINUE 2,1
+2,1
+!-> REPEAT: ROW:2
+ !-> MESSAGE/CONTINUE 2,2
+2,2
+ 
+set mode ignore
+repeat/range=1:2/name=column repeat/range=1:2/name=row
+!-> REPEAT: COLUMN:1
+!-> REPEAT: COLUMN:2
+set mode/last ignore
+ 
+GO bn_reset
+cancel mode verify
+GO err693_edit_useratt
+! err693_edit_useratt.jnl
+! ticket 2249: set attribute properties for user-defined variable
+ 
+use err491_attval.cdf
+list/x=135.402W:135.321W/y=58.609 elev
+             VARIABLE : Surface elevation (meter)
+             DATA SET : K-Bay OAR3d model (200m)
+             FILENAME : err491_attval.cdf
+             SUBSET   : 7 points (LONGITUDE)
+             LATITUDE : 58.6N
+             T (day)  : 1.7837
+                 58.609N
+                   3
+ 135.402W / 45:   ....
+ 135.389W / 46:   ....
+ 135.375W / 47:   ....
+ 135.362W / 48:  2.952
+ 135.348W / 49:  2.953
+ 135.335W / 50:  2.949
+ 135.321W / 51:  2.953
+ 
+ 
+! Rename the file variable, define a variable using its name
+set var/name=elev_in elev
+let  elev = missing(elev_in, -1.e34)
+ 
+! Inherit attributes from the file variable.
+! cancel writing the scale attributes
+set att/like=elev_in elev
+can att/output elev.scale_factor
+can att/output elev.add_offset
+ 
+! set the bad-flag (can't do this before the SET ATT/LIKE
+set var/bad=-1.e34 elev
+ 
+! save
+save/clobber/file=a.nc elev
 can var/all
-can region
+use a.nc
+list/x=135.402W:135.321W/y=58.609 elev
+             VARIABLE : Surface elevation (meter)
+             FILENAME : a.nc
+             SUBSET   : 7 points (LONGITUDE)
+             LATITUDE : 58.6N
+             T (day)  : 1.7837
+                 58.609N
+                   3
+ 135.402W / 45:   ....
+ 135.389W / 46:   ....
+ 135.375W / 47:   ....
+ 135.362W / 48:  2.952
+ 135.348W / 49:  2.953
+ 135.335W / 50:  2.949
+ 135.321W / 51:  2.953
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_redef_rec_axis
+! err693_redef_rec_axis.jnl
+! ticket 2271. Redefining the record axis meant
+! that SHOW AXIS/FULL couldnt get the time axis info
+ 
+define axis/x=1:5:1 xax
+define axis/y=2:10:2 yax
+define axis/t=1:7:1 tredef
+let var = x[gx=xax] + y[gy=yax] + t[gt=tredef]
+save/clobber/file=a.nc var
+ 
+can var/all
+can axis xax
+can axis yax
+can axis tredef
+ 
+use a.nc
+define axis/t=1:7:1/units=days/t0=1-jan-2000 tredef
+ 
+! Previously the output had  time range: ???
+show data/full
+     currently SET data sets:
+    1> ./a.nc  (default)
+ 
+ name     title                             I         J         K         L         M         N
+ VAR      X[GX=XAX] + Y[GY=YAX] + T[GT=TR  1:5       1:5       ...       1:7       ...       ...
+               on grid GSI1 with -1.E+34 for missing data
+             X=0.5:5.5  Y=1:11  
+ 
+  time range: 02-JAN-2000 00:00 to 08-JAN-2000 00:00
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_frame_types
+! bn_frame_types.jnl
+! Ticket 2275
+! The default file type for FRAME was still HDF
+ 
+set mode ignore
  
 use coads_climatology
-let a = pass_thru(sst[l=@ave,y=@sbx:11])
-list/x=50 a
-             VARIABLE : PASS_THRU(SST[L=@AVE,Y=@SBX:11])
+shade/l=1 sst
+ 
+! This issued an error and quit
+frame/format=hdf/file=a.hdf
+ 
+! so did this
+frame/file=a.png
+ 
+! this is (always) ok
+frame/file=a.gif
+frame/format=gif file=a.plot
+ 
+set mode/last ignore
+ 
+GO bn_reset
+cancel mode verify
+GO err693_shape
+! err693_shape.jnl
+! bug 2273 shape of variable with various subexpressions
+ 
+use coads_climatology
+let a = sst[x=@ave]
+let a_clim = a[gt=MONTH_IRREG at mod]
+let a_anom = a - a_clim[gt=a at nrst]
+ 
+! Should all be YT
+say `a,r=shape`  `a_clim[gt=a at nrst],r=shape` `a_anom,r=shape`
+ !-> MESSAGE/CONTINUE YT  YT YT
+YT  YT YT
+ 
+! Also works for size returns
+ 
+! Should be 180, 1, 1
+say `sst,r=isize`  `a,r=isize` `a_anom,r=isize`
+ !-> MESSAGE/CONTINUE 180  1 1
+180  1 1
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_ef_axis_precision
+ ! NOAA/PMEL TMAP
+ ! FERRET v6.94
+ ! Linux 2.6.32-504.12.2.el6.x86_64 64-bit - 03/20/15
+ ! 11-May-15 16:51
+ 
+define axis/f faxis = {0.001, 0.123, 0.234, 0.498}
+define axis/e eaxis = {1001.1009, 1234.005, 2112.321, 2520.45}
+let efvar = _M[ge=eaxis] + _n[gf=faxis]
+set view upper; plot/n=3 efvar
+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
+ 1001.1 / 1:  4.000
+ 1234   / 2:  5.000
+ 2112.3 / 3:  6.000
+ 2520.4 / 4:  7.000
+list/m=2 efvar
+             VARIABLE : _M[GE=EAXIS] + _N[GF=FAXIS]
+             SUBSET   : 4 points (F)
+             E        : 1234
+ 0    / 1:  3.000
+ 0.12 / 2:  4.000
+ 0.23 / 3:  5.000
+ 0.5  / 4:  6.000
+q
+ 
+GO bn_reset
+cancel mode verify
+GO err693_string_results
+! err693_string_results.jnl
+! Ticket 2234, the LIST B returned the numeric pointer to the string.
+! *acm* 5/14/2015
+ 
+let b = IF a then "yes" else "no"
+let a = 1/0
+list b
+             VARIABLE : IF A THEN "yes" ELSE "no"
+        "no"
+ 
+! The LOAD C makes the data type of D correct
+let d = if c then "ok" else "not ok"
+let c = 1/0
+load C
+list d
+             VARIABLE : IF C THEN "ok" ELSE "not ok"
+        "not ok"
+ 
+GO bn_reset
+cancel mode verify
+GO err693_lev_nv_over
+! err693_lev_nv_over.jnl
+! The polygon command with /LEV=20V caused a crash; levels settings incorrect.
+ 
+! draw any underlay to set up for polymark script
+use coads_climatology
+shade/x=120:250/Y=25s:65n/L=1/pal=white/nokey sst
+ 
+LET xpts = 180 + 50*COS(2*3.14*I[I=1:50]/60)
+LET ypts = 15  + 20*SIN(2*3.14*I[I=1:50]/60)
+ 
+! Variable is a constant w/ negative value
+LET sst = -5 + 0*ypts
+ 
+! The poly/over command caused a Fortran runtime error in tm_fmt_sngl
+GO polymark polygon/over/lev=20v/key/title="SST"  xpts,ypts,sst,square, 0.5
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_fcn_of_attvar
+! err693_fcn_of_attvar.jnl
+! Ticket 2291 Function of attribute-expression
+! returned just the first result
+ 
+use coads_climatology
+list sst.dimnames
+             VARIABLE : SST.DIMNAMES
              FILENAME : coads_climatology.cdf
-             SUBSET   : 90 points (LATITUDE)
-             LONGITUDE: 49E
-             TIME     : 01-JAN 00:45 to 01-APR 08:12
-               49E   
-               15
- 89N   / 90:   ....
- 87N   / 89:   ....
- 85N   / 88:   ....
- 83N   / 87:   ....
- 81N   / 86:   ....
- 79N   / 85:   ....
- 77N   / 84:   ....
- 75N   / 83:   ....
- 73N   / 82:   ....
- 71N   / 81:   ....
- 69N   / 80:   ....
- 67N   / 79:   ....
+             SUBSET   : 3 points (X)
+ 1   / 1:"COADSX"
+ 2   / 2:"COADSY"
+ 3   / 3:"TIME1" 
+list dncase(sst.dimnames)
+             VARIABLE : DNCASE(SST.DIMNAMES)
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 3 points (X)
+ 1   / 1:"coadsx"
+ 2   / 2:"coadsy"
+ 3   / 3:"time1" 
+list strlen( sst.dimnames)
+             VARIABLE : STRLEN( SST.DIMNAMES)
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 3 points (X)
+ 1   / 1:  6.000
+ 2   / 2:  6.000
+ 3   / 3:  5.000
+list substring(sst.dimnames,2,3)
+             VARIABLE : SUBSTRING(SST.DIMNAMES,2,3)
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 3 points (X)
+ 1   / 1:"OAD"
+ 2   / 2:"OAD"
+ 3   / 3:"IME"
+list dncase(substring(sst.dimnames,2,3))
+             VARIABLE : DNCASE(SUBSTRING(SST.DIMNAMES,2,3))
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 3 points (X)
+ 1   / 1:"oad"
+ 2   / 2:"oad"
+ 3   / 3:"ime"
+list ysequence(dncase(sst.dimnames))
+             VARIABLE : YSEQUENCE(DNCASE(SST.DIMNAMES))
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 3 points (Y)
+ 1   / 1:"coadsx"
+ 2   / 2:"coadsy"
+ 3   / 3:"time1" 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_isize_and_gcfcn
+! err693_isize_and_gcfcn.jnl
+! ticket 2213
+! SET REGION interacting with ABSTRACT AXES
+! When the variable using XSEQUENCE was defined, suddenly the
+! region was being applied (inconsistently).
+ 
+can mode verify
+8
+    GRID XABSTRACT
+ name       axis              # pts   start                end
+ ABSTRACT  X             99999999 r   1                    1.E+08
+ normal    Y
+ normal    Z
+ normal    T
+ normal    E
+ normal    F
+8
+8 a
+8
+8 b
+8
+8 c
+8
+8 d
+8
+8 e
+8
+8 f
+8
+8 g
+8
+8 h
+8
+    GRID XABSTRACT
+ name       axis              # pts   start                end
+ ABSTRACT  X             99999999 r   1                    1.E+08
+ normal    Y
+ normal    Z
+ normal    T
+ normal    E
+ normal    F
+8
+8 a
+8
+8 b
+8
+8 c
+8
+8 d
+8
+8 e
+8
+8 f
+8
+8 g
+8
+8 h
+ 
+GO bn_reset
+cancel mode verify
+GO err693_ribbon_scale
+! err693_ribbon_scale.jnl
+! ticket 2295: the vertical scale is mis-computed
+! 5/29/2015
+ 
+let var = {-81,-81,-81}
+let color = {2,2,2}
+plot/ribbon/key var,color
+ 
+! should be -82 to -80
+sh sym yaxis*
+YAXIS_REVERSED = "0"
+YAXIS_MIN = "-82.0000000"
+YAXIS_MAX = "-80.0000000"
+ 
+GO bn_reset
+cancel mode verify
+GO err693_parse_curly
+! err693_parse_curly.jnl
+! the sub-routine defines a string variable containing commands for overlays in
+! different directions. the bug was that the parser doesn't handle quoted strings
+! inside { } if those strings include curly braces.
+! The argument chooses one of the strings with commands and plots the overlay
+ 
+use gt4d011
+ 
+shade/i=100/l=1/pal=grayscale temp
+go err693_parse_curly.sub yz
+! err693_parse_curly.sub
+! Define a variable with commands for overlays in different directions
+! the bug was that the parser doesn't handle quoted strings inside { } if those
+! strings include curly braces.
+! Choose one of the strings and plot the overlay
+ 
+! list of valid shapes
+ 
+let prd_shapes = {"xy", "xz", "yz"}
+ 
+! List of associated overlays
+! This is the part that's not working; due to bug #2296 we can't write {"...{}..."}.
+ 
+let prd_overlays = {\
+   "go land 6; go draw_line 180 -90 180 90 1; go draw_box 210 270 -5 5 6/dash=(.04,.06,.04,.06)",\
+   "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) {-1e3,1e3,,-1e3,1e3,,-1e3,1e3,,-136,-136,,-126,-126}, {85,85,,50,50,,20,20,,-1e4,1e4,,-1e4,1e4}",\
+   "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) 1e3*{-1,1,,-1,1,,-1,1},{85,85,,50,50,,20,20}"}
+ 
+! Then later when we're generating figures, we'll be
+! passing one of these shapes into a script like this:
+ 
+let p1s_shape = "$1%xy%"
+ !-> DEFINE VARIABLE p1s_shape = "yz"
+ 
+! For the specified shape, find the associated overlay command
+! (default is no overlay).
+let p1s_ov = ""
+IF `prd_shapes,r=isready` THEN
+ !-> IF 1         THEN
+      )
+ !-> rep/name=s/range=1:3 (let p1s_this_shape = prd_shapes[i=`s`];      IF `p1s_this_shape EQ p1s_shape` THEN;         let p1s_ov = prd_overlays[i=`s`];         exit/loop;      ENDIF;      )
+!-> REPEAT: S:1
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=1]
+ !-> IF 0 THEN
+!-> REPEAT: S:2
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=2]
+ !-> IF 0 THEN
+!-> REPEAT: S:3
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=3]
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE p1s_ov = prd_overlays[i=3]
+   can var p1s_this_shape
+ENDIF
+ 
+! generate a figure, with the appropriate overlay
+define symbol overcommands = `p1s_ov`
+ !-> define symbol overcommands = plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) 1e3*{-1,1,,-1,1,,-1,1},{85,85,,50,50,,20,20}
+($overcommands)
+ !-> plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) 1e3*{-1,1,,-1,1,,-1,1},{85,85,,50,50,,20,20}
+ 
+ shade/j=40/l=1/pal=grayscale temp
+go err693_parse_curly.sub xz
+! err693_parse_curly.sub
+! Define a variable with commands for overlays in different directions
+! the bug was that the parser doesn't handle quoted strings inside { } if those
+! strings include curly braces.
+! Choose one of the strings and plot the overlay
+ 
+! list of valid shapes
+ 
+let prd_shapes = {"xy", "xz", "yz"}
+ 
+! List of associated overlays
+! This is the part that's not working; due to bug #2296 we can't write {"...{}..."}.
+ 
+let prd_overlays = {\
+   "go land 6; go draw_line 180 -90 180 90 1; go draw_box 210 270 -5 5 6/dash=(.04,.06,.04,.06)",\
+   "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) {-1e3,1e3,,-1e3,1e3,,-1e3,1e3,,-136,-136,,-126,-126}, {85,85,,50,50,,20,20,,-1e4,1e4,,-1e4,1e4}",\
+   "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) 1e3*{-1,1,,-1,1,,-1,1},{85,85,,50,50,,20,20}"}
+ 
+! Then later when we're generating figures, we'll be
+! passing one of these shapes into a script like this:
+ 
+let p1s_shape = "$1%xy%"
+ !-> DEFINE VARIABLE p1s_shape = "xz"
+ 
+! For the specified shape, find the associated overlay command
+! (default is no overlay).
+let p1s_ov = ""
+IF `prd_shapes,r=isready` THEN
+ !-> IF 1         THEN
+      )
+ !-> rep/name=s/range=1:3 (let p1s_this_shape = prd_shapes[i=`s`];      IF `p1s_this_shape EQ p1s_shape` THEN;         let p1s_ov = prd_overlays[i=`s`];         exit/loop;      ENDIF;      )
+!-> REPEAT: S:1
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=1]
+ !-> IF 0 THEN
+!-> REPEAT: S:2
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=2]
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE p1s_ov = prd_overlays[i=2]
+   can var p1s_this_shape
+ENDIF
+ 
+! generate a figure, with the appropriate overlay
+define symbol overcommands = `p1s_ov`
+ !-> define symbol overcommands = plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) {-1e3,1e3,,-1e3,1e3,,-1e3,1e3,,-136,-136,,-126,-126}, {85,85,,50,50,,20,20,,-1e4,1e4,,-1e4,1e4}
+($overcommands)
+ !-> plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) {-1e3,1e3,,-1e3,1e3,,-1e3,1e3,,-136,-136,,-126,-126}, {85,85,,50,50,,20,20,,-1e4,1e4,,-1e4,1e4}
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_list_missing
+! err693_list_missing.jnl
+ 
+let a= {1,2,3}
+let b = 1./0
+ 
+! Ths listing of b is .... was squashed onto the ends of values of a.
+! 1   / 1:  1.000..
+! 2   / 2:  2.000..
+ 
+list a,b
+             X: 0.5 to 3.5
+ Column  1: A is {1,2,3}
+ Column  2: B is 1./0
+             A    B
+1   / 1:  1.000 ....
+2   / 2:  2.000 ....
+3   / 3:  3.000 ....
+ 
+GO bn_reset
+cancel mode verify
+GO err693_shf_subscr
+! err693_shf_subscr.jnl
+! ticket 2231  Subscripts used to compute @SHF-1 at the low end of the axis
+ 
+ 
+def ax/edge/z=0:40:10 zax_t
+def ax/edge/z=5:45:10 zax_w
+let zw = z[gz=zax_w]
+let zdiff = zw - missing(zw[z=@shf:-1],0)
+let zdiff_t = zdiff[gz=zax_t at asn]
+ 
+! a range of K shows the values correctly
+list zdiff_t
+             VARIABLE : ZDIFF[GZ=ZAX_T at ASN]
+             SUBSET   : 4 points (Z)
+ 5    / 1:  10.00
+ 15   / 2:  10.00
+ 25   / 3:  10.00
+ 35   / 4:  10.00
+ 
+! but just K=1 returned a K=0 error
+can mem
+list/k=1 zdiff_t
+             VARIABLE : ZDIFF[GZ=ZAX_T at ASN]
+             Z        : 5
+          10.00
+ 
+! Shift of +1
+can mem
+let zdiff = zw - missing(zw[z=@shf:1],0)
+list/k=4 zdiff_t
+             VARIABLE : ZDIFF[GZ=ZAX_T at ASN]
+             Z        : 35
+          40.00
+list/k=3:4 zdiff_t
+             VARIABLE : ZDIFF[GZ=ZAX_T at ASN]
+             SUBSET   : 2 points (Z)
+ 25   / 3: -10.00
+ 35   / 4:  40.00
+ 
+GO bn_reset
+cancel mode verify
+GO err693_shift_w_region
+! err693_shift_w_region
+! Ticket 2300.  In fact with bounds checking on, the list a[i=@shf] would have
+! caused a Fortran runtime error with out-of-bounds subscripts. The fix for
+! ticket 2301 fixes this as well.
+ 
+set region/x=10:20
+let a = {1,2,3}
+list a
+             VARIABLE : {1,2,3}
+             SUBSET   : 3 points (X)
+ 1   / 1:  1.000
+ 2   / 2:  2.000
+ 3   / 3:  3.000
+list a[i=@shf]
+             VARIABLE : {1,2,3}
+                        shifted by 1 pts on X
+             SUBSET   : 3 points (X)
+ 1   / 1:  2.000
+ 2   / 2:  3.000
+ 3   / 3:   ....
+cancel region
+list a[i=@shf]
+             VARIABLE : {1,2,3}
+                        shifted by 1 pts on X
+             SUBSET   : 3 points (X)
+ 1   / 1:  2.000
+ 2   / 2:  3.000
+ 3   / 3:   ....
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_scalar_grids
+! err693_scalar_grids.jnl
+! See ticket 1602
+ 
+!  multiplication by scalar variable "let one = 1" added
+!  abstract axes to the expression in all directions not
+!  already reperesented in the grid.
+ 
+ 
+! The T averaging is ignored; no T direction in the grid.
+use levitus_climatology
+let a = temp[x=140,y=0,z=0]
+list a[t=1-jan-0001:1-jan-0020 at ave]
+             VARIABLE : TEMP[X=140,Y=0,Z=0]
+             FILENAME : levitus_climatology.cdf
+             LONGITUDE: 139.5E
+             LATITUDE : 0.5S
+             DEPTH (m): 0
+          29.31
+ 
+! Multiply by a variable which is a constant (prev. this
+! resulted in an illegal use of transform error.)
+let one = 1
+let b = one*a
+list b[t=1-jan-0001:1-jan-0020 at ave]
+             VARIABLE : ONE*A
+             FILENAME : levitus_climatology.cdf
+             LONGITUDE: 139.5E
+             LATITUDE : 0.5S
+             DEPTH (m): 0
+          29.31
+ 
+! Test with a constant-array variable.
+let two = {2}
+let c = two*a
+list c[t=1-jan-0001:1-jan-0020 at ave]
+             VARIABLE : TWO*A
+             FILENAME : levitus_climatology.cdf
+             X        : 1
+             LATITUDE : 0.5S
+             DEPTH (m): 0
+          58.61
+ 
+ 
+! check interactions with GC functions (prev. this
+! resulted in an illegal use of transform error.)
+LET v = X[x=1:4:1] + Y[Y=.1:.4:.1]
+LET a = XSEQUENCE( v[I=2:3,J=2:3] ) + Z[Z=.01:.02:.01]
+LIST a[t=1-jan-0001:1-jan-0020 at ave]
+             VARIABLE : XSEQUENCE( V[I=2:3,J=2:3] ) + Z[Z=.01:.02:.01]
+             SUBSET   : 4 by 2 points (X-Z)
+               1      2      3      4    
+               1      2      3      4
+ 0.01  / 1:  2.210  3.210  2.310  3.310
+ 0.02  / 2:  2.220  3.220  2.320  3.320
+list b
+             VARIABLE : ONE*A
+             SUBSET   : 4 by 2 points (X-Z)
+               1      2      3      4    
+               1      2      3      4
+ 0.01  / 1:  2.210  3.210  2.310  3.310
+ 0.02  / 2:  2.220  3.220  2.320  3.320
+ 
+list b[x=@ave,k=@ave]
+             VARIABLE : ONE*A
+             X        : 0.5 to 4.5 (XZ ave)
+             Z        : 0.005 to 0.025 (XZ ave)
+          2.765
+ 
+ 
+*** Running test: bn_permute_ascii.jnl
+! bn_permute_ascii.jnl
+! test permutations when reading ascii data, in E and F directions
+! 11/18/2014
+! see ticket 2217: was not working for grids in E and F
+ 
+ 
+! First with T axis
+ 
+! unpermuted
+def axis/t=1:12:1 t12
+define axis/x=1:4:1 x4ax
+def grid/x=x4ax/t=t12 txgrid
+ FILE/SKIP=4/VAR="Tm"/COL=12/order=tx/GRID=txgrid fxdata.dat
+sh dat
+     currently SET data sets:
+    1> ./fxdata.dat  (default)
+ name     title                             I         J         K         L         M         N
+ TM       TM                               1:4       ...       ...       1:12      ...       ...
+ 
+list tm
+             VARIABLE : TM
+             FILENAME : fxdata.dat
+             SUBSET   : 4 by 12 points (X-T)
+               1      2      3      4    
+               1      2      3      4
+ 1    /  1:  -6.85  -6.75  -6.65  -6.55
+ 2    /  2: -11.71 -11.72 -11.73 -11.74
+ 3    /  3: -19.12 -19.22 -19.32 -19.42
+ 4    /  4: -24.81 -24.82 -24.83 -24.84
+ 5    /  5: -27.19 -27.29 -27.39 -27.49
+ 6    /  6: -28.51 -28.52 -28.53 -28.54
+ 7    /  7: -30.27 -30.37 -30.47 -30.57
+ 8    /  8: -31.34 -31.54 -31.64 -31.74
+ 9    /  9: -29.34 -29.44 -29.54 -29.64
+ 10   / 10: -23.29 -23.39 -23.49 -23.59
+ 11   / 11: -14.91 -14.92 -14.93 -14.94
+ 12   / 12:  -8.09  -8.19  -8.29  -8.39
+ 
+! permuted
+def axis/t=1:12:1 t12
+define axis/x=1:4:1 x4ax
+def grid/x=x4ax/t=t12 txgrid
+FILE/SKIP=4/VAR="Tm"/COL=12/order=tx/GRID=txgrid fxdata.dat
+sh dat
+     currently SET data sets:
+    1> ./fxdata.dat  (default)
+ name     title                             I         J         K         L         M         N
+ TM       TM                               1:4       ...       ...       1:12      ...       ...
+ 
+list tm
+             VARIABLE : TM
+             FILENAME : fxdata.dat
+             SUBSET   : 4 by 12 points (X-T)
+               1      2      3      4    
+               1      2      3      4
+ 1    /  1:  -6.85  -6.75  -6.65  -6.55
+ 2    /  2: -11.71 -11.72 -11.73 -11.74
+ 3    /  3: -19.12 -19.22 -19.32 -19.42
+ 4    /  4: -24.81 -24.82 -24.83 -24.84
+ 5    /  5: -27.19 -27.29 -27.39 -27.49
+ 6    /  6: -28.51 -28.52 -28.53 -28.54
+ 7    /  7: -30.27 -30.37 -30.47 -30.57
+ 8    /  8: -31.34 -31.54 -31.64 -31.74
+ 9    /  9: -29.34 -29.44 -29.54 -29.64
+ 10   / 10: -23.29 -23.39 -23.49 -23.59
+ 11   / 11: -14.91 -14.92 -14.93 -14.94
+ 12   / 12:  -8.09  -8.19  -8.29  -8.39
+ 
+! Then same with F axis
+can data/all
+ 
+def axis/f=1:12:1 f12
+define axis/x=1:4:1 x4ax
+def grid/x=x4ax/f=f12 fxgrid
+ FILE/SKIP=4/VAR="Tm"/COL=12/order=fx/GRID=fxgrid fxdata.dat
+sh dat
+     currently SET data sets:
+    1> ./fxdata.dat  (default)
+ name     title                             I         J         K         L         M         N
+ TM       TM                               1:4       ...       ...       ...       ...       1:12
+ 
+list tm
+             VARIABLE : TM
+             FILENAME : fxdata.dat
+             SUBSET   : 4 by 12 points (X-F)
+               1      2      3      4    
+               1      2      3      4
+ 1    /  1:  -6.85  -6.75  -6.65  -6.55
+ 2    /  2: -11.71 -11.72 -11.73 -11.74
+ 3    /  3: -19.12 -19.22 -19.32 -19.42
+ 4    /  4: -24.81 -24.82 -24.83 -24.84
+ 5    /  5: -27.19 -27.29 -27.39 -27.49
+ 6    /  6: -28.51 -28.52 -28.53 -28.54
+ 7    /  7: -30.27 -30.37 -30.47 -30.57
+ 8    /  8: -31.34 -31.54 -31.64 -31.74
+ 9    /  9: -29.34 -29.44 -29.54 -29.64
+ 10   / 10: -23.29 -23.39 -23.49 -23.59
+ 11   / 11: -14.91 -14.92 -14.93 -14.94
+ 12   / 12:  -8.09  -8.19  -8.29  -8.39
+ 
+! Read same data in y-z-t
+can data/all
+ 
+def axis/t=1:6:1 t6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/t=t6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/GRID=grid3d fxdata.dat
+sh dat
+     currently SET data sets:
+    1> ./fxdata.dat  (default)
+ name     title                             I         J         K         L         M         N
+ TM       TM                               ...       1:2       1:4       1:6       ...       ...
+ 
+list tm
+             VARIABLE : TM
+             FILENAME : fxdata.dat
+             SUBSET   : 2 by 4 by 6 points (Y-Z-T)
+             1      2    
+             1      2
+ ---- L:1 T:   1
+ 1   / 1:  -6.85 -11.71
+ 2   / 2: -19.12 -24.81
+ 3   / 3: -27.19 -28.51
+ 4   / 4: -30.27 -31.34
+ ---- L:2 T:   2
+ 1   / 1: -29.34 -23.29
+ 2   / 2: -14.91  -8.09
+ 3   / 3:  -6.75 -11.72
+ 4   / 4: -19.22 -24.82
+ ---- L:3 T:   3
+ 1   / 1: -27.29 -28.52
+ 2   / 2: -30.37 -31.54
+ 3   / 3: -29.44 -23.39
+ 4   / 4: -14.92  -8.19
+ ---- L:4 T:   4
+ 1   / 1:  -6.65 -11.73
+ 2   / 2: -19.32 -24.83
+ 3   / 3: -27.39 -28.53
+ 4   / 4: -30.47 -31.64
+ ---- L:5 T:   5
+ 1   / 1: -29.54 -23.49
+ 2   / 2: -14.93  -8.29
+ 3   / 3:  -6.55 -11.74
+ 4   / 4: -19.42 -24.84
+ ---- L:6 T:   6
+ 1   / 1: -27.49 -28.54
+ 2   / 2: -30.57 -31.74
+ 3   / 3: -29.64 -23.59
+ 4   / 4: -14.94  -8.39
+ 
+! And permuted
+ 
+can data/all
+ 
+def axis/t=1:6:1 t6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/t=t6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/order=tyz/GRID=grid3d fxdata.dat
+sh dat
+     currently SET data sets:
+    1> ./fxdata.dat  (default)
+ name     title                             I         J         K         L         M         N
+ TM       TM                               ...       1:2       1:4       1:6       ...       ...
+ 
+list tm
+             VARIABLE : TM
+             FILENAME : fxdata.dat
+             SUBSET   : 2 by 4 by 6 points (Y-Z-T)
+             1      2    
+             1      2
+ ---- L:1 T:   1
+ 1   / 1:  -6.85 -30.27
+ 2   / 2:  -6.75 -30.37
+ 3   / 3:  -6.65 -30.47
+ 4   / 4:  -6.55 -30.57
+ ---- L:2 T:   2
+ 1   / 1: -11.71 -31.34
+ 2   / 2: -11.72 -31.54
+ 3   / 3: -11.73 -31.64
+ 4   / 4: -11.74 -31.74
+ ---- L:3 T:   3
+ 1   / 1: -19.12 -29.34
+ 2   / 2: -19.22 -29.44
+ 3   / 3: -19.32 -29.54
+ 4   / 4: -19.42 -29.64
+ ---- L:4 T:   4
+ 1   / 1: -24.81 -23.29
+ 2   / 2: -24.82 -23.39
+ 3   / 3: -24.83 -23.49
+ 4   / 4: -24.84 -23.59
+ ---- L:5 T:   5
+ 1   / 1: -27.19 -14.91
+ 2   / 2: -27.29 -14.92
+ 3   / 3: -27.39 -14.93
+ 4   / 4: -27.49 -14.94
+ ---- L:6 T:   6
+ 1   / 1: -28.51  -8.09
+ 2   / 2: -28.52  -8.19
+ 3   / 3: -28.53  -8.29
+ 4   / 4: -28.54  -8.39
+ 
+! Now with Y-Z-E
+ 
+can data/all
+ 
+def axis/e=1:6:1 e6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/e=e6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/GRID=grid3d fxdata.dat
+sh dat
+     currently SET data sets:
+    1> ./fxdata.dat  (default)
+ name     title                             I         J         K         L         M         N
+ TM       TM                               ...       1:2       1:4       ...       1:6       ...
+ 
+list tm
+             VARIABLE : TM
+             FILENAME : fxdata.dat
+             SUBSET   : 2 by 4 by 6 points (Y-Z-E)
+             1      2    
+             1      2
+ ---- M:1 E:   1
+ 1   / 1:  -6.85 -11.71
+ 2   / 2: -19.12 -24.81
+ 3   / 3: -27.19 -28.51
+ 4   / 4: -30.27 -31.34
+ ---- M:2 E:   2
+ 1   / 1: -29.34 -23.29
+ 2   / 2: -14.91  -8.09
+ 3   / 3:  -6.75 -11.72
+ 4   / 4: -19.22 -24.82
+ ---- M:3 E:   3
+ 1   / 1: -27.29 -28.52
+ 2   / 2: -30.37 -31.54
+ 3   / 3: -29.44 -23.39
+ 4   / 4: -14.92  -8.19
+ ---- M:4 E:   4
+ 1   / 1:  -6.65 -11.73
+ 2   / 2: -19.32 -24.83
+ 3   / 3: -27.39 -28.53
+ 4   / 4: -30.47 -31.64
+ ---- M:5 E:   5
+ 1   / 1: -29.54 -23.49
+ 2   / 2: -14.93  -8.29
+ 3   / 3:  -6.55 -11.74
+ 4   / 4: -19.42 -24.84
+ ---- M:6 E:   6
+ 1   / 1: -27.49 -28.54
+ 2   / 2: -30.57 -31.74
+ 3   / 3: -29.64 -23.59
+ 4   / 4: -14.94  -8.39
+ 
+can data/all
+ 
+def axis/e=1:6:1 e6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/e=e6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/order=eyz/GRID=grid3d fxdata.dat
+sh dat
+     currently SET data sets:
+    1> ./fxdata.dat  (default)
+ name     title                             I         J         K         L         M         N
+ TM       TM                               ...       1:2       1:4       ...       1:6       ...
+ 
+list tm
+             VARIABLE : TM
+             FILENAME : fxdata.dat
+             SUBSET   : 2 by 4 by 6 points (Y-Z-E)
+             1      2    
+             1      2
+ ---- M:1 E:   1
+ 1   / 1:  -6.85 -30.27
+ 2   / 2:  -6.75 -30.37
+ 3   / 3:  -6.65 -30.47
+ 4   / 4:  -6.55 -30.57
+ ---- M:2 E:   2
+ 1   / 1: -11.71 -31.34
+ 2   / 2: -11.72 -31.54
+ 3   / 3: -11.73 -31.64
+ 4   / 4: -11.74 -31.74
+ ---- M:3 E:   3
+ 1   / 1: -19.12 -29.34
+ 2   / 2: -19.22 -29.44
+ 3   / 3: -19.32 -29.54
+ 4   / 4: -19.42 -29.64
+ ---- M:4 E:   4
+ 1   / 1: -24.81 -23.29
+ 2   / 2: -24.82 -23.39
+ 3   / 3: -24.83 -23.49
+ 4   / 4: -24.84 -23.59
+ ---- M:5 E:   5
+ 1   / 1: -27.19 -14.91
+ 2   / 2: -27.29 -14.92
+ 3   / 3: -27.39 -14.93
+ 4   / 4: -27.49 -14.94
+ ---- M:6 E:   6
+ 1   / 1: -28.51  -8.09
+ 2   / 2: -28.52  -8.19
+ 3   / 3: -28.53  -8.29
+ 4   / 4: -28.54  -8.39
+ 
+*** Running test: 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.
+ 
+show function lon_lat_time_string
+LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
+    Generate strings from longitude,latitude,time
+    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 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}
+ 
+! latitudes are labeled N or S
+let lat = {3.12, 4.9, -15.03}
+ 
+! Time steps are interpreted in terms of a time axis
+let time = {1,2,3}
+define axis/t=1-jan-2001:31-jan-2001:1/units=days/t0=1-jan-2001 taxis
+let tt = t[gt=taxis]
+ 
+list lon_lat_time_string(lon, lat, time, tt, "my_string")
+             VARIABLE : LON_LAT_TIME_STRING(LON, LAT, TIME, TT, "my_string")
+             SUBSET   : 3 points (X)
+ 1   / 1:"my_string_187.6E_3.12N_02-JAN-2001" 
+ 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
+! 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.
+!
+! Allows for a dimension and a 2-D variable to have the same name.
+!  see ticket 2227
+! 1/21/2015 ACM
+ 
+use twodtime.nc
+sh dat
+     currently SET data sets:
+    1> ./twodtime.nc  (default)
+ name     title                             I         J         K         L         M         N
+ TIME     GRIB forecast or observation ti  ...       ...       ...       1:8       ...       1:3
+ 
+ 
+! previously this gave a name-in-use error
+save/file=a.nc/clobber time
+ 
+!  The file has 2D TIME variable, and TIME as a dimension.
+sp ncdump a.nc >> all_ncdump.out
+ 
+! Now, keep case and axis name as on input
+CANCEL MODE upcase
+ 
+save/clobber/keep/file=a.nc time
+sp ncdump a.nc >> all_ncdump.out
+ 
+SET MODE/LAST upcase_output
+*** Running test: bn_time2d.jnl
+! bn_time2d.jnl
+! 1/30/2015 ACM
+ 
+! initial changes to handle 2d time variable: forecast and time
+! plot both axes as formatted time axes.
+ 
+use twodtime.nc
+sh dat
+     currently SET data sets:
+    1> ./twodtime.nc  (default)
+ name     title                             I         J         K         L         M         N
+ TIME     GRIB forecast or observation ti  ...       ...       ...       1:8       ...       1:3
+ 
+sh att time
+     attributes for dataset: ./twodtime.nc
+ 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 
+ 
+!  The file has the t axis as just a dimension. Define another
+!  axis with time units
+ 
+def axis/t=1:8:1/units=month/t0=1-nov-2014 taxis
+let time2d = time[gt=taxis at asn]
+set att/like=time time2d
+ 
+shade time2d
+shade/trans time2d
+*** Running test: 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.
+!
+! /KEY=title tells Ferret to label the legend with the variable
+! title.
+! *acm* 2/4/2015 Ticket 2231
+ 
+use coads_climatology
+let/title=January sst1 = sst[l=1]
+let/title=February sst2 = sst[l=2]
+let/title=March sst3 = sst[l=3]
+ 
+! Draw a plot and show the labels on the legend.
+plot/x=300/y=20:65 sst1,sst2,sst3
+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
+! bn_DQ.jnl  *sh* 2/2015
+! test the use of _DQ_ and _SQ_ in lieu of " and '
+ 
+let foobar = 1
+let foobar_ = 1
+ 
+LIST foobar, foobar_
+ Column  1: FOOBAR is 1
+ Column  2: FOOBAR_ is 1
+         FOOBAR  FOOBAR_
+I / *:     1.000   1.000
+ 
+LIST    "foobar"    ! bug fix: pre-V694 used to list the value of foobar
+             VARIABLE : "foobar"
+        "foobar"
+let a = "foobar"
+list a
+             VARIABLE : "foobar"
+        "foobar"
+ 
+list    _DQ_foobar_DQ_
+             VARIABLE : _DQ_foobar_DQ_
+        "foobar"
+let a = _DQ_foobar_DQ_
+list a
+             VARIABLE : _DQ_foobar_DQ_
+        "foobar"
+ 
+! ======
+list    "_DQ_foobar_DQ_"
+             VARIABLE : "_DQ_foobar_DQ_"
+        "_DQ_foobar_DQ_"
+let a = "_DQ_foobar_DQ_"
+list a
+             VARIABLE : "_DQ_foobar_DQ_"
+        "_DQ_foobar_DQ_"
+ 
+list    _DQ_"foobar"_DQ_
+             VARIABLE : _DQ_"foobar"_DQ_
+        ""foobar""
+let a = _DQ_"foobar"_DQ_
+list a
+             VARIABLE : _DQ_"foobar"_DQ_
+        ""foobar""
+ 
+! ======
+list    'FOOBAR'
+             VARIABLE : 1
+          1.000
+let a = 'FOOBAR'
+list a
+             VARIABLE : 'FOOBAR'
+          1.000
+ 
+list    _SQ_FOOBAR_SQ_
+             VARIABLE : 1
+          1.000
+let a = _SQ_FOOBAR_SQ_
+list a
+             VARIABLE : _SQ_FOOBAR_SQ_
+          1.000
+ 
+! ======
+list       "'foobar'"
+             VARIABLE : "'foobar'"
+        "'foobar'"
+let a =    "'foobar'"
+list a
+             VARIABLE : "'foobar'"
+        "'foobar'"
+ 
+list    _DQ_'foobar'_DQ_
+             VARIABLE : _DQ_'foobar'_DQ_
+        "'foobar'"
+let a = _DQ_'foobar'_DQ_
+list a
+             VARIABLE : _DQ_'foobar'_DQ_
+        "'foobar'"
+ 
+! ======
+list       "_SQ_foobar_SQ_"
+             VARIABLE : "_SQ_foobar_SQ_"
+        "_SQ_foobar_SQ_"
+let a =    "_SQ_foobar_SQ_"
+list a
+             VARIABLE : "_SQ_foobar_SQ_"
+        "_SQ_foobar_SQ_"
+ 
+list    _DQ__SQ_foobar_SQ__DQ_
+             VARIABLE : _DQ__SQ_foobar_SQ__DQ_
+        "_SQ_foobar_SQ_"
+let a = _DQ__SQ_foobar_SQ__DQ_
+list a
+             VARIABLE : _DQ__SQ_foobar_SQ__DQ_
+        "_SQ_foobar_SQ_"
+ 
+! ======
+list    'FOOBAR'    +    'FOOBAR'
+             VARIABLE : 'FOOBAR'    +    'FOOBAR'
+          2.000
+let a = 'FOOBAR'    +    'FOOBAR'
+list a
+             VARIABLE : 'FOOBAR'    +    'FOOBAR'
+          2.000
+ 
+list    _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_  ! should behave like the preceding
+             VARIABLE : _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_
+          2.000
+let a = _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_
+list a
+             VARIABLE : _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_
+          2.000
+ 
+! ====== demonstrate hiding all sorts of characters
+let a = _DQ_'"+-/;_SQ_foobar"'_DQ_
+list a
+             VARIABLE : _DQ_'"+-/;_SQ_foobar"'_DQ_
+        "'"+-/;_SQ_foobar"'"
+ 
+! ======
+say     "hello"
+hello
+say  _DQ_hello_DQ_
+hello
+ 
+! ======
+list    {"foobar","foobar"}
+             VARIABLE : {"foobar","foobar"}
+             SUBSET   : 2 points (X)
+ 1   / 1:"foobar"
+ 2   / 2:"foobar"
+let a = {"foobar","foobar"}
+list a
+             VARIABLE : {"foobar","foobar"}
+             SUBSET   : 2 points (X)
+ 1   / 1:"foobar"
+ 2   / 2:"foobar"
+ 
+list    {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+             VARIABLE : {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+             SUBSET   : 2 points (X)
+ 1   / 1:"foobar"
+ 2   / 2:"foobar"
+let a = {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+list a
+             VARIABLE : {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+             SUBSET   : 2 points (X)
+ 1   / 1:"foobar"
+ 2   / 2:"foobar"
+ 
+list    {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_} ! DQ used to protect '"'
+             VARIABLE : {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_}
+             SUBSET   : 2 points (X)
+ 1   / 1:""foobar""
+ 2   / 2:""foobar""
+let a = {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_}
+list a
+             VARIABLE : {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_}
+             SUBSET   : 2 points (X)
+ 1   / 1:""foobar""
+ 2   / 2:""foobar""
+ 
+! ======
+list    {SPAWN:"ls weird_name1.cdf","foobar"}
+             VARIABLE : {SPAWN:"ls weird_name1.cdf","foobar"}
+             SUBSET   : 2 points (X)
+ 1   / 1:"weird_name1.cdf"
+ 2   / 2:"foobar"         
+let a = {SPAWN:"ls weird_name1.cdf","foobar"}
+list a
+             VARIABLE : {SPAWN:"ls weird_name1.cdf","foobar"}
+             SUBSET   : 2 points (X)
+ 1   / 1:"weird_name1.cdf"
+ 2   / 2:"foobar"         
+ 
+list    {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+             VARIABLE : {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+             SUBSET   : 2 points (X)
+ 1   / 1:"weird_name1.cdf"
+ 2   / 2:"foobar"         
+let a = {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+list a
+             VARIABLE : {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+             SUBSET   : 2 points (X)
+ 1   / 1:"weird_name1.cdf"
+ 2   / 2:"foobar"         
+ 
+list    {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_} ! DQ protects '"'
+             VARIABLE : {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+             SUBSET   : 2 points (X)
+ 1   / 1:"weird_name1.cdf"
+ 2   / 2:"foobar"         
+let a = {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+list a
+             VARIABLE : {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+             SUBSET   : 2 points (X)
+ 1   / 1:"weird_name1.cdf"
+ 2   / 2:"foobar"         
+ 
+! ======
+! in repl_exprns:
+say `"=" EQ "="`
+ !-> MESSAGE/CONTINUE 1
+1
+say `_DQ_=_DQ_ EQ _DQ_=_DQ_`
+ !-> MESSAGE/CONTINUE 1
+1
+say `_DQ_"="_DQ_ EQ _DQ_"="_DQ_`            ! DQ used to protect '"'
+ !-> MESSAGE/CONTINUE 1
+1
+ 
+! in xeq_if:
+IF 1 THEN SAY "I is too big" ENDIF
+I is too big
+IF 1 THEN SAY _DQ_I is too big_DQ_ ENDIF
+I is too big
+IF 1 THEN SAY _DQ_"I is too big"_DQ_ ENDIF  ! DQ used to protect '"'
+"I is too big"
+ 
+! ======
+DEFINE SYMBOL a    "foobar"
+say ($a)
+ !-> MESSAGE/CONTINUE foobar
+foobar
+DEFINE SYMBOL a _DQ_foobar_DQ_
+say ($a)
+ !-> MESSAGE/CONTINUE foobar
+foobar
+ 
+! ======
+DEFINE SYMBOL a    "(`foobar,return=xaxis`)"
+ !-> DEFINE SYMBOL a    "(ABSTRACT)"
+say ($a)
+ !-> MESSAGE/CONTINUE (ABSTRACT)
+(ABSTRACT)
+DEFINE SYMBOL a _DQ_(`foobar,return=xaxis`)_DQ_
+ !-> DEFINE SYMBOL a _DQ_(ABSTRACT)_DQ_
+say ($a)
+ !-> MESSAGE/CONTINUE (ABSTRACT)
+(ABSTRACT)
+ 
+! ======
+GO bn_DQ.sub _DQ_+-/_SQ_\!foo"bar;_SQ_"_DQ_    "_DQ_+-/_SQ_\!foobar;_SQ_"
+! bn_DQ.sub   arg_with_DQ    arg_with_quotes
+ 
+SAY _DQ_ "-quotations   ok as in $1%any_arg_with_quotes%_DQ_
+ !-> MESSAGE/CONTINUE _DQ_ "-quotations   ok as in +-/_SQ_!foo"bar;_SQ_"_DQ_
+ "-quotations   ok as in +-/_SQ_!foo"bar;_SQ_"
+SAY    "_DQ_ delimiters ok as in $2%any_arg_with_DQ%"
+ !-> MESSAGE/CONTINUE    "_DQ_ delimiters ok as in _DQ_+-/_SQ_!foobar;_SQ_"
+_DQ_ delimiters ok as in _DQ_+-/_SQ_!foobar;_SQ_
+ 
+ 
+! ======  string arguments to functions
+list STRCAT(   "HELL"   ,   "O"   )
+             VARIABLE : STRCAT(   "HELL"   ,   "O"   )
+        "HELLO"
+list STRCAT(_DQ_HELL_DQ_,_DQ_O_DQ_)
+             VARIABLE : STRCAT(_DQ_HELL_DQ_,_DQ_O_DQ_)
+        "HELLO"
+ 
+! ======
+let/title=   "title of A"    a = 1
+list a
+             VARIABLE : title of A
+          1.000
+let/title=_DQ_title of A_DQ_ a = 1
+list a
+             VARIABLE : title of A
+          1.000
+let/title=_DQ_"title of A"_DQ_ a = 1        ! DQ used to protect '"'
+list a
+             VARIABLE : "title of A"
+          1.000
+ 
+! ======
+use weird_name1.cdf
+list    'v2-and-minus'[i=4:6]
+             VARIABLE : SIN(2+I/10)
+             FILENAME : weird_name1.cdf
+             SUBSET   : 3 points (X)
+ 4   / 4:  0.6755
+ 5   / 5:  0.5985
+ 6   / 6:  0.5155
+list _SQ_v2-and-minus_SQ_[i=4:6]
+             VARIABLE : SIN(2+I/10)
+             FILENAME : weird_name1.cdf
+             SUBSET   : 3 points (X)
+ 4   / 4:  0.6755
+ 5   / 5:  0.5985
+ 6   / 6:  0.5155
+list    'v2-and-minus'[i=4:6]
+             VARIABLE : SIN(2+I/10)
+             FILENAME : weird_name1.cdf
+             SUBSET   : 3 points (X)
+ 4   / 4:  0.6755
+ 5   / 5:  0.5985
+ 6   / 6:  0.5155
+list _SQ_v2-and-minus_SQ_[i=4:6]
+             VARIABLE : SIN(2+I/10)
+             FILENAME : weird_name1.cdf
+             SUBSET   : 3 points (X)
+ 4   / 4:  0.6755
+ 5   / 5:  0.5985
+ 6   / 6:  0.5155
+list    'v2-and-minus'[i=4:6]    / 'X'[i=4:6]
+             VARIABLE : 'v2-and-minus'[I=4:6]    / 'X'[I=4:6]
+             FILENAME : weird_name1.cdf
+             SUBSET   : 3 points (X)
+ 4   / 4: -0.8741
+ 5   / 5: -0.8482
+ 6   / 6: -0.8166
+list _SQ_v2-and-minus_SQ_[i=4:6] / _SQ_X_SQ_[i=4:6]
+             VARIABLE : _SQ_v2-and-minus_SQ_[I=4:6] / _SQ_X_SQ_[I=4:6]
+             FILENAME : weird_name1.cdf
+             SUBSET   : 3 points (X)
+ 4   / 4: -0.8741
+ 5   / 5: -0.8482
+ 6   / 6: -0.8166
+ 
+! ======
+SET REGION/T=   "1-jan-2001":"15-jan-2001"
+SHOW REGION
+default region:
+        X/I is unspecified
+        Y/J is unspecified
+        Z/K is unspecified
+        T=-6.3146E+10:-6.3147E+10
+        E/M is unspecified
+        F/N is unspecified
+SET REGION/T=_DQ_1-jan-2001_DQ_:_DQ_15-jan-2001_DQ_
+SHOW REGION
+default region:
+        X/I is unspecified
+        Y/J is unspecified
+        Z/K is unspecified
+        T=-6.3146E+10:-6.3147E+10
+        E/M is unspecified
+        F/N is unspecified
+! ==> THE clean_draconian FILTER REMOVES THE FOLLOWING DATE-TIME LINES FROM LOG
+SET REGION/T=   "1-jan-2001:12:00":"15-jan-2001 12:00"
+SHOW REGION
+default region:
+        X/I is unspecified
+        Y/J is unspecified
+        Z/K is unspecified
+        T=-6.3146E+10:-6.3147E+10
+        E/M is unspecified
+        F/N is unspecified
+SET REGION/T=_DQ_1-jan-2001:12:00_DQ_:_DQ_15-jan-2001 12:00_DQ_
+SHOW REGION
+default region:
+        X/I is unspecified
+        Y/J is unspecified
+        Z/K is unspecified
+        T=-6.3146E+10:-6.3147E+10
+        E/M is unspecified
+        F/N is unspecified
+ 
+! ======
+DEFINE ATTRIBUTE foobar.some_text =    "some text about foobar"
+SHOW ATTRIBUTE/ALL foobar
+     attributes for user-defined variables
+ foobar.long_name = 1 
+ foobar.missing_value = -1.E+34
+ foobar.some_text = some text about foobar 
+DEFINE ATTRIBUTE foobar.some_text = _DQ_some text about foobar_DQ_
+SHOW ATTRIBUTE/ALL foobar
+     attributes for user-defined variables
+ foobar.long_name = 1 
+ foobar.missing_value = -1.E+34
+ foobar.some_text = some text about foobar 
+DEFINE ATTR foobar.some_text = _DQ_"quoted attribute"_DQ_ ! DQ protects '"'
+SHOW ATTRIBUTE/ALL foobar
+     attributes for user-defined variables
+ foobar.long_name = 1 
+ foobar.missing_value = -1.E+34
+ foobar.some_text = "quoted attribute" 
+ 
+! ======
+SPAWN    "ls weird_name1.*"
+weird_name1.cdf
+SPAWN _DQ_ls weird_name1.*_DQ_
+weird_name1.cdf
+ 
+! ======
+LET a = {"first.nc", SPAWN:   "ls weird_name1.*"   ,"last.nc"}
+LIST a
+             VARIABLE : {"first.nc", SPAWN:   "ls weird_name1.*"   ,"last.nc"}
+             SUBSET   : 3 points (X)
+ 1   / 1:"first.nc"       
+ 2   / 2:"weird_name1.cdf"
+ 3   / 3:"last.nc"        
+LET a = {"first.nc", SPAWN:_DQ_ls weird_name1.*_DQ_,"last.nc"}
+LIST a
+             VARIABLE : {"first.nc", SPAWN:_DQ_ls weird_name1.*_DQ_,"last.nc"}
+             SUBSET   : 3 points (X)
+ 1   / 1:"first.nc"       
+ 2   / 2:"weird_name1.cdf"
+ 3   / 3:"last.nc"        
+ 
+! =========================
+! !!!!!!  TEMPORARY LINE
+! !!!!!!  see bug report err693_xeq_show.jnl
+show data   ! to side step dset=-1 left behind by SHOW ATTRIBUTE previously
+     currently SET data sets:
+    1> ./weird_name1.cdf  (default)
+ name     title                             I         J         K         L         M         N
+ v1       lower case v1                    1:20      ...       ...       ...       ...       ...
+ v2-and-minus
+          SIN(2+I/10)                      1:20      ...       ...       ...       ...       ...
+ V1       Upper case V1                    1:20      ...       ...       ...       ...       ...
+ I        SIN(4+I/10)                      1:20      ...       ...       ...       ...       ...
+ X        SIN(5+I/10)                      1:20      ...       ...       ...       ...       ...
+ 
+! !!!!!!
+! =========================
+                                                                                ! ======
+define grid/x=_DQ_v1_DQ_ gg
+show grid gg
+    GRID GG
+ name       axis              # pts   start                end
+ XAX1_20   X                   20 r   1                    20
+ normal    Y
+ normal    Z
+ normal    T
+ normal    E
+ normal    F
+ 
+! ======
+LET/TITLE= _DQ_'A title w/ "sq"'. Ship_Ka'imimoana_DQ_ A = 1 ! ' char for emacs
+LIST A
+             VARIABLE : 'A title w/ "sq"'. Ship_Ka'imimoana
+          1.000
+ 
+! ======
+contour/LEVELS=    "(-10,10,2)DARK(-10,10,8)"    \
+               10*SIN(X[x=1:5:.1])*COS(Y[Y=1:5:.1])
+contour/LEVELS= _DQ_(-10,10,2)DARK(-10,10,8)_DQ_ \
+               10*SIN(X[x=1:5:.1])*COS(Y[Y=1:5:.1])
+ 
+! ====== parse, parsex routines
+!plot/set x[i=1:3]^2
+!ppl title    "'A title w/ single quotes'. Ship Ka'imimoana"
+!ppl plot
+!label 2,5,0 "'A title w/ single quotes'. Ship Ka'imimoana"
+ 
+plot/set x[i=1:3]^2
+ppl title _DQ_'A title w/ "single quotes"'. Ship_Ka'imimoana_DQ_ ! ' for emacs
+ppl plot
+label 2,5,0 _DQ_'A title w/ "single quotes"'. Ship_Ka'imimoana_DQ_ ! ' emacs
+ppl %label 2,4,0 _DQ_'A title w/ "single quotes"'. Ship_Ka'imimoana_DQ_ ! ' emacs
+ 
+! ======  EQUAL_PEMUTE
+list/order=_DQ_yx_DQ_ 10*i[i=1:3] + j[j=1:2]
+             VARIABLE : 10*I[I=1:3] + J[J=1:2]
+             SUBSET   : 2 by 3 points (Y-X)
+             1      2    
+             1      2
+ 1   / 1:  11.00  12.00
+ 2   / 2:  21.00  22.00
+ 3   / 3:  31.00  32.00
+ 
+! ======  EQUAL_COLOR
+plot/color=_DQ_red_DQ_ i[i=1:100]^2
+ 
+! ======  EQUAL_RANGE
+plot/vlim=-2:2/hlim="1-jan-1980":"15-feb-1980" \
+    SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+plot/vlim=-2:2/hlim=_DQ_1-jan-1980_DQ_:_DQ_15-feb-1980_DQ_ \
+    SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+! ==> THE clean_draconian FILTER REMOVES THE FOLLOWING DATE-TIME LINES FROM LOG
+plot/vlim=-2:2/hlim="1-jan-1980":"15-feb-1980:12:00" \
+    SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+plot/vlim=-2:2/hlim=_DQ_1-jan-1980_DQ_:_DQ_15-feb-1980:12:00_DQ_ \
+    SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+ 
+! the following usages for _DQ_ and _SQ_ are NOT supported:
+! 1. internal PLOT+ syntax
+!    e.g. PPL XFOR (i5, ''LONW'')
+ 
+! 2. quote used as a delimiter for symbol substitution
+!    e.g. ($mysymbol"0|red>1|green>2")     ! several single char als.  e.g. "%"
+ 
+! in xeq_set:  double quotes around SET MODE argument -- _DQ_ not supported
+ 
+! in put_label: special hack for "'date'" -- _SQ_ not supported
+ 
+! it isn't clear that there is really a requirement for the _SQ_ syntax at all
+! since we are adding this feature to meet our own needs in LAS, we won't
+! make the extra effort to hit all of the obscure cases.  As a result, the
+! occurrences of IF string .EQ. "'" in these routines will be ignored
+!   - break_varname
+!   - break_varattname
+!   - inherit_attrs
+ 
+! in xeq_define.F:  DEFINE AXIS/NAME='my-name' is of unclear purpose
+*** Running test: bn695_bug_fixes.jnl
+! bn695_bug_fixes
+! test various fixes that went into version 6.95
+ 
+GO bn_reset
+cancel mode verify
+GO err694_shf_missing
+! err694_shf_missing.jnl
+! Test the fix for ticket 2314
+ 
+! This had been getting a missing-result; now is correct
+use gt4d011.cdf
+list/i=100/j=50/k=1/l=24 temp[l=@shf]
+             VARIABLE : TEMPERATURE (deg. C)
+             FILENAME : gt4d011.cdf
+             LONGITUDE: 130.5W
+             LATITUDE : 1.5N
+             DEPTH (m): 5
+             TIME     : 04-JAN-1983 10:00 (shifted by 1 pts)
+          32.10
+ 
+! Check shift that takes us beyond the end of a modulo axis (at x=20)
+can dat/all; use coads_climatology
+list/x=10:30/y=-60/l=1  sst
+             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 10 points (LONGITUDE)
+             LATITUDE : 61S
+             TIME     : 16-JAN 06:00
+               61S   
+               15
+ 11E   / -4:  0.447
+ 13E   / -3:  0.179
+ 15E   / -2:  0.521
+ 17E   / -1:  0.229
+ 19E   /  0:  0.727
+ 21E   /  1:  0.844
+ 23E   /  2:  0.440
+ 25E   /  3:  0.620
+ 27E   /  4:  0.873
+ 29E   /  5:  1.062
+list/x=10:30/y=-60/l=1  sst[i=@shf:3]
+             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
+                        shifted by 3 pts on X
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 10 points (LONGITUDE)
+             LATITUDE : 61S
+             TIME     : 16-JAN 06:00
+               61S   
+               15
+ 11E   / -4:  0.229
+ 13E   / -3:  0.727
+ 15E   / -2:  0.844
+ 17E   / -1:  0.440
+ 19E   /  0:  0.620
+ 21E   /  1:  0.873
+ 23E   /  2:  1.062
+ 25E   /  3:  1.261
+ 27E   /  4:  1.395
+ 29E   /  5:  1.010
+ 
+GO bn_reset
+cancel mode verify
+GO err694_longname_showdat
+! err694_longname_showdat.jnl
+! ticket 2317
+!
+! Make a file whose name starts the same as file with long name.
+sp rm WestCoastCarbon_9d9c_f562_77b5_5.nc
+sp ln -s WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc WestCoastCarbon_9d9c_f562_77b5_5.nc
+ 
+use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+ 
+! Long name was not matched by SHOW DAT filename
+! this previously returned an unknown dataset error
+sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
+     currently SET data sets:
+    1> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc  (default)
+ name     title                             I         J         K         L         M         N
+ PROF     Prof                             ...       ...       ...       ...       1:21      ...
+ TIME     Time                             ...       ...       ...       ...       1:21      ...
+ LATITUDE Latitude                         ...       ...       ...       ...       1:21      ...
+ LONGITUDE
+          Longitude                        ...       ...       ...       ...       1:21      ...
+ ROWSIZE  Number of Observations for this  ...       ...       ...       ...       1:21      ...
+ PRESS_DB PRESS_DB                         1:373     ...       ...       ...       ...       ...
+ PCO2     PCO2                             1:373     ...       ...       ...       ...       ...
+ 
+ 
+! If a file matched to 1st 32 characters, the shorter-named
+! datset was mistakenly returned.
+ 
+use WestCoastCarbon_9d9c_f562_77b5_5
+sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
+     currently SET data sets:
+    1> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+ name     title                             I         J         K         L         M         N
+ PROF     Prof                             ...       ...       ...       ...       1:21      ...
+ TIME     Time                             ...       ...       ...       ...       1:21      ...
+ LATITUDE Latitude                         ...       ...       ...       ...       1:21      ...
+ LONGITUDE
+          Longitude                        ...       ...       ...       ...       1:21      ...
+ ROWSIZE  Number of Observations for this  ...       ...       ...       ...       1:21      ...
+ PRESS_DB PRESS_DB                         1:373     ...       ...       ...       ...       ...
+ PCO2     PCO2                             1:373     ...       ...       ...       ...       ...
+ 
+ 
+sp rm WestCoastCarbon_9d9c_f562_77b5_5.nc
+ 
+GO bn_reset
+cancel mode verify
+GO err693_std4d
+! err693_std4d
+! Check fix to ticket 2319: std transform in multi-dimensions
+ 
+ 
+let a = x[gx=1:3:1] * y[gy=1:3:1]
+let astd = a[x=@std,y=@std]
+let avar = a[x=@var,y=@var]
+let a2 = a^2
+let avar_calc = a2[x=@ave,y=@ave] - a[x=@ave,y=@ave]^2
+let astd_x = a[x=@std]
+let astd_x_y = astd_x[y=@std]
+ 
+! STD and VAR in x and y together; vs astd_x_y separately
+list astd^2, avar, avar_calc, astd_x_y^2
+             X: 0.5 to 3.5
+             Y: 0.5 to 3.5
+ Column  1: EX#1 is ASTD^2
+ Column  2: AVAR is A[X=@VAR,Y=@VAR]
+ Column  3: AVAR_CALC is A2[X=@AVE,Y=@AVE] - A[X=@AVE,Y=@AVE]^2
+ Column  4: EX#4 is ASTD_X_Y^2
+           EX#1   AVAR  AVAR_CA   EX#4
+I / *:     5.778  5.778   5.778  0.4444
+ 
+ 
+! Now in the E and F directions
+ 
+let a = _e[ge=1:3:1] * _f[gf=1:3:1]
+let astd = a[e=@std,f=@std]
+let avar = a[e=@var,f=@var]
+let a2 = a^2
+let avar_calc = a2[e=@ave,f=@ave] - a[e=@ave,f=@ave]^2
+let astd_e = a[e=@std]
+let astd_e_f = astd_e[f=@std]
+ 
+list astd^2, avar, avar_calc, astd_e_f^2
+             E: 0.5 to 3.5
+             F: 0.5 to 3.5
+ Column  1: EX#1 is ASTD^2
+ Column  2: AVAR is A[E=@VAR,F=@VAR]
+ Column  3: AVAR_CALC is A2[E=@AVE,F=@AVE] - A[E=@AVE,F=@AVE]^2
+ Column  4: EX#4 is 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
+! bn_f_from_tax_fcns.jnl
+! test tax_* functions returning results from a
+! time-formatted axis in the F direction
+!
+! 2/2015 ACM
+ 
+define axis/f=1-jan-2011:31-jan-2011:1/units=hours fax
+ 
+ 
+ 
+let ff = _f[gf=fax]
+! Test RETURN=F0
+say `ff,return=F0`
+ !-> MESSAGE/CONTINUE 15-JAN-1901
+15-JAN-1901
+ 
+list/N=20:30 tax_datestring(_F[g=ff],ff,"minute")
+             VARIABLE : TAX_DATESTRING(_F[G=FF],FF,"minute")
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:"01-JAN-2011 19:00"
+ 01-JAN-2011 20:00 / 21:"01-JAN-2011 20:00"
+ 01-JAN-2011 21:00 / 22:"01-JAN-2011 21:00"
+ 01-JAN-2011 22:00 / 23:"01-JAN-2011 22:00"
+ 01-JAN-2011 23:00 / 24:"01-JAN-2011 23:00"
+ 02-JAN-2011 00:00 / 25:"02-JAN-2011 00:00"
+ 02-JAN-2011 01:00 / 26:"02-JAN-2011 01:00"
+ 02-JAN-2011 02:00 / 27:"02-JAN-2011 02:00"
+ 02-JAN-2011 03:00 / 28:"02-JAN-2011 03:00"
+ 02-JAN-2011 04:00 / 29:"02-JAN-2011 04:00"
+ 02-JAN-2011 05:00 / 30:"02-JAN-2011 05:00"
+list/N=20:30 tax_datestring(_F[g=ff],ff,"hour")
+             VARIABLE : TAX_DATESTRING(_F[G=FF],FF,"hour")
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:"01-JAN-2011 19"
+ 01-JAN-2011 20:00 / 21:"01-JAN-2011 20"
+ 01-JAN-2011 21:00 / 22:"01-JAN-2011 21"
+ 01-JAN-2011 22:00 / 23:"01-JAN-2011 22"
+ 01-JAN-2011 23:00 / 24:"01-JAN-2011 23"
+ 02-JAN-2011 00:00 / 25:"02-JAN-2011 00"
+ 02-JAN-2011 01:00 / 26:"02-JAN-2011 01"
+ 02-JAN-2011 02:00 / 27:"02-JAN-2011 02"
+ 02-JAN-2011 03:00 / 28:"02-JAN-2011 03"
+ 02-JAN-2011 04:00 / 29:"02-JAN-2011 04"
+ 02-JAN-2011 05:00 / 30:"02-JAN-2011 05"
+list/N=20:30 tax_datestring(_F[g=ff],ff,"day")
+             VARIABLE : TAX_DATESTRING(_F[G=FF],FF,"day")
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:"01-JAN-2011"
+ 01-JAN-2011 20:00 / 21:"01-JAN-2011"
+ 01-JAN-2011 21:00 / 22:"01-JAN-2011"
+ 01-JAN-2011 22:00 / 23:"01-JAN-2011"
+ 01-JAN-2011 23:00 / 24:"01-JAN-2011"
+ 02-JAN-2011 00:00 / 25:"02-JAN-2011"
+ 02-JAN-2011 01:00 / 26:"02-JAN-2011"
+ 02-JAN-2011 02:00 / 27:"02-JAN-2011"
+ 02-JAN-2011 03:00 / 28:"02-JAN-2011"
+ 02-JAN-2011 04:00 / 29:"02-JAN-2011"
+ 02-JAN-2011 05:00 / 30:"02-JAN-2011"
+list/N=20:30 tax_dayfrac(_F[g=ff],ff)
+             VARIABLE : TAX_DAYFRAC(_F[G=FF],FF)
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:  0.7917
+ 01-JAN-2011 20:00 / 21:  0.8333
+ 01-JAN-2011 21:00 / 22:  0.8750
+ 01-JAN-2011 22:00 / 23:  0.9167
+ 01-JAN-2011 23:00 / 24:  0.9583
+ 02-JAN-2011 00:00 / 25:  0.0000
+ 02-JAN-2011 01:00 / 26:  0.0417
+ 02-JAN-2011 02:00 / 27:  0.0833
+ 02-JAN-2011 03:00 / 28:  0.1250
+ 02-JAN-2011 04:00 / 29:  0.1667
+ 02-JAN-2011 05:00 / 30:  0.2083
+list/N=20:30 tax_day(_F[g=ff],ff)
+             VARIABLE : TAX_DAY(_F[G=FF],FF)
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:  1.000
+ 01-JAN-2011 20:00 / 21:  1.000
+ 01-JAN-2011 21:00 / 22:  1.000
+ 01-JAN-2011 22:00 / 23:  1.000
+ 01-JAN-2011 23:00 / 24:  1.000
+ 02-JAN-2011 00:00 / 25:  2.000
+ 02-JAN-2011 01:00 / 26:  2.000
+ 02-JAN-2011 02:00 / 27:  2.000
+ 02-JAN-2011 03:00 / 28:  2.000
+ 02-JAN-2011 04:00 / 29:  2.000
+ 02-JAN-2011 05:00 / 30:  2.000
+list/N=20:30 tax_jday(_F[g=ff],ff)
+             VARIABLE : TAX_JDAY(_F[G=FF],FF)
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:  1.000
+ 01-JAN-2011 20:00 / 21:  1.000
+ 01-JAN-2011 21:00 / 22:  1.000
+ 01-JAN-2011 22:00 / 23:  1.000
+ 01-JAN-2011 23:00 / 24:  1.000
+ 02-JAN-2011 00:00 / 25:  2.000
+ 02-JAN-2011 01:00 / 26:  2.000
+ 02-JAN-2011 02:00 / 27:  2.000
+ 02-JAN-2011 03:00 / 28:  2.000
+ 02-JAN-2011 04:00 / 29:  2.000
+ 02-JAN-2011 05:00 / 30:  2.000
+list/N=20:30 tax_month(_F[g=ff],ff)
+             VARIABLE : TAX_MONTH(_F[G=FF],FF)
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:  1.000
+ 01-JAN-2011 20:00 / 21:  1.000
+ 01-JAN-2011 21:00 / 22:  1.000
+ 01-JAN-2011 22:00 / 23:  1.000
+ 01-JAN-2011 23:00 / 24:  1.000
+ 02-JAN-2011 00:00 / 25:  1.000
+ 02-JAN-2011 01:00 / 26:  1.000
+ 02-JAN-2011 02:00 / 27:  1.000
+ 02-JAN-2011 03:00 / 28:  1.000
+ 02-JAN-2011 04:00 / 29:  1.000
+ 02-JAN-2011 05:00 / 30:  1.000
+list/N=20:30 tax_yearfrac(_F[g=ff],ff)
+             VARIABLE : TAX_YEARFRAC(_F[G=FF],FF)
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:  0.004909
+ 01-JAN-2011 20:00 / 21:  0.005023
+ 01-JAN-2011 21:00 / 22:  0.005137
+ 01-JAN-2011 22:00 / 23:  0.005251
+ 01-JAN-2011 23:00 / 24:  0.005365
+ 02-JAN-2011 00:00 / 25:  0.005479
+ 02-JAN-2011 01:00 / 26:  0.005594
+ 02-JAN-2011 02:00 / 27:  0.005708
+ 02-JAN-2011 03:00 / 28:  0.005822
+ 02-JAN-2011 04:00 / 29:  0.005936
+ 02-JAN-2011 05:00 / 30:  0.006050
+list/N=20:30 tax_year(_F[g=ff],ff)
+             VARIABLE : TAX_YEAR(_F[G=FF],FF)
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:  2011.
+ 01-JAN-2011 20:00 / 21:  2011.
+ 01-JAN-2011 21:00 / 22:  2011.
+ 01-JAN-2011 22:00 / 23:  2011.
+ 01-JAN-2011 23:00 / 24:  2011.
+ 02-JAN-2011 00:00 / 25:  2011.
+ 02-JAN-2011 01:00 / 26:  2011.
+ 02-JAN-2011 02:00 / 27:  2011.
+ 02-JAN-2011 03:00 / 28:  2011.
+ 02-JAN-2011 04:00 / 29:  2011.
+ 02-JAN-2011 05:00 / 30:  2011.
+list/N=20:30 tax_jday1900(_F[g=ff],ff)
+             VARIABLE : TAX_JDAY1900(_F[G=FF],FF)
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:  40542.
+ 01-JAN-2011 20:00 / 21:  40542.
+ 01-JAN-2011 21:00 / 22:  40542.
+ 01-JAN-2011 22:00 / 23:  40542.
+ 01-JAN-2011 23:00 / 24:  40542.
+ 02-JAN-2011 00:00 / 25:  40543.
+ 02-JAN-2011 01:00 / 26:  40543.
+ 02-JAN-2011 02:00 / 27:  40543.
+ 02-JAN-2011 03:00 / 28:  40543.
+ 02-JAN-2011 04:00 / 29:  40543.
+ 02-JAN-2011 05:00 / 30:  40543.
+list tax_units(ff)
+             VARIABLE : TAX_UNITS(FF)
+          3600.
+ 
+! commands from tax_tstep, changing time origin
+ 
+DEFINE AXIS/F="1-JAN-2000:00:00:01":"1-JAN-2000:00:15:00":2/UNITS=seconds fsec
+LIST/N=440:451 _F[GF=fsec]
+             VARIABLE : _F
+                        axis FSEC
+             SUBSET   : 12 points (FORECAST)
+ 01-JAN-2000 00:14:39 / 440:  3.123E+09
+ 01-JAN-2000 00:14:41 / 441:  3.123E+09
+ 01-JAN-2000 00:14:43 / 442:  3.123E+09
+ 01-JAN-2000 00:14:45 / 443:  3.123E+09
+ 01-JAN-2000 00:14:47 / 444:  3.123E+09
+ 01-JAN-2000 00:14:49 / 445:  3.123E+09
+ 01-JAN-2000 00:14:51 / 446:  3.123E+09
+ 01-JAN-2000 00:14:53 / 447:  3.123E+09
+ 01-JAN-2000 00:14:55 / 448:  3.123E+09
+ 01-JAN-2000 00:14:57 / 449:  3.123E+09
+ 01-JAN-2000 00:14:59 / 450:  3.123E+09
+ 01-JAN-2000 00:15:01 / 451:  3.123E+09
+LET bsin = SIN(_F[GF=fsec]/40000)
+SAVE/FILE=a.nc/clobber bsin
+CAN VAR/all
+USE a.nc
+ 
+SET LIST/PREC=7
+! Reset the date to dec 1999
+! Function lets us leave off the leading 0.
+LIST/N=1:15  TAX_TSTEP(bsin, "1-dec-1999:00:00:00" )
+             VARIABLE : TAX_TSTEP(BSIN, "1-dec-1999:00:00:00" )
+             FILENAME : a.nc
+             SUBSET   : 15 points (FORECAST)
+ 01-JAN-2000 00:00:01 /  1:  2678401.
+ 01-JAN-2000 00:00:03 /  2:  2678403.
+ 01-JAN-2000 00:00:05 /  3:  2678405.
+ 01-JAN-2000 00:00:07 /  4:  2678407.
+ 01-JAN-2000 00:00:09 /  5:  2678409.
+ 01-JAN-2000 00:00:11 /  6:  2678411.
+ 01-JAN-2000 00:00:13 /  7:  2678413.
+ 01-JAN-2000 00:00:15 /  8:  2678415.
+ 01-JAN-2000 00:00:17 /  9:  2678417.
+ 01-JAN-2000 00:00:19 / 10:  2678419.
+ 01-JAN-2000 00:00:21 / 11:  2678421.
+ 01-JAN-2000 00:00:23 / 12:  2678423.
+ 01-JAN-2000 00:00:25 / 13:  2678425.
+ 01-JAN-2000 00:00:27 / 14:  2678427.
+ 01-JAN-2000 00:00:29 / 15:  2678429.
+ 
+! argument can be upper or lowercase
+! Should list values 1, 3, 5...
+LIST/N=1:15  TAX_TSTEP(bsin, "1-JAN-2000:00:00:00" )
+             VARIABLE : TAX_TSTEP(BSIN, "1-JAN-2000:00:00:00" )
+             FILENAME : a.nc
+             SUBSET   : 15 points (FORECAST)
+ 01-JAN-2000 00:00:01 /  1:   1.00000
+ 01-JAN-2000 00:00:03 /  2:   3.00000
+ 01-JAN-2000 00:00:05 /  3:   5.00000
+ 01-JAN-2000 00:00:07 /  4:   7.00000
+ 01-JAN-2000 00:00:09 /  5:   9.00000
+ 01-JAN-2000 00:00:11 /  6:  11.00000
+ 01-JAN-2000 00:00:13 /  7:  13.00000
+ 01-JAN-2000 00:00:15 /  8:  15.00000
+ 01-JAN-2000 00:00:17 /  9:  17.00000
+ 01-JAN-2000 00:00:19 / 10:  19.00000
+ 01-JAN-2000 00:00:21 / 11:  21.00000
+ 01-JAN-2000 00:00:23 / 12:  23.00000
+ 01-JAN-2000 00:00:25 / 13:  25.00000
+ 01-JAN-2000 00:00:27 / 14:  27.00000
+ 01-JAN-2000 00:00:29 / 15:  29.00000
+ 
+! Test  with TAX_DATESTRING
+ 
+DEFINE AXIS/F="1-JAN-1902:00:00:00":"1-JAN-1902:00:30:00":5/UNITS=seconds fsec
+LIST/N=200:205 _F[GF=fsec]
+             VARIABLE : _F
+                        axis FSEC
+             SUBSET   : 6 points (FORECAST)
+ 01-JAN-1902 00:16:35 / 200:  30327395.
+ 01-JAN-1902 00:16:40 / 201:  30327400.
+ 01-JAN-1902 00:16:45 / 202:  30327405.
+ 01-JAN-1902 00:16:50 / 203:  30327410.
+ 01-JAN-1902 00:16:55 / 204:  30327415.
+ 01-JAN-1902 00:17:00 / 205:  30327420.
+ 
+LET ff = _F[GF=fsec]
+LET reset_date = TAX_DATESTRING(`_F[GF=fsec,n=1]`, ff, "sec")
+ !-> DEFINE VARIABLE reset_date = TAX_DATESTRING(30326400, ff, "sec")
+LIST/N=1:15 TAX_TSTEP(ff, "`reset_date`")
+ !-> LIST/N=1:15 TAX_TSTEP(ff, "01-JAN-1902 00:00:00")
+             VARIABLE : TAX_TSTEP(FF, "01-JAN-1902 00:00:00")
+             SUBSET   : 15 points (FORECAST)
+ 01-JAN-1902 00:00:00 /  1:   0.00000
+ 01-JAN-1902 00:00:05 /  2:   5.00000
+ 01-JAN-1902 00:00:10 /  3:  10.00000
+ 01-JAN-1902 00:00:15 /  4:  15.00000
+ 01-JAN-1902 00:00:20 /  5:  20.00000
+ 01-JAN-1902 00:00:25 /  6:  25.00000
+ 01-JAN-1902 00:00:30 /  7:  30.00000
+ 01-JAN-1902 00:00:35 /  8:  35.00000
+ 01-JAN-1902 00:00:40 /  9:  40.00000
+ 01-JAN-1902 00:00:45 / 10:  45.00000
+ 01-JAN-1902 00:00:50 / 11:  50.00000
+ 01-JAN-1902 00:00:55 / 12:  55.00000
+ 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
+! bn_fmrc.jnl
+! initial test of DEFINE DATA/F
+ 
+use "run1.nc"
+use "run2.nc"
+use "run3.nc"
+use "run4.nc"
+ 
+define data/hide/F/agg/title 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
+ normal    Z
+ TF_LAG_T  MODEL ELAPSED TIME (12 r   0                    11
+ normal    E
+ TF_CAL_F  FORECAST             4 r   02-JAN-2010 00:00    08-JAN-2010 00:00
+list/i=1/j=1/L=1:6/n=1:4 sst
+             VARIABLE : SST_IN (Deg C)
+             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    
+                        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
+ 
+show att sst
+     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 
+ 
+! Attribute _ftime2dRef pointe to the 2D time variable
+list/L=1:6/n=1:4 `sst._ftime2dRef`
+ !-> list/L=1:6/n=1:4 TF_TIMES
+             VARIABLE : Forecast time step matrix (day since 01-JAN-2010 00:00:00)
+             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    
+                        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
+ 
+*** Running test: bn_return_defined.jnl
+! bn_return_defined.jnl
+! 5/3/2015 *acm*
+! `return=defined` returns 1 if the user variable is defined
+! see ticket 2293
+ 
+let a = b
+say `a,r=defined` `b,r=defined`
+ !-> MESSAGE/CONTINUE 1 0
+1 0
+ 
+! abbreviate to 3 letters
+use levitus_climatology
+let temp2 = 2*temp
+say `temp2,return=def`
+ !-> MESSAGE/CONTINUE 1
+1
+ 
+! returns false for file variables
+say `temp,return=defined`
+ !-> MESSAGE/CONTINUE 0
+0
+*** Running test: bn_can_var_noerr.jnl
+! bn_can_var_noerr.jnl
+! CANCEL VARIABLE/NOERROR
+ 
+ 
+let a = 1
+ 
+! intentional error
+set mode ignore
+cancel var b,a
+show var
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+     A = 1
+ 
+cancel mode ignore
+ 
+! specify /noerr and we can issue the command
+ 
+cancel var/noerror a,b
+show var
+ Created by DEFINE VARIABLE:
+ 
+! no effect on CAN VAR/ALL or CAN VAR template_name
+ 
+let a1 = 1
+let a7 = 7
+let c = 12
+ 
+cancel var/noerror name*
+show var
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+     C = 12
+     A7 = 7
+     A1 = 1
+ 
+cancel var/noerror a*
+show var
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+     C = 12
+ 
+cancel var/noerror/all
+show var
+ Created by DEFINE VARIABLE:
+*** Running test: bn_annotate.jnl
+! bn_annotate.jnl
+! The command ANNOTATE /USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE
+! locates user-defined labels on a plot.
+!   /USER and /NOUSER behave as the LABEL command does
+!   /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
+ 
+! ANNOTATE /USER
+set v ul
+plot/vs/sym=28/hl=-5:5/vl=-10:10 {-1,1},{-1,1}
+ 
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/USER labels"
+ !-> annotate/nouser/xpos=2.506/ypos=3.42300/halign=0/valign=-8/siz=.25 "ANNOTATE/USER labels"
+annotate/user/xpos=-1/ypos=-1/halign=0/valign=0/angle=-90/siz=0.2 "X"
+annotate/user/xpos=0/ypos=0/halign=0/valign=0/angle=0/siz=0.2 "X"
+annotate/user/xpos=1/ypos=1/halign=0/valign=0/angle=45/siz=0.2 "X"
+ 
+plot/ov/vs/line=1/nolab {-1,1,1,-1,-1},{4,4,6,6,4}
+annotate/user/xpos=0/ypos=5/halign=0/valign=0/angle=0/siz=0.2 "BOX"
+ 
+plot/ov/vs/line=1/nolab .5*{-1,1,1,-1,-1},{-2,-2,-8,-8,-2}
+	annotate/user/xpos=0/ypos=-5/halign=0/valign=0/angle=90/siz=0.2 "BOX"
+ 
+plot/ov/vs/sym=2/size=2/nolab 3,0
+annotate/user/xpos=3/ypos=0/halign=0/valign=1/angle=45/siz=0.2 "TOP"
+annotate/user/xpos=3/ypos=0/halign=0/valign=-1/angle=45/siz=0.2 "BOTTOM"
+ 
+plot/ov/vs/sym=2/size=2/nolab -3,0
+annotate/user/xpos=-3/ypos=0/halign=-1/valign=-1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-1/valign=1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=1/valign=-1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=1/valign=1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-3/valign=-3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-3/valign=3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=3/valign=-3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=3/valign=3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-.99/valign=5/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=.99/valign=5/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-.99/valign=-5/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=.99/valign=-5/angle=45/siz=0.2 "M"
+ 
+ 
+ 
+! ANNOTATE/NORM
+set v ur
+plot/i=1:5/vlim=1:5/hlim=1:5/color=white/nolab i
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/NORM labels"
+ !-> annotate/nouser/xpos=2.506/ypos=3.42300/halign=0/valign=-8/siz=.25 "ANNOTATE/NORM labels"
+ 
+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=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=.5/halign=0/valign=0/angle=0/size=0.14 "DEAD CENTER"
+annotate/norm/xpos=.5/ypos=0/halign=0/valign=1/angle=0/size=0.14 "HANGING FROM BOTTOM"
+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"
+ 
+! ANNOTATE/NOUSER
+set v ll
+plot/i=1:5/vlim=1:5/hlim=1:5/color=white/nolab i
+ 
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels"
+ !-> annotate/nouser/xpos=2.506/ypos=3.42300/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels"
+ 
+! nouser
+annotate/nouser/xpos=0/ypos=0/halign=-1/angle=0/size=0.15 "At Origin"
+annotate/nouser/xpos=0/ypos=0/halign=-3/valign=-3/angle=0/size=0.15 "With/HALIGN=-3/VALIGN=-3"
+ 
+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=5.01200/ypos=3.42300/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"
+ !-> annotate/nouser/xpos=5.01200/ypos=3.42300/halign=4/valign=3/angle=0/siz=0.15 "With/HALIGN=3/VALIGN=4"
+ 
+plot/vs/line/over/color=lightblue/nolab {3,3},{1,6}
+plot/vs/line/over/color=lightblue/nolab {1,5}, {3,3}
+ 
+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 "
+ !-> annotate/nouser/xpos=2.506/ypos=1.7115/halign=0/valign=0/angle=0/siz=0.15 "Arguments locate the first<nl>line of multi-line labels "
+ 
+! angles
+set v lr
+ 
+plot/i=1:5/vlim=1:5/hlim=1:5/color=white/nolab i
+! nouser
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels<nl>Use VALIGN=0"
+ !-> annotate/nouser/xpos=2.506/ypos=3.42300/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels<nl>Use VALIGN=0"
+annotate/nouser/xpos=0/ypos=0/halign=0/valign=0/angle=45/size=0.15 "Center At Origin"
+annotate/nouser/xpos=0/ypos=($ppl$ylen)/halign=-1/valign=0/angle=-45/siz=0.15 "left-align"
+ !-> annotate/nouser/xpos=0/ypos=3.42300/halign=-1/valign=0/angle=-45/siz=0.15 "left-align"
+annotate/nouser/xpos=($ppl$xlen)/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "right-align"
+ !-> annotate/nouser/xpos=5.01200/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "right-align"
+ 
+! Test defaults
+! Default is like PPL user-labels
+! /USER/SIZ=0.12/ANGLE=0/HALIGN=0/VALIGN=-1
+ 
+shade/x=1:2/y=1:2/pal=grayscale i+j
+annotate/xpos=1.5/ypos=1.8 "Anno Label"
+label 1.5,1.6,,,, PPL label
+ 
+ 
+! DEFINE ANNOTATION inside a grapchics call with /SET
+can view
+use gt4d011.cdf
+shade/set temp[k=1,l=1]
+  DEFINE ANNOTATION/user/xpos=224/ypos=-3/halign=0/valign=0/angle=0/siz=.3 "X"
+ppl shade
+ 
+shade/set/j=40/L=1 temp
+  DEFINE ANNOTATION/user/xpos=224/ypos=80/halign=0/valign=0/angle=0/siz=.3 "X"
+ppl shade
+ 
+can data/all
+ 
+plot/set/i=1:5 i
+! nouser
+define annotation/nouser/xpos=0/ypos=0/halign=0/angle=0/size=0.15 "Center At Origin"
+define annotation/nouser/xpos=0/ypos=($ppl$ylen)/halign=-1/angle=0/siz=0.15 "left-align at upper left corner"
+ !-> define annotation/nouser/xpos=0/ypos=6.00000/halign=-1/angle=0/siz=0.15 "left-align at upper left corner"
+define annotation/nouser/xpos=($ppl$xlen)/ypos=0/halign=1/angle=0/siz=0.15 "right-align at lower right corner"
+ !-> define annotation/nouser/xpos=8.00000/ypos=0/halign=1/angle=0/siz=0.15 "right-align at lower right corner"
+! user
+define annotation/user/xpos=3/ypos=2/halign=0/angle=0/siz=0.15 "user units centered at 3,2"
+define annotation/user/xpos=3/ypos=3/halign=-1/angle=0/siz=0.15 "user units left at 3,3"
+define annotation/user/xpos=3/ypos=4/halign=1/angle=0/siz=0.15 "user units right at 3,4"
+ppl plot
+ 
+! angles
+ 
+plot/set/i=1:5 i
+define annotation/nouser/xpos=0/ypos=0/halign=0/angle=45/size=0.15 "Center At Origin"
+define annotation/nouser/xpos=0/ypos=($ppl$ylen)/halign=-1/angle=-45/siz=0.15 "left-align at upper left corner"
+ !-> define annotation/nouser/xpos=0/ypos=6.00000/halign=-1/angle=-45/siz=0.15 "left-align at upper left corner"
+define annotation/nouser/xpos=($ppl$xlen)/ypos=0/halign=1/angle=-45/siz=0.15 "right-align at lower right corner"
+ !-> define annotation/nouser/xpos=8.00000/ypos=0/halign=1/angle=-45/siz=0.15 "right-align at lower right corner"
+! user
+define annotation/user/xpos=3/ypos=2/halign=0/angle=45/siz=0.15 "user units centered at 3,2"
+define annotation/user/xpos=3/ypos=3/halign=-1/angle=45/siz=0.15 "user units left at 3,3"
+define annotation/user/xpos=3/ypos=4/halign=1/angle=45/siz=0.15 "user units right at 3,4"
+ppl plot
+ 
+! DEFINE ANNO/NORM
+plot/i=1:5/nolab/set i
+def anno/norm/xp=.5/yp=1.1/hal=0/ang=0/size=.3 "FLOATING TITLE"
+def anno/norm/xp=.5/yp=-.2/hal=0/ang=0/size=.3 "SUBMERGED TITLE"
+def anno/norm/xp=0/yp=1/hal=-1/ang=0/size=.3 "LEFT/TOP"
+def anno/norm/xp=.5/yp=1/hal=0/ang=0/size=.3 "CTR/TOP"
+def anno/norm/xp=1/yp=1/hal=1/ang=0/size=.3 "RIGHT/TOP"
+def anno/norm/xp=1/yp=.5/hal=0/ang=-90/size=.3 "RIGHT EDGE"
+def anno/norm/xp=0/yp=.5/hal=0/ang=90/size=.3 "LEFT EDGE"
+def anno/norm/xp=.5/yp=.5/hal=0/val=0/ang=0/size=.3 "DEAD CENTER"
+def anno/norm/xp=.5/yp=0/hal=0/val=1/ang=0/size=.3 "HANGING FROM BOTTOM"
+def anno/norm/xp=0/yp=0/hal=-2/val=-2/ang=0/size=.2 "BOTTOM LEFT INSET"
+def anno/norm/xp=0/yp=1/hal=-2/val=2/ang=0/size=.2 "TOP LEFT INSET"
+def anno/norm/xp=1/yp=0/hal=2/val=-2/ang=0/size=.2 "BOTTOM RIGHT INSET"
+def anno/norm/xp=1/yp=1/hal=2/val=2/ang=0/size=.2 "TOP RIGHT INSET"
+ppl plot
+ 
+plot/set/vs/sym=28/hl=-5:5/vl=-10:10 {-1,1},{-1,1}
+ 
+define annotation/user/xpos=-1/ypos=-1/halign=0/valign=0/angle=-90/siz=.5 "X"
+define annotation/user/xpos=0/ypos=0/halign=0/valign=0/angle=0/siz=.5 "X"
+define annotation/user/xpos=1/ypos=1/halign=0/valign=0/angle=45/siz=.5 "X"
+define annotation/user/xpos=0/ypos=5/halign=0/valign=0/angle=0/siz=.5 "BOX"
+define annotation/user/xpos=0/ypos=-5/halign=0/valign=0/angle=90/siz=.5 "BOX"
+define annotation/user/xpos=3/ypos=0/halign=0/valign=1/angle=45/siz=.5 "TOP"
+define annotation/user/xpos=3/ypos=0/halign=0/valign=-1/angle=45/siz=.5 "BOTTOM"
+define annotation/user/xpos=-3/ypos=0/halign=-1/valign=-1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-1/valign=1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=1/valign=-1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=1/valign=1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-3/valign=-3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-3/valign=3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=3/valign=-3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=3/valign=3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-.99/valign=5/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=.99/valign=5/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-.99/valign=-5/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=.99/valign=-5/angle=45/siz=.5 "M"
+ppl list labels
+                                                                                
+ @AS{-1,1}                                                                      
+ @AS{-1,1}                                                                      
+
+          XPOS       YPOS     HGT   ROT   UNITS
+ LAB 1  0.000E+00  6.600E+00 0.120    0  SYSTEM  @ASX : 0.5 to 2.5
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
+ LAB 2 -1.313E+00 -1.000E+00 0.500  -90  USER    X
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 3  0.000E+00 -8.333E-01 0.500    0  USER    X
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 4  1.221E+00  4.107E-01 0.500   45  USER    X
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 5  0.000E+00  4.167E+00 0.500    0  USER    BOX
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 6  3.125E-01 -5.000E+00 0.500   90  USER    BOX
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 7  3.442E+00 -1.179E+00 0.500   45  USER    TOP
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 8  3.000E+00  0.000E+00 0.500   45  USER    BOTTOM
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 9 -3.000E+00  0.000E+00 0.500   45  USER    M
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
+ LAB10 -2.558E+00 -1.179E+00 0.500   45  USER    M
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
+ LAB11 -3.000E+00  0.000E+00 0.500   45  USER    M
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
+ LAB12 -2.558E+00 -1.179E+00 0.500   45  USER    M
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
+ LAB13 -3.000E+00  2.357E+00 0.500   45  USER    M
+ 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
+ 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
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB18 -1.893E+00 -4.119E+00 0.500   45  USER    M
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB19 -3.665E+00  2.940E+00 0.500   45  USER    M
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB20 -4.103E+00  1.774E+00 0.500   45  USER    M
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ppl plot
+plot/ov/vs/line=1/nolab {-1,1,1,-1,-1},{4,4,6,6,4}
+plot/ov/vs/line=1/nolab .5*{-1,1,1,-1,-1},{-2,-2,-8,-8,-2}
+plot/ov/vs/sym=2/size=2/nolab 3,0
+plot/ov/vs/sym=2/size=2/nolab -3,0
+ 
+! intentional errors
+set mode ignore
+can v
+shade/i=1:2/j=1:2/nokey i+j
+ 
+ 
+! errors in arguments
+annotate/nouser/xpos=a2/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=b/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=0/halign=c/valign=0/angle=-45/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=0/halign=1/valign=d/angle=ee/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=0/halign=1/valign=0/angle=-45/siz=f "My Lab"
+ 
+! missing a location
+annotate/nouser/ypos=0 "My Lab"
+annotate/nouser/xpos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+ 
+! /USER and /NOUSER
+annotate/nouser/user/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+ 
+! define annotation
+ 
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=a2/ypos=0/hal=1/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0,3/ypos=b/hal=1/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=c/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=1/val=d/ang=ee/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=1/val=0/ang=-45/siz=f "My Lab"; ppl plot
+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.15 "My Lab"; ppl plot
+ 
+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
+! bn_auxiliary.jnl:  exercise auxiliary coordinate regridding
+ 
+! notes about the 6/2015 version:
+! -- tests 1D regridding, only, as of 6/2015
+! -- includestests the deprecated "LAYERZ" and "__LayerzRef_" automation syntax
+!    ... to be replaced by a different automation syntax in the future
+ 
+! *sh* 6/2015
+ 
+! initialize the test environment
+USE levitus_3d_subset
+SPAWN rm layerz_test_data.txt
+LET Zpts = Z[Z=100:500:100]
+DEFINE AXIS/z/units=meters zax = zpts
+ 
+! conjure a 4D auxiliary variable that contains the same values
+! as the native Z coordinates
+! regridding using this auxiliary variable should give the same results as
+! conventional regridding -- usefuly to validate the results
+LET/D=levitus_3d_subset depth = z[g=temp]+ 0*temp[k=1]
+ 
+!************
+! exercise the syntax of setting layerz associations
+! do same tests on EZ, uvar, and netCDF variable
+ 
+! EZ file variable
+LIST/NOHEAD/FILE=layerz_test_data.txt 1
+FILE/VAR=v layerz_test_data.txt
+! set the layerz link to point to a variable named "depth"
+SET VAR/layerz=depth v
+SHOW VAR/LAYERZ v
+  DEPTH holds the designated vertical (layerz) coordinates of V
+SHOW ATT v
+! modify the layerz link
+SET VAR/layerz=newdepth v
+SHOW VAR/LAYERZ v
+  NEWDEPTH holds the designated vertical (layerz) coordinates of V
+SHOW ATT v
+     attributes for dataset: ./layerz_test_data.txt
+ V.long_name = V 
+ V.missing_value = -1.E+34
+ V.__LayerzRef_ = NEWDEPTH 
+cancel var/layerz v
+SHOW VAR/LAYERZ v
+  No variable holds vertical (layerz) coordinates of V
+SHOW ATT v
+     attributes for dataset: ./layerz_test_data.txt
+ V.long_name = V 
+ V.missing_value = -1.E+34
+CANCEL DATA layerz_test_data.txt
+ 
+! user variable
+! set the layerz link
+LET a = temp
+SET VAR/layerz=depth a
+SHOW VAR/LAYERZ a
+  DEPTH holds the designated vertical (layerz) coordinates of a
+SHOW ATT a
+     attributes for user-defined variables
+ a.long_name = TEMP 
+ a.missing_value = -1.E+34
+ a.__LayerzRef_ = DEPTH 
+! modify the layerz link
+SET VAR/layerz=newdepth a
+SHOW VAR/LAYERZ a
+  NEWDEPTH holds the designated vertical (layerz) coordinates of a
+SHOW ATT a
+     attributes for user-defined variables
+ a.long_name = TEMP 
+ a.missing_value = -1.E+34
+ a.__LayerzRef_ = NEWDEPTH 
+cancel var/layerz a
+SHOW VAR/LAYERZ a
+  No variable holds vertical (layerz) coordinates of a
+SHOW ATT a
+     attributes for user-defined variables
+ a.long_name = TEMP 
+ a.missing_value = -1.E+34
+ 
+! netCDF file variable
+! set the layerz link
+SET VAR/layerz=depth temp[d=levitus_3d_subset]
+SHOW VAR/LAYERZ/d=levitus_3d_subset temp
+  DEPTH holds the designated vertical (layerz) coordinates of TEMP
+SHOW ATT temp.__LayerzRef_[d=levitus_3d_subset]
+     attributes for dataset: ./levitus_3d_subset.nc
+ TEMP.__LayerzRef_ = DEPTH 
+! modify the layerz link
+SET VAR/layerz=newdepth temp[d=levitus_3d_subset]
+SHOW VAR/LAYERZ/d=levitus_3d_subset temp
+  NEWDEPTH holds the designated vertical (layerz) coordinates of TEMP
+SHOW ATT temp.__LayerzRef_[d=levitus_3d_subset]
+     attributes for dataset: ./levitus_3d_subset.nc
+ TEMP.__LayerzRef_ = NEWDEPTH 
+cancel var/layerz temp[d=levitus_3d_subset]
+SHOW VAR/LAYERZ/d=levitus_3d_subset temp
+  No variable holds vertical (layerz) coordinates of TEMP
+SHOW ATT temp[d=levitus_3d_subset]   ! __LayerzRef_ has been deleted
+     attributes for dataset: ./levitus_3d_subset.nc
+ TEMP.missing_value = -1.E+10
+ TEMP._FillValue = -1.E+10
+ TEMP.long_name = TEMPERATURE 
+ TEMP.history = From /home/users/tmap/ferret/linux/fer_dsets/data/levitus_climatology.cdf 
+ TEMP.units = DEG C 
+ 
+! deliberate error
+SET MODE ignore; SET VAR/layerz=depth noexist; SET MODE/last ignore
+ 
+!************
+! exercise the layerz calculations in various situations
+! compare the manually specified syntax with the automated results
+ 
+! make "depth" the layerz coordinate variable for "temp"
+SET VAR/layerz=depth temp[d=levitus_3d_subset]
+ 
+! values of the unadulterated variable
+list/PREC=7 temp[z=0:500]
+             VARIABLE : TEMPERATURE (DEG C)
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 11 points (LONGITUDE-LATITUDE-DEPTH (m))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   0
+ 48.5S / 2:  7.725000  7.917999
+ 49.5S / 1:  6.827000  7.007000
+ ---- K:2 Z:   10
+ 48.5S / 2:  7.726000  7.917999
+ 49.5S / 1:  6.843000  7.021999
+ ---- K:3 Z:   20
+ 48.5S / 2:  7.715000  7.907000
+ 49.5S / 1:  6.840000  7.018999
+ ---- K:4 Z:   30
+ 48.5S / 2:  7.594000  7.789000
+ 49.5S / 1:  6.740999  6.923000
+ ---- K:5 Z:   50
+ 48.5S / 2:  7.410999  7.584000
+ 49.5S / 1:  6.624001  6.785000
+ ---- K:6 Z:   75
+ 48.5S / 2:  7.572001  7.666000
+ 49.5S / 1:  6.750999  6.848000
+ ---- K:7 Z:   100
+ 48.5S / 2:  7.334999  7.436001
+ 49.5S / 1:  6.462000  6.572001
+ ---- K:8 Z:   150
+ 48.5S / 2:  7.372000  7.464001
+ 49.5S / 1:  6.466000  6.573999
+ ---- K:9 Z:   200
+ 48.5S / 2:  6.961000  7.073000
+ 49.5S / 1:  6.025999  6.150000
+ ---- K:10 Z:   300
+ 48.5S / 2:  6.457001  6.636999
+ 49.5S / 1:  5.445000  5.665000
+ ---- K:11 Z:   400
+ 48.5S / 2:  6.181999  6.377001
+ 49.5S / 1:  5.187000  5.410000
+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
+ normal    T
+ normal    E
+ normal    F
+ 
+! use aux var regridding.  Target coordinate points match the source points
+! identically at 0, 100, 200, ... 500
+! values should match the unadulterated variable at these points
+! this command will be issued in diagnostic mode to highlight that the
+! K range over which temp is read is the minimum needed to compute the result
+SET MODE diagnostic
+LET tempz = temp[gz(depth)=zpts]
+LIST/PREC=7 tempz
+ dealloc  dynamic grid GAO1            XAXLEVITR1YAXLEVITR4ZAXLEVITR NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ getgrid TEMPZ    C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ getgrid DEPTH    C:  9 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid GAO1            XAXLEVITR1YAXLEVITR4ZAXLEVITR NORMAL    NORMAL    NORMAL
+ getgrid ZPTS     C:  9 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid (G003)          NORMAL    NORMAL    (AX005)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G003)          NORMAL    NORMAL    (AX005)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G003)          NORMAL    NORMAL    (AX005)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    5  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    TEMPZ    C:  6 dset:   1 I:    1    2  J:    1    2  K:    1    5  L: -999 -999  M: -999 -999  N: -999 -999
+ allocate dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL    NORMAL    NORMAL
+ strip regrid on Z: TEMP --> (G002)           @LIN
+ eval    DEPTH    C:  9 dset:   1 I:    1    2  J:    1    2  K:    1   20  L: -999 -999  M: -999 -999  N: -999 -999
+ pseudo  Z        M:  1 dset:   1 I: -999 -999  J: -999 -999  K:    1   20  L: -999 -999  M: -999 -999  N: -999 -999
+ constan cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ found   TEMP     M:  2 dset:   1 I:    1    2  J:    1    2  K:    1   11  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:  4 dset:   0 I:    1    2  J:    1    2  K:    1    1  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE Z        M:  1 dset:   1 I: -999 -999  J: -999 -999  K:    1   20  L: -999 -999  M: -999 -999  N: -999 -999
+ reading TEMP     M:  1 dset:   1 I:    1    2  J:    1    2  K:    7   12  L: -999 -999  M: -999 -999  N: -999 -999
+ auxgrd  TEMP     M:  4 dset:   1 I:    1    2  J:    1    2  K:    1    5  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL    NORMAL    NORMAL
+             VARIABLE : TEMP[GZ(DEPTH)=ZPTS]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.334999  7.436001
+ 49.5S / 1:  6.462000  6.572001
+ ---- K:2 Z:   200
+ 48.5S / 2:  6.961000  7.073000
+ 49.5S / 1:  6.025999  6.150000
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.457001  6.636999
+ 49.5S / 1:  5.445000  5.665000
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.181999  6.377001
+ 49.5S / 1:  5.187000  5.410000
+ ---- K:5 Z:   500
+ 48.5S / 2:  5.835500  6.045001
+ 49.5S / 1:  4.879000  5.102500
+SHOW GRID tempz
+ dealloc  dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL    NORMAL    NORMAL
+    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
+ normal    T
+ normal    E
+ normal    F
+!LET tempz = temp[gz=zpts,layerz]  ! same regrid using semi-automated notation
+!LIST/PREC=7 tempz
+!SHOW GRID tempz
+SET MODE/last diagnostic
+ 
+! list a little with no imtermediate variable, so Z labeling is visible
+LIST/PREC=7 temp[gz(depth)=zpts,k=1]
+             VARIABLE : TEMPERATURE (DEG C)
+                        regrid: 100 delta on Z at LIN using DEPTH field
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z        : 100
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2:  7.334999  7.436001
+ 49.5S / 1:  6.462000  6.572001
+!LIST/PREC=7 temp[gz=zpts,k=1,layerz] ! same using semi-automated notation
+ 
+! same calculation, but with a named Z axis
+LET tempzax = temp[gz(depth)=zax]
+LIST tempzax
+             VARIABLE : TEMP[GZ(DEPTH)=ZAX]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (METERS))
+             120.5E 121.5E 
+               1      2
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.335  7.436
+ 49.5S / 1:  6.462  6.572
+ ---- K:2 Z:   200
+ 48.5S / 2:  6.961  7.073
+ 49.5S / 1:  6.026  6.150
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.457  6.637
+ 49.5S / 1:  5.445  5.665
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.182  6.377
+ 49.5S / 1:  5.187  5.410
+ ---- K:5 Z:   500
+ 48.5S / 2:  5.835  6.045
+ 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
+ normal    T
+ normal    E
+ normal    F
+!LET tempzax = temp[gz=zax,layerz]  ! same regrid using semi-automated notation
+!LIST tempzax
+!SHOW GRID tempzax
+ 
+! regrid to a different set of Z points
+LET tempz_alt = temp[gz(depth)=2:10:2]
+LIST/PREC=7 tempz_alt
+             VARIABLE : TEMP[GZ(DEPTH)=2:10:2]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   2
+ 48.5S / 2:  7.725200  7.917999
+ 49.5S / 1:  6.830200  7.010000
+ ---- K:2 Z:   4
+ 48.5S / 2:  7.725400  7.917999
+ 49.5S / 1:  6.833400  7.013000
+ ---- K:3 Z:   6
+ 48.5S / 2:  7.725600  7.917999
+ 49.5S / 1:  6.836600  7.016000
+ ---- K:4 Z:   8
+ 48.5S / 2:  7.725800  7.917999
+ 49.5S / 1:  6.839800  7.018999
+ ---- K:5 Z:   10
+ 48.5S / 2:  7.726000  7.917999
+ 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
+ normal    T
+ normal    E
+ normal    F
+ 
+!! do same regrid using the shorhand semi-automated notation
+!LIST/PREC=7 temp[z=2:10:2,layerz]   ! lo:hi:delta notation
+!SHOW GRID
+ 
+! test the shorthand notation var[gz(depth)=100] as an implicit aux var
+! regrid via linear interpolation
+! the value should match the preceding output at Z=6
+LET tempz_1pt = temp[gz(depth)=6]
+LIST/PREC=7 tempz_1pt
+             VARIABLE : TEMP[GZ(DEPTH)=6]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z        : 6
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2:  7.725600  7.917999
+ 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
+ normal    T
+ normal    E
+ normal    F
+ 
+       K     Z                   ZBOX      ZBOXLO
+       1>  6                     6.E-05     5.99997
+ 
+! do same regrid using the shorhand semi-automated notation
+LIST/PREC=7 temp[z=6,layerz]     ! =1pt notation   WILL BE CHANGED!
+             VARIABLE : TEMPERATURE (DEG C)
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             DEPTH (m): 6 (interpolated using DEPTH)
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2:  7.725600  7.917999
+ 49.5S / 1:  6.836600  7.016000
+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
+ normal    T
+ normal    E
+ normal    F
+ 
+! auxiliary points in reverse order
+! to get results that we can check for correctness, we will reverse the Z-order
+! of the temperature field as well as the depth field.
+LET rvtemp0 = ZREVERSE(temp)
+LET rvtemp  = rvtemp0[gz=temp at asn]
+LET rvdepth0 = ZREVERSE(depth)
+LET/D=levitus_3d_subset rvdepth  = rvdepth0[gz=temp at asn]
+! **** NOTE: THERE'S A SUBTLE MISBEHAVIOR IN AUX REGRID SHOWN IN THIS COMMENTED
+! OUT LINE BUT WILL RARELY OCCUR AND EASILY WORKED AROUND
+!LET rvtempzax = rvtemp[gz(rvdepth)=zax]  ! zlims aren't filled in if not given
+LET rvtempzax = rvtemp[gz(rvdepth)=zax,z=100:500]
+LIST/PREC=7 rvtempzax - tempz
+             VARIABLE : RVTEMPZAX - TEMPZ
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+               120.5E     121.5E   
+                 1          2
+ ---- K:1 Z:   100
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ ---- K:2 Z:   200
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ ---- K:3 Z:   300
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ ---- K:4 Z:   400
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ ---- K:5 Z:   500
+ 48.5S / 2:  0.0000000  0.0000000
+ 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
+ normal    T
+ normal    E
+ normal    F
+ 
+! deliberate execution errors:
+LET disordered_depth1 = IF K EQ 3 THEN DEPTH[K=1] ELSE DEPTH
+LET disordered_tempz1 = temp[gz(disordered_depth1)=zax]
+LET disordered_depth2 = IF K EQ 3 THEN DEPTH[K=5] ELSE DEPTH
+LET disordered_tempz2 = temp[gz(disordered_depth2)=zax]
+SET MODE ignore
+LIST disordered_tempz1
+             VARIABLE : TEMP[GZ(DISORDERED_DEPTH1)=ZAX]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (METERS))
+             120.5E 121.5E 
+               1      2
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.335  7.436
+ 49.5S / 1:  6.462  6.572
+ ---- K:2 Z:   200
+ 48.5S / 2:  6.961  7.073
+ 49.5S / 1:  6.026  6.150
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.457  6.637
+ 49.5S / 1:  5.445  5.665
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.182  6.377
+ 49.5S / 1:  5.187  5.410
+ ---- K:5 Z:   500
+ 48.5S / 2:  5.835  6.045
+ 49.5S / 1:  4.879  5.102
+LIST disordered_tempz2
+             VARIABLE : TEMP[GZ(DISORDERED_DEPTH2)=ZAX]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (METERS))
+             120.5E 121.5E 
+               1      2
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.335  7.436
+ 49.5S / 1:  6.462  6.572
+ ---- K:2 Z:   200
+ 48.5S / 2:  6.961  7.073
+ 49.5S / 1:  6.026  6.150
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.457  6.637
+ 49.5S / 1:  5.445  5.665
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.182  6.377
+ 49.5S / 1:  5.187  5.410
+ ---- K:5 Z:   500
+ 48.5S / 2:  5.835  6.045
+ 49.5S / 1:  4.879  5.102
+SET MODE/last ignore
+ 
+! test VTREE with a complex auxiliary variable definitions
+VTREE
+   in default dataset levitus_3d_subset
+   RVTEMPZAX = RVTEMP[GZ(RVDEPTH)=ZAX,Z=100:500]
+     RVTEMP = RVTEMP0[GZ=TEMP at ASN]
+       RVDEPTH = RVDEPTH0[GZ=TEMP at ASN]
+         RVDEPTH0 = ZREVERSE(DEPTH)
+           DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+   DISORDERED_TEMPZ2 = TEMP[GZ(DISORDERED_DEPTH2)=ZAX]
+       DISORDERED_DEPTH2 = IF K EQ 3 THEN DEPTH[K=5] ELSE DEPTH
+         DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+   DISORDERED_TEMPZ1 = TEMP[GZ(DISORDERED_DEPTH1)=ZAX]
+       DISORDERED_DEPTH1 = IF K EQ 3 THEN DEPTH[K=1] ELSE DEPTH
+         DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+   TEMPZ = TEMP[GZ(DEPTH)=ZPTS]
+       regrid to ZPTS = Z[Z=100:500:100]
+       DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+   TEMPZAX = TEMP[GZ(DEPTH)=ZAX]
+       DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+   TEMPZ_1PT = TEMP[GZ(DEPTH)=6]
+   TEMPZ_ALT = TEMP[GZ(DEPTH)=2:10:2]
+   A = TEMP
+ 
+! 6-dimensional regridding
+ 
+! 6d temperature and 3d depth field (depth unchanging in time, ensemble and forecast)
+LET temp6d = temp/100 + 1*L[L=1:2] + 10*_M[M=1:2] + 100*_N[N=1:2]
+!list/k=7:12/PREC=7 temp6d
+LET tempz6d = temp6d[gz(depth)=zpts]
+!LIST/PREC=7 tempz6d
+! compare pre- and post- regrid at a fixed depth
+stat/z=100 temp6d-tempz6d
+ 
+             TEMP6D-TEMPZ6D
+             LONGITUDE: 120E to 122E
+             LATITUDE: 50S to 48S
+             DEPTH (m): 100
+             T: 0.5 to 2.5
+             E: 0.5 to 2.5
+             F: 0.5 to 2.5
+             DATA SET: ./levitus_3d_subset.nc
+ 
+ Total # of data points: 32 (2*2*1*2*2*2)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+ Standard deviation: 0
+stat/z=400 temp6d-tempz6d
+ 
+             TEMP6D-TEMPZ6D
+             LONGITUDE: 120E to 122E
+             LATITUDE: 50S to 48S
+             DEPTH (m): 400
+             T: 0.5 to 2.5
+             E: 0.5 to 2.5
+             F: 0.5 to 2.5
+             DATA SET: ./levitus_3d_subset.nc
+ 
+ Total # of data points: 32 (2*2*1*2*2*2)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+ Standard deviation: 0
+ 
+! 6d temperature and 6d depth field
+! hold temperature constant over time, have depths change
+! note that for N=2 depths of less than 100 are no longer in the data hence missing values at Z=100
+LET temp6d_const = temp + 0*L[L=1:2] + 0*_M[M=1:2] + 0*_N[N=1:2]     ! constant in T,E,F
+LET depth6d = depth + 10*(L[L=1:2]-1) + 50*(_M[M=1:2]-1) + 100*(_N[N=1:2]-1)
+LET tempz6d_tDep = temp6d_const[gz(depth6d)=zpts]
+LIST/PREC=7 tempz6d_tDep
+             VARIABLE : TEMP6D_CONST[GZ(DEPTH6D)=ZPTS]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 by 2 by 2 by 2 points (LONGITUDE-LATITUDE-Z-T-E-F)
+               120.5E    121.5E  
+                 1         2
+ ---- N:1 F:   1
+ ---- M:1 E:   1
+ ---- L:1 T:   1
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.334999  7.436001
+ 49.5S / 1:  6.462000  6.572001
+ ---- K:2 Z:   200
+ 48.5S / 2:  6.961000  7.073000
+ 49.5S / 1:  6.025999  6.150000
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.457001  6.636999
+ 49.5S / 1:  5.445000  5.665000
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.181999  6.377001
+ 49.5S / 1:  5.187000  5.410000
+ ---- K:5 Z:   500
+ 48.5S / 2:  5.835500  6.045001
+ 49.5S / 1:  4.879000  5.102500
+ ---- L:2 T:   2
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.429800  7.528001
+ 49.5S / 1:  6.577600  6.682400
+ ---- K:2 Z:   200
+ 48.5S / 2:  7.043200  7.151200
+ 49.5S / 1:  6.113999  6.234800
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.507401  6.680599
+ 49.5S / 1:  5.503100  5.713500
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.209499  6.403001
+ 49.5S / 1:  5.212800  5.435500
+ ---- K:5 Z:   500
+ 48.5S / 2:  5.870150  6.078201
+ 49.5S / 1:  4.909800  5.133250
+ ---- M:2 E:   2
+ ---- L:1 T:   1
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.410999  7.584000
+ 49.5S / 1:  6.624001  6.785000
+ ---- K:2 Z:   200
+ 48.5S / 2:  7.372000  7.464001
+ 49.5S / 1:  6.466000  6.573999
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.709001  6.855000
+ 49.5S / 1:  5.735499  5.907500
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.319500  6.507000
+ 49.5S / 1:  5.316000  5.537500
+ ---- K:5 Z:   500
+ 48.5S / 2:  6.008749  6.211001
+ 49.5S / 1:  5.033000  5.256250
+ ---- L:2 T:   2
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.502500  7.686500
+ 49.5S / 1:  6.682500  6.854000
+ ---- K:2 Z:   200
+ 48.5S / 2:  7.364600  7.458401
+ 49.5S / 1:  6.465200  6.573600
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.759401  6.898600
+ 49.5S / 1:  5.793599  5.956000
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.347000  6.533000
+ 49.5S / 1:  5.341800  5.563000
+ ---- K:5 Z:   500
+ 48.5S / 2:  6.043399  6.244201
+ 49.5S / 1:  5.063800  5.287000
+ ---- N:2 F:   2
+ ---- M:1 E:   1
+ ---- L:1 T:   1
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.725000  7.917999
+ 49.5S / 1:  6.827000  7.007000
+ ---- K:2 Z:   200
+ 48.5S / 2:  7.334999  7.436001
+ 49.5S / 1:  6.462000  6.572001
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.961000  7.073000
+ 49.5S / 1:  6.025999  6.150000
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.457001  6.636999
+ 49.5S / 1:  5.445000  5.665000
+ ---- K:5 Z:   500
+ 48.5S / 2:  6.181999  6.377001
+ 49.5S / 1:  5.187000  5.410000
+ ---- L:2 T:   2
+ ---- K:1 Z:   100
+ 48.5S / 2:      ....      ....
+ 49.5S / 1:      ....      ....
+ ---- K:2 Z:   200
+ 48.5S / 2:  7.429800  7.528001
+ 49.5S / 1:  6.577600  6.682400
+ ---- K:3 Z:   300
+ 48.5S / 2:  7.043200  7.151200
+ 49.5S / 1:  6.113999  6.234800
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.507401  6.680599
+ 49.5S / 1:  5.503100  5.713500
+ ---- K:5 Z:   500
+ 48.5S / 2:  6.209499  6.403001
+ 49.5S / 1:  5.212800  5.435500
+ ---- M:2 E:   2
+ ---- L:1 T:   1
+ ---- K:1 Z:   100
+ 48.5S / 2:      ....      ....
+ 49.5S / 1:      ....      ....
+ ---- K:2 Z:   200
+ 48.5S / 2:  7.410999  7.584000
+ 49.5S / 1:  6.624001  6.785000
+ ---- K:3 Z:   300
+ 48.5S / 2:  7.372000  7.464001
+ 49.5S / 1:  6.466000  6.573999
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.709001  6.855000
+ 49.5S / 1:  5.735499  5.907500
+ ---- K:5 Z:   500
+ 48.5S / 2:  6.319500  6.507000
+ 49.5S / 1:  5.316000  5.537500
+ ---- L:2 T:   2
+ ---- K:1 Z:   100
+ 48.5S / 2:      ....      ....
+ 49.5S / 1:      ....      ....
+ ---- K:2 Z:   200
+ 48.5S / 2:  7.502500  7.686500
+ 49.5S / 1:  6.682500  6.854000
+ ---- K:3 Z:   300
+ 48.5S / 2:  7.364600  7.458401
+ 49.5S / 1:  6.465200  6.573600
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.759401  6.898600
+ 49.5S / 1:  5.793599  5.956000
+ ---- K:5 Z:   500
+ 48.5S / 2:  6.347000  6.533000
+ 49.5S / 1:  5.341800  5.563000
+LIST/PREC=7/k=7:8 temp6d_const, depth6d  ! reference values at Z=100, 200, 300 for visual comparison
+             DATA SET: ./levitus_3d_subset.nc
+             LONGITUDE: 120E to 122E
+             LATITUDE: 50S to 48S
+             DEPTH (m): 87.5 to 175
+             T: 0.5 to 2.5
+             E: 0.5 to 2.5
+             F: 0.5 to 2.5
+ Column  1: TEMP6D_CONST is TEMP + 0*L[L=1:2] + 0*_M[M=1:2] + 0*_N[N=1:2]
+ Column  2: DEPTH6D is DEPTH + 10*(L[L=1:2]-1) + 50*(_M[M=1:2]-1) + 100*(_N[N=1:2]-1)
+         TEMP6D_CONS   DEPTH6D
+ ---- N:1 F:   1
+ ---- M:1 E:   1
+ ---- L:1 T:   1
+ ---- K:7 Z:   100
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.462000  100.0000
+121.5E / 2:  6.572001  100.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.334999  100.0000
+121.5E / 2:  7.436001  100.0000
+ ---- K:8 Z:   150
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.466000  150.0000
+121.5E / 2:  6.573999  150.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.372000  150.0000
+121.5E / 2:  7.464001  150.0000
+ ---- L:2 T:   2
+ ---- K:7 Z:   100
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.462000  110.0000
+121.5E / 2:  6.572001  110.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.334999  110.0000
+121.5E / 2:  7.436001  110.0000
+ ---- K:8 Z:   150
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.466000  160.0000
+121.5E / 2:  6.573999  160.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.372000  160.0000
+121.5E / 2:  7.464001  160.0000
+ ---- M:2 E:   2
+ ---- L:1 T:   1
+ ---- K:7 Z:   100
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.462000  150.0000
+121.5E / 2:  6.572001  150.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.334999  150.0000
+121.5E / 2:  7.436001  150.0000
+ ---- K:8 Z:   150
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.466000  200.0000
+121.5E / 2:  6.573999  200.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.372000  200.0000
+121.5E / 2:  7.464001  200.0000
+ ---- L:2 T:   2
+ ---- K:7 Z:   100
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.462000  160.0000
+121.5E / 2:  6.572001  160.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.334999  160.0000
+121.5E / 2:  7.436001  160.0000
+ ---- K:8 Z:   150
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.466000  210.0000
+121.5E / 2:  6.573999  210.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.372000  210.0000
+121.5E / 2:  7.464001  210.0000
+ ---- N:2 F:   2
+ ---- M:1 E:   1
+ ---- L:1 T:   1
+ ---- K:7 Z:   100
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.462000  200.0000
+121.5E / 2:  6.572001  200.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.334999  200.0000
+121.5E / 2:  7.436001  200.0000
+ ---- K:8 Z:   150
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.466000  250.0000
+121.5E / 2:  6.573999  250.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.372000  250.0000
+121.5E / 2:  7.464001  250.0000
+ ---- L:2 T:   2
+ ---- K:7 Z:   100
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.462000  210.0000
+121.5E / 2:  6.572001  210.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.334999  210.0000
+121.5E / 2:  7.436001  210.0000
+ ---- K:8 Z:   150
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.466000  260.0000
+121.5E / 2:  6.573999  260.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.372000  260.0000
+121.5E / 2:  7.464001  260.0000
+ ---- M:2 E:   2
+ ---- L:1 T:   1
+ ---- K:7 Z:   100
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.462000  250.0000
+121.5E / 2:  6.572001  250.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.334999  250.0000
+121.5E / 2:  7.436001  250.0000
+ ---- K:8 Z:   150
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.466000  300.0000
+121.5E / 2:  6.573999  300.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.372000  300.0000
+121.5E / 2:  7.464001  300.0000
+ ---- L:2 T:   2
+ ---- K:7 Z:   100
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.462000  260.0000
+121.5E / 2:  6.572001  260.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.334999  260.0000
+121.5E / 2:  7.436001  260.0000
+ ---- K:8 Z:   150
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.466000  310.0000
+121.5E / 2:  6.573999  310.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.372000  310.0000
+121.5E / 2:  7.464001  310.0000
+! ... some spot checks
+LIST/PREC=7/l=1/m=1/n=1 tempz6d_tDep[Z=100] - temp6d_const[k=7]
+             VARIABLE : TEMPZ6D_TDEP[Z=100] - TEMP6D_CONST[K=7]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z        : 100
+             T        : 1
+             E        : 1
+             F        : 1
+               120.5E     121.5E   
+                 1          2
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+LIST/PREC=7/l=1/m=2/n=1 tempz6d_tDep[Z=200] - temp6d_const[k=8]
+             VARIABLE : TEMPZ6D_TDEP[Z=200] - TEMP6D_CONST[K=8]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z        : 200
+             T        : 1
+             E        : 2
+             F        : 1
+               120.5E     121.5E   
+                 1          2
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+LIST/PREC=7/l=1/m=2/n=2 tempz6d_tDep[Z=300] - temp6d_const[k=8]
+             VARIABLE : TEMPZ6D_TDEP[Z=300] - TEMP6D_CONST[K=8]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z        : 300
+             T        : 1
+             E        : 2
+             F        : 2
+               120.5E     121.5E   
+                 1          2
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ 
+! ** deliberate error **
+! 6d temperature and 3d depth field (depth unchanging in time, ensemble and forecast)
+! Ferret does not permit auxiliary variable to have an axis not found on the source variable
+! (to avoid having to consider auxiliary variables during grid-getting ... possible to do)
+SET MODE IGNORE
+LET tempz6d_unmatch = temp[gz(depth6d)=zpts]
+LIST/PREC=7 tempz6d_unmatch
+SET MODE/LAST IGNORE
+ 
+! ********************************
+! test the @plave regridding -- ave defined from area under piecewise curve
+ 
+! first compare to our simplest of linear interpolation regrids, tempz
+! note that results will differ due to non-linearity
+! at Z=500 on the output they become identical because the Z=500 grid box
+! extends 450:550 with source points at Z=400 and Z=600 -- pure linear
+! LET tempz = temp[gz(depth)=zpts]
+LET tempzave = temp[gz(depth)=zpts at plave]
+LIST tempzave - tempz
+             VARIABLE : TEMPZAVE - TEMPZ
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+              120.5E   121.5E  
+                1        2
+ ---- K:1 Z:   100
+ 48.5S / 2:  0.07800  0.08300
+ 49.5S / 1:  0.09350  0.09612
+ ---- K:2 Z:   200
+ 48.5S / 2:  0.03975  0.04325
+ 49.5S / 1:  0.03738  0.04537
+ ---- K:3 Z:   300
+ 48.5S / 2:  0.02862  0.02200
+ 49.5S / 1:  0.04037  0.02875
+ ---- K:4 Z:   400
+ 48.5S / 2: -0.00894 -0.00900
+ 49.5S / 1: -0.00625 -0.00656
+ ---- K:5 Z:   500
+ 48.5S / 2:  0.00000  0.00000
+ 49.5S / 1:  0.00000  0.00000
+ 
+! list a little.  Note the regridding transform label
+LIST/PREC=7 temp[gz(depth)=zpts at plave,k=1]
+             VARIABLE : TEMPERATURE (DEG C)
+                        regrid: 100 delta on Z at PLAVE using DEPTH field
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z        : 50 to 150
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2:  7.413000  7.519001
+ 49.5S / 1:  6.555500  6.668125
+ 
+! Levitus has points at 50, 75, 100, 150, 200
+! define target axis with edges at 50:75 (k=1),  75:100 (k=2)
+!                                 100:125(k=3), 125:150 (k=4), 150:175(k=5)
+define axis/edges/z=50:175:25/units=m zpt2     ! point at 125 is mid-way
+ 
+! raw source data -- artifically designed for easy mental calcs
+LET myvals = temp*0+100*(i-100)+10*(j-40)+k
+list/PREC=7 myvals[z=50:300]
+             VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+K
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 6 points (LONGITUDE-LATITUDE-DEPTH (m))
+               120.5E    121.5E  
+                 1         2
+ ---- K:5 Z:   50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:6 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:7 Z:   100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:8 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:9 Z:   200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+ ---- K:10 Z:   300
+ 48.5S / 2: -10270.00 -10170.00
+ 49.5S / 1: -10280.00 -10180.00
+ 
+! linear interpolation regridding
+LET mzlin2 = myvals[gz(depth)=zpt2]
+LIST/PREC=7 mzlin2
+             VARIABLE : MYVALS[GZ(DEPTH)=ZPT2]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   62.5
+ 48.5S / 2: -10274.50 -10174.50
+ 49.5S / 1: -10284.50 -10184.50
+ ---- K:2 Z:   87.5
+ 48.5S / 2: -10273.50 -10173.50
+ 49.5S / 1: -10283.50 -10183.50
+ ---- K:3 Z:   112.5
+ 48.5S / 2: -10272.75 -10172.75
+ 49.5S / 1: -10282.75 -10182.75
+ ---- K:4 Z:   137.5
+ 48.5S / 2: -10272.25 -10172.25
+ 49.5S / 1: -10282.25 -10182.25
+ ---- K:5 Z:   162.5
+ 48.5S / 2: -10271.75 -10171.75
+ 49.5S / 1: -10281.75 -10181.75
+ 
+! average-regridding
+LET mzave2 = myvals[gz(depth)=zpt2 at plave]
+ 
+! cases:
+! 1) both edges lie on source points
+LIST/PREC=7 mzave2[k=2]   ! vals at 75, 100 ==> 75:100
+             VARIABLE : MYVALS[GZ(DEPTH)=ZPT2 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z (M)    : 87.5
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10273.50 -10173.50
+ 49.5S / 1: -10283.50 -10183.50
+ 
+! 2) lower edge only lies on source point
+LIST/PREC=7 mzave2[k=3]   ! vals at 100, 150 ==> 100:125
+             VARIABLE : MYVALS[GZ(DEPTH)=ZPT2 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z (M)    : 112.5
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10272.75 -10172.75
+ 49.5S / 1: -10282.75 -10182.75
+ 
+! 3) upper edge only lies on source point
+LIST/PREC=7 mzave2[k=4]   ! vals at 100, 150 ==> 125:150
+             VARIABLE : MYVALS[GZ(DEPTH)=ZPT2 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z (M)    : 137.5
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10272.25 -10172.25
+ 49.5S / 1: -10282.25 -10182.25
+ 
+! 4) full range
+! myvals2 is linear in k, so @plave and @lin get identical results
+LIST/PREC=7 mzave2
+             VARIABLE : MYVALS[GZ(DEPTH)=ZPT2 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   62.5
+ 48.5S / 2: -10274.50 -10174.50
+ 49.5S / 1: -10284.50 -10184.50
+ ---- K:2 Z:   87.5
+ 48.5S / 2: -10273.50 -10173.50
+ 49.5S / 1: -10283.50 -10183.50
+ ---- K:3 Z:   112.5
+ 48.5S / 2: -10272.75 -10172.75
+ 49.5S / 1: -10282.75 -10182.75
+ ---- K:4 Z:   137.5
+ 48.5S / 2: -10272.25 -10172.25
+ 49.5S / 1: -10282.25 -10182.25
+ ---- K:5 Z:   162.5
+ 48.5S / 2: -10271.75 -10171.75
+ 49.5S / 1: -10281.75 -10181.75
+LIST/PREC=7 mzave2 - mzlin2
+             VARIABLE : MZAVE2 - MZLIN2
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E     121.5E   
+                 1          2
+ ---- K:1 Z:   62.5
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ ---- K:2 Z:   87.5
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ ---- K:3 Z:   112.5
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ ---- K:4 Z:   137.5
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ ---- K:5 Z:   162.5
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ 
+! 5) divide a single source range into multiple destination cells
+! a range of 50 divided into 5 cells will have means of x.1,x.3,x.5, x.7, x.9
+define axis/edges/z=150:200:10/units=m zpt3
+LET mzave3 = myvals[gz(depth)=zpt3 at plave]
+LIST/PREC=7 mzave3
+             VARIABLE : MYVALS[GZ(DEPTH)=ZPT3 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   155
+ 48.5S / 2: -10271.90 -10171.90
+ 49.5S / 1: -10281.90 -10181.90
+ ---- K:2 Z:   165
+ 48.5S / 2: -10271.70 -10171.70
+ 49.5S / 1: -10281.70 -10181.70
+ ---- K:3 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:4 Z:   185
+ 48.5S / 2: -10271.30 -10171.30
+ 49.5S / 1: -10281.30 -10181.30
+ ---- K:5 Z:   195
+ 48.5S / 2: -10271.10 -10171.10
+ 49.5S / 1: -10281.10 -10181.10
+ 
+! 6) derive a single destination cell from many source points
+! by manual calculation the correct answers will be n.333333
+define axis/edges/z=50:200:150/units=m zpt4
+LET mzave4 = myvals[gz(depth)=zpt4 at plave]
+LIST/PREC=7 mzave4
+             VARIABLE : MYVALS[GZ(DEPTH)=ZPT4 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z (M)    : 125
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10272.67 -10172.67
+ 49.5S / 1: -10282.67 -10182.67
+ 
+! 7) derive a single destination cell from many source points
+! by manual calculation the correct answers will be n.8125
+define axis/edges/z=50:250:200/units=m zpt5
+LET mzave5 = myvals[gz(depth)=zpt5 at plave]
+LIST/PREC=7 mzave5
+             VARIABLE : MYVALS[GZ(DEPTH)=ZPT5 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z (M)    : 150
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10272.19 -10172.19
+ 49.5S / 1: -10282.19 -10182.19
+ 
+! 8) test the short-hand notation var[gz(depth)=0:100 at ave] as an implicit
+! aux var regrid via piecewice linear averaging
+! To confirm correct results we create a piecewize linear function that
+! has constant slope.  Averaging such a function over a symmetric region
+! around a point on the source data should return the value at the point
+LET myvals_z = TEMP*0+100*(I-100)+10*(J-40)+Z
+list/PREC=7 myvals_z[z=200]
+             VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             DEPTH (m): 200
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10080.00  -9980.00
+ 49.5S / 1: -10090.00  -9990.00
+list/PREC=7 myvals_z[gz(depth)=190:210 at ave]
+             VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+                        regrid: on Z at PLAVE using DEPTH field
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z        : 190 to 210
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10080.00  -9980.00
+ 49.5S / 1: -10090.00  -9990.00
+list/PREC=7 myvals_z[gz(depth)=150:250 at ave]
+             VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+                        regrid: on Z at PLAVE using DEPTH field
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z        : 150 to 250
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10080.00  -9980.00
+ 49.5S / 1: -10090.00  -9990.00
+ 
+! 8a) do same regrid using the shorhand semi-automated notation
+SET VAR/LAYERZ=depth myvals_z
+list/PREC=7 myvals_z[z=190:210 at ave,layerz]  ! lo:hi at ave notation WILL BE CHANGED
+             VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             DEPTH (m): 190 to 210 (pc wise lin avgd using DEPTH)
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10080.00  -9980.00
+ 49.5S / 1: -10090.00  -9990.00
+list/PREC=7 myvals_z[z=150:250 at ave,layerz]  ! WILL BE CHANGED
+             VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             DEPTH (m): 150 to 250 (pc wise lin avgd using DEPTH)
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10080.00  -9980.00
+ 49.5S / 1: -10090.00  -9990.00
+ 
+! test missing values in the depth array
+! cases:
+! 1) missing values at start of aux array
+define axis/z=25:200:25/units=m zpt6
+LET depmis = IF (I NE 102 OR k GT 6) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+ 
+! 2) missing values at end of aux array
+LET depmis = IF (I NE 102 OR k LT 9) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+ 
+! 3) missing values in midst of aux array -- stops processing beyond
+LET depmis = IF (I NE 102 OR k EQ 7 OR K EQ 8) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+ 
+! 4) singleton non-missing values in a line of the aux array
+LET depmis = IF (I NE 102 OR K EQ 8) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+ 
+! 5) there are only missing values in a line of the aux array
+LET depmis = IF (I NE 102) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+ 
+! 6) two separated singletons -- only the first should be found
+LET depmis = IF (I NE 102 OR K EQ 6 OR K EQ 8) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+list depmis[z=25:200]      ! to illustrate why the result is as it is
+             VARIABLE : IF (I NE 102 OR K EQ 6 OR K EQ 8) THEN DEPTH
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 6 points (LONGITUDE-LATITUDE-DEPTH (m))
+             120.5E 121.5E 
+               1      2
+ ---- K:4 Z:   30
+ 48.5S / 2:   30.0   30.0
+ 49.5S / 1:   30.0   30.0
+ ---- K:5 Z:   50
+ 48.5S / 2:   50.0   50.0
+ 49.5S / 1:   50.0   50.0
+ ---- K:6 Z:   75
+ 48.5S / 2:   75.0   75.0
+ 49.5S / 1:   75.0   75.0
+ ---- K:7 Z:   100
+ 48.5S / 2:  100.0  100.0
+ 49.5S / 1:  100.0  100.0
+ ---- K:8 Z:   150
+ 48.5S / 2:  150.0  150.0
+ 49.5S / 1:  150.0  150.0
+ ---- K:9 Z:   200
+ 48.5S / 2:  200.0  200.0
+ 49.5S / 1:  200.0  200.0
+ 
+! ********
+! reversed-auxiliary variable used in regridding
+! (see definitions made earlier)
+! Note that the regridded result only matches the original data in regions
+! where the underlying piecewise function remains strictly linear with
+! unchanging slope/intercept.  Since the Z=500 point has cell limits 450:550
+! and the underlying Levitus Z points (used in the definition of "depth") are
+! at 400 and 600, we get the identical result from @PLAVE and @LIN
+LET rvtempzaxave = rvtemp[gz(rvdepth)=zax at plave,z=100:500]
+LIST/PREC=7 rvtempzaxave - tempz
+             VARIABLE : RVTEMPZAXAVE - TEMPZ
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+                120.5E      121.5E   
+                  1           2
+ ---- K:1 Z:   100
+ 48.5S / 2:  0.07800055  0.08299971
+ 49.5S / 1:  0.09349990  0.09612441
+ ---- K:2 Z:   200
+ 48.5S / 2:  0.03974986  0.04325008
+ 49.5S / 1:  0.03737521  0.04537499
+ ---- K:3 Z:   300
+ 48.5S / 2:  0.02862477  0.02200031
+ 49.5S / 1:  0.04037499  0.02874994
+ ---- K:4 Z:   400
+ 48.5S / 2: -0.00893724 -0.00900024
+ 49.5S / 1: -0.00625008 -0.00656247
+ ---- K:5 Z:   500
+ 48.5S / 2:  0.00000000  0.00000000
+ 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
+ normal    T
+ normal    E
+ normal    F
+ 
+       K     Z                   ZBOX      ZBOXLO
+       1>  100                   100        50
+       2>  200                   100        150
+       3>  300                   100        250
+       4>  400                   100        350
+       5>  500                   100        450
+ 
+! 5/15 -- added tests for non-monotonic auxiliary variable
+!test_non_monotonic_aux_z.jnl
+ 
+cancel region
+define axis/x=161e:165e:1 xax
+define axis/z=100:600:100 zax
+ 
+let temp = 0.0001*Z[gz=zax]^2 + 0*x[gx=xax]
+list temp
+             VARIABLE : 0.0001*Z[GZ=ZAX]^2 + 0*X[GX=XAX]
+             SUBSET   : 5 by 6 points (LONGITUDE-Z)
+             161E   162E   163E   164E   165E   
+               1      2      3      4      5
+ 100   / 1:   1.00   1.00   1.00   1.00   1.00
+ 200   / 2:   4.00   4.00   4.00   4.00   4.00
+ 300   / 3:   9.00   9.00   9.00   9.00   9.00
+ 400   / 4:  16.00  16.00  16.00  16.00  16.00
+ 500   / 5:  25.00  25.00  25.00  25.00  25.00
+ 600   / 6:  36.00  36.00  36.00  36.00  36.00
+ 
+! disordered points at beginning, middle and end, missing at beginning
+let density0 = 0*i[gx=xax]*k[gz=zax] + z/10
+let density1 = if i eq 2 and k eq 4 then 20  else density0
+let density2 = if i eq 3 and k eq 1 then 20  else density1
+let density3 = if i eq 3 and k eq 2 then 10  else density2
+let density4 = if i eq 4 and k eq 6 then 30  else density3
+let density  = if i eq 5 and k le 2 then 1/0 else density4  ! missing at k=1:3
+list density
+             VARIABLE : IF I EQ 5 AND K LE 2 THEN 1/0 ELSE DENSITY4
+             SUBSET   : 5 by 6 points (LONGITUDE-Z)
+             161E   162E   163E   164E   165E   
+               1      2      3      4      5
+ 100   / 1:  10.00  10.00  20.00  10.00   ....
+ 200   / 2:  20.00  20.00  10.00  20.00   ....
+ 300   / 3:  30.00  30.00  30.00  30.00  30.00
+ 400   / 4:  40.00  20.00  40.00  40.00  40.00
+ 500   / 5:  50.00  50.00  50.00  50.00  50.00
+ 600   / 6:  60.00  60.00  60.00  30.00  60.00
+ 
+! Z=200-300 on the density axis are double valued at I=2
+list temp[gz(density)=5:65:2.5]
+             VARIABLE : 0.0001*Z[GZ=ZAX]^2 + 0*X[GX=XAX]
+                        regrid: 2.5 delta on Z at LIN using DENSITY field
+             SUBSET   : 5 by 25 points (LONGITUDE-Z)
+             161E   162E   163E   164E   165E   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 7.5  /  2:   ....   ....   ....   ....   ....
+ 10   /  3:   1.00   1.00   4.00   1.00   ....
+ 12.5 /  4:   1.75   1.75   ....   1.75   ....
+ 15   /  5:   2.50   2.50   ....   2.50   ....
+ 17.5 /  6:   3.25   3.25   ....   3.25   ....
+ 20   /  7:   4.00   ....   ....   4.00   ....
+ 22.5 /  8:   5.25   ....   7.13   5.25   ....
+ 25   /  9:   6.50   ....   7.75   6.50   ....
+ 27.5 / 10:   7.75   ....   8.38   7.75   ....
+ 30   / 11:   9.00   ....   9.00   ....   9.00
+ 32.5 / 12:  10.75  19.75  10.75   ....  10.75
+ 35   / 13:  12.50  20.50  12.50   ....  12.50
+ 37.5 / 14:  14.25  21.25  14.25   ....  14.25
+ 40   / 15:  16.00  22.00  16.00   ....  16.00
+ 42.5 / 16:  18.25  22.75  18.25   ....  18.25
+ 45   / 17:  20.50  23.50  20.50   ....  20.50
+ 47.5 / 18:  22.75  24.25  22.75   ....  22.75
+ 50   / 19:  25.00  25.00  25.00  25.00  25.00
+ 52.5 / 20:  27.75  27.75  27.75   ....  27.75
+ 55   / 21:  30.50  30.50  30.50   ....  30.50
+ 57.5 / 22:  33.25  33.25  33.25   ....  33.25
+ 60   / 23:  36.00  36.00  36.00   ....  36.00
+ 62.5 / 24:   ....   ....   ....   ....   ....
+ 65   / 25:   ....   ....   ....   ....   ....
+ 
+ 
+!************************************
+! reverse-ordering of same field
+let btemp = 0.0001*(700-Z[gz=zax])^2  + 0*x[gx=xax]
+list btemp
+             VARIABLE : 0.0001*(700-Z[GZ=ZAX])^2  + 0*X[GX=XAX]
+             SUBSET   : 5 by 6 points (LONGITUDE-Z)
+             161E   162E   163E   164E   165E   
+               1      2      3      4      5
+ 100   / 1:  36.00  36.00  36.00  36.00  36.00
+ 200   / 2:  25.00  25.00  25.00  25.00  25.00
+ 300   / 3:  16.00  16.00  16.00  16.00  16.00
+ 400   / 4:   9.00   9.00   9.00   9.00   9.00
+ 500   / 5:   4.00   4.00   4.00   4.00   4.00
+ 600   / 6:   1.00   1.00   1.00   1.00   1.00
+ 
+let bdensity0 = 0*i[gx=xax]*k[gz=zax] + (700-z)/10
+let bdensity1 = if i eq 2 and (7-k) eq 4 then 20  else bdensity0
+let bdensity2 = if i eq 3 and (7-k) eq 1 then 20  else bdensity1
+let bdensity3 = if i eq 3 and (7-k) eq 2 then 10  else bdensity2
+let bdensity4 = if i eq 4 and (7-k) eq 6 then 30  else bdensity3
+let bdensity  = if i eq 5 and (7-k) le 2 then 1/0 else bdensity4 !missing k=1:3
+ 
+SAY "************ TBD: STILL NEED TO MAKE SURE UNITS ARE WORKING ********"
+************ TBD: STILL NEED TO MAKE SURE UNITS ARE WORKING ********
+SET VAR/units="kg/m^3" density
+ 
+list bdensity
+             VARIABLE : IF I EQ 5 AND (7-K) LE 2 THEN 1/0 ELSE BDENSITY4
+             SUBSET   : 5 by 6 points (LONGITUDE-Z)
+             161E   162E   163E   164E   165E   
+               1      2      3      4      5
+ 100   / 1:  60.00  60.00  60.00  30.00  60.00
+ 200   / 2:  50.00  50.00  50.00  50.00  50.00
+ 300   / 3:  40.00  20.00  40.00  40.00  40.00
+ 400   / 4:  30.00  30.00  30.00  30.00  30.00
+ 500   / 5:  20.00  20.00  10.00  20.00   ....
+ 600   / 6:  10.00  10.00  20.00  10.00   ....
+ 
+list btemp[gz(bdensity)=5:65:2.5]
+             VARIABLE : 0.0001*(700-Z[GZ=ZAX])^2  + 0*X[GX=XAX]
+                        regrid: 2.5 delta on Z at LIN using BDENSITY field
+             SUBSET   : 5 by 25 points (LONGITUDE-Z)
+             161E   162E   163E   164E   165E   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 7.5  /  2:   ....   ....   ....   ....   ....
+ 10   /  3:   1.00   1.00   4.00   1.00   ....
+ 12.5 /  4:   1.75   1.75   ....   1.75   ....
+ 15   /  5:   2.50   2.50   ....   2.50   ....
+ 17.5 /  6:   3.25   3.25   ....   3.25   ....
+ 20   /  7:   4.00   ....   ....   4.00   ....
+ 22.5 /  8:   5.25   ....   7.13   5.25   ....
+ 25   /  9:   6.50   ....   7.75   6.50   ....
+ 27.5 / 10:   7.75   ....   8.38   7.75   ....
+ 30   / 11:   9.00   ....   9.00   ....   9.00
+ 32.5 / 12:  10.75  19.75  10.75   ....  10.75
+ 35   / 13:  12.50  20.50  12.50   ....  12.50
+ 37.5 / 14:  14.25  21.25  14.25   ....  14.25
+ 40   / 15:  16.00  22.00  16.00   ....  16.00
+ 42.5 / 16:  18.25  22.75  18.25   ....  18.25
+ 45   / 17:  20.50  23.50  20.50   ....  20.50
+ 47.5 / 18:  22.75  24.25  22.75   ....  22.75
+ 50   / 19:  25.00  25.00  25.00  25.00  25.00
+ 52.5 / 20:  27.75  27.75  27.75   ....  27.75
+ 55   / 21:  30.50  30.50  30.50   ....  30.50
+ 57.5 / 22:  33.25  33.25  33.25   ....  33.25
+ 60   / 23:  36.00  36.00  36.00   ....  36.00
+ 62.5 / 24:   ....   ....   ....   ....   ....
+ 65   / 25:   ....   ....   ....   ....   ....
+ 
+!************************************
+! similar analysis using @plave over wider cells
+! compare to reverse-ordered data
+list  temp[gz(density)=5:65:15 at plave]
+             VARIABLE : 0.0001*Z[GZ=ZAX]^2 + 0*X[GX=XAX]
+                        regrid: 15 kg/m^3 on Z at PLAVE using DENSITY field
+             SUBSET   : 5 by 5 points (LONGITUDE-Z (kg/m^3))
+            161E   162E   163E   164E   165E   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+list btemp[gz(bdensity)=5:65:15 at plave]
+             VARIABLE : 0.0001*(700-Z[GZ=ZAX])^2  + 0*X[GX=XAX]
+                        regrid: 15 delta on Z at PLAVE using BDENSITY field
+             SUBSET   : 5 by 5 points (LONGITUDE-Z)
+            161E   162E   163E   164E   165E   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 
+! 6/15
+! test 1D auxiliary axis regirdding on all axes
+ 
+! p for passive axis
+! a for active axis
+ 
+define axis/x=161:165:1 xp
+define axis/y=161:165:1 yp
+define axis/z=161:165:1 zp
+define axis/t=161:165:1 tp
+define axis/e=161:165:1 ep
+define axis/f=161:165:1 fp
+ 
+define axis/x=100:700:100 xa
+define axis/y=100:700:100 ya
+define axis/z=100:700:100 za
+define axis/t=100:700:100 ta
+define axis/e=100:700:100 ea
+define axis/f=100:700:100 fa
+ 
+ 
+GO bn_auxiliary.sub Z,X,F
+
+*****************************
+**********  Z,X,F ***********
+*****************************
+
+! show the underlying fields
+list/order=($pax1)($aax)($REG1) temp
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (X-Z)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:   1.00   1.00   1.00   1.00   1.00
+ 200   / 2:   4.00   4.00   4.00   4.00   4.00
+ 300   / 3:   9.00   9.00   9.00   9.00   9.00
+ 400   / 4:  16.00  16.00  16.00  16.00  16.00
+ 500   / 5:  25.00  25.00  25.00  25.00  25.00
+ 600   / 6:  36.00  36.00  36.00  36.00  36.00
+ 700   / 7:  49.00  49.00  49.00  49.00  49.00
+list/order=($pax1)($aax)($REG1) btemp
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (X-Z)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  49.00  49.00  49.00  49.00  49.00
+ 200   / 2:  36.00  36.00  36.00  36.00  36.00
+ 300   / 3:  25.00  25.00  25.00  25.00  25.00
+ 400   / 4:  16.00  16.00  16.00  16.00  16.00
+ 500   / 5:   9.00   9.00   9.00   9.00   9.00
+ 600   / 6:   4.00   4.00   4.00   4.00   4.00
+ 700   / 7:   1.00   1.00   1.00   1.00   1.00
+list/order=($pax1)($aax)($REG1) density
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 density
+             VARIABLE : IF (_I EQ 5 OR _N EQ 5) AND _K LE 2 THEN 1/0 ELSE DENSITY4
+             SUBSET   : 5 by 7 points (X-Z)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  10.00  10.00  20.00  10.00   ....
+ 200   / 2:  20.00  20.00  10.00  20.00   ....
+ 300   / 3:  30.00  30.00  30.00  30.00  30.00
+ 400   / 4:  40.00  20.00  40.00  40.00  40.00
+ 500   / 5:  50.00  50.00  50.00  50.00  50.00
+ 600   / 6:  60.00  60.00  60.00  30.00  60.00
+ 700   / 7:  70.00  70.00  70.00  70.00  70.00
+list/order=($pax1)($aax)($REG1) bdensity
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 bdensity
+             VARIABLE : IF (_I EQ 5 OR _N EQ 5) AND (8-_K) LE 2 THEN 1/0 ELSE BDENSITY4
+             SUBSET   : 5 by 7 points (X-Z)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  70.00  70.00  70.00  70.00  70.00
+ 200   / 2:  60.00  60.00  60.00  30.00  60.00
+ 300   / 3:  50.00  50.00  50.00  50.00  50.00
+ 400   / 4:  40.00  20.00  40.00  40.00  40.00
+ 500   / 5:  30.00  30.00  30.00  30.00  30.00
+ 600   / 6:  20.00  20.00  10.00  20.00   ....
+ 700   / 7:  10.00  10.00  20.00  10.00   ....
+ 
+! show the regridded fields
+! using interpolation
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:5]  ! passive ax 1
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp[gZ(density)=5:80:5]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on Z at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (X-Z)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:5]  ! passive ax 2
+ !-> list/order=FZ/i=1/j=1 /l=1/m=1 temp[gZ(density)=5:80:5]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on Z at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (F-Z)
+             X        : 161
+             Y        : 161
+             T        : 161
+             E        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:5]  ! backwards pasv ax 1
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=5:80:5]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on Z at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (X-Z)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:5]  ! backwards pasv ax 2
+ !-> list/order=FZ/i=1/j=1 /l=1/m=1 btemp[gZ(bdensity)=5:80:5]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on Z at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (F-Z)
+             X        : 161
+             Y        : 161
+             T        : 161
+             E        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp[gZ(density)=35]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on Z at LIN using DENSITY field
+             SUBSET   : 5 points (X)
+             Z        : 35
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          12.50  20.50  12.50  12.50  12.50
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=35]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on Z at LIN using BDENSITY field
+             SUBSET   : 5 points (X)
+             Z        : 35
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          12.50  20.50  12.50  12.50  12.50
+ 
+ 
+! using piecewise linear averaging
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:15 at plave]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp[gZ(density)=5:80:15 at plave]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on Z at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (X-Z)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:15 at plave]
+ !-> list/order=FZ/i=1/j=1 /l=1/m=1 temp[gZ(density)=5:80:15 at plave]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on Z at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (F-Z)
+             X        : 161
+             Y        : 161
+             T        : 161
+             E        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:15 at plave]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=5:80:15 at plave]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on Z at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (X-Z)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:15 at plave]
+ !-> list/order=FZ/i=1/j=1 /l=1/m=1 btemp[gZ(bdensity)=5:80:15 at plave]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on Z at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (F-Z)
+             X        : 161
+             Y        : 161
+             T        : 161
+             E        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35:55 at plave]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp[gZ(density)=35:55 at plave]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on Z at PLAVE using DENSITY field
+             SUBSET   : 5 points (X)
+             Z        : 35 to 55
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          20.75  24.00  20.75   ....  20.75
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35:55 at plave]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=35:55 at plave]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on Z at PLAVE using BDENSITY field
+             SUBSET   : 5 points (X)
+             Z        : 35 to 55
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          20.75  24.00  20.75   ....  20.75
+ 
+!*********************************************************************************
+!*********************************************************************************
+EXIT/SCRIPT
+GO bn_auxiliary.sub Z,Y,E
+
+*****************************
+**********  Z,Y,E ***********
+*****************************
+
+! show the underlying fields
+list/order=($pax1)($aax)($REG1) temp
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 temp
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (Y-Z)
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:   1.00   1.00   1.00   1.00   1.00
+ 200   / 2:   4.00   4.00   4.00   4.00   4.00
+ 300   / 3:   9.00   9.00   9.00   9.00   9.00
+ 400   / 4:  16.00  16.00  16.00  16.00  16.00
+ 500   / 5:  25.00  25.00  25.00  25.00  25.00
+ 600   / 6:  36.00  36.00  36.00  36.00  36.00
+ 700   / 7:  49.00  49.00  49.00  49.00  49.00
+list/order=($pax1)($aax)($REG1) btemp
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 btemp
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (Y-Z)
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  49.00  49.00  49.00  49.00  49.00
+ 200   / 2:  36.00  36.00  36.00  36.00  36.00
+ 300   / 3:  25.00  25.00  25.00  25.00  25.00
+ 400   / 4:  16.00  16.00  16.00  16.00  16.00
+ 500   / 5:   9.00   9.00   9.00   9.00   9.00
+ 600   / 6:   4.00   4.00   4.00   4.00   4.00
+ 700   / 7:   1.00   1.00   1.00   1.00   1.00
+list/order=($pax1)($aax)($REG1) density
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 density
+             VARIABLE : IF (_J EQ 5 OR _M EQ 5) AND _K LE 2 THEN 1/0 ELSE DENSITY4
+             SUBSET   : 5 by 7 points (Y-Z)
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  10.00  10.00  20.00  10.00   ....
+ 200   / 2:  20.00  20.00  10.00  20.00   ....
+ 300   / 3:  30.00  30.00  30.00  30.00  30.00
+ 400   / 4:  40.00  20.00  40.00  40.00  40.00
+ 500   / 5:  50.00  50.00  50.00  50.00  50.00
+ 600   / 6:  60.00  60.00  60.00  30.00  60.00
+ 700   / 7:  70.00  70.00  70.00  70.00  70.00
+list/order=($pax1)($aax)($REG1) bdensity
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 bdensity
+             VARIABLE : IF (_J EQ 5 OR _M EQ 5) AND (8-_K) LE 2 THEN 1/0 ELSE BDENSITY4
+             SUBSET   : 5 by 7 points (Y-Z)
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  70.00  70.00  70.00  70.00  70.00
+ 200   / 2:  60.00  60.00  60.00  30.00  60.00
+ 300   / 3:  50.00  50.00  50.00  50.00  50.00
+ 400   / 4:  40.00  20.00  40.00  40.00  40.00
+ 500   / 5:  30.00  30.00  30.00  30.00  30.00
+ 600   / 6:  20.00  20.00  10.00  20.00   ....
+ 700   / 7:  10.00  10.00  20.00  10.00   ....
+ 
+! show the regridded fields
+! using interpolation
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:5]  ! passive ax 1
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 temp[gZ(density)=5:80:5]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on Z at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (Y-Z)
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:5]  ! passive ax 2
+ !-> list/order=EZ/i=1/j=1 /l=1 /n=1 temp[gZ(density)=5:80:5]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on Z at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (E-Z)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:5]  ! backwards pasv ax 1
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 btemp[gZ(bdensity)=5:80:5]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on Z at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (Y-Z)
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:5]  ! backwards pasv ax 2
+ !-> list/order=EZ/i=1/j=1 /l=1 /n=1 btemp[gZ(bdensity)=5:80:5]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on Z at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (E-Z)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35]
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 temp[gZ(density)=35]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on Z at LIN using DENSITY field
+             SUBSET   : 5 points (Y)
+             Z        : 35
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          12.50  20.50  12.50  12.50  12.50
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35]
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 btemp[gZ(bdensity)=35]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on Z at LIN using BDENSITY field
+             SUBSET   : 5 points (Y)
+             Z        : 35
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          12.50  20.50  12.50  12.50  12.50
+ 
+ 
+! using piecewise linear averaging
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:15 at plave]
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 temp[gZ(density)=5:80:15 at plave]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on Z at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (Y-Z)
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:15 at plave]
+ !-> list/order=EZ/i=1/j=1 /l=1 /n=1 temp[gZ(density)=5:80:15 at plave]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on Z at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (E-Z)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:15 at plave]
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 btemp[gZ(bdensity)=5:80:15 at plave]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on Z at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (Y-Z)
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:15 at plave]
+ !-> list/order=EZ/i=1/j=1 /l=1 /n=1 btemp[gZ(bdensity)=5:80:15 at plave]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on Z at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (E-Z)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35:55 at plave]
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 temp[gZ(density)=35:55 at plave]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on Z at PLAVE using DENSITY field
+             SUBSET   : 5 points (Y)
+             Z        : 35 to 55
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          20.75  24.00  20.75   ....  20.75
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35:55 at plave]
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 btemp[gZ(bdensity)=35:55 at plave]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on Z at PLAVE using BDENSITY field
+             SUBSET   : 5 points (Y)
+             Z        : 35 to 55
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          20.75  24.00  20.75   ....  20.75
+ 
+!*********************************************************************************
+!*********************************************************************************
+EXIT/SCRIPT
+CANC MODE VERIFY
+
+*****************************
+**********  X,Z,F ***********
+*****************************
+
+             VARIABLE : 0.0001*     _X[GX=XA] ^2 +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (Z-X)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:   1.00   1.00   1.00   1.00   1.00
+ 200   / 2:   4.00   4.00   4.00   4.00   4.00
+ 300   / 3:   9.00   9.00   9.00   9.00   9.00
+ 400   / 4:  16.00  16.00  16.00  16.00  16.00
+ 500   / 5:  25.00  25.00  25.00  25.00  25.00
+ 600   / 6:  36.00  36.00  36.00  36.00  36.00
+ 700   / 7:  49.00  49.00  49.00  49.00  49.00
+             VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (Z-X)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  49.00  49.00  49.00  49.00  49.00
+ 200   / 2:  36.00  36.00  36.00  36.00  36.00
+ 300   / 3:  25.00  25.00  25.00  25.00  25.00
+ 400   / 4:  16.00  16.00  16.00  16.00  16.00
+ 500   / 5:   9.00   9.00   9.00   9.00   9.00
+ 600   / 6:   4.00   4.00   4.00   4.00   4.00
+ 700   / 7:   1.00   1.00   1.00   1.00   1.00
+             VARIABLE : IF (_K EQ 5 OR _N EQ 5) AND _I LE 2 THEN 1/0 ELSE DENSITY4
+             SUBSET   : 5 by 7 points (Z-X)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  10.00  10.00  20.00  10.00   ....
+ 200   / 2:  20.00  20.00  10.00  20.00   ....
+ 300   / 3:  30.00  30.00  30.00  30.00  30.00
+ 400   / 4:  40.00  20.00  40.00  40.00  40.00
+ 500   / 5:  50.00  50.00  50.00  50.00  50.00
+ 600   / 6:  60.00  60.00  60.00  30.00  60.00
+ 700   / 7:  70.00  70.00  70.00  70.00  70.00
+             VARIABLE : IF (_K EQ 5 OR _N EQ 5) AND (8-_I) LE 2 THEN 1/0 ELSE BDENSITY4
+             SUBSET   : 5 by 7 points (Z-X)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  70.00  70.00  70.00  70.00  70.00
+ 200   / 2:  60.00  60.00  60.00  30.00  60.00
+ 300   / 3:  50.00  50.00  50.00  50.00  50.00
+ 400   / 4:  40.00  20.00  40.00  40.00  40.00
+ 500   / 5:  30.00  30.00  30.00  30.00  30.00
+ 600   / 6:  20.00  20.00  10.00  20.00   ....
+ 700   / 7:  10.00  10.00  20.00  10.00   ....
+             VARIABLE : 0.0001*     _X[GX=XA] ^2 +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on X at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (Z-X)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0.0001*     _X[GX=XA] ^2 +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on X at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (F-X)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on X at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (Z-X)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on X at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (F-X)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0.0001*     _X[GX=XA] ^2 +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on X at LIN using DENSITY field
+             SUBSET   : 5 points (Z)
+             X        : 35
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          12.50  20.50  12.50  12.50  12.50
+             VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on X at LIN using BDENSITY field
+             SUBSET   : 5 points (Z)
+             X        : 35
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          12.50  20.50  12.50  12.50  12.50
+             VARIABLE : 0.0001*     _X[GX=XA] ^2 +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on X at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (Z-X)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0.0001*     _X[GX=XA] ^2 +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on X at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (F-X)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on X at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (Z-X)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on X at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (F-X)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0.0001*     _X[GX=XA] ^2 +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on X at PLAVE using DENSITY field
+             SUBSET   : 5 points (Z)
+             X        : 35 to 55
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          20.75  24.00  20.75   ....  20.75
+             VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on X at PLAVE using BDENSITY field
+             SUBSET   : 5 points (Z)
+             X        : 35 to 55
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          20.75  24.00  20.75   ....  20.75
+
+*****************************
+**********  Y,X,E ***********
+*****************************
+
+             VARIABLE : 0*_X[GX=XP] +  0.0001*     _Y[GY=YA] ^2 +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (X-Y)
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:   1.00   1.00   1.00   1.00   1.00
+ 200   / 2:   4.00   4.00   4.00   4.00   4.00
+ 300   / 3:   9.00   9.00   9.00   9.00   9.00
+ 400   / 4:  16.00  16.00  16.00  16.00  16.00
+ 500   / 5:  25.00  25.00  25.00  25.00  25.00
+ 600   / 6:  36.00  36.00  36.00  36.00  36.00
+ 700   / 7:  49.00  49.00  49.00  49.00  49.00
+             VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (X-Y)
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  49.00  49.00  49.00  49.00  49.00
+ 200   / 2:  36.00  36.00  36.00  36.00  36.00
+ 300   / 3:  25.00  25.00  25.00  25.00  25.00
+ 400   / 4:  16.00  16.00  16.00  16.00  16.00
+ 500   / 5:   9.00   9.00   9.00   9.00   9.00
+ 600   / 6:   4.00   4.00   4.00   4.00   4.00
+ 700   / 7:   1.00   1.00   1.00   1.00   1.00
+             VARIABLE : IF (_I EQ 5 OR _M EQ 5) AND _J LE 2 THEN 1/0 ELSE DENSITY4
+             SUBSET   : 5 by 7 points (X-Y)
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  10.00  10.00  20.00  10.00   ....
+ 200   / 2:  20.00  20.00  10.00  20.00   ....
+ 300   / 3:  30.00  30.00  30.00  30.00  30.00
+ 400   / 4:  40.00  20.00  40.00  40.00  40.00
+ 500   / 5:  50.00  50.00  50.00  50.00  50.00
+ 600   / 6:  60.00  60.00  60.00  30.00  60.00
+ 700   / 7:  70.00  70.00  70.00  70.00  70.00
+             VARIABLE : IF (_I EQ 5 OR _M EQ 5) AND (8-_J) LE 2 THEN 1/0 ELSE BDENSITY4
+             SUBSET   : 5 by 7 points (X-Y)
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  70.00  70.00  70.00  70.00  70.00
+ 200   / 2:  60.00  60.00  60.00  30.00  60.00
+ 300   / 3:  50.00  50.00  50.00  50.00  50.00
+ 400   / 4:  40.00  20.00  40.00  40.00  40.00
+ 500   / 5:  30.00  30.00  30.00  30.00  30.00
+ 600   / 6:  20.00  20.00  10.00  20.00   ....
+ 700   / 7:  10.00  10.00  20.00  10.00   ....
+             VARIABLE : 0*_X[GX=XP] +  0.0001*     _Y[GY=YA] ^2 +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on Y at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (X-Y)
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] +  0.0001*     _Y[GY=YA] ^2 +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on Y at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (E-Y)
+             X        : 161
+             Z        : 161
+             T        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on Y at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (X-Y)
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on Y at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (E-Y)
+             X        : 161
+             Z        : 161
+             T        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] +  0.0001*     _Y[GY=YA] ^2 +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on Y at LIN using DENSITY field
+             SUBSET   : 5 points (X)
+             Y        : 35
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          12.50  20.50  12.50  12.50  12.50
+             VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on Y at LIN using BDENSITY field
+             SUBSET   : 5 points (X)
+             Y        : 35
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          12.50  20.50  12.50  12.50  12.50
+             VARIABLE : 0*_X[GX=XP] +  0.0001*     _Y[GY=YA] ^2 +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on Y at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (X-Y)
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] +  0.0001*     _Y[GY=YA] ^2 +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on Y at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (E-Y)
+             X        : 161
+             Z        : 161
+             T        : 161
+             F        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on Y at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (X-Y)
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on Y at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (E-Y)
+             X        : 161
+             Z        : 161
+             T        : 161
+             F        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] +  0.0001*     _Y[GY=YA] ^2 +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on Y at PLAVE using DENSITY field
+             SUBSET   : 5 points (X)
+             Y        : 35 to 55
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          20.75  24.00  20.75   ....  20.75
+             VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on Y at PLAVE using BDENSITY field
+             SUBSET   : 5 points (X)
+             Y        : 35 to 55
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          20.75  24.00  20.75   ....  20.75
+
+*****************************
+**********  T,Y,F ***********
+*****************************
+
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0.0001*     _T[GT=TA] ^2 +  0*_E[GE=EP] +  0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (Y-T)
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:   1.00   1.00   1.00   1.00   1.00
+ 200   / 2:   4.00   4.00   4.00   4.00   4.00
+ 300   / 3:   9.00   9.00   9.00   9.00   9.00
+ 400   / 4:  16.00  16.00  16.00  16.00  16.00
+ 500   / 5:  25.00  25.00  25.00  25.00  25.00
+ 600   / 6:  36.00  36.00  36.00  36.00  36.00
+ 700   / 7:  49.00  49.00  49.00  49.00  49.00
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (Y-T)
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  49.00  49.00  49.00  49.00  49.00
+ 200   / 2:  36.00  36.00  36.00  36.00  36.00
+ 300   / 3:  25.00  25.00  25.00  25.00  25.00
+ 400   / 4:  16.00  16.00  16.00  16.00  16.00
+ 500   / 5:   9.00   9.00   9.00   9.00   9.00
+ 600   / 6:   4.00   4.00   4.00   4.00   4.00
+ 700   / 7:   1.00   1.00   1.00   1.00   1.00
+             VARIABLE : IF (_J EQ 5 OR _N EQ 5) AND _L LE 2 THEN 1/0 ELSE DENSITY4
+             SUBSET   : 5 by 7 points (Y-T)
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  10.00  10.00  20.00  10.00   ....
+ 200   / 2:  20.00  20.00  10.00  20.00   ....
+ 300   / 3:  30.00  30.00  30.00  30.00  30.00
+ 400   / 4:  40.00  20.00  40.00  40.00  40.00
+ 500   / 5:  50.00  50.00  50.00  50.00  50.00
+ 600   / 6:  60.00  60.00  60.00  30.00  60.00
+ 700   / 7:  70.00  70.00  70.00  70.00  70.00
+             VARIABLE : IF (_J EQ 5 OR _N EQ 5) AND (8-_L) LE 2 THEN 1/0 ELSE BDENSITY4
+             SUBSET   : 5 by 7 points (Y-T)
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  70.00  70.00  70.00  70.00  70.00
+ 200   / 2:  60.00  60.00  60.00  30.00  60.00
+ 300   / 3:  50.00  50.00  50.00  50.00  50.00
+ 400   / 4:  40.00  20.00  40.00  40.00  40.00
+ 500   / 5:  30.00  30.00  30.00  30.00  30.00
+ 600   / 6:  20.00  20.00  10.00  20.00   ....
+ 700   / 7:  10.00  10.00  20.00  10.00   ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0.0001*     _T[GT=TA] ^2 +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on T at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (Y-T)
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0.0001*     _T[GT=TA] ^2 +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on T at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (F-T)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             E        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on T at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (Y-T)
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on T at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (F-T)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             E        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0.0001*     _T[GT=TA] ^2 +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on T at LIN using DENSITY field
+             SUBSET   : 5 points (Y)
+             T        : 35
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          12.50  20.50  12.50  12.50  12.50
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on T at LIN using BDENSITY field
+             SUBSET   : 5 points (Y)
+             T        : 35
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          12.50  20.50  12.50  12.50  12.50
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0.0001*     _T[GT=TA] ^2 +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on T at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (Y-T)
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0.0001*     _T[GT=TA] ^2 +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on T at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (F-T)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             E        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on T at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (Y-T)
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on T at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (F-T)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             E        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0.0001*     _T[GT=TA] ^2 +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on T at PLAVE using DENSITY field
+             SUBSET   : 5 points (Y)
+             T        : 35 to 55
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          20.75  24.00  20.75   ....  20.75
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on T at PLAVE using BDENSITY field
+             SUBSET   : 5 points (Y)
+             T        : 35 to 55
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          20.75  24.00  20.75   ....  20.75
+
+*****************************
+**********  E,Z,F ***********
+*****************************
+
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0.0001*     _E[GE=EA] ^2 +  0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (Z-E)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:   1.00   1.00   1.00   1.00   1.00
+ 200   / 2:   4.00   4.00   4.00   4.00   4.00
+ 300   / 3:   9.00   9.00   9.00   9.00   9.00
+ 400   / 4:  16.00  16.00  16.00  16.00  16.00
+ 500   / 5:  25.00  25.00  25.00  25.00  25.00
+ 600   / 6:  36.00  36.00  36.00  36.00  36.00
+ 700   / 7:  49.00  49.00  49.00  49.00  49.00
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (Z-E)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  49.00  49.00  49.00  49.00  49.00
+ 200   / 2:  36.00  36.00  36.00  36.00  36.00
+ 300   / 3:  25.00  25.00  25.00  25.00  25.00
+ 400   / 4:  16.00  16.00  16.00  16.00  16.00
+ 500   / 5:   9.00   9.00   9.00   9.00   9.00
+ 600   / 6:   4.00   4.00   4.00   4.00   4.00
+ 700   / 7:   1.00   1.00   1.00   1.00   1.00
+             VARIABLE : IF (_K EQ 5 OR _N EQ 5) AND _M LE 2 THEN 1/0 ELSE DENSITY4
+             SUBSET   : 5 by 7 points (Z-E)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  10.00  10.00  20.00  10.00   ....
+ 200   / 2:  20.00  20.00  10.00  20.00   ....
+ 300   / 3:  30.00  30.00  30.00  30.00  30.00
+ 400   / 4:  40.00  20.00  40.00  40.00  40.00
+ 500   / 5:  50.00  50.00  50.00  50.00  50.00
+ 600   / 6:  60.00  60.00  60.00  30.00  60.00
+ 700   / 7:  70.00  70.00  70.00  70.00  70.00
+             VARIABLE : IF (_K EQ 5 OR _N EQ 5) AND (8-_M) LE 2 THEN 1/0 ELSE BDENSITY4
+             SUBSET   : 5 by 7 points (Z-E)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  70.00  70.00  70.00  70.00  70.00
+ 200   / 2:  60.00  60.00  60.00  30.00  60.00
+ 300   / 3:  50.00  50.00  50.00  50.00  50.00
+ 400   / 4:  40.00  20.00  40.00  40.00  40.00
+ 500   / 5:  30.00  30.00  30.00  30.00  30.00
+ 600   / 6:  20.00  20.00  10.00  20.00   ....
+ 700   / 7:  10.00  10.00  20.00  10.00   ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0.0001*     _E[GE=EA] ^2 +  0*_F[GF=FP]
+                        regrid: 5 delta on E at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (Z-E)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0.0001*     _E[GE=EA] ^2 +  0*_F[GF=FP]
+                        regrid: 5 delta on E at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (F-E)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             T        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+                        regrid: 5 delta on E at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (Z-E)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+                        regrid: 5 delta on E at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (F-E)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             T        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0.0001*     _E[GE=EA] ^2 +  0*_F[GF=FP]
+                        regrid: on E at LIN using DENSITY field
+             SUBSET   : 5 points (Z)
+             E        : 35
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          12.50  20.50  12.50  12.50  12.50
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+                        regrid: on E at LIN using BDENSITY field
+             SUBSET   : 5 points (Z)
+             E        : 35
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          12.50  20.50  12.50  12.50  12.50
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0.0001*     _E[GE=EA] ^2 +  0*_F[GF=FP]
+                        regrid: 15 delta on E at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (Z-E)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0.0001*     _E[GE=EA] ^2 +  0*_F[GF=FP]
+                        regrid: 15 delta on E at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (F-E)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             T        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+                        regrid: 15 delta on E at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (Z-E)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+                        regrid: 15 delta on E at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (F-E)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             T        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0.0001*     _E[GE=EA] ^2 +  0*_F[GF=FP]
+                        regrid: on E at PLAVE using DENSITY field
+             SUBSET   : 5 points (Z)
+             E        : 35 to 55
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          20.75  24.00  20.75   ....  20.75
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+                        regrid: on E at PLAVE using BDENSITY field
+             SUBSET   : 5 points (Z)
+             E        : 35 to 55
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          20.75  24.00  20.75   ....  20.75
+
+*****************************
+**********  F,X,T ***********
+*****************************
+
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0.0001*     _F[GF=FA] ^2
+             SUBSET   : 5 by 7 points (X-F)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:   1.00   1.00   1.00   1.00   1.00
+ 200   / 2:   4.00   4.00   4.00   4.00   4.00
+ 300   / 3:   9.00   9.00   9.00   9.00   9.00
+ 400   / 4:  16.00  16.00  16.00  16.00  16.00
+ 500   / 5:  25.00  25.00  25.00  25.00  25.00
+ 600   / 6:  36.00  36.00  36.00  36.00  36.00
+ 700   / 7:  49.00  49.00  49.00  49.00  49.00
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+             SUBSET   : 5 by 7 points (X-F)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  49.00  49.00  49.00  49.00  49.00
+ 200   / 2:  36.00  36.00  36.00  36.00  36.00
+ 300   / 3:  25.00  25.00  25.00  25.00  25.00
+ 400   / 4:  16.00  16.00  16.00  16.00  16.00
+ 500   / 5:   9.00   9.00   9.00   9.00   9.00
+ 600   / 6:   4.00   4.00   4.00   4.00   4.00
+ 700   / 7:   1.00   1.00   1.00   1.00   1.00
+             VARIABLE : IF (_I EQ 5 OR _L EQ 5) AND _N LE 2 THEN 1/0 ELSE DENSITY4
+             SUBSET   : 5 by 7 points (X-F)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  10.00  10.00  20.00  10.00   ....
+ 200   / 2:  20.00  20.00  10.00  20.00   ....
+ 300   / 3:  30.00  30.00  30.00  30.00  30.00
+ 400   / 4:  40.00  20.00  40.00  40.00  40.00
+ 500   / 5:  50.00  50.00  50.00  50.00  50.00
+ 600   / 6:  60.00  60.00  60.00  30.00  60.00
+ 700   / 7:  70.00  70.00  70.00  70.00  70.00
+             VARIABLE : IF (_I EQ 5 OR _L EQ 5) AND (8-_N) LE 2 THEN 1/0 ELSE BDENSITY4
+             SUBSET   : 5 by 7 points (X-F)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  70.00  70.00  70.00  70.00  70.00
+ 200   / 2:  60.00  60.00  60.00  30.00  60.00
+ 300   / 3:  50.00  50.00  50.00  50.00  50.00
+ 400   / 4:  40.00  20.00  40.00  40.00  40.00
+ 500   / 5:  30.00  30.00  30.00  30.00  30.00
+ 600   / 6:  20.00  20.00  10.00  20.00   ....
+ 700   / 7:  10.00  10.00  20.00  10.00   ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0.0001*     _F[GF=FA] ^2
+                        regrid: 5 delta on F at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (X-F)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0.0001*     _F[GF=FA] ^2
+                        regrid: 5 delta on F at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (T-F)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             E        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+                        regrid: 5 delta on F at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (X-F)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+                        regrid: 5 delta on F at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (T-F)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             E        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0.0001*     _F[GF=FA] ^2
+                        regrid: on F at LIN using DENSITY field
+             SUBSET   : 5 points (X)
+             F        : 35
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          12.50  20.50  12.50  12.50  12.50
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+                        regrid: on F at LIN using BDENSITY field
+             SUBSET   : 5 points (X)
+             F        : 35
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          12.50  20.50  12.50  12.50  12.50
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0.0001*     _F[GF=FA] ^2
+                        regrid: 15 delta on F at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (X-F)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0.0001*     _F[GF=FA] ^2
+                        regrid: 15 delta on F at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (T-F)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             E        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+                        regrid: 15 delta on F at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (X-F)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+                        regrid: 15 delta on F at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (T-F)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             E        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0.0001*     _F[GF=FA] ^2
+                        regrid: on F at PLAVE using DENSITY field
+             SUBSET   : 5 points (X)
+             F        : 35 to 55
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          20.75  24.00  20.75   ....  20.75
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+                        regrid: on F at PLAVE using BDENSITY field
+             SUBSET   : 5 points (X)
+             F        : 35 to 55
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+           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
+! bn_plot_ribbon_gaploc.jnl
+! 7/20/2015 *acm*  new PLOT/VS/RIBBON/GAPLOC
+!
+! If a trajectory leaves the selected region and then travels
+! 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.
+ 
+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 test: bn_time_short_axes.jnl
+! 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 test: 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
+ 
+ 
+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"
+*** Running test: 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
+ 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
+ 
+       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
+ 
+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 test: bn_all_ef.jnl
+SET MODE VERIFY
+! bn_all_ef.jnl
+! - run all the benchmark tests for externally-linked external functions.
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO bn_ef_external_functions.jnl
+! Tests of external functions that are distributed as shared object files.
+ 
+! Jon's benchmarks
+go bench_examples
+set mode ignore_error
+show func/ext add_9
+ADD_9(A,B,C,D,E,F,G,H,I)
+    (demonstration function) adds 9 arguments
+show func/ext ave*
+AVE_SCAT2GRID_T(TPTS,VPTS,TAXIS)
+    Compute average of a variable in each cell of output time axis
+    TPTS: T coordinates of scattered input time coordinates
+    VPTS: Variable at times in TPTS
+    TAXIS: Output time axis
+AVET(A)
+    (demonstration function) returns the time average
+    A: data to be averaged over the time axis
+show func pass_thru
+PASS_THRU(A)
+    (demonstration function) sets result equal to input
+    A: this arg is passed through
+show func sto*
+STORAGE(A)
+    sets result equal to input/10
+    A: input
+ 
+go bench_add_9
+! Bench_add_9.jnl
+!  ACM  8/99
+!  benchmark script for testing external function add_9.
+! Note: bench_add_9_visual contains plots of similar computations
+ 
+set mode ignore_errors
+ 
+ 
+can region
+use coads_climatology
+set region/x=151E:179E/y=0
+ 
+let a1 = sst[d=1,l=1]
+let a2 = sst[d=1,l=2]
+let a3 = sst[d=1,l=3]
+ 
+let a = add_9(a1,a2,a3,a1,a2,a3,a1,a2,a3)
+ 
+list a
+             VARIABLE : ADD_9(A1,A2,A3,A1,A2,A3,A1,A2,A3)
+             SUBSET   : 15 points (LONGITUDE)
+             LATITUDE : 1S
+             TIME     : 16-JAN 06:00
+                1S    
+                45
+ 151E   / 66:  263.6
+ 153E   / 67:  264.5
+ 155E   / 68:  264.2
+ 157E   / 69:  261.3
+ 159E   / 70:  260.9
+ 161E   / 71:  262.4
+ 163E   / 72:  264.0
+ 165E   / 73:  261.1
+ 167E   / 74:  260.9
+ 169E   / 75:  261.0
+ 171E   / 76:  259.3
+ 173E   / 77:  257.9
+ 175E   / 78:  257.0
+ 177E   / 79:  259.1
+ 179E   / 80:  254.8
+list  a - 3 * sst[d=1,l=1:3 at sum]
+             VARIABLE : A - 3 * SST[D=coads_climatology,L=1:3 at SUM]
+             SUBSET   : 15 points (LONGITUDE)
+             LATITUDE : 1S
+             TIME     : 16-JAN 06:00
+                 1S    
+                 45
+ 151E   / 66:  0.0000
+ 153E   / 67:  0.0000
+ 155E   / 68:  0.0000
+ 157E   / 69:  0.0000
+ 159E   / 70:  0.0000
+ 161E   / 71:  0.0000
+ 163E   / 72:  0.0000
+ 165E   / 73:  0.0000
+ 167E   / 74:  0.0000
+ 169E   / 75:  0.0000
+ 171E   / 76:  0.0000
+ 173E   / 77:  0.0000
+ 175E   / 78:  0.0000
+ 177E   / 79:  0.0000
+ 179E   / 80:  0.0000
+set mode/last ignore_errors
+go bench_avet
+! Bench_avet.jnl
+!  ACM  8/99
+!  benchmark script for testing external function avet.
+! Note: bench_avet_visual.jnl contains plots of similar computations
+ 
+set mode ignore_errors
+ 
+can region
+use coads_climatology
+set region/x=151E:179E/y=0
+ 
+let a = avet(sst)
+list a
+             VARIABLE : AVET(SST)
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 15 points (LONGITUDE)
+             LATITUDE : 1S
+                1S    
+                45
+ 151E   / 66:  29.28
+ 153E   / 67:  29.39
+ 155E   / 68:  29.35
+ 157E   / 69:  29.03
+ 159E   / 70:  28.99
+ 161E   / 71:  29.15
+ 163E   / 72:  29.33
+ 165E   / 73:  29.01
+ 167E   / 74:  28.99
+ 169E   / 75:  29.00
+ 171E   / 76:  28.81
+ 173E   / 77:  28.66
+ 175E   / 78:  28.56
+ 177E   / 79:  28.79
+ 179E   / 80:  28.31
+list a - sst[l=@ave]
+             VARIABLE : A - SST[L=@AVE]
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 15 points (LONGITUDE)
+             LATITUDE : 1S
+             TIME     : 01-JAN 00:45 to 01-APR 08:12
+                  1S      
+                  45
+ 151E   / 66:  0.000E+00
+ 153E   / 67: -3.553E-15
+ 155E   / 68:  0.000E+00
+ 157E   / 69:  0.000E+00
+ 159E   / 70:  3.553E-15
+ 161E   / 71:  7.105E-15
+ 163E   / 72:  3.553E-15
+ 165E   / 73:  0.000E+00
+ 167E   / 74:  0.000E+00
+ 169E   / 75:  3.553E-15
+ 171E   / 76:  0.000E+00
+ 173E   / 77:  3.553E-15
+ 175E   / 78:  0.000E+00
+ 177E   / 79:  3.553E-15
+ 179E   / 80:  3.553E-15
+ 
+can region
+let a = x[i=1:9,k=1:5] + t[l=1:5]
+let b = x[i=1:9,k=1:5]
+let c = avet(a)
+list b, c
+             X: 0.5 to 9.5
+ Column  1: B is X[I=1:9,K=1:5]
+ Column  2: C is AVET(A)
+             B     C
+1   / 1:  1.000   4.00
+2   / 2:  2.000   5.00
+3   / 3:  3.000   6.00
+4   / 4:  4.000   7.00
+5   / 5:  5.000   8.00
+6   / 6:  6.000   9.00
+7   / 7:  7.000  10.00
+8   / 8:  8.000  11.00
+9   / 9:  9.000  12.00
+ 
+set mode/last ignore_errors
+go bench_pass_thru
+! Bench_pass_thru.jnl
+!  ACM  8/99
+!  benchmark script for testing external function pass_thru.
+! Note: bench_pass_thru_visual.jnl contains plots of similar computations
+ 
+set mode ignore_errors
+ 
+can region
+let a = pass_thru(x)
+list a[i=1:20]
+             VARIABLE : PASS_THRU(X)
+             SUBSET   : 20 points (X)
+ 1    /  1:   1.00
+ 2    /  2:   2.00
+ 3    /  3:   3.00
+ 4    /  4:   4.00
+ 5    /  5:   5.00
+ 6    /  6:   6.00
+ 7    /  7:   7.00
+ 8    /  8:   8.00
+ 9    /  9:   9.00
+ 10   / 10:  10.00
+ 11   / 11:  11.00
+ 12   / 12:  12.00
+ 13   / 13:  13.00
+ 14   / 14:  14.00
+ 15   / 15:  15.00
+ 16   / 16:  16.00
+ 17   / 17:  17.00
+ 18   / 18:  18.00
+ 19   / 19:  19.00
+ 20   / 20:  20.00
+set region/i=1:20
+list sin(a)
+             VARIABLE : SIN(A)
+             SUBSET   : 20 points (X)
+ 1    /  1:  0.8415
+ 2    /  2:  0.9093
+ 3    /  3:  0.1411
+ 4    /  4: -0.7568
+ 5    /  5: -0.9589
+ 6    /  6: -0.2794
+ 7    /  7:  0.6570
+ 8    /  8:  0.9894
+ 9    /  9:  0.4121
+ 10   / 10: -0.5440
+ 11   / 11: -1.0000
+ 12   / 12: -0.5366
+ 13   / 13:  0.4202
+ 14   / 14:  0.9906
+ 15   / 15:  0.6503
+ 16   / 16: -0.2879
+ 17   / 17: -0.9614
+ 18   / 18: -0.7510
+ 19   / 19:  0.1499
+ 20   / 20:  0.9129
+can var/all
+can region
+ 
+use coads_climatology
+let a = pass_thru(sst[l=@ave,y=@sbx:11])
+list/x=50 a
+             VARIABLE : PASS_THRU(SST[L=@AVE,Y=@SBX:11])
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 90 points (LATITUDE)
+             LONGITUDE: 49E
+             TIME     : 01-JAN 00:45 to 01-APR 08:12
+               49E   
+               15
+ 89N   / 90:   ....
+ 87N   / 89:   ....
+ 85N   / 88:   ....
+ 83N   / 87:   ....
+ 81N   / 86:   ....
+ 79N   / 85:   ....
+ 77N   / 84:   ....
+ 75N   / 83:   ....
+ 73N   / 82:   ....
+ 71N   / 81:   ....
+ 69N   / 80:   ....
+ 67N   / 79:   ....
  65N   / 78:   ....
  63N   / 77:   ....
  61N   / 76:   ....
@@ -77760,40 +85839,40 @@ exit/command
 PPL$XPIXEL = "656"
 PPL$YPIXEL = "492"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.93"
-FERRET_PLATFORM = "Linux 2.6.32-504.el6.x86_64 64-bit"
+FERRET_VERSION = "6.951"
+FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64 64-bit"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 10:43:06 $"
+NETCDF_VERSION = "4.3.3.1 of Jul  1 2015 15:02:01 $"
 FERRET_MEMORY = "31"
-SESSION_DATE = "30-Oct-14"
-SESSION_TIME = "11:20"
-SESSION_PID = "11944"
-DELTA_CPU = "0.05399"
-CLOCK_SECS = "1.164"
-CURRENT_DATE = "30-Oct-14"
-CURRENT_TIME = "11:20:04"
+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"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
 LAST_GO_FILE = "./bn_startupfile.jnl"
 PPL$FORMAT = "(3F10.2)"
 PPL$PLTNME = "startup_tests.plt"
-PPL$TEKNME = "/dev/tty"
-PPL$XLEN = "8.000"
-PPL$YLEN = "6.000"
-PPL$XORG = "1.200"
-PPL$YORG = "1.400"
-PPL$WIDTH = "10.20"
-PPL$HEIGHT = "8.800"
+PPL$TEKNME = "/dev/tt"
+PPL$XLEN = "8.00000"
+PPL$YLEN = "6.00000"
+PPL$XORG = "1.20000"
+PPL$YORG = "1.40000"
+PPL$WIDTH = "10.2000"
+PPL$HEIGHT = "8.80000"
 PPL$LINE_COUNT = "0"
-PPL$XFACT1 = "1.000"
-PPL$XOFF1 = "0.000"
-PPL$YFACT1 = "1.000"
-PPL$YOFF1 = "0.000"
+PPL$XFACT1 = "1.000000"
+PPL$XOFF1 = "0.000000"
+PPL$YFACT1 = "1.000000"
+PPL$YOFF1 = "0.000000"
 PPL$VIEW_X = "0.000"
 PPL$VIEW_Y = "0.000"
 PPL$VIEW_Z = "0.000"
 PPL$COMMAND_FILE = "$$MEMBUF$$"
-WIN_TITLE = "30-Oct-14:11:20"
+WIN_TITLE = "6-Nov-15:15:55"
 VP_WIDTH = "10.2"
 VP_HEIGHT = "8.8"
 VP_SCALE = "1"
@@ -77814,7 +85893,8 @@ VP_YHI = "1"
       LATIT_LABEL   CANCELLED            1
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
-      6D_LAB           SET
+      E_LABEL          SET               1
+      F_LABEL          SET               1
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -77833,7 +85913,8 @@ VP_YHI = "1"
       NODATA_LAB       SET
       SHRINK_YLAB   CANCELLED
       CURVILINEAR   CANCELLED
-      SIGMA         CANCELLED
+      LAYERZ        CANCELLED
+      6D_LAB           SET
      currently SET data sets:
     1> ./gtbc011.cdf  (default)
  name     title                             I         J         K         L         M         N
@@ -77846,4 +85927,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 Thu Oct 30 11:20:08 PDT 2014
+Ended at Fri Nov  6 15:55:16 PST 2015
diff --git a/bench/test_results/ferret_run_tests_ncdump b/bench/test_results/ferret_run_tests_ncdump
index df2bf17..e515648 100644
--- a/bench/test_results/ferret_run_tests_ncdump
+++ b/bench/test_results/ferret_run_tests_ncdump
@@ -50,7 +50,7 @@ variables:
 		MY_VAR:long_name = "T[GT=T5]" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -75,7 +75,7 @@ variables:
 		MY_VAR:long_name = "T[GT=T5]" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -112,7 +112,7 @@ variables:
 		B:long_name = "\"one line of text\"" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -151,7 +151,7 @@ variables:
 		D:history = "From test_string" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		: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.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -256,7 +256,7 @@ variables:
 		V:long_name = "T[GT=MONTH_IRREG]" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -313,7 +313,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -370,7 +370,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -425,7 +425,7 @@ variables:
 		T2:long_name = "Z[GZ=ZIRR]" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -473,7 +473,7 @@ variables:
 		V:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -567,7 +567,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -637,7 +637,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		: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.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -779,7 +779,7 @@ variables:
 		A:long_name = "T[GT=TIME]" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -806,7 +806,7 @@ variables:
 		X_:long_name_mod = "axis ABSTRACT" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		: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.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 		:title = "a long title, longer than the previous limit of 80 characters.  Previously various buffers were set to 80, and storage in ds_title was also too short." ;
 data:
@@ -857,14 +857,14 @@ variables:
 		A:history = "From t0_cdc" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running test: bn_tab_comma_multivar.jnl
 *** Running test: bn_element_functions.jnl
 *** Running test: bn_long_revision_num.jnl
 bn_long_revision_num.jnl --- history attribute
-		:history = "FERRET V6.93  30-Oct-14" ;
+		: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
@@ -900,7 +900,7 @@ variables:
 		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -973,7 +973,7 @@ variables:
 		VAR_B:long_name = "my strings" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1017,7 +1017,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1059,7 +1059,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1167,7 +1167,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 6 after CANCEL MODE upcase_output
@@ -1208,7 +1208,7 @@ variables:
 		Elev:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		: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.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1257,7 +1257,7 @@ variables:
 		BB:another_attr = 6.f ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1277,7 +1277,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1298,7 +1298,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1341,7 +1341,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		: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.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 13 cancel output of attributes of the variable.
@@ -1419,7 +1419,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 14 attributes of data from ez data.
@@ -1448,7 +1448,7 @@ variables:
 		A3:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1481,7 +1481,7 @@ variables:
 		V4:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1507,7 +1507,7 @@ variables:
 		A:four = "theory" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1553,7 +1553,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 		:simulation = "K-Bay OAR3d model (200m)" ;
 		:start_date = "980105000000" ;
@@ -1660,7 +1660,7 @@ variables:
 		TEMP:units = "deg. C" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 		:dt_internal = 15. ;
 }
@@ -1702,7 +1702,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1785,7 +1785,7 @@ variables:
 		RIGUE:history = "From test0" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1822,7 +1822,7 @@ variables:
 		B:long_name = "hello" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1862,7 +1862,7 @@ variables:
 		VWND:units = "M/S" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1913,7 +1913,7 @@ variables:
 		T2:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1972,7 +1972,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2017,7 +2017,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2060,7 +2060,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2095,7 +2095,7 @@ variables:
 		TEMP:units = "DEG C" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2129,7 +2129,7 @@ variables:
 		TWO:history = "From levitus_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		: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.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		: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.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 		:glob = "Global attribute" ;
 		:FERRET_comment = "File written via LAS. Attributes are inherited from originating dataset" ;
@@ -2249,7 +2249,7 @@ variables:
 		FAREN:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2294,7 +2294,7 @@ variables:
 		FAREN:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running test: bn_transforms.jnl
@@ -2335,7 +2335,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2365,7 +2365,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2395,7 +2395,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2448,7 +2448,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2490,7 +2490,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2508,7 +2508,7 @@ variables:
 		V:long_name = "Y[GY=YAXIS]" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running test: bn_no_valid_on_plot.jnl
@@ -2530,7 +2530,7 @@ variables:
 		MY_ASC:history = "From dat.dat" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2548,7 +2548,7 @@ variables:
 		MY_UNF:history = "From unf.dat" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		: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.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		: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.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2657,7 +2657,7 @@ variables:
 		newvar:history = "From a" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running test: bn_cdf_keepax.jnl
@@ -2686,7 +2686,7 @@ variables:
 		A:long_name = "X[GX=X100] + T[GT=T31]" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES
@@ -2713,7 +2713,7 @@ variables:
 		A:long_name = "X[GX=X100] + T[GT=T31]" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running test: bn_key_label_minmax.jnl
@@ -2818,7 +2818,7 @@ variables:
 		ZUP:long_name = "Z[GZ=ZAXUP]" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		: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.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since
@@ -2883,7 +2883,7 @@ variables:
 		XYTVAR:history = "From bn_strides" ;
 
 // global attributes:
-		:history = "FERRET V6.93  30-Oct-14" ;
+		:history = "FERRET V6.951   6-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running test: bn_repeated_coords.jnl
@@ -2933,5 +2933,100 @@ variables:
 *** 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
+netcdf a {
+dimensions:
+	TIME = 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, TIME) ;
+		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   6-Nov-15" ;
+		:Conventions = "CF-1.6" ;
+data:
+
+ REFTIME = 0, 1, 2.03333333333333 ;
+
+ REFTIME_bnds =
+  -0.5, 0.5,
+  0.5, 1.51666666666667,
+  1.51666666666667, 2.55 ;
+
+ 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 ;
+}
+netcdf a {
+dimensions:
+	time = 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, time) ;
+		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   6-Nov-15" ;
+		:Conventions = "CF-1.6" ;
+data:
+
+ reftime = 0, 1, 2.03333333333333 ;
+
+ reftime_bnds =
+  -0.5, 0.5,
+  0.5, 1.51666666666667,
+  1.51666666666667, 2.55 ;
+
+ 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 ;
+}
+*** 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
diff --git a/bench/test_results/flowlines.pdf b/bench/test_results/flowlines.pdf
index 08390ac..463bb6a 100644
Binary files a/bench/test_results/flowlines.pdf and b/bench/test_results/flowlines.pdf differ
diff --git a/bench/test_results/graticules.pdf b/bench/test_results/graticules.pdf
index a530c0d..c3a962f 100644
--- a/bench/test_results/graticules.pdf
+++ b/bench/test_results/graticules.pdf
@@ -1,72 +1,76 @@
-%PDF-1.4
+%PDF-1.5
 %���
 3 0 obj
 << /Length 4 0 R
    /Filter /FlateDecode
 >>
 stream
-x�����̶tկ�XW�pڙi�
-��h�n"HHH�����t�sF��} !�8::�o���F��]�������������/۟�����?��g���=���������w��~����s���}�)��������
�<@i��?�s��W 2����{��z%��'O�w��Y�����Mk�Ͻ�-�&Qr׿�
3��{�c(��_�y�\َ��
-9Aek��b��ZK�eVJ�۷��c7���Ia�<G.햲?���2����[�����Y�2����{�i�����ݓQ9��^����~�`f�n�t|��5���R;�	3�e}O��J+�lx���m)�Qi'�
o��������ҏp6���w;�qV�
Ά7y��--SX9k8f2��OV�-�
o�
-���
�g<״{�8ʾ?Yy�4�
3���*�tٷ8ľ?��
i>f2��O�?���`�#����Ϙ�3b&���d�^��&�8ƾ?���i>#�䱥����gP�ޏ�{X�ss�H+�k�.�뙻X������{;�������]��[�X������{�����gl�.��M�X�>�v���칋����]�_�t��}
�<���
-�gP�.��C�X��
����}�.t�q
��ؚt���ֹ��R���
c\�.>J�.Vv<�:w����ʎg\�.>�+w���թ���J+;�Q���8��ł���Q�t���ҹ��V���
Ϡn9xJ+{f#]|�]�X�ћt��/�be�3�sg�.Vv<�:w�qm��
ϘN]|\M�X��\��.>X������}J+;�����n�t���5��]����3�s�R����1�S�}�],�>#;wqݻt��:�v�⚆|]�A���
�t���
��ŵ
���1���[�XY}�u��ښt��:�u���7�be�׹�k�����3�s�s�],�>�:uq=/�be�չ��u�.T�t�[�XY}�t��z7�be�ԩ��V����gL�.n[�.V֞K��ŭ�����3�s�rI+kϠ�]����XP{�t�������s!���
-w������ŭ�be�ٹ�[=����gl�.nm�.V֞�����K�XYc;uq�5w��������ܤ���1�S�3
��=�:uq��t���
� [...]
-s�
�q�}27ڜ��(��Bf�9v�Q����h�dg�_�����5�����8ľ?�m�8¾?�퐌#�������
���'s���cK�����ɞ{X�m��"U�̍vH������X;������[�X�mN�*]�̍6'�M�X��칋���ܵK+s�
�9�hs�>������;w� 3�s{M9en�9Y�t�27�!٥������K+s�
�W�bAf�9vT�ben�C��],�5ڜ�M�X�mN�8ľ?��<������dߥ�����K�X�mN�U�X�mN^[�bAf�C�I+s��ɻ�.dF;�N�ben�)������h��%]�̍6'K�.V�F�����X�������hs2
��ڌv�����hs�
�����[�X�mN�&]�̍6'�&]�̍vHv�ben�9y���K�X�mN^G�bA���[�X�mN�q�}23�t{MAen�C�K+s��ɲK+s�
��t�27ڜ�k�bAf�C�.V�F��G�],Ȍ6�j�.V�F;$O�ben�9�v�ben�C�.V�F����.�F�s�&]�̍vH��^����U������3w� 3�
��ben�C�.V�F��n�)�̍6'�&]�̍vH��ł�hslߥ�����3w���hs�8������8ľ?�m�&]�̍6'�&]�̍vHv�ben�))Fۧ6�|l��e�d
-7ڵ��Ki�
�{��=�
"��Զup���2��I�L�
2�`�PF&�9�
6�-�
cS`�\f&�Cr	�fR;$��Ia&�cr
-��̤vHN�
��Ԏ�)�c03��!YkL��Kj���1��I퐜;3ZR;Ė�9a&�cr
-��̤vH.�
��Lj�d
`ߟ̤vH^a�}�%�C쎣����Ԏ�0ξ�PI��	l)3�
�q�}�%�C�����Lj�d
aߟ̤vH�q�}2��!yl�q1��1�s
ZR;�j�*VfR;&��ł���vH+3�
��t�2��!٫t�2��!yn���Lj�d�],Ȥv�]�t�2��1�S!1�v܇t�2��1y�.��6�L`sN�I�,E�X�I�����Lj��
G��'3�
�W�bAKj��Q����Ԏ�;w��!�C�6�be&�C��beKj��)]�̤vH�]�X�I혼�����ɳJ+3�
�ז�XВ�1֤����ɻ�.��v�����Ljs�6'��Ԏ�K�X�I�,U�X�I�ܷ�łLj�\�.VfR;$���Ԏ�S�X�I퐬G�bAKj��-]�̤vH�&]�̤vH�M�X�I혌�������s�],hI����������],hH혹�����ɻI+[R��&�9�̤vLv�be&�C�����Lj��%]�̤vH�5w��%�c�.VfR;$���XВ�!V�t�2��1yJ+3�
 [...]
-ڶJn�m�fS`�kJ$�*!��eb
�3KYs(!��3_M���`S�d5�2r}ͱe�9���k�-OM�D\\sh9jN%�֚b���4e�S/;͉��WSl�iJ%b��2�)���j�-)ͱ�\SŠ4�2rGͱ0d���
j�]<n�?��i��a�|!W�
���AJ<!\A#!ȥ4� ��Bf�)U˜��B��9���rM�=���/�"�b�{�r
ͱ��3SД�%�� ��
;S�fb�2��*��3��\��\;S��\���9S��r�
-r�̱�
-4����\��\5s,Ex��ijSʔ��%3��T���aF�e2B�\/S��\���-s���b�b��
T�[e�]�@31�L����>�cw*�L^�L��r�
-r�L�Vr�
-2�̩3� w��{.PA.�9v����bg�*��1Ů-h&�9�r�
-riL����Č1g�\��\#�f1A�9v�䢘b��䖘b��
-4W�
�@��X
���a���*��0��
-4�œ�s�
-r'L��r�
-r!L����6�c=� W�;�T����̕
T�K`�]G*�L^́;� ׿�[.PA�~�r͋� �
�@���X�s�
-r�˱+� ���k*�LL�r��*�M/Ŏ�
-4Ӽ��%� w�
;s�
-r�K����v�cW.PA�v)�k*�L��R��r�
-r�˱x���]��*�@���ؙ
-4s����\��\�r��*�-.b.l�
-�be�*��-�z*�LL�Rf�s�
-rs˱3h&����q��Ζcw.PA&l)U[.PAnk)ֶ\��\�r���1Ѵ6�����͇����)����(���d��
sοq�"�jim\�b�L�b%�Ԇ��!���Z�-7�9A���ش�1��)ې\�6$���
��hCR��ۘ��6&33w�SՆ`F�ocn����
nH�S����10�m
ef
7$��
����
�%nCN��ܘ��6&33��K߆�0s�1��'3��We�_h����(��d&wc2���/T��b6�C�L��d
bߟlY�,q�}2�1G��'3��{
cߟ�toH
[j�_̌oL��Â��
�Z�������3w���~C�
�������-]��pH�*]��
pH��t�2��1�s
2
r�.]��dpL�THL
�!]�̔pL޹�-+�1s��Sfb8$K�.Vfn8&�t�2��!�������䕻XВ�!vT�be�c��],h�␩M�X���lE�X��1xJ+3g
�}�.Vf�8&/�bef�C����L
���.��q�5�be��C�.��-�
c�t�2ɜ4m�Ie�c�.Vf:9$K�.VfF9$�-w� ��1ץ���W�4��륖c�.Vfv9$둻X��1vK+3�
��I+3�
�}�.Vf�9&�t�2��!y-�
c�t�2S�!y
��
�
3�t�2�!y7�be�=s�L3��~��.]��
tH�]�X�I蘼�����ɽ�.�Tt������F���r
ZB:�j�.VfN:&O�be��C������L��%]���tH���X���;7�be��c2
��zY���t�2�1y�.�\u�݇t�2��1yK+3c�I�ӜTf�:$�&]�̼uL��ł���}�.Vf�:&��ł����.Vf;&o�beKc�`m����d�dۤ���̎�.]��|6'�����a?6��@�p�����	�
<�s�\i;�I~H��ھR��}%Kjsfle�R�rf�)'Ȥv�-�
r����	lN
-s��I؜�R;$����\jsrlf�R;����\js�֘
-�Mj���!��KmN.����Ljs�6焹��%�C23�ڜ4��Ia.�C2��O�R��We�_Ȥ6��8ʾ?�K�
���
�t�����2��!���'3���G��'s�
�q�}2�ڜ����d.�9yl�q1��!�s
2�ͱZ������3w� ��
k�t�2��!yK+s���^�������I+s�
�=w� �ڜ�v�be.�C2�BbIm܇t�2��!y�.dR�b.�)�̥6'K�.V�R;$�t�2�ڜ�w�be.�C��],Ȥ6ǎ*]�̥vH޹��R�3�I+s���V������S�X�KmN�]�X�K퐼�������Y��������.dR;Ět�2�ڜ�K�bA&�C�.V�R��.�)�̥vH^���\js�T�be.�9�o�����.]�̥6'��Mj��)]�̥6'둻X�I��������dk���\js�o���\j�d�.V�R��瞻X�I���������u�.�J퐹�������ݤ���Ԧ�
l
-*s�
�]�X�KmN�]�X�K퐼�������^s
2�
b�t�2�ڜ<Z�bA&�9V�t�2��!yJ+s��ɶK+s�
��t�2�ڜ�5w� �ڜ;7�be.�C2
��ڤ6�"]�̥vH�������}H+s�
��t�2�ڔt�MIe.�9Y6�be.�C��.dR�c�.]�̥vH����R�3�!]�̥vH����Ljs�6�be.�9�6�be.�C�K+s�MI��>��Bp>P��6�LaR��s=b=�4^�_���+d?�A$O�F�V��6���5&Q2�v�L}
B�����ל��v�M{
s����e�CR��\�:$��ю�i�c233�!9�ufdF;榽����h�d�1^/�
�^�Pff�Cr���h�[�:䄙ю�i�c233�!��uH
-3�
�q�}23�!y�Q������;���OfF;&�8��B%�.f�9�̌vL�!��ɖ��G��'3�
�q�}23�!��1����h�䱥����h�d�=,h��E�X��<s
ZF;��!]�̌vL�����h�d�����h��I+3�
�=w� 3�!w�����h�dN��4�!p����h�䝻X�2�
3{�9ef�C��bef�c�K+3�
��.]�̌vL^��-�
bG�.VfF;&��ł���ڤ��������'[F;O�bef�C������h��%]�̌vH�U�X�퐼��ł�ю�&]�̌vH�%w��e�c�.VfF���s+3�
��t�23�!Y�t�23�!�o���ю�.]�̌vH��_/�
�t�23�!Y��ł�ю�[�X��lM�X���t�23�1٥�����s�],h����������],h혹������;��O��6�^sP�������h�d٥���ю�K�X���k�bA�h��-]�̌vH
-w��e�C��bef�c�.VfF;$ [...]
"����k
 �}�\a�$J����2�
�ȥ6��`SN�I�[;�2s��I؜�R��&�9)̥vH.�
������2�
�ȥv�-�
�����d�1^���%�C(3�ڜ\�����	l�	s�
�K`�df.�9i���\j�d
`ߟ̥6'�0ʾ��Im��q�}2��!���*�tq�M!e.�C2��OfR��%���O�R;$���d.�9��1���\js��R��b.�C��
dR�c�H+s�
�g�bA&�9��be.�C�.V�R���J+s���s�.V�R;${�bA.�9w����\j�dN�Ē�
��be.�C��],Ȥ6�\`SN�KmN�"]�̥vHv�be.�9��Q���\j�䕻X�Im�
U�X�K퐼s
z�6gj�.V�R���H+3�
��t�2�ڜ�t�2��!yI+s��ɳJ+s���k�],Ȥv�5�be.�9y��łLj��)]�̥6%�����\j��%]�̥6'K�.V�R�����X�K�����\js2
��ڤv����\js�
�����[�X�KmN�&]�̥6'�&]�̥vH�Q���\js��s
2�
b�t�2�ڜ���ł^�
2�t�2�ڜ��t�2��t�MAe.�C�K+s��ɲK+s�
��t�2�ڜ�k�bA&�C�.V�R��G�],Ȥ6�j�.V�R;$O�be.�9�v�be.�C�.V�R����.�R�s�&]�̥vH��^����U������3w� ��
��be.�C�.V�R��.�)�̥6'K
eߟ̥vH��łLjslߥ�����3w��Wjs�8������[�X�Im�&]�̥6'�&]�̥vHv�be.�))Rۧ6��'��C�����a{λ��5�9��r��Ǵ��I~�
-ڶJn�m�fS`�kJ$�*!��eb
�3KYs(!��3_M���`S�d5�2r}ͱe�9���k�-OM�D\\sh9jN%�֚b���4e�S/;͉��WSl�iJ%b��2�)���j�-)ͱ�\SŠ4�2rGͱ0d���
j�]<n�?��i��a�|!W�
���AJ<!\A#!ȥ4� ��Bf�)U˜��B��9���rM�=���/�"�b�{�r
ͱ��3SД�%�� ��
;S�fb�2��*��3��\��\;S��\���9S��r�
-r�̱�
-4����\��\5s,Ex��i���*�%3��T���aF�e2B�\/S��\���-s���b�b��
T�[e�]�@31�L����>�cw*�L^�L��r�
-r�L�Vr�
-2�̩3� w��{.PA.�9v����bg�*��1Ů-h&�9�r�
-riL����Č1g�\��\#�f1A�9v�䢘b��䖘b��
-4W�
�@��X
���a���*��0��
-4�œ�s�
-r'L��r�
-r!L����6�c=� W�;�T����̕
T�K`�]G*�L^́;� ׿�[.PA�~�r͋� �
�@���X�s�
-r�˱+� ���k*�LL�r��*�M/Ŏ�
-4Ӽ��%� w�
;s�
-r�K����v�cW.PA�v)�k*�L��R��r�
-r�˱x���]��*�@���ؙ
-4s����\��\�r��*�-.b.l�
-�be�*��-�z*�LL�Rf�s�
-rs˱3h&����q��Ζcw.PA&l)U[.PAnk)ֶ\��\�r���1Ѵ6��ѧ��C�K��*P��ܠ��Әb%S���t�!��yT�-m�9AK����1���Ԑ\�4$��P
ɥOCR�9՘�5&33��Ӣ�`FfVcnz����jH�S���1p��2�23��Ө�`F˲��r�!'�DkLN����k
�eVCR��֘�����q
�+���/��k��q�}2�1���*�t1��!ef_c2��O�l�8¾?�9ؘ�#�����
�=���Of&6$�-5�/f26&{�aA�džX-R��L��䙻Xв�!��be&fc�.Vfn6${�.Vfz6$�M�X�ژ칋��
�k�.Vf�6&s*$��
���.Vf�6&��ł����Y�)3g��H+3m�]�X��ې�w�be&oc��],h��;�t�2S�1y�.4,n��&]��DnH�"]�l��<�����
ɾK+3���t�2��!yV�be�uC��r
Zj7ƚt�2��!y��ł���S�X�9^N���2Ӽ1yI+3���J+3�����X��ޘ����L��d�����1pJ+3����],h��������
�֤���ɾI+3	
�]�X�y�<��ł�
-��K�X������ł���[�X�9ᐼ�t����9h����
�d�.Vfr8$�.]���pL^���L��^s
Z�8�n�be�r//
�-W
b�H+3]
��t�23�!�v�be&�c�.Vf�8${�],��qȝ�t�2��1�x�r\E�X�9�<s
Z9��C�X��䘼����L椩cN*3�
�e�.VfJ9&{�bA�*�ؾK+3�
�g�bA�-��qH+3�
��t��e�C�6�be&�C�m����3�d�.Vf����5���窪�ʨ��|ߒ���v0�������z�mĿ[���u��$�������'��1���������g���s}v�=$�/v[
-�9Om:�
ϩXy����~�b?Nl�<c+�s�ͳŮ��N�cv��w'�焮o>�����W������
{k��v��W驤�ߕ>�%�
c������WC�^�����oj?�lso�n��ڨWA���w�l�=�_��(;�
�Ξl�P�ǘ�me�]�����`�b�4g�y�Qv>�l�<㫽�=j�v��:O<�������]o�yk�|�ڮ��o;:������=��<A���7��s>�N'�ʹ�r�[j?
6W�����k@=��õ��
��#�yÞu`3}�}
<��تy�W���g˵!��?襡R�N�^2@������{R�O�_ۍ���<O�~<ѾS1a�����{iކ��@/
<Ϲ�K �A(2;�%��~�؊Y�W�f���z�w/��@1���>��Vl����,�<���0ߣ��B�}�}�m��y�
����'M2�_l�:ñO�������el��L}
�Rq4��	�N_D�	��\#��[1�`��L�qk�8�q����=9�7z[=���\8��
���J�
G������g��g� �w���NN��ӗf:Op,���V�3k�m��qk�;_���?�;{c��b��}���'��
�[�|��7Z����U�C�v��~��
�����b��׻6�zצ�1��t�I�nwb�f���6K�6[(v{�����"�\�8�b�@�=��V�#�1k������ˏ��As�!�"f��*�!'�j��u_3�ƭ����J���n�����a6@��gH��C.��W?h���G��A�`���ޕ�}��u
o{���9x`C��
�X�lj��gl�}��qs���� 6vǚ�#ac��l�]_�9t�l�C{}�ñ1�Uכ����d;�i
-��R��u�b��ӛ�ۯ��=�s�-\��K;�
�3�u�b��䦃��V�3��6W߸k�y~Ӥ�����ҝg��u����smɧ��
���t�����"���l�I�;��pU4N<vf"��]��:�}�~���Y����零z�&�
:۟���v����Z�u��	>6�Ј��|����o9Oz]������>���\X�}_G���z���?~��ֻM��۾�ޞ	l��Ј���x���F��w�ڦ5C|h��׶J
����,{ǣ-_�}�7�]صk�ؾ��| 7�O�t(�tppW=`&�@켴���2�m]?
�����NK\��y�����X��<�a0����Y��|����z�{=�w���m�Z.�����#R�gX��W��t"'�u��vog��̀]��
-��4�O�Qd�"��,r���s�9�N�R[G'�-2�
��@���?�,DD�Y����ZC ��ɳ_mK�œ|~M�H�O�#�����cm������SL~�ע
�DF�mO'���D����֐�L�
%�&:�"���_)#2�����N>?&2rּ;��i0�g�Ƴ��N���OE �ȉ�uC[��ϏI���
=D$O���O��
-��4F������DNΖN���_�o��*^�7
�\��#�(&:͞~|ķ
H'r�7Ul
A>?&2��N�N�yM��@Ɠ=���+���� q`!�B�8 k�,����`��-��
f��WY&*����_�R�����c�9���W���������
d<SR�����/��9$�cϵA?��sr<W\{LnϱJkj��8���_
d\S]!Y��(F\"���$��B����<��{<
����
d<VR���e:sr^2ʬc�?��!�\���HC �8'bl~T��d �=)B��g�b�@������y�}�
�����2���19��'s���8+B�������Y��;ܾ����17G��')�!�Y9�
]� �8%bl���O������
m�_`<]�bs�}2#��i�
�
kߟ
dw��l]}2�.�|\��2H�R>�3��#��K�y۔Rs2�v*��pr^SC G.e���ʜ�SJ�hUJ
dϥ|�KJ
�K)u�R٤���R�R������9�o)�co��

����ϥ
rJ)�7�����Ƿ�zn��2H�R��gߟ
d�R��. [...]
-o ��3�.�@ ]�\�r ��
����  �.@�.�@ ]��tQ���E��3�.�@ ]� ]�9!��
����  �.@�.�@ ]�A�p��
��Ie �.`�.ʜ�t�tQ��
�E �
��2Hg�.� \� A�(sB�̥�  �.@�.ʌ�t�tQ�⌤�2�.���EH�R&�"��Rf��	I��K���K���2'$]���2ȞK���2�.���E�&���EH�Rf��	I��K���K���2�SJ��� ��K���2�.���E�&���EH�Rf��	I��K��!���E�)�L�E@ɥ��EH�R&�"`˥��E�
�&�
愤
X�R٥�Y�(9��I�(��Y�(iR�$]9�t�R�` ��2KeN ]���2�.���EH�Rf�
d�Rf�
�I)�t� ��I)��
R�$]9�t�tQ�K)�tQҥ�Y�(٤�Y�(�R�$]9 �֤��@)e�.� �\�,]�� [...]
"
�4�3h��
�qDDic�A2�qDDi�ł
�4�0� �X�!
�4�0'�A��B�i�� �A
�B�i�� �A
�B�ka �A���5�3� �@H�#
� ig�A���1F$# hG�A�9a
�
$# hG�A�	�ia �A��ҥ��R��Y�d�r)
"�	kg-�24��#�r� œ�qFDȞK9ha ]J9ha ��r� �@��r� œ�q�r)C�88r)
"
�Rf
�@ɥ
4�0�.�
4�0� �
"
�J)
"�	kg-�24��CJ9ha ��2k�� J.�A��4)e� l���R����5��*�L��.�
4�0�SJ�5HF %�r� �@��2k��
�qԥ�I�89����4��*�L��.�
4�0�.�
4�0�MJ9ha MJ�5HFH�8jRʤA�
RʬA2r@�Q�R&
�d�RDig��2i'��r� �@��2k��
�q֤�I�89��Y�dp�RDH�Rf
�@ϥ
4�0�MJ9ha �4��G8�}������Y���SY�U���<���I>���>O"
xF&��ZS�G^�gA��%��9���=�g!��LS�7��x��c����~��L��~T"
��t��\?�BH���������c��9SvXP��?5~���E�I�7�|>�|�t�#�Jp�~L���O�$�ўZ+���?���Y˒i��e)�f���<)_A����R���~L�~[��R2
�k�	�@�f�� _�L�?�D�E�I��<�g�;��R�{�p�t���E%X;����!#w~
�&YO��|�e�4���lՏi��%�;+s^
A�M�i���<;a���=��lޟK��Zޞo��+������}\G\էxfQ�A����~��q�2�y/4���s=�s
��f��Q�D�s5�L�Ŏ
��[��dz���|1P���zH�q��
�6�+��qb�"X�5Oڴ�P�;yo�
�?c��*v��Ƈӊi�V���

>ߕ���/������g�g�`��d��#ϥ�{��̳��\3y��|�厹�N
+6f�{ٶ�:�����\`�����7��4���2��܏�S0���r\%�qbk&|!6Gڒ�L�����M{�d�x>����<0�	'�?+Ck>�J[6�3$퍱��h<�7�AG�!�`����~�
ϧ�㹼��y�{�7�����q�"q<���
i�A�A����B����A6Wߍ[��h[/��k�	�6?�>è�^�
:Ƶ�I-s<[=���s�{u:< [...]
�֐�L#���҈�4{|_�-s"�8�7_A'�x����E$O#πQ��N��w?�t"'�6c�r�أ���x�H����_A��H�ru �DNΖN�ϯ�����x��t�s���-��N��w
�. �(����u"!�q���vWS����)-n�qp�[���
S�wJ�<��i�}Q���3�<�غ1�����)M�n�� 5�>�5ZwGA
���)M���\
��*������
T�h� ��x
�Wg����3�C�4v�f�曨[7H�3�E���-�_�L�Qy�ҟ��]SZG�f�#�9:ӍT�s0�&�/r�;�?�t�����o�m�_������7��6�5�&��	�O�w��_����&+?�_�S��������V�_M����i�e�Ϗ���w��M�oR��,�>����7��|��?����gy��|�g
��R���&7�����%���0���$�s���A��Sc��_����ށ���v�>ڜ"oy<D����o��I��d�8S��
�� [...]
w�;:��wΏ���~���%��ڸ#�f�=Sh��i��񐍂��0Lꆁ:>A�"�`�R˜�e��ao��T]����6S?��}�mu�^�&y��
X��q�pTV�
��򝧓�L�γ]�}��Ğ��B�b�쉵��3�=���{O�:��L�H>�
�cE�x=�+TޟU�k�&��Vy7<�d|��sޅ�?�Q��| Z�i��`
��֌��n_^�u �X[���
�&�j+��f� k�����u|��ާ�+��ϟ�z?���y�}�
[��i�Wz�
�����9��*��>0��1b������G;އ��y�>8���
̱�Wv�(����Z��7��w���������\����e]g�f����/n�_x*�3���_�?C�~K`|�t~�>����1�lϪ�o���K��۸���y�.��}|�����ڣ窫�G�u�xSx��3��n�3����3DZ�{୏��eU���#x�����yp�{����T�x`�=
����(v�{|��=
����E�،�K<����?�b�ݍ�gd7d�	3g��ǜ�y���}��*�m�e?���-�!�.��x�g�~�����_.l��U������
)v������s
��	��j���
o��#m��<��06dlu_�N�<��]o�co|�xn����W��߲XW��i������

�{Y��ﱓ_92�����P�x��g=?άgX��դ�0�ş4�揶�������qf���~�?�8��c缪
?�2ά��z�P�ؐ���6;��
����@�㇤j[u�
��T�=�n��q�g�-�V�{
������T�g��
����S��~�o~�w���{f���3{�2�{j=k6�HP�
����Y�����x�s���3A�||�?��M�s���K��7�{��c<�p�'��@��\�O��H��%je
�k
�A�Po�c�?�0xO����g��{f��|
�������>2]�ubYa���o�{>�V�_K
���S��ޯ�����
�����{~�s���|�9�H_�i�9ۮ9��qG����#}|����9Џ�
�l�������v�ٸ�
������8�Ʃ��#�s���Y����
�CP�1����l�������n�'$�1z{��O�}�>ڼ �m�:���tv���}m<
Gi���x��~��υ����u~���?�` Nt���}wI{�:ֻ�3�sڏ+��Z���w�g��}*,���A��D��/�/��]{\��?�sj��'������7{�����h�ځ���A�uM��s��f}X�b���XG���J�S�8ں�ǧg�:'�~�gߍ����q%K�`�p�
v�C�w=}8�]`)�>c�_��_C��Tc)�|i�m��p�;��S=�[����'��߫��3͞f�˻߫T^��jZU�j<�w�Z�pּ�8�TS
2��:�I��
�>�zh\�^w�~� [...]
�=S9��z����f���N��݌7>:3�w��5>ڸ�
#ϥ	��C��OM'��.�ٙ�Y�.�`���RXG#�z?=޲l����LO�w��3� �.vAҗU
���e��
d?����[ޓFx�t�뽵�8���s�t��K�����/���3U�:��?������O�6�v;�2
����C7�"Ξ��o�ԻBW�њW1�m��*��yooy�����:2��a�6�����c�8�tV8��
;�x�m�s�?|(�y]���̨�[�����
�Z�V���1�B��˫�d�a�

�0?3�U��[�ϼ�ի~����g|����y��PDkЧ�s��w){S���Y�Q/�qq
#Yg����y����֑���=��t�<W��
���lMR웁υ���G+0�;��$�g��.w81���k�x���~䳢
S==׬�q]��K�-\]8���z�o6� ώ�x�}�M��o`7���y���Z��0߼����Kk���Lk��-
_��y�R(�f��;����t4�/
���@�.����
,�G�}�c~Z��}�}�8/�=�i
r�p6�O�ob��+
�����z
b�������Q�Gs�U���.���~ۺ̟��
�5�ȶ�
�D�G�-|��K"O�%���D�t\��[�
�Z߳G�	7
@���S�Ә�s��������
�������ԟ?�Bmy7�����9~�3^ӧU�dէ�P�>o?�l�~J�2�[���[O� U�޷ưo��㍻W�b�ݳc�}���ׯ�>��������� Cc`�1��� �
-oyFs�����qc�O���F�9Dch�A�����='N
�s���A���d
�Rv|��V[8�u�w�؈r]!e���c�[
K�x���k�vX��~��F���ČӾ�|>�
�ȟ��v�4����FG>��yy�x�y=@��ao��v��sȞ��o>��
-��m>�B�q#-
�A�;\�1�b 1{Ƭ�4���T����71�X�u��|��[���0c?
�p��e�PM
��~#F�TT�Y�Uy�}���!�'ݳ�ue�g_y�O���GH?�|68��{���`[C�C>��}��_�U� {�^�f!v���vz2?w۞
��o�͵~��	�
���ι��T���T㗿F��T�{J
S�<�=��Y���#2��:�V����a$��]'մ���u�s>\,���bcm�]O��\O��c����
^����Wщm�������_��2_�s�D�
m*����~\!�C�S��&\�jJ�⿦;��z�̉ƣiN�f�S��ͧ%�D缐������7~\{\ۍ{U�7lM�'�D�
 �@#��S���أ��c
�@�_����[��z/����&�ľ��6��`��}[�����d��Z������+� oY������4N��������TO��pB9��S����O�փ
��c4a_�T��6/^��MK4�k*�׸�\�I [...]
]���mo�Ō�y�y���x0k۫,���dm��mj[�s}z?
��We�V�:@����v�t����I�c
��rщ�y�
&2��&��
�Ȯqp>�5�65�7$��.���

&'~L<��:�s�C��7�]_C? v��{�NG��'�p��w�ŵ����
�����-�|�7l��c��>��n�{�M��=�.���d�~�u���
�C7�j���b[���du�C�{��x?�ׅ�{�ķ
Wc>��&��
v�sŴ�B3��mZ:�|d1?���V� ۶[<8���wҺ��
i�$h
׍
Z�us�*ޑW�Ǽ�}�~
-���z������A����Ҝ�*ޑ׬�|;|־��x?A���
ʷ��l�����~�?�v��z?���N]�<��s�8�x�f���?Rv"?ch�v
�u��XI���+�fdwVl^������
2��gt�&�x��E�0ı�{%8^Nl�q=��9���
���fS�$�;
H�v��dzg{��I"�>
�Q�Y�f��}���Lm+x����eo�K��<����$XMc+�.�i�iFq��͛g��f�`g���f4g�n��Y�\}�<���
-mI��y��-y�l>v
�׵x7#2�1
��'@ﰱ}�맍m�>�l�[�5|���_�S�ѡ
�d�7oɽ��%�X���m���>m��Gl<�x\a'�����q��9
���
-l�>�}
��Fx�7�g�v�;C�v��������/�м��G�^8d��v6̛m�M��o�4�:
�c���M3�3���3Ƕ�4��>s��4�9�yS
�w�oi��=~��[��G�����w��[�t �u��n���B����@ڬm�|�~
�H�>����s
�>��
 [G�l;0k�V,����
�>�7�g�
+x�}�O����ׯQ���K#0`�
�_�pÀƹ
�
Oߤ�+bq�����+2$QL~ʈ̪���s�Y����ӟ��\����'���~��y��������?������Iן�����s�i�����ϟ'����i�����<��Uڟ��ߜ��U~�6�>~k�_���#������֗4��O�S�fsS��\ϟҦ��W�)O%]���R��S�ϟ<�}�O�G��4_�S�����O��߻�J�޳Hm�q�J_�����߻����=���
�+��<��Lq)��ۧk5��1��4�d�s�iIw{�#���>�=�T�o�ޣ?}��ܺ�c��O��w)�^m����4�
|��`9��4�|F
K��;{��g��;��=�2��t�;Z����4�X�W�桶�{��kyϣ����Oy��h�卑�DZ���vԯ�D�|^��n��{"m
��w�#���r�M���h�]UW�
�
+���D���;z�o]��m�U�>�4G�׎ʕ�)#��W�񭫵`��Y���:�<���y���:���wG�։�5��ݬ\q�-�몦���-5�j>
���ڴ�'��	��
mM�ZWs�׻hJ{�š'��]��-�I�3ƻ�yJ�D�|jGJ�2��5j��fw�V֜��Nv���<&h#��]��-�Q׾�R��=����s�W�0/����u��>��
���Z?�3R&��B��M�z��u\����OH-�mn�ӻ�j�Ho���wG�#}��;�S�-+ka}��n�m��i�
���^'a/Xu|��9E�b�ѿ����c�?��T���󳤏�2	�,��^&��~7{>�ג��خ��d����=�K٨���e�8xV����뻰���B�vT>���b������]�Z���5Iy֨[�HO�"�F}w�/y���zf[�PO�|ޭ�Gz�ˡ����z���d���#=�i���L�Gz�]����^&i����N���
�k�>!hc�cO��v{z���5�S]J�@o��^d��G�Z3�}�z�HoݹJ^�#�M��E���y[0�u?�}���ǚ�����I�{�z�8��������/��Z����E'	��	�ٕwz�30_CX9,[� [...]
��1#q�+<��U�8:O�gx>��4���}]m�T�i��>_�n��v
��0W�������y�^�}r-z����3]�����nYA��yz_ϣ+h�V�,�%Kh�Ԑ/]>��/�E��s��Y����5%]=�4�!�����3]������.�������u�+Й�:�x�ҕ�9I�\S 4ϫ\$4ס���ͭBW䋄��B�\����k te�Hh
W t��Hh
]	]2��
]�2�oq̅�O	���	]/�B�D�P�j��7��a���+�FBg���t����+�FBW4BW�
��R�+�FBKy����P[ ��e	--BWl�4�+FGBKρ��#��߁�2���2j ��u	-������+)�+|FB˓��2�b �<#Z�J��֫BWr������7��,�T�u��@h͗Z�R�����5��U�f�
1Z���F	��(�u��p��B�\����Z �����
+��	��B�\���էt�R
��qB�\���z%��a2�'��T$t����ֹ�+S+�m��Hh�z �͗�H�*yJh��0�:��V
�|�]!��}���jE$���������@h[o3B[
�ж�o�#o9�޷`�,�;��Z
��^��6�b$��+�F>mCfs.�@h�S ��u	m�PB�Z��PO	���#��y�}��@�j�Jh�k1�ڨ��Z���ԕ�>�b ��
�s%FBW�B{��PJ ��v���:��Hh�-��:���B����r
	]-Y	�s
FB�F�uљL�{�^���Ot��V�H\�]9,[y���
���ƌQZcƠИaٍ�
�1òf�]	d��L���g7f7Ycf�5fr���.k���,�ݘɵ;�vcv�5f1���.k��U
�'W���1�k7f2
�^i�n��,�ݘ����Jcv�5fq���̮[V�7f�<���1�K��n�d at c��Y\�|�1�)���,.]=Ԙٕu�PcfW��h���ʧ5f��Ec�PB�1���@(���@(3�z
��1�k\�P4fqu%��Mw��1�K
�1��)�P4fq=J�5f�1�i
��1����z ��]9Bј�u+�֘�Sj �Y\��6f6�EcfWK�Pk�b�P4fv�
Ec�
Ecfר�P4fvݗj�Y<-��̮')�֘�3�h��Bc�
�Y\w ��]�Bјٕ/%�YL=���.Y�֘�0�h��E	��,�'��̮��h���W �Y\=��̮��Pk���h�캋�6f1<�P4fv=-j��Lh�0�1��Bјٕr �Y\w ��]�*�֘��Bј�U�j��=5Bј�5�h��j9��,�;��̮^�P4f6�+��,.��ݘ�p�@(���j��=O	��1��	��1�
��\� ��]֘�ՕPk���9��,������
�Bј��B�1���@(3��EcW��1��h��x?
+�Ƽ���J��a�	Ѱ���w�]�Iǿ�e
��2F��
ˮ���u�e2Y]&��uij벛�.���2�v�a��ewY]׮��څ�]�.��겘v]v��ev�*�Γ+u�MV�ٵ�2�O��e7Y]׮��zd~�.��겸t�P]f�-+��2{
]AT��%Kh�e2�.Á�,.]>^�ٔt�P]��
���ʺ|�.��\�N�equ���2{j
+��.�k(�V���J uY\O u�]�BQ��5�@(겸���̦;BQ��%�]���@(겸
%��2yP��4BQ��euY\=��̮����⺕P���)5��,�G	}�2j
��.�����,�E]fWρP�eq݁P�ev�E]f�})�V�������z�juY<#��L.�e�P��uBQ�ٕj u�]�RBQ������쒵iuY
#��̮Z�P���y����j-��̮~BQ�������Y	��,�;��̮�(�o]�E]fף���2�P�aB]W��.�+�@(겸�@(�2�rUB�.��	��.��4%��2{j
+��.�kBQ���r uY\w u�]�*���lW uY\2��.��N�P�eq
%��2{�E]�E]&�2��A(겻�.��+�V�ٓs uY\C	}�2J	��.�K���e6�E]fW������P�erź�R��(uل�ÅZ���V�ڳ�`��q��1�(wc�AYcv�ט��5f�Xcf�n�lz�z��L�ݘŵ3�ƻĵ3�vcV�ט��u
q}��L�1��k��ڍY\�����rc&�n���3�O/7f2�Ƭ��1�����L�ݘե����nYAh��ytycV�,��1���;�1�K�����
o�����Y\Y��7fq�+�i�Y]]�܍Y<5B�1�k(��1���@�5fu=�Pk���5j�Y\�
+�ZcVWWB�1��΁Pk���ט��@�5fu=J�n���̦qj��\�1��B�1�+�
+�Ƭ�[	ݍY<�B�1��QBWcCm�Pk��j)���F ���z�ZcV�
��,�Q�֘�u_J�n��i�Pk��z���zF �3��1�����@�5fq���,�|)�֘���֘�%ks7f5�@�5fqբ��Ƭ�'j�Y\�B�1��_�Pk����Y\#+��1���Zc�]��՘��B�1��i��ݘ�d��M֘���֘ŕr ����@�5fq媄�Ƭ�'j�Y\�)��1���@�5fu�@�5fq�
�Ƭ�;j�Y\�*�֘�4�@�5fu�l~�Y
w
+�ZcV�PBwc�S�֘��B�1��3��A�5fr�Ƭ�����,���֘�5��՘�PJ ����@�n�b�-j�Y\�
+�ZcVW�Zcf�јGY{a�~�'<�?߷|X���a��+p�}�]�Iǿ�e��eʲvW��wU6��[�(��+9��5k�䱒�]r�c
k����=��g�cX�
�e�cx���V~��LJ1��z1yv-vˠ��R
�ub��J잇'S
+1<և�#��0yn^"ޅ����&�
^#���8Z0{d}x&K��A
�=�<���'����K�r)k���B�5_rԤ����go�z�ъ��˞GyC�%O���.yƥ���
o�d����
~|�\z�)�Z.{
��:�;Pq�2"o(��X�eOW��nɓ��n˞[x�fK�R�7�Z�<���j��ڔ7tZ򴤼Y�e�P��g�ӳ�6˞[yC�%Ϩ��,y�Kx�
ˎ���Œ�I›uXv
�

�=(��Aeϭ����'U�
ݕ<���\�ҕ7�V�����
��<�o�X��(o��iMyC[%O��7tU�t�
M�<#
o�S�q+oh�之��vT~�Q��P��4����[PO͂vʞ�����'e�
͔=��^J�\�7k��x�7tR�&�Y#%GM��({��6J���7tQ����(yz��C�2.�
-�=<w����wR��@�3�7��x���ɞGyC�t��{z�
�
���›�Nr䬼�s�goo㤇KQ��7��(o�6�R��I�v)oh����z�{b�,���e��Ot�P�|����a��<�A_��?����>��3}DV4��5Mq|U�-�5ٴ�&��&���n�i�Mq��ɮ�Q�kWNr�Ω��t����j'�v�T�W<ɵ���jG����I��>���O6
�^.�d�
T]_e�#��%�\���K���Pqݲ��D���
+�.�.YB_e��QwXU�.4R1%]=�Iե��[���.��*W�Ӛ���򹻩xj
+�Z;U�PBw?O+�Pk��z��Q��k �Z���������ZSӝ��U�%�����)�P��z���X�c��M� �J+�vkUW�ZoW΁Pk�꺕��]�Sj �ګ�
%t�W1��+����êiB�Ŋ��@��Xu݁Pk��5j]V\����6���>+�')��ѪgB�Ӳ�J���ժ��Z�W��Pk��ʗj�VM=j�V\�6w�U��Z�W-J���y��r��Z �z�������
��+�����v�sB���.J�j�jx��y���@�n�l���&���Pk��J9j�W]w �گ�rUBw�U��,�Ҕ�݁�SS �Z��F �z��Z�ZV�
�.,�^�Pk�bW ����d6�F,�;B��k(����)�P���z�֌�e՘]� ��1�v;VWWBw?O΁Pk��J���b(%j-Y]O t�d1���,�vB�+��B�-�����$luy
�D�
������rX��~_<}Q	���ƌQZcƠИaٍ�
�1�L& [...]
%�3{Z	��1��	��1���@(3��EcWWBј�t�@(��ı3�Ecף�Zc&3��A(���1��Bјٕs �Y\�j��=�Bј��(�ocfCm�P4fv���,�EcfWρP4fq݁P4fv�Ecf�})�֘���h��z�j�Y<#��L.4f�И�uBјٕj ��]�RBј���h�쒵i�Y
#��̮Z�Pk��y�h��j-��̮~Bј���h��Y	��,�;��̮�(�oc�Ecf���֘Ʉ�
��z ��])Bј�uBјٕ�j�Y<O ��]�)�֘�SS �Y\#��̮��h���h���U	EcfӸ�h���܍�
w
+��1�k(�֘��@(���@(3�И��Bј�e�Y\]	��̞��h��J�ۘ�PJ �Y\O �3�j
��1��]�P4fq�@(3�bc^�L��	��l�?��¬�a�	Ѱ.y�e�����C�u�Gdu�-_]�W��bu�M�.���:���2�v]׮������v]&׮����2���#��.�i�e5}u�\�.��Vqt�\��d�uY\_]f����L�]����ev=2�\�ɵ벺t�x]�-+uY<�� ���%��e6X]v��eu��A]S���uY]�z�.�+���,�r:�.��+��.���@��eu
%t�e�����'juY\�B�.�k\�P����J��e1�9juY]��������G	�u�=V��4B�.�k�eu�@��eq�
����[	�uY<�B�.��QBW]Cm�P���j�|P��4�V���s �겺�@��eq���,��RBw]VO
�Z]ד��]��3�V��eu�]V��uB�.�+�@��eq�K	����
��,.Y��.�aB�.��%t�e�<�P���j-juY\�
+�Z]VW�Z]��J����V��u%t�e5<�P���zt��.��겛�.��B�.�+�@��eu݁P����U	�uY=O �겸JSBw]OM�P����P���j9juY]w �겸zUB�.�i\�P��������������,��B�.��	�Z]f��ev��P����uY]]	�uY<9B�.�k(��.���@��eu��A]Sm�P���jW �겺z ��2���\��#a��[�':\�|X���a��Л
� �i��5f

+��ݘٱ3,h�d��L���g7f7Ycf�5fr���.k���,�ݘɵ;�vcv�5f1���.k��U
�'W���1�k7f2
�^i�n��,�ݘ����Jcv�5fq���̮[V�7f�<���1�K��n�d at c��Y\�|�1�)���,.]=Ԙٕu�PcfW��h���ʧ5f��Ec�PB�1���@(���@(3�z
��1�k\�P4fqu%��Mw��1�K
�1��)�P4fq=J�5f�1�i
��1����z ��]YW5fq�J�5f��Ecף����
�Bј��R ���F ��]=Bј�uBј�5j ��]���ZcO
��1��IJ�5f�@(3��Bc�
EcfW��P4fv�K	EcS��1�K֦5f1�@(3�jQB�1��	��1���@(3��Ec�� j��Y	��,�;��̮�(�oc�Ecf���֘Ʉ�
��z ��])Bј�uBјٕ�j�Y<O ��]�)�֘�SS �Y\#��̮��h���h���U	EcfӸ�h���܍�
w
+��1�k(�֘��@(���@(3�И��Bј�e�Y\]	��̞��h��J�ۘ�PJ �Y\O �3�j
��1��]�P4fq�@(3���<��A_���'<���U���V����q�K]�!Z[�!�,�awez|We3�)�Ŋ�[��Î]�a��L
+���%�<V�᱆̞]�ݳyv=���1[v9�Ǻ1yj��;ͤcX��g�b�
�K)ŰX'fϮ��yx2��c}�=�>�
���%�]�
�,j���5�{�?�l���Gևw`�$Y
Ԁ�#˃�/y��j��)����˞.�Y�%GM�z/{��f��
�(o��y�74^����g\��.{��K�;+oh����wϥ�������ެ��-#�
��[�t�
�<9+o�칅7k��(UyC�e�#����
�MyC�%OKʛ5Z�
�
}�<=+oh�칕7tY򌪼�ɒ羄7��h�Z,y�$�Y�e�P��`݃k
�W����+yRU��]ɓ/�
͕-]yCo%�;k���P��Y�S��f��
��J�֔7�U��KyCWeOW��T�3��f=�
��J��ooG��

�<OSެ����,h�����)yRV��L�s+o���Ux�VʎGyC'%Oi›5RrԤ����g(oh��iYyCeϭ�����W�
=�,�R��B��s�;(=|'�

�=Cx��I��(oh��y�7tO��z��G�P<��ɞ.�Y�$G��:'{���6Nz��
}�=��fm�,�)o��i��ɞ���g�'����w»g��Ot���ֻ���n�J�8����l�=�Mo�W��ɴ���vd��ŵ� �v
T����%~q}��L�����ڥP\�����r/$�.����!�O/wC2�r���
����~H�]ե��+��nYA(��ytyMT�,��(����;�*�K�ʢ���
������Q\Y��WFq�+�i�Q]]�ܵQ<5B�8�k(��:���@��Gu=�P����5jR\�
+�Z�TWWB�D��΁P����W$��@�UIu=J�.��6ɦqj}�\�P��B�R�+�@��Ju�J讕�)5j�R]����j
�Z�WK��]/�4�V0��s �*���@��Lq���)��RBw�TO
�Z�ד��]6�3�V7�e}�]V8�uB�r�+�@��Nq�K	�ک�
��).Y��z�aB�|��%t�O�<�P+��j-jT\�
+�Z	UW�Z
��J�.���VE�u%t�Q5<�P���zZ tR6Y#u�URu�@��Rq�
�Z��;j�T\�*�����	��EBw;eӈ�Z?%�.���P���j9j%U]w �j��zUB���i\�P�����ʪ���������*��B����	�Zie��Vv��P����U]]	��U<9B���k(������@�Xu=��]a�T[ �J������
�"ˮ�dWw��)��P�+�M��x���=?>��u;�:�
�߫=����Ӳ0��^e<�p�י�{��C��6_����:g�Y�
���&Ma
�y}�ھ
+E��,�n��;���|�a!�ȾM~h�ث��
w��N����;��
��b>���ڏ�D&�
��÷��{��G4�m�
�G�*k��
��=�M��_�����e�l���c��z����4o�J�RY�dk�Sh�m;�U�y��ø?8G��wԘ;'�ẕs���
+�`ܳ��J���É�
M�65?4n�y;/L-~������|���
D���ɽ�b��I��b���iMN!���~
+������	�mY�پ�
�	��ȕ���M���v:�g:,ٷ	������6A<
tUZ}}�9�J&�U)��oy�t����z��:��/K��M{�˒�׶���Jy�b̖����{��g�*�&�U���]���l\vQ��Nqr���~s%L�_��8�K�wY�q��q&�e)~l�K�
��e�v���y��>��'=a#2}?��b�����ۧd3�fL���66�S��>*ƱW&=�{��&	�s��`�2"h�{�~r��x�t:h���w}���E/�%=����^��7Z�띍Znޤ�
��i�|?������[x�gZ�ɷ�i�����B��ق��m�8�}�La�����:�w���;�k?�3��{4��
���;A����B�^r|�tn�U�N�6�	��b$vX�u�`Ӵ�Wlڦ|O
v��@�a!���-h�m�87;*&9L��K����w�A�G���alni��	�ž~'{�s����si��1�lp}�T?,���c�;������J�A��˿@���%�^t� [...]
�|��O%B��u���G�6���]~��A!ظ�[:�j'�
��
�r��]Yσ�K��ʼn|�����?��C��a��e_a��)���pd[��?[���K�'d/w�3[�>���&
{�3ܫ��a���^���^�˽���l\��i�W�ܽg�^/i:x�?���ߺ���=l�>3S�b&S��b����m���
_��c�'Ӣ���Zu�ϼ�}��ڱϽ�qP0.,v�������k%O��9��4`�����>��؃���@]��|�(��j3����~N�H�IZ����R����h�_&�Lq�󙳲Xo����҃ɶ-�
��'��5���9bb֨}R�9a��;���"�C�&��"L���Bʼn���75����y���3Z�k/^�ߪ�
$<�t��'w_
|/��a�Ү8>n�����M�|�/��	�mY"��2�'d_
��]rl�v��AM��p����>���az���x���W��\}$Q���SҮ�?S����C:M�d��F.X������>��$Qhϧ����!6�M�
�Sc[��� [...]
){
]�!ҭ������CʜZ��>�I�ɕ�jk[������A�}���ܲ}�G�Ӵ���q�!��'�%"�
a���=����|"�����	 6r��h
+
ѿ~҆����
R�
4D�u�0���.`+S~�b�Qҷ~�Q��~D)�Ŗ��a�Pr��{A)�����ʆ�?��
R�D|"��E�+�h����D����� �'L@�Ϸ 
K�)�?�!��'�%"}���蟨DϿ�B�ŵ~�-��Z�b��\Y���
+��<3t�Vl���
eN�z���L�E'��W��6�����lvx�,�2UP��q�	�+�$v���)���fd�3��zf�#��� ��u���]xc�%K��
t��>�v�U}޺����.6�"�u�d<dW��%�\�.^��q+԰eWy�X\3�5��
�5��
�M�bq��klj�7
mv��#o�%��p	t��S��o�k�wͱ�ʷ�ؕ�9W~W��j�®�ؕpe����E.�5���V��j\S,��]ElZ�z<�"rSY�1��<�"b��
h��\s9FN�]��N�e
���8���iY�1p�~KM�K����6NK�����ENK��e���i�9pZ�j
��2��#���ȕ��Ӓ�rZr����?���
i��}�|�)EN�uN��N-���:8�O��
#��I�ӕ�#��n�i^�1��<��i
���߅9]�����#��g�4�+r�[�����8��>8��î|p��8�e
��϶���yX���`Q8�k1N��{���9��Ȧrp��8��
9�W
��#���i���izJ�4�"r�p��Nӝ��4Wc�4�8Ms1FNӸ���
�h�NS�����Z?8M-NS�N�����z+$r��6��}�ư�Si��T���~��Ls9N�_�(�i���iJ�r��r
����i��8�N�U�)~��
� ����8S��>z�7W
+�2%
�c�&�ߔ��0q|���S|7��;���,��@�
�;��!�C��	�

+���Q|���
�;��y|�B�
�)
ߡ!�C��n�;��ߡP|7
�
��wH��P(����

+�wh��p|�����i��(�CC|�B��4�w
�!!����
��w
�!!�oE�;4�w(�M����R|��N=�Ch�S��p|�֔S����wh5p���$��P��)�w(��)�w(ߡ����whM9��n��w(����;�9����R|�r
�R|�RN)����
ZSN%����
�88��!EN)�Ci�
�!\�S��P��)�wS8�CC|��N)�C�
�!��)�w(����	�!����whW��;�8���5��P��)�w(�M���
�z|7��;�8���RN9�C��S��y|��N)�C�N)�C��
�M���N%����aDN)�CI�
�!��)�w(��)�w(���A���#�k(��g����#A�p�5�>R?��{
���;4�wW<����;��.Y|w��;4��. ��d����y|w��%��x|�����w�,�C����wW<�C����K�]����
��.Y|w��;4�wW<��f�

+�w�,����
��w<��f�����,������w(�]����w�,�����5��x|����J?8���J:8E|w�EN=�C���ZSN)��tN9��V��!!���N=��r
�z|w�
�z|�B�ݵ��R|�����88E|w!EN=���N=��r
�z|w�
�z|�B�ݵ��r|�����88E|w!EN=���N�]�"�
�]��
ߡP|w�N9�CC|we
�"���"�
�]i���<����
�]���]��S��y|w��z|w�:8���J;8E|���ݥ8���ڥ�R|w�N9�CC|w��z|w�:8���J=8E|�@�ݵ8����
#r��ݕtp���B��z|w�:8����_�=H_����������̗���\�7�bQ�/���^��C?$a�h���'�	
�+��]�	
�'x�,���	
�%x��]��'x�<����%xW<�CC�w��k��P�w��+��Y�w	�%K�x��f	�$x�,���	
��3�'x�,� [...]
	
�'xHH�P(�o�<O��P�7�<J�А�M�
	

+%xӐ�!x�����iH�<�CB��B	�4��)��!���	
<J�!�C�
	

+%xӐ�!x���o
+'xh��!x����I�А�P�7�<�~pJ	
J:8��EN)���	
ZSN9�C������)'x�<�C����\���ԃSJ�p��֔SN�&y��2N=�CH�SJ�P��)%x(��)%x(���)��5�T�i�ࡌ�SO�R�<�vp�	
�9��
�R�7�<�8�o�'x(���<�9��
�z�7�<�
8��
+�r��T���F	
J?8��:8��
�z�7�<�8��RN9�C��SI�y���N)�C�N)�C����M��N%���aDN)�CI���!��)%x(��)%x(K��A�v�y2�y��m
+���{}�L�auQ���{���٭K�,�8�ǡ�	x����'x��wŁ�	�%K�x��f	��rFH��]�o�'xW��]��'xhH�x�w�<J�Y�w�<4K�. ��d	�O��,����%xW<�C�[_��	�5K�P(��f	�O��,���	�5K�x��f	�$x�,�C���N�. ��d	�N�Y�w�<4$xW���'xW��)�
-r�	

+%xךrJ	ޥ+p�	޵8�		ޕ~p�	ޕ����+���<J�5�<$$xW<��V�SJ��]����]�N=��RN=�C��ZSN9�CC�we
�"���"���]i�H�.\�SO�ԃSO�P(��V���!��2N��]H�SO𮴃S$x��]�SN�]�SJ�.��)'x�<���N=��r
�z�w�
�"�C��R
�r�w�RN)��T���!���N=��r
�z�w�
�"�C��Z
�r�����K%p�	
�%xz���+���'xW����A�O����
+O����F��[A� ~:r��V���O��0
=�w�<�C����	�!!�C��n�;��ߡP|��w(
�!!�C��n��w(ߡ!����
�;��!�C��	�

+�w��!x|�����i
ߡP|���n
+�wh��P(������;4�w(�MC|���
�)
ߡY|���
��V$�CC|�B��4��P��)�w(����;�9��n
+�whM9���
+�J|�V�
�M����R|�r
�R|�RN)����
ZSN9����
�88��!EN)�C��ߡ\�ߡԃS��p|�֔S��y|�2N=�CH�S��P����wW��;�zpJ�����j�T�i
ߡ��S��R��;�vp�����z�T�;�+p��
R
�J|��w(���;����;�vp�����Z�T�;�K9���N%����
J?8���:8���
�z|7��;�8��n�;�9��%
�z|��#�ߡ\�ߡ�-���nz�
�(T���~xf�W�ʿ�A�p��x�z*���8
��wh��x|wm�w
�]����wh�]�{�A�
x�x|7��+��.Y|w��;4�wW<��f�

+�w�,����
��w�]����wh�]@|w��+
ߡ!�����5��P(��f�����,�����5��x|�f���w�,�C���ڎ�. ��d����Y|w��;4�wW����wW<�C���B��z|�B�ݵ��R|w�
+�r|w�N)�CB|w��z|w�:8���J=8����kM9��	�ݕqp���B��z|w��z|w�:8���J=8����kM9��
�ݕqp���B��z|w�
�"��pEN=��RN=�C���Z
�r|�����w׊rJ�
�+���
��w�z��kW��K5p���4���S��\�
�]i���<����
�]��S��.��)�wh���S��\�
�]����(����
ߡY|waDN=���N�]�S��\�
�]�K|�����7�-�� ���?}�_O��]�(�O����;��͢�|

+��'xhH�x�wm'x��]��'xh��]�B��`�x�7��+H�.Y�w�<4$xW<��f	

+%x�,���	
�%x��]��'xh��]@�w��+��!���	�5K�P(��f	�O��,���	�5K�x���p;h��]���k;����%xS8��f	��ӌiH��SO𮤃S$xZ��<J�5��KW��k5pJ	
�+����+���'xW���'x(��]k�)%xHH𮌃S$xR���+����+���'xW���'x(��]k�)'xhH𮌃S���9��J;8E�wኜz�w�
�z��B	޵8�
	ޕqp��B��z�w�
�"�C��R�r�w�
+�R�w�N9���	ޕ~p�	ޕ��n��
�"�C��R
�r�w�RN)��T���!���N=��r
�z�w�
�"�C��Z
�r��f	ޅ9��J:8E�w�GN=��r
�z�w�/	�
� |�U
+�'����P}��
+
+�j�<TC�P
�B5��B5
+ո���j
��m��D��n!���jH�P(T�-J�E 
+�jhո��_n"�
+�j�l�B5Ր��P�6
���jH�P(T����B�B5nfG�B5����!P���P
�B��b�L�!!T�n~��Y���B��O�C54�j(�}��j(��B5�tp�B��R�Ɲ��S�J�B�)
��!TCɑS
+�P��)�j(��)�j(��B�)
��5�C5��N%TC��)�j�<TC9o�J�
+��Q��RN)T�¡ZSN%T���88�P
!EN)TCi�
�!\�S
+�P��)�jS�y�H
+�P��)�j(���C5�9�P
�
�z�6!
�,�P
�
�R�6�B5�8�P�5
+�P��)�j(��)�j(���C�	�!����jh�rʡR
�J�6�C5
+��r�TB�i
��ԃS�&p�����MC��0"�����S�z�B5���B5���껿���25߬���jwa����2׮ި�-?�6��l�
�xd�O�o�J�}S�S�ѩe�����J[mŷ:-���O�q�<���!�@��?��7�:���/��9%�ο���+��;��_
���O�G-?�E��)�_,��Ai]��c�
�z�S�>�'��";*>�Ӳ�����X[p�}�ѩ���Ń?8����V��y7m�
�/��������[E�J]T��.<���W:
�oW�g�|#����>1�����o�����t���6ڂ[�ݐ��<�J���
O�
+�5Y��#m����Kˤ'���[���~�9oΦ�B���gN��t� pƩ�Pkz/��ϟ��T��q�=�%��p�]�t��sz3��9�a���� �)�9������^
��633�o�N�aל��ǎj�H3����ޟ��9���u�f�㼼>���
�����I��
�gG'c�O��?w���m���f�}�u��Ln߿H��|�Lc�N��~�7����DaƖ7 �&s����Rf���㮽٤������}*�A}��o[o;5�̽�4�������0��7#�4�R�|�׏+6����n�x��-p�#��wL?���[.?K���;m1�����s
+���&`X�&?<�o�tf�q鹖�X�����S��%����V&
�@ʬe��Z�$[֋�����>*m1[�
Ǿ���^V��Ê� ��[A�W̢
��
�r�9m�V�z����+��$4�SfMju�<���^��X�
O>c�ϴ�l

���#�G���;W=�%����gQ�-��i���3���G�n�����Ig�
��Nƚ����L��:����U���9��6��-��=�[���9g������MW�-�<�6���SL�
��Z�Z�t%�1o��(+��
����+9
�݂���駶�����}����{��暺�ܯy�O�ү�i\��Pk�q��:V��۴�~
����
+�2���&�&����������`d.�c��m���^���g?�o��_|F���q��^?��/�k�נ+�>���'bbt�+J_�c�%��~Ε^R��Ã7���}�п��п7�P�5Ǟy��-H��Y-�J/)|X�&?<�w�tf�Q鉓����i]���پpm�;�Y/`��-��ۆ,e&�{�=�;�޲��4;�[��q��o"�M��~�z5Yo\�%o&��"�ۤ�����w�}�<_T�k÷��ʛ�|�\yz�?_w����Y������S�}��fw�3���C�N�uO�
�����&?4��=E8�W9�5��o���	?��e�M�� ��zݐ^3���mA'��F�
�Nx�����Fc]���P� ��:��~Ϗ
uF�z�w��DA�3�:m�c�;��~G���q�SQ�{A'a��=�+��%�;�šC?쌿�,۸�g
�݂Nm��>*��7._�:��:��]
���&Eg��sl��;�2����Y������Tfy
�0�k�2��yOy%
��k�B�μO�7�>�߼�<���}�O
+q��A����D�`ݾu�
�̚���0W4�d	�7����Ŭ�W{x'��>o�{���2��~n� ���l�h�R��2>=}}V�N���ÿy_��s��z�ܾdT��?
+���죾���Yp�C���xTX{����d��	�թn�ƶ�sXZ^�|��Z��������v�X/m���H��`��~���rm�؟�-�w}�y�e��i�}
+M��&���
��}k��uԵ�X�J�;�|������c���Ye&�<�=V�+��оmΡ�7Mġ}#���^�����>��[X�Y{��H�aOp��~�����+$��?}���2�Y�W�Wٺ�i�IY
��god�
+�z9����B𚿷��0SS^U6Kuo�������}
�n�!�0��7u��އ�'���$���`T�����ɳ����[+oļ��XOM�75>߉����-|*�>�>{�혾���(^
�eΰ��F��u,���<����a��˹�d�;p�>еJ����8��
 ����`��k�
�r
�xl��x����^��
��94�6��ޑ��?�?�h� 
 endstream
 endobj
 4 0 obj
-   24219
+   17668
 endobj
 2 0 obj
 <<
@@ -83,6 +87,7 @@ endobj
    /Group <<
       /Type /Group
       /S /Transparency
+      /I true
       /CS /DeviceRGB
    >>
    /Resources 2 0 R
@@ -95,8 +100,8 @@ endobj
 >>
 endobj
 6 0 obj
-<< /Creator (cairo 1.8.8 (http://cairographics.org))
-   /Producer (cairo 1.8.8 (http://cairographics.org))
+<< /Creator (cairo 1.14.4 (http://cairographics.org))
+   /Producer (cairo 1.14.4 (http://cairographics.org))
 >>
 endobj
 7 0 obj
@@ -107,18 +112,18 @@ endobj
 xref
 0 8
 0000000000 65535 f 
-0000024612 00000 n 
-0000024334 00000 n 
+0000018076 00000 n 
+0000017784 00000 n 
 0000000015 00000 n 
-0000024310 00000 n 
-0000024406 00000 n 
-0000024677 00000 n 
-0000024802 00000 n 
+0000017760 00000 n 
+0000017856 00000 n 
+0000018141 00000 n 
+0000018268 00000 n 
 trailer
 << /Size 8
    /Root 7 0 R
    /Info 6 0 R
 >>
 startxref
-24854
+18320
 %%EOF
diff --git a/bench/test_results/linecolors.pdf b/bench/test_results/linecolors.pdf
index 6fcb739..c797798 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 c4ef234..33ed62f 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
new file mode 100644
index 0000000..bab86ad
Binary files /dev/null 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 77b6d13..786f183 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 3f97d80..37897e7 100644
--- a/bench/test_results/pyferret_run_tests_err
+++ b/bench/test_results/pyferret_run_tests_err
@@ -1,8 +1,8 @@
 Using FERRET /home/users/ksmith/PyFerret/bin/pyferret
-lrwxrwxrwx 1 ksmith tmap 11 Nov  5 16:36 /home/users/ksmith/PyFerret/bin/pyferret -> pyferret.sh
-Using external functions from /home/users/ksmith/PyFerret/ext_func/libs
+-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
 Benchmark run by ksmith
-Note: RUN_TESTS.sh test results for debug build of PyFerret on RHEL5-64
+Note: RUN_TESTS.sh test results for debug PyFerret on RHEL6-64
 Benchmark scripts that will be run:
    bn_syntax.jnl
    bn_dollar.jnl
@@ -226,8 +226,28 @@ Benchmark scripts that will be run:
    bn_date1900_array.jnl
    bn_spawn_size.jnl
    bn_polygon_log.jnl
+   bn694_bug_fixes.jnl
+   bn_permute_ascii.jnl
+   bn_lon_lat_time_string.jnl
+   bn_save_justdim.jnl
+   bn_time2d.jnl
+   bn_legend_labels.jnl
+   bn_DQ.jnl
+   bn695_bug_fixes.jnl
+   bn_f_tax_fcns.jnl
+   bn_fmrc.jnl
+   bn_return_defined.jnl
+   bn_can_var_noerr.jnl
+   bn_annotate.jnl
+   bn_auxiliary.jnl
+   bn_plot_ribbon_gaploc.jnl
+   bn_time_short_axes.jnl
+   bn_floatstr_extended.jnl
+   bn696_bug_fixes
+   bn_bin_regrid
    bn_all_ef.jnl
    bn_startupfile.jnl
+   bn_outline_poly.jnl
 ****** Restricting Ferret paths to bench directory ******
 FER_DAT=.
 FER_DATA=.
@@ -242,31 +262,32 @@ FER_GRIDS=.
 FER_LIBS=/home/users/ksmith/PyFerret/lib
 FER_PALETTE=. /home/users/ksmith/PyFerret/ppl
 FER_WEB_BROWSER=firefox
-Beginning at Wed Nov  5 16:37:14 PST 2014
+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
  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=..."
- *** 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=..."
- *** 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=..."
- *** 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=..."
- *** 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=..."
- *** 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=..."
+           *** 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=..."
+           *** 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=..."
+           *** 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=..."
+           *** 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=..."
+           *** 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=..."
         SET EXPRESSION has not been given or implied
  **ERROR: unknown command qualifier: help
 MESSAGE/CONTINUE /help
@@ -285,12 +306,12 @@ 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: Valid argument $1 choices are: xxxxx|goodbye
+           *** 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: Valid argument $3 choices are: hello|goodbye
+           *** NOTE: Valid argument $3 choices are: hello|goodbye
  **ERROR: my error message
 message/cont $3">greetings|hello|goodbye<my error message"
  **ERROR: my error message
@@ -301,17 +322,17 @@ message/cont $3""
 message/cont $3"<"
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3"||"
- *** NOTE: Valid argument $3 choices are: |
+           *** NOTE: Valid argument $3 choices are: |
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3"|>|"
- *** NOTE: Valid argument $3 choices are: >|
+           *** NOTE: Valid argument $3 choices are: >|
  **ERROR: command syntax: empty text string provided with ">": >|
 message/cont $3">|"
  **ERROR: command syntax: empty text string provided with ">": |<
 message/cont $3"|<"
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3"|>"
- *** NOTE: Valid argument $3 choices are: >
+           *** NOTE: Valid argument $3 choices are: >
  **ERROR: command syntax: arg number not in 1-99 range: $100
 say $100
  **ERROR: command syntax: arg number not in 1-99 range: $100)
@@ -349,16 +370,16 @@ MESSAGE/CONTINUE `1*/3`
  **ERROR: command syntax: sst*/3
           * before / is illegal
 MESSAGE/CONTINUE `sst*/3,return=lunits`
- **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,units,dset,
+ **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,f0,units,dset,
             dsetnum,dsetpath,dsettitle,*size,*start,*end,
             *units,*axis,nc_scale,nc_offset,user_scale,user_offset,
-            calendar,dtype,xmod,tmod,status,isDepth,isReady
+            calendar,dtype,xmod,tmod,status,isDepth,isReady,defined
           sst,return=Xsize
 MESSAGE/CONTINUE `sst,return=Xsize`
- **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,units,dset,
+ **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,f0,units,dset,
             dsetnum,dsetpath,dsettitle,*size,*start,*end,
             *units,*axis,nc_scale,nc_offset,user_scale,user_offset,
-            calendar,dtype,xmod,tmod,status,isDepth,isReady
+            calendar,dtype,xmod,tmod,status,isDepth,isReady,defined
           sst,return=trash
 MESSAGE/CONTINUE `sst,return=trash`
 *** Running test: bn_letd.jnl
@@ -373,12 +394,22 @@ can var
  LISTing to file v1file.nc
 *** Running test: bn_if.jnl
  Cached data cleared from memory
+ **ERROR: invalid command: ENDIF can only be used in an IF clause
+ENDIF
+ **ERROR: command syntax: ELIF cannot be used in single line IF
+          IF 0 THEN say ERROR ELIF 1 THEN say "CORRECT if you see this"
+IF 0 THEN say ERROR ELIF 1 THEN say "CORRECT if you see this"
+ **ERROR: command syntax: Trash after ENDIF
+          IF 0 THEN say ERROR ELSE say "CORRECT if you see this" ENDIF say trash
+IF 0 THEN say ERROR ELSE say "CORRECT if you see this" ENDIF say trash
+           *** NOTE: Unclosed IF statement ... assuming ENDIF
  **ERROR: invalid command: ELSE can only be used between IF and ENDIF
 else
  **ERROR: invalid command: ENDIF can only be used in an IF clause
 endif
  **ERROR: invalid command: ELIF can only be used between IF and ENDIF
 elif
+           *** NOTE: Unclosed IF statement ... assuming ENDIF
 *** Running test: 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
@@ -396,7 +427,7 @@ load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Ambiguous coordinates on X axis: X[I=1:5] - X[I=6:9]
+           *** NOTE: Ambiguous coordinates on X axis: X[I=1:5] - X[I=6:9]
  **ERROR: inconsistent sizes of data regions: X axis
           X[I=6:9] has 4 points (I=6:9)
           expression has 5 points (I=1:5)
@@ -471,8 +502,8 @@ Re-defining viewport LM6
 Re-defining viewport UM6
  Using every   2th vector in the X direction
  Using every   2th vector in the Y direction
- *** NOTE: /XLIMITS and /YLIMITS are deprecated.
- *** NOTE: Use /HLIMITS and /VLIMITS instead.
+           *** NOTE: /XLIMITS and /YLIMITS are deprecated.
+           *** NOTE: Use /HLIMITS and /VLIMITS instead.
  **ERROR: invalid command: color=noexist
           Colors are Black, Red, Green, Blue, LightBlue, Purple, and White
 plot/over/i=1:10/color=noexist i
@@ -486,7 +517,7 @@ plot/over/i=1:10/size=-1 i
  **ERROR: invalid command: color=noexist
           Colors are Black, Red, Green, Blue, LightBlue, Purple, and White
 cont/over/i=1:10/color=noexist i
- *** NOTE: /THICKNESS ignored unless /COLOR (or /PEN) given
+           *** NOTE: /THICKNESS ignored unless /COLOR (or /PEN) given
  **ERROR: dimensions improperly specified: overlay not valid in plane of plot
           cont/over/i=1:10/thick=4 i
 cont/over/i=1:10/thick=4 i
@@ -495,8 +526,8 @@ cont/over/i=1:10/thick=4 i
 cont/over/i=1:10/sigdig=-1 i
 *** Running test: bn_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=..."
 Replacing definition of axis LON_FIELD_I_AXIS
 Replacing definition of axis LON_FIELD_J_AXIS
 Replacing definition of axis LAT_FIELD_I_AXIS
@@ -520,8 +551,8 @@ shade/nolabel sst, x_page, 0*y_page
 shade/nolabel sst, x_page[j=1:12], 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: 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_symbols.jnl
  Cached data cleared from memory
  **ERROR: command syntax: illegal name: TEST*
@@ -533,12 +564,12 @@ 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: Valid symbol test2 choices are: hello|bye|
+           *** 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: Valid symbol t2 choices are: solong>really hello|bye|
+           *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
 *** Running test: bn_comma_delimited.jnl
  Cached data cleared from memory
 *** Running test: bn_dynamic_grids.jnl
@@ -588,12 +619,12 @@ list tu
  Cached data cleared from memory
  **ERROR: request exceeds memory setting: 25 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.
+           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
  Cached data cleared from memory
- *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] +  X[X=1.1:11:1.5]
- *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] +  X[X=1.1:11:1.5]
- *** NOTE: Ambiguous coordinates on X axis: TEMP[I=101:120:4]+X[I=101:120:4]
+           *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] +  X[X=1.1:11:1.5]
+           *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] +  X[X=1.1:11:1.5]
+           *** NOTE: Ambiguous coordinates on X axis: TEMP[I=101:120:4]+X[I=101:120:4]
  **ERROR: invalid command: non-positive delta value: X[I=1:5:-1]
 list x[i=1:5:-1]
  **ERROR: invalid command: non-positive delta value: X[I=1:5:0]
@@ -657,9 +688,9 @@ list a
  LISTing to file test_abs.cdf
  LISTing to file test_abs.cdf
  LISTing to file test_abs.cdf
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
- *** NOTE: Write the data initially with the /BOUNDS qualifier
+           *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
+           *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
+           *** NOTE: Write the data initially with the /BOUNDS qualifier
  LISTing to file test2.cdf
  LISTing to file FL.cdf
  LISTing to file FTLON.cdf
@@ -723,7 +754,7 @@ list/format=cdf/l=13/append/file=test_abs.cdf l1
  LISTing to file test_fil.cdf
  LISTing to file test_fil.cdf
  LISTing to file test_fil.cdf
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
 *** Running test: bn_regrid_transforms.jnl
  Cached data cleared from memory
  **ERROR: regridding: G=W - more than 1 target grid
@@ -732,8 +763,8 @@ load temp[g=u,g=w]
 load temp[g=x]
 *** Running test: bn_axis_limits.jnl
  Cached data cleared from memory
- *** NOTE: /XLIMITS and /YLIMITS are deprecated.
- *** NOTE: Use /HLIMITS and /VLIMITS instead.
+           *** NOTE: /XLIMITS and /YLIMITS are deprecated.
+           *** NOTE: Use /HLIMITS and /VLIMITS instead.
  **ERROR: command syntax: xlimits
 plot/xlimits i
  **ERROR: command syntax: xlimits= i
@@ -787,8 +818,8 @@ LIST a[gt=tcal]
  Cached data cleared from memory
 *** Running test: bn_gc_functions.jnl
  Cached data cleared from memory
- *** NOTE: /XLIMITS and /YLIMITS are deprecated.
- *** NOTE: Use /HLIMITS and /VLIMITS instead.
+           *** NOTE: /XLIMITS and /YLIMITS are deprecated.
+           *** NOTE: Use /HLIMITS and /VLIMITS instead.
 *** Running test: bn491_bug_fixes.jnl
  Cached data cleared from memory
  LISTing to file test.cdf
@@ -819,14 +850,12 @@ Replacing definition of axis TAX
 list v2-and-minus
  **ERROR: dimensions improperly specified: 99999999 words were requested.
 list x
- *** NOTE: Check for unspecified limits on an ABSTRACT axis
- *** NOTE: Use the SHOW GRID command to see the axes
+           *** NOTE: Check for unspecified limits on an ABSTRACT axis
+           *** NOTE: Use the SHOW GRID command to see the axes
  **ERROR: dimensions improperly specified: 99999999 words were requested.
 list i
- *** NOTE: Check for unspecified limits on an ABSTRACT axis
- *** NOTE: Use the SHOW GRID command to see the axes
- **ERROR: variable unknown or not in data set: 'i'
-list 'i'
+           *** NOTE: Check for unspecified limits on an ABSTRACT axis
+           *** NOTE: Use the SHOW GRID command to see the axes
  **ERROR: command syntax: v2-and-minus[i=5:15 at ddc]
           - before and is illegal
 list v2-and-minus[i=5:15 at ddc]
@@ -837,15 +866,15 @@ list v2-and-minus[i=5:15 at ddc]
  LISTing to file junk.dat
  **ERROR: request exceeds memory setting: 24000 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.
+           *** 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.
 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.
+           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
 Replacing definition of axis XAX
 Replacing definition of axis YAX
 Replacing definition of axis ZAX
@@ -855,7 +884,7 @@ Replacing definition of axis TAX
 SET DATA/EZ/format=stream/var=num/grid=mygrid NoSuchFile.dat
  **ERROR: Size of file ./junk.dat doesn't match size specified by variables/grid
 load num
- *** NOTE: Binary file reading: Insufficient memory reading variable    2
+           *** NOTE: Binary file reading: Insufficient memory reading variable    2
  **ERROR: invalid command: variable permutations only allowed for STREAM format
 SET DATA/EZ/var=num/order=vxyzt/grid=mygrid junk.dat
  **ERROR: invalid command: invalid argument for /TYPE
@@ -886,42 +915,42 @@ Replacing definition of axis TAX
 Replacing definition of axis TAX
 Replacing definition of axis TAX
 Replacing definition of axis TAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
  **ERROR: improper grid or axis definition: unrepairable repeated axis coords
 define axis/from/x/name=xax {6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
  **ERROR: improper grid or axis definition: unrepairable repeated axis coords
 define axis/from/x/name=xax/edges {6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
  **ERROR: improper grid or axis definition: unrepairable repeated axis coords
 define axis/from/x/name=xax/edges {6,6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
 Replacing definition of axis XAX2
- *** NOTE: (fyi) units are not subject to auto-conversion: BLAHS
+           *** NOTE: (fyi) units are not subject to auto-conversion: BLAHS
 Replacing definition of axis XAX2
 *** Running test: bn_polygon.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: bn500_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
@@ -946,7 +975,7 @@ Replacing definition of axis XAX2
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1002,8 +1031,8 @@ stat i, noname(i)
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** 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
  **ERROR: invalid command: delta values may only modify variable names
 LIST/i=2:4:2 VAR
  PERMANENT data cleared from memory
@@ -1012,15 +1041,15 @@ LIST/i=2:4:2 VAR
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** 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_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
+           *** 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
  Cached data cleared from memory
 *** Running test: bn_regrid_to_user.jnl
@@ -1040,11 +1069,11 @@ Replacing definition of axis TWEEKS
 Replacing definition of axis TWEEKS
 Replacing definition of axis TWEEKS
  LISTing to file calsst.cdf
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 360.00 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 360.00 days
 Replacing definition of grid TGRID
 Replacing definition of axis TDAYS
 Replacing definition of grid TGRID
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
 *** Running test: bn_dash_dot.jnl
  Cached data cleared from memory
  **ERROR: command syntax: dash=(1., 2.)
@@ -1059,8 +1088,8 @@ 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
- *** 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=..."
  Using every   2th vector in the X direction
  Using every   2th vector in the Y direction
  PERMANENT data cleared from memory
@@ -1166,10 +1195,10 @@ list strcat ("All work and no play")
  LISTing to file test_modulo.cdf
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** 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
+           *** NOTE: Not using NetCDF strides for multi-cycle modulo
+           *** 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
  Cached data cleared from memory
 Re-defining viewport MID
@@ -1209,14 +1238,26 @@ list a[gx=xnrst at sum]
  **ERROR: invalid command: cant use this regrid transform on strings: @MOD
 list a[gx=xnrst at mod]
  LISTing to file foo.cdf
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" - {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" * {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" / {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" ^ {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+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
  Cached data cleared from memory
 *** Running test: 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=..."
+           *** 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
  Cached data cleared from memory
 Replacing definition of axis TAX
@@ -1224,12 +1265,12 @@ Replacing definition of grid G1
  **TMAP ERR: syntax error in string
              Unrecognized field type: D
              Data set: ./bn_delimited_read_date_time.dat
- *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
+           *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
 SET DATA/FORM=delimited/type="d, da2,date2"  bn_delimited_read_date_time.dat
  **TMAP ERR: syntax error in string
              Unrecognized field type: DATE2
              Data set: ./bn_delimited_read_date_time.dat
- *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
+           *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
 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
@@ -1277,50 +1318,47 @@ Replacing definition of axis XAX
 Replacing definition of axis YAX
  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
 *** Running test: bn_cancel_axes.jnl
  Cached data cleared from memory
  LISTing to file longax.dat
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: regarding ./test_axes.nc ...
- *** NOTE: Climatological axes test_irreg, test_seas defined
+           *** NOTE: regarding ./test_axes.nc ...
+           *** NOTE: Climatological axes test_irreg, test_seas defined
 *** Running test: bn542_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
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file string4d.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: regarding ./test_axes.nc ...
- *** NOTE: Climatological axes test_irreg, test_seas defined
- *** NOTE: Not deleted: TEST_IRREG
- *** NOTE: Axis is in use by grid (G001)
- *** NOTE: Not deleted: TEST_IRREG
- *** NOTE: Axis is in use by grid (G001)
+           *** NOTE: regarding ./test_axes.nc ...
+           *** NOTE: Climatological axes test_irreg, test_seas defined
+           *** NOTE: Not deleted: TEST_IRREG
+           *** NOTE: Axis is in use by grid (G001)
+           *** NOTE: Not deleted: TEST_IRREG
+           *** NOTE: Axis is in use by grid (G001)
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 *** Running test: bn_subspan_modulo.jnl
@@ -1344,26 +1382,26 @@ define axis/x=130e:500:10/modulo=360 xsub
  LISTing to file test_subspan_modulo.nc
  LISTing to file test_subspan_modulo.nc
  LISTing to file test_subspan_modulo.nc
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** 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
+           *** NOTE: Not using NetCDF strides for multi-cycle modulo
+           *** 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
  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
+           *** 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
  Cached data cleared from memory
 *** Running test: bn_mode_logo_lab.jnl
  Cached data cleared from memory
 *** Running test: 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"
+           *** 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
  Cached data cleared from memory
  PERMANENT data cleared from memory
@@ -1388,10 +1426,10 @@ Replacing definition of axis TAX
  TEMPORARY data cleared from memory
 *** Running test: 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=..."
+           *** 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
  Cached data cleared from memory
  PERMANENT data cleared from memory
@@ -1408,21 +1446,21 @@ SHADE/L=1/LEV=0.01d sst
 POLYGON/KEY/LEV=0.01d/coord_ax=Z  PLMxpoly+PLMxpolymark, PLMypoly+PLMypolymark, PLMpolydata
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
- *** NOTE: Valid calendars are GREGORIAN NOLEAP    JULIAN    360_DAY   ALL_LEAP
- *** NOTE: A dummy axis of subscripts will be used
+           *** NOTE: Valid calendars are GREGORIAN NOLEAP    JULIAN    360_DAY   ALL_LEAP
+           *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
+           *** NOTE: A dummy axis of subscripts will be used
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,units,dset,
+ **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,f0,units,dset,
             dsetnum,dsetpath,dsettitle,*size,*start,*end,
             *units,*axis,nc_scale,nc_offset,user_scale,user_offset,
-            calendar,dtype,xmod,tmod,status,isDepth,isReady
+            calendar,dtype,xmod,tmod,status,isDepth,isReady,defined
           axy, return=xx
 MESSAGE/CONTINUE `axy, return=xx`
  PERMANENT data cleared from memory
@@ -1432,7 +1470,7 @@ Replacing definition of axis XAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis YAX
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1442,8 +1480,8 @@ Replacing definition of axis YAX
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
- *** NOTE: Axis has repeated values -- micro-adjusting TIME
+           *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
+           *** NOTE: Axis has repeated values -- micro-adjusting TIME
  **ERROR: illegal limits: "DUMMY" does not exist at T=01-JAN-1990 00:00
           Axis extremes are T=31-DEC-1997 12:00:30-JAN-1998 12:00
 list/t=1-jan-1990 dummy
@@ -1510,9 +1548,9 @@ SHOW VAR/XML
  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: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+           *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+           *** 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
@@ -1584,8 +1622,8 @@ Replacing definition of grid AGRID
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1619,9 +1657,9 @@ Replacing definition of axis YAX
  LISTing to file a.nc
  LISTing to file a.nc
 Replacing definition of axis TAX
- *** NOTE: Axis definition error on axis: TAX
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
+           *** NOTE: Axis definition error on axis: TAX
+           *** NOTE: Bounds given describe non-contiguous axis cells
+           *** NOTE: Using the LOWER bound specified for each axis cell
 Replacing definition of axis TAX
  **ERROR: improper grid or axis definition: BOUNDS specified do not correctly enclose coordinate points
 def axis/t/bounds tax={1.2,2,3.2,5,7,8.8,9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5}
@@ -1633,32 +1671,32 @@ def axis/t/bounds tax={0,2,3.2,5,7,8,9.9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,
 def axis/t/bounds tax={0,2,3.2,5,7,8,9.9}, {0.5,1.5,2.5,3.5,6.5,7.5,8.5,9.5}
  **ERROR: improper grid or axis definition: dimension of bounds (15) must be 2*N or N+1, N=number of axis coordinates (7)
 def axis/t/bounds tax={1.2,2,3.2,5,7,8.4,9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5,10.5}
- *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
+           *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
  **ERROR: improper grid or axis definition: BOUNDS specified do not correctly enclose coordinate points
 def axis/t/bounds tax= {12, 12.2, 36, 36.2, 60, 60.2, 84, 84.2, 108} , {0,24, 0,24, 24,48, 24,48, 48,72, 48,72, 72,96, 72,96, 96,120}
  LISTing to file a.nc
  LISTing to file a.nc
- *** NOTE: Cannot have both /BOUNDS and /RIGID Ignoring /RIGID
+           *** NOTE: Cannot have both /BOUNDS and /RIGID Ignoring /RIGID
  LISTing to file a.nc
- *** NOTE: Cannot have both /BOUNDS and /EDGES Ignoring /EDGES
+           *** NOTE: Cannot have both /BOUNDS and /EDGES Ignoring /EDGES
  LISTing to file a.nc
  LISTing to file irrxzt.nc
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: MONTH_REG
- *** NOTE: Write the data initially with the /BOUNDS qualifier
+           *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
+           *** NOTE: This will result in incorrect box sizes on record axis: MONTH_REG
+           *** NOTE: Write the data initially with the /BOUNDS qualifier
  LISTing to file a.nc
  LISTing to file a.nc
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
- *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
- *** NOTE: Substituting coordinate midpoints
- *** 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
+           *** NOTE: Axis definition error on axis: TGAP
+           *** NOTE: Bounds given describe non-contiguous axis cells
+           *** NOTE: Using the LOWER bound specified for each axis cell
+           *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
+           *** NOTE: Substituting coordinate midpoints
+           *** 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
  Cached data cleared from memory
  **ERROR: command syntax: Invalid calendar name. Names are, GREGORIAN, NOLEAP, JULIAN, 360_DAY, ALL_LEAP
@@ -1673,7 +1711,7 @@ def axis/t/cal=nogood/t=1-jan-2000:1-jan-2010:1/units=months tax
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file xlong.nc
@@ -1722,6 +1760,7 @@ 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
@@ -1732,7 +1771,7 @@ plot/sym/siz=0.3 0*t[gt=vwnd]
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
  LISTing to file aa.nc
  LISTing to file cc.nc
  PERMANENT data cleared from memory
@@ -1743,27 +1782,27 @@ 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: Valid argument $2 choices are: a|b|c|d|
+           *** 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: Valid argument $1 choices are: xxxxx|goodbye
+           *** 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: Valid argument $3 choices are: hello|goodbye
+           *** 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: Valid symbol test2 choices are: hello|bye|
+           *** 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: Valid symbol t2 choices are: solong>really hello|bye|
+           *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1785,29 +1824,28 @@ list/l=1/j=40/i=0:300:0 sst
  Cached data cleared from memory
 *** Running test: bn_regulart.jnl
  Cached data cleared from memory
- *** NOTE: Evenly spaced axis has edges definition: TCOADS - ignored
 *** Running test: bn_labwid.jnl
  Cached data cleared from memory
 *** Running test: bn_redefine_taxis_mc.jnl
  Cached data cleared from memory
 Replacing definition of axis TIME1
- *** NOTE: grid  used by data set coads_clim
- *** NOTE: Redefinition may alter apparent contents of data set
+           *** NOTE: grid GHB1 used by data set coads_clim
+           *** NOTE: Redefinition may alter apparent contents of data set
 Replacing definition of axis TIME1
- *** NOTE: grid  used by data set coads_clim
- *** NOTE: Redefinition may alter apparent contents of data set
+           *** NOTE: grid GHB1 used by data set coads_clim
+           *** NOTE: Redefinition may alter apparent contents of data set
 *** Running test: bn_illegal_axisname.jnl
  Cached data cleared from memory
 Replacing definition of axis COADSX.ILLEGAL
- *** NOTE: grid  used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
- *** NOTE: grid  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
+           *** 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  used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
- *** NOTE: grid  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
+           *** NOTE: grid GEX3 used by data set illeg_axname
+           *** NOTE: Redefinition may alter apparent contents of data set
 *** Running test: bn_exit_script.jnl
  Cached data cleared from memory
 *** Running test: bn_exit_cycle.jnl
@@ -1840,20 +1878,20 @@ Replacing definition of axis COADSY.ILLEGAL
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
  **ERROR: improper grid or axis definition: error in start,end,delta
 DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/t myt
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
  **ERROR: improper grid or axis definition: error in start,end,delta
 DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/T/CALENDAR=noleap myt
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY 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=..."
+           *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+           *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+           *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+           *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1929,7 +1967,7 @@ sho att/all .
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1938,26 +1976,26 @@ sho att/all .
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  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 temp.pp
- *** NOTE: Changing the length  of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.some_text
+           *** NOTE: Changing the value of attribute temp.pp
+           *** NOTE: Changing the length  of attribute temp.pp
+           *** NOTE: Changing the value of attribute temp.some_text
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute temp.long_name
- *** NOTE: Changing the value of attribute temp.units
- *** NOTE: Changing the value of attribute temp.missing_value
- *** NOTE: Changing the value of attribute temp.missing_value
+           *** NOTE: Changing the value of attribute temp.long_name
+           *** NOTE: Changing the value of attribute temp.units
+           *** NOTE: Changing the value of attribute temp.missing_value
+           *** NOTE: Changing the value of attribute temp.missing_value
  LISTing to file a.nc
  LISTing to file a.nc
- *** NOTE: Changing the value of attribute (PSZT).positive
- *** NOTE: Changing the type of attribute (coadsx).modulo
- *** NOTE: Changing the value of attribute (coadsx).modulo
- *** NOTE: Changing the value of attribute (TIME1).time_origin
+           *** NOTE: Changing the value of attribute (PSZT).positive
+           *** NOTE: Changing the type of attribute (coadsx).modulo
+           *** NOTE: Changing the value of attribute (coadsx).modulo
+           *** NOTE: Changing the value of attribute (TIME1).time_origin
  **ERROR: command syntax: enclose coordinate variable name in parentheses
 list coadsx.units
  **ERROR: variable unknown or not in data set: COADSX.UNITS
@@ -1968,17 +2006,17 @@ set att (COADSX81_81).axis = "Z"
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute temp.pp
- *** NOTE: Changing the length  of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.some_text
- *** NOTE: Changing the type of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.pp
- *** NOTE: Changing the type of attribute temp.some_text
- *** NOTE: Changing the value of attribute temp.some_text
- *** NOTE: Changing the value of attribute temp.long_name
- *** NOTE: Changing the value of attribute temp.units
- *** NOTE: Changing the type of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.pp
+           *** NOTE: Changing the value of attribute temp.pp
+           *** NOTE: Changing the length  of attribute temp.pp
+           *** NOTE: Changing the value of attribute temp.some_text
+           *** NOTE: Changing the type of attribute temp.pp
+           *** NOTE: Changing the value of attribute temp.pp
+           *** NOTE: Changing the type of attribute temp.some_text
+           *** NOTE: Changing the value of attribute temp.some_text
+           *** NOTE: Changing the value of attribute temp.long_name
+           *** NOTE: Changing the value of attribute temp.units
+           *** NOTE: Changing the type of attribute temp.pp
+           *** NOTE: Changing the value of attribute temp.pp
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file a.nc
@@ -2009,10 +2047,10 @@ set att (COADSX81_81).axis = "Z"
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
  LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
@@ -2021,27 +2059,27 @@ set att (COADSX81_81).axis = "Z"
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file a.nc
- *** NOTE: Changing the value of attribute (COADSX).point_spacing
- *** NOTE: Changing the value of attribute (COADSY).point_spacing
+           *** NOTE: Changing the value of attribute (COADSX).point_spacing
+           *** NOTE: Changing the value of attribute (COADSY).point_spacing
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
 NetCDF: Numeric conversion not representable (OPeNDAP/netCDF Error code -60)
  data in attribute missing_value not representable in output type NC_INT
 LIST/FORMAT=CDF/file=a.nc/clobber/x=132w/k=1 temp
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  **ERROR: unknown or invalid argument: Can SET VARIABLE/OUTTYPE=INPUT, DOUBLE, FLOAT, INT, SHORT, BYTE
 set var/outtype=char broiled
  **ERROR: unknown or invalid argument: Can SET VARIABLE/OUTTYPE=INPUT, DOUBLE, FLOAT, INT, SHORT, BYTE
 set var/outtype=garbage broiled
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute (PSXT).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 (PSXT).units
- *** NOTE: Changing the value of attribute (PSYT).units
+           *** NOTE: Changing the value of attribute (PSXT).units
+           *** NOTE: Changing the value of attribute (PSYT).units
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2052,19 +2090,19 @@ set var/outtype=garbage broiled
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis X2AX
- *** NOTE: Changing the value of attribute (z4ax).positive
+           *** NOTE: Changing the value of attribute (z4ax).positive
  LISTing to file string4d.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute (TIME).units
- *** NOTE: Changing the value of attribute (TIME).units
- *** NOTE: Changing the value of attribute (TIME).time_origin
- *** NOTE: Changing the value of attribute (TIME).time_origin
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: Changing the value of attribute (TIME).units
+           *** NOTE: Changing the value of attribute (TIME).units
+           *** NOTE: Changing the value of attribute (TIME).time_origin
+           *** NOTE: Changing the value of attribute (TIME).time_origin
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
 Replacing definition of axis TIME
- *** NOTE: grid  used by data set coads_climatology
- *** NOTE: Redefinition may alter apparent contents of data set
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** NOTE: grid GSQ1 used by data set coads_climatology
+           *** NOTE: Redefinition may alter apparent contents of data set
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
@@ -2074,23 +2112,27 @@ Replacing definition of axis TIME
  Cached data cleared from memory
 *** Running test: bn_linecolors.jnl
  Cached data cleared from memory
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+           *** 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=..."
  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
+           *** 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: 
  Cached data cleared from memory
  **TMAP ERR: non-existent or not on line
              this_is_not_a_file.nc
 SET DAT/FORM=CDF this_is_not_a_file.nc
  **Internet Data error
-             NetCDF: 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
@@ -2134,7 +2176,7 @@ shade sst[t=@AVE,Z=@ave]
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS  ... using 1/12 of 360.00 days
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 360.00 days
  LISTing to file t3file.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2145,14 +2187,14 @@ shade sst[t=@AVE,Z=@ave]
  LISTing to file subdir/0000_a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
  LISTing to file a.nc
- *** NOTE: cannot parse "units since date", date= "event"; leaving units string
+           *** NOTE: cannot parse "units since date", date= "event"; leaving units string
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Invalid I axis limits ignored: TEMP
+           *** NOTE: Invalid I axis limits ignored: TEMP
  **ERROR: dimensions improperly specified: specified data is not a line
            - its a 2D region: "plot/i=100/k=1 temp[x=122.5W]"
 plot/i=100/k=1 temp[x=122.5W]
@@ -2198,10 +2240,10 @@ Replacing definition of axis XAX
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
 Replacing definition of axis TIME4
- *** NOTE: grid  used by data set coads_climatology
- *** NOTE: Redefinition may alter apparent contents of data set
+           *** NOTE: grid GSQ1 used by data set coads_climatology
+           *** NOTE: Redefinition may alter apparent contents of data set
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis TIME
@@ -2227,9 +2269,9 @@ cancel axis/stride COADSX
 set axis/stride=2/offset=4 COADSX
  **ERROR: invalid command: not a strided axis: COADSX
 cancel axis/stride COADSX
- *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
+           *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
  LISTing to file d2.nc
- *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
+           *** 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
@@ -2245,8 +2287,8 @@ set axis/stride=2 NORMAL
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
- *** NOTE: They will not be convertible:
+           *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
+           *** NOTE: They will not be convertible:
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file tripolar_missing_lon.nc
@@ -2258,31 +2300,31 @@ set axis/stride=2 NORMAL
  Cached data cleared from memory
 *** Running test: 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
- *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
- *** NOTE: Valid calendars are GREGORIAN NOLEAP    JULIAN    360_DAY   ALL_LEAP
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
- *** 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"
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
- *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
- *** NOTE: They will not be convertible:
- *** NOTE: regarding ./climatological_axes.cdf ...
- *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
- *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
- *** NOTE: A dummy axis of subscripts will be used
- *** 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
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
+           *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
+           *** NOTE: Axis has repeated values -- micro-adjusting TIME
+           *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
+           *** NOTE: Substituting coordinate midpoints
+           *** NOTE: Valid calendars are GREGORIAN NOLEAP    JULIAN    360_DAY   ALL_LEAP
+           *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
+           *** NOTE: A dummy axis of subscripts will be used
+           *** NOTE: Axis definition error on axis: TGAP
+           *** NOTE: Bounds given describe non-contiguous axis cells
+           *** NOTE: Using the LOWER bound specified for each axis cell
+           *** 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"
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
+           *** NOTE: They will not be convertible:
+           *** NOTE: regarding ./climatological_axes.cdf ...
+           *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
+           *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
+           *** NOTE: A dummy axis of subscripts will be used
+           *** 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
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
 *** Running test: bn603_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
@@ -2330,6 +2372,9 @@ SHADE/LEV=300/I=1:100/J=1:100 i+j
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 *** Running test: bn_test_opendap.jnl
+Cannot create cookie file
+Cannot create cookie file
+CURL Error: Couldn't resolve host name
 curl error details: 
  Cached data cleared from memory
 *** Running test: bn611_bug_fixes.jnl
@@ -2399,8 +2444,8 @@ Replacing definition of axis TIME
  LISTing to file b.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Units on axis "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
+           *** NOTE: Units on axis "ENS" are not recognized: count
+           *** NOTE: They will not be convertible:
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file 1a.dat
@@ -2454,35 +2499,35 @@ LIST a_regrid[D=1,GT=b[D=2]@MOD]
  Cached data cleared from memory
 *** Running test: bn_string_ngd_nbd.jnl
  Cached data cleared from memory
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NBD 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
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
+           *** 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
+           *** NOTE: @NGD of string variable, counting null strings as missing
+           *** NOTE: @NGD of string variable, counting null strings as missing
+           *** NOTE: @NBD of string variable, counting null strings as missing
+           *** NOTE: @NBD 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
+           *** NOTE: @NGD of string variable, counting null strings as missing
+           *** NOTE: @NGD of string variable, counting null strings as missing
 Replacing definition of axis XAX
 Replacing definition of axis YAX
 Replacing definition of axis ZAX
 Replacing definition of axis TAX
- *** NOTE: @NBD 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
- *** 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
+           *** NOTE: @NBD 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
+           *** 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
  Cached data cleared from memory
 *** Running test: bn_sort_strings.jnl
  Cached data cleared from memory
 *** Running test: bn_samplexyt.jnl
  Cached data cleared from memory
- *** NOTE: /XLIMITS and /YLIMITS are deprecated.
- *** NOTE: Use /HLIMITS and /VLIMITS instead.
+           *** NOTE: /XLIMITS and /YLIMITS are deprecated.
+           *** NOTE: Use /HLIMITS and /VLIMITS instead.
 *** Running test: bn_last_go_file.jnl
  Cached data cleared from memory
 *** Running test: bn_cancel_upcase_uservar.jnl
@@ -2535,9 +2580,9 @@ Replacing definition of axis TAX
  LISTing to file test_abs.cdf
  LISTing to file test_abs.cdf
  LISTing to file test_abs.cdf
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
- *** NOTE: Write the data initially with the /BOUNDS qualifier
+           *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
+           *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
+           *** NOTE: Write the data initially with the /BOUNDS qualifier
  LISTing to file test2.cdf
  LISTing to file FL.cdf
  LISTing to file FTLON.cdf
@@ -2559,47 +2604,47 @@ list/format=cdf/keep_axnames/append/file=test_abs.cdf ijkl[k=@ave]
              disordered output coordinate value:         363  Axis: TCENTURY
 list/format=cdf/keep_axnames/l=13/append/file=test_abs.cdf l1
  LISTing to file FI.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+           *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
  LISTing to file test_fil0.cdf
  LISTing to file test_fil.cdf
  LISTing to file test_fil.cdf
@@ -2611,80 +2656,80 @@ list/format=cdf/keep_axnames/l=13/append/file=test_abs.cdf l1
  LISTing to file test_fil.cdf
  LISTing to file test_fil.cdf
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf ijk
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf ikl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf ijl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSYT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf jkl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXU doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf ijkl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=1:50/l=2:3 ijl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=51:100/l=2:3 ijl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXU doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=30:40/k=5/l=1:3 ijkl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSZT doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf iavejkl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXU doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf ijavekl
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXU doesnt match CDF file
 list/format=cdf/keep_axnames/append/file=test_fil.cdf ijkavel
  LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE:   Axis was already written with a different set of coordinates
+           *** NOTE: Writing a subset of data with original axis names
+           *** NOTE:   Axis was already written with a different set of coordinates
  **TMAP ERR: attempt to redefine line
              axis PSXU doesnt match CDF file
 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
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
 *** Running test: bn_keep_axisnames.jnl
  Cached data cleared from memory
  LISTing to file a.nc
@@ -2706,8 +2751,8 @@ Replacing definition of axis TSEC
 *** Running test: bn_grads_z.jnl
  Cached data cleared from memory
 Replacing definition of axis CAXIS
- *** NOTE: grid  used by data set grads_bug_file
- *** NOTE: Redefinition may alter apparent contents of data set
+           *** 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
  Cached data cleared from memory
 *** Running test: bn63_bug_fixes.jnl
@@ -2720,20 +2765,20 @@ Replacing definition of axis CAXIS
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
- *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
- *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+           *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+           *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
+           *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+           *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+           *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+           *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+           *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis ZAXLEVITR
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis ZAXLEVITR
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file xz.nc
@@ -2796,22 +2841,22 @@ load/x=160e/y=5s temp[d=2,k=1,g=no_exist12345678901234567890]
  TEMPORARY data cleared from memory
 *** Running test: bn_xml_repl.jnl
  Cached data cleared from memory
- *** NOTE: Changing the value of attribute sst.history
+           *** NOTE: Changing the value of attribute sst.history
 *** Running test: bn65_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
- *** NOTE: Units on axis "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
+           *** NOTE: Units on axis "ENS" are not recognized: count
+           *** NOTE: They will not be convertible:
  LISTing to file mypack.nc
- *** NOTE: LON1_15: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: LAT1800_1800: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: ENS: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: TIME: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: Units on axis "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
+           *** NOTE: LON1_15: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+           *** NOTE: LAT1800_1800: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+           *** NOTE: ENS: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+           *** NOTE: TIME: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+           *** NOTE: Units on axis "ENS" are not recognized: count
+           *** NOTE: They will not be convertible:
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -2854,8 +2899,8 @@ Re-defining viewport V8
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file nc4_deflate4.nc
- *** NOTE: NetCDF Classic style cannot set compression, ignoring /DEFLATE
- *** NOTE: NetCDF Classic style cannot set chunking, ignoring /*CHUNK
+           *** NOTE: NetCDF Classic style cannot set compression, ignoring /DEFLATE
+           *** NOTE: NetCDF Classic style cannot set chunking, ignoring /*CHUNK
  LISTing to file nc4_nodeflate3.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2866,13 +2911,13 @@ Re-defining viewport V8
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file nc4_inttemp_classic.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
  LISTing to file nc4_inttemp_set_list_deflate_chunk.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
  LISTing to file nc4_inttemp_shuffle_set_list_deflate_chunk.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
  LISTing to file nc4_inttemp_set_classic.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
  LISTing to file nc4_deflate4_t1.nc
  **TMAP ERR: syntax error in string
              If ChunkSize is set for any dimension of var, must set for all its dimensions
@@ -2893,17 +2938,17 @@ LIST/FORMAT=CDF/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY 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=..."
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 *** Running test: 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
+           *** 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
+           *** NOTE: Axis reset to be regular (evenly-spaced): MYX1
 *** Running test: bn_set_cancel_redirect.jnl
  Cached data cleared from memory
  Use the GO command to name a file of FERRET commands to be executed.
@@ -2930,7 +2975,7 @@ LIST/FORMAT=CDF/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk
      e.g.   yes? GO filename
  
  Use "GO/HELP filename" to read documentation in  the file to be executed.
- *** NOTE: No active redirects to cancel
+           *** NOTE: No active redirects to cancel
  Use the GO command to name a file of FERRET commands to be executed.
      e.g.   yes? GO filename
  
@@ -2939,14 +2984,14 @@ LIST/FORMAT=CDF/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk
      e.g.   yes? GO filename
  
  Use "GO/HELP filename" to read documentation in  the file to be executed.
- *** NOTE: Axis is already regular: MYAXIS
+           *** NOTE: Axis is already regular: MYAXIS
  **ERROR: variable unknown or not in data set: GARBAGE
 show grid garbage
  Use the GO command to name a file of FERRET commands to be executed.
      e.g.   yes? GO filename
  
  Use "GO/HELP filename" to read documentation in  the file to be executed.
- *** NOTE: stderr is not redirected
+           *** NOTE: stderr is not redirected
  Use the GO command to name a file of FERRET commands to be executed.
      e.g.   yes? GO filename
  
@@ -2995,13 +3040,11 @@ Replacing definition of axis YAX
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: 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.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb [...]
- *** NOTE: exceeds expected length. Maximum characters: 2048
  LISTing to file aa.nc
  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
@@ -3024,11 +3067,11 @@ Replacing definition of axis YAX_DUP_AXNAMES
  LISTing to file a.nc
 *** Running test: bn_NaN_note.jnl
  Cached data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** 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
+           *** 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":
@@ -3051,7 +3094,7 @@ list/L=15:20 tax_year(t[gt=tvar],tvar)
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis lev
+           *** 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
@@ -3065,21 +3108,21 @@ Replacing definition of axis TAXIS
  TEMPORARY 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.089, to avoid running off page.
- *** NOTE: ./err672_vert_axislabel.jnl
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.030, to avoid running off page.
+           *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
+           *** NOTE: ./err672_vert_axislabel.jnl
+           *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
+           *** NOTE: Adjusting Y-axis label size from 0.100 to 0.030, to avoid running off page.
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
+           *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -3137,10 +3180,10 @@ DEFINE VARIABLE A = ifv I LT 5 THEN I ELSE -9
  LISTing to file a.nc
 *** Running test: 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 ...
+           *** 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
  Cached data cleared from memory
 *** Running test: bn_eof_simple.jnl
@@ -3194,34 +3237,32 @@ load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
 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
+           *** 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
- **ERROR: error defining aggregate dataset: Aggregate dataset not defined
-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: 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
- *** 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
+           *** 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
  Cached data cleared from memory
 *** Running test: bn682_bug_fixes.jnl
@@ -3232,8 +3273,8 @@ define data/agg windy = 1,2
  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: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
+           *** NOTE: /home/users/ksmith/PyFerret/go/magnify.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -3258,7 +3299,7 @@ SET DAT/FORM=CDF ./z1.nc
  Cached data cleared from memory
  LISTing to file mytype.nc
  LISTing to file mytype.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
  LISTing to file mytype.nc
  LISTing to file mytype.nc
  LISTing to file mytype.nc
@@ -3278,7 +3319,7 @@ SET DAT/FORM=CDF ./z1.nc
  Cached data cleared from memory
  LISTing to file mytype.nc
  LISTing to file mytype.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
+           *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
  LISTing to file mytype.nc
  LISTing to file mytype.nc
  LISTing to file mytype.nc
@@ -3294,7 +3335,7 @@ LIST/FORMAT=CDF/clobber/file=mytype.nc my_data
  LISTing to file mytype.nc
 *** Running test: bn_axis_nonmonotonic.jnl
  Cached data cleared from memory
- **ERROR: improper grid or axis definition: data for DEFINE AXIS/FROM_VARIABLE is not monotonic at index 12
+ **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
  Cached data cleared from memory
@@ -3337,10 +3378,10 @@ 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: 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=..."
+           *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+           *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+           *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+           *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file a.nc
@@ -3349,8 +3390,10 @@ 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: 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=..."
+           *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+           *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: command syntax: .HELLO
@@ -3379,8 +3422,8 @@ Replacing definition of axis AXI
 Replacing definition of axis AXI_COARSE
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: unrepairable repeated axis coords on axis trdim at subscript 2
- *** NOTE: A dummy axis of subscripts will be used
+           *** NOTE: unrepairable repeated axis coords on axis trdim at subscript 2
+           *** NOTE: A dummy axis of subscripts will be used
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file sst_new.nc
@@ -3391,16 +3434,15 @@ Replacing definition of axis AXI_COARSE
 *** Running test: bn_dsg_e_x.jnl
  Cached data cleared from memory
 *** Running test: bn_nco_append.jnl
-sh: ncks: command not found
  Cached data cleared from memory
  LISTing to file append_to_this.nc
 *** Running test: bn_nobounds.jnl
  Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
+           *** NOTE: Axis definition error on axis: TGAP
+           *** NOTE: Bounds given describe non-contiguous axis cells
+           *** 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
@@ -3410,8 +3452,8 @@ sh: ncks: command not found
  Cached data cleared from memory
 *** Running test: 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
+           *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
+           *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
  **ERROR: command syntax: COLOR
           /COLOR must have an argument for PLOT/OVERLAY
 plot/i=1:100/over/COLOR 0.6*sin(i/7)
@@ -3420,9 +3462,9 @@ plot/i=1:100/over/COLOR 0.6*sin(i/7)
 plot/i=1:100/ribbon/COLOR sin(i/6),0.6*sin(i/7)
 *** Running test: 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: 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
  **ERROR: unknown defining grid: G=NOEXIST
 list b
  **ERROR: command syntax: 45S
@@ -3434,6 +3476,7 @@ 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
+Replacing definition of axis ZAX
 *** Running test: bn686_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
@@ -3446,7 +3489,7 @@ list f
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute a.ival
+           *** NOTE: Changing the value of attribute a.ival
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **TMAP ERR: non-existent or not on line
@@ -3466,8 +3509,8 @@ SET DAT/FORM=CDF snoopy.dat
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: regarding ./climatological_axes.cdf ...
- *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
+           *** NOTE: regarding ./climatological_axes.cdf ...
+           *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3506,8 +3549,8 @@ LIST/FORMAT=CDF/clobber/keep/file=nc b,a[d=1]
 shade b
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute v1.long_name
- *** NOTE: Changing the value of attribute v1.units
+           *** NOTE: Changing the value of attribute v1.long_name
+           *** NOTE: Changing the value of attribute v1.units
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: attribute undefined or invalid attribute name: temp.noexist[d=levitus_climatology]
@@ -3527,9 +3570,9 @@ set var/name=psi myvar
 set var/name=diff w
 *** Running test: 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
+           *** 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
  Cached data cleared from memory
 *** Running test: bn_stddev.jnl
@@ -3558,12 +3601,12 @@ list tax_datestring (tt[L=3], tt, 5)
 list tax_datestring (tt[L=3], "my_tax", "minutes")
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Error in bounds "TAX_BB_PTSPAC_bnds" or bounds do not enclose point on axis TAX_BB_PTSPAC
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: Error in bounds "TAX_BB_EVEN_NOENC_bnds" or bounds do not enclose point on axis TAX_BB_EVEN_NOENC
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: Error in bounds "TAX_BB_IRR_bnds" or bounds do not enclose point on axis TAX_BB_IRR
- *** NOTE: Substituting coordinate midpoints
+           *** NOTE: Error in bounds "TAX_BB_PTSPAC_bnds" or bounds do not enclose point on axis TAX_BB_PTSPAC
+           *** NOTE: Substituting coordinate midpoints
+           *** NOTE: Error in bounds "TAX_BB_EVEN_NOENC_bnds" or bounds do not enclose point on axis TAX_BB_EVEN_NOENC
+           *** NOTE: Substituting coordinate midpoints
+           *** NOTE: Error in bounds "TAX_BB_IRR_bnds" or bounds do not enclose point on axis TAX_BB_IRR
+           *** NOTE: Substituting coordinate midpoints
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: command syntax: must be a constant COS(1)
@@ -3603,17 +3646,17 @@ list {5*3+1, 2+3}
 Replacing definition of axis XAXIS
  **ERROR: request exceeds memory setting: 2369 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.
+           *** 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.
 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.
+           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- *** NOTE: Ambiguous coordinates on X axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
- *** NOTE: Ambiguous coordinates on Y axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
+           *** NOTE: Ambiguous coordinates on X axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
+           *** NOTE: Ambiguous coordinates on Y axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
  LISTing to file aa.nc
  LISTing to file bb.nc
  LISTing to file a.nc
@@ -3652,6 +3695,12 @@ shade a
  TEMPORARY 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: value out of legal range: Negative argument to function. Argument 3 : SUBSTRING
+list substring("hello",1,-2)
+ **ERROR: value out of legal range: Negative argument to function. Argument 3 : SUBSTRING
+list substring("hello",1,-3)
 *** Running test: bn_append_dsg.jnl
  Cached data cleared from memory
 rm: cannot remove `test_save_dsg.nc': No such file or directory
@@ -3667,9 +3716,9 @@ rm: cannot remove `test_save_dsg.nc': No such file or directory
  Cached data cleared from memory
 *** Running test: 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: 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
  **ERROR: unknown defining grid: G=NOEXIST
 list b
  **ERROR: command syntax: 45S
@@ -3691,6 +3740,220 @@ list f
 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
+ Cached data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file aa.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
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY 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: unknown data set: BAD_D
+stat/l=1/x=180/y=0 a
+ 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
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: invalid command: REPEAT what ?
+repeat/range=1:2/name=row
+ **ERROR: invalid command: REPEAT what ?
+repeat/range=1:2/name=row
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+Replacing definition of axis TREDEF
+           *** NOTE: grid GSI1 used by data set a
+           *** NOTE: Redefinition may alter apparent contents of data set
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: invalid command: cairoCFerBind_saveWindow: unrecognized format 'HDF'
+frame/format=hdf/file=a.hdf
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY 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: 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
+*** Running test: bn_permute_ascii.jnl
+ Cached data cleared from memory
+Replacing definition of grid GRID3D
+*** Running test: bn_lon_lat_time_string.jnl
+ Cached data cleared from memory
+*** Running test: 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
+ Cached data cleared from memory
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+*** Running test: bn_legend_labels.jnl
+ Cached data cleared from memory
+*** Running test: 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
+ 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
+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
+ 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
+ Cached data cleared from memory
+*** Running test: bn_return_defined.jnl
+ Cached data cleared from memory
+*** Running test: 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
+ Cached data cleared from memory
+ **ERROR: command syntax: xpos=a2
+annotate/nouser/xpos=a2/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: ypos=b
+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"
+*** Running test: bn_auxiliary.jnl
+ Cached data cleared from memory
+rm: cannot remove `layerz_test_data.txt': No such file or directory
+ LISTing to file layerz_test_data.txt
+ **ERROR: variable unknown or not in data set: (data set ok ?): noexist
+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 ZAX
+*** Running test: bn_plot_ribbon_gaploc.jnl
+ Cached data cleared from memory
+ **ERROR: command syntax: PLOT/VS/RIBBON/GAPLOC plot needs 4 arguments
+plot/vs/thick/line/sym=21/siz=.3/ribbon/gap xpts, 10*ypts, color
+ **ERROR: command syntax: PLOT/GAPLOC applies only to PLOT/VS/RIBBON
+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
+ Cached data cleared from memory
+*** Running test: bn_floatstr_extended.jnl
+ Cached data cleared from memory
+*** Running test: bn696_bug_fixes
+ 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:
+ 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
+*** Running test: bn_bin_regrid
+ Cached 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
 *** Running test: bn_all_ef.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
@@ -3710,6 +3973,8 @@ LOAD/TEMPORARY vflag
  TEMPORARY data cleared from memory
 *** Running test: bn_startupfile.jnl
  Cached data cleared from memory
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
-Ended at Wed Nov  5 16:42:11 PST 2014
+           *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+           *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+*** Running test: bn_outline_poly.jnl
+ Cached data cleared from memory
+Ended at Thu Nov 19 12:07:03 PST 2015
diff --git a/bench/test_results/pyferret_run_tests_log b/bench/test_results/pyferret_run_tests_log
index 8a7e0f3..612e4ca 100644
--- a/bench/test_results/pyferret_run_tests_log
+++ b/bench/test_results/pyferret_run_tests_log
@@ -1,8 +1,8 @@
 Using FERRET /home/users/ksmith/PyFerret/bin/pyferret
-lrwxrwxrwx 1 ksmith tmap 11 Nov  5 16:36 /home/users/ksmith/PyFerret/bin/pyferret -> pyferret.sh
-Using external functions from /home/users/ksmith/PyFerret/ext_func/libs
+-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
 Benchmark run by ksmith
-Note: RUN_TESTS.sh test results for debug build of PyFerret on RHEL5-64
+Note: RUN_TESTS.sh test results for debug PyFerret on RHEL6-64
 Benchmark scripts that will be run:
    bn_syntax.jnl
    bn_dollar.jnl
@@ -226,8 +226,28 @@ Benchmark scripts that will be run:
    bn_date1900_array.jnl
    bn_spawn_size.jnl
    bn_polygon_log.jnl
+   bn694_bug_fixes.jnl
+   bn_permute_ascii.jnl
+   bn_lon_lat_time_string.jnl
+   bn_save_justdim.jnl
+   bn_time2d.jnl
+   bn_legend_labels.jnl
+   bn_DQ.jnl
+   bn695_bug_fixes.jnl
+   bn_f_tax_fcns.jnl
+   bn_fmrc.jnl
+   bn_return_defined.jnl
+   bn_can_var_noerr.jnl
+   bn_annotate.jnl
+   bn_auxiliary.jnl
+   bn_plot_ribbon_gaploc.jnl
+   bn_time_short_axes.jnl
+   bn_floatstr_extended.jnl
+   bn696_bug_fixes
+   bn_bin_regrid
    bn_all_ef.jnl
    bn_startupfile.jnl
+   bn_outline_poly.jnl
 ****** Restricting Ferret paths to bench directory ******
 FER_DAT=.
 FER_DATA=.
@@ -242,9 +262,10 @@ FER_GRIDS=.
 FER_LIBS=/home/users/ksmith/PyFerret/lib
 FER_PALETTE=. /home/users/ksmith/PyFerret/ppl
 FER_WEB_BROWSER=firefox
-Beginning at Wed Nov  5 16:37:14 PST 2014
+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
-! bn401_syntax.JNL
+[?1034h! bn401_syntax.JNL
 ! - test syntax interpretation of Program FERRET
 ! - major changes for FERRET ver 2.00 5/90
 ! - changed mode REMOTE to mode STUPID - REMOTE removed in V2.30
@@ -412,10 +433,10 @@ SHOW DATA/FULL
  name     title                             I         J         K         L         M         N
  P        my P variable                   1:99999999  1:99999999  1:99999999  1:99999999  1:99999999  1:99999999
                on grid ABSTRACT with -1.E+34 for missing data
-             X=0.5:1.E+08  Y=0.5:1.E+08  Z=0.5:1.E+08  E=0.5:1.E+08  F=0.5:1
+             X=0.5:1.E+08  Y=0.5:1.E+08  Z=0.5:1.E+08  E=0.5:1.E+08  F=0.5:1.E+08  
  Q        Q                               1:99999999  1:99999999  1:99999999  1:99999999  1:99999999  1:99999999
                on grid ABSTRACT with -1.E+34 for missing data
-             X=0.5:1.E+08  Y=0.5:1.E+08  Z=0.5:1.E+08  E=0.5:1.E+08  F=0.5:1
+             X=0.5:1.E+08  Y=0.5:1.E+08  Z=0.5:1.E+08  E=0.5:1.E+08  F=0.5:1.E+08  
  
  /FORMAT = UNF
  /SKIP = 2
@@ -547,7 +568,8 @@ SHOW MODES
       LATIT_LABEL      SET               1
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
-      6D_LAB           SET
+      E_LABEL          SET               1
+      F_LABEL          SET               1
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -566,7 +588,8 @@ SHOW MODES
       NODATA_LAB       SET
       SHRINK_YLAB   CANCELLED
       CURVILINEAR   CANCELLED
-      SIGMA         CANCELLED
+      LAYERZ        CANCELLED
+      6D_LAB           SET
 SET MODE IGNORE_ERROR
 SHOW MODES
       MODE            STATE        ARGUMENT
@@ -580,7 +603,8 @@ SHOW MODES
       LATIT_LABEL      SET               1
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
-      6D_LAB           SET
+      E_LABEL          SET               1
+      F_LABEL          SET               1
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -599,7 +623,8 @@ SHOW MODES
       NODATA_LAB       SET
       SHRINK_YLAB   CANCELLED
       CURVILINEAR   CANCELLED
-      SIGMA         CANCELLED
+      LAYERZ        CANCELLED
+      6D_LAB           SET
 CANCEL MODE IGNORE_ERROR
 SHOW MODES
       MODE            STATE        ARGUMENT
@@ -613,7 +638,8 @@ SHOW MODES
       LATIT_LABEL      SET               1
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
-      6D_LAB           SET
+      E_LABEL          SET               1
+      F_LABEL          SET               1
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -632,7 +658,8 @@ SHOW MODES
       NODATA_LAB       SET
       SHRINK_YLAB   CANCELLED
       CURVILINEAR   CANCELLED
-      SIGMA         CANCELLED
+      LAYERZ        CANCELLED
+      6D_LAB           SET
 SHOW MODE STUPID
       MODE            STATE        ARGUMENT
       STUPID        CANCELLED
@@ -1201,8 +1228,8 @@ say "demonstrate that these leading blanks:\
 demonstrate that these leading blanks:       really are preserved
  
 ! continuation prompts are ignored, too
-yes? say "demonstrate that these leading blanks:\
-...?        really are preserved"
+say "demonstrate that these leading blanks:\
+       really are preserved"
 demonstrate that these leading blanks:       really are preserved
  
 ! weird little blank line inputs
@@ -1250,7 +1277,7 @@ J1111111112222222222333333333344444444445555555555666666666677777777778888888888
 *** A111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000B111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000C111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000D111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000E111111111222222222233333333334444444444555555555566666666667777777777888888888899999999 [...]
  
 *** Running test: bn_dollar.jnl
-! test this with GO journal hello
+[?1034h! test this with GO journal hello
  
 ! V510: 3/00 *sh* added tests of backslash escapes and surrounding quotations
 ! V532: 5/01 *sh* added tests of 2-digit arguments; made mode ignore stricter
@@ -1265,7 +1292,7 @@ message/continue here is: $1"some text" and some more stuff
 here is: hello and some more stuff
  
 message/cont here is a big $1 and $3&some text&      ! default provided
- !-> message/cont here is a big hello and some text      ! default provided
+ !-> message/cont here is a big hello and some text
 here is a big hello and some text
  
 message/cont $3			! error - no default
@@ -1373,7 +1400,7 @@ go bn_dollar.sub ((x+y),(x-5))	! ignore comma, get single arg
 ! V510 3/00
 set mode ignore
   message/continue "$1"                ! final quote used to get mis-applied
- !-> message/continue "hello"                ! final quote used to get mis-applied
+ !-> message/continue "hello"
 hello
 set mode/last ignore
 go bn_dollar.sub \"hello\"                 ! quotations as part of argument
@@ -1419,7 +1446,7 @@ set mode ignore
   say ($10)0      ! argument 10 not defined
 set mode/last ignore
 *** Running test: bn_grave.jnl
-! bn420_grave
+[?1034h! bn420_grave
 ! benchmark to test evaluation of grave accent-enclosed expressions
 ! requires FERRET version 4.00 or later
  
@@ -1438,7 +1465,7 @@ message/continue "2 squared + 2 squared =`2^2` + `2+2`"
 2 squared + 2 squared =4 + 4
  
 message/continue "50/0 =`50/0`"	! invalid result
- !-> message/continue "50/0 =bad"	! invalid result
+ !-> message/continue "50/0 =bad"
 50/0 =bad
  
 repeat/i=1:3 message/continue "I=`I`"
@@ -1466,7 +1493,7 @@ I=7
 !cancel region/X ! removed - temporary experiment 3/00 *sh*
  
 message/continue "2+2=``2+2``"	! double grave accents get condensed
- !-> message/continue "2+2=`2+2`"	! double grave accents get condensed
+ !-> message/continue "2+2=`2+2`"
 2+2=`2+2`
  
 message/continue A default substitution: $9"default string|2+2=`2+2`"
@@ -1486,7 +1513,7 @@ message/continue "1/300=`1/300,p=5`"
  !-> message/continue "1/300=0.0033333"
 1/300=0.0033333
 message/continue "1/300=`1/300,p=-5`"	! decimal places
- !-> message/continue "1/300=0.00333"	! decimal places
+ !-> message/continue "1/300=0.00333"
 1/300=0.00333
 message/continue "1/300=`1/300 , precision=10`"
  !-> message/continue "1/300=0.003333333333"
@@ -1710,13 +1737,24 @@ say `a,return=isize`          ! full evaluation occurs
 say `a[i=2:3],return=isize`   ! full evaluation is bypassed
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ -DELETE J        M:  4 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ found   A        M: 10 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  !-> MESSAGE/CONTINUE 2
 2
-say `a[i=100:200],return=isize`    ! WRONG! because full evaluation is bypassed
+say `a[i=100:200],return=isize`    ! correct starting with Ferret v694 (tkt 2213)
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- !-> MESSAGE/CONTINUE 101
-101
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    A        C:  6 dset:   0 I:  100  200  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    (C01,V08 C:  8 dset:   0 I:  100  200  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ found   (C11,V08 M:  8 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ !-> MESSAGE/CONTINUE 5
+5
 set mode/last diagnostic
  
 ! deliberate errors
@@ -1731,7 +1769,7 @@ say `sst,return=trash`
 set mode/last ignore_errors
  
 *** Running test: bn_letd.jnl
-! bn420_letd.jnl
+[?1034h! bn420_letd.jnl
 ! 9/1/95
  
 ! test LET definitions with the /D qualifier:  LET, SHOW, SET VAR, CANCEL
@@ -2005,7 +2043,7 @@ list q[d=v12file]
  3   / 3:   4.00   5.00   6.00   7.00   8.00   9.00  10.00  11.00
  
 *** Running test: bn_if.jnl
-! bn430_if
+[?1034h! bn430_if
 ! 5/6/96
 ! 5/22/96 - added nested multi-line IF with nesting in REJECTED clause
  
@@ -2073,6 +2111,19 @@ CORRECT:sym sub
 ---->CORRECT
 ---->CORRECT again
 ---->nested: all is well after multi-line IF
+CORRECT
+CORRECT
+LOOP=1
+more
+LOOP=2
+more
+LOOP=1
+LOOP=2
+semicolon group
+more
+semicolon group
+CORRECT
+WE SEE THIS CUZ OF IMPLIED CLOSE TO THE PREVIOUS
 >>> --> DELIBERATE WARNING: UNCLOSED IF in NESTED GO FILE<<<
 ---->... now inside of nested IF clause
 ---->CORRECT
@@ -2083,12 +2134,8 @@ SAY ">>> --> DELIBERATE WARNING: UNCLOSED IF <<<"
 IF yes THEN
   say ---->... now inside of IF clause
 ---->... now inside of IF clause
- 
- 
- 
- 
 *** Running test: bn_expressions.jnl
-! bn450_expressions.JNL
+[?1034h! bn450_expressions.JNL
 ! test all manner of expressions
 ! V450 - commented out MODE POLISH test -- mode was eliminated
 ! V530 - new pseudo-variables XBOXLO, YBOXHI, etc.
@@ -2616,7 +2663,7 @@ LIST/L=5:7 TBOXLO, TBOXHI
 6   / 6:  5.500  6.500
 7   / 7:  6.500  7.500
 *** Running test: bn_geometry.jnl
-! bn200_geometry.JNL
+[?1034h! bn200_geometry.JNL
 ! benchmark various geometries for accessing FERRET data
 ! similar tests are performed on:
 !	abstract variable
@@ -3909,7 +3956,7 @@ SET MODE/LAST IGNORE_ERRORS
  
  
 *** Running test: bn_output.jnl
-! bn200_output.JNL
+[?1034h! bn200_output.JNL
 ! - test various output methods in FERRET
 ! rev 0.0  4/27/90 *sh*
  
@@ -6894,7 +6941,7 @@ 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
-! bn200_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
 ! similar tests are performed on:
@@ -7408,7 +7455,7 @@ LIST/ORDER=T v[t=@sbx,i=@ave,j=@ave,k=@ave]
             2      3      4
          -2.855 -1.567 -0.836
 *** Running test: bn_compress.jnl
-! bn200_compress.JNL
+[?1034h! bn200_compress.JNL
 ! benchmark various geometries obtained by compressing FERRET data with @AVE
 ! similar tests are performed on:
 !	abstract variable
@@ -7914,7 +7961,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
-! bn200_interpolate.JNL
+[?1034h! bn200_interpolate.JNL
 ! benchmark interpolation along various axes
  
 SET LIST/PRECISION=6
@@ -8309,7 +8356,7 @@ LIST v[@xpt, at ypt, at zpt, at tpt]
              T        : 1.0005 (interpolated)
           1113.00
 *** Running test: bn_regrid.jnl
-! bn200_regrid.JNL
+[?1034h! bn200_regrid.JNL
 ! test regridding
 ! first test consists of regridding and re-regridding back and comparing
 ! when the variable, v is linear along all axes results should be exact
@@ -9690,7 +9737,7 @@ list a24[g=g48]-a48
  05-JAN-1980 00 / 3: -438312.
  07-JAN-1980 00 / 4: -438312.
 *** Running test: bn_ez.jnl
-! bn401_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
  
@@ -10099,7 +10146,7 @@ list my_var
  9    /  9:   9.00
  10   / 10:  10.00
 *** Running test: bn_plot.jnl
-! bn450_plot.JNL - updated 9/97 from bn320_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
 ! *kob*
@@ -10107,12 +10154,12 @@ list my_var
 ! v581 - for the last set, cancel mode logo, so that .plt files are comparable.
  
 ! 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
+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
@@ -10126,11 +10173,11 @@ show view
  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
+ 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
  
@@ -10182,12 +10229,12 @@ 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)
+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/text=.6/xlim=.333,1/ylim=.5,1 um6    ! redefine it longer in x (11/92)
+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))
@@ -10206,7 +10253,7 @@ 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)
+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
@@ -10220,7 +10267,7 @@ 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)
+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
@@ -10297,7 +10344,7 @@ polygon/thick/color=red/palette=blue {1,2,1}, {2,1,0.5}
  
 set mode/last logo
 *** Running test: bn_curv.jnl
-cancel mode ignore
+[?1034hcancel mode ignore
 !
 ! Your basic map projection
 !
@@ -10474,7 +10521,7 @@ can mode ignore
  
 set mode meta bnplot.plt
 *** Running test: bn_symbols.jnl
-! bn420_symbols
+[?1034h! bn420_symbols
 ! benchmark to test machinery of symbol definition and use
 ! requires FERRET version 4.00 or later
  
@@ -10495,18 +10542,18 @@ show symbols/all
 PPL$XPIXEL = "0"
 PPL$YPIXEL = "0"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.93"
-FERRET_PLATFORM = "Linux 2.6.18-398.el5"
+FERRET_VERSION = "6.96"
+FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:38:15 $"
+NETCDF_VERSION = "4.3.3.1 of Nov 17 2015 15:01:40 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = " 5-Nov-14"
-SESSION_TIME = "16:37"
-SESSION_PID = "13035"
-DELTA_CPU = "0.547915"
-CLOCK_SECS = "0.381"
-CURRENT_DATE = " 5-Nov-14"
-CURRENT_TIME = "16:37:40"
+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"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "PyFerret"
  
@@ -10524,18 +10571,18 @@ show symbol/all
 PPL$XPIXEL = "0"
 PPL$YPIXEL = "0"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.93"
-FERRET_PLATFORM = "Linux 2.6.18-398.el5"
+FERRET_VERSION = "6.96"
+FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:38:15 $"
+NETCDF_VERSION = "4.3.3.1 of Nov 17 2015 15:01:40 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = " 5-Nov-14"
-SESSION_TIME = "16:37"
-SESSION_PID = "13035"
-DELTA_CPU = "0.001"
-CLOCK_SECS = "0.383"
-CURRENT_DATE = " 5-Nov-14"
-CURRENT_TIME = "16:37:40"
+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"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "PyFerret"
 S1 = "hello"
@@ -10545,9 +10592,9 @@ NUM = "3"
 T$DOLLAR = "hi"
 T_HELLO = "hi"
 show symbol s*
-SESSION_DATE = " 5-Nov-14"
-SESSION_TIME = "16:37"
-SESSION_PID = "13035"
+SESSION_DATE = "19-Nov-15"
+SESSION_TIME = "12:03"
+SESSION_PID = "14039"
 S1 = "hello"
 S2 = ""hello""
 S3 = "hello and goodbye"
@@ -10557,15 +10604,15 @@ S2 = ""hello""
 ! exercise CANCEL SYMBOL
 cancel symbol s2
 show symbol s*
-SESSION_DATE = " 5-Nov-14"
-SESSION_TIME = "16:37"
-SESSION_PID = "13035"
+SESSION_DATE = "19-Nov-15"
+SESSION_TIME = "12:03"
+SESSION_PID = "14039"
 S1 = "hello"
 S3 = "hello and goodbye"
 show symbol S*
-SESSION_DATE = " 5-Nov-14"
-SESSION_TIME = "16:37"
-SESSION_PID = "13035"
+SESSION_DATE = "19-Nov-15"
+SESSION_TIME = "12:03"
+SESSION_PID = "14039"
 S1 = "hello"
 S3 = "hello and goodbye"
 cancel symbol s2	! already deleted
@@ -10693,23 +10740,23 @@ show symbols/all
 PPL$XPIXEL = "979"
 PPL$YPIXEL = "844"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.93"
-FERRET_PLATFORM = "Linux 2.6.18-398.el5"
+FERRET_VERSION = "6.96"
+FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:38:15 $"
+NETCDF_VERSION = "4.3.3.1 of Nov 17 2015 15:01:40 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = " 5-Nov-14"
-SESSION_TIME = "16:37"
-SESSION_PID = "13035"
-DELTA_CPU = "0.026997"
-CLOCK_SECS = "0.41"
-CURRENT_DATE = " 5-Nov-14"
-CURRENT_TIME = "16:37:41"
+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"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "PyFerret"
  
 *** Running test: bn_comma_delimited.jnl
-! bn420_comma_delimited
+[?1034h! bn420_comma_delimited
  
 ! 10/2/95 - test comma and tab-delimited outputs
  
@@ -12312,8 +12359,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
@@ -12367,7 +12414,7 @@ LIST/FORMAT=comma/precision=5 10*j+i
 2,21,22,23,24,25
 3,31,32,33,34,35
 *** Running test: bn_dynamic_grids.jnl
-! bn420_dynamic_grids
+[?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
 ! 4/98 *sh* changes once again to confine_axis -- earlier trapped error is once
@@ -14155,7 +14202,7 @@ Dynamic axes:
  
 ! calendar axes
 list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave]   ! 6-day ave
- !-> list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:144 at ave]   ! 6-day ave
+ !-> list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:144 at ave]
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: 144 hour on T at AVE
              FILENAME : gtsa056_1.cdf
@@ -14183,7 +14230,7 @@ list/k=1/y=0/x=180/l=1 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave]
              TIME     : 15-JAN-1982 00:00
           27.85
 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]			! pseudo-var
+ !-> list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:48]
              VARIABLE : T
                         axis (AX001)
              SUBSET   : 3 points (TIME)
@@ -14201,7 +14248,7 @@ set axis/modulo psxt
  
 set mode/last diag
 *** Running test: bn_cdf.jnl
-! bn320_cdf
+[?1034h! bn320_cdf
 ! benchmark to test netCDF input and output
 ! requires version 3.20 or later
 ! updated from version 2.3 1/26/95
@@ -15105,7 +15152,7 @@ list/x=180 fcn_rev_sub
  0    / 11:  0.0000
  1S   / 10:  0.3166
 *** Running test: bn_regrid_transforms.jnl
-! bn500_regrid_transforms
+[?1034h! bn500_regrid_transforms
 ! benchmark to test regridding transformations and syntax
 ! requires version 2.30 or later
 ! 8/92
@@ -18130,7 +18177,7 @@ set mode/last diag
  
  
 *** Running test: bn_axis_limits.jnl
-!bn301_axis_limits.jnl
+[?1034h!bn301_axis_limits.jnl
 ! exercise the new-V301 /XLIMITS and /YLIMITS qualifiers
  
 define axis/x=20e:10w:10/unit=degree xax
@@ -18282,7 +18329,7 @@ set view v44
 contour/x=160E:160W/t=1-jan-1980:1-jan-1982/lev=(-1,1,.25)/xlimits=140e:110w:-9/ylimits=28000:29000:-400/trans sin(x/3)*sin(t/100)
  
 *** Running test: bn_movie.jnl
-! bn301_movie.JNL
+[?1034h! bn301_movie.JNL
 ! - test on-HDF movie creation by Program FERRET
 ! - FERRET ver 3.10 10/93
  
@@ -18291,7 +18338,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
-! bn420_ez_order
+[?1034h! bn420_ez_order
 ! updated from bn311_ez_order 9/95 - improved testing of /FORMAT=STREAM
  
 ! create test files
@@ -19324,7 +19371,7 @@ sp rm -f test_perm48.dat
 sp rm -f test_perm48_10.dat
  
 *** Running test: bn_user.jnl
-! bn312_user.jnl
+[?1034h! bn312_user.jnl
  
 ! test the USER command options
  
@@ -19338,7 +19385,7 @@ set window/size=.5/aspect=.75 2
  
 exit/script
 *** Running test: bn_stream.jnl
-! bn420_stream.jnl
+[?1034h! bn420_stream.jnl
  
 ! jan 96
 ! note that although this benchmark was added only in 1/96 the STREAM
@@ -19399,7 +19446,7 @@ list myv1,myv2
 cancel data stream_data_link.unf
  
 *** Running test: bn_mc.jnl
-!bn430_mc.jnl
+[?1034h!bn430_mc.jnl
 ! kob - 9/5/96
 !     - simple test of mc data access for both irregular and regular time
 !       axis
@@ -19848,7 +19895,7 @@ CAN MODE VERIFY
  
  
 *** Running test: bn_negative_t.jnl
-! bn450_negative_t - 10/97
+[?1034h! bn450_negative_t - 10/97
  
 ! test behavior of negative time step values (unsupported except as absolute
 ! dates prior to Ferret version 4.5)
@@ -19874,27 +19921,27 @@ GO bn_negative_t.sub tvar ave  ! like var and din
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ave]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at ave]
              VARIABLE : T[GT=TAX]
              T        : -5 to 5 (averaged)
           0.0000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ave]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at ave]
              VARIABLE : T[GT=TAX]
              T        : -8 to -5 (averaged)
          -6.667
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ave]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at ave]
              VARIABLE : T[GT=TAX]
              T        : -9 to 3 (averaged)
          -3.000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ave]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at ave]
              VARIABLE : T[GT=TAX]
              T        : -9 to -3 (averaged)
          -6.000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ave]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@ave]
              VARIABLE : T[GT=TAX]
              T        : -11 to 11 (averaged)
           0.0000
@@ -19910,7 +19957,7 @@ GO bn_negative_t.sub tvar iin
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at iin]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at iin]
              VARIABLE : T[GT=TAX]
                         indef. integ. on T
              SUBSET   : 5 points (T)
@@ -19920,14 +19967,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  -8.00
  4    / 8:   0.00
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at iin]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at iin]
              VARIABLE : T[GT=TAX]
                         indef. integ. on T
              SUBSET   : 2 points (T)
  -8   / 2:  -8.00
  -6   / 3: -20.00
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at iin]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at iin]
              VARIABLE : T[GT=TAX]
                         indef. integ. on T
              SUBSET   : 6 points (T)
@@ -19938,7 +19985,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6: -40.00
  2    / 7: -36.00
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at iin]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at iin]
              VARIABLE : T[GT=TAX]
                         indef. integ. on T
              SUBSET   : 3 points (T)
@@ -19946,7 +19993,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3: -28.00
  -4   / 4: -36.00
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@iin]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@iin]
              VARIABLE : T[GT=TAX]
                         indef. integ. on T
              SUBSET   : 11 points (T)
@@ -19973,27 +20020,27 @@ GO bn_negative_t.sub tvar sum
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at sum]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at sum]
              VARIABLE : T[GT=TAX]
              T        : -5 to 5 (summed)
           0.0000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at sum]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at sum]
              VARIABLE : T[GT=TAX]
              T        : -8 to -5 (summed)
          -14.00
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at sum]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at sum]
              VARIABLE : T[GT=TAX]
              T        : -9 to 3 (summed)
          -18.00
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at sum]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at sum]
              VARIABLE : T[GT=TAX]
              T        : -9 to -3 (summed)
          -18.00
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@sum]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@sum]
              VARIABLE : T[GT=TAX]
              T        : -11 to 11 (summed)
           0.0000
@@ -20009,7 +20056,7 @@ GO bn_negative_t.sub tvar rsu
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at rsu]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at rsu]
              VARIABLE : T[GT=TAX]
                         running sum on T
              SUBSET   : 5 points (T)
@@ -20019,14 +20066,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7: -4.000
  4    / 8:  0.000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at rsu]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at rsu]
              VARIABLE : T[GT=TAX]
                         running sum on T
              SUBSET   : 2 points (T)
  -8   / 2:  -8.00
  -6   / 3: -14.00
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at rsu]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at rsu]
              VARIABLE : T[GT=TAX]
                         running sum on T
              SUBSET   : 6 points (T)
@@ -20037,7 +20084,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6: -20.00
  2    / 7: -18.00
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at rsu]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at rsu]
              VARIABLE : T[GT=TAX]
                         running sum on T
              SUBSET   : 3 points (T)
@@ -20045,7 +20092,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3: -14.00
  -4   / 4: -18.00
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@rsu]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@rsu]
              VARIABLE : T[GT=TAX]
                         running sum on T
              SUBSET   : 11 points (T)
@@ -20072,7 +20119,7 @@ GO bn_negative_t.sub tvar shf
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at shf]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at shf]
              VARIABLE : T[GT=TAX]
                         shifted by 1 pts on T
              SUBSET   : 5 points (T)
@@ -20082,14 +20129,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  4.000
  4    / 8:  6.000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at shf]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at shf]
              VARIABLE : T[GT=TAX]
                         shifted by 1 pts on T
              SUBSET   : 2 points (T)
  -8   / 2: -6.000
  -6   / 3: -4.000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at shf]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at shf]
              VARIABLE : T[GT=TAX]
                         shifted by 1 pts on T
              SUBSET   : 6 points (T)
@@ -20100,7 +20147,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  2.000
  2    / 7:  4.000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at shf]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at shf]
              VARIABLE : T[GT=TAX]
                         shifted by 1 pts on T
              SUBSET   : 3 points (T)
@@ -20108,7 +20155,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3: -4.000
  -4   / 4: -2.000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@shf]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@shf]
              VARIABLE : T[GT=TAX]
                         shifted by 1 pts on T
              SUBSET   : 11 points (T)
@@ -20135,27 +20182,27 @@ GO bn_negative_t.sub tvar min   ! like @max
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at min]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at min]
              VARIABLE : T[GT=TAX]
              T        : -5 to 5 (minimum)
          -4.000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at min]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at min]
              VARIABLE : T[GT=TAX]
              T        : -8 to -5 (minimum)
          -8.000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at min]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at min]
              VARIABLE : T[GT=TAX]
              T        : -9 to 3 (minimum)
          -8.000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at min]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at min]
              VARIABLE : T[GT=TAX]
              T        : -9 to -3 (minimum)
          -8.000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@min]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@min]
              VARIABLE : T[GT=TAX]
              T        : -11 to 11 (minimum)
          -10.00
@@ -20171,7 +20218,7 @@ GO bn_negative_t.sub tvar ddf
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ddf]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at ddf]
              VARIABLE : T[GT=TAX]
                         forward derivative on T
              SUBSET   : 5 points (T)
@@ -20181,14 +20228,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  1.000
  4    / 8:  1.000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ddf]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at ddf]
              VARIABLE : T[GT=TAX]
                         forward derivative on T
              SUBSET   : 2 points (T)
  -8   / 2:  1.000
  -6   / 3:  1.000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ddf]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at ddf]
              VARIABLE : T[GT=TAX]
                         forward derivative on T
              SUBSET   : 6 points (T)
@@ -20199,7 +20246,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  1.000
  2    / 7:  1.000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ddf]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at ddf]
              VARIABLE : T[GT=TAX]
                         forward derivative on T
              SUBSET   : 3 points (T)
@@ -20207,7 +20254,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3:  1.000
  -4   / 4:  1.000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ddf]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@ddf]
              VARIABLE : T[GT=TAX]
                         forward derivative on T
              SUBSET   : 11 points (T)
@@ -20234,7 +20281,7 @@ GO bn_negative_t.sub tvar ddb   ! @ddc like ddf and ddb
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ddb]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at ddb]
              VARIABLE : T[GT=TAX]
                         backwards derivative on T
              SUBSET   : 5 points (T)
@@ -20244,14 +20291,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  1.000
  4    / 8:  1.000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ddb]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at ddb]
              VARIABLE : T[GT=TAX]
                         backwards derivative on T
              SUBSET   : 2 points (T)
  -8   / 2:  1.000
  -6   / 3:  1.000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ddb]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at ddb]
              VARIABLE : T[GT=TAX]
                         backwards derivative on T
              SUBSET   : 6 points (T)
@@ -20262,7 +20309,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  1.000
  2    / 7:  1.000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ddb]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at ddb]
              VARIABLE : T[GT=TAX]
                         backwards derivative on T
              SUBSET   : 3 points (T)
@@ -20270,7 +20317,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3:  1.000
  -4   / 4:  1.000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ddb]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@ddb]
              VARIABLE : T[GT=TAX]
                         backwards derivative on T
              SUBSET   : 11 points (T)
@@ -20297,7 +20344,7 @@ GO bn_negative_t.sub tvar sbx  ! like sbn, swl, shn, spz
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at sbx]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at sbx]
              VARIABLE : T[GT=TAX]
                         box smoothed by 3 pts on T
              SUBSET   : 5 points (T)
@@ -20307,14 +20354,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  2.000
  4    / 8:  4.000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at sbx]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at sbx]
              VARIABLE : T[GT=TAX]
                         box smoothed by 3 pts on T
              SUBSET   : 2 points (T)
  -8   / 2: -8.000
  -6   / 3: -6.000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at sbx]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at sbx]
              VARIABLE : T[GT=TAX]
                         box smoothed by 3 pts on T
              SUBSET   : 6 points (T)
@@ -20325,7 +20372,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  0.000
  2    / 7:  2.000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at sbx]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at sbx]
              VARIABLE : T[GT=TAX]
                         box smoothed by 3 pts on T
              SUBSET   : 3 points (T)
@@ -20333,7 +20380,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3: -6.000
  -4   / 4: -4.000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@sbx]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@sbx]
              VARIABLE : T[GT=TAX]
                         box smoothed by 3 pts on T
              SUBSET   : 11 points (T)
@@ -20360,27 +20407,27 @@ GO bn_negative_t.sub tvar loc:-2.2
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at loc:-2.2]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at loc:-2.2]
              VARIABLE : T of -2.2 in T[GT=TAX]
              T        : -5 to 5 (location of -2.2)
          -2.200
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at loc:-2.2]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at loc:-2.2]
              VARIABLE : T of -2.2 in T[GT=TAX]
              T        : -8 to -5 (location of -2.2)
         ....
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at loc:-2.2]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at loc:-2.2]
              VARIABLE : T of -2.2 in T[GT=TAX]
              T        : -9 to 3 (location of -2.2)
          -2.200
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at loc:-2.2]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at loc:-2.2]
              VARIABLE : T of -2.2 in T[GT=TAX]
              T        : -9 to -3 (location of -2.2)
         ....
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@loc:-2.2]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@loc:-2.2]
              VARIABLE : T of -2.2 in T[GT=TAX]
              T        : -11 to 11 (location of -2.2)
          -2.200
@@ -20396,7 +20443,7 @@ GO bn_negative_t.sub tvar weq:-2.2
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at weq:-2.2]	! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at weq:-2.2]
              VARIABLE : T[GT=TAX]
                         weighted equal of -2.2 on T
              SUBSET   : 5 points (T)
@@ -20406,14 +20453,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:    ....
  4    / 8:    ....
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at weq:-2.2]	! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at weq:-2.2]
              VARIABLE : T[GT=TAX]
                         weighted equal of -2.2 on T
              SUBSET   : 2 points (T)
  -8   / 2:....
  -6   / 3:....
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at weq:-2.2]	! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at weq:-2.2]
              VARIABLE : T[GT=TAX]
                         weighted equal of -2.2 on T
              SUBSET   : 6 points (T)
@@ -20424,7 +20471,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:    ....
  2    / 7:    ....
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at weq:-2.2]	! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at weq:-2.2]
              VARIABLE : T[GT=TAX]
                         weighted equal of -2.2 on T
              SUBSET   : 3 points (T)
@@ -20432,7 +20479,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3:....
  -4   / 4:....
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tvar[l=@weq:-2.2]	! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@weq:-2.2]
              VARIABLE : T[GT=TAX]
                         weighted equal of -2.2 on T
              SUBSET   : 11 points (T)
@@ -20475,27 +20522,27 @@ GO bn_negative_t.sub tgap ngd   ! like @nbd
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tgap[t=-5:5 at ngd]	! neg/pos t endpoints
+ !-> LIST tgap[t=-5:5 at ngd]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR (# of points)
              T        : -5 to 5 (number of valid)
           3.000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tgap[t=-5:-8 at ngd]	! neg/neq t endpoints
+ !-> LIST tgap[t=-5:-8 at ngd]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR (# of points)
              T        : -8 to -5 (number of valid)
           1.000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tgap[l=2:7 at ngd]	! neg/pos l endpoints
+ !-> LIST tgap[l=2:7 at ngd]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR (# of points)
              T        : -9 to 3 (number of valid)
           3.000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tgap[l=2:4 at ngd]	! neg/neg l endpoints
+ !-> LIST tgap[l=2:4 at ngd]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR (# of points)
              T        : -9 to -3 (number of valid)
           2.000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tgap[l=@ngd]	! unspecified limits (neg/pos)
+ !-> LIST tgap[l=@ngd]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR (# of points)
              T        : -11 to 11 (number of valid)
           5.000
@@ -20511,7 +20558,7 @@ GO bn_negative_t.sub tgap fav  ! like fln (fnr not implemented)
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST tgap[t=-5:5 at fav]	! neg/pos t endpoints
+ !-> LIST tgap[t=-5:5 at fav]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR
                         ave-filled by 3 pts on T
              SUBSET   : 5 points (T)
@@ -20521,14 +20568,14 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  2.000
  4    / 8:  4.000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST tgap[t=-5:-8 at fav]	! neg/neq t endpoints
+ !-> LIST tgap[t=-5:-8 at fav]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR
                         ave-filled by 3 pts on T
              SUBSET   : 2 points (T)
  -8   / 2: -8.000
  -6   / 3: -6.000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST tgap[l=2:7 at fav]	! neg/pos l endpoints
+ !-> LIST tgap[l=2:7 at fav]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR
                         ave-filled by 3 pts on T
              SUBSET   : 6 points (T)
@@ -20539,7 +20586,7 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  0.000
  2    / 7:  2.000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST tgap[l=2:4 at fav]	! neg/neg l endpoints
+ !-> LIST tgap[l=2:4 at fav]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR
                         ave-filled by 3 pts on T
              SUBSET   : 3 points (T)
@@ -20547,7 +20594,7 @@ LIST $1[l=2:4@$2]	! neg/neg l endpoints
  -6   / 3: -6.000
  -4   / 4: -4.000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST tgap[l=@fav]	! unspecified limits (neg/pos)
+ !-> LIST tgap[l=@fav]
              VARIABLE : IF MOD(T,4) EQ 0 THEN  TVAR
                         ave-filled by 3 pts on T
              SUBSET   : 11 points (T)
@@ -20596,7 +20643,7 @@ GO bn_negative_t.sub blin nul
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST blin[t=-5:5 at nul]	! neg/pos t endpoints
+ !-> LIST blin[t=-5:5 at nul]
              VARIABLE : A[GT=TDST at LIN]
              SUBSET   : 5 points (T)
  -4   / 4: -4.000
@@ -20605,13 +20652,13 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  2.000
  4    / 8:  4.000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST blin[t=-5:-8 at nul]	! neg/neq t endpoints
+ !-> LIST blin[t=-5:-8 at nul]
              VARIABLE : A[GT=TDST at LIN]
              SUBSET   : 2 points (T)
  -8   / 2: -8.000
  -6   / 3: -6.000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST blin[l=2:7 at nul]	! neg/pos l endpoints
+ !-> LIST blin[l=2:7 at nul]
              VARIABLE : A[GT=TDST at LIN]
              SUBSET   : 6 points (T)
  -8   / 2: -8.000
@@ -20621,14 +20668,14 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  0.000
  2    / 7:  2.000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST blin[l=2:4 at nul]	! neg/neg l endpoints
+ !-> LIST blin[l=2:4 at nul]
              VARIABLE : A[GT=TDST at LIN]
              SUBSET   : 3 points (T)
  -8   / 2: -8.000
  -6   / 3: -6.000
  -4   / 4: -4.000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST blin[l=@nul]	! unspecified limits (neg/pos)
+ !-> LIST blin[l=@nul]
              VARIABLE : A[GT=TDST at LIN]
              SUBSET   : 11 points (T)
  -10   /  1:   ....
@@ -20654,7 +20701,7 @@ GO bn_negative_t.sub bave nul
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST bave[t=-5:5 at nul]	! neg/pos t endpoints
+ !-> LIST bave[t=-5:5 at nul]
              VARIABLE : A[GT=TDST at AVE]
              SUBSET   : 5 points (T)
  -4   / 4: -4.000
@@ -20663,13 +20710,13 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7:  2.000
  4    / 8:  4.000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST bave[t=-5:-8 at nul]	! neg/neq t endpoints
+ !-> LIST bave[t=-5:-8 at nul]
              VARIABLE : A[GT=TDST at AVE]
              SUBSET   : 2 points (T)
  -8   / 2: -8.000
  -6   / 3: -6.000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST bave[l=2:7 at nul]	! neg/pos l endpoints
+ !-> LIST bave[l=2:7 at nul]
              VARIABLE : A[GT=TDST at AVE]
              SUBSET   : 6 points (T)
  -8   / 2: -8.000
@@ -20679,14 +20726,14 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6:  0.000
  2    / 7:  2.000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST bave[l=2:4 at nul]	! neg/neg l endpoints
+ !-> LIST bave[l=2:4 at nul]
              VARIABLE : A[GT=TDST at AVE]
              SUBSET   : 3 points (T)
  -8   / 2: -8.000
  -6   / 3: -6.000
  -4   / 4: -4.000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST bave[l=@nul]	! unspecified limits (neg/pos)
+ !-> LIST bave[l=@nul]
              VARIABLE : A[GT=TDST at AVE]
              SUBSET   : 11 points (T)
  -10   /  1: -9.000
@@ -20712,7 +20759,7 @@ GO bn_negative_t.sub basn nul
 ! tvar axis runs from -10 to 10 by 1's
  
 LIST $1[t=-5:5@$2]	! neg/pos t endpoints
- !-> LIST basn[t=-5:5 at nul]	! neg/pos t endpoints
+ !-> LIST basn[t=-5:5 at nul]
              VARIABLE : A[GT=TDST at ASN]
              SUBSET   : 5 points (T)
  -4   / 4: -6.000
@@ -20721,13 +20768,13 @@ LIST $1[t=-5:5@$2]	! neg/pos t endpoints
  2    / 7: -3.000
  4    / 8: -2.000
 LIST $1[t=-5:-8@$2]	! neg/neq t endpoints
- !-> LIST basn[t=-5:-8 at nul]	! neg/neq t endpoints
+ !-> LIST basn[t=-5:-8 at nul]
              VARIABLE : A[GT=TDST at ASN]
              SUBSET   : 2 points (T)
  -8   / 2: -8.000
  -6   / 3: -7.000
 LIST $1[l=2:7@$2]	! neg/pos l endpoints
- !-> LIST basn[l=2:7 at nul]	! neg/pos l endpoints
+ !-> LIST basn[l=2:7 at nul]
              VARIABLE : A[GT=TDST at ASN]
              SUBSET   : 6 points (T)
  -8   / 2: -8.000
@@ -20737,14 +20784,14 @@ LIST $1[l=2:7@$2]	! neg/pos l endpoints
  0    / 6: -4.000
  2    / 7: -3.000
 LIST $1[l=2:4@$2]	! neg/neg l endpoints
- !-> LIST basn[l=2:4 at nul]	! neg/neg l endpoints
+ !-> LIST basn[l=2:4 at nul]
              VARIABLE : A[GT=TDST at ASN]
              SUBSET   : 3 points (T)
  -8   / 2: -8.000
  -6   / 3: -7.000
  -4   / 4: -6.000
 LIST $1[l=@$2]	! unspecified limits (neg/pos)
- !-> LIST basn[l=@nul]	! unspecified limits (neg/pos)
+ !-> LIST basn[l=@nul]
              VARIABLE : A[GT=TDST at ASN]
              SUBSET   : 11 points (T)
  -10   /  1: -9.000
@@ -20837,7 +20884,7 @@ LIST a[gt=tcal]		! deliberate error
 CANCEL MODE ignore_error
  
 *** Running test: bn_xact_regrid.jnl
-! BN450_xact_regrid.jnl
+[?1034h! BN450_xact_regrid.jnl
  
 ! 10/97 - test "exact match" regridding
 ! wherein destination points are filled only if they exactly match
@@ -20848,7 +20895,7 @@ CANCEL REGION
 GO bn_xact_regrid.sub X
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -20858,7 +20905,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -20872,7 +20919,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:   ....
  5    / 9:  5.000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -20882,7 +20929,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETBIG]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -20896,7 +20943,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETSMALL]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -20910,7 +20957,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINEOFFSET]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -20923,7 +20970,7 @@ SET REGION/X=2:4
 GO bn_xact_regrid.sub X
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 3 points (X)
@@ -20931,7 +20978,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.000
  4   / 4:  4.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -20941,7 +20988,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  3.5  / 6:   ....
  4    / 7:  4.000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 3 points (X)
@@ -20949,7 +20996,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.000
  4   / 4:  4.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETBIG]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -20959,7 +21006,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  3.5  / 6:  3.500
  4    / 7:   ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETSMALL]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -20969,7 +21016,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  3.5  / 6:  3.500
  4    / 7:   ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINEOFFSET]
                         regrid: 1 delta on X at XACT
              SUBSET   : 3 points (X)
@@ -20980,7 +21027,7 @@ SET REGION/X=1:5
 GO bn_xact_regrid.sub X
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -20990,7 +21037,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21004,7 +21051,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:   ....
  5    / 9:  5.000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21014,7 +21061,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETBIG]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21028,7 +21075,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETSMALL]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21042,7 +21089,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINEOFFSET]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21055,7 +21102,7 @@ SET REGION/X=1.5:4.5
 GO bn_xact_regrid.sub X
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 3 points (X)
@@ -21063,7 +21110,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.000
  4   / 4:  4.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 7 points (X)
@@ -21075,7 +21122,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4    / 7:  4.000
  4.5  / 8:   ....
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 3 points (X)
@@ -21083,7 +21130,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.000
  4   / 4:  4.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETBIG]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 7 points (X)
@@ -21095,7 +21142,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4    / 7:   ....
  4.5  / 8:  4.500
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETSMALL]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 7 points (X)
@@ -21107,7 +21154,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4    / 7:   ....
  4.5  / 8:  4.500
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINEOFFSET]
                         regrid: 1 delta on X at XACT
              SUBSET   : 3 points (X)
@@ -21118,7 +21165,7 @@ SET REGION/X=0:6
 GO bn_xact_regrid.sub X
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21128,7 +21175,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
              VARIABLE : X[GX=XSCOARSE]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21142,7 +21189,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:   ....
  5    / 9:  5.000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINE]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21152,7 +21199,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETBIG]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21166,7 +21213,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
              VARIABLE : X[GX=XSOFFSETSMALL]
                         regrid: 0.5 delta on X at XACT
              SUBSET   : 9 points (X)
@@ -21180,7 +21227,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
              VARIABLE : X[GX=XSFINEOFFSET]
                         regrid: 1 delta on X at XACT
              SUBSET   : 5 points (X)
@@ -21195,7 +21242,7 @@ CANCEL REGION
 GO bn_xact_regrid.sub Y
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21205,7 +21252,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21219,7 +21266,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:   ....
  5    / 9:  5.000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21229,7 +21276,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETBIG]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21243,7 +21290,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETSMALL]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21257,7 +21304,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINEOFFSET]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21270,7 +21317,7 @@ SET REGION/Y=2:4
 GO bn_xact_regrid.sub Y
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 3 points (Y)
@@ -21278,7 +21325,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.000
  4   / 4:  4.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21288,7 +21335,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  3.5  / 6:   ....
  4    / 7:  4.000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 3 points (Y)
@@ -21296,7 +21343,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.000
  4   / 4:  4.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETBIG]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21306,7 +21353,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  3.5  / 6:  3.500
  4    / 7:   ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETSMALL]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21316,7 +21363,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  3.5  / 6:  3.500
  4    / 7:   ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINEOFFSET]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 3 points (Y)
@@ -21327,7 +21374,7 @@ SET REGION/Y=1:5
 GO bn_xact_regrid.sub Y
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21337,7 +21384,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21351,7 +21398,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:   ....
  5    / 9:  5.000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21361,7 +21408,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETBIG]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21375,7 +21422,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETSMALL]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21389,7 +21436,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINEOFFSET]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21402,7 +21449,7 @@ SET REGION/Y=1.5:4.5
 GO bn_xact_regrid.sub Y
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 3 points (Y)
@@ -21410,7 +21457,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.000
  4   / 4:  4.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 7 points (Y)
@@ -21422,7 +21469,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4    / 7:  4.000
  4.5  / 8:   ....
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 3 points (Y)
@@ -21430,7 +21477,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.000
  4   / 4:  4.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETBIG]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 7 points (Y)
@@ -21442,7 +21489,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4    / 7:   ....
  4.5  / 8:  4.500
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETSMALL]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 7 points (Y)
@@ -21454,7 +21501,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4    / 7:   ....
  4.5  / 8:  4.500
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINEOFFSET]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 3 points (Y)
@@ -21465,7 +21512,7 @@ SET REGION/Y=0:6
 GO bn_xact_regrid.sub Y
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21475,7 +21522,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSCOARSE]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21489,7 +21536,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:   ....
  5    / 9:  5.000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINE]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21499,7 +21546,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETBIG]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21513,7 +21560,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
              VARIABLE : Y[GY=YSOFFSETSMALL]
                         regrid: 0.5 delta on Y at XACT
              SUBSET   : 9 points (Y)
@@ -21527,7 +21574,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
              VARIABLE : Y[GY=YSFINEOFFSET]
                         regrid: 1 delta on Y at XACT
              SUBSET   : 5 points (Y)
@@ -21542,7 +21589,7 @@ CANCEL REGION
 GO bn_xact_regrid.sub Z
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21552,7 +21599,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21566,7 +21613,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:   ....
  5    / 9:  5.000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21576,7 +21623,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETBIG]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21590,7 +21637,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETSMALL]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21604,7 +21651,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINEOFFSET]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21617,7 +21664,7 @@ SET REGION/Z=2:4
 GO bn_xact_regrid.sub Z
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 3 points (Z)
@@ -21625,7 +21672,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.000
  4   / 4:  4.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21635,7 +21682,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  3.5  / 6:   ....
  4    / 7:  4.000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 3 points (Z)
@@ -21643,7 +21690,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.000
  4   / 4:  4.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETBIG]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21653,7 +21700,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  3.5  / 6:  3.500
  4    / 7:   ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETSMALL]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21663,7 +21710,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  3.5  / 6:  3.500
  4    / 7:   ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINEOFFSET]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 3 points (Z)
@@ -21674,7 +21721,7 @@ SET REGION/Z=1:5
 GO bn_xact_regrid.sub Z
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21684,7 +21731,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21698,7 +21745,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:   ....
  5    / 9:  5.000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21708,7 +21755,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETBIG]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21722,7 +21769,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETSMALL]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21736,7 +21783,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINEOFFSET]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21749,7 +21796,7 @@ SET REGION/Z=1.5:4.5
 GO bn_xact_regrid.sub Z
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 3 points (Z)
@@ -21757,7 +21804,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.000
  4   / 4:  4.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 7 points (Z)
@@ -21769,7 +21816,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4    / 7:  4.000
  4.5  / 8:   ....
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 3 points (Z)
@@ -21777,7 +21824,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.000
  4   / 4:  4.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETBIG]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 7 points (Z)
@@ -21789,7 +21836,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4    / 7:   ....
  4.5  / 8:  4.500
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETSMALL]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 7 points (Z)
@@ -21801,7 +21848,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4    / 7:   ....
  4.5  / 8:  4.500
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINEOFFSET]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 3 points (Z)
@@ -21812,7 +21859,7 @@ SET REGION/Z=0:6
 GO bn_xact_regrid.sub Z
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21822,7 +21869,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSCOARSE]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21836,7 +21883,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:   ....
  5    / 9:  5.000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINE]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21846,7 +21893,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETBIG]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21860,7 +21907,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
              VARIABLE : Z[GZ=ZSOFFSETSMALL]
                         regrid: 0.5 delta on Z at XACT
              SUBSET   : 9 points (Z)
@@ -21874,7 +21921,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
              VARIABLE : Z[GZ=ZSFINEOFFSET]
                         regrid: 1 delta on Z at XACT
              SUBSET   : 5 points (Z)
@@ -21889,7 +21936,7 @@ CANCEL REGION
 GO bn_xact_regrid.sub T
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -21899,7 +21946,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -21913,7 +21960,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:   ....
  5    / 9:  5.000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -21923,7 +21970,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETBIG]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -21937,7 +21984,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETSMALL]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -21951,7 +21998,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINEOFFSET]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -21964,7 +22011,7 @@ SET REGION/T=2:4
 GO bn_xact_regrid.sub T
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 3 points (T)
@@ -21972,7 +22019,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.000
  4   / 4:  4.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -21982,7 +22029,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  3.5  / 6:   ....
  4    / 7:  4.000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 3 points (T)
@@ -21990,7 +22037,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.000
  4   / 4:  4.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETBIG]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22000,7 +22047,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  3.5  / 6:  3.500
  4    / 7:   ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETSMALL]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22010,7 +22057,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  3.5  / 6:  3.500
  4    / 7:   ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINEOFFSET]
                         regrid: 1 delta on T at XACT
              SUBSET   : 3 points (T)
@@ -22021,7 +22068,7 @@ SET REGION/T=1:5
 GO bn_xact_regrid.sub T
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22031,7 +22078,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22045,7 +22092,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:   ....
  5    / 9:  5.000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22055,7 +22102,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETBIG]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22069,7 +22116,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETSMALL]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22083,7 +22130,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINEOFFSET]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22096,7 +22143,7 @@ SET REGION/T=1.5:4.5
 GO bn_xact_regrid.sub T
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 3 points (T)
@@ -22104,7 +22151,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  3   / 3:  3.000
  4   / 4:  4.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 7 points (T)
@@ -22116,7 +22163,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4    / 7:  4.000
  4.5  / 8:   ....
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 3 points (T)
@@ -22124,7 +22171,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  3   / 3:  3.000
  4   / 4:  4.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETBIG]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 7 points (T)
@@ -22136,7 +22183,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4    / 7:   ....
  4.5  / 8:  4.500
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETSMALL]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 7 points (T)
@@ -22148,7 +22195,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4    / 7:   ....
  4.5  / 8:  4.500
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINEOFFSET]
                         regrid: 1 delta on T at XACT
              SUBSET   : 3 points (T)
@@ -22159,7 +22206,7 @@ SET REGION/T=0:6
 GO bn_xact_regrid.sub T
 ! PERFORM REGRIDDINGS
 LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22169,7 +22216,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT]	! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
              VARIABLE : T[GT=TSCOARSE]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22183,7 +22230,7 @@ LIST Scoarse[G$1=$1Dfine at XACT]	! coarse data onto fine grid
  4.5  / 8:   ....
  5    / 9:  5.000
 LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT]	! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINE]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22193,7 +22240,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT]	! fine data onto coarse grid
  4   / 4:  4.000
  5   / 5:  5.000
 LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT]   ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETBIG]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22207,7 +22254,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT]   ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
              VARIABLE : T[GT=TSOFFSETSMALL]
                         regrid: 0.5 delta on T at XACT
              SUBSET   : 9 points (T)
@@ -22221,7 +22268,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
  4.5  / 8:  4.500
  5    / 9:   ....
 LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
              VARIABLE : T[GT=TSFINEOFFSET]
                         regrid: 1 delta on T at XACT
              SUBSET   : 5 points (T)
@@ -22233,7 +22280,7 @@ LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
  
  
 *** Running test: bn_gc_functions.jnl
-! bn500_gc_functions.jnl
+[?1034h! bn500_gc_functions.jnl
  
 ! 10/97 - first version - test GC functions released in V4.9
 ! 3/98 - added single test of a dynamic axis passed to GC fcn
@@ -22819,7 +22866,7 @@ LIST/x=0/l=1 Z10_flow - bottom_flow
 set view lr
 shade/x=0/l=1/ylim=0:200:-20/lev ZAXREPLACE(flow[z=0:200],depth[z=0:200],z[z=0:200:.5])
 *** Running test: bn491_bug_fixes.jnl
-! bn491_bug_fixes.jnl
+[?1034h! bn491_bug_fixes.jnl
 ! test various fixes that went into version 4.91
 ! 2/98 *kob*
 !
@@ -23537,7 +23584,7 @@ list elev
  58.5947N /   1:   ....   ....   ....   ....  2.940  2.940  2.940  2.940  2.940   ....   ....   ....
  
 *** Running test: bn_odd_variable_name.jnl
-! make sure memory is limited; otherwise the abstract axis will list
+[?1034h! make sure memory is limited; otherwise the abstract axis will list
 let save_mem = ($ferret_memory)
  !-> DEFINE VARIABLE save_mem = 25.6
 set mem /size=10
@@ -23653,7 +23700,33 @@ list 'X'			! Now the proper syntax
  19   / 19:  0.5784
  20   / 20:  0.6570
 list i  			! Deliberate error
-list 'i'  			! Deliberate error
+ 
+! v694 No longer an error: See ticket 2050
+list 'i'  			!
+             VARIABLE : SIN(4+I/10)
+             FILENAME : weird_name1.cdf
+             SUBSET   : 20 points (X)
+ 1    /  1: -0.8183
+ 2    /  2: -0.8716
+ 3    /  3: -0.9162
+ 4    /  4: -0.9516
+ 5    /  5: -0.9775
+ 6    /  6: -0.9937
+ 7    /  7: -0.9999
+ 8    /  8: -0.9962
+ 9    /  9: -0.9825
+ 10   / 10: -0.9589
+ 11   / 11: -0.9258
+ 12   / 12: -0.8835
+ 13   / 13: -0.8323
+ 14   / 14: -0.7728
+ 15   / 15: -0.7055
+ 16   / 16: -0.6313
+ 17   / 17: -0.5507
+ 18   / 18: -0.4646
+ 19   / 19: -0.3739
+ 20   / 20: -0.2794
+ 
 list 'I'			! Now the proper syntax
              VARIABLE : SIN(4+I/10)
              FILENAME : weird_name1.cdf
@@ -23801,7 +23874,7 @@ list 'v2-and-minus'[i=5:15 at ddc] ! Now the proper syntax
 set mem /size=`save_mem`
  !-> set mem /size=25.6
 *** Running test: bn_test_stream.jnl
- 
+[?1034h 
 canc data/all
  
 sp rm -f permutedBinaryTest.dat
@@ -24462,7 +24535,7 @@ list num1
  2   / 2:  20.00  21.00
  3   / 3:  22.00  23.00
 *** Running test: bn_define_axes.jnl
-! bn_define_axes.jnl
+[?1034h! bn_define_axes.jnl
 ! *sh* 5/99
 ! *sh* 12/99 - with streamlined syntax
  
@@ -24929,7 +25002,7 @@ show axis xax2
 ! cleanup
 set mode/last ignore
 *** Running test: bn_polygon.jnl
-! Demo of new POLYGON command
+[?1034h! Demo of new POLYGON command
 ! *jd * 3.99
  
 let xsqr = YSEQUENCE({0,.1,.1,0})
@@ -24951,7 +25024,7 @@ 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
-! bn500_bug_fixes.jnl
+[?1034h! bn500_bug_fixes.jnl
 ! test various fixes that went into version 5.00
 ! 5/99 *kob*
  
@@ -25242,7 +25315,7 @@ GO err491_spawn_quotes.jnl
  
 ! this should be a valid command
 SPAWN "date"
-Wed Nov  5 16:38:03 PST 2014
+Thu Nov 19 12:03:53 PST 2015
  
 GO bn_reset
 cancel mode verify
@@ -25309,7 +25382,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
-! bn_sample.jnl
+[?1034h! bn_sample.jnl
 ! 10/99 *sh*
 ! V550 *sh* 11/02 - documentation change only, reflecting subspan modulo
  
@@ -26382,7 +26455,7 @@ list SAMPLEL(X[x=110:200:10],{3,4,7})	! normal axis
  3   / 3:........................................
  
 *** Running test: bn_strides_revs_perms.jnl
-! bn_strides_revs_perms.jnl
+[?1034h! bn_strides_revs_perms.jnl
 ! *sh* 6/99
  
 ! exercise special netCDF performance and robustness enhancements to allow
@@ -28413,7 +28486,7 @@ 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
-! bn_non_COARDS_netCDF.jnl
+[?1034h! bn_non_COARDS_netCDF.jnl
 ! *sh* 3/99
 ! *sh* 6/00 -- added true scalar variable, TRUE_SCALAR
  
@@ -28639,7 +28712,7 @@ list HAS_BACKWARDS_AXIS
  
 ! list/i=1:5 BIG_IRREG
 *** Running test: bn_cache_hits.jnl
-! bn_cache_hits.jnl
+[?1034h! bn_cache_hits.jnl
  
 ! 3/99 *sh*
 ! Test the success of Ferret in recalling past results
@@ -30231,14 +30304,19 @@ say `a,return=isize`     ! no evaluation of a required -- just context
  getgrid A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
  pass #2 A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ pseudo  I        M: 15 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  !-> MESSAGE/CONTINUE 10
 10
 list/nohead a            ! evaluate it now
+ -DELETE I        M: 15 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 15 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ found   A        M: 16 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  1    /  1:   1.00
  2    /  2:   2.00
  3    /  3:   3.00
@@ -30254,7 +30332,6 @@ let a = XSEQUENCE(j[j=1:5])
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  -DELETE A        M: 16 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE I        M: 15 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  -DELETE SST5SBX  M: 14 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
  -DELETE SST5XAVE M:  9 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
@@ -30436,7 +30513,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
-! bn_regrid_to_user
+[?1034h! bn_regrid_to_user
 ! 8/99 *sh*
 ! 5/01 *sh* - changes to accomodate truncated levitus_climatology.cdf
 !           - additions to test use of expressions in SET/SHOW/DEFINE grid
@@ -30918,7 +30995,7 @@ Dynamic axes:
     AXIS (AX008)                         use count:   1
  
 *** Running test: bn_calendar.jnl
-! bn_calendar.jnl
+[?1034h! bn_calendar.jnl
 ! Version 5.3
 ! Add definitions of calendar axes as a NetCDF attribute of the time axis
 ! DEFINE AXIS/CALENDAR
@@ -31201,7 +31278,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
-! new PLOT/DASH and PLOT/SYMBOL=DOT  qualifiers
+[?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.
  
@@ -31221,7 +31298,7 @@ set mode ignore
 plot/dash=(1., 2.)/color=red/thick/i=1:1000 sin(62.8*(i+10) )
 plot/dash=(-1., 2., 3., 4.)/i=1:1000 sin(62.8*(i+20) )
 *** Running test: bn_flowlines.jnl
-! bn_flowlines.jnl
+[?1034h! bn_flowlines.jnl
 ! VECTOR/FLOW
 ! 6/2001
 ! ACM 4/2005 set mode meta to save one of the plots for the metafile checks.
@@ -31264,10 +31341,8 @@ 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
- 
-set mode logo
 *** Running test: bn_logaxes.jnl
-!  Test the qualifiers /HLOG and /VLOG for setting
+[?1034h!  Test the qualifiers /HLOG and /VLOG for setting
 !  log axes.  On a depth axis, inverse log plot.
  
 ! use /VLOG
@@ -31309,7 +31384,7 @@ 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
-! test internal external functions.  These moved from bn_external_functions
+[?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*
  
@@ -33362,8 +33437,17 @@ SAMPLEL_MULTI(L_INDICES,DAT_TO_SAMPLE)
     Returns data sampled according to L indices which may vary in IJK
     L_INDICES: ordered indices
     DAT_TO_SAMPLE: data to sample using L indices
+SAMPLEF_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
+    Returns data sampled by interpolating to a set of times in F direction
+    DAT_TO_SAMPLE: data to sample at set of times in F
+    YR: Year(s) yyyy
+    MO: Month(s), integer mm
+    DAY: Day(s) of month dd
+    HR: Hour(s) hh
+    MIN: Minute(s) mm
+    SEC: Second(s) ss
 SAMPLET_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
-    Returns data sampled by interpolating to a set of times
+    Returns data sampled by interpolating to a set of times in T direction
     DAT_TO_SAMPLE: data to sample at set of times
     YR: Year(s) yyyy
     MO: Month(s), integer mm
@@ -33428,6 +33512,14 @@ SAMPLE_FAST_I(V,Indices)
     Fast 1D sample variable using set of indices
     V: Variable to sample
     Indices: List of indices at which to sample
+SAMPLE_FAST_I_STR(S,Indices)
+    Fast 1D sample string variable using set of indices
+    S: String Variable to sample (STRING)
+    Indices: List of indices at which to sample
+SAMPLE_FAST_I(V,Indices)
+    Fast 1D sample variable using set of indices
+    V: Variable to sample
+    Indices: List of indices at which to sample
  
 go bench_sorti.jnl
  
@@ -34543,6 +34635,10 @@ CURV_TO_RECT_MAP(lon_in,lat_in,grid_out,radius)
     lat_in: Source grid latitudes (2-D) (degrees)
     grid_out: Any variable on destination Longitude-Latitude grid, Lon and Lat (degrees)
     radius: Source points falling within radius are included in mapping to destination point (degrees)
+CURV_TO_RECT_FSU(V,mapping)
+    Alt func to Apply mapping to regrid from curvilinear to rectangular grid
+    V: Variable to regrid, on curvilinear grid V(x,y,z,t)
+    mapping: mapping computed by curv_to_rect_MAP
 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
@@ -34649,12 +34745,12 @@ list/L=15:20 tax_month(t[gt=temp],temp), tax_yearfrac(t[gt=temp],temp)
  Column  1: TAX_MONTH(T[GT=TEMP],TEMP)
  Column  2: TAX_YEARFRAC(T[GT=TEMP],TEMP)
                 (C001,V001)  (C001,V009)
-10-NOV-1982 16 / 15:   11.00  0.8603
-16-NOV-1982 18 / 16:   11.00  0.8767
-22-NOV-1982 20 / 17:   11.00  0.8932
-28-NOV-1982 22 / 18:   11.00  0.9096
+10-NOV-1982 16 / 15:   11.00  0.8621
+16-NOV-1982 18 / 16:   11.00  0.8788
+22-NOV-1982 20 / 17:   11.00  0.8954
+28-NOV-1982 22 / 18:   11.00  0.9121
 05-DEC-1982 00 / 19:   12.00  0.9288
-11-DEC-1982 02 / 20:   12.00  0.9452
+11-DEC-1982 02 / 20:   12.00  0.9454
 list/L=15:20 tax_year(t[gt=temp],temp)
              VARIABLE : TAX_YEAR(T[GT=TEMP],TEMP)
              FILENAME : gt4d011.cdf
@@ -34678,7 +34774,7 @@ 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
-! bn_modulo_strides.jnl
+[?1034h! bn_modulo_strides.jnl
 ! 6/01 *sh*
 ! exercise the combination of modulo and netCDF strides IO
  
@@ -35057,7 +35153,7 @@ list/nohead str[i=105:145:5]
  140   / 8:"t"
  145   / 9:"e"
 *** Running test: bn_axis_viewports.jnl
-! bn_axis_viewports
+[?1034h! bn_axis_viewports
 ! *sh* 9/01
  
 ! demonstrate vieport layout using the /AXES qualifier
@@ -35065,7 +35161,7 @@ set wind/clear/aspect=1
 def view/axes allax
  
 ! make guide lines
-show view allax   ! text = 1
+show view allax
  
  name             text    xlimits     ylimits    mode
  
@@ -35079,20 +35175,20 @@ label 0.26,0.95,-1,0,.2 @P2 at AC<-At 0.25
 label 0.76,0.95,-1,0,.2 @P3 at AC<-At 0.75
  
 ! a plot from 0.25 to 0.75
-def view /xlim=0.25:0.75/ylim=0.25:0.75/text=1/axes mid
+def view /xlim=0.25:0.75/ylim=0.25:0.75/axes mid
 set view mid
 plot/vs/hlim=-1:1/vlim=-1:1/line/i=1:200 cos(i/15),sin(i/15)
 show view mid
  
  name             text    xlimits     ylimits    mode
  
- MID              1.00   0.25,0.75   0.25,0.75   axes
+ MID              0.72   0.25,0.75   0.25,0.75   axes
    current viewport is MID
 ppl list xaxis
 
 
          XAXIS QUALITIES
-         LO=-1.00E+00 HI= 1.00E+00 TIC= 2.00E-01 LEN= 4.74E+00 CSIZE= 1.00E-01
+         LO=-1.00E+00 HI= 1.00E+00 TIC= 2.00E-01 LEN= 5.57E+00 CSIZE= 1.00E-01
           TOP AXIS= ON  BOTTOM AXIS= ON 
          MANUAL  NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
          XORG= 1.20E+00  AUTO LABELLING
@@ -35100,13 +35196,13 @@ ppl list yaxis
 
 
          YAXIS QUALITIES
-         LO=-1.00E+00 HI= 1.00E+00 TIC= 2.00E-01 LEN= 4.74E+00 CSIZE= 1.00E-01
+         LO=-1.00E+00 HI= 1.00E+00 TIC= 2.00E-01 LEN= 5.57E+00 CSIZE= 1.00E-01
           LEFT AXIS= ON  RIGHT AXIS= ON 
          MANUAL  NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
          YORG= 1.40E+00  AUTO LABELLING
  
 ! guidelines showing origin, axlen, white space
-def view /xlim=0.25:0.75/ylim=0.25:0.75/text=1/axes mid2
+def view /xlim=0.25:0.75/ylim=0.25:0.75/axes mid2
 set view mid2
 ppl origin 0,0
 define symbol xaxl `($PPL$WIDTH)/2`
@@ -35158,7 +35254,7 @@ ppl list yaxis
          YORG= 1.40E+00  AUTO LABELLING
  
 ! guidelines showing origin, axlen, white space
-def view /xlim=0.25:0.75/ylim=0.25:0.75/text=1/axes mid2
+def view /xlim=0.25:0.75/ylim=0.25:0.75/axes mid2
 set view mid2
 ppl origin 0,0
 define symbol xaxl `($PPL$WIDTH)/2`
@@ -35186,14 +35282,14 @@ show view mid
 ! pause
 set wind/clear
  
-def view/axes/xlim=0:0.5/ylim=0:0.5/text=1 llax
+def view/axes/xlim=0:0.5/ylim=0:0.5 llax
 set view llax
 PLOT/VS/LINE/I=1:314/noyadj i*cos(i/20),i*sin(i/20)
 ppl list xaxis
 
 
          XAXIS QUALITIES
-         LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
+         LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 6.13E+00 CSIZE= 1.00E-01
           TOP AXIS= ON  BOTTOM AXIS= ON 
          MANUAL  NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
          XORG= 0.00E+00  AUTO LABELLING
@@ -35201,19 +35297,19 @@ ppl list yaxis
 
 
          YAXIS QUALITIES
-         LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
+         LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 6.13E+00 CSIZE= 1.00E-01
           LEFT AXIS= ON  RIGHT AXIS= ON 
          AUTO    NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
          YORG= 0.00E+00  AUTO LABELLING
  
-def view/axes/xlim=0:0.5/ylim=0.5:1/text=1 lrax
+def view/axes/xlim=0:0.5/ylim=0.5:1 lrax
 set view lrax
 PLOT/VS/LINE/I=1:314/noyadj i*cos(i/20),i*sin(i/20)
 ppl list xaxis
 
 
          XAXIS QUALITIES
-         LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
+         LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 6.13E+00 CSIZE= 1.00E-01
           TOP AXIS= ON  BOTTOM AXIS= ON 
          MANUAL  NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
          XORG= 0.00E+00  AUTO LABELLING
@@ -35221,19 +35317,19 @@ ppl list yaxis
 
 
          YAXIS QUALITIES
-         LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
+         LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 6.13E+00 CSIZE= 1.00E-01
           LEFT AXIS= ON  RIGHT AXIS= ON 
          AUTO    NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
          YORG= 1.40E+00  AUTO LABELLING
  
-def view/axes/xlim=0.5:1/ylim=0:0.5/text=1 ulax
+def view/axes/xlim=0.5:1/ylim=0:0.5 ulax
 set view ulax
 PLOT/VS/LINE/I=1:314/noyadj i*cos(i/20),i*sin(i/20)
 ppl list xaxis
 
 
          XAXIS QUALITIES
-         LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
+         LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 6.08E+00 CSIZE= 1.00E-01
           TOP AXIS= ON  BOTTOM AXIS= ON 
          MANUAL  NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
          XORG= 1.20E+00  AUTO LABELLING
@@ -35241,19 +35337,19 @@ ppl list yaxis
 
 
          YAXIS QUALITIES
-         LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
+         LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 6.08E+00 CSIZE= 1.00E-01
           LEFT AXIS= ON  RIGHT AXIS= ON 
          AUTO    NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
          YORG= 0.00E+00  AUTO LABELLING
  
-def view/axes/xlim=0.5:1/ylim=0.5:1/text=1 urax
+def view/axes/xlim=0.5:1/ylim=0.5:1 urax
 set view urax
 PLOT/VS/LINE/I=1:314/noyadj i*cos(i/20),i*sin(i/20)
 ppl list xaxis
 
 
          XAXIS QUALITIES
-         LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
+         LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 6.08E+00 CSIZE= 1.00E-01
           TOP AXIS= ON  BOTTOM AXIS= ON 
          MANUAL  NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
          XORG= 1.20E+00  AUTO LABELLING
@@ -35261,7 +35357,7 @@ ppl list yaxis
 
 
          YAXIS QUALITIES
-         LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
+         LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 6.08E+00 CSIZE= 1.00E-01
           LEFT AXIS= ON  RIGHT AXIS= ON 
          AUTO    NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
          YORG= 1.40E+00  AUTO LABELLING
@@ -35400,7 +35496,7 @@ ppl list yaxis
          AUTO    NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
          YORG= 1.40E+00  AUTO LABELLING
 *** Running test: bn_strings.jnl
-! bn_strings.jnl
+[?1034h! bn_strings.jnl
  
 ! 7/01 - test string syntax and behaviors
  
@@ -35888,6 +35984,8 @@ list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", ") + "fri
 list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
  1   / 1:"now, goodbye, my friend" "now, hello, friend"      
  2   / 2:"then, goodbye, my friend""then, hello, friend"     
+ 
+SET MODE IGNORE
 list/nohead ysequence({98, 99})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
  1   / 1:........
  2   / 2:........
@@ -35902,18 +36000,11 @@ list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "g
  2   / 2:........
  
 ! numerical operators applied to strings
+ 
 list/nohead "b" - {"a","b"}
- 1   / 1:....
- 2   / 2:....
 list/nohead "b" * {"a","b"}
- 1   / 1:....
- 2   / 2:....
 list/nohead "b" / {"a","b"}
- 1   / 1:....
- 2   / 2:....
 list/nohead "b" ^ {"a","b"}
- 1   / 1:....
- 2   / 2:....
 list/nohead {"a","b"} + 1
  1   / 1:....
  2   / 2:....
@@ -35924,18 +36015,14 @@ list/nohead 1 - {"a","b"}
  1   / 1:....
  2   / 2:....
 list/nohead SIN({"a","b","c"})
- 1   / 1:....
- 2   / 2:....
- 3   / 3:....
 list/nohead MAX("a",{"a","b","c"})
- 1   / 1:....
- 2   / 2:....
- 3   / 3:....
 list/nohead MAX(1,{"a","b","c"})
  1   / 1:....
  2   / 2:....
  3   / 3:....
  
+CANCEL MODE IGNORE
+ 
 ! transformations applied to strings
 let a = {"a","b","c","d"}
 list a[i=@shf]
@@ -35977,7 +36064,7 @@ list a[i=@rsum]
  
 set mode/last stupid
 *** Running test: bn_axcontrol.jnl
- ! NOAA/PMEL TMAP
+[?1034h ! NOAA/PMEL TMAP
  ! Program FERRET (alpha)
  ! Version 5.33 - 07/12/01
  ! 12-Jul-01 14:47
@@ -36016,7 +36103,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
-! bn_vec_curv.jnl
+[?1034h! bn_vec_curv.jnl
 !
 ! vector plots with curvilinear coordinates
 !
@@ -36085,9 +36172,9 @@ let mypage = my + 0*mx
 vec/title="Stretched grid" a,b,mxpage,mypage
  
 can mode meta
-set mode logo
+ 
 *** Running test: bn_delimited_read.jnl
-! bn_delimited_read.jnl
+[?1034h! bn_delimited_read.jnl
 ! 10/01 *sh*
  
 ! test delimiited (spreadsheet) reads in Ferret
@@ -36221,13 +36308,13 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
  Column  8: V8
  Column  9: V9
  Column 10: V10
-                  V1  V2   V3     V4     V5    V6    V7      V8     V9    V10
-1   / 1: "one"       ...  1.100 -24.00  130.0 " "    10.0 "word 1" " "    ....
-2   / 2: "two"       ...  2.200  24.00 -130.0 "2S"   .... "word 2" " "    ....
-3   / 3: "three"     ...  3.300  24.00  130.0 "3N"    0.0 " wd 3 " " "    ....
-4   / 4: " "         ...   ....   ....   .... " "    .... " "      " "    ....
-5   / 5: "five"      ...  4.400 -24.00 -130.0 "91" -400.0 "word 4" "aa"  77.00
-6   / 6: "extra line"...   ....   ....   .... " "    .... " "      " "    ....
+                  V1   V2    V3     V4     V5    V6    V7      V8     V9    V10
+1   / 1: "one"        ....  1.100 -24.00  130.0 " "    10.0 "word 1" " "    ....
+2   / 2: "two"        ....  2.200  24.00 -130.0 "2S"   .... "word 2" " "    ....
+3   / 3: "three"      ....  3.300  24.00  130.0 "3N"    0.0 " wd 3 " " "    ....
+4   / 4: " "          ....   ....   ....   .... " "    .... " "      " "    ....
+5   / 5: "five"       ....  4.400 -24.00 -130.0 "91" -400.0 "word 4" "aa"  77.00
+6   / 6: "extra line" ....   ....   ....   .... " "    .... " "      " "    ....
  
 ! insist that all columns be treated as string
 file/format=delim/skip=1/type=text bn_delimited_read_1.dat
@@ -36295,13 +36382,13 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
  Column  8: V8
  Column  9: V9
  Column 10: V10
-        V1  V2   V3     V4     V5     V6     V7   V8 V9   V10
-1   / 1:......  1.100   ....   ....   ....   10.0......   ....
-2   / 2:......  2.200   ....   ....   ....   ..........   ....
-3   / 3:......  3.300  24.00  130.0   ....    0.0......   ....
-4   / 4:......   ....   ....   ....   ....   ..........   ....
-5   / 5:......  4.400 -24.00 -130.0  91.00 -400.0......  77.00
-6   / 6:......   ....   ....   ....   ....   ..........   ....
+          V1   V2    V3     V4     V5     V6     V7    V8   V9    V10
+1   / 1: .... ....  1.100   ....   ....   ....   10.0 .... ....   ....
+2   / 2: .... ....  2.200   ....   ....   ....   .... .... ....   ....
+3   / 3: .... ....  3.300  24.00  130.0   ....    0.0 .... ....   ....
+4   / 4: .... ....   ....   ....   ....   ....   .... .... ....   ....
+5   / 5: .... ....  4.400 -24.00 -130.0  91.00 -400.0 .... ....  77.00
+6   / 6: .... ....   ....   ....   ....   ....   .... .... ....   ....
  
 ! insist that all columns be treated as latitude
 file/format=delim/skip=1/type=latitude bn_delimited_read_1.dat
@@ -36318,13 +36405,13 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
  Column  8: V8 is V8 (degrees_north)(Latitude)
  Column  9: V9 is V9 (degrees_north)(Latitude)
  Column 10: V10 is V10 (degrees_north)(Latitude)
-        V1  V2   V3     V4     V5     V6     V7   V8 V9   V10
-1   / 1:......  1.100 -24.00   ....   ....   10.0......   ....
-2   / 2:......  2.200  24.00   ....  -2.00   ..........   ....
-3   / 3:......  3.300  24.00  130.0   3.00    0.0......   ....
-4   / 4:......   ....   ....   ....   ....   ..........   ....
-5   / 5:......  4.400 -24.00 -130.0  91.00 -400.0......  77.00
-6   / 6:......   ....   ....   ....   ....   ..........   ....
+          V1   V2    V3     V4     V5     V6     V7    V8   V9    V10
+1   / 1: .... ....  1.100 -24.00   ....   ....   10.0 .... ....   ....
+2   / 2: .... ....  2.200  24.00   ....  -2.00   .... .... ....   ....
+3   / 3: .... ....  3.300  24.00  130.0   3.00    0.0 .... ....   ....
+4   / 4: .... ....   ....   ....   ....   ....   .... .... ....   ....
+5   / 5: .... ....  4.400 -24.00 -130.0  91.00 -400.0 .... ....  77.00
+6   / 6: .... ....   ....   ....   ....   ....   .... .... ....   ....
  
 ! read only the first line of the file
 spawn head -1 bn_delimited_read_1.dat
@@ -36346,8 +36433,8 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
  Column  8: V8
  Column  9: V9
  Column 10: V10
-             V1    V2     V3     V4     V5    V6 V7  V8  V9 V10
-I / *:    "col1" "col2" "col3" "col4" "col5" " "... " " " "....
+             V1    V2     V3     V4     V5    V6  V7   V8  V9  V10
+I / *:    "col1" "col2" "col3" "col4" "col5" " " .... " " " " ....
 columns/grid=g1/var=c1,c2,c3,c4,c5 bn_delimited_read_1.dat
 list c1,c2,c3,c4,c5
              DATA SET: ./bn_delimited_read_1.dat
@@ -36465,11 +36552,11 @@ list v1,v2,v3,v4,v5,v6,v7,v8
  Column  6: V6 is V6 (days)(Julian days since 1-Jan-1900)
  Column  7: V7 is V7 (days)(Julian days since 1-Jan-1900)
  Column  8: V8 is V8 (days)(Julian days since 1-Jan-1900)
-             V1     V2   V3 V4    V5      V6   V7 V8
-1   / 1:  36493.  36218.......  36493.  36218.......
-2   / 2:  36494.  36219.......  36494.  36219.......
-3   / 3:    ....    ..........  36495.  36220.......
-4   / 4:  36496.  36221.......  36496.  36221.......
+             V1     V2    V3   V4     V5      V6    V7   V8
+1   / 1:  36493.  36218. .... ....  36493.  36218. .... ....
+2   / 2:  36494.  36219. .... ....  36494.  36219. .... ....
+3   / 3:    ....    .... .... ....  36495.  36220. .... ....
+4   / 4:  36496.  36221. .... ....  36496.  36221. .... ....
 show data 2
      currently SET data sets:
     2> ./bn_delimited_read_date_time.dat  (default)
@@ -36504,11 +36591,11 @@ list v1,v2,v3,v4,v5,v6,v7,v8
  Column  6: V6 is V6 (hours)(Time of day)
  Column  7: V7 is V7 (hours)(Time of day)
  Column  8: V8 is V8 (hours)(Time of day)
-        V1  V2   V3     V4   V5 V6   V7     V8
-1   / 1:......  12.00  13.76......  12.00  13.76
-2   / 2:......   1.00  14.76......   1.00  14.76
-3   / 3:......   ....   ..........   2.00  15.75
-4   / 4:......   3.00  16.76......   3.00  16.76
+          V1   V2    V3     V4    V5   V6    V7     V8
+1   / 1: .... ....  12.00  13.76 .... ....  12.00  13.76
+2   / 2: .... ....   1.00  14.76 .... ....   1.00  14.76
+3   / 3: .... ....   ....   .... .... ....   2.00  15.75
+4   / 4: .... ....   3.00  16.76 .... ....   3.00  16.76
 show data 2
      currently SET data sets:
     2> ./bn_delimited_read_date_time.dat  (default)
@@ -37147,7 +37234,7 @@ file/form=delim/delim="/,,,:" bn_delimited_read_date_time.dat
 cancel mode ignore
  
 *** Running test: bn541_bug_fixes.jnl
-! bn541_bug_fixes.jnl
+[?1034h! bn541_bug_fixes.jnl
 ! test various fixes that went into version 5.41
 ! 3/02 *acm*
 !
@@ -38049,8 +38136,11 @@ save/q/clob/file=g.nc b
 can var a b
  
 sp ncrename -h -v A,a f.nc
+ncrename: In total renamed 0 attributes, 0 dimensions, 0 groups, and 1 variable
 sp ncrename -h -v A,a -v B,b f2.nc
+ncrename: In total renamed 0 attributes, 0 dimensions, 0 groups, and 2 variables
 sp ncrename -h -v B,b g.nc
+ncrename: In total renamed 0 attributes, 0 dimensions, 0 groups, and 1 variable
 use f.nc
 use f2.nc
 use g.nc
@@ -38116,7 +38206,7 @@ list b[d=1]
  
  
 *** Running test: bn_cancel_axes.jnl
-! bn_cancel_axes.jnl
+[?1034h! bn_cancel_axes.jnl
  
 let ind1 = 1*i
 let tim1 = 20500*randu(ind1[i=1:20500])
@@ -38363,7 +38453,7 @@ T0 = 01-JAN-0000 00:00:00
        4>  15-NOV 14:05:33       2191.455   30-SEP 22:21:54        7670.092
  
 *** Running test: bn542_bug_fixes.jnl
-! bn542_bug_fixes.jnl
+[?1034h! bn542_bug_fixes.jnl
 ! test various fixes that went into version 5.42
 ! 10/02 *acm*
 !
@@ -38571,7 +38661,7 @@ cancel mode verify
 ! GO err541_date_delim
  
 *** Running test: bn_subspan_modulo.jnl
-! bn_subspan_modulo.jnl
+[?1034h! bn_subspan_modulo.jnl
 ! *sh* 11/02
  
 ! a subspan modulo axis is one which is modulo, but the wrapping length
@@ -39258,7 +39348,7 @@ list/nohead/l=1001:1009 time_series[gt=($TAXNAME)@mod]
  
 ! test modulo string arrays
 list $1_strings[i=5:7]  	! via IS_SUBSPAN_FILL
- !-> list vreg_strings[i=5:7]  	! via IS_SUBSPAN_FILL
+ !-> list vreg_strings[i=5:7]
              VARIABLE : MY_STRINGS[GX=XAX_SUBSPAN at ASN]
              FILENAME : test_subspan_modulo.nc
              SUBSET   : 3 points (X)
@@ -39266,7 +39356,7 @@ list $1_strings[i=5:7]  	! via IS_SUBSPAN_FILL
  46   / 6:"a6"
  93.5 / 7:""  
 list $1_strings[i=1013:1024] 	! via IS_MODULO
- !-> list vreg_strings[i=1013:1024] 	! via IS_MODULO
+ !-> list vreg_strings[i=1013:1024]
              VARIABLE : MY_STRINGS[GX=XAX_SUBSPAN at ASN]
              FILENAME : test_subspan_modulo.nc
              SUBSET   : 12 points (X)
@@ -39787,7 +39877,7 @@ list/nohead/l=1001:1009 time_series[gt=($TAXNAME)@mod]
  
 ! test modulo string arrays
 list $1_strings[i=5:7]  	! via IS_SUBSPAN_FILL
- !-> list virr_strings[i=5:7]  	! via IS_SUBSPAN_FILL
+ !-> list virr_strings[i=5:7]
              VARIABLE : MY_STRINGS[GX=XIRREG_SUBSPAN at ASN]
              FILENAME : test_subspan_modulo.nc
              SUBSET   : 3 points (X)
@@ -39795,7 +39885,7 @@ list $1_strings[i=5:7]  	! via IS_SUBSPAN_FILL
  46   / 6:"a6"
  93.5 / 7:""  
 list $1_strings[i=1013:1024] 	! via IS_MODULO
- !-> list virr_strings[i=1013:1024] 	! via IS_MODULO
+ !-> list virr_strings[i=1013:1024]
              VARIABLE : MY_STRINGS[GX=XIRREG_SUBSPAN at ASN]
              FILENAME : test_subspan_modulo.nc
              SUBSET   : 12 points (X)
@@ -39814,7 +39904,7 @@ list $1_strings[i=1013:1024] 	! via IS_MODULO
  
  
 *** Running test: bn_dots.jnl
-! PLOT/SYMBOL=DOT  qualifiers
+[?1034h! PLOT/SYMBOL=DOT  qualifiers
 ! *acm* 12/02
 ! ACM 4/2005 set mode meta to save this plot for the metafile checks.
 !            and cancel mode logo, so that .plt files are comparable.
@@ -39832,9 +39922,8 @@ 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)
-set mode logo
 *** Running test: bn_lev_symbols.jnl
-! Test symbols which capture the latest LEVELS settings
+[?1034h! Test symbols which capture the latest LEVELS settings
 ! LEV_TEXT  The argument, if any, to the LEV qualifier
 ! LEV_MIN  Minimum level
 ! LEV_MAX  Maximum level
@@ -39909,7 +39998,7 @@ LEV_MAX = "33"
 LEV_NUM = "1"
 LEV_DEL = "none"
 *** Running test: bn_mode_logo_lab.jnl
- 
+[?1034h 
 ! bn_mode_logo_lab.jnl
 ! cancel both logo and labels
 ! NOTE this script redefined the pre-defined viewports ul, ur, ll, lr...
@@ -39940,7 +40029,8 @@ show modes
       LATIT_LABEL      SET               1
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
-      6D_LAB           SET
+      E_LABEL          SET               1
+      F_LABEL          SET               1
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -39959,7 +40049,8 @@ show modes
       NODATA_LAB       SET
       SHRINK_YLAB   CANCELLED
       CURVILINEAR   CANCELLED
-      SIGMA         CANCELLED
+      LAYERZ        CANCELLED
+      6D_LAB           SET
 contour/i=1:10/j=1:10 i/j
  
 ! restore the labels, logo still gone
@@ -40000,10 +40091,10 @@ polygon/axes=1,0,1,0 {1,2,1}, {2,1,0.5}
  
 ! restore state of modes
 cancel view
-set mode logo
+cancel mode logo
 set mode labels
 *** Running test: bn_modulo_attribute.jnl
-! Ferret V5.50 m
+[?1034h! Ferret V5.50 m
  
 ! Modulo attribute can take numerical values to indicate
 ! the modulo length of axis (subspan modulo changes)
@@ -40042,7 +40133,7 @@ T0 = %%
    Axis span (to cell edges) = 40 (modulo length = axis span)
  
 *** Running test: bn550_bug_fixes.jnl
-! bn550_bug_fixes.jnl
+[?1034h! bn550_bug_fixes.jnl
 ! test various fixes that went into version 5.5
 ! 10/02 *acm*
 !
@@ -40059,7 +40150,7 @@ shade pc
 poly/over/color=red/line=2/title="polygon" {220,240,280,250},{-20,70,40,-30}
  
 *** Running test: bn551_bug_fixes.jnl
-! bn551_bug_fixes.jnl
+[?1034h! bn551_bug_fixes.jnl
 ! test various fixes that went into version 5.51
 ! 2/03 *acm*
 !
@@ -40289,7 +40380,7 @@ GO err550_dots_thickpens.jnl
  
 plot/sym=dot/color=8/i=1:10 i
 *** Running test: bn_multi_line_labels.jnl
-     ! bn_multi_line_labels.jnl
+[?1034h     ! bn_multi_line_labels.jnl
 ! March 31, 2003
 !
 ! ACM 4/2005 ! set mode meta to save this plot for the metafile checks.
@@ -40417,7 +40508,7 @@ ppl plot
  
 ppl rlabs,4,0
 *** Running test: bn552_bug_fixes.jnl
-! bn552_bug_fixes.jnl
+[?1034h! bn552_bug_fixes.jnl
 ! test various fixes that went into version 5.52
 ! 3/03 *acm*
 !
@@ -40901,7 +40992,7 @@ list/t=1-jan-1990 dummy
  
 SET MODE/LAST IGNORE_ERROR
 *** Running test: bn_set_var_scale_off.jnl
-! Qualifiers /SCALEFACTOR=  and /OFFSET  for SET VARIABLE.
+[?1034h! Qualifiers /SCALEFACTOR=  and /OFFSET  for SET VARIABLE.
 ! Only for NetCDF datasets
 ! Applied after NetCDF Scale_factor and add_offset attributes
 ! New RETURN= arguments NC_SCALE, NC_OFF for values of NetCDF attributes
@@ -40946,7 +41037,7 @@ SET VAR/SCALE=10 x2
  
 SET MODE/LAST IGNORE_ERROR
 *** Running test: bn_longvarnames.jnl
-! variable names up to 128 characters long
+[?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.
  
@@ -41047,7 +41138,7 @@ LIST/K=2/L=3 a234567890b234567890c234567890d234567890e234567890f234567890g234567
  3   / 3:   9.00  15.00  21.00  27.00  33.00
  4   / 4:  11.00  19.00  27.00  35.00  43.00
 *** Running test: bn_shakey.jnl
-! Changes to shade key:
+[?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
 ! - Previously ALL OF kx_lo, kx_hi,ky_lo, ky_hi had to be set, or none of them
@@ -41172,7 +41263,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
-! bn_eof_4d.jnl
+[?1034h! bn_eof_4d.jnl
 ! test EOFs on XYZT grids
  
 ! In version 6.8 (double precision), the old eof functions are not available
@@ -41383,7 +41474,7 @@ list/nohead/i=1:5/j=3/k=9 eofst
  
 exit/script
 *** Running test: bn_abstract_axis_names.jnl
-! bn_abstract_axis_names.jnl
+[?1034h! bn_abstract_axis_names.jnl
 ! acm 6/12/03
 !
 ! Write and read datafiles with no clues about axis orientation from
@@ -41582,7 +41673,7 @@ sh grid v
  normal    F
 can data 1
 *** Running test: bn_many_polygons.jnl
-! testing large number of polygons in a plot.  Map plot has
+[?1034h! testing large number of polygons in a plot.  Map plot has
 ! 130501 polygons; previously we had an upper limit of 100K polygons
  
 use coads_climatology
@@ -41610,7 +41701,7 @@ let xpts = 180 + 30*randu(i[i=1:10])
 let ypts = 30*randu(1+i[i=1:10])
 polygon xtriangle+xpts, ytriangle+ypts, i[i=1:10]
 *** Running test: bn_fill_irregular.jnl
-! FILL on vars with irregular axes
+[?1034h! FILL on vars with irregular axes
  
 use gtbc011
 fill/i=70/l=1 temp
@@ -41631,7 +41722,7 @@ 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
-!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.
@@ -42875,7 +42966,7 @@ SHOW VAR/XML
 </global>
  
 *** Running test: bn_test_nan.jnl
-!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
@@ -42951,7 +43042,7 @@ can var/all
  
  
 *** Running test: bn553_bug_fixes.jnl
-! bn553_bug_fixes.jnl
+[?1034h! bn553_bug_fixes.jnl
 ! test various fixes that went into version 5.52
 ! 9/03 *kob*
 !
@@ -43036,7 +43127,7 @@ ppl shakey 1,1,.12
 ppl shade
  
 *** Running test: bn_graticules.jnl
-! /GRAT, /HGRAT and /VGRAT to set graticule lines
+[?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.
 !            and cancel mode logo, so that .plt files are comparable.
@@ -43086,7 +43177,6 @@ let fcn = k[gz=dlog]
 plot/vlog/vlimits=1:100000/hg="large(color=red),small(color=lightblue)" fcn
  
 can mode meta
-set mode logo
  
 can view
  
@@ -43145,7 +43235,7 @@ can mode graticule
 pplus/reset   ! restore tics etc
  
 *** Running test: bn_repeat_range.jnl
-! REPEAT/RANGE=[/NAME=]  for looping without depending
+[?1034h! REPEAT/RANGE=[/NAME=]  for looping without depending
 ! on the grid\
 ! ACM March 12, 2004
  
@@ -43642,7 +43732,7 @@ repeat/range=1:4/name=a (repeat/range=3:1:-1/name=a list a)
 !-> REPEAT: A:4
 cancel mode ignore
 *** Running test: bn554_bug_fixes.jnl
-! bn554_bug_fixes.jnl
+[?1034h! bn554_bug_fixes.jnl
 ! test various fixes that went into version 5.54
 ! 11/03 *acm*
 !
@@ -44278,7 +44368,7 @@ list/k=1/l=1 a[i=3:5,j=1:8:2]
  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: 15 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ 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
              VARIABLE : BIGVAR[I=1:40:5]
                         regrid: 2 delta on Y
@@ -44300,7 +44390,7 @@ cancel mem/all
  -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: 15 dset:   1 I:    3    5  J:    1    4  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
  
 ! basic strides
 LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
@@ -44315,7 +44405,7 @@ LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
  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: 15 dset:   1 I:    2    4  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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
@@ -44344,7 +44434,7 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  allocate dynamic grid (G007)          (AX021)   (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: 15 dset:   1 I:    1    4  J:    1    3  K:    1    2  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
              VARIABLE : VAR
@@ -44363,7 +44453,7 @@ 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: 15 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:    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
  
@@ -44378,7 +44468,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: 11 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 15 dset:   1 I:    3    9  J:    2    6  K:    1    3  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
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
@@ -44413,7 +44503,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  allocate dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX022)   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: 15 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  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
              VARIABLE : L*1000 + J*10 + I
@@ -44434,7 +44524,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
 use/order=tyx bn_strides
 show grid xytvar
  dealloc  dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
- -DELETE XYTVAR   M: 15 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    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
@@ -44456,7 +44546,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: 11 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 15 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
@@ -44500,7 +44590,7 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
  allocate dynamic grid (G006)          (AX023)   (AX024)   (AX022)   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: 15 dset:   1 I:    1    4  J:    1    3  K:    1    2  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
              VARIABLE : L*1000 + J*10 + I
@@ -44518,7 +44608,7 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
  144   / 2:  1054.  3054.  5054.  7054.
  146   / 3:  1056.  3056.  5056.  7056.
 canc data/all
- -DELETE XYTVAR   M: 15 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ -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
  
  
@@ -44536,7 +44626,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: 11 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 15 dset:   1 I:    1    5  J:    2    5  K:    3    5  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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -44569,7 +44659,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: 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: 15 dset:   1 I:    1    5  J:    2    5  K:    3    5  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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -44599,7 +44689,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  allocate dynamic grid (G006)          (AX024)   (AX023)   (AX021)   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: 15 dset:   1 I:    1    2  J:    1    2  K:    1    2  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
              VARIABLE : VAR
@@ -44616,7 +44706,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1125.  5125.
  5   / 2:  1155.  5155.
 canc data/all
- -DELETE MIDVAR   M: 15 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    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
  
 ! note the reversal on axes 1,2 and 3 (X,Y,Z in memory -- NOT T)
@@ -44632,8 +44722,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: 15 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 15 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
+ 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
              VARIABLE : VAR
@@ -44650,7 +44740,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  6775.  2775.
  5   / 2:  6745.  2745.
 canc data/all
- -DELETE MIDVAR   M: 15 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    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
  
 ! reference output
@@ -44665,7 +44755,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: 11 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 15 dset:   1 I:    1    5  J:    2    5  K:    3    5  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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -44698,7 +44788,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: 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: 15 dset:   1 I:    1    5  J:    2    5  K:    3    5  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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -44762,7 +44852,7 @@ ppl list shakey
 
          DEFAULT KEY POSITIONING
          X LO     X HI     Y LO     Y HI
-         9.40     9.69     1.40     7.40
+         9.37     9.66     1.40     7.40
  
 fill/lev=c {-1.1,1.1}*ysequence({1,1})
 ppl list shakey
@@ -44773,7 +44863,7 @@ ppl list shakey
 
          DEFAULT KEY POSITIONING
          X LO     X HI     Y LO     Y HI
-         9.40     9.69     1.40     7.40
+         9.37     9.66     1.40     7.40
  
  
 ! At lon = 0, we used to have an E; remove this.
@@ -45091,7 +45181,7 @@ list/wid=1024/y=1:2 sin(x[gx=xax]) + y[gy=yax]
  
 can mode ignore
 *** Running test: bn_bounds.jnl
- 
+[?1034h 
 ! bn_bounds.jnl
 ! testing CDF read and write of file with irregular axes and bounds
 ! and DEFINE AXIS/BOUNDS
@@ -45453,7 +45543,7 @@ sh axis/t tax
        4>  10                    1          9.5
        5>  11                    1          10.5
 *** Running test: bn_all_leap.jnl
-! 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).
 ! leap year every year
@@ -45503,7 +45593,7 @@ 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
-! bn554_bug_fixes.jnl
+[?1034h! bn554_bug_fixes.jnl
 ! test various fixes that went into version 5.70
 ! 11/03 *acm*
 !
@@ -45740,7 +45830,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
-! bn_modstats.jnl
+[?1034h! bn_modstats.jnl
 ! acm 8/25/04
 ! There was never a benchmark test of modulo statistics.
 ! (and a bug had crept into @MODVAR when there was missing data)
@@ -45887,7 +45977,7 @@ list var[gt=month_reg at modngd]
  15-NOV      / 11:  10.00
  16-DEC      / 12:  10.00
 *** Running test: bn_mc_vary_scale.jnl
-! 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
 !   scale and offset from the first stepfile were applied.
@@ -45965,7 +46055,7 @@ list/quiet/nohead `tt,return=nc_scale`, `tt,return=nc_offset`
 I / *:     2.000 -0.02000
  
 *** Running test: bn_plot_nokey.jnl
-! bn_plot_nokey.jnl (bug 1089)
+[?1034h! bn_plot_nokey.jnl (bug 1089)
 ! 22-nov-2004
  
 ! Test new PLOT/NOKEY qualifier
@@ -45984,7 +46074,7 @@ PLOT/X=180/Y=0/K=1 temp
 PLOT/OVER/NOKEY/X=180/Y=-1/K=1 temp
 PLOT/OVER/NOKEY/X=180/Y=1/K=1 temp
 *** Running test: bn580_bug_fixes.jnl
-! bn580_bug_fixes.jnl
+[?1034h! bn580_bug_fixes.jnl
 ! test various fixes that went into version 5.80
 ! 7/04 *acm*
 !
@@ -46050,44 +46140,44 @@ GO err570_shakeylab.jnl
 use coads_climatology
 ppl dfltfnt cr
  
-define viewport/axes/text=1/xlim=0.1:0.85/ylim=`1/3`:`2/3` vp_1
- !-> define viewport/axes/text=1/xlim=0.1:0.85/ylim=0.3333333333333333:0.6666666666666666 vp_1
+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
 set viewport vp_1
  
 fill/set/L=2 sst
 ppl shakey 1, 1, 0.1, 0, -2, 8,  `($ppl$xorg)+($ppl$xlen)+0.3`,  `($ppl$xorg)+($ppl$xlen)+0.6`, `($ppl$yorg)`, `($ppl$yorg)+($ppl$ylen)`
- !-> ppl shakey 1, 1, 0.1, 0, -2, 8,  8.97,  9.27, 1.4, 4.333
+ !-> ppl shakey 1, 1, 0.1, 0, -2, 8,  10.282,  10.582, 1.4, 4.777
 ppl fill
  
 fill/set/L=2 sst* 10000
 ppl shakey 1, 1, 0.1, 0, -2, 8,  `($ppl$xorg)+($ppl$xlen)+0.3`,  `($ppl$xorg)+($ppl$xlen)+0.6`, `($ppl$yorg)`, `($ppl$yorg)+($ppl$ylen)`
- !-> ppl shakey 1, 1, 0.1, 0, -2, 8,  8.97,  9.27, 1.4, 4.333
+ !-> ppl shakey 1, 1, 0.1, 0, -2, 8,  10.282,  10.582, 1.4, 4.777
 ppl fill
  
 fill/set/L=2 sst/ 10000
 ppl shakey 1, 1, 0.1, 0, -2, 8,  `($ppl$xorg)+($ppl$xlen)+0.3`,  `($ppl$xorg)+($ppl$xlen)+0.6`, `($ppl$yorg)`, `($ppl$yorg)+($ppl$ylen)`
- !-> ppl shakey 1, 1, 0.1, 0, -2, 8,  8.97,  9.27, 1.4, 4.333
+ !-> ppl shakey 1, 1, 0.1, 0, -2, 8,  10.282,  10.582, 1.4, 4.777
 ppl fill
  
 !
  
-define viewport/axes/text=1/xlim=0.1:0.85/ylim=`1/3`:`2/3` vp_1
- !-> define viewport/axes/text=1/xlim=0.1:0.85/ylim=0.3333333333333333:0.6666666666666666 vp_1
+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
 set viewport vp_1
  
 shade/set/L=2 sst
 ppl shakey 1, 1, 0.1, 0, -2, 8,  `($ppl$xorg)+($ppl$xlen)+0.3`,  `($ppl$xorg)+($ppl$xlen)+0.6`, `($ppl$yorg)`, `($ppl$yorg)+($ppl$ylen)`
- !-> ppl shakey 1, 1, 0.1, 0, -2, 8,  8.97,  9.27, 1.4, 4.333
+ !-> ppl shakey 1, 1, 0.1, 0, -2, 8,  10.282,  10.582, 1.4, 4.777
 ppl shade
  
 shade/set/L=2 sst* 10000
 ppl shakey 1, 1, 0.1, 0, -2, 8,  `($ppl$xorg)+($ppl$xlen)+0.3`,  `($ppl$xorg)+($ppl$xlen)+0.6`, `($ppl$yorg)`, `($ppl$yorg)+($ppl$ylen)`
- !-> ppl shakey 1, 1, 0.1, 0, -2, 8,  8.97,  9.27, 1.4, 4.333
+ !-> ppl shakey 1, 1, 0.1, 0, -2, 8,  10.282,  10.582, 1.4, 4.777
 ppl shade
  
 shade/set/L=2 sst/ 10000
 ppl shakey 1, 1, 0.1, 0, -2, 8,  `($ppl$xorg)+($ppl$xlen)+0.3`,  `($ppl$xorg)+($ppl$xlen)+0.6`, `($ppl$yorg)`, `($ppl$yorg)+($ppl$ylen)`
- !-> ppl shakey 1, 1, 0.1, 0, -2, 8,  8.97,  9.27, 1.4, 4.333
+ !-> ppl shakey 1, 1, 0.1, 0, -2, 8,  10.282,  10.582, 1.4, 4.777
 ppl shade
  
  
@@ -46815,7 +46905,7 @@ show data/full
      NCEP Ocean Analysis
  name     title                             I         J         K         L         M         N
  TEMP     temperature                      1:1       1:1       1:19      1:1       ...       ...
-             degree_Celsius on grid GGH1 with 1.E-34 & NaN for missing data
+             degree_Celsius on grid GGH1 with -1.E+34 & NaN for missing data
              X=139.8E:140.8E  Y=0.5S:0.5N  Z=0:375  
  
   time range: 15-FEB-1980 12:00
@@ -47096,9 +47186,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  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 4  8.000E+00  6.750E+00 0.073    0  SYSTEM  @ASOPeNDAP URL: http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/
  LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
  
  
@@ -47143,7 +47231,7 @@ POLYGON XT, YT, I[I=1:10]
  
 PLOT/VS XT, YT
 *** Running test: bn_inf_levels.jnl
-! Run FERRET/fer/ferretdods_gui
+[?1034h! Run FERRET/fer/ferretdods_gui
 ! test open upper and lower levels (-INF) (INF)
  
 can mode logo
@@ -47234,7 +47322,7 @@ go polymark poly/key/title="polygons"/lev=(-inf)(4,26,1)(inf), lon, lat, xsequen
  
  
 *** Running test: bn_regulart.jnl
-! bn_regulart.jnl
+[?1034h! bn_regulart.jnl
 ! 5/12/2005 ACM
  
 ! Test of the USE/REGULART qualifier
@@ -47278,14 +47366,32 @@ list/l=1:6 t[gt=tcoads], tbox[gt=tcoads]
 17-JUN-1946 / 6:  90017.  30.44
  
 *** Running test: bn_labwid.jnl
-! LABWID returns the length in Denbo inches of the
+[?1034h! LABWID returns the length in Denbo inches of the
 ! string.  For multi-line strings, returns length of
 ! the longest line.
  
+! In pyFerret fonts, there must be an open window before we
+! can query font information.  The following is an error
+ 
+set mode ignore
 LIST LABWID("aaaaabbbbb", .15)
              VARIABLE : LABWID("aaaaabbbbb", .15)
              X        : 1
           1.357
+cancel mode ignore
+ 
+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)
+ 
+ 
+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"
+ 
 LIST LABWID("aaaaabbbbb", .10)
              VARIABLE : LABWID("aaaaabbbbb", .10)
              X        : 1
@@ -47316,21 +47422,8 @@ LIST LABWID("@IISTRING<NL>@SSSTRING", .15)
              VARIABLE : LABWID("@IISTRING<NL>@SSSTRING", .15)
              X        : 1
           0.9808
- 
- 
-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)
- 
- 
-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
-! bn_redefine_taxis_mc.jnl
+[?1034h! bn_redefine_taxis_mc.jnl
 ! ACM 15-Apr-2005
  
 ! Redefine the time axis of a multi-file data set.
@@ -47393,7 +47486,7 @@ list/x=180/y=0 sst
  5   / 5:  28.49
  6   / 6:  28.32
 *** Running test: bn_illegal_axisname.jnl
-! Some OPenDAP HDF files have illegal axis names, e.g. with a dot in the name.
+[?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
 ! just indices.  The file also has variables NEW.LONGITUDES and NEW.LATITUDES which contain
@@ -47446,7 +47539,7 @@ sh grid sst
  normal    E
  normal    F
 *** Running test: bn_exit_script.jnl
-! bn_exit_script.jnl
+[?1034h! bn_exit_script.jnl
 ! 5/2005 ACM
 ! tests of EXIT/SCRIPT command, in combination with IF and REPEAT
 ! 3/2007 add a check for exit/script within a loop (fixes for bug 1304)
@@ -47532,7 +47625,7 @@ loop
 3
 loop
 *** Running test: bn_exit_cycle.jnl
-! bn_exit_cycle.jnl
+[?1034h! bn_exit_cycle.jnl
 ! 5/2005 ACM
 ! EXIT/CYCLE skips remaining commands in this repetition of a loop
  
@@ -47560,7 +47653,7 @@ say 16384 if bigger than 500
  
 loop finished 16384 gt 10000
 *** Running test: bn_curv_mod.jnl
-! bn_curv_mod
+[?1034h! bn_curv_mod
 ! Test of fill/mod and contour/mod
 ! 5/24/2005 Ferret v5.81
  
@@ -47578,7 +47671,7 @@ fill/mod/hlim=-180:180 ht, geolon_vert_t[i=1:180,j=1:24], geolat_vert_t[i=1:180,
 contour/over/mod/hlim=-180:180 ht, geolon_vert_t[i=1:180,j=1:24], geolat_vert_t[i=1:180,j=1:24]
  
 *** Running test: bn_shade_keycont.jnl
-! Continuous shade key
+[?1034h! Continuous shade key
 ! test setting it and whether default is restored on next command.
 ! also whether behavior consistent when we call shakey
  
@@ -47671,7 +47764,7 @@ 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
-! bn581_bug_fixes.jnl
+[?1034h! bn581_bug_fixes.jnl
 ! test various fixes that went into version 5.81
 ! 2/05 *acm*
 !
@@ -47686,9 +47779,9 @@ GO err580_irreg_bounds.jnl
 ! the bounds seem to be ignored; axis is seen as regular.
 ! Bug 1160 reported by Andrew.
  
-yes? def ax/t/edge time = {0,1,3}
-yes? let a = t[gt=time]
-yes? show grid/t a
+def ax/t/edge time = {0,1,3}
+let a = t[gt=time]
+show grid/t a
     GRID (G001)
  name       axis              # pts   start                end
  normal    X
@@ -47702,17 +47795,17 @@ yes? show grid/t a
        1>  0.5                   1          0
        2>  2                     2          1
  
-yes? save/clob/file=a.nc a
+save/clob/file=a.nc a
 sp echo "err580_irreg_bounds.jnl --- " >> all_ncdump.out
-yes? sp ncdump a.nc >> all_ncdump.out
+sp ncdump a.nc >> all_ncdump.out
  
 can data/all
 can var/all
 can mem
  
 !  T axis was marked as regular
-yes? use a.nc
-yes? show grid/t a
+use a.nc
+show grid/t a
     GRID GSI1
  name       axis              # pts   start                end
  normal    X
@@ -47919,7 +48012,7 @@ GO err580_def_view_axes.jnl
  
 ! Does not crash with Ferret v5.50
  
-define view/x=0.2:0.4/y=.2:.4/text=0.75/axes v1
+define view/x=0.2:0.4/y=.2:.4/axes v1
  
 set window/clear
 set mode metafile viewaxes.plt
@@ -48151,7 +48244,7 @@ POLYGON/LINE/fill xp, yp, ypts
 ! GO err580_regrid_prec.jnl
  
 *** Running test: bn_tab_comma_multivar.jnl
-! bn_tab_comma_multivar.jnl
+[?1034h! bn_tab_comma_multivar.jnl
 !
 ! Fixes for bug 1273
 ! v5.90 8/9/2005
@@ -48193,7 +48286,7 @@ COUNTRY	ID	AA	BB	NEWCOUNTRY	THE_DATA_VAR
 "JP"	2	8000	2000500	"c"	5  
 "US"	3	12000	3000500	"e"	4  
 *** Running test: bn_element_functions.jnl
- ! NOAA/PMEL TMAP
+[?1034h ! NOAA/PMEL TMAP
  ! FERRET v5.81
  ! Solaris 5.6 - 08/08/05
  !  9-Aug-05 14:36
@@ -48317,14 +48410,14 @@ list element_index_str_n (axy[k=1:2,j=1:2], {"a10", "a2", "d4", "c5"})
  2   / 2:   ....  3.000
  
 *** Running test: bn_long_revision_num.jnl
-! 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
 ! Now they can be longer, for minor revisions between releases: v5.8101
  
 ! ferret version
 sh sym FERRET_VERSION
-FERRET_VERSION = "6.93"
+FERRET_VERSION = "6.96"
  
 ! history attribute
 let a = 12
@@ -48342,10 +48435,11 @@ 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.1.0) version6.93:
+ Commands in Program FERRET (PyFerret 1.2) version6.96:
  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
@@ -48355,8 +48449,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/SIGMA
-      /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
@@ -48364,6 +48458,7 @@ sho command
  SET NCCACHE/SIZE/NELEMS/PREEMPT
  SET REDIRECT/TEE/JOURNAL/FILE/APPEND/CLOBBER
  SET GIFFILE
+ SET TEXT/FONT/COLOR/ITALIC/BOLD/ISIZ
  SHOW/ALL
  SHOW WINDOW/ALL
  SHOW REGION/ALL
@@ -48374,7 +48469,7 @@ sho command
        /HIDDEN
  SHOW MODE/ALL
  SHOW MOVIE/ALL
- SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/SIGMA
+ SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ
        /CURVILIN
  SHOW COMMANDS/ALL
  SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
@@ -48387,8 +48482,8 @@ sho command
  SHOW NCCACHE
  SHOW GIFFILE
  SHOW FUNCTION/ALL/BRIEF/EXTERNAL/INTERNAL/DETAILS
- SHOW QUERIES/ALL
- CANCEL
+ SHOW TEXT
+ CANCEL QUERIES
  CANCEL WIND/ALL
  CANCEL REGION/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F
  CANCEL MEMORY/ALL/TEMPORY/PERMANT
@@ -48398,7 +48493,7 @@ sho command
  CANCEL MODE
  CANCEL MOVIE/ALL
  CANCEL VIEWPORT
- CANCEL VARIABLE/ALL/DATASET/SIGMA/CURVILIN
+ CANCEL VARIABLE/ALL/DATASET/LAYERZ/CURVILIN/NOERROR
  CANCEL AXIS/MODULO/ALL/DEPTH/STRIDE
  CANCEL GRID
  CANCEL ATTRIBUT/OUTPUT/DATA
@@ -48407,6 +48502,7 @@ sho command
  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
           /NOAXES/PATTERN/SIZE/SPACING/SIGDIG/PEN/HLIMITS/VLIMITS/AXES/HGRATICU
@@ -48416,11 +48512,11 @@ sho command
        /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/SIGMA
+       /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/OPACITY
+       /NOYADJUS/KEY/RIBBON/LEVELS/PALETTE/FAST/MISSING/GAPLOC/OPACITY
  GO/HELP
  HELP
  LOAD/TEMPORY/PERMANT/I/J/K/L/M/N/X/Y/Z/T/E/F/D/NAME
@@ -48436,7 +48532,8 @@ sho command
  DEFINE SYMBOL
  DEFINE ATTRIBUT/D/TYPE/OUTPUT/QUIET
  DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/E/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/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
@@ -48463,10 +48560,11 @@ sho command
           /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
-! 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
  
@@ -48477,7 +48575,7 @@ go ptest
 PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
  
 sh sym win_title
-WIN_TITLE = "5-Nov-14_16:39"
+WIN_TITLE = "19-Nov-15_12:05"
  
 set win/title="set the title"
 sho sym win_title
@@ -48495,7 +48593,7 @@ sho sym win_title
 WIN_TITLE = "_"
  
 set win/title="($session_date):($session_time)"
- !-> set win/title=" 5-Nov-14:16:39"
+ !-> set win/title="19-Nov-15: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
@@ -48504,18 +48602,18 @@ set win/title="($session_date):($session_time)"
 ! If so substitute another string.
  
 DEFINE SYMBOL the_date = ($session_date"SESSION_DATE")
- !-> DEFINE SYMBOL the_date =  5-Nov-14
+ !-> DEFINE SYMBOL the_date = 19-Nov-15
 DEFINE SYMBOL the_time = ($session_time"SESSION_TIME")
- !-> DEFINE SYMBOL the_time = 16:39
+ !-> DEFINE SYMBOL the_time = 12:05
 SET WIN/TITLE="($the_date):($the_time)"
- !-> SET WIN/TITLE="5-Nov-14:16:39"
+ !-> SET WIN/TITLE="19-Nov-15:12:05"
  
 can win/all
 set win/new
 sh sym win_title
-WIN_TITLE = "5-Nov-14:16:39"
+WIN_TITLE = "19-Nov-15:12:05"
 *** Running test: bn_last_error.jnl
-! bn_last_error.jnl
+[?1034h! bn_last_error.jnl
 ! acm Nov 2005
 !
 ! - test the symbol FER_LAST_ERROR (Commands from various bn scripts)
@@ -48568,7 +48666,7 @@ FER_LAST_ERROR = "**ERROR: error in external function. Bailing out of external f
  
 SET MODE/LAST IGNORE_ERROR
 *** Running test: bn_deg_min.jnl
-! 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...
  
@@ -48602,7 +48700,7 @@ ppl plot
 ! Restore the default settings
 ppl axlint,2,2
 *** Running test: bn_dp_readscale.jnl
-! bn_dp_readscale.jnl
+[?1034h! bn_dp_readscale.jnl
 ! 9-Feb-2006 ACM
  
 ! When there is a double precision variable,
@@ -48678,7 +48776,7 @@ list xax
  
 cancel list/precision
 *** Running test: bn_bounds_defineax.jnl
-! bn_bounds_defineax.jnl
+[?1034h! bn_bounds_defineax.jnl
 ! 3/22/2006
 ! Previously only allowed 2*N definition of bounds in DEFINE AXIS/BOUNDS
 ! Now allow N+1 definition of bounds, or three equal-lenght lists of
@@ -48880,7 +48978,7 @@ list zboxlo[gz=zax2], z[gz=zax2], zboxhi[gz=zax2]
 1678.5 / 12:  1158.  1679.  2199.
 2849   / 13:  2199.  2849.  3499.
 *** Running test: bn_attributes.jnl
-! bn_attributes
+[?1034h! bn_attributes
 ! test attribute handling on netcdf intput/output and
 ! programatic access to attribute information
 ! needs new cdf files modfalse.nc, test0.nc
@@ -49287,6 +49385,7 @@ let a = temp.missing_value
 list a
              VARIABLE : TEMP.MISSING_VALUE
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
          -1.000E+34
  
 use ocean_atlas_temp
@@ -49294,6 +49393,7 @@ let s = temp.units
 list s
              VARIABLE : TEMP.UNITS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "Deg C"
  
 can data/all
@@ -49305,6 +49405,7 @@ list s
              VARIABLE : ..REMARK
              DATA SET : K-Bay OAR3d model (200m)
              FILENAME : err491_attval.cdf
+             X        : 1
         "Generated by oar3d                                                                                                                                              "
  
 go bn_reset
@@ -49323,6 +49424,7 @@ let anames = sst.attnames
 list nat
              VARIABLE : SST.NATTRS
              FILENAME : coads_climatology.cdf
+             X        : 1
           5.000
 list anames
              VARIABLE : SST.ATTNAMES
@@ -49340,6 +49442,7 @@ let cnames = sst.dimnames
 list nd
              VARIABLE : SST.NDIMS
              FILENAME : coads_climatology.cdf
+             X        : 1
           3.000
 list cnames
              VARIABLE : SST.DIMNAMES
@@ -49359,6 +49462,7 @@ let nd = ..ndims
 let vnames = ..varnames
 list/d=1 nv, nd
              DATA SET: ./gt4d011.cdf
+             X: 1
  Column  1: NV is ..NVARS
  Column  2: ND is ..NDIMS
              NV    ND
@@ -49384,6 +49488,7 @@ let vnames = ..varnames
 list/d=coads_climatology vnames
              VARIABLE : ..VARNAMES
              FILENAME : coads_climatology.cdf
+             X        : 1
         "SST"
 list/d=gt4d011 vnames
              VARIABLE : ..VARNAMES
@@ -49420,27 +49525,28 @@ list vnames
  3   / 3:"TIME"  
 list lnames
              VARIABLE : ..DIMNAMES[D=gt4d011]
-             SUBSET   : 20 points (X)
- 1    /  1:"PSXT"      
- 2    /  2:"PSYT"      
- 3    /  3:"PSYTedges" 
- 4    /  4:"PSZT"      
- 5    /  5:"PSZTedges" 
- 6    /  6:"TIME1"     
- 7    /  7:"PSXT91_108"
- 8    /  8:"PSYT35_56" 
- 9    /  9:"PSZT1_10"  
- 10   / 10:"PSYT35_55" 
- 11   / 11:"PSXU"      
- 12   / 12:"PSYU"      
- 13   / 13:"PSYUedges" 
- 14   / 14:"PSXU91_108"
- 15   / 15:"PSYU35_55" 
- 16   / 16:"PSZW"      
- 17   / 17:"PSZWedges" 
- 18   / 18:"PSYT36_55" 
- 19   / 19:"PSZW1_10"  
- 20   / 20:"PSYU35_56" 
+             SUBSET   : 21 points (X)
+ 1    /  1:"grid_definition"
+ 2    /  2:"PSXT"           
+ 3    /  3:"PSYT"           
+ 4    /  4:"PSYTedges"      
+ 5    /  5:"PSZT"           
+ 6    /  6:"PSZTedges"      
+ 7    /  7:"TIME1"          
+ 8    /  8:"PSXT91_108"     
+ 9    /  9:"PSYT35_56"      
+ 10   / 10:"PSZT1_10"       
+ 11   / 11:"PSYT35_55"      
+ 12   / 12:"PSXU"           
+ 13   / 13:"PSYU"           
+ 14   / 14:"PSYUedges"      
+ 15   / 15:"PSXU91_108"     
+ 16   / 16:"PSYU35_55"      
+ 17   / 17:"PSZW"           
+ 18   / 18:"PSZWedges"      
+ 19   / 19:"PSYT36_55"      
+ 20   / 20:"PSZW1_10"       
+ 21   / 21:"PSYU35_56"      
  
 can var/all
 can data/all
@@ -49453,6 +49559,7 @@ list v
              VARIABLE : ..NDIMS
              DATA SET : K-Bay OAR3d model (200m)
              FILENAME : err491_attval.cdf
+             X        : 1
           3.000
  
 let na = ..nattrs
@@ -49460,6 +49567,7 @@ list na
              VARIABLE : ..NATTRS
              DATA SET : K-Bay OAR3d model (200m)
              FILENAME : err491_attval.cdf
+             X        : 1
           31.00
  
 let gnames = ..attnames
@@ -49523,12 +49631,14 @@ let nat = temp.nattrs
 list nat
              VARIABLE : TEMP.NATTRS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
           5.000
  
 list (`temp,return=xaxis`).nattrs
  !-> list (XAX_LEV9421_380).nattrs
              VARIABLE : (XAX_LEV9421_380).NATTRS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
           4.000
  
 use gt4d011
@@ -49562,15 +49672,18 @@ let a = temp.units
 list/d=3 a
              VARIABLE : TEMP.UNITS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "Deg C"
  
 list temp.units[d=3]
              VARIABLE : TEMP.UNITS[D=ocean_atlas_temp]
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "Deg C"
 list/d=3 temp.history
              VARIABLE : TEMP.HISTORY
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "From ocean_atlas_monthly"
  
 can data/all
@@ -49630,6 +49743,7 @@ let a= broiled.acl
 list a
              VARIABLE : BROILED.ACL
              FILENAME : test0.nc
+             X        : 1
           17000.
  
 let a= broiled.acf
@@ -49691,6 +49805,7 @@ use gt4d011
 list ..nvars
              VARIABLE : ..NVARS
              FILENAME : gt4d011.cdf
+             X        : 1
           12.00
  
 use coads_climatology
@@ -49698,10 +49813,12 @@ use coads_climatology
 list/d=1 ..nvars
              VARIABLE : ..NVARS
              FILENAME : gt4d011.cdf
+             X        : 1
           12.00
 list/d=2 ..nvars
              VARIABLE : ..NVARS
              FILENAME : coads_climatology.cdf
+             X        : 1
           1.000
  
 sh data
@@ -49724,6 +49841,7 @@ sh data
 list/d=2 ..varnames
              VARIABLE : ..VARNAMES
              FILENAME : coads_climatology.cdf
+             X        : 1
         "SST"
  
 list/d=2 ..dimnames
@@ -49736,49 +49854,55 @@ list/d=2 ..dimnames
 list/d=1 ..dimnames
              VARIABLE : ..DIMNAMES
              FILENAME : gt4d011.cdf
-             SUBSET   : 20 points (X)
- 1    /  1:"PSXT"      
- 2    /  2:"PSYT"      
- 3    /  3:"PSYTedges" 
- 4    /  4:"PSZT"      
- 5    /  5:"PSZTedges" 
- 6    /  6:"TIME1"     
- 7    /  7:"PSXT91_108"
- 8    /  8:"PSYT35_56" 
- 9    /  9:"PSZT1_10"  
- 10   / 10:"PSYT35_55" 
- 11   / 11:"PSXU"      
- 12   / 12:"PSYU"      
- 13   / 13:"PSYUedges" 
- 14   / 14:"PSXU91_108"
- 15   / 15:"PSYU35_55" 
- 16   / 16:"PSZW"      
- 17   / 17:"PSZWedges" 
- 18   / 18:"PSYT36_55" 
- 19   / 19:"PSZW1_10"  
- 20   / 20:"PSYU35_56" 
+             SUBSET   : 21 points (X)
+ 1    /  1:"grid_definition"
+ 2    /  2:"PSXT"           
+ 3    /  3:"PSYT"           
+ 4    /  4:"PSYTedges"      
+ 5    /  5:"PSZT"           
+ 6    /  6:"PSZTedges"      
+ 7    /  7:"TIME1"          
+ 8    /  8:"PSXT91_108"     
+ 9    /  9:"PSYT35_56"      
+ 10   / 10:"PSZT1_10"       
+ 11   / 11:"PSYT35_55"      
+ 12   / 12:"PSXU"           
+ 13   / 13:"PSYU"           
+ 14   / 14:"PSYUedges"      
+ 15   / 15:"PSXU91_108"     
+ 16   / 16:"PSYU35_55"      
+ 17   / 17:"PSZW"           
+ 18   / 18:"PSZWedges"      
+ 19   / 19:"PSYT36_55"      
+ 20   / 20:"PSZW1_10"       
+ 21   / 21:"PSYU35_56"      
  
 list/d=1 ..nattrs
              VARIABLE : ..NATTRS
              FILENAME : gt4d011.cdf
+             X        : 1
           1.000
 list/d=1 ..attnames
              VARIABLE : ..ATTNAMES
              FILENAME : gt4d011.cdf
+             X        : 1
         "history"
  
 list/d=1 ..ndims
              VARIABLE : ..NDIMS
              FILENAME : gt4d011.cdf
+             X        : 1
           21.00
 list/d=2 ..ndims
              VARIABLE : ..NDIMS
              FILENAME : coads_climatology.cdf
+             X        : 1
           3.000
  
 list ..nvars[d=1]
              VARIABLE : ..NVARS[D=gt4d011]
              FILENAME : gt4d011.cdf
+             X        : 1
           12.00
 sh var
  Created by DEFINE VARIABLE:
@@ -49805,6 +49929,7 @@ set data 1
 list/d=2 pp
              VARIABLE : ..VARNAMES
              FILENAME : coads_climatology.cdf
+             X        : 1
         "SST"
  
 go bn_reset
@@ -49894,10 +50019,12 @@ use coads_climatology
 list (coadsx).units
              VARIABLE : (COADSX).UNITS
              FILENAME : coads_climatology.cdf
+             X        : 1
         "degrees_east"
 list (coadsx).modulo
              VARIABLE : (COADSX).MODULO
              FILENAME : coads_climatology.cdf
+             X        : 1
         " "
 sho att/all (coadsx)
      attributes for dataset: ./coads_climatology.cdf
@@ -49986,6 +50113,7 @@ list (`sst,return=xaxis`).nattrs[d=2]
  !-> list (COADSX).nattrs[d=2]
              VARIABLE : (COADSX).NATTRS[D=coads_climatology]
              FILENAME : coads_climatology.cdf
+             X        : 1
           5.000
  
 ! using dimension names from the linked list structure
@@ -50005,6 +50133,7 @@ list (`cnames[i=1]`).nattrs
  !-> list (COADSX).nattrs
              VARIABLE : (COADSX).NATTRS
              FILENAME : coads_climatology.cdf
+             X        : 1
           5.000
  
 ! Intentional errors.
@@ -50091,7 +50220,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 
@@ -50147,6 +50276,7 @@ let pq = temp.pp
 list pq
              VARIABLE : TEMP.PP
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "PP now has some text."
  
 ! set an attribute when the variable is not in the default dataset.
@@ -51077,7 +51207,7 @@ sho att .
      attributes for dataset: ./levitus_climatology.cdf
  ..history = FERRET V5.22    5-Apr-01 
 *** Running test: bn_transforms.jnl
-! Test the transforms
+[?1034h! Test the transforms
  
 use coads_climatology
  
@@ -51281,7 +51411,7 @@ list/L=1/y=11:23/x=93w sst, sst[y=@shn] , sst[y=@spz], sst[y=@sum], sst[y=@swl],
 21N   / 56:  23.95  24.06  24.06  181.6  24.08    ....
 23N   / 57:  23.84  23.69  23.69  181.6  23.66    ....
 *** Running test: bn_variance.jnl
- ! bn_variance.jnl
+[?1034h ! bn_variance.jnl
  ! the @VAR transform is not tested in bn_transforms.jnl script.
  
 use coads_climatology
@@ -51317,7 +51447,7 @@ list/y=3/l=1/x=233 u[z=@var]
              TIME     : 17-AUG-1982 12:00
           11.33
 *** Running test: bn_linecolors.jnl
-! bn_linecolors.jnl
+[?1034h! bn_linecolors.jnl
 ! 5/2006 ACM
 ! test setting more line colors
  
@@ -51382,7 +51512,7 @@ can win/all
 set win/new
  
 *** Running test: bn_cdf_errmsg.jnl
-! 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
  
@@ -51424,7 +51554,7 @@ use asc.nc
 set mode/last ignore
  
 *** Running test: bn600_bug_fixes.jnl
-! bn600_bug_fixes.jnl
+[?1034h! bn600_bug_fixes.jnl
 ! test various fixes that went into version 6.00
 ! 8/05 *acm*
 !
@@ -51560,11 +51690,11 @@ 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
-PPL$XMIN = "131.0"
-PPL$XMAX = "281.0"
+PPL$XMIN = "131.0000"
+PPL$XMAX = "281.0000"
 sh sym ppl$xlow, ppl$xhigh   ! should be 165, 259
-PPL$XHIGH = "165.0"
-PPL$XLOW = "259.0"
+PPL$XHIGH = "165.0000"
+PPL$XLOW = "259.0000"
  
 sp rm -f err581_subspanx_fill_bug.nc
  
@@ -51646,8 +51776,6 @@ GO err581_if_conditional.jnl
 ! This should skip to the end, not trying to execute anything inside the IF 0 THEN
  
 if 0 then
-     endif
-  endif
 endif
  
 say "finished the if block"
@@ -51682,7 +51810,6 @@ let key_flag = 0
  
 IF `($xend) GT 360` THEN
  !-> IF 0 THEN
-  ENDIF
 ENDIF
 let dxymin = 0.20
 if `dxymin lt 0.12` then
@@ -51697,7 +51824,6 @@ endif
  
 IF `($xend) GT 360` THEN
  !-> IF 0 THEN
-   ENDIF
 ELSE
   say "this is the ELSE that should execute"
 this is the ELSE that should execute
@@ -51794,10 +51920,8 @@ ELIF ($refmap_type%|xline>1|*>0%) THEN    ! ELSE IF "xline"
  !-> ELIF 1 THEN
   define region/default/dy=$6"-30:30|1>-30:30|*>-20:20"/dx=$6"0:0|1>0:0|2>0:0|*>`max(-($ref_dx),-50)`:`min(($ref_dx),50)`" band
  !-> define region/default/dy=-20:20/dx=-50:50 band
- 
 ELIF ($refmap_type%|yline>1|*>0%) THEN    ! ELSE IF "yline"
  !-> ELIF 0 THEN
-   ENDIF
 ENDIF
 ! init the land mask data set
 set data coads_climatology
@@ -51836,17 +51960,12 @@ IF ($refmap_type%|box>1|*>0) THEN    ! IF "box"
  !-> IF 0 THEN
 ELIF ($refmap_type%|xline>1|*>0) THEN    ! ELSE IF "xline"
  !-> ELIF 1 THEN
- 
   IF ($refmap_ycompress) THEN
  !-> IF 0 THEN
   ENDIF
- 
   plot/over/vs/nolab/line=8/i=1:2 refmap_xrng, refmap_ymid+(i-i)
- 
 ELIF ($refmap_type%|yline>1|*>0) THEN    ! ELSE IF "yline"
  !-> ELIF 0 THEN
-  ENDIF
-  ENDIF
 ENDIF
  
  
@@ -52127,8 +52246,8 @@ GO err581_define_1pt_bounds.jnl
 ! again, and even that result is now very wrong!! Same results in both v5.81
 ! for Linux and v5.70 for Irix.
  
-yes? def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
+def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
+list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
              X: -2 to 6
  Column  1: XBOXLO is XBOXLO (axis XAX)
  Column  2: XBOXHI is XBOXHI (axis XAX)
@@ -52138,8 +52257,8 @@ yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
 3   / 2:  2.000  4.000  3.000
 5   / 3:  4.000  6.000  5.000
  
-yes? def ax/x/bounds xax = {0},{-2,2}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
+def ax/x/bounds xax = {0},{-2,2}
+list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
              X: 0
  Column  1: XBOXLO is XBOXLO (axis XAX)
  Column  2: XBOXHI is XBOXHI (axis XAX)
@@ -52147,8 +52266,8 @@ yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
          XBOXLO  XBOXHI    X
 I / *:    -2.000  2.000  0.0000
  
-yes? def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
+def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
+list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
              X: -2 to 6
  Column  1: XBOXLO is XBOXLO (axis XAX)
  Column  2: XBOXHI is XBOXHI (axis XAX)
@@ -52224,9 +52343,9 @@ go polymark poly/lev=(-5,30,1)/pal=white/fill/line=1/nolab/over v1 v2 v3 circle
  
 ! And, from Andrew with other reversed axes.
  
-yes? ppl cross 1
-yes? plot/vl=4:-4/hl=4:-4/vs/line/title="there should be just one triangle" {1,2,3,1},{0,2,1,0}
-yes? poly/ov/col=2/pal=yellow {1,2,3,1},{0,2,1,0}
+ppl cross 1
+plot/vl=4:-4/hl=4:-4/vs/line/title="there should be just one triangle" {1,2,3,1},{0,2,1,0}
+poly/ov/col=2/pal=yellow {1,2,3,1},{0,2,1,0}
  
 ppl cross 0
  
@@ -52234,7 +52353,7 @@ set mem /size=25.6
  
  
 *** Running test: bn601_bug_fixes.jnl
-! bn601_bug_fixes.jnl
+[?1034h! bn601_bug_fixes.jnl
 ! test various fixes that went into version 6.01
 ! 20-Sep-2006 ACM
 !
@@ -52394,12 +52513,10 @@ GO err600_if_comments_tab.jnl
 ! thrown off and we got an error about an invalid ENDIF
  
 IF 0 THEN
-   ENDIF
 ENDIF
  
 ! Here there is a tab before the ! which throws off the parsing...
 IF 0 THEN
-   ENDIF
 ENDIF
  
 ! err600_set_var_title.jnl
@@ -52551,6 +52668,7 @@ list ..dimnames
 list ..varnames
              VARIABLE : ..VARNAMES
              FILENAME : levitus_climatology.cdf
+             X        : 1
         "TEMP"
  
 ! err600_nc_des_order.jnl
@@ -52628,8 +52746,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
@@ -52638,8 +52761,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
@@ -52653,8 +52780,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
@@ -52664,8 +52795,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
@@ -52683,8 +52820,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
@@ -52693,8 +52834,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
@@ -52703,8 +52848,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
@@ -52772,7 +52923,7 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        39   T       FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14
+ .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (PSXT91_108)           DOUBLE    units           CHAR        12   T       degrees_east
@@ -52817,7 +52968,7 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        39   T       FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14
+ .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (PSXT91_108)           DOUBLE    units           CHAR        12   T       degrees_east
@@ -53032,7 +53183,7 @@ stat rose[j=12,d=1]
  Mean    value: 62.717 (unweighted average)
  Standard deviation: 156.25
 *** Running test: bn_set_strides.jnl
-! bn_set_strides.jnl
+[?1034h! bn_set_strides.jnl
 ! Jing Li, 11/2006
 ! tests for SET AXIS/STRIDES
  
@@ -53469,7 +53620,7 @@ show axis `sst,return=taxis`
 T0 = 01-JAN-0000 00:00:00
    Axis span (to cell edges) = 2191.455 (modulo length = 8765.82)
 *** Running test: bn_lsl_lowpass.jnl
-! bn_lsl_lowpass.jnl
+[?1034h! bn_lsl_lowpass.jnl
 ! Test lsl_lowpass, now included as a statically-linked external function
  
 use gtsa056_2
@@ -53502,7 +53653,7 @@ LIST/L=10:20 MY_TEMP[L=1:110], F_FILTERED[L=1:110]
 14-MAR-1982 09 / 20:   27.42   27.43
  
 *** Running test: bn_return_xmod_tmod.jnl
-! New `var,return=xmod` `var,return=tmod`
+[?1034h! New `var,return=xmod` `var,return=tmod`
 ! Return modulo lengths, or blank if not modulo
  
 use ocean_atlas_temp
@@ -53575,7 +53726,7 @@ say `axy,return=xmod`
  !-> MESSAGE/CONTINUE 2
 2
 *** Running test: bn602_bug_fixes.jnl
-! bn602_bug_fixes.jnl
+[?1034h! bn602_bug_fixes.jnl
 ! test various fixes that went into version 6.02
 ! 09-Nov-2006 ACM
  
@@ -53681,11 +53832,11 @@ SHOW GRID/Z atmos
  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
@@ -53834,7 +53985,7 @@ list a
  3   / 3:"" 
  
 *** Running test: bn_modnbd.jnl
-! Test MODNBD regridding statistic.
+[?1034h! Test MODNBD regridding statistic.
  
 use gtsa056_2.cdf
 !use climatological_axes
@@ -53896,7 +54047,7 @@ list var[gt=month_reg at MODNGD], var[gt=month_reg at MODNBD], var[gt=month_reg at MODNGD
 15-NOV      / 11:  10.00   0.00  10.00  10.00
 16-DEC      / 12:  10.00   0.00  10.00  10.00
 *** Running test: bn_fifty_files.jnl
-! 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.
  
@@ -53956,7 +54107,7 @@ use weird_name1.cdf
 cancel mode ignore_error
  
 *** Running test: bn603_bug_fixes.jnl
-! bn603_bug_fixes.jnl
+[?1034h! bn603_bug_fixes.jnl
 ! test various fixes that went into version 6.03
 ! 11-May-2006 ACM
  
@@ -54069,7 +54220,7 @@ LIST/NOHEAD/I=91:94/J=37/K=1/L=1 TEMP,SALT
 136.5W / 94:  27.17807  2.380348E-04
  
 *** Running test: bn_set_var_name.jnl
-! 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
  
@@ -54114,7 +54265,7 @@ LIST/X=179:183/Y=40/L=3 sst
  177W   / 82:  36.24
  
 *** Running test: bn_memory_symbol.jnl
-Unable to resize Ferret's memory cache to 500000.000000 Mdoubles
+[?1034hUnable to resize Ferret's memory cache to 500000.000000 Mdoubles
 Ferret's memory cache remains at 0.200000 Mdoubles
 ! bn_memory_symbol.jnl
 ! Ferret v6.06 15-Aug-07
@@ -54141,7 +54292,7 @@ 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
-! bn604_bug_fixes.jnl
+[?1034h! bn604_bug_fixes.jnl
 ! test various fixes that went into version 6.05
 ! 27-July-2007 ACM
  
@@ -54293,6 +54444,7 @@ IS_ELEMENT_OF_STR_N(VAR,VALUES)
 LABWID(STR,HT)
 LANCZOS(A,F1,F2,N)
 LIST_VALUE_XML(tag,value,cdata_flag,outputfile)
+LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
 LSL_LOWPASS(A,cutoff_period,filter_span)
 MINMAX(A)
 MINUTES24(formatted time)
@@ -54305,6 +54457,7 @@ SAMPLEI_MULTI(I_INDICES,DAT_TO_SAMPLE)
 SAMPLEJ_MULTI(J_INDICES,DAT_TO_SAMPLE)
 SAMPLEK_MULTI(K_INDICES,DAT_TO_SAMPLE)
 SAMPLEL_MULTI(L_INDICES,DAT_TO_SAMPLE)
+SAMPLEF_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
 SAMPLET_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
 SAMPLEXY(DAT_TO_SAMPLE,XPTS,YPTS)
 SAMPLEXY_CLOSEST(DAT_TO_SAMPLE,XPTS,YPTS)
@@ -54402,6 +54555,14 @@ EXPNDI_BY_M_COUNTS(dat,counts,max_row_len)
 STR_MASK(STRING,MASK,--)
 SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
 SEPARATE(A,Rowsize,FixLongitudes)
+TIME_REFORMAT(A)
+FT_TO_ORTHOGONAL(VAR,TIME2D,ALLTIME)
+CURV_TO_RECT_FSU(V,mapping)
+PIECEWISE3(V1,V2,V3,Control parameter,Tol1,Tol2,Tol3)
+SAMPLE_FAST_I(V,Indices)
+SAMPLE_FAST_I_STR(S,Indices)
+SEPARATE_STR(A,Rowsize,FixLongitudes)
+WRITE_WEBROW_GWT(id,name,Cruise_Mask,filename)
 ADD_9(A,B,C,D,E,F,G,H,I)
 APPENDE(ENS,VAR)
 AVET(A)
@@ -54412,6 +54573,7 @@ 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)
@@ -54597,7 +54759,7 @@ CURV2RECT(CurvData,CurvCenterLons,CurvCenterLats,CurvCornerLons,CurvCornerLats,T
 CURV3SRECT(CurvData,CurvLons,CurvLats,CurvBaths,CurvZetas,TemplateRectVar,Method)
  
 *** Running test: bn608_bug_fixes.jnl
-! bn608_bug_fixes
+[?1034h! bn608_bug_fixes
 ! test various fixes that went into version 6.08
 ! 24-Sep ACM
  
@@ -54710,11 +54872,11 @@ GO err607_axis_minmax_syms
 use coads_climatology
 let plotvar = sst[L=1]
 plot/y=35 plotvar/10000; sh sym yax*
-YAXIS_MIN = "8.0000010E-04"
-YAXIS_MAX = "2.1000002E-03"
+YAXIS_MIN = "7.9999998E-04"
+YAXIS_MAX = "2.0999999E-03"
 plot/y=35 plotvar/10000000; sh sym yax*
-YAXIS_MIN = "8.0000012E-07"
-YAXIS_MAX = "2.1000003E-06"
+YAXIS_MIN = "8.0000001E-07"
+YAXIS_MAX = "2.1000001E-06"
 plot/y=35 plotvar*10000000; sh sym yax*
 YAXIS_MIN = "8.0000000E+07"
 YAXIS_MAX = "2.1000000E+08"
@@ -54724,11 +54886,11 @@ def axis/y=0.000001:0.000002/npoints=100 yax
 let a = x[gx=xax] + y[gy=yax]
 shade a; sh sym xax*; ; sh sym yax*
 XAXIS_REVERSED = "0"
-XAXIS_MIN = "3.99494949E-06"
-XAXIS_MAX = "5.0050505E-06"
+XAXIS_MIN = "3.994949495E-06"
+XAXIS_MAX = "5.005050505E-06"
 YAXIS_REVERSED = "0"
-YAXIS_MIN = "9.94949495E-07"
-YAXIS_MAX = "2.0050505E-06"
+YAXIS_MIN = "9.949494949E-07"
+YAXIS_MAX = "2.005050505E-06"
  
  
  
@@ -54745,7 +54907,7 @@ SHADE/LEV=300/I=1:100/J=1:100 i+j
  
 SET MODE/LAST ignore
 *** Running test: bn_shade_trim.jnl
-! 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
 ! shade underlay for FILL plots.
@@ -54756,30 +54918,30 @@ USE ocean_atlas_temp
 SET VIEW upper
 FILL temp[L=2,X=180:200,Y=30:44]
 SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.50000"
-XAXIS_MAX = "199.5000"
-YAXIS_MIN = "30.500000"
-YAXIS_MAX = "43.50000"
+XAXIS_MIN = "180.500000"
+XAXIS_MAX = "199.500000"
+YAXIS_MIN = "30.5000000"
+YAXIS_MAX = "43.5000000"
  
 ! See the larger region used by default for SHADE
 SHADE temp[L=2,X=180:200,y=30:44]
 SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.00000"
-XAXIS_MAX = "200.0000"
-YAXIS_MIN = "30.000000"
-YAXIS_MAX = "44.00000"
+XAXIS_MIN = "180.000000"
+XAXIS_MAX = "200.000000"
+YAXIS_MIN = "30.0000000"
+YAXIS_MAX = "44.0000000"
  
 ! SHADE/TRIM trims the region as for a FILL plot
 SET VIEW lower
 SHADE/TRIM temp[L=2,X=180:200,y=30:44]
 SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.50000"
-XAXIS_MAX = "199.5000"
-YAXIS_MIN = "30.500000"
-YAXIS_MAX = "43.50000"
+XAXIS_MIN = "180.500000"
+XAXIS_MAX = "199.500000"
+YAXIS_MIN = "30.5000000"
+YAXIS_MAX = "43.5000000"
  
 *** Running test: bn_mode_nlevels.jnl
-! bn_mode_nlevels.jnl
+[?1034h! bn_mode_nlevels.jnl
 ! 3-mar-2008
 ! v6.1 MODE NLEVELS (default is 40)
  
@@ -54817,7 +54979,7 @@ LEV_DEL = "0.5"
 set mode nlevels 40
  
 *** Running test: bn61_bug_fixes.jnl
-! bn608_bug_fixes
+[?1034h! bn608_bug_fixes
 ! test various fixes that went into version 6.1
 ! 2-Jan-2008 ACM
  
@@ -54871,7 +55033,7 @@ SAY `1.23456789e-15,prec=10`
  !-> MESSAGE/CONTINUE 1.23456789E-15
 1.23456789E-15
 *** Running test: bn_test_opendap.jnl
-! Test the test_opendap function: returns 0 if successful, or error code if not.
+[?1034h! Test the test_opendap function: returns 0 if successful, or error code if not.
 SET MODE IGNORE
  
 !! Change to another server, this one not working 3/2012
@@ -54891,7 +55053,7 @@ list test_opendap ("http://ferret.pmel.NOT.noaa.gov/thredds/dodsC/data/PMEL/WOA0
  
 CANCEL MODE IGNORE
 *** Running test: bn611_bug_fixes.jnl
-! bn611_bug_fixes.jnl
+[?1034h! bn611_bug_fixes.jnl
 ! Fixes that go into v6.11 release
  
 GO bn_reset
@@ -55209,27 +55371,28 @@ list vnames
  4   / 4:"TIME"           
 list lnames
              VARIABLE : ..DIMNAMES[D=gt4d011]
-             SUBSET   : 20 points (X)
- 1    /  1:"PSXT"      
- 2    /  2:"PSYT"      
- 3    /  3:"PSYTedges" 
- 4    /  4:"PSZT"      
- 5    /  5:"PSZTedges" 
- 6    /  6:"TIME1"     
- 7    /  7:"PSXT91_108"
- 8    /  8:"PSYT35_56" 
- 9    /  9:"PSZT1_10"  
- 10   / 10:"PSYT35_55" 
- 11   / 11:"PSXU"      
- 12   / 12:"PSYU"      
- 13   / 13:"PSYUedges" 
- 14   / 14:"PSXU91_108"
- 15   / 15:"PSYU35_55" 
- 16   / 16:"PSZW"      
- 17   / 17:"PSZWedges" 
- 18   / 18:"PSYT36_55" 
- 19   / 19:"PSZW1_10"  
- 20   / 20:"PSYU35_56" 
+             SUBSET   : 21 points (X)
+ 1    /  1:"grid_definition"
+ 2    /  2:"PSXT"           
+ 3    /  3:"PSYT"           
+ 4    /  4:"PSYTedges"      
+ 5    /  5:"PSZT"           
+ 6    /  6:"PSZTedges"      
+ 7    /  7:"TIME1"          
+ 8    /  8:"PSXT91_108"     
+ 9    /  9:"PSYT35_56"      
+ 10   / 10:"PSZT1_10"       
+ 11   / 11:"PSYT35_55"      
+ 12   / 12:"PSXU"           
+ 13   / 13:"PSYU"           
+ 14   / 14:"PSYUedges"      
+ 15   / 15:"PSXU91_108"     
+ 16   / 16:"PSYU35_55"      
+ 17   / 17:"PSZW"           
+ 18   / 18:"PSZWedges"      
+ 19   / 19:"PSYT36_55"      
+ 20   / 20:"PSZW1_10"       
+ 21   / 21:"PSYU35_56"      
  
 go bn_reset
 cancel mode verify
@@ -55244,12 +55407,14 @@ let nat = temp.nattrs
 list nat
              VARIABLE : TEMP.NATTRS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
           5.000
  
 list (`temp,return=xaxis`)[d=2].nattrs
  !-> list (XAX_LEV9421_380)[d=2].nattrs
-             VARIABLE : (XAX_LEV9421_380)[d=ocean_atlas_temp].NATTRS
+             VARIABLE : (XAX_LEV9421_380)[D=ocean_atlas_temp].NATTRS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
           4.000
  
 use gt4d011
@@ -55284,14 +55449,17 @@ let a = temp.units
 list/d=3 a
              VARIABLE : TEMP.UNITS
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "Deg C"
 list temp[d=3].units
-             VARIABLE : TEMP[d=ocean_atlas_temp].UNITS
+             VARIABLE : TEMP[D=ocean_atlas_temp].UNITS
              FILENAME : gt4d011.cdf
+             X        : 1
         "Deg C"
 list/d=3 temp.history
              VARIABLE : TEMP.HISTORY
              FILENAME : ocean_atlas_temp.cdf
+             X        : 1
         "From ocean_atlas_monthly"
  
 can data/all
@@ -55304,7 +55472,7 @@ use coads_climatology
 ! But this does
 let a = sst[d=1].dimnames
 list a[i=2]
-             VARIABLE : SST[d=coads_climatology].DIMNAMES
+             VARIABLE : SST[D=coads_climatology].DIMNAMES
              FILENAME : coads_climatology.cdf
              X        : 2
         "COADSY"
@@ -55320,16 +55488,18 @@ use coads_climatology
 define symbol ferret_plot_var sst[x=30:39,y=-90:90]
 list ($ferret_plot_var).long_name
  !-> list sst[x=30:39,y=-90:90].long_name
-             VARIABLE : SST.LONG_NAME
+             VARIABLE : SST[X=30:39,Y=-90:90].LONG_NAME
              FILENAME : coads_climatology.cdf
+             X        : 1
         "SEA SURFACE TEMPERATURE"
  
 use coads_climatology
 define symbol ferret_plot_var sst[d=1,x=30:35,y=-90:90]
 list ($ferret_plot_var).units
  !-> list sst[d=1,x=30:35,y=-90:90].units
-             VARIABLE : SST[d=coads_climatology].UNITS
+             VARIABLE : SST[D=coads_climatology,X=30:35,Y=-90:90].UNITS
              FILENAME : coads_climatology.cdf
+             X        : 1
         "Deg C"
  
 use coads_climatology
@@ -55337,8 +55507,9 @@ use levitus_climatology
 define symbol ferret_plot_var sst[d=1,x=30:35,y=-90:90]
 list ($ferret_plot_var).history
  !-> list sst[d=1,x=30:35,y=-90:90].history
-             VARIABLE : SST[d=coads_climatology].HISTORY
+             VARIABLE : SST[D=coads_climatology,X=30:35,Y=-90:90].HISTORY
              FILENAME : levitus_climatology.cdf
+             X        : 1
         "From coads_climatology"
  
 go bn_reset
@@ -55354,13 +55525,15 @@ def sym yaxnam  "(`temp[d=1],return=yaxis`)"
  
 list ($xaxnam)[d=1].modulo
  !-> list (XAXLEVITR1_160)[d=1].modulo
-             VARIABLE : (XAXLEVITR1_160)[d=levitus_climatology].MODULO
+             VARIABLE : (XAXLEVITR1_160)[D=levitus_climatology].MODULO
              FILENAME : coads_climatology.cdf
+             X        : 1
         " "
 list ($yaxnam).point_spacing[d=1]
  !-> list (YAXLEVITR1_90).point_spacing[d=1]
              VARIABLE : (YAXLEVITR1_90).POINT_SPACING[D=levitus_climatology]
              FILENAME : levitus_climatology.cdf
+             X        : 1
         "even"
  
  
@@ -55558,12 +55731,12 @@ GO err611_exit_if.jnl
 ! This only in v6.11 GFDL release bug
 ! Fixed in xeq_exit.F
  
-yes? sp echo if 1 then > a.jnl
-yes? sp echo exit/script >> a.jnl
-yes? sp echo endif >> a.jnl
-yes? sp echo go a > b.jnl
-yes? sp echo say hello >> b.jnl
-yes? go b  !the following fails to say "hello"
+sp echo if 1 then > a.jnl
+sp echo exit/script >> a.jnl
+sp echo endif >> a.jnl
+sp echo go a > b.jnl
+sp echo say hello >> b.jnl
+go b  !the following fails to say "hello"
 go a
 if 1 then
 exit/script
@@ -55600,7 +55773,7 @@ list b
 save/clob/file=b.nc b
  
 *** Running test: bn_no_valid_on_plot.jnl
-! 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
 ! 1D plots.  Add it to the variable title so it shows up in the key
@@ -55620,28 +55793,18 @@ ppl list labels
  LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
  LAB 3  8.000E+00  6.630E+00 0.120    0  SYSTEM  @ASDATA SET: coads_climatology
  LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
- LAB 4  4.000E+00  6.330E+00 0.120    0  SYSTEM  @A
- LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
  
 ! and now valid data overlaid with all-missing data
  
 plot/x=56e:100e/y=10 sst[L=1]
 plot/over/x=56e:100e/y=40 sst[L=1]
 ppl list labels
- @ACSEA SURFACE TEMPERATURE (Deg C)                                             
+                                                                                
  @ASLONGITUDE                                                                   
  @ASDeg C                                                                       
 
           XPOS       YPOS     HGT   ROT   UNITS
- LAB 1  0.000E+00  6.800E+00 0.120    0  SYSTEM  @ASLATITUDE : 9N
- LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
- LAB 2  0.000E+00  6.600E+00 0.120    0  SYSTEM  @ASTIME : 16-JAN 06:00
- LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
- LAB 3  8.000E+00  6.630E+00 0.120    0  SYSTEM  @ASDATA SET: coads_climatology
- LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
- LAB 4  4.000E+00  6.330E+00 0.120    0  SYSTEM  @A
- LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
- LAB 5 -3.700E-01 -5.500E-01 0.080    0  SYSTEM  @ASSST[Y=39N] No Valid Data
+ LAB 1 -3.100E-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
@@ -55656,13 +55819,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  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 -8.000E-01 0.120    0  SYSTEM  @ASSST[Y=9N]
+ LAB 3  2.530E+00 -8.000E-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 4  5.780E+00 -7.900E-01 0.119    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 5  2.530E+00 -1.050E+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
@@ -55678,7 +55839,7 @@ VECTOR/Y=80:90 sst[L=1], sst[L=1]
  
 SET MODE/last nodata_lab
 *** Running test: bn_median.jnl
-! Test median smoothing tranform
+[?1034h! Test median smoothing tranform
 ! Default length is 3
  
 use gtsa056_2.cdf
@@ -55783,7 +55944,7 @@ plot/trans var, var[z=@med:4]
 set mode/last ignore
  
 *** Running test: bn614_bug_fixes.jnl
-! bn614_bug_fixes.jnl
+[?1034h! bn614_bug_fixes.jnl
 ! Fixes that go into v6.14 release
  
 GO bn_reset
@@ -55834,12 +55995,12 @@ GO err611_exit_if.jnl
 ! This only in v6.11 GFDL release bug
 ! Fixed in xeq_exit.F
  
-yes? sp echo if 1 then > a.jnl
-yes? sp echo exit/script >> a.jnl
-yes? sp echo endif >> a.jnl
-yes? sp echo go a > b.jnl
-yes? sp echo say hello >> b.jnl
-yes? go b  !the following fails to say "hello"
+sp echo if 1 then > a.jnl
+sp echo exit/script >> a.jnl
+sp echo endif >> a.jnl
+sp echo go a > b.jnl
+sp echo say hello >> b.jnl
+go b  !the following fails to say "hello"
 go a
 if 1 then
 exit/script
@@ -56436,13 +56597,13 @@ GO err611_shade_fill_levs
  
 shade x[gx=0:1:.1]*y[gy=0:1:.1]; sh sym lev*
 LEV_MIN = "0"
-LEV_MAX = "1"
-LEV_NUM = "20"
+LEV_MAX = "1.05"
+LEV_NUM = "21"
 LEV_DEL = "0.05"
 fill  x[gx=0:1:.1]*y[gy=0:1:.1]; sh sym lev*
 LEV_MIN = "0"
-LEV_MAX = "1"
-LEV_NUM = "20"
+LEV_MAX = "1.05"
+LEV_NUM = "21"
 LEV_DEL = "0.05"
  
  
@@ -56635,7 +56796,7 @@ fill/ov/pal=greyscale/x=-360:360 b
 cont/ov/x=-360:360 b
  
 *** Running test: bn_mode_nodata_lab.jnl
-! bn_mode_nodata_lab
+[?1034h! bn_mode_nodata_lab
 ! turns off the No Valid Data label on plots
 ! (for line plots this is added to the plot label,
 !  if the mode is SET).
@@ -56664,7 +56825,7 @@ contour/fill/y=40:50/x=70e:110e/L=1 vwnd
 set mode/last nodata_lab
  
 *** Running test: bn_proleptic_gregorian_calendar.jnl
-! proleptic_gregorian_calendar.jnl
+[?1034h! proleptic_gregorian_calendar.jnl
 ! Allow PROLEPTIC_GREGORIAN as a calendar attribute
 ! for the default Ferret calendar.
  
@@ -56681,7 +56842,7 @@ show axis tdays
 T0 = 15-JAN-1901 00:00:00
    Axis span (to cell edges) = 32
 *** Running test: bn_string_ngd_nbd.jnl
-! @NGD and @NBD for strings
+[?1034h! @NGD and @NBD for strings
 ! Bad data is taken to be the null string
 ! Compare with results for numeric data
 ! *ACM 11/2008
@@ -56997,7 +57158,7 @@ list av[i=@ngd,j=@ngd,k=@ngd,L=@ngd]
              T        : 0.5 to 2.5 (XYZT # valid)
           16.00
 *** Running test: bn_cat_string.jnl
-! bn_cat_string.jnl
+[?1034h! bn_cat_string.jnl
 ! Test concatenation functions for string variables
 ! ACM nov 08  See bug 1577
  
@@ -57063,7 +57224,7 @@ list tcat(a,b)
  5   / 5:"V"
  6   / 6:"W"
 *** Running test: bn_sort_strings.jnl
-! bn_sort_strings.jnl
+[?1034h! bn_sort_strings.jnl
 ! 11/08 acm
  
 ! show func/detail now shows the alternative function for
@@ -57239,7 +57400,7 @@ list indx_bl, samplel(bl,indx_bl)
 7   / 7:    .... ""   
  
 *** Running test: bn_samplexyt.jnl
-! bn_samplexyt.jnl
+[?1034h! bn_samplexyt.jnl
 ! 1/2009
  
 ! Check the SAMPLEXYT function, should give missing results for T sample points
@@ -57309,14 +57470,14 @@ plot/vs/color=red/over tpts, sampl_pts
  
 set mode calendar
 *** Running test: bn_last_go_file.jnl
-! 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
-! bn_cancel_upcase_uservar.jnl
+[?1034h! bn_cancel_upcase_uservar.jnl
 !
 ! Ferret v6.2
 ! MODE upcase_only cancelled, now writes lowercase
@@ -57348,7 +57509,7 @@ SP ncdump -h a.nc >> all_ncdump.out
  
 SET MODE/LAST upcase_output
 *** Running test: bn_cdf_keepax.jnl
-! bn320_cdf
+[?1034h! bn320_cdf
 ! benchmark to test netCDF input and output
 ! This is the same as bn_cdf with /KEEP_AXNAMES added to SAVE commands.
  
@@ -58212,7 +58373,7 @@ list/x=180 fcn_rev_sub
  0    / 11:  0.0000
  1S   / 10:  0.3166
 *** Running test: bn_keep_axisnames.jnl
-! bn_keep_axisnames.jnl
+[?1034h! bn_keep_axisnames.jnl
 ! 2/2009 ACM
  
 ! save/KEEP_AXISNAMES prevents changes to
@@ -58224,7 +58385,7 @@ sh command list
        /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/SIGMA
+       /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]
@@ -58239,7 +58400,7 @@ 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
-! bn_key_label_minmax.jnl
+[?1034h! bn_key_label_minmax.jnl
  
 ! Label data min and max on vertical and horizontal keys
  
@@ -58319,7 +58480,7 @@ set mode/last logo
 shade/lev=35 sst[L=1]
  
 *** Running test: bn62_bug_fixes.jnl
-! bn62_bug_fixes.jnl
+[?1034h! bn62_bug_fixes.jnl
 ! Fixes that go into v6.2 release
  
 GO bn_reset
@@ -58390,7 +58551,7 @@ plot/title="vertical profile" yp4
 GO error_bars polygon/color=red/thickness=2/title="variability" yp4 errors
  
 *** Running test: bn_convolve.jnl
-! bn_convolve.jnl
+[?1034h! bn_convolve.jnl
 ! test convolutions, including with missing-data.
 ! compare behavior with smoothing transform spz.
  
@@ -58518,7 +58679,7 @@ list a, a[i=@spz], convolvei(a,{.25,.5,.25})
  
  
 *** Running test: bn_tax_tstep.jnl
-! bn_tax_tstep.jnl
+[?1034h! bn_tax_tstep.jnl
 !
 ! Working with the coordinates of this axis loses accuracy because its
 ! time origin is so far back from the time it represents
@@ -58630,7 +58791,7 @@ LIST/L=1:15 TAX_TSTEP(tt, "`reset_date`")
  01-JAN-1902 00:01:05 / 14:  65.00000
  01-JAN-1902 00:01:10 / 15:  70.00000
 *** Running test: bn_grads_z.jnl
-! bn_grads_z.jnl
+[?1034h! bn_grads_z.jnl
 ! acm 3/31/09
 ! Fixing bug 1651.
 ! The file has no axis attributes other than units and long_name,
@@ -58699,11 +58860,11 @@ SH GRID am
  normal    E
  normal    F
 *** Running test: bn_clock_syms.jnl
-SH SYM delta_cpu, clock_secs, current_date, current_time
-DELTA_CPU = "0.525919"
-CLOCK_SECS = "0.309"
-CURRENT_DATE = " 5-Nov-14"
-CURRENT_TIME = "16:40:37"
+[?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"
 ! test special symbols DELTA_CPU, CLOCK_SECS
 !
 ! NOTE THAT THE VALUES OF THE SYMBOLS WILL VARY FROM ONE
@@ -58712,8 +58873,8 @@ CURRENT_TIME = "16:40:37"
 use gt4d011
 shade/k=1 temp[L=@ave]
 sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.060991"
-CLOCK_SECS = "0.369"
+DELTA_CPU = "0.051992"
+CLOCK_SECS = "0.376"
  
 repeat/k=1:10 shade temp[L=@ave]
 !-> REPEAT: K=1
@@ -58727,62 +58888,62 @@ repeat/k=1:10 shade temp[L=@ave]
 !-> REPEAT: K=9
 !-> REPEAT: K=10
 let ten_plots = ($DELTA_CPU)
- !-> DEFINE VARIABLE ten_plots = 0.676897
+ !-> DEFINE VARIABLE ten_plots = 0.176973
 sh sym DELTA_CPU, CLOCK_SECS
 DELTA_CPU = "0"
-CLOCK_SECS = "1.047"
+CLOCK_SECS = "0.553"
  
 let  sumclock = 0
 let  sumcpu = 0
 sh sym CLOCK_SECS
-CLOCK_SECS = "1.047"
+CLOCK_SECS = "0.555"
 repeat/k=1:10 (shade/pal=rnb2 temp[L=@ave]; let dt = ($DELTA_CPU);\
 let sumcpu =`sumcpu + dt`)
  !-> repeat/k=1:10 (shade/pal=rnb2 temp[L=@ave]; let dt = ($DELTA_CPU);let sumcpu =`sumcpu + dt`)
 !-> REPEAT: K=1
- !-> DEFINE VARIABLE dt = 0.042993
- !-> DEFINE VARIABLE sumcpu =0.042993
+ !-> DEFINE VARIABLE dt = 0.019997
+ !-> DEFINE VARIABLE sumcpu =0.019997
 !-> REPEAT: K=2
- !-> DEFINE VARIABLE dt = 0.047993
- !-> DEFINE VARIABLE sumcpu =0.090986
+ !-> DEFINE VARIABLE dt = 0.021997
+ !-> DEFINE VARIABLE sumcpu =0.041994
 !-> REPEAT: K=3
- !-> DEFINE VARIABLE dt = 0.047993
- !-> DEFINE VARIABLE sumcpu =0.138979
+ !-> DEFINE VARIABLE dt = 0.021997
+ !-> DEFINE VARIABLE sumcpu =0.063991
 !-> REPEAT: K=4
- !-> DEFINE VARIABLE dt = 0.048992
- !-> DEFINE VARIABLE sumcpu =0.187971
+ !-> DEFINE VARIABLE dt = 0.021996
+ !-> DEFINE VARIABLE sumcpu =0.085987
 !-> REPEAT: K=5
- !-> DEFINE VARIABLE dt = 0.045993
- !-> DEFINE VARIABLE sumcpu =0.233964
+ !-> DEFINE VARIABLE dt = 0.021997
+ !-> DEFINE VARIABLE sumcpu =0.107984
 !-> REPEAT: K=6
- !-> DEFINE VARIABLE dt = 0.047993
- !-> DEFINE VARIABLE sumcpu =0.281957
+ !-> DEFINE VARIABLE dt = 0.021997
+ !-> DEFINE VARIABLE sumcpu =0.129981
 !-> REPEAT: K=7
- !-> DEFINE VARIABLE dt = 0.043993
- !-> DEFINE VARIABLE sumcpu =0.32595
+ !-> DEFINE VARIABLE dt = 0.020996
+ !-> DEFINE VARIABLE sumcpu =0.150977
 !-> REPEAT: K=8
- !-> DEFINE VARIABLE dt = 0.043994
- !-> DEFINE VARIABLE sumcpu =0.369944
+ !-> DEFINE VARIABLE dt = 0.022997
+ !-> DEFINE VARIABLE sumcpu =0.173974
 !-> REPEAT: K=9
- !-> DEFINE VARIABLE dt = 0.042993
- !-> DEFINE VARIABLE sumcpu =0.412937
+ !-> DEFINE VARIABLE dt = 0.020997
+ !-> DEFINE VARIABLE sumcpu =0.194971
 !-> REPEAT: K=10
- !-> DEFINE VARIABLE dt = 0.041993
- !-> DEFINE VARIABLE sumcpu =0.45493
+ !-> DEFINE VARIABLE dt = 0.020997
+ !-> DEFINE VARIABLE sumcpu =0.215968
  
 say `sumcpu`
- !-> MESSAGE/CONTINUE 0.45493
-0.45493
+ !-> MESSAGE/CONTINUE 0.215968
+0.215968
 sh sym CLOCK_SECS
-CLOCK_SECS = "1.505"
+CLOCK_SECS = "0.774"
  
 SH SYM session_date, current_date, session_time, current_time
-SESSION_DATE = " 5-Nov-14"
-SESSION_TIME = "16:40"
-CURRENT_DATE = " 5-Nov-14"
-CURRENT_TIME = "16:40:38"
+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
-! bn63_bug_fixes.jnl
+[?1034h! bn63_bug_fixes.jnl
 ! Fixes that go into v6.3 release
  
 GO bn_reset
@@ -59090,8 +59251,8 @@ list yboxlo[g=grd],yboxhi[g=grd]
 11.2S / 15: -12.84  -9.59
 8S    / 16:  -9.59  -6.38
 4.8S  / 17:  -6.38  -3.18
-1.6S  / 18:  -3.18   0.00
-1.6N  / 19:   0.00   3.18
+1.6S  / 18:  -3.18  -0.00
+1.6N  / 19:  -0.00   3.18
 4.8N  / 20:   3.18   6.38
 8N    / 21:   6.38   9.59
 11.2N / 22:   9.59  12.84
@@ -59485,7 +59646,7 @@ LIST 1 EQ 2 OR "A" EQ "B"    ! should be 0
           0.0000
  
 *** Running test: bn_axis_reversed_syms.jnl
-! 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
 ! plotted upside-down, set to 1
@@ -59569,7 +59730,7 @@ XAXIS_REVERSED = "0"
 YAXIS_REVERSED = "1"
  
 *** Running test: bn_isdepth.jnl
-! Tests of `var,RETURN=ISDEPTH`
+[?1034h! Tests of `var,RETURN=ISDEPTH`
  
 define axis/units=meters/z=0:100:2 zup
 let zz = z[gz=zup]
@@ -59590,8 +59751,8 @@ say `temp,return=isdepth`
  
 use coads_climatology
 say `sst,return=isdepth`
- !-> MESSAGE/CONTINUE NORMAL
-NORMAL
+ !-> MESSAGE/CONTINUE 0
+0
  
 can data 2
  
@@ -59602,7 +59763,7 @@ say `temp,return=isdepth`
 0
  
 *** Running test: bn_var_hist_levels.jnl
-! bn_var_hist_levels.jnl
+[?1034h! bn_var_hist_levels.jnl
 ! Syntax for variance-based or histogram-based levels
 !
  
@@ -59659,7 +59820,7 @@ shade/line/key/lev=20c,1d/title="/LEV=20c,1d" cvar[K=1]
 shade/line/key/lev=50h/title="/LEV=50h" cvar[K=1]
  
 *** Running test: bn64_bug_fixes.jnl
-! bn64_bug_fixes.jnl
+[?1034h! bn64_bug_fixes.jnl
 ! Fixes that go into v6.4 release
  
 ! (changes were made to err62_if_inside_repeat.jnl
@@ -59746,7 +59907,7 @@ list v1
              X        : 1
         "ZAIRA"
 *** Running test: bn_long_grid_names.jnl
-! 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
  
@@ -60530,7 +60691,7 @@ SHOW GRID mygrid_123456789012345678901234567890
  normal    E
  normal    F
 *** Running test: bn_xml_repl.jnl
-! bn_xml_repl.jnl
+[?1034h! bn_xml_repl.jnl
 ! replace > and < and & with their html equivalents.
  
 use coads_climatology
@@ -60670,7 +60831,7 @@ sh dat/xml/var
 </axes>
 shade/l=1 sst
 *** Running test: bn65_bug_fixes.jnl
-! bn65_bug_fixes.jnl
+[?1034h! bn65_bug_fixes.jnl
 ! Fixes that go into v6.5 release
  
 GO bn_reset
@@ -60931,7 +61092,7 @@ go polymark "poly/ov/nolab/pal=red/line=1" pos pos " " circle .5
  
  
 *** Running test: bn_txtype_dmy.jnl
-! bn_txtype_dmy.jnl
+[?1034h! bn_txtype_dmy.jnl
 ! 2/2010 ACM
 !
 ! Testing Time Axis plot style "DMY" labels the year
@@ -61054,7 +61215,7 @@ ppl plot
 plot/y=-1/k=1/t=5-mar-1982:28-mar-1982/x=144w temp
 plot/y=-1/k=1/t=5-mar-1982:28-apr-1982/x=144w temp
 *** Running test: bn_n_open_dsets_sym.jnl
- !  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.
 ! Gives a count of the number of open datasets.
@@ -61095,11 +61256,11 @@ sh sym N_OPEN_DSETS
 N_OPEN_DSETS = "0"
  
 *** Running test: bn_multi_decade.jnl
-! bn_multi_decade.jnl
+[?1034h! bn_multi_decade.jnl
 ! New default no-small tics for multi-decade plots
 ! See bug 670
  
-def axis/t="01-JAN-1860":"30-DEC-2300":5/edges/units="Days"/cal="360d" simutaxis1
+def axis/t="01-JAN-1860":"30-DEC-2300":1/edges/units="years"/cal="360d" simutaxis1
 let tvar = t[gt=simutaxis1]*-1E+34
  
 define view/x=0:1/y=0.000:0.125 v1
@@ -61156,7 +61317,7 @@ set view v8; plot/trans/nolab/ax=0,0,1,0/hlim=0:1/set tvar
   ppl tics,0.1,0.25
   ppl plot
 *** Running test: bn_show_xml_file.jnl
-! bn_show_xml_file.jnl
+[?1034h! bn_show_xml_file.jnl
 ! Testing SHOW DATA/OUTFILE
 !         SHOW AXIS/OUTFILE
 !         SHOW VAR/OUTFILE
@@ -61361,7 +61522,7 @@ sp cat the_xml_file.xml
 </data>
  
 *** Running test: bn66_bug_fixes.jnl
-! bn66_bug_fixes.jnl
+[?1034h! bn66_bug_fixes.jnl
 ! Fixes that go into v6.6 release
  
  
@@ -61457,7 +61618,7 @@ stat temp[z=@ave,t=@ave,y=-2:2]
  
 cancel region
 *** Running test: bn_netcdf4.jnl
-! bn_netcdf4.jnl
+[?1034h! bn_netcdf4.jnl
 ! test syntax for controling NetCDF-4 intput and output.
  
  
@@ -61489,7 +61650,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.
@@ -61572,7 +61733,7 @@ save/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk=6/ychunk=1
 can mode ignore
  
 *** Running test: bn_scat2grid_bin.jnl
-! bn_scat2grid_bin.jnl
+[?1034h! bn_scat2grid_bin.jnl
 ! Tests of scat2grid_bin and scat2grid_nbin functions.
  
 ! define some variables (as in bench_gridding)
@@ -61909,7 +62070,7 @@ can axis tout
 can axis tin
  
 *** Running test: bn_axis_dir_symbols.jnl
-! bn_axis_dir_symbols.jnl
+[?1034h! bn_axis_dir_symbols.jnl
 ! 5/2010
 !
 ! For LAS:
@@ -61935,7 +62096,7 @@ shade/x=180 sst; show sym ax*; can sym ax*
 AX_HORIZ = "T"
 AX_VERT = "Y"
 *** Running test: bn663_bug_fixes.jnl
-! bn663_bug_fixes.jnl
+[?1034h! bn663_bug_fixes.jnl
 ! Fixes that go into v6.63 release
  
  
@@ -61970,7 +62131,7 @@ SHADE/L=1/X=60:70/Y=40:50/LEV=v sst
  
 FILL/L=2/X=60:70/Y=40:50/LEV=v sst
 *** Running test: bn_set_axis_regular.jnl
-! bn_set_axis_regular.jnl
+[?1034h! bn_set_axis_regular.jnl
 ! Karl Smith, 5/2010
 ! tests for SET AXIS /REGULAR
  
@@ -62243,7 +62404,7 @@ show grid
  normal    F
  
 *** Running test: bn_set_cancel_redirect.jnl
-! bn_set_cancel_redirect.jnl
+[?1034h! bn_set_cancel_redirect.jnl
 ! Karl Smith, 5/2010
 ! test for SET REDIRECT and CANCEL REDIRECT
  
@@ -62605,7 +62766,7 @@ list contents
  2   / 2:"     e.g.   yes? GO filename"                                              
  3   / 3:" "                                                                         
  4   / 4:" Use "GO/HELP filename" to read documentation in  the file to be executed."
- 5   / 5:" *** NOTE: Axis is already regular: MYAXIS"                                
+ 5   / 5:"           *** NOTE: Axis is already regular: MYAXIS"                      
  6   / 6:" **ERROR: variable unknown or not in data set: GARBAGE"                    
  7   / 7:"show grid garbage"                                                         
 cancel var contents
@@ -62691,9 +62852,9 @@ list contents
              VARIABLE : { SPAWN:"cat redirect_journal.txt" }
              SUBSET   : 47 points (X)
  1    /  1:" ! NOAA/PMEL TMAP"                                                          
- 2    /  2:" ! FERRET v6.93 (PyFerret 1.1.0)"                                           
- 3    /  3:" ! Linux 2.6.18-398.el5 - 11/05/14"                                         
- 4    /  4:" !  5-Nov-14 16:41     "                                                    
+ 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     "                                                    
  5    /  5:""                                                                           
  6    /  6:"! "                                                                         
  7    /  7:"!! --- 22. produce some output to stdout and stderr"                        
@@ -62745,7 +62906,7 @@ cancel grid mygrid
  
 !!! NOTE: journal mode is now turned off !!!
 *** Running test: bn_min_max_smoothers.jnl
-! 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.
 sh trans
@@ -62769,20 +62930,21 @@ variable transforms e.g.SST[T=1-jan:15-mar at DDC]
    @SBN        binomial smoothed            @SMN        minimum smoothed
    @SWL        Welch smoothed               @STD        standard deviation
    @SHN        Hanning smoothed             @WGT        weights for avg,int
-   @SPZ        Parzen smoothed
+   @SPZ        Parzen smoothed              @SPX        box smooth w/missing
  
 regridding transforms e.g.SST[GX=x5deg at AVE]
    code        description                  code        description
    ----        -----------                  ----        -----------
-   @LIN        lin. interp.                 @MOD        modulo ave
-   @AVE        box avgd                     @MODVAR     modulo var
-   @XACT       exact match                  @MODNGD     # gd mod pts
-   @ASN        index assn                   @MODNBD     #bad mod pts
-   @VAR        variance                     @MODSUM     modulo sum
-   @MIN        minimum                      @MODMIN     modulo min
-   @MAX        maximum                      @MODMAX     modulo max
-   @SUM        sum                          @NRST       nearst coord
-   @NGD        # gd pts
+   @LIN        lin. interp.                 @MODVAR     modulo var
+   @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        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]
    code        description                  code        description
@@ -63032,7 +63194,7 @@ list/l=1/x=123.5w/y=2.5/z=0:100 temp, temp[k=@med], temp[k=@smx], temp[k=@smn]
 95    / 10:  23.54  24.51  24.51  23.54
  
 *** Running test: bn_vector_symbols.jnl
-! bn_vector_symbols.jnl
+[?1034h! bn_vector_symbols.jnl
 ! ACM 7/16/21010 Ferret V6.6.3
 !
 ! On any vector plot command, define symbols
@@ -63077,7 +63239,7 @@ VECTOR/NOLAB/KEY/I=1:300/J=1:200/LEN=12.2/XSKIP=10/YSKIP=6 i/j,j/i
  
 VECTOR/OVER/KEY/NOLAB/I=1:300/J=1:200/LEN=12.2/XSKIP=10/YSKIP=4 i/j,j/i
 *** Running test: bn_variance_large.jnl
-! bn_variance_large.jnl
+[?1034h! bn_variance_large.jnl
 ! Previous to v6.6.4, these returned messages **too big**
  
 USE coads_climatology
@@ -63123,7 +63285,7 @@ SHADE/L=1/LEV=v huge
  
 CANCEL SYMBOL lev*
 *** Running test: bn_labnum_calendar.jnl
-! bn_labnum_calendar.jn.
+[?1034h! bn_labnum_calendar.jn.
 ! Define new symbol, when a Calendar label is on
 ! the plot, pointing to its ppl label number.
  
@@ -63141,7 +63303,7 @@ sh sym lab($labnum_calend)
 LAB4 = "CALENDAR: NOLEAP"
  
 *** Running test: bn665_bug_fixes.jnl
-! bn65_bug_fixes.jnl
+[?1034h! bn65_bug_fixes.jnl
 ! test various fixes that went into version 6.6.5
 ! 11/2010 ACM
 !
@@ -63495,7 +63657,7 @@ list tax_year(a,a)
  JUL-0005 / 6:"01-JUL-0005"
  
 *** Running test: bn_floatstr.jnl
-! bn_floatstr.jnl
+[?1034h! bn_floatstr.jnl
 ! testing new function to convert floating-point
 ! variables to strings.
  
@@ -63616,7 +63778,7 @@ LIST/X=165W:135W/Y=-50/L=1 STRLEN(var)
  137W   / 102:  0.000
  135W   / 103:  0.000
 *** Running test: bn67_bug_fixes.jnl
-! bn67_bug_fixes.jnl
+[?1034h! bn67_bug_fixes.jnl
 ! test various fixes that went into version 6.7
 ! 2/2011 ACM
  
@@ -63780,8 +63942,7 @@ 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        2048 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.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2. [...]
+                                 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 [...]
   
 (LON273_289)           DOUBLE    long_name       CHAR        9    T       longitude
                                  units           CHAR        12   T       degrees_east
@@ -63822,7 +63983,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
@@ -63837,10 +63998,10 @@ 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
  
 GO bn_reset
@@ -63962,11 +64123,10 @@ sh dat
  name     title                             I         J         K         L         M         N
  TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25      ...       ...
  TEMP_MM  TEMP - TEMPAVE                   1:18      1:22      1:10      1:25      ...       ...
-       (T=14-AUG-1982 11:00:13-JAN-1983 13:00)
  
  
 *** Running test: bn_NaN_note.jnl
-! bn_NaN_note.jnl
+[?1034h! bn_NaN_note.jnl
 ! Ferret v6.7  2/2011
 ! The message about no missing flags, and assuming NaN,
 ! is issued only when MODE DIAGNOSTIC is turned on.
@@ -63983,7 +64143,7 @@ SET MODE diag
 USE test0
 CANCEL MODE diag
 *** Running test: bn671_bug_fixes.jnl
-! bn671_bug_fixes.jnl
+[?1034h! bn671_bug_fixes.jnl
 ! test various fixes that went into version 6.71
 ! 4/2011 ACM
  
@@ -64045,12 +64205,12 @@ list/L=15:20 tax_month(t[gt=tvar],tvar), tax_yearfrac(t[gt=tvar],tvar)
  Column  1: TAX_MONTH(T[GT=TVAR],TVAR)
  Column  2: TAX_YEARFRAC(T[GT=TVAR],TVAR)
              (C001,V002)  (C001,V005)
-17-MAR      / 15:   3.000  0.2082
-16-APR      / 16:   4.000  0.2904
-17-MAY      / 17:   5.000  0.3753
-16-JUN      / 18:   6.000  0.4575
-17-JUL      / 19:   7.000  0.5425
-16-AUG      / 20:   8.000  0.6247
+17-MAR      / 15:   3.000  0.2092
+16-APR      / 16:   4.000  0.2926
+17-MAY      / 17:   5.000  0.3760
+16-JUN      / 18:   6.000  0.4594
+17-JUL      / 19:   7.000  0.5428
+16-AUG      / 20:   8.000  0.6262
 ! the following is an error for a modulo time axis
 list/L=15:20 tax_year(t[gt=tvar],tvar)
 list tax_units(tvar)
@@ -64095,7 +64255,6 @@ sh dat
  name     title                             I         J         K         L         M         N
  TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25      ...       ...
  TEMP_MM  TEMP - TEMPAVE                   1:18      1:22      1:10      1:25      ...       ...
-       (T=14-AUG-1982 11:00:13-JAN-1983 13:00)
  
  
 GO bn_reset
@@ -64274,7 +64433,7 @@ list var
  390   / 10:   ....
  400   / 11:   ....
 *** Running test: bn68_bug_fixes.jnl
-! bn68_bug_fixes.jnl
+[?1034h! bn68_bug_fixes.jnl
 ! test various fixes that went into version 6.8
 !
 GO bn_reset
@@ -64487,8 +64646,8 @@ list/l=1:7 TAX_yearfrac(t[gt=var], var)
  01-JAN-2010 00:00:10 / 3:  0.002740
  01-JAN-2010 00:00:15 / 4:  0.002740
  01-JAN-2010 00:00:20 / 5:  0.002740
- 01-JAN-2010 00:00:25 / 6:  0.002740
- 01-JAN-2010 00:00:30 / 7:  0.002740
+ 01-JAN-2010 00:00:25 / 6:  0.002741
+ 01-JAN-2010 00:00:30 / 7:  0.002741
  
 ! This example from Patrick B. Output of TAX_dayfrac repeats.
 ! We need to just return an error mesage. Cant represent 2.5 years
@@ -64976,7 +65135,7 @@ list x[gx=a[d=1],i=1:3]
  1   / 2:  1.000
  2   / 3:  2.000
 *** Running test: bn_ifv.jnl
-! bn_ifv.jnl
+[?1034h! bn_ifv.jnl
 ! test IFV IfValid masking for a variety of combos
  
  
@@ -65111,7 +65270,7 @@ list IFV strings EQ "a" THEN "" ELSE strings
  2   / 2:"b"
  3   / 3:"" 
 *** Running test: bn_randu2_randn2.jnl
-! Test randu2 and randn2 with newer random-number algorithm.
+[?1034h! Test randu2 and randn2 with newer random-number algorithm.
 ! 9/2011 acm
 ! Note that most of these results will differe from one
 ! run of the benchmarks to the next.
@@ -65127,132 +65286,132 @@ can mode ver
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.504
-randu2_randn2       0.458
-randu2_randn2       0.703
-randu2_randn2       0.525
-randu2_randn2       0.621
+randu2_randn2       0.086
+randu2_randn2       0.198
+randu2_randn2       0.798
+randu2_randn2       0.030
+randu2_randn2       0.779
              VARIABLE : RANDU2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.252
-randu2_randn2       0.687
-randu2_randn2       0.408
-randu2_randn2       0.233
-randu2_randn2       0.062
+randu2_randn2       0.914
+randu2_randn2       0.232
+randu2_randn2       0.331
+randu2_randn2       0.297
+randu2_randn2       0.096
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.859
-randu2_randn2       0.974
-randu2_randn2       0.676
-randu2_randn2       0.288
-randu2_randn2       0.453
-randu2_randn2       0.247
+randu2_randn2       0.342
+randu2_randn2       0.952
+randu2_randn2       0.373
+randu2_randn2       0.186
+randu2_randn2       0.390
+randu2_randn2       0.001
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.860
-randu2_randn2       0.919
-randu2_randn2       0.914
-randu2_randn2       0.940
-randu2_randn2       0.169
-randu2_randn2       0.241
+randu2_randn2       0.376
+randu2_randn2       0.988
+randu2_randn2       0.561
+randu2_randn2       0.203
+randu2_randn2       0.715
+randu2_randn2       0.317
              VARIABLE : RANDU2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.343
-randu2_randn2       0.598
-randu2_randn2       0.888
-randu2_randn2       0.608
-randu2_randn2       0.446
-randu2_randn2       0.900
+randu2_randn2       0.302
+randu2_randn2       0.380
+randu2_randn2       0.926
+randu2_randn2       0.672
+randu2_randn2       0.238
+randu2_randn2       0.638
              VARIABLE : RANDU2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.343
-randu2_randn2       0.598
-randu2_randn2       0.888
-randu2_randn2       0.608
-randu2_randn2       0.446
-randu2_randn2       0.900
+randu2_randn2       0.302
+randu2_randn2       0.380
+randu2_randn2       0.926
+randu2_randn2       0.672
+randu2_randn2       0.238
+randu2_randn2       0.638
              VARIABLE : RANDN2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.823
-randu2_randn2       0.797
-randu2_randn2      -0.547
-randu2_randn2      -0.022
-randu2_randn2       0.989
+randu2_randn2       0.119
+randu2_randn2       0.011
+randu2_randn2      -0.739
+randu2_randn2       1.723
+randu2_randn2       0.479
              VARIABLE : RANDN2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2      -1.026
-randu2_randn2       0.024
-randu2_randn2      -0.560
-randu2_randn2       0.330
-randu2_randn2      -0.057
+randu2_randn2      -0.902
+randu2_randn2       0.150
+randu2_randn2       0.389
+randu2_randn2       0.418
+randu2_randn2      -2.675
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.205
-randu2_randn2       0.576
-randu2_randn2      -1.683
-randu2_randn2       0.867
-randu2_randn2      -0.172
-randu2_randn2       0.518
+randu2_randn2       0.072
+randu2_randn2       0.581
+randu2_randn2       0.008
+randu2_randn2       1.515
+randu2_randn2      -0.506
+randu2_randn2       1.005
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2      -1.766
-randu2_randn2       0.041
-randu2_randn2      -1.355
-randu2_randn2       2.133
-randu2_randn2      -1.568
-randu2_randn2       1.024
+randu2_randn2       0.130
+randu2_randn2      -1.730
+randu2_randn2      -0.080
+randu2_randn2       0.196
+randu2_randn2      -0.846
+randu2_randn2       0.180
              VARIABLE : RANDN2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       1.052
-randu2_randn2      -1.694
-randu2_randn2       0.249
-randu2_randn2       0.895
-randu2_randn2       0.919
-randu2_randn2      -0.124
+randu2_randn2      -0.906
+randu2_randn2      -1.503
+randu2_randn2       0.217
+randu2_randn2       0.537
+randu2_randn2       0.674
+randu2_randn2      -1.279
              VARIABLE : RANDN2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       1.052
-randu2_randn2      -1.694
-randu2_randn2       0.249
-randu2_randn2       0.895
-randu2_randn2       0.919
-randu2_randn2      -0.124
+randu2_randn2      -0.906
+randu2_randn2      -1.503
+randu2_randn2       0.217
+randu2_randn2       0.537
+randu2_randn2       0.674
+randu2_randn2      -1.279
              Z: 1 to 140
  Column  1: VAR2 is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1)
  Column  2: VAR2[Z=@MED:3] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 3 pts on Z)
  Column  3: VAR2[Z=@MED:9] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 9 pts on Z)
-randu2_randn2       1.989       1.989       0.710
-randu2_randn2       0.955       0.955       0.710
-randu2_randn2       0.710       0.710      -0.049
-randu2_randn2      -0.137      -0.137       0.437
-randu2_randn2      -0.462      -0.462       0.437
-randu2_randn2      -0.551      -0.462       0.437
-randu2_randn2      -0.049      -0.049       0.437
-randu2_randn2       0.437       0.437       0.437
+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
-! Ticket 1792: Write axes with CF-compliant units
+[?1034h! Ticket 1792: Write axes with CF-compliant units
 ! and with standard name attributes for geophysical attrs.
  
  
@@ -65318,7 +65477,7 @@ sp ncdump -h a.nc >> all_ncdump.out
  
  
 *** Running test: bn_repeated_coords.jnl
-! Test the use of micro-adjusting on NetCDF read
+[?1034h! Test the use of micro-adjusting on NetCDF read
 ! when coordinates are repeated.
 ! See ticket 1910
  
@@ -65390,7 +65549,7 @@ list aa[L=1:71:10]
  01-JAN-2001 01:10:00 / 8:  0.6997
  
 *** Running test: bn_xml_header.jnl
-! bn_xml_header.jnl
+[?1034h! bn_xml_header.jnl
 ! run the exact script that LAS uses to make XML header files
  
 go xml_header_script.jnl xml_use_coads.jnl xml_out.xml
@@ -65611,7 +65770,7 @@ sp grep -A5 dimension xml_out_string.xml
 </dimensions>
 </data>
 *** Running test: bn_eof_simple.jnl
-! bn_eof_simple
+[?1034h! bn_eof_simple
 ! Define a simple function with two known functions.
 ! decompose with EOFs.
 ! 7/2012
@@ -65679,7 +65838,7 @@ list eofsvd_space(spacetime)
              1       2     
               1       2
  1   / 1:  0.0000 -0.7071
- 2   / 2: -0.7071  0.0000
+ 2   / 2: -0.7071 -0.0000
  
 show func eofsvd_tfunc
 EOFSVD_TFUNC(A)
@@ -65692,7 +65851,7 @@ list eofsvd_tfunc(spacetime)
              SUBSET   : 2 by 240 points (X-T)
                  1      2    
                  1      2
- 0     /   1:  0.000 -1.414
+ 0     /   1: -0.000 -1.414
  0.25  /   2: -0.185 -1.402
  0.5   /   3: -0.366 -1.366
  0.75  /   4: -0.541 -1.307
@@ -65704,7 +65863,7 @@ list eofsvd_tfunc(spacetime)
  2.25  /  10: -1.307 -0.541
  2.5   /  11: -1.366 -0.366
  2.75  /  12: -1.402 -0.185
- 3     /  13: -1.414  0.000
+ 3     /  13: -1.414 -0.000
  3.25  /  14: -1.402  0.185
  3.5   /  15: -1.366  0.366
  3.75  /  16: -1.307  0.541
@@ -65716,7 +65875,7 @@ list eofsvd_tfunc(spacetime)
  5.25  /  22: -0.541  1.307
  5.5   /  23: -0.366  1.366
  5.75  /  24: -0.185  1.402
- 6     /  25:  0.000  1.414
+ 6     /  25: -0.000  1.414
  6.25  /  26:  0.185  1.402
  6.5   /  27:  0.366  1.366
  6.75  /  28:  0.541  1.307
@@ -65752,7 +65911,7 @@ list eofsvd_tfunc(spacetime)
  14.25 /  58: -1.307 -0.541
  14.5  /  59: -1.366 -0.366
  14.75 /  60: -1.402 -0.185
- 15    /  61: -1.414  0.000
+ 15    /  61: -1.414 -0.000
  15.25 /  62: -1.402  0.185
  15.5  /  63: -1.366  0.366
  15.75 /  64: -1.307  0.541
@@ -65764,7 +65923,7 @@ list eofsvd_tfunc(spacetime)
  17.25 /  70: -0.541  1.307
  17.5  /  71: -0.366  1.366
  17.75 /  72: -0.185  1.402
- 18    /  73:  0.000  1.414
+ 18    /  73: -0.000  1.414
  18.25 /  74:  0.185  1.402
  18.5  /  75:  0.366  1.366
  18.75 /  76:  0.541  1.307
@@ -65800,7 +65959,7 @@ list eofsvd_tfunc(spacetime)
  26.25 / 106: -1.307 -0.541
  26.5  / 107: -1.366 -0.366
  26.75 / 108: -1.402 -0.185
- 27    / 109: -1.414  0.000
+ 27    / 109: -1.414 -0.000
  27.25 / 110: -1.402  0.185
  27.5  / 111: -1.366  0.366
  27.75 / 112: -1.307  0.541
@@ -65812,7 +65971,7 @@ list eofsvd_tfunc(spacetime)
  29.25 / 118: -0.541  1.307
  29.5  / 119: -0.366  1.366
  29.75 / 120: -0.185  1.402
- 30    / 121:  0.000  1.414
+ 30    / 121: -0.000  1.414
  30.25 / 122:  0.185  1.402
  30.5  / 123:  0.366  1.366
  30.75 / 124:  0.541  1.307
@@ -65824,7 +65983,7 @@ list eofsvd_tfunc(spacetime)
  32.25 / 130:  1.307  0.541
  32.5  / 131:  1.366  0.366
  32.75 / 132:  1.402  0.185
- 33    / 133:  1.414  0.000
+ 33    / 133:  1.414 -0.000
  33.25 / 134:  1.402 -0.185
  33.5  / 135:  1.366 -0.366
  33.75 / 136:  1.307 -0.541
@@ -65848,7 +66007,7 @@ list eofsvd_tfunc(spacetime)
  38.25 / 154: -1.307 -0.541
  38.5  / 155: -1.366 -0.366
  38.75 / 156: -1.402 -0.185
- 39    / 157: -1.414  0.000
+ 39    / 157: -1.414 -0.000
  39.25 / 158: -1.402  0.185
  39.5  / 159: -1.366  0.366
  39.75 / 160: -1.307  0.541
@@ -65860,7 +66019,7 @@ list eofsvd_tfunc(spacetime)
  41.25 / 166: -0.541  1.307
  41.5  / 167: -0.366  1.366
  41.75 / 168: -0.185  1.402
- 42    / 169:  0.000  1.414
+ 42    / 169: -0.000  1.414
  42.25 / 170:  0.185  1.402
  42.5  / 171:  0.366  1.366
  42.75 / 172:  0.541  1.307
@@ -65872,7 +66031,7 @@ list eofsvd_tfunc(spacetime)
  44.25 / 178:  1.307  0.541
  44.5  / 179:  1.366  0.366
  44.75 / 180:  1.402  0.185
- 45    / 181:  1.414  0.000
+ 45    / 181:  1.414 -0.000
  45.25 / 182:  1.402 -0.185
  45.5  / 183:  1.366 -0.366
  45.75 / 184:  1.307 -0.541
@@ -65896,7 +66055,7 @@ list eofsvd_tfunc(spacetime)
  50.25 / 202: -1.307 -0.541
  50.5  / 203: -1.366 -0.366
  50.75 / 204: -1.402 -0.185
- 51    / 205: -1.414  0.000
+ 51    / 205: -1.414 -0.000
  51.25 / 206: -1.402  0.185
  51.5  / 207: -1.366  0.366
  51.75 / 208: -1.307  0.541
@@ -65908,7 +66067,7 @@ list eofsvd_tfunc(spacetime)
  53.25 / 214: -0.541  1.307
  53.5  / 215: -0.366  1.366
  53.75 / 216: -0.185  1.402
- 54    / 217:  0.000  1.414
+ 54    / 217: -0.000  1.414
  54.25 / 218:  0.185  1.402
  54.5  / 219:  0.366  1.366
  54.75 / 220:  0.541  1.307
@@ -65963,14 +66122,14 @@ list eofsvd_space(space12)
              1       2       3     
               1       2       3
  1   / 1:  0.0000 -0.7071    ....
- 2   / 2: -0.7071  0.0000    ....
+ 2   / 2: -0.7071 -0.0000    ....
  3   / 3:    ....    ....    ....
 list eofsvd_tfunc(space12)
              VARIABLE : EOFSVD_TFUNC(SPACE12)
              SUBSET   : 3 by 240 points (X-T)
                  1      2      3    
                  1      2      3
- 0     /   1:  0.000 -1.414   ....
+ 0     /   1: -0.000 -1.414   ....
  0.25  /   2: -0.185 -1.402   ....
  0.5   /   3: -0.366 -1.366   ....
  0.75  /   4: -0.541 -1.307   ....
@@ -65982,7 +66141,7 @@ list eofsvd_tfunc(space12)
  2.25  /  10: -1.307 -0.541   ....
  2.5   /  11: -1.366 -0.366   ....
  2.75  /  12: -1.402 -0.185   ....
- 3     /  13: -1.414  0.000   ....
+ 3     /  13: -1.414 -0.000   ....
  3.25  /  14: -1.402  0.185   ....
  3.5   /  15: -1.366  0.366   ....
  3.75  /  16: -1.307  0.541   ....
@@ -65994,7 +66153,7 @@ list eofsvd_tfunc(space12)
  5.25  /  22: -0.541  1.307   ....
  5.5   /  23: -0.366  1.366   ....
  5.75  /  24: -0.185  1.402   ....
- 6     /  25:  0.000  1.414   ....
+ 6     /  25: -0.000  1.414   ....
  6.25  /  26:  0.185  1.402   ....
  6.5   /  27:  0.366  1.366   ....
  6.75  /  28:  0.541  1.307   ....
@@ -66030,7 +66189,7 @@ list eofsvd_tfunc(space12)
  14.25 /  58: -1.307 -0.541   ....
  14.5  /  59: -1.366 -0.366   ....
  14.75 /  60: -1.402 -0.185   ....
- 15    /  61: -1.414  0.000   ....
+ 15    /  61: -1.414 -0.000   ....
  15.25 /  62: -1.402  0.185   ....
  15.5  /  63: -1.366  0.366   ....
  15.75 /  64: -1.307  0.541   ....
@@ -66042,7 +66201,7 @@ list eofsvd_tfunc(space12)
  17.25 /  70: -0.541  1.307   ....
  17.5  /  71: -0.366  1.366   ....
  17.75 /  72: -0.185  1.402   ....
- 18    /  73:  0.000  1.414   ....
+ 18    /  73: -0.000  1.414   ....
  18.25 /  74:  0.185  1.402   ....
  18.5  /  75:  0.366  1.366   ....
  18.75 /  76:  0.541  1.307   ....
@@ -66078,7 +66237,7 @@ list eofsvd_tfunc(space12)
  26.25 / 106: -1.307 -0.541   ....
  26.5  / 107: -1.366 -0.366   ....
  26.75 / 108: -1.402 -0.185   ....
- 27    / 109: -1.414  0.000   ....
+ 27    / 109: -1.414 -0.000   ....
  27.25 / 110: -1.402  0.185   ....
  27.5  / 111: -1.366  0.366   ....
  27.75 / 112: -1.307  0.541   ....
@@ -66090,7 +66249,7 @@ list eofsvd_tfunc(space12)
  29.25 / 118: -0.541  1.307   ....
  29.5  / 119: -0.366  1.366   ....
  29.75 / 120: -0.185  1.402   ....
- 30    / 121:  0.000  1.414   ....
+ 30    / 121: -0.000  1.414   ....
  30.25 / 122:  0.185  1.402   ....
  30.5  / 123:  0.366  1.366   ....
  30.75 / 124:  0.541  1.307   ....
@@ -66102,7 +66261,7 @@ list eofsvd_tfunc(space12)
  32.25 / 130:  1.307  0.541   ....
  32.5  / 131:  1.366  0.366   ....
  32.75 / 132:  1.402  0.185   ....
- 33    / 133:  1.414  0.000   ....
+ 33    / 133:  1.414 -0.000   ....
  33.25 / 134:  1.402 -0.185   ....
  33.5  / 135:  1.366 -0.366   ....
  33.75 / 136:  1.307 -0.541   ....
@@ -66126,7 +66285,7 @@ list eofsvd_tfunc(space12)
  38.25 / 154: -1.307 -0.541   ....
  38.5  / 155: -1.366 -0.366   ....
  38.75 / 156: -1.402 -0.185   ....
- 39    / 157: -1.414  0.000   ....
+ 39    / 157: -1.414 -0.000   ....
  39.25 / 158: -1.402  0.185   ....
  39.5  / 159: -1.366  0.366   ....
  39.75 / 160: -1.307  0.541   ....
@@ -66138,7 +66297,7 @@ list eofsvd_tfunc(space12)
  41.25 / 166: -0.541  1.307   ....
  41.5  / 167: -0.366  1.366   ....
  41.75 / 168: -0.185  1.402   ....
- 42    / 169:  0.000  1.414   ....
+ 42    / 169: -0.000  1.414   ....
  42.25 / 170:  0.185  1.402   ....
  42.5  / 171:  0.366  1.366   ....
  42.75 / 172:  0.541  1.307   ....
@@ -66150,7 +66309,7 @@ list eofsvd_tfunc(space12)
  44.25 / 178:  1.307  0.541   ....
  44.5  / 179:  1.366  0.366   ....
  44.75 / 180:  1.402  0.185   ....
- 45    / 181:  1.414  0.000   ....
+ 45    / 181:  1.414 -0.000   ....
  45.25 / 182:  1.402 -0.185   ....
  45.5  / 183:  1.366 -0.366   ....
  45.75 / 184:  1.307 -0.541   ....
@@ -66174,7 +66333,7 @@ list eofsvd_tfunc(space12)
  50.25 / 202: -1.307 -0.541   ....
  50.5  / 203: -1.366 -0.366   ....
  50.75 / 204: -1.402 -0.185   ....
- 51    / 205: -1.414  0.000   ....
+ 51    / 205: -1.414 -0.000   ....
  51.25 / 206: -1.402  0.185   ....
  51.5  / 207: -1.366  0.366   ....
  51.75 / 208: -1.307  0.541   ....
@@ -66186,7 +66345,7 @@ list eofsvd_tfunc(space12)
  53.25 / 214: -0.541  1.307   ....
  53.5  / 215: -0.366  1.366   ....
  53.75 / 216: -0.185  1.402   ....
- 54    / 217:  0.000  1.414   ....
+ 54    / 217: -0.000  1.414   ....
  54.25 / 218:  0.185  1.402   ....
  54.5  / 219:  0.366  1.366   ....
  54.75 / 220:  0.541  1.307   ....
@@ -66233,7 +66392,7 @@ can axis xaxis
  
 exit/script
 *** Running test: bn_eof_simple2.jnl
-! bn_eof_simple2
+[?1034h! bn_eof_simple2
 ! Define a simple function with four known functions, two of which are degenerate.
 ! decompose with EOFs.
 ! 7/2012
@@ -66593,7 +66752,7 @@ can axis xaxis
  
 exit/script
 *** Running test: bn_interpolate_6d.jnl
-! bn_interpolate_6d.JNL
+[?1034h! bn_interpolate_6d.JNL
 ! benchmark interpolation along various axes
 ! including the E and F axis
  
@@ -66846,7 +67005,7 @@ LIST v[@ypt]
 LIST v[@ept]
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 by 3 points (X-Y-F)
-             E        : 1.00499999999999989 (interpolated)
+             E        : 1 (interpolated)
               1        2        3     
               1        2        3
  ---- N:1 F:   1
@@ -66864,7 +67023,7 @@ LIST v[@ept]
 LIST v[@fpt]
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 by 3 points (X-Y-E)
-             F        : 1.000499999999999945 (interpolated)
+             F        : 1 (interpolated)
               1        2        3     
               1        2        3
  ---- M:1 E:   1
@@ -66884,8 +67043,8 @@ LIST v[@fpt]
 LIST v[@ept, at fpt]	!XY
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 points (X-Y)
-             E        : 1.00499999999999989 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             E        : 1 (interpolated)
+             F        : 1 (interpolated)
               1        2        3     
               1        2        3
  1   / 1:  1112.00  1113.00  1114.00
@@ -66895,7 +67054,7 @@ LIST v[@ypt, at fpt]	!XE
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 points (X-E)
              Y        : 1.05 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             F        : 1 (interpolated)
               1        2        3     
               1        2        3
  1   / 1:  1112.00  1113.00  1114.00
@@ -66905,7 +67064,7 @@ LIST v[@ypt, at ept]	!XF
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 points (X-F)
              Y        : 1.05 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
+             E        : 1 (interpolated)
               1        2        3     
               1        2        3
  1   / 1:  1112.00  1113.00  1114.00
@@ -66915,7 +67074,7 @@ LIST v[@xpt, at fpt]	!YE
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 points (Y-E)
              X        : 1.5 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             F        : 1 (interpolated)
               1        2        3     
               1        2        3
  1   / 1:  1112.00  1122.00  1132.00
@@ -66925,7 +67084,7 @@ LIST v[@xpt, at ept]	!YF
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 by 3 points (Y-F)
              X        : 1.5 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
+             E        : 1 (interpolated)
               1        2        3     
               1        2        3
  1   / 1:  1112.00  1122.00  1132.00
@@ -66948,7 +67107,7 @@ LIST/ORDER=F v[@xpt, at ypt, at ept]	! F
              SUBSET   : 3 points (F)
              X        : 1.5 (interpolated)
              Y        : 1.05 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
+             E        : 1 (interpolated)
              1        2        3     
              1        2        3
           1112.50  2112.50  3112.50
@@ -66957,7 +67116,7 @@ LIST/ORDER=E v[@xpt, at ypt, at fpt]	! E
              SUBSET   : 3 points (E)
              X        : 1.5 (interpolated)
              Y        : 1.05 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             F        : 1 (interpolated)
              1        2        3     
              1        2        3
           1112.50  1212.50  1312.50
@@ -66965,8 +67124,8 @@ LIST/ORDER=Y v[@xpt, at ept, at fpt]	! Y
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 points (Y)
              X        : 1.5 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             E        : 1 (interpolated)
+             F        : 1 (interpolated)
              1        2        3     
              1        2        3
           1112.50  1122.50  1132.50
@@ -66974,8 +67133,8 @@ LIST/ORDER=X v[@ypt, at ept, at fpt]	! X
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              SUBSET   : 3 points (X)
              Y        : 1.05 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             E        : 1 (interpolated)
+             F        : 1 (interpolated)
              1        2        3     
              1        2        3
           1112.50  1113.50  1114.50
@@ -66985,11 +67144,11 @@ LIST v[@xpt, at ypt, at ept, at fpt]
              VARIABLE : X + 10*Y + 100*_E + 1000*_F
              X        : 1.5 (interpolated)
              Y        : 1.05 (interpolated)
-             E        : 1.00499999999999989 (interpolated)
-             F        : 1.000499999999999945 (interpolated)
+             E        : 1 (interpolated)
+             F        : 1 (interpolated)
           1113.00
 *** Running test: bn_regrid_6d.jnl
-! bn_regrid_6d.jnl
+[?1034h! bn_regrid_6d.jnl
 ! version of bn_regrid, using E and F directions.
  
 set mode latit_label -4
@@ -67056,7 +67215,7 @@ list veven
              SUBSET   : 3 by 3 by 3 by 3 points (X-Y-E-FORECAST)
              4      6      8    
              2      3      4
- ---- N:2 F:   05-JAN-1980 00:00:00
+ ---- N:2 F:   1980
  ---- M:2 E:   4
  4   / 2:  2222.  3222.  4222.
  6   / 3:  2322.  3322.  4322.
@@ -67069,7 +67228,7 @@ list veven
  4   / 2:  2242.  3242.  4242.
  6   / 3:  2342.  3342.  4342.
  8   / 4:  2442.  3442.  4442.
- ---- N:3 F:   07-JAN-1980 00:00:00
+ ---- N:3 F:   1980
  ---- M:2 E:   4
  4   / 2:  2223.  3223.  4223.
  6   / 3:  2323.  3323.  4323.
@@ -67082,7 +67241,7 @@ list veven
  4   / 2:  2243.  3243.  4243.
  6   / 3:  2343.  3343.  4343.
  8   / 4:  2443.  3443.  4443.
- ---- N:4 F:   09-JAN-1980 00:00:00
+ ---- N:4 F:   1980
  ---- M:2 E:   4
  4   / 2:  2224.  3224.  4224.
  6   / 3:  2324.  3324.  4324.
@@ -67100,7 +67259,7 @@ list v1234
              SUBSET   : 3 by 3 by 3 by 3 points (X-Y-E-FORECAST)
              5      7      9    
              3      4      5
- ---- N:3 F:   06-JAN-1980 00:00:00
+ ---- N:3 F:   1980
  ---- M:3 E:   5
  5   / 3:  2778.  3778.  4778.
  7   / 4:  2878.  3878.  4878.
@@ -67113,7 +67272,7 @@ list v1234
  5   / 3:  2798.  3798.  4798.
  7   / 4:  2898.  3898.  4898.
  9   / 5:  2998.  3998.  4998.
- ---- N:4 F:   08-JAN-1980 00:00:00
+ ---- N:4 F:   1980
  ---- M:3 E:   5
  5   / 3:  2779.  3779.  4779.
  7   / 4:  2879.  3879.  4879.
@@ -67126,7 +67285,7 @@ list v1234
  5   / 3:  2799.  3799.  4799.
  7   / 4:  2899.  3899.  4899.
  9   / 5:  2999.  3999.  4999.
- ---- N:5 F:   10-JAN-1980 00:00:00
+ ---- N:5 F:   1980
  ---- M:3 E:   5
  5   / 3:  2780.  3780.  4780.
  7   / 4:  2880.  3880.  4880.
@@ -67146,8 +67305,8 @@ stat veven
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67170,8 +67329,8 @@ stat v1[g=even]-veven, v1
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67186,8 +67345,8 @@ stat v1[g=even]-veven, v1
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67203,8 +67362,8 @@ stat v2[g=even]-veven, v2
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67219,8 +67378,8 @@ stat v2[g=even]-veven, v2
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67236,8 +67395,8 @@ stat v3[g=even]-veven, v3
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67252,8 +67411,8 @@ stat v3[g=even]-veven, v3
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67269,8 +67428,8 @@ stat v4[g=even]-veven, v4
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67285,8 +67444,8 @@ stat v4[g=even]-veven, v4
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67302,8 +67461,8 @@ stat v12[g=even]-veven, v12
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67318,8 +67477,8 @@ stat v12[g=even]-veven, v12
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67335,8 +67494,8 @@ stat v13[g=even]-veven, v13
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67351,8 +67510,8 @@ stat v13[g=even]-veven, v13
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67368,8 +67527,8 @@ stat v14[g=even]-veven, v14
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67384,8 +67543,8 @@ stat v14[g=even]-veven, v14
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67401,8 +67560,8 @@ stat v23[g=even]-veven, v23
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67417,8 +67576,8 @@ stat v23[g=even]-veven, v23
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67434,8 +67593,8 @@ stat v24[g=even]-veven, v24
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67450,8 +67609,8 @@ stat v24[g=even]-veven, v24
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67467,8 +67626,8 @@ stat v33[g=even]-veven, v33
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67483,8 +67642,8 @@ stat v33[g=even]-veven, v33
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67500,8 +67659,8 @@ stat v234[g=even]-veven, v234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67516,8 +67675,8 @@ stat v234[g=even]-veven, v234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67533,8 +67692,8 @@ stat v134[g=even]-veven, v134
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67549,8 +67708,8 @@ stat v134[g=even]-veven, v134
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67566,8 +67725,8 @@ stat v124[g=even]-veven, v124
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67582,8 +67741,8 @@ stat v124[g=even]-veven, v124
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67599,8 +67758,8 @@ stat v123[g=even]-veven, v123
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67615,8 +67774,8 @@ stat v123[g=even]-veven, v123
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67632,8 +67791,8 @@ stat v1234[g=even]-veven, v1234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67648,8 +67807,8 @@ stat v1234[g=even]-veven, v1234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67673,8 +67832,8 @@ stat v1[g=even]-veven, v1
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67689,8 +67848,8 @@ stat v1[g=even]-veven, v1
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67706,8 +67865,8 @@ stat v2[g=even]-veven, v2
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67722,8 +67881,8 @@ stat v2[g=even]-veven, v2
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67739,8 +67898,8 @@ stat v3[g=even]-veven, v3
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67755,8 +67914,8 @@ stat v3[g=even]-veven, v3
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67772,8 +67931,8 @@ stat v4[g=even]-veven, v4
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67788,8 +67947,8 @@ stat v4[g=even]-veven, v4
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67805,8 +67964,8 @@ stat v12[g=even]-veven, v12
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67821,8 +67980,8 @@ stat v12[g=even]-veven, v12
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67838,8 +67997,8 @@ stat v13[g=even]-veven, v13
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67854,8 +68013,8 @@ stat v13[g=even]-veven, v13
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67871,8 +68030,8 @@ stat v14[g=even]-veven, v14
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67887,8 +68046,8 @@ stat v14[g=even]-veven, v14
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67904,8 +68063,8 @@ stat v23[g=even]-veven, v23
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67920,8 +68079,8 @@ stat v23[g=even]-veven, v23
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67937,8 +68096,8 @@ stat v24[g=even]-veven, v24
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67953,8 +68112,8 @@ stat v24[g=even]-veven, v24
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67970,8 +68129,8 @@ stat v33[g=even]-veven, v33
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -67986,8 +68145,8 @@ stat v33[g=even]-veven, v33
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68003,8 +68162,8 @@ stat v234[g=even]-veven, v234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68019,8 +68178,8 @@ stat v234[g=even]-veven, v234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68036,8 +68195,8 @@ stat v134[g=even]-veven, v134
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68052,8 +68211,8 @@ stat v134[g=even]-veven, v134
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68069,8 +68228,8 @@ stat v124[g=even]-veven, v124
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68085,8 +68244,8 @@ stat v124[g=even]-veven, v124
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68102,8 +68261,8 @@ stat v123[g=even]-veven, v123
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68118,8 +68277,8 @@ stat v123[g=even]-veven, v123
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68135,8 +68294,8 @@ stat v1234[g=even]-veven, v1234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68151,8 +68310,8 @@ stat v1234[g=even]-veven, v1234
              Y: 4.01 to 8.99
              Z:  N/A
              T:  N/A
-             E: 4.0099999999999998 to 8.9900000000000002
-             FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+             E: 4 to 9
+             FORECAST: 1980 to 1980
              DATA SET: N/A
  
  Total # of data points: 81 (3*3*1*1*3*3)
@@ -68364,7 +68523,7 @@ list a24[g=g48]-a48
  07-JAN-1980 00 / 4: -438312.
  
 *** Running test: bn_syntax_6d.jnl
-! bn_syntax_6d.JNL
+[?1034h! bn_syntax_6d.JNL
 ! - test syntax interpretation of Program FERRET 6D
  
 ! SET - SHOW - CANCEL DATA
@@ -68482,7 +68641,7 @@ cancel variables/all;\
      currently SET data sets:
           3.000
 *** Running test: bn_expressions_6d.jnl
-! bn_expressions_6d.jnl
+[?1034h! bn_expressions_6d.jnl
 ! testing expressions syntax in E and F directions.
 ! Note pseudo-variables are _E,
  
@@ -68962,7 +69121,7 @@ LIST/n=5:7 FBOXLO, FBOXHI
 6   / 6:  5.500  6.500
 7   / 7:  6.500  7.500
 *** Running test: bn_direction_fcns_6d.jnl
-! bn_direction_functions_6d
+[?1034h! bn_direction_functions_6d
 ! Tests of sort, sample, reverse, convolve, compress, and compess_by
 ! functions in the E and F directions.
  
@@ -69179,7 +69338,7 @@ list compressn_by(fsequence({10,20,30,40,50}),mask)
  4   / 4:   ....   ....
  5   / 5:   ....   ....
 *** Running test: bn_regrid_transforms_6d.jnl
-! 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.
  
@@ -69213,7 +69372,7 @@ stat temp[g=g5day] - temp[g=g5day at ave]
              DEPTH (m): 5
              TIME: 21-JAN-1982 16:00
              E: 1 to 2
-             FORECAST: 23-JAN-1982 00:00:00 to 24-JAN-1982 00:0
+             FORECAST: 1982 to 1982
              DATA SET: ./gtsa056_1_ef.nc
  
  Total # of data points: 120 (5*6*1*1*2*2)
@@ -69242,7 +69401,7 @@ LIST temp[g=g5day at ave]
              TIME     : 21-JAN-1982 16:00
               129.5W 128.5W 127.5W 126.5W 125.5W 
               101    102    103    104    105
- ---- N:1 F:   23-JAN-1982 00:00:00
+ ---- N:1 F:   1982
  ---- M:1 E:   1
  1.5N  / 46:  32.35  32.37  32.56  32.97  33.45
  1.17N / 45:  32.17  32.19  32.33  32.69  33.14
@@ -69257,7 +69416,7 @@ LIST temp[g=g5day at ave]
  0.5N  / 43:  37.93  37.90  37.91  38.09  38.43
  0.17N / 42:  37.89  37.84  37.79  37.86  38.10
  0.17S / 41:  37.95  37.86  37.77  37.74  37.87
- ---- N:2 F:   23-JAN-1982 20:00:00
+ ---- N:2 F:   1982
  ---- M:1 E:   1
  1.5N  / 46:  37.75  37.77  37.96  38.37  38.85
  1.17N / 45:  37.57  37.59  37.73  38.09  38.54
@@ -69288,7 +69447,7 @@ LIST temp[g=g5day]
              TIME     : 21-JAN-1982 16:00
               129.5W 128.5W 127.5W 126.5W 125.5W 
               101    102    103    104    105
- ---- N:1 F:   23-JAN-1982 00:00:00
+ ---- N:1 F:   1982
  ---- M:1 E:   1
  1.5N  / 46:  34.35  34.37  34.56  34.97  35.45
  1.17N / 45:  34.17  34.19  34.33  34.69  35.14
@@ -69303,7 +69462,7 @@ LIST temp[g=g5day]
  0.5N  / 43:  39.93  39.90  39.91  40.09  40.43
  0.17N / 42:  39.89  39.84  39.79  39.86  40.10
  0.17S / 41:  39.95  39.86  39.77  39.74  39.87
- ---- N:2 F:   23-JAN-1982 20:00:00
+ ---- N:2 F:   1982
  ---- M:1 E:   1
  1.5N  / 46:  36.01  36.04  36.23  36.64  37.12
  1.17N / 45:  35.84  35.85  36.00  36.36  36.80
@@ -69342,7 +69501,7 @@ plot temp
  -DELETE TEMP     M:  3 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    3    3  M:    1    2  N:    1    2
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAXIS
- strip --> EX#1[F=23-JAN-198200:00:00 at ITP,D=1]
+ strip --> EX#1[F=1982 at ITP,D=1]
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
@@ -69351,7 +69510,7 @@ plot temp
  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[F=23-JAN-198200:00:00 at ITP,D=1]
+ doing --> TEMP[F=1982 at ITP,D=1]
 setting up plot
 PPL plot 1    complete
 plot/over temp[g=g5day]
@@ -69418,14 +69577,14 @@ plot temp
  -DELETE TEMP     M: 10 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAXIS
- strip --> EX#1[F=23-JAN-198200:00:00 at ITP,D=1]
+ strip --> EX#1[F=1982 at ITP,D=1]
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
  eval    EX#1     C:  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[F=23-JAN-198200:00:00 at ITP,D=1]
+ doing --> TEMP[F=1982 at ITP,D=1]
 setting up plot
 PPL plot 5    complete
 plot/over temp[g=g5day]
@@ -69942,8 +70101,8 @@ show grid
  
 set mode/last diag
 *** Running test: bn_aggregate_e.jnl
-! bn_aggregate_e.jnl
-! using the DEFINE ATTRIBUTE/E command
+[?1034h! bn_aggregate_e.jnl
+! using the DEFINE DATA/AGGREGATE/E command
 ! Datasets share sst, but only ens1 has airt.
  
 set mode diag
@@ -69954,7 +70113,7 @@ define data/agg/title fourfiles = ens1, ens3, ens2, ens4
 ! The grid of SST is known.
 show data fourfiles
      currently SET data sets:
-    5> FOURFILES  (default)  Ferret-defined Ensemble dataset
+    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       ...
  
@@ -70005,7 +70164,7 @@ define data/agg fourfiles = ens1, ens3, ens2, ens4
  allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME      NORMAL    NORMAL
 show data fourfiles
      currently SET data sets:
-    5> FOURFILES  (default)  Ferret-defined Ensemble dataset
+    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       ...
  AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      1:4       ...
@@ -70111,7 +70270,7 @@ define data/agg 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 dataset
+    3> WINDY  (default)  Ferret-defined 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       ...
@@ -70144,7 +70303,7 @@ define data/agg 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 dataset
+    3> WINDY  (default)  Ferret-defined 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       ...
@@ -70191,7 +70350,8 @@ sh command define
  DEFINE SYMBOL
  DEFINE ATTRIBUT/D/TYPE/OUTPUT/QUIET
  DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/E/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/E/F/TITLE/QUIET/HIDE
+ DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
 sh command show
  SHOW/ALL
  SHOW WINDOW/ALL
@@ -70203,7 +70363,7 @@ sh command show
        /HIDDEN
  SHOW MODE/ALL
  SHOW MOVIE/ALL
- SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/SIGMA
+ SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ
        /CURVILIN
  SHOW COMMANDS/ALL
  SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
@@ -70216,7 +70376,7 @@ sh command show
  SHOW NCCACHE
  SHOW GIFFILE
  SHOW FUNCTION/ALL/BRIEF/EXTERNAL/INTERNAL/DETAILS
- SHOW QUERIES/ALL
+ SHOW TEXT
  
 use ens1, ens2, ens3, ens4
 ensemble/HIDE/title="ensemble with hidden members" fourfiles = ens1, ens2, ens3, ens4
@@ -70224,7 +70384,7 @@ ensemble/HIDE/title="ensemble with hidden members" fourfiles = ens1, ens2, ens3,
 ! should just show the ensemble set
 sh dat
      currently SET data sets:
-    5> FOURFILES  (default)  Ferret-defined Ensemble dataset
+    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       ...
  
@@ -70263,7 +70423,7 @@ sh dat/hidden
  name     title                             I         J         K         L         M         N
  SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
  
-    5> FOURFILES  (default)  Ferret-defined Ensemble dataset
+    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       ...
  
@@ -70306,7 +70466,7 @@ sh dat
  name     title                             I         J         K         L         M         N
  SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
  
-    5> MY_ENS  (default)  Ferret-defined Ensemble dataset
+    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       ...
  
@@ -70335,7 +70495,7 @@ ensemble/HIDE/title="uvars in dset 2"  my_ens = 1,2,3,4
 ! members hidden, showing only ensemble.
 sh dat
      currently SET data sets:
-    5> MY_ENS  (default)  Ferret-defined Ensemble dataset
+    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       ...
  
@@ -70370,15 +70530,15 @@ ensemble/HIDE/title="ensemble with hidden members" more = ens2, ens3, ens4
 ! Shows all the ensembles
 sh dat
      currently SET data sets:
-    5> FOURFILES     Ferret-defined Ensemble dataset
+    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 dataset
+    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 dataset
+    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       ...
  
@@ -70403,7 +70563,7 @@ sh dat
  
  
 *** Running test: bn_6d_lab_mode.jnl
-! 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.
 !
@@ -70552,7 +70712,7 @@ can mode diag
 ! restore default setting
 set mode 6d_lab
 *** Running test: bn682_bug_fixes.jnl
-! bn682_bug_fixes.jnl
+[?1034h! bn682_bug_fixes.jnl
 ! test various fixes that went into version 6.82
 ! 8/2012 ACM
  
@@ -70601,7 +70761,7 @@ sho grid lon_c
  normal    F
  
 *** Running test: bn683_bug_fixes.jnl
-! bn683_bug_fixes.jnl
+[?1034h! bn683_bug_fixes.jnl
 ! test various fixes that went into version 6.83
 ! 8/2012 ACM
  
@@ -70886,7 +71046,7 @@ list temp  ! values should match those above.
  
 set mode/last upcase_output
 *** Running test: bn_outtype.jnl
-! bn_outtype
+[?1034h! bn_outtype
 ! Tests of output-type control:
 !  SET VAR/OUTTYPE
 !  SET LIST/OUTTYPE
@@ -70918,7 +71078,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        39   T       FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14
+ .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -70973,7 +71133,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        39   T       FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14
+ .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71017,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        39   T       FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14
+ .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71061,7 +71221,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        39   T       FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14
+ .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71098,7 +71258,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        39   T       FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14
+ .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71136,7 +71296,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        39   T       FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14
+ .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71203,7 +71363,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        39   T       FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14
+ .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71252,7 +71412,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        39   T       FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14
+ .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71313,7 +71473,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        39   T       FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14
+ .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71354,7 +71514,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        39   T       FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14
+ .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71395,7 +71555,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        39   T       FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14
+ .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71436,7 +71596,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        39   T       FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14
+ .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71474,7 +71634,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        39   T       FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14
+ .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71511,7 +71671,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
-! bn_ribbon_plot.jnl
+[?1034h! bn_ribbon_plot.jnl
 ! Test color-line-by variable style of plots
  
 show alias ribbon
@@ -71654,7 +71814,7 @@ 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
- ! 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
  
@@ -71681,7 +71841,7 @@ list/x=180/y=0 sst
  17-MAY-1900 / 5:  28.49
  17-JUN-1900 / 6:  28.32
 *** Running test: bn_axis_outtype.jnl
-! bn_axis_outtype.jnl
+[?1034h! bn_axis_outtype.jnl
 !  SET AXIS/OUTTYPE
 ! 23-Oct-2012
  
@@ -71702,7 +71862,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        39   T       FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14
+ .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        FLOAT     units           CHAR        12   T       degrees_east
@@ -71740,7 +71900,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        39   T       FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14
+ .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        FLOAT     units           CHAR        12   T       degrees_east
@@ -71787,7 +71947,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        39   T       FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14
+ .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71831,7 +71991,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        39   T       FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14
+ .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -71856,7 +72016,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        39   T       FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14
+ .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             INT       units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -71881,7 +72041,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        39   T       FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14
+ .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -71921,7 +72081,7 @@ save/clobber/file=mytype.nc my_data
 cancel mode ignore
  
 *** Running test: bn_axis_nonmonotonic.jnl
-! 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
  
@@ -71933,7 +72093,7 @@ define axis/t/units=days tax = tvar
  
 cancel mode ignore
 *** Running test: bn_vec_mod.jnl
-! bn_vec_mod.jnl
+[?1034h! bn_vec_mod.jnl
 ! /MODULO qualifier for the vector command.
 ! 12/12/2012 ACM
 !
@@ -71954,7 +72114,7 @@ vec/MOD/HLIM=-180:180 u,fakev,geolon_c,geolat_c
  
 can view
 *** Running test: bn685_bug_fixes.jnl
-! bn685_bug_fixes.jnl
+[?1034h! bn685_bug_fixes.jnl
 ! test various fixes that went into version 6.85
 ! 1/2013 ACM
  
@@ -72087,11 +72247,11 @@ GO err684_tax_fcns
  list/L=3:7 tax_yearfrac(var, var)
              VARIABLE : TAX_YEARFRAC(VAR, VAR)
              SUBSET   : 5 points (TIME)
- 08-OCT-2006 22 / 3:  0.7699
- 13-OCT-2006 23 / 4:  0.7836
- 18-OCT-2006 22 / 5:  0.7973
- 23-OCT-2006 21 / 6:  0.8110
- 28-OCT-2006 22 / 7:  0.8247
+ 08-OCT-2006 22 / 3:  0.7725
+ 13-OCT-2006 23 / 4:  0.7862
+ 18-OCT-2006 22 / 5:  0.7998
+ 23-OCT-2006 21 / 6:  0.8134
+ 28-OCT-2006 22 / 7:  0.8272
  
  list/L=3:7 tax_year(var, var)
              VARIABLE : TAX_YEAR(VAR, VAR)
@@ -72136,8 +72296,8 @@ GO err684_line_plot_zero
  
 plot {0,0,0}
 sh sym yaxis*
-YAXIS_MIN = "-1.0000000"
-YAXIS_MAX = "1.000000"
+YAXIS_MIN = "-1.00000000"
+YAXIS_MAX = "1.00000000"
  
  
 GO bn_reset
@@ -72306,11 +72466,11 @@ variables:
 		A:missing_value = -1.e+34 ;
 		A:_FillValue = -1.e+34 ;
 		A:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
-		A:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
+		A:long_name_mod = "X=20E:20E(380), Y=90S:90N" ;
 		A:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -72335,11 +72495,11 @@ variables:
 		E410:missing_value = -1.e+34 ;
 		E410:_FillValue = -1.e+34 ;
 		E410:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
-		E410:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
+		E410:long_name_mod = "X=20E:20E(380), Y=90S:90N" ;
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -72354,7 +72514,7 @@ save/clob/file=aa.nc/y=-81:-75 sst[x=@ave]-sst[x=@ave,t=@ave]
 use aa.nc
 list e410
              VARIABLE : SST[X=@AVE]-SST[X=@AVE,T=@AVE]
-                        X=20E:20E(380), T=01-JAN 00:45:01-APR 08:12
+                        X=20E:20E(380)
              FILENAME : aa.nc
              SUBSET   : 4 by 3 points (LATITUDE-TIME)
                     81S    79S    77S    75S   
@@ -72386,11 +72546,11 @@ variables:
 		E410:missing_value = -1.e+34f ;
 		E410:_FillValue = -1.e+34f ;
 		E410:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
-		E410:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
+		E410:long_name_mod = "X=20E:20E(380), Y=90S:90N" ;
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -72403,7 +72563,7 @@ save/clob/file=aa.nc/outtype=float/y=-81:-75 sst[x=@ave]-sst[x=@ave,t=@ave]
 use aa.nc
 list e410
              VARIABLE : SST[X=@AVE]-SST[X=@AVE,T=@AVE]
-                        X=20E:20E(380), T=01-JAN 00:45:01-APR 08:12
+                        X=20E:20E(380)
              FILENAME : aa.nc
              SUBSET   : 4 by 3 points (LATITUDE-TIME)
                     81S    79S    77S    75S   
@@ -72491,7 +72651,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>
@@ -72567,8 +72727,12 @@ let/title="tic labels on dependent axis" var = {\
 1.6897,1.687,1.6843,1.6817,1.679,1.6765,1.676,1.676}
  
 plot/line/sym/title="Vert axis labels should be 1.675 thru 1.715" var
-can mode meta
+cancel mode meta
  
+! rename the metafile. Else we get weird contents in axticlabel.plt
+! once the whole benchmark suite has finished. (why?)
+set mode meta metafile.plt
+cancel mode meta
  
 GO bn_reset
 cancel mode verify
@@ -72813,7 +72977,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
-! bn_dsg_e.jnl
+[?1034h! bn_dsg_e.jnl
 !
 !  Discrete Sampling Geometries files
 !  Create grids such that the instance dimension
@@ -72910,7 +73074,7 @@ sh grid pco2
  normal    E
  normal    F
 *** Running test: bn_nco_append.jnl
-! bn_nco_append.jnl
+[?1034h! bn_nco_append.jnl
 ! 5/2013 add a test appending files with ncks
  
  ! These functions use Unix NCO utilities, found at http://nco.sourceforge.net/
@@ -72952,13 +73116,19 @@ variables:
 		CYCLE_ORIG:_FillValue = -1.e+34 ;
 		CYCLE_ORIG:long_name = "CYCLE[GZ=ZAXIS_ORIG at ASN]" ;
 		CYCLE_ORIG:history = "From z2" ;
+	double DDAT_ORIG(ZAXIS_ORIG) ;
+		DDAT_ORIG:missing_value = -1.e+34 ;
+		DDAT_ORIG:_FillValue = -1.e+34 ;
+		DDAT_ORIG:long_name = "DDAT[GZ=ZAXIS_ORIG at ASN]" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		: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" ;
 		:Conventions = "CF-1.6" ;
+		:NCO = "4.4.6" ;
 }
 *** Running test: bn_nobounds.jnl
-! 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
 ! Ferret with bounds.
@@ -72984,7 +73154,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -73015,7 +73185,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -73077,7 +73247,7 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -73105,12 +73275,12 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
 *** Running test: bn_write_integer_att.jnl
-! bn_write_integer_att.jnl
+[?1034h! bn_write_integer_att.jnl
 !  ACM 6/2013
 !
 ! This file has an integer attribute
@@ -73141,7 +73311,7 @@ sp ncdump a.nc | grep numberOfObservations
  
  
 *** Running test: bn_descriptor_mc.jnl
-! bn_descriptor_mc.jnl
+[?1034h! bn_descriptor_mc.jnl
 ! 7/2013 ACM
 ! See ticket 2087
 !
@@ -73180,7 +73350,7 @@ list /x=300/y=10 sst
  16-MAY-0000 / 3:  27.22
  16-JUN-0000 / 4:  27.66
 *** Running test: bn_plot_color_only.jnl
-! bn_plot_color_only.jnl
+[?1034h! bn_plot_color_only.jnl
 ! 9/20/2013 ACM
 ! ticket 2094
 !  PLOT/COLOR with no argument skips the black pen and starts with the next one.
@@ -73255,9 +73425,10 @@ set mode/last ignore
  
  
 *** Running test: bn_vtree.jnl
-! bn_tree.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
  
 CANCEL DATA/ALL
 ! pure abstract variable -- no dataset
@@ -73338,16 +73509,16 @@ vtree=all a
    in default dataset my_file_vars
    A = FV1[D=1] - FV1[D=2]
      FV1
-     FV1[d=other_file_var]
+     FV1[d=other_file_vars]
 vtree=all /d=1 a
    in default dataset my_file_vars
    A = FV1[D=1] - FV1[D=2]
      FV1
-     FV1[d=other_file_var]
+     FV1[d=other_file_vars]
 vtree=all /d=2 a
    in default dataset other_file_vars
    A = FV1[D=1] - FV1[D=2]
-     FV1[d=my_file_var]
+     FV1[d=my_file_vars]
      FV1
 ********************************
  
@@ -73355,12 +73526,12 @@ vtree=all /d=2 a
 go bn_vtree.sub noexist
 /TREE=ALL
    in default dataset my_file_vars
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
 /TREE=USER
    in default dataset my_file_vars
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
 /TREE=FILE
-   NOEXIST  (unknown variable)
+   *unknown variable: NOEXIST
 the problem is UNKNOWN VARIABLE: NOEXIST
 ************************
  
@@ -73368,12 +73539,12 @@ the problem is UNKNOWN VARIABLE: NOEXIST
 go bn_vtree.sub v[d=noexist]
 /TREE=ALL
    in default dataset my_file_vars
-   V[D=NOEXIST] ??                           <== UNKNOWN DATASET ******
+   V[D=NOEXIST] ??			<== UNKNOWN DATASET ******
 /TREE=USER
    in default dataset my_file_vars
-   V[D=NOEXIST] ??                           <== UNKNOWN DATASET ******
+   V[D=NOEXIST] ??			<== UNKNOWN DATASET ******
 /TREE=FILE
-   V[D=NOEXIST]  (unknown dataset)
+   *unknown dataset: V[D=NOEXIST]
 the problem is UNKNOWN DATASET: V[D=NOEXIST]
 ************************
  
@@ -73381,12 +73552,12 @@ the problem is UNKNOWN DATASET: V[D=NOEXIST]
 go bn_vtree.sub novar[d=nodset]
 /TREE=ALL
    in default dataset my_file_vars
-   NOVAR[D=NODSET] ??                           <== UNKNOWN DATASET ******
+   NOVAR[D=NODSET] ??			<== UNKNOWN DATASET ******
 /TREE=USER
    in default dataset my_file_vars
-   NOVAR[D=NODSET] ??                           <== UNKNOWN DATASET ******
+   NOVAR[D=NODSET] ??			<== UNKNOWN DATASET ******
 /TREE=FILE
-   NOVAR[D=NODSET]  (unknown dataset)
+   *unknown dataset: NOVAR[D=NODSET]
 the problem is UNKNOWN DATASET: NOVAR[D=NODSET]
 ************************
  
@@ -73395,13 +73566,13 @@ go bn_vtree.sub b
 /TREE=ALL
    in default dataset my_file_vars
    B = NOEXIST
-     NOEXIST ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST ??			<== UNKNOWN VARIABLE ******
 /TREE=USER
    in default dataset my_file_vars
    B = NOEXIST
-     NOEXIST ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST ??			<== UNKNOWN VARIABLE ******
 /TREE=FILE
-   NOEXIST  (unknown variable)
+   *unknown variable: NOEXIST
 the problem is UNKNOWN VARIABLE: NOEXIST
 ************************
  
@@ -73427,11 +73598,13 @@ go bn_vtree.sub fv1z
    in default dataset my_file_vars
    FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
      FV1
+       regrid to ZPTS = Z[Z=0:500:100]
        FVZ
      FVX
 /TREE=USER
    in default dataset my_file_vars
    FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
+       regrid to ZPTS = Z[Z=0:500:100]
 /TREE=FILE
    FV1[d=my_file_vars]
    FVZ[d=my_file_vars]
@@ -73447,11 +73620,13 @@ go bn_vtree.sub fv1z
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
      FV1
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]
      FVX
 /TREE=USER
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]
 /TREE=FILE
    FV1[d=my_file_vars]
@@ -73466,12 +73641,14 @@ go bn_vtree.sub fv1z
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
      FV1
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
          FVZ
      FVX
 /TREE=USER
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
 /TREE=FILE
    FV1[d=my_file_vars]
@@ -73493,7 +73670,7 @@ go bn_vtree.sub fv1z
    FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
        NOEXIST   (unknown auxiliary variable)
 /TREE=FILE
-   NOEXIST  (unknown auxiliary variable)
+   *unknown auxiliary variable: NOEXIST
    FVX[d=my_file_vars]
 the problem is UNKNOWN AUXILIARY VARIABLE: NOEXIST
 ************************
@@ -73504,17 +73681,19 @@ go bn_vtree.sub fv1z
 /TREE=ALL
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
-     NOEXIST[GZ(DEPTH)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(DEPTH)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
          FVZ
      FVX
 /TREE=USER
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
-     NOEXIST[GZ(DEPTH)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(DEPTH)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
 /TREE=FILE
-   NOEXIST[GZ(DEPTH)=ZPTS]  (unknown variable)
+   *unknown variable: NOEXIST[GZ(DEPTH)=ZPTS]
    FVZ[d=my_file_vars]
    FVX[d=my_file_vars]
 the problem is UNKNOWN VARIABLE: NOEXIST[GZ(DEPTH)=ZPTS]
@@ -73526,17 +73705,19 @@ go bn_vtree.sub fv1z
 /TREE=ALL
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
-     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        UNKNOWN_AUX   (unknown auxiliary variable)
      FVX
 /TREE=USER
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
-     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        UNKNOWN_AUX   (unknown auxiliary variable)
 /TREE=FILE
-   NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]  (unknown variable)
-   UNKNOWN_AUX  (unknown auxiliary variable)
+   *unknown variable: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
+   *unknown auxiliary variable: UNKNOWN_AUX
    FVX[d=my_file_vars]
 the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
 ************************
@@ -73547,9 +73728,9 @@ go bn_vtree.sub fv1
 /TREE=ALL
    in default dataset MY_AGG
    FV1   (aggregate variable)
-     FV1[d=my_file_var]
-     FV1[d=other_file_var]
-     FV1[d=another_file_var]
+     FV1[d=my_file_vars]
+     FV1[d=other_file_vars]
+     FV1[d=another_file_vars]
 /TREE=USER
    in default dataset MY_AGG
    FV1   (aggregate variable)
@@ -73569,16 +73750,16 @@ go bn_vtree.sub fvx
 /TREE=ALL
    in default dataset MY_UVAR_AGG
    FVX   (aggregate variable)
-     FVX[d=my_file_var]
-     FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
-       FV1[d=other_file_var]
-     FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
-       FV1[d=another_file_var]
+     FVX[d=my_file_vars]
+     FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+       FV1[d=other_file_vars]
+     FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+       FV1[d=another_file_vars]
 /TREE=USER
    in default dataset MY_UVAR_AGG
    FVX   (aggregate variable)
-     FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
-     FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+     FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+     FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
 /TREE=FILE
  
    FVX[d=my_file_vars]
@@ -73597,30 +73778,30 @@ go bn_vtree.sub p0    ! recursion
 /TREE=ALL
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = P1 + S3
            P1 =   *** WARNING: RECURSIVE DEFINITION.  See above
-           S3 ??                           <== UNKNOWN VARIABLE ******
+           S3 ??			<== UNKNOWN VARIABLE ******
 /TREE=USER
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = P1 + S3
            P1 =   *** WARNING: RECURSIVE DEFINITION.  See above
-           S3 ??                           <== UNKNOWN VARIABLE ******
+           S3 ??			<== UNKNOWN VARIABLE ******
 /TREE=FILE
-   S1  (unknown variable)
-   S2  (unknown variable)
-   S3  (unknown variable)
-   S3  (unknown variable)
+   *unknown variable: S1
+   *unknown variable: S2
+   *unknown variable: S3
+   *unknown variable: S3
 the problem is ILLEGAL RECURSIVE VARIABLES: P1
 ************************
 let p3 = s1 + S3
@@ -73628,31 +73809,31 @@ go bn_vtree.sub p0    ! ok
 /TREE=ALL
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = S1 + S3
-           S1 ??                           <== UNKNOWN VARIABLE ******
-           S3 ??                           <== UNKNOWN VARIABLE ******
+           S1 ??			<== UNKNOWN VARIABLE ******
+           S3 ??			<== UNKNOWN VARIABLE ******
 /TREE=USER
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = S1 + S3
-           S1 ??                           <== UNKNOWN VARIABLE ******
-           S3 ??                           <== UNKNOWN VARIABLE ******
+           S1 ??			<== UNKNOWN VARIABLE ******
+           S3 ??			<== UNKNOWN VARIABLE ******
 /TREE=FILE
-   S1  (unknown variable)
-   S2  (unknown variable)
-   S3  (unknown variable)
-   S1  (unknown variable)
-   S3  (unknown variable)
+   *unknown variable: S1
+   *unknown variable: S2
+   *unknown variable: S3
+   *unknown variable: S1
+   *unknown variable: S3
 the problem is UNKNOWN VARIABLE: S1
 ************************
  
@@ -73674,8 +73855,8 @@ show var/tree/d=my_uvar_agg     uv
    in default dataset MY_UVAR_AGG
    UV = FVX + FVX + FVX
      FVX   (aggregate variable)
-       FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
-       FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+       FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+       FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
 ***************************
  
 ! suppressing duplicates elsewhere in the family tree ("defined above")
@@ -73690,8 +73871,8 @@ go bn_vtree.sub v2
    V2 = V1 + B + A + A
      V1 = A  + B + B^2
        A = FV1[D=1] - FV1[D=2]
-         FV1[d=my_file_var]
-         FV1[d=other_file_var]
+         FV1[d=my_file_vars]
+         FV1[d=other_file_vars]
        B = C
          C = 1
      B =  (defined above)
@@ -73715,8 +73896,8 @@ go bn_vtree.sub v3
    in default dataset MY_UVAR_AGG
    V3 = A + V1 + B + A + A
      A = FV1[D=1] - FV1[D=2]
-       FV1[d=my_file_var]
-       FV1[d=other_file_var]
+       FV1[d=my_file_vars]
+       FV1[d=other_file_vars]
      V1 = A  + B + B^2
        A =  (defined above)
        B = C
@@ -73750,26 +73931,26 @@ go bn_vtree.sub "a, b, c, noexist, d, e, fvx[d=my_file_vars]"
    in default dataset MY_UVAR_AGG
    D = B + C
      B = FV1[D=MY_FILE_VARS]
-       FV1[d=my_file_var]
+       FV1[d=my_file_vars]
      C = 1
    A = F
-     F ??                           <== UNKNOWN VARIABLE ******
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
+     F ??			<== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
    E = 1
-   FVX[d=my_file_var]
+   FVX[d=my_file_vars]
 /TREE=USER
    in default dataset MY_UVAR_AGG
    D = B + C
      B = FV1[D=MY_FILE_VARS]
      C = 1
    A = F
-     F ??                           <== UNKNOWN VARIABLE ******
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
+     F ??			<== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
    E = 1
 /TREE=FILE
-   F  (unknown variable)
+   *unknown variable: F
    FV1[d=my_file_vars]
-   NOEXIST  (unknown variable)
+   *unknown variable: NOEXIST
    FVX[d=my_file_vars]
 the problem is UNKNOWN VARIABLE: F
 ************************
@@ -73784,14 +73965,16 @@ the problem is UNKNOWN VARIABLE: F
 /TREE=ALL
    in default dataset MY_UVAR_AGG
    B = A[G=NOEXIST]
-     A[G=NOEXIST]   (unknown grid)
+     A = I[I=1:5]
+       regrid to NOEXIST ??		<== UNKNOWN GRID ******
 /TREE=USER
    in default dataset MY_UVAR_AGG
    B = A[G=NOEXIST]
-     A[G=NOEXIST]   (unknown grid)
+     A = I[I=1:5]
+       regrid to NOEXIST ??		<== UNKNOWN GRID ******
 /TREE=FILE
-   A[G=NOEXIST]  (unknown grid)
-the problem is UNKNOWN GRID: A[G=NOEXIST]
+   *unknown grid: NOEXIST
+the problem is UNKNOWN GRID: NOEXIST
 ************************
   list b
  
@@ -73807,7 +73990,7 @@ the problem is UNKNOWN GRID: A[G=NOEXIST]
    C = A[X=45S]
      A[X=45S]   *** WARNING: ERROR IN DEFINITION
 /TREE=FILE
-   A[X=45S]   *** WARNING: SYNTAX ERROR
+      *WARNING: syntax error: A[X=45S]
 the problem is ERROR IN EXPRESSION: A[X=45S]
 ************************
   list c
@@ -73824,7 +74007,7 @@ the problem is ERROR IN EXPRESSION: A[X=45S]
    D = A[I=1,,J=2]
      A[I=1,,J=2]   *** WARNING: ERROR IN DEFINITION
 /TREE=FILE
-   A[I=1,,J=2]   *** WARNING: SYNTAX ERROR
+      *WARNING: syntax error: A[I=1,,J=2]
 the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
 ************************
   list d
@@ -73841,7 +74024,7 @@ the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
    E = A[P=1]
      A[P=1]   *** WARNING: ERROR IN DEFINITION
 /TREE=FILE
-   A[P=1]   *** WARNING: SYNTAX ERROR
+      *WARNING: syntax error: A[P=1]
 the problem is ERROR IN EXPRESSION: A[P=1]
 ************************
   list e
@@ -73873,8 +74056,530 @@ let a = ..history[d=1]
 show var/tree a
    in default dataset MY_UVAR_AGG
    A = ..HISTORY[D=1]
+ 
+! *****
+! 12/14 addition to test regridding dependencies
+go bn_vtree_regrid
+! bn_vtree_regrid.jnl
+! exercise 12/14 enhancements to display regrid target on a separate line
+! updated 1/26/15 to exercise multiple regrid target outputs
+! updated 2/23/15 to report target of regrid even when aux regridding occurs
+ 
+! case 1: target grid known,   regridded variable known
+let myvar = 1           ! var to be regridded is known
+let gvar = x[x=1:5]    ! target regridding var is known
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree a
+   in default dataset MY_UVAR_AGG
+   A = MYVAR[G=GVAR] + UNVAR + KVAR
+     MYVAR = 1
+       regrid to GVAR = X[X=1:5]
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 2: target grid known,   regridded variable unknown
+canc var/all
+! myvar unknown
+let gvar = x[x=1:5]    ! target regridding var is known
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree a
+   in default dataset MY_UVAR_AGG
+   A = MYVAR[G=GVAR] + UNVAR + KVAR
+     MYVAR[G=GVAR] ??			<== UNKNOWN VARIABLE ******
+       regrid to GVAR = X[X=1:5]
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 3: target grid unknown, regridded variable known
+canc var/all
+let myvar = 1           ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree a
+   in default dataset MY_UVAR_AGG
+   A = MYVAR[G=GVAR] + UNVAR + KVAR
+     MYVAR = 1
+       regrid to GVAR ??		<== UNKNOWN GRID ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 4: target grid unknown, regridded variable unknown
+canc var/all
+! myvar unknown
+! gvar  unknown
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree a
+   in default dataset MY_UVAR_AGG
+   A = MYVAR[G=GVAR] + UNVAR + KVAR
+     MYVAR[G=GVAR] ??			<== UNKNOWN VARIABLE ******
+       regrid to GVAR ??		<== UNKNOWN GRID ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! **************************************
+! same tests but now with a dataset named with the target grid
+use coads_climatology
+use levitus_climatology   ! default to d=2
+ 
+! case 1: target grid known,   regridded variable known
+canc var/all
+let myvar = 1           ! var to be regridded is known
+let a = myvar[g=sst[d=1]] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree=all a
+   in default dataset levitus_climatology
+   A = MYVAR[G=SST[D=1]] + UNVAR + KVAR
+     MYVAR = 1
+       regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 2: target grid known,   regridded variable unknown
+canc var/all
+! myvar unknown
+let a = myvar[g=sst[d=1]] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree=all a
+   in default dataset levitus_climatology
+   A = MYVAR[G=SST[D=1]] + UNVAR + KVAR
+     MYVAR[G=SST[D=1]] ??			<== UNKNOWN VARIABLE ******
+       regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 3a: target grid unknown, regridded variable known
+canc var/all
+let myvar = 1           ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=gvar[d=1]] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree=all a
+   in default dataset levitus_climatology
+   A = MYVAR[G=GVAR[D=1]] + UNVAR + KVAR
+     MYVAR = 1
+       regrid to GVAR[D=1] ??		<== UNKNOWN GRID ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 3b: target grid unknown cuz of dataset, regridded variable known
+canc var/all
+let myvar = 1           ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=sst[d=bad_dset]] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree=all a
+   in default dataset levitus_climatology
+   A = MYVAR[G=SST[D=BAD_DSET]] + UNVAR + KVAR
+     MYVAR[G=SST[D=BAD_DSET]] ??			<== UNKNOWN DATASET ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! case 4: target grid unknown, regridded variable unknown
+canc var/all
+! myvar unknown
+! gvar  unknown
+let a = myvar[g=gvar[d=1]] + unvar + kvar
+let kvar = 1  ! known var
+! unvar is always unknown
+sho var/tree=all a
+   in default dataset levitus_climatology
+   A = MYVAR[G=GVAR[D=1]] + UNVAR + KVAR
+     MYVAR[G=GVAR[D=1]] ??			<== UNKNOWN VARIABLE ******
+       regrid to GVAR[D=1] ??		<== UNKNOWN GRID ******
+     UNVAR ??			<== UNKNOWN VARIABLE ******
+     KVAR = 1
+ 
+! *******************
+! file variable listing, only
+canc var/all
+let myvar = 1
+let fvar = airt[d=1]
+let kvar = 1  ! known var
+* /TREE=FILE with know regrid target
+let a = myvar[g=sst[d=1]] + fvar + kvar
+sho var/tree=file a
+   *unknown grid: SST[D=1]
+   *unknown variable: AIRT[D=1]
+ 
+* /TREE=FILE with unknow regrid target
+let a = myvar[g=unknown] + fvar + kvar
+sho var/tree=file a
+   *unknown grid: UNKNOWN
+   *unknown variable: AIRT[D=1]
+ 
+! ********************
+! regridding to multiple targets
+ 
+define axis/x=140e:160e:1 x1
+define axis/y=20s:20n:1   y1
+LET myvar = X[gx=x1] + Y[gy=y1]
+ 
+define axis/y=5s:5n:.5 yp5
+ 
+go bn_vtree.sub myvar[g=temp]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+myvar[g=temp] is ready and AVAILABLE
+************************
+ 
+! second target *is* a named variable
+go bn_vtree.sub myvar[g=temp,gy=sst[d=1]]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: SST[D=1]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+go bn_vtree.sub myvar[gx=temp,gy=sst[d=1]]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: SST[D=1]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+go bn_vtree.sub myvar[gy=sst[d=1],gx=temp]  ! reverse order, only
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+     regrid to TEMP
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   *unknown grid: SST[D=1]
+   regrid to TEMP[d=levitus_climatology]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+ 
+! second target is not a named variable
+go bn_vtree.sub myvar[g=temp,gy=yp5]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+myvar[g=temp,gy=yp5] is ready and AVAILABLE
+************************
+go bn_vtree.sub myvar[gx=temp,gy=yp5]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+myvar[gx=temp,gy=yp5] is ready and AVAILABLE
+************************
+go bn_vtree.sub myvar[g=temp,y=5s:5n:.5]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+myvar[g=temp,y=5s:5n:.5] is ready and AVAILABLE
+************************
+go bn_vtree.sub myvar[g=sst[d=1],y=5s:5n:.5]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   *unknown grid: SST[D=1]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+ 
+! multiple targets, including unknown variables
+go bn_vtree.sub myvar[g=temp,gy=mybad]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=mybad,gy=temp]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+     regrid to TEMP
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   *unknown grid: MYBAD
+   regrid to TEMP[d=levitus_climatology]
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[gy=temp,g=mybad[d=1]]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD[D=1]
+the problem is UNKNOWN GRID: MYBAD[D=1]
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad[d=1],gy=mybad2]! distinct unknown targets
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
+     regrid to MYBAD2 ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
+     regrid to MYBAD2 ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD[D=1]
+   *unknown grid: MYBAD2
+the problem is UNKNOWN GRID: MYBAD[D=1]
+************************
+go bn_vtree.sub myvar[gx=temp,gy=temp,g=mybad[d=1]]  ! dup known targets
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD[D=1]
+the problem is UNKNOWN GRID: MYBAD[D=1]
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad,gy=mybad]      ! dup unknown suppressed
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad[d=2],gy=mybad] ! dup unknown missed
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD[D=2] ??		<== UNKNOWN GRID ******
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD[D=2] ??		<== UNKNOWN GRID ******
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD[D=2]
+   *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD[D=2]
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad,gy='MYBAD']    ! dup unknown missed
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to TEMP
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+     regrid to 'MYBAD' ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+     regrid to 'MYBAD' ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   regrid to TEMP[d=levitus_climatology]
+   *unknown grid: MYBAD
+   *unknown grid: 'MYBAD'
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=myvar,gy=mybad]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[gy=yp5,g=mybad]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=mybad,y=5s:5n:.5]
+/TREE=ALL
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=USER
+   in default dataset levitus_climatology
+   MYVAR = X[GX=X1] + Y[GY=Y1]
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
+/TREE=FILE
+   *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+ 
+! 2/15 additions -- auxiliary variable regridding
+USE levitus_climatology
+LET myzvar = Z[Z=100:500:100]
+DEFINE AXIS/z/units=meters zax = myzvar
+SET REGION/i=101:102/j=41:42
+ 
+LET/D=levitus_climatology depth = z[g=temp]+ 0*temp[k=1]
+ 
+! valid aux var and target variable
+LET tempz = temp[gz(depth)=myzvar]
+vtree=all tempz
+   in default dataset levitus_climatology
+   TEMPZ = TEMP[GZ(DEPTH)=MYZVAR]
+     TEMP
+       regrid to MYZVAR = Z[Z=100:500:100]
+       DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+         TEMP
+ 
+! valid aux var.  Target is axis name
+LET tempz1 = temp[gz(depth)=zax]
+vtree=all tempz1
+   in default dataset levitus_climatology
+   TEMPZ1 = TEMP[GZ(DEPTH)=ZAX]
+     TEMP
+       DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+         TEMP
+ 
+! valid aux var.  Target is unknown
+LET tempz2 = temp[gz(depth)=unknown_target]
+vtree=all tempz2
+   in default dataset levitus_climatology
+   TEMPZ2 = TEMP[GZ(DEPTH)=UNKNOWN_TARGET]
+     TEMP
+       regrid to UNKNOWN_TARGET ??		<== UNKNOWN GRID ******
+       DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+         TEMP
+ 
+! --- unknown aux var, valid target ---
+! When an unknown auxiliary variable error occurs it suppresses
+! the reporting of both the variable being regridded and the regrid target
+! The underlying issue is that GET_VAR_CONTEXT (called from is_dependencies.F)
+! can return only a single error status
+! If it contains ferr_unknown_auxvar, then the success or failure of other
+! parts of the context processing are unknown.
+! One could kludge the code to find a way around this, but the violence
+! required is not justified in order to fix this small loss in error reporting.
+LET tempz3 = temp[gz(unknown_aux)=myzvar]
+vtree=all tempz3
+   in default dataset levitus_climatology
+   TEMPZ3 = TEMP[GZ(UNKNOWN_AUX)=MYZVAR]
+       UNKNOWN_AUX   (unknown auxiliary variable)
+ 
+! a syntax error leads to a similar behavior
+LET tempz3a = temp[gz(unknown_aux)=myzvar,SYNTAX_ERROR]
+vtree=all tempz3a
+   in default dataset levitus_climatology
+   TEMPZ3A = TEMP[GZ(UNKNOWN_AUX)=MYZVAR,SYNTAX_ERROR]
+     TEMP[GZ(UNKNOWN_AUX)=MYZVAR,SYNTAX_ERROR]   *** WARNING: ERROR IN DEFINITION
+ 
+! similar behavior here:  the unknown_target does not get reported
+LET tempz4 = temp[gz(unknown_aux)=unknown_target]
+vtree=all tempz4
+   in default dataset levitus_climatology
+   TEMPZ4 = TEMP[GZ(UNKNOWN_AUX)=UNKNOWN_TARGET]
+       UNKNOWN_AUX   (unknown auxiliary variable)
+ 
+ 
 *** Running test: bn686_bug_fixes.jnl
-! bn686_bug_fixes
+[?1034h! bn686_bug_fixes
 ! test various fixes that went into version 6.86
 ! 11/2013 ACM
  
@@ -74208,7 +74913,7 @@ LEV_NUM = "4"
 LEV_DEL = "5"
  
 *** Running test: bn_long_symnames.jnl
-! bn_long_symnames.jnl
+[?1034h! bn_long_symnames.jnl
 ! *ACM* 11/22/2013
 ! Allow longer names for Ferret symbols
  
@@ -74245,7 +74950,7 @@ show symbol q*
 Q23456789012345678901234567890Q23456789012345678901234567890Q23456789012345678901234567890Q23456789012345678901234567890 = "5"
 Q23456789012345678901234567890Q23456789012345678901234567890Q23456789012345678901234567890Q23456789012345678901234567XXX = "6"
 *** Running test: bn_strdim.jnl
-! bn_strdim.jnl
+[?1034h! bn_strdim.jnl
 ! Keep the string dimension name and size from the intput file
 ! on writing the string variable.
  
@@ -74270,7 +74975,7 @@ variables:
 		LABELS:history = "From http://dunkel.pmel.noaa.gov:8930/thredds/dodsC/data/atmos3.ncml" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74293,12 +74998,12 @@ variables:
 		STRVAR:long_name = "mystrings" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
 *** Running test: bn_single_colorlev.jnl
-! 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
  
@@ -74315,7 +75020,7 @@ shade/lev=(25)/L=1 INT(sst)
 fill/lev=(20,30,10)/L=1 sst
  
 *** Running test: bn69_bug_fixes.jnl
-! bn69_bug_fixes
+[?1034h! bn69_bug_fixes
 ! test various fixes that went into version 6.9
 ! 02/2014 ACM
  
@@ -74437,7 +75142,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 : 03-JAN-2000 00:00:00 JULIAN"
+LAB2 = "FORECAST : 2000 JULIAN"
  
 GO bn_reset
 cancel mode verify
@@ -74513,7 +75218,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74543,7 +75248,7 @@ variables:
 		A:history = "From a" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74564,7 +75269,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74585,7 +75290,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74607,7 +75312,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74778,11 +75483,11 @@ show dat
  
  
 ! another error, new name is a user-var
-yes? set var/name=diff w
+set var/name=diff w
  
 SET MODE/LAST ignore
 *** Running test: bn_bad_axis_bounds.jnl
-! bn_bad_axis_bounds
+[?1034h! bn_bad_axis_bounds
 ! Ticket 2146 If there are invalid axis bounds
 ! make them into a dependent variable.
  
@@ -74797,7 +75502,7 @@ show data
  TEMP2    TEMP[GT=MONTH_IRREG at ASN]         1:1       1:1       1:1       1:12      ...       ...
  
 *** Running test: bn_enter_exit_GO.jnl
-! GO bn_enter_exit_GO
+[?1034h! GO bn_enter_exit_GO
 ! Lines to allow trace of GO scripts:
 !
 ! ! Enter_GO and ! Exit_GO lines written to the journal file
@@ -74830,7 +75535,7 @@ GO bn_short.sub tvar ave
 ! short script extracted from bn_negative_t.sub for bn_enter_exit_GO
  
 LIST/nohead/norow $1[t=-5:9@$2]	! neg/pos t endpoints
- !-> LIST/nohead/norow tvar[t=-5:9 at ave]	! neg/pos t endpoints
+ !-> LIST/nohead/norow tvar[t=-5:9 at ave]
    2.000
  
 ! Exit_GO
@@ -74864,7 +75569,7 @@ plot/i=1:15/color=red/thick i
  
 cancel redirect
 *** Running test: bn_stddev.jnl
-! bn_std.jnl
+[?1034h! bn_std.jnl
 ! New StdDev transform
  
 use coads_climatology
@@ -74919,13 +75624,13 @@ list/y=3/l=1 temp[x=@std]
 list/y=3/l=1 temp[z=@std,x=@std]
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
-             LONGITUDE: 140W to 122W (standard deviation)
+             LONGITUDE: 140W to 122W (XZ stddev)
              LATITUDE : 2.8N
-             DEPTH (m): 0 to 100 (standard deviation)
+             DEPTH (m): 0 to 100 (XZ stddev)
              TIME     : 17-AUG-1982 12:00
-          0.1895
+          0.9487
 *** Running test: bn_set_axis_name.jnl
-! bn_set_axis_name.jnl
+[?1034h! bn_set_axis_name.jnl
 ! ticket 2160 Implementing new qualifier SET AXIS/NAME
 ! 3/2014
 !
@@ -75016,7 +75721,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        39   T       FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14
+ .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -75032,7 +75737,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        39   T       FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14
+ .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -75048,7 +75753,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        39   T       FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14
+ .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -75074,7 +75779,7 @@ set axis/name=.fr x_in_meters
  
 set mode/last ignore
 *** Running test: bn691_bug_fixes.jnl
-! bn691_bug_fixes
+[?1034h! bn691_bug_fixes
 ! test various fixes that went into version 6.91
 ! 04/2014 ACM
  
@@ -75878,10 +76583,12 @@ GO bn_vtree.sub c
 /TREE=ALL
    C = B2[GT=A]
      B2 = A
+       regrid to A = T[GT=1:2:1]
        A = T[GT=1:2:1]
 /TREE=USER
    C = B2[GT=A]
      B2 = A
+       regrid to A = T[GT=1:2:1]
        A = T[GT=1:2:1]
 /TREE=FILE
 c is ready and AVAILABLE
@@ -75919,6 +76626,8 @@ cancel mode verify
 GO err69_isready_bugs
 ! err69_isready_bugs.jnl
 ! Tickets 2201 and 2215
+! updated error script 12/14 *sh* - to ensure that bench log file
+! has verification of this problem and its fix, as well as the bench error file
  
 ! ticket 2201: isready operation meant we couldn't cancel the second axis
  
@@ -75940,6 +76649,15 @@ can axis xax_isready_1
 can var b
 can axis xax_isready_2
  
+! 12/14 additions:
+show grid/dynamic             ! look for "err: grid over-allocated" messages
+No dynamic grids
+    no implicit grids
+No dynamic axes
+    no implicit axes
+show axis xax_isready_1, xax_isready_2   ! did they both get canceled?
+ name       axis              # pts   start                end
+ 
 ! Ticket 2215, only with an unreleased Ferret; the first fix to 2201.
  
 let a = x[gx=1:3:1]
@@ -75953,8 +76671,21 @@ say `f,r=isready`
 say `f,r=unit`
  !-> MESSAGE/CONTINUE m
 m
+ 
+GO bn_reset
+cancel mode verify
+GO err691_substring_arg
+! err693_substring_arg
+! ACM 12/10/2014
+! ticket 2210. Argument checking was not done for the SUBSTRING function
+ 
+set mode ignore
+list substring("hello",1,-2)
+list substring("hello",1,-3)
+ 
+set mode/last ignore
 *** Running test: bn_append_dsg.jnl
-! 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.
 ! Ferret needs to detect the dimension-only axis and keep it as-is. Do not upcase,
@@ -76028,10 +76759,10 @@ 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.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 }
 *** Running test: bn_global_atts.jnl
- ! NOAA/PMEL TMAP
+[?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
@@ -76118,7 +76849,7 @@ variables:
 		LON360:history = "added to test_save_dsg.nc" ;
 
 // global attributes:
-		:history = "CruiseDsgNcFile 1.0FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "CruiseDsgNcFile 1.0FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:featureType = "Trajectory" ;
 		:Conventions = "Some other conventionsCF-1.6" ;
 		:geospatial_lon_min = -92.77 ;
@@ -76145,13 +76876,13 @@ can dat/all; use anew_global.nc
 sh att .
      attributes for dataset: ./anew_global.nc
  ..history = Subset of etopo20,
- FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14 
+ FERRET V6.96 (PyFerret 1.2) 19-Nov-15 
  ..Conventions = Existing conventions note, , CF-1.6 
  
  
  
 *** Running test: bn_conventions_history.jnl
-! bn_conventions_history.jnl
+[?1034h! bn_conventions_history.jnl
 ! ticket 2169:
 ! Write conventions CF-1.6
 ! When appending to the Conventions and history
@@ -76174,10 +76905,10 @@ can dat/all; use conventions_history
 ! The new attibutes
 sh att .
      attributes for dataset: ./conventions_history.nc
- ..history = The history of the fileFERRET V6.93 (PyFerret 1.1.0)  5-Nov-14 
+ ..history = The history of the fileFERRET V6.96 (PyFerret 1.2) 19-Nov-15 
  ..Conventions = Conventions for variables named V2CF-1.6 
 *** Running test: bn_center_key_labels.jnl
-! bn_center_key_labels
+[?1034h! bn_center_key_labels
 !  6/2014
 !
 ! Arguments to /KEY qualifier on color plots
@@ -76222,7 +76953,7 @@ can data coads_climatology
 shade temp
  
 *** Running test: bn_wgt_transform.jnl
-! bn_wgt_transform.jnl  test new @WGT transform,
+[?1034h! bn_wgt_transform.jnl  test new @WGT transform,
 ! returns weights used in the equiv. average or integral transform
 ! ACM 7/2014
  
@@ -76332,7 +77063,7 @@ list/y=1.5/x=130w/z=8:43.5/t=1-sep-1982 temp[z=@wgt]
  35    / 4:  10.00
  45    / 5:   3.50
 *** Running test: bn_show_outfile.jnl
-! bn_show_outfile
+[?1034h! bn_show_outfile
 ! Adding tests for SHOW/OUTFILE=
 ! Previously only tests when SHOW/XML/OUTFILE=
 !  Bugs in SHOW/OUTFILE reported in ticket 2194
@@ -76570,14 +77301,14 @@ a is ready and AVAILABLE
    in default dataset my_file_vars
    A = FV1[D=1] - FV1[D=2]
      FV1
-     FV1[d=other_file_var]
+     FV1[d=other_file_vars]
    in default dataset my_file_vars
    A = FV1[D=1] - FV1[D=2]
      FV1
-     FV1[d=other_file_var]
+     FV1[d=other_file_vars]
    in default dataset other_file_vars
    A = FV1[D=1] - FV1[D=2]
-     FV1[d=my_file_var]
+     FV1[d=my_file_vars]
      FV1
 ********************************
 /TREE=ALL
@@ -76586,30 +77317,30 @@ a is ready and AVAILABLE
 the problem is UNKNOWN VARIABLE: NOEXIST
 ************************
    in default dataset my_file_vars
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
    in default dataset my_file_vars
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
-   NOEXIST  (unknown variable)
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
+   *unknown variable: NOEXIST
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
 the problem is UNKNOWN DATASET: V[D=NOEXIST]
 ************************
    in default dataset my_file_vars
-   V[D=NOEXIST] ??                           <== UNKNOWN DATASET ******
+   V[D=NOEXIST] ??			<== UNKNOWN DATASET ******
    in default dataset my_file_vars
-   V[D=NOEXIST] ??                           <== UNKNOWN DATASET ******
-   V[D=NOEXIST]  (unknown dataset)
+   V[D=NOEXIST] ??			<== UNKNOWN DATASET ******
+   *unknown dataset: V[D=NOEXIST]
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
 the problem is UNKNOWN DATASET: NOVAR[D=NODSET]
 ************************
    in default dataset my_file_vars
-   NOVAR[D=NODSET] ??                           <== UNKNOWN DATASET ******
+   NOVAR[D=NODSET] ??			<== UNKNOWN DATASET ******
    in default dataset my_file_vars
-   NOVAR[D=NODSET] ??                           <== UNKNOWN DATASET ******
-   NOVAR[D=NODSET]  (unknown dataset)
+   NOVAR[D=NODSET] ??			<== UNKNOWN DATASET ******
+   *unknown dataset: NOVAR[D=NODSET]
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
@@ -76617,11 +77348,11 @@ the problem is UNKNOWN VARIABLE: NOEXIST
 ************************
    in default dataset my_file_vars
    B = NOEXIST
-     NOEXIST ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST ??			<== UNKNOWN VARIABLE ******
    in default dataset my_file_vars
    B = NOEXIST
-     NOEXIST ??                           <== UNKNOWN VARIABLE ******
-   NOEXIST  (unknown variable)
+     NOEXIST ??			<== UNKNOWN VARIABLE ******
+   *unknown variable: NOEXIST
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
@@ -76640,10 +77371,12 @@ fv1z is ready and AVAILABLE
    in default dataset my_file_vars
    FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
      FV1
+       regrid to ZPTS = Z[Z=0:500:100]
        FVZ
      FVX
    in default dataset my_file_vars
    FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
+       regrid to ZPTS = Z[Z=0:500:100]
    FV1[d=my_file_vars]
    FVZ[d=my_file_vars]
    FVX[d=my_file_vars]
@@ -76655,10 +77388,12 @@ fv1z is ready and AVAILABLE
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
      FV1
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]
      FVX
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]
    FV1[d=my_file_vars]
    FVX[d=my_file_vars]
@@ -76670,11 +77405,13 @@ fv1z is ready and AVAILABLE
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
      FV1
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
          FVZ
      FVX
    in default dataset my_file_vars
    FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
    FV1[d=my_file_vars]
    FVZ[d=my_file_vars]
@@ -76691,7 +77428,7 @@ the problem is UNKNOWN AUXILIARY VARIABLE: NOEXIST
    in default dataset my_file_vars
    FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
        NOEXIST   (unknown auxiliary variable)
-   NOEXIST  (unknown auxiliary variable)
+   *unknown auxiliary variable: NOEXIST
    FVX[d=my_file_vars]
 /TREE=ALL
 /TREE=USER
@@ -76700,15 +77437,17 @@ the problem is UNKNOWN VARIABLE: NOEXIST[GZ(DEPTH)=ZPTS]
 ************************
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
-     NOEXIST[GZ(DEPTH)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(DEPTH)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
          FVZ
      FVX
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
-     NOEXIST[GZ(DEPTH)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(DEPTH)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
-   NOEXIST[GZ(DEPTH)=ZPTS]  (unknown variable)
+   *unknown variable: NOEXIST[GZ(DEPTH)=ZPTS]
    FVZ[d=my_file_vars]
    FVX[d=my_file_vars]
 /TREE=ALL
@@ -76718,15 +77457,17 @@ the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
 ************************
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
-     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        UNKNOWN_AUX   (unknown auxiliary variable)
      FVX
    in default dataset my_file_vars
    FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
-     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??                           <== UNKNOWN VARIABLE ******
+     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??			<== UNKNOWN VARIABLE ******
+       regrid to ZPTS = Z[Z=0:500:100]
        UNKNOWN_AUX   (unknown auxiliary variable)
-   NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]  (unknown variable)
-   UNKNOWN_AUX  (unknown auxiliary variable)
+   *unknown variable: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
+   *unknown auxiliary variable: UNKNOWN_AUX
    FVX[d=my_file_vars]
 /TREE=ALL
 /TREE=USER
@@ -76735,9 +77476,9 @@ fv1 is ready and AVAILABLE
 ************************
    in default dataset MY_AGG
    FV1   (aggregate variable)
-     FV1[d=my_file_var]
-     FV1[d=other_file_var]
-     FV1[d=another_file_var]
+     FV1[d=my_file_vars]
+     FV1[d=other_file_vars]
+     FV1[d=another_file_vars]
    in default dataset MY_AGG
    FV1   (aggregate variable)
  
@@ -76751,15 +77492,15 @@ fvx is ready and AVAILABLE
 ************************
    in default dataset MY_UVAR_AGG
    FVX   (aggregate variable)
-     FVX[d=my_file_var]
-     FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
-       FV1[d=other_file_var]
-     FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
-       FV1[d=another_file_var]
+     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
    FVX   (aggregate variable)
-     FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
-     FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+     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]
  
    FVX[d=my_file_vars]
    FV1[d=other_file_vars]
@@ -76771,28 +77512,28 @@ the problem is ILLEGAL RECURSIVE VARIABLES: P1
 ************************
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = P1 + S3
            P1 =   *** WARNING: RECURSIVE DEFINITION.  See above
-           S3 ??                           <== UNKNOWN VARIABLE ******
+           S3 ??			<== UNKNOWN VARIABLE ******
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = P1 + S3
            P1 =   *** WARNING: RECURSIVE DEFINITION.  See above
-           S3 ??                           <== UNKNOWN VARIABLE ******
-   S1  (unknown variable)
-   S2  (unknown variable)
-   S3  (unknown variable)
-   S3  (unknown variable)
+           S3 ??			<== UNKNOWN VARIABLE ******
+   *unknown variable: S1
+   *unknown variable: S2
+   *unknown variable: S3
+   *unknown variable: S3
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
@@ -76800,29 +77541,29 @@ the problem is UNKNOWN VARIABLE: S1
 ************************
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = S1 + S3
-           S1 ??                           <== UNKNOWN VARIABLE ******
-           S3 ??                           <== UNKNOWN VARIABLE ******
+           S1 ??			<== UNKNOWN VARIABLE ******
+           S3 ??			<== UNKNOWN VARIABLE ******
    in default dataset MY_UVAR_AGG
    P0 = S1 + P1
-     S1 ??                           <== UNKNOWN VARIABLE ******
+     S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
-       S2 ??                           <== UNKNOWN VARIABLE ******
+       S2 ??			<== UNKNOWN VARIABLE ******
        P2 = S3 + P3
-         S3 ??                           <== UNKNOWN VARIABLE ******
+         S3 ??			<== UNKNOWN VARIABLE ******
          P3 = S1 + S3
-           S1 ??                           <== UNKNOWN VARIABLE ******
-           S3 ??                           <== UNKNOWN VARIABLE ******
-   S1  (unknown variable)
-   S2  (unknown variable)
-   S3  (unknown variable)
-   S1  (unknown variable)
-   S3  (unknown variable)
+           S1 ??			<== UNKNOWN VARIABLE ******
+           S3 ??			<== UNKNOWN VARIABLE ******
+   *unknown variable: S1
+   *unknown variable: S2
+   *unknown variable: S3
+   *unknown variable: S1
+   *unknown variable: S3
    in default dataset my_file_vars
    FV = FV1 + FV1 + FV1
    in default dataset MY_UVAR_AGG
@@ -76834,8 +77575,8 @@ the problem is UNKNOWN VARIABLE: S1
    in default dataset MY_UVAR_AGG
    UV = FVX + FVX + FVX
      FVX   (aggregate variable)
-       FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
-       FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+       FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+       FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
 ***************************
 /TREE=ALL
 /TREE=USER
@@ -76846,8 +77587,8 @@ v2 is ready and AVAILABLE
    V2 = V1 + B + A + A
      V1 = A  + B + B^2
        A = FV1[D=1] - FV1[D=2]
-         FV1[d=my_file_var]
-         FV1[d=other_file_var]
+         FV1[d=my_file_vars]
+         FV1[d=other_file_vars]
        B = C
          C = 1
      B =  (defined above)
@@ -76870,8 +77611,8 @@ v3 is ready and AVAILABLE
    in default dataset MY_UVAR_AGG
    V3 = A + V1 + B + A + A
      A = FV1[D=1] - FV1[D=2]
-       FV1[d=my_file_var]
-       FV1[d=other_file_var]
+       FV1[d=my_file_vars]
+       FV1[d=other_file_vars]
      V1 = A  + B + B^2
        A =  (defined above)
        B = C
@@ -76895,37 +77636,39 @@ the problem is UNKNOWN VARIABLE: F
    in default dataset MY_UVAR_AGG
    D = B + C
      B = FV1[D=MY_FILE_VARS]
-       FV1[d=my_file_var]
+       FV1[d=my_file_vars]
      C = 1
    A = F
-     F ??                           <== UNKNOWN VARIABLE ******
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
+     F ??			<== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
    E = 1
-   FVX[d=my_file_var]
+   FVX[d=my_file_vars]
    in default dataset MY_UVAR_AGG
    D = B + C
      B = FV1[D=MY_FILE_VARS]
      C = 1
    A = F
-     F ??                           <== UNKNOWN VARIABLE ******
-   NOEXIST ??                           <== UNKNOWN VARIABLE ******
+     F ??			<== UNKNOWN VARIABLE ******
+   NOEXIST ??			<== UNKNOWN VARIABLE ******
    E = 1
-   F  (unknown variable)
+   *unknown variable: F
    FV1[d=my_file_vars]
-   NOEXIST  (unknown variable)
+   *unknown variable: NOEXIST
    FVX[d=my_file_vars]
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
-the problem is UNKNOWN GRID: A[G=NOEXIST]
+the problem is UNKNOWN GRID: NOEXIST
 ************************
    in default dataset MY_UVAR_AGG
    B = A[G=NOEXIST]
-     A[G=NOEXIST]   (unknown grid)
+     A = I[I=1:5]
+       regrid to NOEXIST ??		<== UNKNOWN GRID ******
    in default dataset MY_UVAR_AGG
    B = A[G=NOEXIST]
-     A[G=NOEXIST]   (unknown grid)
-   A[G=NOEXIST]  (unknown grid)
+     A = I[I=1:5]
+       regrid to NOEXIST ??		<== UNKNOWN GRID ******
+   *unknown grid: NOEXIST
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
@@ -76937,7 +77680,7 @@ the problem is ERROR IN EXPRESSION: A[X=45S]
    in default dataset MY_UVAR_AGG
    C = A[X=45S]
      A[X=45S]   *** WARNING: ERROR IN DEFINITION
-   A[X=45S]   *** WARNING: SYNTAX ERROR
+      *WARNING: syntax error: A[X=45S]
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
@@ -76949,7 +77692,7 @@ the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
    in default dataset MY_UVAR_AGG
    D = A[I=1,,J=2]
      A[I=1,,J=2]   *** WARNING: ERROR IN DEFINITION
-   A[I=1,,J=2]   *** WARNING: SYNTAX ERROR
+      *WARNING: syntax error: A[I=1,,J=2]
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
@@ -76961,7 +77704,7 @@ the problem is ERROR IN EXPRESSION: A[P=1]
    in default dataset MY_UVAR_AGG
    E = A[P=1]
      A[P=1]   *** WARNING: ERROR IN DEFINITION
-   A[P=1]   *** WARNING: SYNTAX ERROR
+      *WARNING: syntax error: A[P=1]
 /TREE=ALL
 /TREE=USER
 /TREE=FILE
@@ -76980,7 +77723,7 @@ f is ready and AVAILABLE
  
  
 *** Running test: bn_date1900_array.jnl
-! 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.
  
@@ -77029,7 +77772,7 @@ list t[gt=taxis]
  30-JUL-2002 00 / 3:  37465.
  
 *** Running test: bn_spawn_size.jnl
-! bn_spawn_size.jnl
+[?1034h! bn_spawn_size.jnl
 ! Return the size of the result of a spawn, not
 ! the nominalabstract axis length.
  
@@ -77054,8 +77797,8 @@ say `files,return=isize`
 ! Evaluate size without loading the variable first
 let datfiles = {spawn:"ls *.dat"}
 say `datfiles,return=isize`
- !-> MESSAGE/CONTINUE 36
-36
+ !-> MESSAGE/CONTINUE 37
+37
  
 ! expression syntax
 say `{spawn:"ls xml*.jnl"},return=isize`
@@ -77073,8 +77816,8 @@ list {spawn:"ls xml*.jnl"}
  
 LET filesets = xcat({spawn:"ls *.nc"}, {spawn:"ls *.jnl"})
 say `filesets, return=isize`
- !-> MESSAGE/CONTINUE 827
-827
+ !-> MESSAGE/CONTINUE 900
+900
  
 let files = {spawn:"ls *cdf*.jnl"}
 let name_len = strindex(files, ".sub")
@@ -77082,7 +77825,7 @@ say `name_len, return=isize`
  !-> MESSAGE/CONTINUE 8
 8
 *** Running test: bn_polygon_log.jnl
-! bn_polygon_log.jnl
+[?1034h! bn_polygon_log.jnl
 ! polygon plots on a log axis need tests
  
 let xsqr = YSEQUENCE({0,.1,.1,0})
@@ -77115,266 +77858,7659 @@ 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: bn_all_ef.jnl
-SET MODE VERIFY
-! bn_all_ef.jnl
-! - run all the benchmark tests for externally-linked external functions.
+*** Running test: bn694_bug_fixes.jnl
+[?1034h! bn694_bug_fixes
+! test various fixes that went into version 6.94
+! 11/2014 ACM
+! 12/2014 *sh* added IF-THEN flow fixes, including review of past tickets
+! 1/2015 *sh* added test for undetected bad dataset name in regrid target
+ 
+GO bn_reset
+cancel mode verify
+GO err693_upcase_quoted_name
+! err693_upcase_quoted_name.jnl
+! ticket 2050. Names are saved in uppercase
+! form unless there are duplicates other than case.
+! Then searching for the name in quotes looked
+! only with a case-sensitive search.
+ 
+let abc = 12
+cancel mode upcase
+ 
+save/file=aa.nc/clobber abc
+can dat/all; can var/all
+ 
+use aa.nc
+! previously this failed to find the name.
+list 'abc'
+             VARIABLE : 12
+             FILENAME : aa.nc
+          12.00
  
  
 GO bn_reset
 cancel mode verify
-GO bn_ef_external_functions.jnl
-! Tests of external functions that are distributed as shared object files.
+GO err693_isready_hang
+! err693_isready_hang.jnl
+! ACM 12/10/2014
+! ticket 2219.  The last of these commands caused Ferret to hang.
  
-! Jon's benchmarks
-go bench_examples
-set mode ignore_error
-show func/ext add_9
-ADD_9(A,B,C,D,E,F,G,H,I)
-    (demonstration function) adds 9 arguments
-show func/ext ave*
-AVE_SCAT2GRID_T(TPTS,VPTS,TAXIS)
-    Compute average of a variable in each cell of output time axis
-    TPTS: T coordinates of scattered input time coordinates
-    VPTS: Variable at times in TPTS
-    TAXIS: Output time axis
-AVET(A)
-    (demonstration function) returns the time average
-    A: data to be averaged over the time axis
-show func pass_thru
-PASS_THRU(A)
-    (demonstration function) sets result equal to input
-    A: this arg is passed through
-show func sto*
-STORAGE(A)
-    sets result equal to input/10
-    A: input
+use gt4d011
+def ax/t/t0="`u,r=t0`"/unit="`u,r=tunit`" time = t[gt=u]
+ !-> def ax/t/t0="14-JAN-1980 14:00:00"/unit="hour" time = t[gt=u]
+let a = u
+IF `a,r=isready` THEN; let/title="`a,r=title`" a1 = a; ENDIF
+ !-> IF 1         THEN
+ !-> DEFINE VARIABLE/title="U" a1 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a2 = a; ENDIF
+ !-> IF 1         THEN
+ !-> DEFINE VARIABLE/title="U" a2 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a3 = a; ENDIF
+ !-> IF 1         THEN
+ !-> DEFINE VARIABLE/title="U" a3 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a4 = a; ENDIF
+ !-> IF 1         THEN
+ !-> DEFINE VARIABLE/title="U" a4 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a5 = a; ENDIF
+ !-> IF 1         THEN
+ !-> DEFINE VARIABLE/title="U" a5 = a
  
-go bench_add_9
-! Bench_add_9.jnl
-!  ACM  8/99
-!  benchmark script for testing external function add_9.
-! Note: bench_add_9_visual contains plots of similar computations
+GO bn_reset
+cancel mode verify
+GO err693_isready_dyn_grid_crash   ! 12/23/2014
+let/unit="m" b = x[gx=1:5:1]
+say "`b,r=unit`"     ! this causes dynamic grid of b to be created
+ !-> MESSAGE/CONTINUE "m"
+m
+let c = x[gx=1:5:2]
+let b2 = b+0*c[gx=b] ! dynamic grid of b exists, but not grid of c
+VTREE b2
+   B2 = B+0*C[GX=B]
+     B = X[GX=1:5:1]
+     C = X[GX=1:5:2]
+       regrid to B = X[GX=1:5:1]
  
-set mode ignore_errors
+GO bn_reset
+cancel mode verify
+GO err693_attr_in_gcfcn
+! err693_attr_in_gcfcn.jnl
+! ACM 12/10/2014
+! bug 2220 varname.attname as an argument to grid-changing functions.
+! All except the last of these caused various ungraceful stops.
+ 
+let/units="m" a = 1
+list is_element_of_str(a.units,{"m","a"})
+             VARIABLE : IS_ELEMENT_OF_STR(A.UNITS,{"m","a"})
+             X        : 1
+          1.000
  
+let/units="m" a = 1
+let b = a.units
+list is_element_of_str(b,{"m","a"})
+             VARIABLE : IS_ELEMENT_OF_STR(B,{"m","a"})
+             X        : 1
+          1.000
  
-can region
-use coads_climatology
-set region/x=151E:179E/y=0
  
-let a1 = sst[d=1,l=1]
-let a2 = sst[d=1,l=2]
-let a3 = sst[d=1,l=3]
+use levitus_climatology
  
-let a = add_9(a1,a2,a3,a1,a2,a3,a1,a2,a3)
+list is_element_of_str_n (temp.long_name, {"Temperature", "temp"})
+             VARIABLE : IS_ELEMENT_OF_STR_N (TEMP.LONG_NAME, {"Temperature", "temp"})
+             FILENAME : levitus_climatology.cdf
+             X        : 1
+          2.000
  
-list a
-             VARIABLE : ADD_9(A1,A2,A3,A1,A2,A3,A1,A2,A3)
-             SUBSET   : 15 points (LONGITUDE)
-             LATITUDE : 1S
-             TIME     : 16-JAN 06:00
-                1S    
-                45
- 151E   / 66:  263.6
- 153E   / 67:  264.5
- 155E   / 68:  264.2
- 157E   / 69:  261.3
- 159E   / 70:  260.9
- 161E   / 71:  262.4
- 163E   / 72:  264.0
- 165E   / 73:  261.1
- 167E   / 74:  260.9
- 169E   / 75:  261.0
- 171E   / 76:  259.3
- 173E   / 77:  257.9
- 175E   / 78:  257.0
- 177E   / 79:  259.1
- 179E   / 80:  254.8
-list  a - 3 * sst[d=1,l=1:3 at sum]
-             VARIABLE : A - 3 * SST[D=coads_climatology,L=1:3 at SUM]
-             SUBSET   : 15 points (LONGITUDE)
-             LATITUDE : 1S
-             TIME     : 16-JAN 06:00
-                 1S    
-                 45
- 151E   / 66:  0.0000
- 153E   / 67:  0.0000
- 155E   / 68:  0.0000
- 157E   / 69:  0.0000
- 159E   / 70:  0.0000
- 161E   / 71:  0.0000
- 163E   / 72:  0.0000
- 165E   / 73:  0.0000
- 167E   / 74:  0.0000
- 169E   / 75:  0.0000
- 171E   / 76:  0.0000
- 173E   / 77:  0.0000
- 175E   / 78:  0.0000
- 177E   / 79:  0.0000
- 179E   / 80:  0.0000
-set mode/last ignore_errors
-go bench_avet
-! Bench_avet.jnl
-!  ACM  8/99
-!  benchmark script for testing external function avet.
-! Note: bench_avet_visual.jnl contains plots of similar computations
+let a = temp.units
+list is_element_of_str (a, {"Kelvin", "Celsius", "DEG C"})
+             VARIABLE : IS_ELEMENT_OF_STR (A, {"Kelvin", "Celsius", "DEG C"})
+             FILENAME : levitus_climatology.cdf
+             X        : 1
+          1.000
  
-set mode ignore_errors
  
-can region
+ 
+GO bn_reset
+cancel mode verify
+GO err693_inconsistent_quote
+! inconsistent interpretation of surrounding double quotes
+! the original source of the problem is in PARSE_COMMAND
+! arg_start and arg_end are set to skip surrounding quotation marks.
+! But since this behavior permeates so many routines it is best to repair
+! the problem in ALL_1_ARG
+ 
+ 
+let foobar = 1
+LIST "foobar", "foobar" ! this is correct - list as strings
+ Column  1: str is "foobar"
+ Column  2: str is "foobar"
+              str     str
+I / *:    "foobar" "foobar"
+LIST "foobar"           ! error: lists the value instead
+             VARIABLE : "foobar"
+        "foobar"
+ 
+! IF-THEN flow tests
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_2214
+! bug 2214
+! If we put the "say hi" in parentheses, this seems to work.
+! But parentheses haven't previously been required, so there are a lot of
+! scripts that don't have them.
+ 
+* 12/14 note (sh) - Ferret handles this situation correctly because
+* PARSE_COMMAND acts on the semi-colons in the full command line *before*
+* it acts on the "IF".  Thus the thress semicolon-connected commands
+* follow the same logical path through Ferret as if they were separated
+* onto three lines
+ 
+IF 0 THEN; rep/i=1:1 say ERROR; ENDIF
+ 
+IF 1 THEN; rep/i=1:1 say CORRECT; ENDIF
+!-> REPEAT: I=1
+CORRECT
+ 
+(IF 0 THEN; rep/i=1:1 say ERROR; ENDIF)
+ 
+(IF 1 THEN; rep/i=1:1 say CORRECT; ENDIF)
+!-> REPEAT: I=1
+CORRECT
+ 
+!yes? quit
+!yes? quit
+!yes? ^Z
+!Suspended
+ 
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_2211
+! bug #2211
+ 
+ 
+IF 0 THEN
+ELSE
+   exit/script
+ 
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1860
+! from bug 1860
+! continue line found within grave accents
+ 
+CANCEL MODE VERIFY
+This works:
+CORRECT IF THIS DISPLAYS
+This works:
+CORRECT IF THIS DISPLAYS
+This works:
+CORRECT IF THIS DISPLAYS
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1446
+! testing ticket 1446
+ 
+! the presence of a tab preceding the "!" comment caused a parsing error
+ 
+! the behavior of this even in v69+ today is problematic in that
+! it echos an ENDIF statement that should be a plain old skip
+ 
+IF 0 THEN
+ENDIF
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1681
+! testing ticker 1681
+ 
+!The third block of the following script issues an error:
+!ERROR: invalid command: ENDIF can only be used in an IF clause
+!
+!Looks like a parsing bug -- it seems the ENDIF inside the REPEAT is being
+!applied to the outermost IF. Note that the error goes away if we change
+!the outer 0 to a 1.
+ 
+ 
+say "test1"
+test1
+if 0 then
+endif
+ 
+say "test2"
+test2
+if 0 then
+endif
+ 
+say "test3"
+test3
+if 0 then
+endif
+ 
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1706
+! testing ticket 1706
+!
+def sym a say hi\\; say hi
+ 
+IF 0 THEN
+ENDIF
+ 
+! some versions (not v550 but yes v63 but not v6301) fail to say "here"
+IF 1 THEN
+   say here
+here
+ENDIF
+ 
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1368   ! Jan 28, 2010, Ferret version 5.812
+! testing ticket 1368 - first found in Ferret v5.812 (Jan 28, 2010)
+ 
+! this is still a bug in V69+
+! the initial IF command is not being closed by the first ENDIF
+! it is skipping down to the elif command
+ 
+define symbol xend 180
+let key_flag = 0
+ 
+! test 1 - line 1 false condition should suppress both outputs
+IF `($xend) GT 360` THEN
+ !-> IF 0 THEN
+ENDIF
+ 
+ 
+! test 2 - line 1 false condition should cause else clause - "point G"
+let dxymin = 0.20
+if `dxymin lt 0.12` then
+ !-> if 0 then
+elif `dxymin lt 0.25` then
+ !-> elif 1 then
+  SAY "CORRECT.  this message should display"
+CORRECT.  this message should display
+endif
+ 
+! test 3 - this is from bug #918 -- looks like the same bug as #1368
+IF 0 THEN
+ENDIF
+ 
+GO bn_reset
+cancel mode verify
+GO err693_ribbon_start_missing
+! err693_ribbon_start_missing
+! 1/6/2015 ACM
+!
+! Bug 2226: If data starts with a missing-value and we're using (-inf) then
+! the ribbon plot started with the lowest color instead of plotting as for missing
+! Only the cases starting with missing data were incorrect previous to fixing this bug.
+ 
+DEFINE SYMBOL ribbon_command = PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3
+ 
+let/units=degrees_east xvar = {-177,-174,-186}
+let/units=degrees_north yvar = {-43, -45, -42}
+let vvar = {,271, 319}
+! This previously started with purple, not a gray missing-value point
+($ribbon_command)/title="(-inf) in levels" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="(-inf) in levels" xvar,yvar,vvar
+ 
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,,,271,319}
+($ribbon_command)/title="start with several missing" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="start with several missing" xvar,yvar,vvar
+ 
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,,271,319,1000}
+($ribbon_command)/title="end large positive value" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="end large positive value" xvar,yvar,vvar
+ 
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,271,319,1000,}
+($ribbon_command)/title="end with large positive and missing" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="end with large positive and missing" xvar,yvar,vvar
+ 
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {1.e7,,,271,319}
+($ribbon_command)/title="start with large positive" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="start with large positive" xvar,yvar,vvar
+ 
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,1.e7,,271,319}
+($ribbon_command)/title="start with missing then large positive" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="start with missing then large positive" xvar,yvar,vvar
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err691_pt_in_poly
+! err691_pt_in_poly
+! ticket 1961: modulo longitude for pt_in_poly
+! and sending subset of the xy field
+ 
 use coads_climatology
-set region/x=151E:179E/y=0
  
-let a = avet(sst)
-list a
-             VARIABLE : AVET(SST)
+let xpts = {64,81,81,82,88,88,79,79,76,73,68,64}
+let ypts = {31,30,29,29,27,24,20,19,20,25,27,31}
+ 
+let pts = pt_in_poly(sst[L=5,x=60:90,y=15:35], xpts, ypts)
+shade/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
+             VARIABLE : MINMAX(PTS)
              FILENAME : coads_climatology.cdf
-             SUBSET   : 15 points (LONGITUDE)
-             LATITUDE : 1S
-                1S    
-                45
- 151E   / 66:  29.28
- 153E   / 67:  29.39
- 155E   / 68:  29.35
- 157E   / 69:  29.03
- 159E   / 70:  28.99
- 161E   / 71:  29.15
- 163E   / 72:  29.33
- 165E   / 73:  29.01
- 167E   / 74:  28.99
- 169E   / 75:  29.00
- 171E   / 76:  28.81
- 173E   / 77:  28.66
- 175E   / 78:  28.56
- 177E   / 79:  28.79
- 179E   / 80:  28.31
-list a - sst[l=@ave]
-             VARIABLE : A - SST[L=@AVE]
+             SUBSET   : 2 points (X)
+ 1   / 1: -1.000
+ 2   / 2:  1.000
+ 
+! Put the xpts on different modulo branches
+! Previously  the list commands would have listed -1,-1
+ 
+let xpts0 = {64,81,81,82,88,88,79,79,76,73,68,64}
+let/title=lon/units=degrees_east xpts = xpts0 + 360
+ 
+shade/title="Plus 360"/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
+             VARIABLE : MINMAX(PTS)
              FILENAME : coads_climatology.cdf
-             SUBSET   : 15 points (LONGITUDE)
-             LATITUDE : 1S
-             TIME     : 01-JAN 00:45 to 01-APR 08:12
-                  1S      
-                  45
- 151E   / 66:  0.000E+00
- 153E   / 67: -3.553E-15
- 155E   / 68:  0.000E+00
- 157E   / 69:  0.000E+00
- 159E   / 70:  3.553E-15
- 161E   / 71:  7.105E-15
- 163E   / 72:  3.553E-15
- 165E   / 73:  0.000E+00
- 167E   / 74:  0.000E+00
- 169E   / 75:  3.553E-15
- 171E   / 76:  0.000E+00
- 173E   / 77:  3.553E-15
- 175E   / 78:  0.000E+00
- 177E   / 79:  3.553E-15
- 179E   / 80:  3.553E-15
+             SUBSET   : 2 points (X)
+ 1   / 1: -1.000
+ 2   / 2:  1.000
  
-can region
-let a = x[i=1:9,k=1:5] + t[l=1:5]
-let b = x[i=1:9,k=1:5]
-let c = avet(a)
-list b, c
-             X: 0.5 to 9.5
- Column  1: B is X[I=1:9,K=1:5]
- Column  2: C is AVET(A)
-             B     C
-1   / 1:  1.000   4.00
-2   / 2:  2.000   5.00
-3   / 3:  3.000   6.00
-4   / 4:  4.000   7.00
-5   / 5:  5.000   8.00
-6   / 6:  6.000   9.00
-7   / 7:  7.000  10.00
-8   / 8:  8.000  11.00
-9   / 9:  9.000  12.00
+let/title=lon/units=degrees_east xpts = xpts0 - 360
  
-set mode/last ignore_errors
-go bench_pass_thru
-! Bench_pass_thru.jnl
-!  ACM  8/99
-!  benchmark script for testing external function pass_thru.
-! Note: bench_pass_thru_visual.jnl contains plots of similar computations
+shade/title="Minus 360"/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
+             VARIABLE : MINMAX(PTS)
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 2 points (X)
+ 1   / 1: -1.000
+ 2   / 2:  1.000
  
-set mode ignore_errors
+GO bn_reset
+cancel mode verify
+GO err693_undetected_regrid_dset
+! err693_undetected_regrid_dset.jnl    - Jan 2015
  
-can region
-let a = pass_thru(x)
-list a[i=1:20]
-             VARIABLE : PASS_THRU(X)
-             SUBSET   : 20 points (X)
- 1    /  1:   1.00
- 2    /  2:   2.00
- 3    /  3:   3.00
- 4    /  4:   4.00
- 5    /  5:   5.00
- 6    /  6:   6.00
- 7    /  7:   7.00
- 8    /  8:   8.00
- 9    /  9:   9.00
- 10   / 10:  10.00
- 11   / 11:  11.00
- 12   / 12:  12.00
- 13   / 13:  13.00
- 14   / 14:  14.00
- 15   / 15:  15.00
- 16   / 16:  16.00
- 17   / 17:  17.00
- 18   / 18:  18.00
- 19   / 19:  19.00
- 20   / 20:  20.00
-set region/i=1:20
-list sin(a)
-             VARIABLE : SIN(A)
-             SUBSET   : 20 points (X)
- 1    /  1:  0.8415
- 2    /  2:  0.9093
- 3    /  3:  0.1411
- 4    /  4: -0.7568
- 5    /  5: -0.9589
- 6    /  6: -0.2794
- 7    /  7:  0.6570
- 8    /  8:  0.9894
- 9    /  9:  0.4121
- 10   / 10: -0.5440
- 11   / 11: -1.0000
- 12   / 12: -0.5366
- 13   / 13:  0.4202
- 14   / 14:  0.9906
- 15   / 15:  0.6503
- 16   / 16: -0.2879
- 17   / 17: -0.9614
- 18   / 18: -0.7510
- 19   / 19:  0.1499
- 20   / 20:  0.9129
+! in GET_CONTEXT_MODS no check is made whether dataset name/number is
+! valid following   "gdset = FIND_DSET_NUMBER( name(dstart:dend) )"
+ 
+use coads_climatology
+use levitus_climatology   ! default to d=2
+ 
+canc var/all
+let myvar = temp
+let a = myvar[g=temp[d=bad_d]]    ! THIS SHOULD BE DETECTED AS AN ERROR
+ 
+set mode ignore
+stat/l=1/x=180/y=0 a    ! this *SHOULD* trigger an error.  Yes.  Detect it.
+set mode/last ignore
+ 
+GO bn_reset
+cancel mode verify
+GO err693_line_over_axis
+! Ticket 2232: line plots overlaid the plot axes
+show mode meta
+      MODE            STATE        ARGUMENT
+      METAFILE      CANCELLED      ferret.png
+! line plot with /VS draw on top of the axes
+let xval = {0.0, 0.2, 1.0, 0.8, 0}
+let yval = {0.0, 1.1, 1.1, 0.0, 0}
+plot/vs/line/thick=3/color=lightblue xval, yval
+ 
+! any line overlay may draw on the axes
+let xval = {0.0, 0.0, 0.8, 0.2, 0}
+let yval = {0.1, 1.2, 1.2, 0.1, 0.1}
+plot/ribbon/vs/line/thick=3/over/nolab/pal=green_light xval, yval, yval
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_save_packed
+! err693_save_packed.jnl
+! ticket 2240: bug writing multiple vars with one SAVE when scaled
+!
+! Previously saw a netcdf error because first variable was mis-scaled on writing.
+ 
+use err693_save_packed.nc
+save/clobber/file=a.nc QA_OF_SEAICE_CONC_CDR, GODDARD_MERGED_SEAICE_CONC
+ 
+GO bn_reset
+cancel mode verify
+GO err693_subspan_trans
+! err693_subspan_trans
+! bug 2241  3/9/2015
+ 
+use coads_climatology
+let a = sst[x=120:284,y=-2:2 at ave,t=@ave]
+save/clob/file=a.nc a
+can var a
+use a
+set reg/x=25:385
+let b = a[x=@min]
+ 
+set mode diag
+say `a[x=@min]`
+ getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing moduloing A on X axis:     1    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
+ 
+! This previously resulted in an error.
+say `b`
+ dealloc  dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ getgrid B        C:  7 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    B        C:  6 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ found   A        M:  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
+ 
+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
+let b = a[x=150:200 at min]
+say `b`
+ !-> MESSAGE/CONTINUE 26.96305592854818
+26.96305592854818
+ 
+! What if the region for @MIN extends beyond the saved portion?
+say `a[x=200:300 at min]`
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
+let b = a[x=200:300 at min]
+say `b`
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
+ 
+! What if the region for @MIN is outside the saved portion?
+say `a[x=300:385 at min]`
+ !-> MESSAGE/CONTINUE bad
+bad
+let b = a[x=300:385 at min]
+say `b`
+ !-> MESSAGE/CONTINUE bad
+bad
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_repeat_err
+!   err693_repeat_err.jnl
+! test fix for ticket 2244: Error handling in REPEAT
+ 
+! The second of these should result in an error - in debug mode
+! it instead was hitting an out-of-range subscript error.
+ 
+repeat/range=1:2/name=column repeat/range=1:2/name=row say `column`,`row`
+!-> REPEAT: COLUMN:1
+!-> REPEAT: ROW:1
+ !-> MESSAGE/CONTINUE 1,1
+1,1
+!-> REPEAT: ROW:2
+ !-> MESSAGE/CONTINUE 1,2
+1,2
+!-> REPEAT: COLUMN:2
+!-> REPEAT: ROW:1
+ !-> MESSAGE/CONTINUE 2,1
+2,1
+!-> REPEAT: ROW:2
+ !-> MESSAGE/CONTINUE 2,2
+2,2
+ 
+set mode ignore
+repeat/range=1:2/name=column repeat/range=1:2/name=row
+!-> REPEAT: COLUMN:1
+!-> REPEAT: COLUMN:2
+set mode/last ignore
+ 
+GO bn_reset
+cancel mode verify
+GO err693_edit_useratt
+! err693_edit_useratt.jnl
+! ticket 2249: set attribute properties for user-defined variable
+ 
+use err491_attval.cdf
+list/x=135.402W:135.321W/y=58.609 elev
+             VARIABLE : Surface elevation (meter)
+             DATA SET : K-Bay OAR3d model (200m)
+             FILENAME : err491_attval.cdf
+             SUBSET   : 7 points (LONGITUDE)
+             LATITUDE : 58.6N
+             T (day)  : 1.7837
+                 58.609N
+                   3
+ 135.402W / 45:   ....
+ 135.389W / 46:   ....
+ 135.375W / 47:   ....
+ 135.362W / 48:  2.952
+ 135.348W / 49:  2.953
+ 135.335W / 50:  2.949
+ 135.321W / 51:  2.953
+ 
+ 
+! Rename the file variable, define a variable using its name
+set var/name=elev_in elev
+let  elev = missing(elev_in, -1.e34)
+ 
+! Inherit attributes from the file variable.
+! cancel writing the scale attributes
+set att/like=elev_in elev
+can att/output elev.scale_factor
+can att/output elev.add_offset
+ 
+! set the bad-flag (can't do this before the SET ATT/LIKE
+set var/bad=-1.e34 elev
+ 
+! save
+save/clobber/file=a.nc elev
 can var/all
-can region
+use a.nc
+list/x=135.402W:135.321W/y=58.609 elev
+             VARIABLE : Surface elevation (meter)
+             FILENAME : a.nc
+             SUBSET   : 7 points (LONGITUDE)
+             LATITUDE : 58.6N
+             T (day)  : 1.7837
+                 58.609N
+                   3
+ 135.402W / 45:   ....
+ 135.389W / 46:   ....
+ 135.375W / 47:   ....
+ 135.362W / 48:  2.952
+ 135.348W / 49:  2.953
+ 135.335W / 50:  2.949
+ 135.321W / 51:  2.953
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_redef_rec_axis
+! err693_redef_rec_axis.jnl
+! ticket 2271. Redefining the record axis meant
+! that SHOW AXIS/FULL couldnt get the time axis info
+ 
+define axis/x=1:5:1 xax
+define axis/y=2:10:2 yax
+define axis/t=1:7:1 tredef
+let var = x[gx=xax] + y[gy=yax] + t[gt=tredef]
+save/clobber/file=a.nc var
+ 
+can var/all
+can axis xax
+can axis yax
+can axis tredef
+ 
+use a.nc
+define axis/t=1:7:1/units=days/t0=1-jan-2000 tredef
+ 
+! Previously the output had  time range: ???
+show data/full
+     currently SET data sets:
+    1> ./a.nc  (default)
+ 
+ name     title                             I         J         K         L         M         N
+ VAR      X[GX=XAX] + Y[GY=YAX] + T[GT=TR  1:5       1:5       ...       1:7       ...       ...
+               on grid GSI1 with -1.E+34 for missing data
+             X=0.5:5.5  Y=1:11  
+ 
+  time range: 02-JAN-2000 00:00 to 08-JAN-2000 00:00
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_frame_types
+! bn_frame_types.jnl
+! Ticket 2275
+! The default file type for FRAME was still HDF
+ 
+set mode ignore
  
 use coads_climatology
-let a = pass_thru(sst[l=@ave,y=@sbx:11])
-list/x=50 a
-             VARIABLE : PASS_THRU(SST[L=@AVE,Y=@SBX:11])
+shade/l=1 sst
+ 
+! This issued an error and quit
+frame/format=hdf/file=a.hdf
+ 
+! so did this
+frame/file=a.png
+ 
+! this is (always) ok
+frame/file=a.gif
+frame/format=gif file=a.plot
+ 
+set mode/last ignore
+ 
+GO bn_reset
+cancel mode verify
+GO err693_shape
+! err693_shape.jnl
+! bug 2273 shape of variable with various subexpressions
+ 
+use coads_climatology
+let a = sst[x=@ave]
+let a_clim = a[gt=MONTH_IRREG at mod]
+let a_anom = a - a_clim[gt=a at nrst]
+ 
+! Should all be YT
+say `a,r=shape`  `a_clim[gt=a at nrst],r=shape` `a_anom,r=shape`
+ !-> MESSAGE/CONTINUE YT  YT YT
+YT  YT YT
+ 
+! Also works for size returns
+ 
+! Should be 180, 1, 1
+say `sst,r=isize`  `a,r=isize` `a_anom,r=isize`
+ !-> MESSAGE/CONTINUE 180  1 1
+180  1 1
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_ef_axis_precision
+ ! NOAA/PMEL TMAP
+ ! FERRET v6.94
+ ! Linux 2.6.32-504.12.2.el6.x86_64 64-bit - 03/20/15
+ ! 11-May-15 16:51
+ 
+define axis/f faxis = {0.001, 0.123, 0.234, 0.498}
+define axis/e eaxis = {1001.1009, 1234.005, 2112.321, 2520.45}
+let efvar = _M[ge=eaxis] + _n[gf=faxis]
+set view upper; plot/n=3 efvar
+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
+ 1001.1 / 1:  4.000
+ 1234   / 2:  5.000
+ 2112.3 / 3:  6.000
+ 2520.4 / 4:  7.000
+list/m=2 efvar
+             VARIABLE : _M[GE=EAXIS] + _N[GF=FAXIS]
+             SUBSET   : 4 points (F)
+             E        : 1234
+ 0    / 1:  3.000
+ 0.12 / 2:  4.000
+ 0.23 / 3:  5.000
+ 0.5  / 4:  6.000
+q
+ 
+GO bn_reset
+cancel mode verify
+GO err693_string_results
+! err693_string_results.jnl
+! Ticket 2234, the LIST B returned the numeric pointer to the string.
+! *acm* 5/14/2015
+ 
+let b = IF a then "yes" else "no"
+let a = 1/0
+list b
+             VARIABLE : IF A THEN "yes" ELSE "no"
+        "no"
+ 
+! The LOAD C makes the data type of D correct
+let d = if c then "ok" else "not ok"
+let c = 1/0
+load C
+list d
+             VARIABLE : IF C THEN "ok" ELSE "not ok"
+        "not ok"
+ 
+GO bn_reset
+cancel mode verify
+GO err693_lev_nv_over
+! err693_lev_nv_over.jnl
+! The polygon command with /LEV=20V caused a crash; levels settings incorrect.
+ 
+! draw any underlay to set up for polymark script
+use coads_climatology
+shade/x=120:250/Y=25s:65n/L=1/pal=white/nokey sst
+ 
+LET xpts = 180 + 50*COS(2*3.14*I[I=1:50]/60)
+LET ypts = 15  + 20*SIN(2*3.14*I[I=1:50]/60)
+ 
+! Variable is a constant w/ negative value
+LET sst = -5 + 0*ypts
+ 
+! The poly/over command caused a Fortran runtime error in tm_fmt_sngl
+GO polymark polygon/over/lev=20v/key/title="SST"  xpts,ypts,sst,square, 0.5
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_fcn_of_attvar
+! err693_fcn_of_attvar.jnl
+! Ticket 2291 Function of attribute-expression
+! returned just the first result
+ 
+use coads_climatology
+list sst.dimnames
+             VARIABLE : SST.DIMNAMES
              FILENAME : coads_climatology.cdf
-             SUBSET   : 90 points (LATITUDE)
-             LONGITUDE: 49E
-             TIME     : 01-JAN 00:45 to 01-APR 08:12
-               49E   
-               15
- 89N   / 90:   ....
- 87N   / 89:   ....
- 85N   / 88:   ....
- 83N   / 87:   ....
- 81N   / 86:   ....
- 79N   / 85:   ....
- 77N   / 84:   ....
- 75N   / 83:   ....
- 73N   / 82:   ....
- 71N   / 81:   ....
- 69N   / 80:   ....
- 67N   / 79:   ....
+             SUBSET   : 3 points (X)
+ 1   / 1:"COADSX"
+ 2   / 2:"COADSY"
+ 3   / 3:"TIME1" 
+list dncase(sst.dimnames)
+             VARIABLE : DNCASE(SST.DIMNAMES)
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 3 points (X)
+ 1   / 1:"coadsx"
+ 2   / 2:"coadsy"
+ 3   / 3:"time1" 
+list strlen( sst.dimnames)
+             VARIABLE : STRLEN( SST.DIMNAMES)
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 3 points (X)
+ 1   / 1:  6.000
+ 2   / 2:  6.000
+ 3   / 3:  5.000
+list substring(sst.dimnames,2,3)
+             VARIABLE : SUBSTRING(SST.DIMNAMES,2,3)
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 3 points (X)
+ 1   / 1:"OAD"
+ 2   / 2:"OAD"
+ 3   / 3:"IME"
+list dncase(substring(sst.dimnames,2,3))
+             VARIABLE : DNCASE(SUBSTRING(SST.DIMNAMES,2,3))
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 3 points (X)
+ 1   / 1:"oad"
+ 2   / 2:"oad"
+ 3   / 3:"ime"
+list ysequence(dncase(sst.dimnames))
+             VARIABLE : YSEQUENCE(DNCASE(SST.DIMNAMES))
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 3 points (Y)
+ 1   / 1:"coadsx"
+ 2   / 2:"coadsy"
+ 3   / 3:"time1" 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_isize_and_gcfcn
+! err693_isize_and_gcfcn.jnl
+! ticket 2213
+! SET REGION interacting with ABSTRACT AXES
+! When the variable using XSEQUENCE was defined, suddenly the
+! region was being applied (inconsistently).
+ 
+can mode verify
+8
+    GRID XABSTRACT
+ name       axis              # pts   start                end
+ ABSTRACT  X             99999999 r   1                    1.E+08
+ normal    Y
+ normal    Z
+ normal    T
+ normal    E
+ normal    F
+8
+8 a
+8
+8 b
+8
+8 c
+8
+8 d
+8
+8 e
+8
+8 f
+8
+8 g
+8
+8 h
+8
+    GRID XABSTRACT
+ name       axis              # pts   start                end
+ ABSTRACT  X             99999999 r   1                    1.E+08
+ normal    Y
+ normal    Z
+ normal    T
+ normal    E
+ normal    F
+8
+8 a
+8
+8 b
+8
+8 c
+8
+8 d
+8
+8 e
+8
+8 f
+8
+8 g
+8
+8 h
+ 
+GO bn_reset
+cancel mode verify
+GO err693_ribbon_scale
+! err693_ribbon_scale.jnl
+! ticket 2295: the vertical scale is mis-computed
+! 5/29/2015
+ 
+let var = {-81,-81,-81}
+let color = {2,2,2}
+plot/ribbon/key var,color
+ 
+! should be -82 to -80
+sh sym yaxis*
+YAXIS_REVERSED = "0"
+YAXIS_MIN = "-82.0000000"
+YAXIS_MAX = "-80.0000000"
+ 
+GO bn_reset
+cancel mode verify
+GO err693_parse_curly
+! err693_parse_curly.jnl
+! the sub-routine defines a string variable containing commands for overlays in
+! different directions. the bug was that the parser doesn't handle quoted strings
+! inside { } if those strings include curly braces.
+! The argument chooses one of the strings with commands and plots the overlay
+ 
+use gt4d011
+ 
+shade/i=100/l=1/pal=grayscale temp
+go err693_parse_curly.sub yz
+! err693_parse_curly.sub
+! Define a variable with commands for overlays in different directions
+! the bug was that the parser doesn't handle quoted strings inside { } if those
+! strings include curly braces.
+! Choose one of the strings and plot the overlay
+ 
+! list of valid shapes
+ 
+let prd_shapes = {"xy", "xz", "yz"}
+ 
+! List of associated overlays
+! This is the part that's not working; due to bug #2296 we can't write {"...{}..."}.
+ 
+let prd_overlays = {\
+   "go land 6; go draw_line 180 -90 180 90 1; go draw_box 210 270 -5 5 6/dash=(.04,.06,.04,.06)",\
+   "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) {-1e3,1e3,,-1e3,1e3,,-1e3,1e3,,-136,-136,,-126,-126}, {85,85,,50,50,,20,20,,-1e4,1e4,,-1e4,1e4}",\
+   "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) 1e3*{-1,1,,-1,1,,-1,1},{85,85,,50,50,,20,20}"}
+ 
+! Then later when we're generating figures, we'll be
+! passing one of these shapes into a script like this:
+ 
+let p1s_shape = "$1%xy%"
+ !-> DEFINE VARIABLE p1s_shape = "yz"
+ 
+! For the specified shape, find the associated overlay command
+! (default is no overlay).
+let p1s_ov = ""
+IF `prd_shapes,r=isready` THEN
+ !-> IF 1         THEN
+      )
+ !-> rep/name=s/range=1:3 (let p1s_this_shape = prd_shapes[i=`s`];      IF `p1s_this_shape EQ p1s_shape` THEN;         let p1s_ov = prd_overlays[i=`s`];         exit/loop;      ENDIF;      )
+!-> REPEAT: S:1
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=1]
+ !-> IF 0 THEN
+!-> REPEAT: S:2
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=2]
+ !-> IF 0 THEN
+!-> REPEAT: S:3
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=3]
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE p1s_ov = prd_overlays[i=3]
+   can var p1s_this_shape
+ENDIF
+ 
+! generate a figure, with the appropriate overlay
+define symbol overcommands = `p1s_ov`
+ !-> define symbol overcommands = plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) 1e3*{-1,1,,-1,1,,-1,1},{85,85,,50,50,,20,20}
+($overcommands)
+ !-> plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) 1e3*{-1,1,,-1,1,,-1,1},{85,85,,50,50,,20,20}
+ 
+ shade/j=40/l=1/pal=grayscale temp
+go err693_parse_curly.sub xz
+! err693_parse_curly.sub
+! Define a variable with commands for overlays in different directions
+! the bug was that the parser doesn't handle quoted strings inside { } if those
+! strings include curly braces.
+! Choose one of the strings and plot the overlay
+ 
+! list of valid shapes
+ 
+let prd_shapes = {"xy", "xz", "yz"}
+ 
+! List of associated overlays
+! This is the part that's not working; due to bug #2296 we can't write {"...{}..."}.
+ 
+let prd_overlays = {\
+   "go land 6; go draw_line 180 -90 180 90 1; go draw_box 210 270 -5 5 6/dash=(.04,.06,.04,.06)",\
+   "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) {-1e3,1e3,,-1e3,1e3,,-1e3,1e3,,-136,-136,,-126,-126}, {85,85,,50,50,,20,20,,-1e4,1e4,,-1e4,1e4}",\
+   "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) 1e3*{-1,1,,-1,1,,-1,1},{85,85,,50,50,,20,20}"}
+ 
+! Then later when we're generating figures, we'll be
+! passing one of these shapes into a script like this:
+ 
+let p1s_shape = "$1%xy%"
+ !-> DEFINE VARIABLE p1s_shape = "xz"
+ 
+! For the specified shape, find the associated overlay command
+! (default is no overlay).
+let p1s_ov = ""
+IF `prd_shapes,r=isready` THEN
+ !-> IF 1         THEN
+      )
+ !-> rep/name=s/range=1:3 (let p1s_this_shape = prd_shapes[i=`s`];      IF `p1s_this_shape EQ p1s_shape` THEN;         let p1s_ov = prd_overlays[i=`s`];         exit/loop;      ENDIF;      )
+!-> REPEAT: S:1
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=1]
+ !-> IF 0 THEN
+!-> REPEAT: S:2
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=2]
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE p1s_ov = prd_overlays[i=2]
+   can var p1s_this_shape
+ENDIF
+ 
+! generate a figure, with the appropriate overlay
+define symbol overcommands = `p1s_ov`
+ !-> define symbol overcommands = plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) {-1e3,1e3,,-1e3,1e3,,-1e3,1e3,,-136,-136,,-126,-126}, {85,85,,50,50,,20,20,,-1e4,1e4,,-1e4,1e4}
+($overcommands)
+ !-> plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) {-1e3,1e3,,-1e3,1e3,,-1e3,1e3,,-136,-136,,-126,-126}, {85,85,,50,50,,20,20,,-1e4,1e4,,-1e4,1e4}
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_list_missing
+! err693_list_missing.jnl
+ 
+let a= {1,2,3}
+let b = 1./0
+ 
+! Ths listing of b is .... was squashed onto the ends of values of a.
+! 1   / 1:  1.000..
+! 2   / 2:  2.000..
+ 
+list a,b
+             X: 0.5 to 3.5
+ Column  1: A is {1,2,3}
+ Column  2: B is 1./0
+             A    B
+1   / 1:  1.000 ....
+2   / 2:  2.000 ....
+3   / 3:  3.000 ....
+ 
+GO bn_reset
+cancel mode verify
+GO err693_shf_subscr
+! err693_shf_subscr.jnl
+! ticket 2231  Subscripts used to compute @SHF-1 at the low end of the axis
+ 
+ 
+def ax/edge/z=0:40:10 zax_t
+def ax/edge/z=5:45:10 zax_w
+let zw = z[gz=zax_w]
+let zdiff = zw - missing(zw[z=@shf:-1],0)
+let zdiff_t = zdiff[gz=zax_t at asn]
+ 
+! a range of K shows the values correctly
+list zdiff_t
+             VARIABLE : ZDIFF[GZ=ZAX_T at ASN]
+             SUBSET   : 4 points (Z)
+ 5    / 1:  10.00
+ 15   / 2:  10.00
+ 25   / 3:  10.00
+ 35   / 4:  10.00
+ 
+! but just K=1 returned a K=0 error
+can mem
+list/k=1 zdiff_t
+             VARIABLE : ZDIFF[GZ=ZAX_T at ASN]
+             Z        : 5
+          10.00
+ 
+! Shift of +1
+can mem
+let zdiff = zw - missing(zw[z=@shf:1],0)
+list/k=4 zdiff_t
+             VARIABLE : ZDIFF[GZ=ZAX_T at ASN]
+             Z        : 35
+          40.00
+list/k=3:4 zdiff_t
+             VARIABLE : ZDIFF[GZ=ZAX_T at ASN]
+             SUBSET   : 2 points (Z)
+ 25   / 3: -10.00
+ 35   / 4:  40.00
+ 
+GO bn_reset
+cancel mode verify
+GO err693_shift_w_region
+! err693_shift_w_region
+! Ticket 2300.  In fact with bounds checking on, the list a[i=@shf] would have
+! caused a Fortran runtime error with out-of-bounds subscripts. The fix for
+! ticket 2301 fixes this as well.
+ 
+set region/x=10:20
+let a = {1,2,3}
+list a
+             VARIABLE : {1,2,3}
+             SUBSET   : 3 points (X)
+ 1   / 1:  1.000
+ 2   / 2:  2.000
+ 3   / 3:  3.000
+list a[i=@shf]
+             VARIABLE : {1,2,3}
+                        shifted by 1 pts on X
+             SUBSET   : 3 points (X)
+ 1   / 1:  2.000
+ 2   / 2:  3.000
+ 3   / 3:   ....
+cancel region
+list a[i=@shf]
+             VARIABLE : {1,2,3}
+                        shifted by 1 pts on X
+             SUBSET   : 3 points (X)
+ 1   / 1:  2.000
+ 2   / 2:  3.000
+ 3   / 3:   ....
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err693_scalar_grids
+! err693_scalar_grids.jnl
+! See ticket 1602
+ 
+!  multiplication by scalar variable "let one = 1" added
+!  abstract axes to the expression in all directions not
+!  already reperesented in the grid.
+ 
+ 
+! The T averaging is ignored; no T direction in the grid.
+use levitus_climatology
+let a = temp[x=140,y=0,z=0]
+list a[t=1-jan-0001:1-jan-0020 at ave]
+             VARIABLE : TEMP[X=140,Y=0,Z=0]
+             FILENAME : levitus_climatology.cdf
+             LONGITUDE: 139.5E
+             LATITUDE : 0.5S
+             DEPTH (m): 0
+          29.31
+ 
+! Multiply by a variable which is a constant (prev. this
+! resulted in an illegal use of transform error.)
+let one = 1
+let b = one*a
+list b[t=1-jan-0001:1-jan-0020 at ave]
+             VARIABLE : ONE*A
+             FILENAME : levitus_climatology.cdf
+             LONGITUDE: 139.5E
+             LATITUDE : 0.5S
+             DEPTH (m): 0
+          29.31
+ 
+! Test with a constant-array variable.
+let two = {2}
+let c = two*a
+list c[t=1-jan-0001:1-jan-0020 at ave]
+             VARIABLE : TWO*A
+             FILENAME : levitus_climatology.cdf
+             X        : 1
+             LATITUDE : 0.5S
+             DEPTH (m): 0
+          58.61
+ 
+ 
+! check interactions with GC functions (prev. this
+! resulted in an illegal use of transform error.)
+LET v = X[x=1:4:1] + Y[Y=.1:.4:.1]
+LET a = XSEQUENCE( v[I=2:3,J=2:3] ) + Z[Z=.01:.02:.01]
+LIST a[t=1-jan-0001:1-jan-0020 at ave]
+             VARIABLE : XSEQUENCE( V[I=2:3,J=2:3] ) + Z[Z=.01:.02:.01]
+             SUBSET   : 4 by 2 points (X-Z)
+               1      2      3      4    
+               1      2      3      4
+ 0.01  / 1:  2.210  3.210  2.310  3.310
+ 0.02  / 2:  2.220  3.220  2.320  3.320
+list b
+             VARIABLE : ONE*A
+             SUBSET   : 4 by 2 points (X-Z)
+               1      2      3      4    
+               1      2      3      4
+ 0.01  / 1:  2.210  3.210  2.310  3.310
+ 0.02  / 2:  2.220  3.220  2.320  3.320
+ 
+list b[x=@ave,k=@ave]
+             VARIABLE : ONE*A
+             X        : 0.5 to 4.5 (XZ ave)
+             Z        : 0.005 to 0.025 (XZ ave)
+          2.765
+ 
+ 
+*** Running test: bn_permute_ascii.jnl
+[?1034h! bn_permute_ascii.jnl
+! test permutations when reading ascii data, in E and F directions
+! 11/18/2014
+! see ticket 2217: was not working for grids in E and F
+ 
+ 
+! First with T axis
+ 
+! unpermuted
+def axis/t=1:12:1 t12
+define axis/x=1:4:1 x4ax
+def grid/x=x4ax/t=t12 txgrid
+ FILE/SKIP=4/VAR="Tm"/COL=12/order=tx/GRID=txgrid fxdata.dat
+sh dat
+     currently SET data sets:
+    1> ./fxdata.dat  (default)
+ name     title                             I         J         K         L         M         N
+ TM       TM                               1:4       ...       ...       1:12      ...       ...
+ 
+list tm
+             VARIABLE : TM
+             FILENAME : fxdata.dat
+             SUBSET   : 4 by 12 points (X-T)
+               1      2      3      4    
+               1      2      3      4
+ 1    /  1:  -6.85  -6.75  -6.65  -6.55
+ 2    /  2: -11.71 -11.72 -11.73 -11.74
+ 3    /  3: -19.12 -19.22 -19.32 -19.42
+ 4    /  4: -24.81 -24.82 -24.83 -24.84
+ 5    /  5: -27.19 -27.29 -27.39 -27.49
+ 6    /  6: -28.51 -28.52 -28.53 -28.54
+ 7    /  7: -30.27 -30.37 -30.47 -30.57
+ 8    /  8: -31.34 -31.54 -31.64 -31.74
+ 9    /  9: -29.34 -29.44 -29.54 -29.64
+ 10   / 10: -23.29 -23.39 -23.49 -23.59
+ 11   / 11: -14.91 -14.92 -14.93 -14.94
+ 12   / 12:  -8.09  -8.19  -8.29  -8.39
+ 
+! permuted
+def axis/t=1:12:1 t12
+define axis/x=1:4:1 x4ax
+def grid/x=x4ax/t=t12 txgrid
+FILE/SKIP=4/VAR="Tm"/COL=12/order=tx/GRID=txgrid fxdata.dat
+sh dat
+     currently SET data sets:
+    1> ./fxdata.dat  (default)
+ name     title                             I         J         K         L         M         N
+ TM       TM                               1:4       ...       ...       1:12      ...       ...
+ 
+list tm
+             VARIABLE : TM
+             FILENAME : fxdata.dat
+             SUBSET   : 4 by 12 points (X-T)
+               1      2      3      4    
+               1      2      3      4
+ 1    /  1:  -6.85  -6.75  -6.65  -6.55
+ 2    /  2: -11.71 -11.72 -11.73 -11.74
+ 3    /  3: -19.12 -19.22 -19.32 -19.42
+ 4    /  4: -24.81 -24.82 -24.83 -24.84
+ 5    /  5: -27.19 -27.29 -27.39 -27.49
+ 6    /  6: -28.51 -28.52 -28.53 -28.54
+ 7    /  7: -30.27 -30.37 -30.47 -30.57
+ 8    /  8: -31.34 -31.54 -31.64 -31.74
+ 9    /  9: -29.34 -29.44 -29.54 -29.64
+ 10   / 10: -23.29 -23.39 -23.49 -23.59
+ 11   / 11: -14.91 -14.92 -14.93 -14.94
+ 12   / 12:  -8.09  -8.19  -8.29  -8.39
+ 
+! Then same with F axis
+can data/all
+ 
+def axis/f=1:12:1 f12
+define axis/x=1:4:1 x4ax
+def grid/x=x4ax/f=f12 fxgrid
+ FILE/SKIP=4/VAR="Tm"/COL=12/order=fx/GRID=fxgrid fxdata.dat
+sh dat
+     currently SET data sets:
+    1> ./fxdata.dat  (default)
+ name     title                             I         J         K         L         M         N
+ TM       TM                               1:4       ...       ...       ...       ...       1:12
+ 
+list tm
+             VARIABLE : TM
+             FILENAME : fxdata.dat
+             SUBSET   : 4 by 12 points (X-F)
+               1      2      3      4    
+               1      2      3      4
+ 1    /  1:  -6.85  -6.75  -6.65  -6.55
+ 2    /  2: -11.71 -11.72 -11.73 -11.74
+ 3    /  3: -19.12 -19.22 -19.32 -19.42
+ 4    /  4: -24.81 -24.82 -24.83 -24.84
+ 5    /  5: -27.19 -27.29 -27.39 -27.49
+ 6    /  6: -28.51 -28.52 -28.53 -28.54
+ 7    /  7: -30.27 -30.37 -30.47 -30.57
+ 8    /  8: -31.34 -31.54 -31.64 -31.74
+ 9    /  9: -29.34 -29.44 -29.54 -29.64
+ 10   / 10: -23.29 -23.39 -23.49 -23.59
+ 11   / 11: -14.91 -14.92 -14.93 -14.94
+ 12   / 12:  -8.09  -8.19  -8.29  -8.39
+ 
+! Read same data in y-z-t
+can data/all
+ 
+def axis/t=1:6:1 t6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/t=t6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/GRID=grid3d fxdata.dat
+sh dat
+     currently SET data sets:
+    1> ./fxdata.dat  (default)
+ name     title                             I         J         K         L         M         N
+ TM       TM                               ...       1:2       1:4       1:6       ...       ...
+ 
+list tm
+             VARIABLE : TM
+             FILENAME : fxdata.dat
+             SUBSET   : 2 by 4 by 6 points (Y-Z-T)
+             1      2    
+             1      2
+ ---- L:1 T:   1
+ 1   / 1:  -6.85 -11.71
+ 2   / 2: -19.12 -24.81
+ 3   / 3: -27.19 -28.51
+ 4   / 4: -30.27 -31.34
+ ---- L:2 T:   2
+ 1   / 1: -29.34 -23.29
+ 2   / 2: -14.91  -8.09
+ 3   / 3:  -6.75 -11.72
+ 4   / 4: -19.22 -24.82
+ ---- L:3 T:   3
+ 1   / 1: -27.29 -28.52
+ 2   / 2: -30.37 -31.54
+ 3   / 3: -29.44 -23.39
+ 4   / 4: -14.92  -8.19
+ ---- L:4 T:   4
+ 1   / 1:  -6.65 -11.73
+ 2   / 2: -19.32 -24.83
+ 3   / 3: -27.39 -28.53
+ 4   / 4: -30.47 -31.64
+ ---- L:5 T:   5
+ 1   / 1: -29.54 -23.49
+ 2   / 2: -14.93  -8.29
+ 3   / 3:  -6.55 -11.74
+ 4   / 4: -19.42 -24.84
+ ---- L:6 T:   6
+ 1   / 1: -27.49 -28.54
+ 2   / 2: -30.57 -31.74
+ 3   / 3: -29.64 -23.59
+ 4   / 4: -14.94  -8.39
+ 
+! And permuted
+ 
+can data/all
+ 
+def axis/t=1:6:1 t6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/t=t6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/order=tyz/GRID=grid3d fxdata.dat
+sh dat
+     currently SET data sets:
+    1> ./fxdata.dat  (default)
+ name     title                             I         J         K         L         M         N
+ TM       TM                               ...       1:2       1:4       1:6       ...       ...
+ 
+list tm
+             VARIABLE : TM
+             FILENAME : fxdata.dat
+             SUBSET   : 2 by 4 by 6 points (Y-Z-T)
+             1      2    
+             1      2
+ ---- L:1 T:   1
+ 1   / 1:  -6.85 -30.27
+ 2   / 2:  -6.75 -30.37
+ 3   / 3:  -6.65 -30.47
+ 4   / 4:  -6.55 -30.57
+ ---- L:2 T:   2
+ 1   / 1: -11.71 -31.34
+ 2   / 2: -11.72 -31.54
+ 3   / 3: -11.73 -31.64
+ 4   / 4: -11.74 -31.74
+ ---- L:3 T:   3
+ 1   / 1: -19.12 -29.34
+ 2   / 2: -19.22 -29.44
+ 3   / 3: -19.32 -29.54
+ 4   / 4: -19.42 -29.64
+ ---- L:4 T:   4
+ 1   / 1: -24.81 -23.29
+ 2   / 2: -24.82 -23.39
+ 3   / 3: -24.83 -23.49
+ 4   / 4: -24.84 -23.59
+ ---- L:5 T:   5
+ 1   / 1: -27.19 -14.91
+ 2   / 2: -27.29 -14.92
+ 3   / 3: -27.39 -14.93
+ 4   / 4: -27.49 -14.94
+ ---- L:6 T:   6
+ 1   / 1: -28.51  -8.09
+ 2   / 2: -28.52  -8.19
+ 3   / 3: -28.53  -8.29
+ 4   / 4: -28.54  -8.39
+ 
+! Now with Y-Z-E
+ 
+can data/all
+ 
+def axis/e=1:6:1 e6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/e=e6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/GRID=grid3d fxdata.dat
+sh dat
+     currently SET data sets:
+    1> ./fxdata.dat  (default)
+ name     title                             I         J         K         L         M         N
+ TM       TM                               ...       1:2       1:4       ...       1:6       ...
+ 
+list tm
+             VARIABLE : TM
+             FILENAME : fxdata.dat
+             SUBSET   : 2 by 4 by 6 points (Y-Z-E)
+             1      2    
+             1      2
+ ---- M:1 E:   1
+ 1   / 1:  -6.85 -11.71
+ 2   / 2: -19.12 -24.81
+ 3   / 3: -27.19 -28.51
+ 4   / 4: -30.27 -31.34
+ ---- M:2 E:   2
+ 1   / 1: -29.34 -23.29
+ 2   / 2: -14.91  -8.09
+ 3   / 3:  -6.75 -11.72
+ 4   / 4: -19.22 -24.82
+ ---- M:3 E:   3
+ 1   / 1: -27.29 -28.52
+ 2   / 2: -30.37 -31.54
+ 3   / 3: -29.44 -23.39
+ 4   / 4: -14.92  -8.19
+ ---- M:4 E:   4
+ 1   / 1:  -6.65 -11.73
+ 2   / 2: -19.32 -24.83
+ 3   / 3: -27.39 -28.53
+ 4   / 4: -30.47 -31.64
+ ---- M:5 E:   5
+ 1   / 1: -29.54 -23.49
+ 2   / 2: -14.93  -8.29
+ 3   / 3:  -6.55 -11.74
+ 4   / 4: -19.42 -24.84
+ ---- M:6 E:   6
+ 1   / 1: -27.49 -28.54
+ 2   / 2: -30.57 -31.74
+ 3   / 3: -29.64 -23.59
+ 4   / 4: -14.94  -8.39
+ 
+can data/all
+ 
+def axis/e=1:6:1 e6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/e=e6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/order=eyz/GRID=grid3d fxdata.dat
+sh dat
+     currently SET data sets:
+    1> ./fxdata.dat  (default)
+ name     title                             I         J         K         L         M         N
+ TM       TM                               ...       1:2       1:4       ...       1:6       ...
+ 
+list tm
+             VARIABLE : TM
+             FILENAME : fxdata.dat
+             SUBSET   : 2 by 4 by 6 points (Y-Z-E)
+             1      2    
+             1      2
+ ---- M:1 E:   1
+ 1   / 1:  -6.85 -30.27
+ 2   / 2:  -6.75 -30.37
+ 3   / 3:  -6.65 -30.47
+ 4   / 4:  -6.55 -30.57
+ ---- M:2 E:   2
+ 1   / 1: -11.71 -31.34
+ 2   / 2: -11.72 -31.54
+ 3   / 3: -11.73 -31.64
+ 4   / 4: -11.74 -31.74
+ ---- M:3 E:   3
+ 1   / 1: -19.12 -29.34
+ 2   / 2: -19.22 -29.44
+ 3   / 3: -19.32 -29.54
+ 4   / 4: -19.42 -29.64
+ ---- M:4 E:   4
+ 1   / 1: -24.81 -23.29
+ 2   / 2: -24.82 -23.39
+ 3   / 3: -24.83 -23.49
+ 4   / 4: -24.84 -23.59
+ ---- M:5 E:   5
+ 1   / 1: -27.19 -14.91
+ 2   / 2: -27.29 -14.92
+ 3   / 3: -27.39 -14.93
+ 4   / 4: -27.49 -14.94
+ ---- M:6 E:   6
+ 1   / 1: -28.51  -8.09
+ 2   / 2: -28.52  -8.19
+ 3   / 3: -28.53  -8.29
+ 4   / 4: -28.54  -8.39
+ 
+*** Running test: 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.
+ 
+show function lon_lat_time_string
+LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
+    Generate strings from longitude,latitude,time
+    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 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}
+ 
+! latitudes are labeled N or S
+let lat = {3.12, 4.9, -15.03}
+ 
+! Time steps are interpreted in terms of a time axis
+let time = {1,2,3}
+define axis/t=1-jan-2001:31-jan-2001:1/units=days/t0=1-jan-2001 taxis
+let tt = t[gt=taxis]
+ 
+list lon_lat_time_string(lon, lat, time, tt, "my_string")
+             VARIABLE : LON_LAT_TIME_STRING(LON, LAT, TIME, TT, "my_string")
+             SUBSET   : 3 points (X)
+ 1   / 1:"my_string_187.6E_3.12N_02-JAN-2001" 
+ 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
+[?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.
+!
+! Allows for a dimension and a 2-D variable to have the same name.
+!  see ticket 2227
+! 1/21/2015 ACM
+ 
+use twodtime.nc
+sh dat
+     currently SET data sets:
+    1> ./twodtime.nc  (default)
+ name     title                             I         J         K         L         M         N
+ TIME     GRIB forecast or observation ti  ...       ...       ...       1:8       ...       1:3
+ 
+ 
+! previously this gave a name-in-use error
+save/file=a.nc/clobber time
+ 
+!  The file has 2D TIME variable, and TIME as a dimension.
+sp ncdump a.nc >> all_ncdump.out
+ 
+! Now, keep case and axis name as on input
+CANCEL MODE upcase
+ 
+save/clobber/keep/file=a.nc time
+sp ncdump a.nc >> all_ncdump.out
+ 
+SET MODE/LAST upcase_output
+*** Running test: bn_time2d.jnl
+[?1034h! bn_time2d.jnl
+! 1/30/2015 ACM
+ 
+! initial changes to handle 2d time variable: forecast and time
+! plot both axes as formatted time axes.
+ 
+use twodtime.nc
+sh dat
+     currently SET data sets:
+    1> ./twodtime.nc  (default)
+ name     title                             I         J         K         L         M         N
+ TIME     GRIB forecast or observation ti  ...       ...       ...       1:8       ...       1:3
+ 
+sh att time
+     attributes for dataset: ./twodtime.nc
+ 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 
+ 
+!  The file has the t axis as just a dimension. Define another
+!  axis with time units
+ 
+def axis/t=1:8:1/units=month/t0=1-nov-2014 taxis
+let time2d = time[gt=taxis at asn]
+set att/like=time time2d
+ 
+shade time2d
+shade/trans time2d
+*** Running test: 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.
+!
+! /KEY=title tells Ferret to label the legend with the variable
+! title.
+! *acm* 2/4/2015 Ticket 2231
+ 
+use coads_climatology
+let/title=January sst1 = sst[l=1]
+let/title=February sst2 = sst[l=2]
+let/title=March sst3 = sst[l=3]
+ 
+! Draw a plot and show the labels on the legend.
+plot/x=300/y=20:65 sst1,sst2,sst3
+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
+[?1034h! bn_DQ.jnl  *sh* 2/2015
+! test the use of _DQ_ and _SQ_ in lieu of " and '
+ 
+let foobar = 1
+let foobar_ = 1
+ 
+LIST foobar, foobar_
+ Column  1: FOOBAR is 1
+ Column  2: FOOBAR_ is 1
+         FOOBAR  FOOBAR_
+I / *:     1.000   1.000
+ 
+LIST    "foobar"    ! bug fix: pre-V694 used to list the value of foobar
+             VARIABLE : "foobar"
+        "foobar"
+let a = "foobar"
+list a
+             VARIABLE : "foobar"
+        "foobar"
+ 
+list    _DQ_foobar_DQ_
+             VARIABLE : _DQ_foobar_DQ_
+        "foobar"
+let a = _DQ_foobar_DQ_
+list a
+             VARIABLE : _DQ_foobar_DQ_
+        "foobar"
+ 
+! ======
+list    "_DQ_foobar_DQ_"
+             VARIABLE : "_DQ_foobar_DQ_"
+        "_DQ_foobar_DQ_"
+let a = "_DQ_foobar_DQ_"
+list a
+             VARIABLE : "_DQ_foobar_DQ_"
+        "_DQ_foobar_DQ_"
+ 
+list    _DQ_"foobar"_DQ_
+             VARIABLE : _DQ_"foobar"_DQ_
+        ""foobar""
+let a = _DQ_"foobar"_DQ_
+list a
+             VARIABLE : _DQ_"foobar"_DQ_
+        ""foobar""
+ 
+! ======
+list    'FOOBAR'
+             VARIABLE : 1
+          1.000
+let a = 'FOOBAR'
+list a
+             VARIABLE : 'FOOBAR'
+          1.000
+ 
+list    _SQ_FOOBAR_SQ_
+             VARIABLE : 1
+          1.000
+let a = _SQ_FOOBAR_SQ_
+list a
+             VARIABLE : _SQ_FOOBAR_SQ_
+          1.000
+ 
+! ======
+list       "'foobar'"
+             VARIABLE : "'foobar'"
+        "'foobar'"
+let a =    "'foobar'"
+list a
+             VARIABLE : "'foobar'"
+        "'foobar'"
+ 
+list    _DQ_'foobar'_DQ_
+             VARIABLE : _DQ_'foobar'_DQ_
+        "'foobar'"
+let a = _DQ_'foobar'_DQ_
+list a
+             VARIABLE : _DQ_'foobar'_DQ_
+        "'foobar'"
+ 
+! ======
+list       "_SQ_foobar_SQ_"
+             VARIABLE : "_SQ_foobar_SQ_"
+        "_SQ_foobar_SQ_"
+let a =    "_SQ_foobar_SQ_"
+list a
+             VARIABLE : "_SQ_foobar_SQ_"
+        "_SQ_foobar_SQ_"
+ 
+list    _DQ__SQ_foobar_SQ__DQ_
+             VARIABLE : _DQ__SQ_foobar_SQ__DQ_
+        "_SQ_foobar_SQ_"
+let a = _DQ__SQ_foobar_SQ__DQ_
+list a
+             VARIABLE : _DQ__SQ_foobar_SQ__DQ_
+        "_SQ_foobar_SQ_"
+ 
+! ======
+list    'FOOBAR'    +    'FOOBAR'
+             VARIABLE : 'FOOBAR'    +    'FOOBAR'
+          2.000
+let a = 'FOOBAR'    +    'FOOBAR'
+list a
+             VARIABLE : 'FOOBAR'    +    'FOOBAR'
+          2.000
+ 
+list    _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_  ! should behave like the preceding
+             VARIABLE : _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_
+          2.000
+let a = _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_
+list a
+             VARIABLE : _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_
+          2.000
+ 
+! ====== demonstrate hiding all sorts of characters
+let a = _DQ_'"+-/;_SQ_foobar"'_DQ_
+list a
+             VARIABLE : _DQ_'"+-/;_SQ_foobar"'_DQ_
+        "'"+-/;_SQ_foobar"'"
+ 
+! ======
+say     "hello"
+hello
+say  _DQ_hello_DQ_
+hello
+ 
+! ======
+list    {"foobar","foobar"}
+             VARIABLE : {"foobar","foobar"}
+             SUBSET   : 2 points (X)
+ 1   / 1:"foobar"
+ 2   / 2:"foobar"
+let a = {"foobar","foobar"}
+list a
+             VARIABLE : {"foobar","foobar"}
+             SUBSET   : 2 points (X)
+ 1   / 1:"foobar"
+ 2   / 2:"foobar"
+ 
+list    {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+             VARIABLE : {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+             SUBSET   : 2 points (X)
+ 1   / 1:"foobar"
+ 2   / 2:"foobar"
+let a = {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+list a
+             VARIABLE : {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+             SUBSET   : 2 points (X)
+ 1   / 1:"foobar"
+ 2   / 2:"foobar"
+ 
+list    {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_} ! DQ used to protect '"'
+             VARIABLE : {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_}
+             SUBSET   : 2 points (X)
+ 1   / 1:""foobar""
+ 2   / 2:""foobar""
+let a = {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_}
+list a
+             VARIABLE : {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_}
+             SUBSET   : 2 points (X)
+ 1   / 1:""foobar""
+ 2   / 2:""foobar""
+ 
+! ======
+list    {SPAWN:"ls weird_name1.cdf","foobar"}
+             VARIABLE : {SPAWN:"ls weird_name1.cdf","foobar"}
+             SUBSET   : 2 points (X)
+ 1   / 1:"weird_name1.cdf"
+ 2   / 2:"foobar"         
+let a = {SPAWN:"ls weird_name1.cdf","foobar"}
+list a
+             VARIABLE : {SPAWN:"ls weird_name1.cdf","foobar"}
+             SUBSET   : 2 points (X)
+ 1   / 1:"weird_name1.cdf"
+ 2   / 2:"foobar"         
+ 
+list    {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+             VARIABLE : {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+             SUBSET   : 2 points (X)
+ 1   / 1:"weird_name1.cdf"
+ 2   / 2:"foobar"         
+let a = {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+list a
+             VARIABLE : {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+             SUBSET   : 2 points (X)
+ 1   / 1:"weird_name1.cdf"
+ 2   / 2:"foobar"         
+ 
+list    {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_} ! DQ protects '"'
+             VARIABLE : {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+             SUBSET   : 2 points (X)
+ 1   / 1:"weird_name1.cdf"
+ 2   / 2:"foobar"         
+let a = {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+list a
+             VARIABLE : {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+             SUBSET   : 2 points (X)
+ 1   / 1:"weird_name1.cdf"
+ 2   / 2:"foobar"         
+ 
+! ======
+! in repl_exprns:
+say `"=" EQ "="`
+ !-> MESSAGE/CONTINUE 1
+1
+say `_DQ_=_DQ_ EQ _DQ_=_DQ_`
+ !-> MESSAGE/CONTINUE 1
+1
+say `_DQ_"="_DQ_ EQ _DQ_"="_DQ_`            ! DQ used to protect '"'
+ !-> MESSAGE/CONTINUE 1
+1
+ 
+! in xeq_if:
+IF 1 THEN SAY "I is too big" ENDIF
+I is too big
+IF 1 THEN SAY _DQ_I is too big_DQ_ ENDIF
+I is too big
+IF 1 THEN SAY _DQ_"I is too big"_DQ_ ENDIF  ! DQ used to protect '"'
+"I is too big"
+ 
+! ======
+DEFINE SYMBOL a    "foobar"
+say ($a)
+ !-> MESSAGE/CONTINUE foobar
+foobar
+DEFINE SYMBOL a _DQ_foobar_DQ_
+say ($a)
+ !-> MESSAGE/CONTINUE foobar
+foobar
+ 
+! ======
+DEFINE SYMBOL a    "(`foobar,return=xaxis`)"
+ !-> DEFINE SYMBOL a    "(ABSTRACT)"
+say ($a)
+ !-> MESSAGE/CONTINUE (ABSTRACT)
+(ABSTRACT)
+DEFINE SYMBOL a _DQ_(`foobar,return=xaxis`)_DQ_
+ !-> DEFINE SYMBOL a _DQ_(ABSTRACT)_DQ_
+say ($a)
+ !-> MESSAGE/CONTINUE (ABSTRACT)
+(ABSTRACT)
+ 
+! ======
+GO bn_DQ.sub _DQ_+-/_SQ_\!foo"bar;_SQ_"_DQ_    "_DQ_+-/_SQ_\!foobar;_SQ_"
+! bn_DQ.sub   arg_with_DQ    arg_with_quotes
+ 
+SAY _DQ_ "-quotations   ok as in $1%any_arg_with_quotes%_DQ_
+ !-> MESSAGE/CONTINUE _DQ_ "-quotations   ok as in +-/_SQ_!foo"bar;_SQ_"_DQ_
+ "-quotations   ok as in +-/_SQ_!foo"bar;_SQ_"
+SAY    "_DQ_ delimiters ok as in $2%any_arg_with_DQ%"
+ !-> MESSAGE/CONTINUE    "_DQ_ delimiters ok as in _DQ_+-/_SQ_!foobar;_SQ_"
+_DQ_ delimiters ok as in _DQ_+-/_SQ_!foobar;_SQ_
+ 
+ 
+! ======  string arguments to functions
+list STRCAT(   "HELL"   ,   "O"   )
+             VARIABLE : STRCAT(   "HELL"   ,   "O"   )
+        "HELLO"
+list STRCAT(_DQ_HELL_DQ_,_DQ_O_DQ_)
+             VARIABLE : STRCAT(_DQ_HELL_DQ_,_DQ_O_DQ_)
+        "HELLO"
+ 
+! ======
+let/title=   "title of A"    a = 1
+list a
+             VARIABLE : title of A
+          1.000
+let/title=_DQ_title of A_DQ_ a = 1
+list a
+             VARIABLE : title of A
+          1.000
+let/title=_DQ_"title of A"_DQ_ a = 1        ! DQ used to protect '"'
+list a
+             VARIABLE : "title of A"
+          1.000
+ 
+! ======
+use weird_name1.cdf
+list    'v2-and-minus'[i=4:6]
+             VARIABLE : SIN(2+I/10)
+             FILENAME : weird_name1.cdf
+             SUBSET   : 3 points (X)
+ 4   / 4:  0.6755
+ 5   / 5:  0.5985
+ 6   / 6:  0.5155
+list _SQ_v2-and-minus_SQ_[i=4:6]
+             VARIABLE : SIN(2+I/10)
+             FILENAME : weird_name1.cdf
+             SUBSET   : 3 points (X)
+ 4   / 4:  0.6755
+ 5   / 5:  0.5985
+ 6   / 6:  0.5155
+list    'v2-and-minus'[i=4:6]
+             VARIABLE : SIN(2+I/10)
+             FILENAME : weird_name1.cdf
+             SUBSET   : 3 points (X)
+ 4   / 4:  0.6755
+ 5   / 5:  0.5985
+ 6   / 6:  0.5155
+list _SQ_v2-and-minus_SQ_[i=4:6]
+             VARIABLE : SIN(2+I/10)
+             FILENAME : weird_name1.cdf
+             SUBSET   : 3 points (X)
+ 4   / 4:  0.6755
+ 5   / 5:  0.5985
+ 6   / 6:  0.5155
+list    'v2-and-minus'[i=4:6]    / 'X'[i=4:6]
+             VARIABLE : 'v2-and-minus'[I=4:6]    / 'X'[I=4:6]
+             FILENAME : weird_name1.cdf
+             SUBSET   : 3 points (X)
+ 4   / 4: -0.8741
+ 5   / 5: -0.8482
+ 6   / 6: -0.8166
+list _SQ_v2-and-minus_SQ_[i=4:6] / _SQ_X_SQ_[i=4:6]
+             VARIABLE : _SQ_v2-and-minus_SQ_[I=4:6] / _SQ_X_SQ_[I=4:6]
+             FILENAME : weird_name1.cdf
+             SUBSET   : 3 points (X)
+ 4   / 4: -0.8741
+ 5   / 5: -0.8482
+ 6   / 6: -0.8166
+ 
+! ======
+SET REGION/T=   "1-jan-2001":"15-jan-2001"
+SHOW REGION
+default region:
+        X/I is unspecified
+        Y/J is unspecified
+        Z/K is unspecified
+        T=-6.3146E+10:-6.3147E+10
+        E/M is unspecified
+        F/N is unspecified
+SET REGION/T=_DQ_1-jan-2001_DQ_:_DQ_15-jan-2001_DQ_
+SHOW REGION
+default region:
+        X/I is unspecified
+        Y/J is unspecified
+        Z/K is unspecified
+        T=-6.3146E+10:-6.3147E+10
+        E/M is unspecified
+        F/N is unspecified
+! ==> THE clean_draconian FILTER REMOVES THE FOLLOWING DATE-TIME LINES FROM LOG
+SET REGION/T=   "1-jan-2001:12:00":"15-jan-2001 12:00"
+SHOW REGION
+default region:
+        X/I is unspecified
+        Y/J is unspecified
+        Z/K is unspecified
+        T=-6.3146E+10:-6.3147E+10
+        E/M is unspecified
+        F/N is unspecified
+SET REGION/T=_DQ_1-jan-2001:12:00_DQ_:_DQ_15-jan-2001 12:00_DQ_
+SHOW REGION
+default region:
+        X/I is unspecified
+        Y/J is unspecified
+        Z/K is unspecified
+        T=-6.3146E+10:-6.3147E+10
+        E/M is unspecified
+        F/N is unspecified
+ 
+! ======
+DEFINE ATTRIBUTE foobar.some_text =    "some text about foobar"
+SHOW ATTRIBUTE/ALL foobar
+     attributes for user-defined variables
+ foobar.long_name = 1 
+ foobar.missing_value = -1.E+34
+ foobar.some_text = some text about foobar 
+DEFINE ATTRIBUTE foobar.some_text = _DQ_some text about foobar_DQ_
+SHOW ATTRIBUTE/ALL foobar
+     attributes for user-defined variables
+ foobar.long_name = 1 
+ foobar.missing_value = -1.E+34
+ foobar.some_text = some text about foobar 
+DEFINE ATTR foobar.some_text = _DQ_"quoted attribute"_DQ_ ! DQ protects '"'
+SHOW ATTRIBUTE/ALL foobar
+     attributes for user-defined variables
+ foobar.long_name = 1 
+ foobar.missing_value = -1.E+34
+ foobar.some_text = "quoted attribute" 
+ 
+! ======
+SPAWN    "ls weird_name1.*"
+weird_name1.cdf
+SPAWN _DQ_ls weird_name1.*_DQ_
+weird_name1.cdf
+ 
+! ======
+LET a = {"first.nc", SPAWN:   "ls weird_name1.*"   ,"last.nc"}
+LIST a
+             VARIABLE : {"first.nc", SPAWN:   "ls weird_name1.*"   ,"last.nc"}
+             SUBSET   : 3 points (X)
+ 1   / 1:"first.nc"       
+ 2   / 2:"weird_name1.cdf"
+ 3   / 3:"last.nc"        
+LET a = {"first.nc", SPAWN:_DQ_ls weird_name1.*_DQ_,"last.nc"}
+LIST a
+             VARIABLE : {"first.nc", SPAWN:_DQ_ls weird_name1.*_DQ_,"last.nc"}
+             SUBSET   : 3 points (X)
+ 1   / 1:"first.nc"       
+ 2   / 2:"weird_name1.cdf"
+ 3   / 3:"last.nc"        
+ 
+! =========================
+! !!!!!!  TEMPORARY LINE
+! !!!!!!  see bug report err693_xeq_show.jnl
+show data   ! to side step dset=-1 left behind by SHOW ATTRIBUTE previously
+     currently SET data sets:
+    1> ./weird_name1.cdf  (default)
+ name     title                             I         J         K         L         M         N
+ v1       lower case v1                    1:20      ...       ...       ...       ...       ...
+ v2-and-minus
+          SIN(2+I/10)                      1:20      ...       ...       ...       ...       ...
+ V1       Upper case V1                    1:20      ...       ...       ...       ...       ...
+ I        SIN(4+I/10)                      1:20      ...       ...       ...       ...       ...
+ X        SIN(5+I/10)                      1:20      ...       ...       ...       ...       ...
+ 
+! !!!!!!
+! =========================
+                                                                                ! ======
+define grid/x=_DQ_v1_DQ_ gg
+show grid gg
+    GRID GG
+ name       axis              # pts   start                end
+ XAX1_20   X                   20 r   1                    20
+ normal    Y
+ normal    Z
+ normal    T
+ normal    E
+ normal    F
+ 
+! ======
+LET/TITLE= _DQ_'A title w/ "sq"'. Ship_Ka'imimoana_DQ_ A = 1 ! ' char for emacs
+LIST A
+             VARIABLE : 'A title w/ "sq"'. Ship_Ka'imimoana
+          1.000
+ 
+! ======
+contour/LEVELS=    "(-10,10,2)DARK(-10,10,8)"    \
+               10*SIN(X[x=1:5:.1])*COS(Y[Y=1:5:.1])
+contour/LEVELS= _DQ_(-10,10,2)DARK(-10,10,8)_DQ_ \
+               10*SIN(X[x=1:5:.1])*COS(Y[Y=1:5:.1])
+ 
+! ====== parse, parsex routines
+!plot/set x[i=1:3]^2
+!ppl title    "'A title w/ single quotes'. Ship Ka'imimoana"
+!ppl plot
+!label 2,5,0 "'A title w/ single quotes'. Ship Ka'imimoana"
+ 
+plot/set x[i=1:3]^2
+ppl title _DQ_'A title w/ "single quotes"'. Ship_Ka'imimoana_DQ_ ! ' for emacs
+ppl plot
+label 2,5,0 _DQ_'A title w/ "single quotes"'. Ship_Ka'imimoana_DQ_ ! ' emacs
+ppl %label 2,4,0 _DQ_'A title w/ "single quotes"'. Ship_Ka'imimoana_DQ_ ! ' emacs
+ 
+! ======  EQUAL_PEMUTE
+list/order=_DQ_yx_DQ_ 10*i[i=1:3] + j[j=1:2]
+             VARIABLE : 10*I[I=1:3] + J[J=1:2]
+             SUBSET   : 2 by 3 points (Y-X)
+             1      2    
+             1      2
+ 1   / 1:  11.00  12.00
+ 2   / 2:  21.00  22.00
+ 3   / 3:  31.00  32.00
+ 
+! ======  EQUAL_COLOR
+plot/color=_DQ_red_DQ_ i[i=1:100]^2
+ 
+! ======  EQUAL_RANGE
+plot/vlim=-2:2/hlim="1-jan-1980":"15-feb-1980" \
+    SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+plot/vlim=-2:2/hlim=_DQ_1-jan-1980_DQ_:_DQ_15-feb-1980_DQ_ \
+    SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+! ==> THE clean_draconian FILTER REMOVES THE FOLLOWING DATE-TIME LINES FROM LOG
+plot/vlim=-2:2/hlim="1-jan-1980":"15-feb-1980:12:00" \
+    SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+plot/vlim=-2:2/hlim=_DQ_1-jan-1980_DQ_:_DQ_15-feb-1980:12:00_DQ_ \
+    SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+ 
+! the following usages for _DQ_ and _SQ_ are NOT supported:
+! 1. internal PLOT+ syntax
+!    e.g. PPL XFOR (i5, ''LONW'')
+ 
+! 2. quote used as a delimiter for symbol substitution
+!    e.g. ($mysymbol"0|red>1|green>2")     ! several single char als.  e.g. "%"
+ 
+! in xeq_set:  double quotes around SET MODE argument -- _DQ_ not supported
+ 
+! in put_label: special hack for "'date'" -- _SQ_ not supported
+ 
+! it isn't clear that there is really a requirement for the _SQ_ syntax at all
+! since we are adding this feature to meet our own needs in LAS, we won't
+! make the extra effort to hit all of the obscure cases.  As a result, the
+! occurrences of IF string .EQ. "'" in these routines will be ignored
+!   - break_varname
+!   - break_varattname
+!   - inherit_attrs
+ 
+! in xeq_define.F:  DEFINE AXIS/NAME='my-name' is of unclear purpose
+*** Running test: bn695_bug_fixes.jnl
+[?1034h! bn695_bug_fixes
+! test various fixes that went into version 6.95
+ 
+GO bn_reset
+cancel mode verify
+GO err694_shf_missing
+! err694_shf_missing.jnl
+! Test the fix for ticket 2314
+ 
+! This had been getting a missing-result; now is correct
+use gt4d011.cdf
+list/i=100/j=50/k=1/l=24 temp[l=@shf]
+             VARIABLE : TEMPERATURE (deg. C)
+             FILENAME : gt4d011.cdf
+             LONGITUDE: 130.5W
+             LATITUDE : 1.5N
+             DEPTH (m): 5
+             TIME     : 04-JAN-1983 10:00 (shifted by 1 pts)
+          32.10
+ 
+! Check shift that takes us beyond the end of a modulo axis (at x=20)
+can dat/all; use coads_climatology
+list/x=10:30/y=-60/l=1  sst
+             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 10 points (LONGITUDE)
+             LATITUDE : 61S
+             TIME     : 16-JAN 06:00
+               61S   
+               15
+ 11E   / -4:  0.447
+ 13E   / -3:  0.179
+ 15E   / -2:  0.521
+ 17E   / -1:  0.229
+ 19E   /  0:  0.727
+ 21E   /  1:  0.844
+ 23E   /  2:  0.440
+ 25E   /  3:  0.620
+ 27E   /  4:  0.873
+ 29E   /  5:  1.062
+list/x=10:30/y=-60/l=1  sst[i=@shf:3]
+             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
+                        shifted by 3 pts on X
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 10 points (LONGITUDE)
+             LATITUDE : 61S
+             TIME     : 16-JAN 06:00
+               61S   
+               15
+ 11E   / -4:  0.229
+ 13E   / -3:  0.727
+ 15E   / -2:  0.844
+ 17E   / -1:  0.440
+ 19E   /  0:  0.620
+ 21E   /  1:  0.873
+ 23E   /  2:  1.062
+ 25E   /  3:  1.261
+ 27E   /  4:  1.395
+ 29E   /  5:  1.010
+ 
+GO bn_reset
+cancel mode verify
+GO err694_longname_showdat
+! err694_longname_showdat.jnl
+! ticket 2317
+!
+! Make a file whose name starts the same as file with long name.
+sp rm WestCoastCarbon_9d9c_f562_77b5_5.nc
+sp ln -s WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc WestCoastCarbon_9d9c_f562_77b5_5.nc
+ 
+use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+ 
+! Long name was not matched by SHOW DAT filename
+! this previously returned an unknown dataset error
+sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
+     currently SET data sets:
+    1> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc  (default)
+ name     title                             I         J         K         L         M         N
+ PROF     Prof                             ...       ...       ...       ...       1:21      ...
+ TIME     Time                             ...       ...       ...       ...       1:21      ...
+ LATITUDE Latitude                         ...       ...       ...       ...       1:21      ...
+ LONGITUDE
+          Longitude                        ...       ...       ...       ...       1:21      ...
+ ROWSIZE  Number of Observations for this  ...       ...       ...       ...       1:21      ...
+ PRESS_DB PRESS_DB                         1:373     ...       ...       ...       ...       ...
+ PCO2     PCO2                             1:373     ...       ...       ...       ...       ...
+ 
+ 
+! If a file matched to 1st 32 characters, the shorter-named
+! datset was mistakenly returned.
+ 
+use WestCoastCarbon_9d9c_f562_77b5_5
+sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
+     currently SET data sets:
+    1> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+ name     title                             I         J         K         L         M         N
+ PROF     Prof                             ...       ...       ...       ...       1:21      ...
+ TIME     Time                             ...       ...       ...       ...       1:21      ...
+ LATITUDE Latitude                         ...       ...       ...       ...       1:21      ...
+ LONGITUDE
+          Longitude                        ...       ...       ...       ...       1:21      ...
+ ROWSIZE  Number of Observations for this  ...       ...       ...       ...       1:21      ...
+ PRESS_DB PRESS_DB                         1:373     ...       ...       ...       ...       ...
+ PCO2     PCO2                             1:373     ...       ...       ...       ...       ...
+ 
+ 
+sp rm WestCoastCarbon_9d9c_f562_77b5_5.nc
+ 
+GO bn_reset
+cancel mode verify
+GO err693_std4d
+! err693_std4d
+! Check fix to ticket 2319: std transform in multi-dimensions
+ 
+ 
+let a = x[gx=1:3:1] * y[gy=1:3:1]
+let astd = a[x=@std,y=@std]
+let avar = a[x=@var,y=@var]
+let a2 = a^2
+let avar_calc = a2[x=@ave,y=@ave] - a[x=@ave,y=@ave]^2
+let astd_x = a[x=@std]
+let astd_x_y = astd_x[y=@std]
+ 
+! STD and VAR in x and y together; vs astd_x_y separately
+list astd^2, avar, avar_calc, astd_x_y^2
+             X: 0.5 to 3.5
+             Y: 0.5 to 3.5
+ Column  1: EX#1 is ASTD^2
+ Column  2: AVAR is A[X=@VAR,Y=@VAR]
+ Column  3: AVAR_CALC is A2[X=@AVE,Y=@AVE] - A[X=@AVE,Y=@AVE]^2
+ Column  4: EX#4 is ASTD_X_Y^2
+           EX#1   AVAR  AVAR_CA   EX#4
+I / *:     5.778  5.778   5.778  0.4444
+ 
+ 
+! Now in the E and F directions
+ 
+let a = _e[ge=1:3:1] * _f[gf=1:3:1]
+let astd = a[e=@std,f=@std]
+let avar = a[e=@var,f=@var]
+let a2 = a^2
+let avar_calc = a2[e=@ave,f=@ave] - a[e=@ave,f=@ave]^2
+let astd_e = a[e=@std]
+let astd_e_f = astd_e[f=@std]
+ 
+list astd^2, avar, avar_calc, astd_e_f^2
+             E: 0.5 to 3.5
+             F: 0.5 to 3.5
+ Column  1: EX#1 is ASTD^2
+ Column  2: AVAR is A[E=@VAR,F=@VAR]
+ Column  3: AVAR_CALC is A2[E=@AVE,F=@AVE] - A[E=@AVE,F=@AVE]^2
+ Column  4: EX#4 is 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
+[?1034h! bn_f_from_tax_fcns.jnl
+! test tax_* functions returning results from a
+! time-formatted axis in the F direction
+!
+! 2/2015 ACM
+ 
+define axis/f=1-jan-2011:31-jan-2011:1/units=hours fax
+ 
+ 
+ 
+let ff = _f[gf=fax]
+! Test RETURN=F0
+say `ff,return=F0`
+ !-> MESSAGE/CONTINUE 15-JAN-1901
+15-JAN-1901
+ 
+list/N=20:30 tax_datestring(_F[g=ff],ff,"minute")
+             VARIABLE : TAX_DATESTRING(_F[G=FF],FF,"minute")
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:"01-JAN-2011 19:00"
+ 01-JAN-2011 20:00 / 21:"01-JAN-2011 20:00"
+ 01-JAN-2011 21:00 / 22:"01-JAN-2011 21:00"
+ 01-JAN-2011 22:00 / 23:"01-JAN-2011 22:00"
+ 01-JAN-2011 23:00 / 24:"01-JAN-2011 23:00"
+ 02-JAN-2011 00:00 / 25:"02-JAN-2011 00:00"
+ 02-JAN-2011 01:00 / 26:"02-JAN-2011 01:00"
+ 02-JAN-2011 02:00 / 27:"02-JAN-2011 02:00"
+ 02-JAN-2011 03:00 / 28:"02-JAN-2011 03:00"
+ 02-JAN-2011 04:00 / 29:"02-JAN-2011 04:00"
+ 02-JAN-2011 05:00 / 30:"02-JAN-2011 05:00"
+list/N=20:30 tax_datestring(_F[g=ff],ff,"hour")
+             VARIABLE : TAX_DATESTRING(_F[G=FF],FF,"hour")
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:"01-JAN-2011 19"
+ 01-JAN-2011 20:00 / 21:"01-JAN-2011 20"
+ 01-JAN-2011 21:00 / 22:"01-JAN-2011 21"
+ 01-JAN-2011 22:00 / 23:"01-JAN-2011 22"
+ 01-JAN-2011 23:00 / 24:"01-JAN-2011 23"
+ 02-JAN-2011 00:00 / 25:"02-JAN-2011 00"
+ 02-JAN-2011 01:00 / 26:"02-JAN-2011 01"
+ 02-JAN-2011 02:00 / 27:"02-JAN-2011 02"
+ 02-JAN-2011 03:00 / 28:"02-JAN-2011 03"
+ 02-JAN-2011 04:00 / 29:"02-JAN-2011 04"
+ 02-JAN-2011 05:00 / 30:"02-JAN-2011 05"
+list/N=20:30 tax_datestring(_F[g=ff],ff,"day")
+             VARIABLE : TAX_DATESTRING(_F[G=FF],FF,"day")
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:"01-JAN-2011"
+ 01-JAN-2011 20:00 / 21:"01-JAN-2011"
+ 01-JAN-2011 21:00 / 22:"01-JAN-2011"
+ 01-JAN-2011 22:00 / 23:"01-JAN-2011"
+ 01-JAN-2011 23:00 / 24:"01-JAN-2011"
+ 02-JAN-2011 00:00 / 25:"02-JAN-2011"
+ 02-JAN-2011 01:00 / 26:"02-JAN-2011"
+ 02-JAN-2011 02:00 / 27:"02-JAN-2011"
+ 02-JAN-2011 03:00 / 28:"02-JAN-2011"
+ 02-JAN-2011 04:00 / 29:"02-JAN-2011"
+ 02-JAN-2011 05:00 / 30:"02-JAN-2011"
+list/N=20:30 tax_dayfrac(_F[g=ff],ff)
+             VARIABLE : TAX_DAYFRAC(_F[G=FF],FF)
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:  0.7917
+ 01-JAN-2011 20:00 / 21:  0.8333
+ 01-JAN-2011 21:00 / 22:  0.8750
+ 01-JAN-2011 22:00 / 23:  0.9167
+ 01-JAN-2011 23:00 / 24:  0.9583
+ 02-JAN-2011 00:00 / 25:  0.0000
+ 02-JAN-2011 01:00 / 26:  0.0417
+ 02-JAN-2011 02:00 / 27:  0.0833
+ 02-JAN-2011 03:00 / 28:  0.1250
+ 02-JAN-2011 04:00 / 29:  0.1667
+ 02-JAN-2011 05:00 / 30:  0.2083
+list/N=20:30 tax_day(_F[g=ff],ff)
+             VARIABLE : TAX_DAY(_F[G=FF],FF)
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:  1.000
+ 01-JAN-2011 20:00 / 21:  1.000
+ 01-JAN-2011 21:00 / 22:  1.000
+ 01-JAN-2011 22:00 / 23:  1.000
+ 01-JAN-2011 23:00 / 24:  1.000
+ 02-JAN-2011 00:00 / 25:  2.000
+ 02-JAN-2011 01:00 / 26:  2.000
+ 02-JAN-2011 02:00 / 27:  2.000
+ 02-JAN-2011 03:00 / 28:  2.000
+ 02-JAN-2011 04:00 / 29:  2.000
+ 02-JAN-2011 05:00 / 30:  2.000
+list/N=20:30 tax_jday(_F[g=ff],ff)
+             VARIABLE : TAX_JDAY(_F[G=FF],FF)
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:  1.000
+ 01-JAN-2011 20:00 / 21:  1.000
+ 01-JAN-2011 21:00 / 22:  1.000
+ 01-JAN-2011 22:00 / 23:  1.000
+ 01-JAN-2011 23:00 / 24:  1.000
+ 02-JAN-2011 00:00 / 25:  2.000
+ 02-JAN-2011 01:00 / 26:  2.000
+ 02-JAN-2011 02:00 / 27:  2.000
+ 02-JAN-2011 03:00 / 28:  2.000
+ 02-JAN-2011 04:00 / 29:  2.000
+ 02-JAN-2011 05:00 / 30:  2.000
+list/N=20:30 tax_month(_F[g=ff],ff)
+             VARIABLE : TAX_MONTH(_F[G=FF],FF)
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:  1.000
+ 01-JAN-2011 20:00 / 21:  1.000
+ 01-JAN-2011 21:00 / 22:  1.000
+ 01-JAN-2011 22:00 / 23:  1.000
+ 01-JAN-2011 23:00 / 24:  1.000
+ 02-JAN-2011 00:00 / 25:  1.000
+ 02-JAN-2011 01:00 / 26:  1.000
+ 02-JAN-2011 02:00 / 27:  1.000
+ 02-JAN-2011 03:00 / 28:  1.000
+ 02-JAN-2011 04:00 / 29:  1.000
+ 02-JAN-2011 05:00 / 30:  1.000
+list/N=20:30 tax_yearfrac(_F[g=ff],ff)
+             VARIABLE : TAX_YEARFRAC(_F[G=FF],FF)
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:  0.004909
+ 01-JAN-2011 20:00 / 21:  0.005023
+ 01-JAN-2011 21:00 / 22:  0.005137
+ 01-JAN-2011 22:00 / 23:  0.005251
+ 01-JAN-2011 23:00 / 24:  0.005365
+ 02-JAN-2011 00:00 / 25:  0.005479
+ 02-JAN-2011 01:00 / 26:  0.005594
+ 02-JAN-2011 02:00 / 27:  0.005708
+ 02-JAN-2011 03:00 / 28:  0.005822
+ 02-JAN-2011 04:00 / 29:  0.005936
+ 02-JAN-2011 05:00 / 30:  0.006050
+list/N=20:30 tax_year(_F[g=ff],ff)
+             VARIABLE : TAX_YEAR(_F[G=FF],FF)
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:  2011.
+ 01-JAN-2011 20:00 / 21:  2011.
+ 01-JAN-2011 21:00 / 22:  2011.
+ 01-JAN-2011 22:00 / 23:  2011.
+ 01-JAN-2011 23:00 / 24:  2011.
+ 02-JAN-2011 00:00 / 25:  2011.
+ 02-JAN-2011 01:00 / 26:  2011.
+ 02-JAN-2011 02:00 / 27:  2011.
+ 02-JAN-2011 03:00 / 28:  2011.
+ 02-JAN-2011 04:00 / 29:  2011.
+ 02-JAN-2011 05:00 / 30:  2011.
+list/N=20:30 tax_jday1900(_F[g=ff],ff)
+             VARIABLE : TAX_JDAY1900(_F[G=FF],FF)
+             SUBSET   : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:  40542.
+ 01-JAN-2011 20:00 / 21:  40542.
+ 01-JAN-2011 21:00 / 22:  40542.
+ 01-JAN-2011 22:00 / 23:  40542.
+ 01-JAN-2011 23:00 / 24:  40542.
+ 02-JAN-2011 00:00 / 25:  40543.
+ 02-JAN-2011 01:00 / 26:  40543.
+ 02-JAN-2011 02:00 / 27:  40543.
+ 02-JAN-2011 03:00 / 28:  40543.
+ 02-JAN-2011 04:00 / 29:  40543.
+ 02-JAN-2011 05:00 / 30:  40543.
+list tax_units(ff)
+             VARIABLE : TAX_UNITS(FF)
+          3600.
+ 
+! commands from tax_tstep, changing time origin
+ 
+DEFINE AXIS/F="1-JAN-2000:00:00:01":"1-JAN-2000:00:15:00":2/UNITS=seconds fsec
+LIST/N=440:451 _F[GF=fsec]
+             VARIABLE : _F
+                        axis FSEC
+             SUBSET   : 12 points (FORECAST)
+ 01-JAN-2000 00:14:39 / 440:  3.123E+09
+ 01-JAN-2000 00:14:41 / 441:  3.123E+09
+ 01-JAN-2000 00:14:43 / 442:  3.123E+09
+ 01-JAN-2000 00:14:45 / 443:  3.123E+09
+ 01-JAN-2000 00:14:47 / 444:  3.123E+09
+ 01-JAN-2000 00:14:49 / 445:  3.123E+09
+ 01-JAN-2000 00:14:51 / 446:  3.123E+09
+ 01-JAN-2000 00:14:53 / 447:  3.123E+09
+ 01-JAN-2000 00:14:55 / 448:  3.123E+09
+ 01-JAN-2000 00:14:57 / 449:  3.123E+09
+ 01-JAN-2000 00:14:59 / 450:  3.123E+09
+ 01-JAN-2000 00:15:01 / 451:  3.123E+09
+LET bsin = SIN(_F[GF=fsec]/40000)
+SAVE/FILE=a.nc/clobber bsin
+CAN VAR/all
+USE a.nc
+ 
+SET LIST/PREC=7
+! Reset the date to dec 1999
+! Function lets us leave off the leading 0.
+LIST/N=1:15  TAX_TSTEP(bsin, "1-dec-1999:00:00:00" )
+             VARIABLE : TAX_TSTEP(BSIN, "1-dec-1999:00:00:00" )
+             FILENAME : a.nc
+             SUBSET   : 15 points (FORECAST)
+ 01-JAN-2000 00:00:01 /  1:  2678401.
+ 01-JAN-2000 00:00:03 /  2:  2678403.
+ 01-JAN-2000 00:00:05 /  3:  2678405.
+ 01-JAN-2000 00:00:07 /  4:  2678407.
+ 01-JAN-2000 00:00:09 /  5:  2678409.
+ 01-JAN-2000 00:00:11 /  6:  2678411.
+ 01-JAN-2000 00:00:13 /  7:  2678413.
+ 01-JAN-2000 00:00:15 /  8:  2678415.
+ 01-JAN-2000 00:00:17 /  9:  2678417.
+ 01-JAN-2000 00:00:19 / 10:  2678419.
+ 01-JAN-2000 00:00:21 / 11:  2678421.
+ 01-JAN-2000 00:00:23 / 12:  2678423.
+ 01-JAN-2000 00:00:25 / 13:  2678425.
+ 01-JAN-2000 00:00:27 / 14:  2678427.
+ 01-JAN-2000 00:00:29 / 15:  2678429.
+ 
+! argument can be upper or lowercase
+! Should list values 1, 3, 5...
+LIST/N=1:15  TAX_TSTEP(bsin, "1-JAN-2000:00:00:00" )
+             VARIABLE : TAX_TSTEP(BSIN, "1-JAN-2000:00:00:00" )
+             FILENAME : a.nc
+             SUBSET   : 15 points (FORECAST)
+ 01-JAN-2000 00:00:01 /  1:   1.00000
+ 01-JAN-2000 00:00:03 /  2:   3.00000
+ 01-JAN-2000 00:00:05 /  3:   5.00000
+ 01-JAN-2000 00:00:07 /  4:   7.00000
+ 01-JAN-2000 00:00:09 /  5:   9.00000
+ 01-JAN-2000 00:00:11 /  6:  11.00000
+ 01-JAN-2000 00:00:13 /  7:  13.00000
+ 01-JAN-2000 00:00:15 /  8:  15.00000
+ 01-JAN-2000 00:00:17 /  9:  17.00000
+ 01-JAN-2000 00:00:19 / 10:  19.00000
+ 01-JAN-2000 00:00:21 / 11:  21.00000
+ 01-JAN-2000 00:00:23 / 12:  23.00000
+ 01-JAN-2000 00:00:25 / 13:  25.00000
+ 01-JAN-2000 00:00:27 / 14:  27.00000
+ 01-JAN-2000 00:00:29 / 15:  29.00000
+ 
+! Test  with TAX_DATESTRING
+ 
+DEFINE AXIS/F="1-JAN-1902:00:00:00":"1-JAN-1902:00:30:00":5/UNITS=seconds fsec
+LIST/N=200:205 _F[GF=fsec]
+             VARIABLE : _F
+                        axis FSEC
+             SUBSET   : 6 points (FORECAST)
+ 01-JAN-1902 00:16:35 / 200:  30327395.
+ 01-JAN-1902 00:16:40 / 201:  30327400.
+ 01-JAN-1902 00:16:45 / 202:  30327405.
+ 01-JAN-1902 00:16:50 / 203:  30327410.
+ 01-JAN-1902 00:16:55 / 204:  30327415.
+ 01-JAN-1902 00:17:00 / 205:  30327420.
+ 
+LET ff = _F[GF=fsec]
+LET reset_date = TAX_DATESTRING(`_F[GF=fsec,n=1]`, ff, "sec")
+ !-> DEFINE VARIABLE reset_date = TAX_DATESTRING(30326400, ff, "sec")
+LIST/N=1:15 TAX_TSTEP(ff, "`reset_date`")
+ !-> LIST/N=1:15 TAX_TSTEP(ff, "01-JAN-1902 00:00:00")
+             VARIABLE : TAX_TSTEP(FF, "01-JAN-1902 00:00:00")
+             SUBSET   : 15 points (FORECAST)
+ 01-JAN-1902 00:00:00 /  1:   0.00000
+ 01-JAN-1902 00:00:05 /  2:   5.00000
+ 01-JAN-1902 00:00:10 /  3:  10.00000
+ 01-JAN-1902 00:00:15 /  4:  15.00000
+ 01-JAN-1902 00:00:20 /  5:  20.00000
+ 01-JAN-1902 00:00:25 /  6:  25.00000
+ 01-JAN-1902 00:00:30 /  7:  30.00000
+ 01-JAN-1902 00:00:35 /  8:  35.00000
+ 01-JAN-1902 00:00:40 /  9:  40.00000
+ 01-JAN-1902 00:00:45 / 10:  45.00000
+ 01-JAN-1902 00:00:50 / 11:  50.00000
+ 01-JAN-1902 00:00:55 / 12:  55.00000
+ 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
+[?1034h! bn_fmrc.jnl
+! initial test of DEFINE DATA/F
+ 
+use "run1.nc"
+use "run2.nc"
+use "run3.nc"
+use "run4.nc"
+ 
+define data/hide/F/agg/title 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
+ normal    Z
+ TF_LAG_T  MODEL ELAPSED TIME (12 r   0                    11
+ normal    E
+ TF_CAL_F  FORECAST             4 r   02-JAN-2010 00:00    08-JAN-2010 00:00
+list/i=1/j=1/L=1:6/n=1:4 sst
+             VARIABLE : SST_IN (Deg C)
+             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    
+                        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
+ 
+show att sst
+     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 
+ 
+! Attribute _ftime2dRef pointe to the 2D time variable
+list/L=1:6/n=1:4 `sst._ftime2dRef`
+ !-> list/L=1:6/n=1:4 TF_TIMES
+             VARIABLE : Forecast time step matrix (day since 01-JAN-2010 00:00:00)
+             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    
+                        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
+ 
+*** Running test: bn_return_defined.jnl
+[?1034h! bn_return_defined.jnl
+! 5/3/2015 *acm*
+! `return=defined` returns 1 if the user variable is defined
+! see ticket 2293
+ 
+let a = b
+say `a,r=defined` `b,r=defined`
+ !-> MESSAGE/CONTINUE 1 0
+1 0
+ 
+! abbreviate to 3 letters
+use levitus_climatology
+let temp2 = 2*temp
+say `temp2,return=def`
+ !-> MESSAGE/CONTINUE 1
+1
+ 
+! returns false for file variables
+say `temp,return=defined`
+ !-> MESSAGE/CONTINUE 0
+0
+*** Running test: bn_can_var_noerr.jnl
+[?1034h! bn_can_var_noerr.jnl
+! CANCEL VARIABLE/NOERROR
+ 
+ 
+let a = 1
+ 
+! intentional error
+set mode ignore
+cancel var b,a
+show var
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+     A = 1
+ 
+cancel mode ignore
+ 
+! specify /noerr and we can issue the command
+ 
+cancel var/noerror a,b
+show var
+ Created by DEFINE VARIABLE:
+ 
+! no effect on CAN VAR/ALL or CAN VAR template_name
+ 
+let a1 = 1
+let a7 = 7
+let c = 12
+ 
+cancel var/noerror name*
+show var
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+     C = 12
+     A7 = 7
+     A1 = 1
+ 
+cancel var/noerror a*
+show var
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+     C = 12
+ 
+cancel var/noerror/all
+show var
+ Created by DEFINE VARIABLE:
+*** Running test: 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.
+!   /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
+ 
+! ANNOTATE /USER
+set v ul
+plot/vs/sym=28/hl=-5:5/vl=-10:10 {-1,1},{-1,1}
+ 
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/USER labels"
+ !-> annotate/nouser/xpos=2.506/ypos=3.42300/halign=0/valign=-8/siz=.25 "ANNOTATE/USER labels"
+annotate/user/xpos=-1/ypos=-1/halign=0/valign=0/angle=-90/siz=0.2 "X"
+annotate/user/xpos=0/ypos=0/halign=0/valign=0/angle=0/siz=0.2 "X"
+annotate/user/xpos=1/ypos=1/halign=0/valign=0/angle=45/siz=0.2 "X"
+ 
+plot/ov/vs/line=1/nolab {-1,1,1,-1,-1},{4,4,6,6,4}
+annotate/user/xpos=0/ypos=5/halign=0/valign=0/angle=0/siz=0.2 "BOX"
+ 
+plot/ov/vs/line=1/nolab .5*{-1,1,1,-1,-1},{-2,-2,-8,-8,-2}
+	annotate/user/xpos=0/ypos=-5/halign=0/valign=0/angle=90/siz=0.2 "BOX"
+ 
+plot/ov/vs/sym=2/size=2/nolab 3,0
+annotate/user/xpos=3/ypos=0/halign=0/valign=1/angle=45/siz=0.2 "TOP"
+annotate/user/xpos=3/ypos=0/halign=0/valign=-1/angle=45/siz=0.2 "BOTTOM"
+ 
+plot/ov/vs/sym=2/size=2/nolab -3,0
+annotate/user/xpos=-3/ypos=0/halign=-1/valign=-1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-1/valign=1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=1/valign=-1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=1/valign=1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-3/valign=-3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-3/valign=3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=3/valign=-3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=3/valign=3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-.99/valign=5/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=.99/valign=5/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-.99/valign=-5/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=.99/valign=-5/angle=45/siz=0.2 "M"
+ 
+ 
+ 
+! ANNOTATE/NORM
+set v ur
+plot/i=1:5/vlim=1:5/hlim=1:5/color=white/nolab i
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/NORM labels"
+ !-> annotate/nouser/xpos=2.506/ypos=3.42300/halign=0/valign=-8/siz=.25 "ANNOTATE/NORM labels"
+ 
+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=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=.5/halign=0/valign=0/angle=0/size=0.14 "DEAD CENTER"
+annotate/norm/xpos=.5/ypos=0/halign=0/valign=1/angle=0/size=0.14 "HANGING FROM BOTTOM"
+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"
+ 
+! ANNOTATE/NOUSER
+set v ll
+plot/i=1:5/vlim=1:5/hlim=1:5/color=white/nolab i
+ 
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels"
+ !-> annotate/nouser/xpos=2.506/ypos=3.42300/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels"
+ 
+! nouser
+annotate/nouser/xpos=0/ypos=0/halign=-1/angle=0/size=0.15 "At Origin"
+annotate/nouser/xpos=0/ypos=0/halign=-3/valign=-3/angle=0/size=0.15 "With/HALIGN=-3/VALIGN=-3"
+ 
+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=5.01200/ypos=3.42300/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"
+ !-> annotate/nouser/xpos=5.01200/ypos=3.42300/halign=4/valign=3/angle=0/siz=0.15 "With/HALIGN=3/VALIGN=4"
+ 
+plot/vs/line/over/color=lightblue/nolab {3,3},{1,6}
+plot/vs/line/over/color=lightblue/nolab {1,5}, {3,3}
+ 
+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 "
+ !-> annotate/nouser/xpos=2.506/ypos=1.7115/halign=0/valign=0/angle=0/siz=0.15 "Arguments locate the first<nl>line of multi-line labels "
+ 
+! angles
+set v lr
+ 
+plot/i=1:5/vlim=1:5/hlim=1:5/color=white/nolab i
+! nouser
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels<nl>Use VALIGN=0"
+ !-> annotate/nouser/xpos=2.506/ypos=3.42300/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels<nl>Use VALIGN=0"
+annotate/nouser/xpos=0/ypos=0/halign=0/valign=0/angle=45/size=0.15 "Center At Origin"
+annotate/nouser/xpos=0/ypos=($ppl$ylen)/halign=-1/valign=0/angle=-45/siz=0.15 "left-align"
+ !-> annotate/nouser/xpos=0/ypos=3.42300/halign=-1/valign=0/angle=-45/siz=0.15 "left-align"
+annotate/nouser/xpos=($ppl$xlen)/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "right-align"
+ !-> annotate/nouser/xpos=5.01200/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "right-align"
+ 
+! Test defaults
+! Default is like PPL user-labels
+! /USER/SIZ=0.12/ANGLE=0/HALIGN=0/VALIGN=-1
+ 
+shade/x=1:2/y=1:2/pal=grayscale i+j
+annotate/xpos=1.5/ypos=1.8 "Anno Label"
+label 1.5,1.6,,,, PPL label
+ 
+ 
+! DEFINE ANNOTATION inside a grapchics call with /SET
+can view
+use gt4d011.cdf
+shade/set temp[k=1,l=1]
+  DEFINE ANNOTATION/user/xpos=224/ypos=-3/halign=0/valign=0/angle=0/siz=.3 "X"
+ppl shade
+ 
+shade/set/j=40/L=1 temp
+  DEFINE ANNOTATION/user/xpos=224/ypos=80/halign=0/valign=0/angle=0/siz=.3 "X"
+ppl shade
+ 
+can data/all
+ 
+plot/set/i=1:5 i
+! nouser
+define annotation/nouser/xpos=0/ypos=0/halign=0/angle=0/size=0.15 "Center At Origin"
+define annotation/nouser/xpos=0/ypos=($ppl$ylen)/halign=-1/angle=0/siz=0.15 "left-align at upper left corner"
+ !-> define annotation/nouser/xpos=0/ypos=6.00000/halign=-1/angle=0/siz=0.15 "left-align at upper left corner"
+define annotation/nouser/xpos=($ppl$xlen)/ypos=0/halign=1/angle=0/siz=0.15 "right-align at lower right corner"
+ !-> define annotation/nouser/xpos=8.00000/ypos=0/halign=1/angle=0/siz=0.15 "right-align at lower right corner"
+! user
+define annotation/user/xpos=3/ypos=2/halign=0/angle=0/siz=0.15 "user units centered at 3,2"
+define annotation/user/xpos=3/ypos=3/halign=-1/angle=0/siz=0.15 "user units left at 3,3"
+define annotation/user/xpos=3/ypos=4/halign=1/angle=0/siz=0.15 "user units right at 3,4"
+ppl plot
+ 
+! angles
+ 
+plot/set/i=1:5 i
+define annotation/nouser/xpos=0/ypos=0/halign=0/angle=45/size=0.15 "Center At Origin"
+define annotation/nouser/xpos=0/ypos=($ppl$ylen)/halign=-1/angle=-45/siz=0.15 "left-align at upper left corner"
+ !-> define annotation/nouser/xpos=0/ypos=6.00000/halign=-1/angle=-45/siz=0.15 "left-align at upper left corner"
+define annotation/nouser/xpos=($ppl$xlen)/ypos=0/halign=1/angle=-45/siz=0.15 "right-align at lower right corner"
+ !-> define annotation/nouser/xpos=8.00000/ypos=0/halign=1/angle=-45/siz=0.15 "right-align at lower right corner"
+! user
+define annotation/user/xpos=3/ypos=2/halign=0/angle=45/siz=0.15 "user units centered at 3,2"
+define annotation/user/xpos=3/ypos=3/halign=-1/angle=45/siz=0.15 "user units left at 3,3"
+define annotation/user/xpos=3/ypos=4/halign=1/angle=45/siz=0.15 "user units right at 3,4"
+ppl plot
+ 
+! DEFINE ANNO/NORM
+plot/i=1:5/nolab/set i
+def anno/norm/xp=.5/yp=1.1/hal=0/ang=0/size=.3 "FLOATING TITLE"
+def anno/norm/xp=.5/yp=-.2/hal=0/ang=0/size=.3 "SUBMERGED TITLE"
+def anno/norm/xp=0/yp=1/hal=-1/ang=0/size=.3 "LEFT/TOP"
+def anno/norm/xp=.5/yp=1/hal=0/ang=0/size=.3 "CTR/TOP"
+def anno/norm/xp=1/yp=1/hal=1/ang=0/size=.3 "RIGHT/TOP"
+def anno/norm/xp=1/yp=.5/hal=0/ang=-90/size=.3 "RIGHT EDGE"
+def anno/norm/xp=0/yp=.5/hal=0/ang=90/size=.3 "LEFT EDGE"
+def anno/norm/xp=.5/yp=.5/hal=0/val=0/ang=0/size=.3 "DEAD CENTER"
+def anno/norm/xp=.5/yp=0/hal=0/val=1/ang=0/size=.3 "HANGING FROM BOTTOM"
+def anno/norm/xp=0/yp=0/hal=-2/val=-2/ang=0/size=.2 "BOTTOM LEFT INSET"
+def anno/norm/xp=0/yp=1/hal=-2/val=2/ang=0/size=.2 "TOP LEFT INSET"
+def anno/norm/xp=1/yp=0/hal=2/val=-2/ang=0/size=.2 "BOTTOM RIGHT INSET"
+def anno/norm/xp=1/yp=1/hal=2/val=2/ang=0/size=.2 "TOP RIGHT INSET"
+ppl plot
+ 
+plot/set/vs/sym=28/hl=-5:5/vl=-10:10 {-1,1},{-1,1}
+ 
+define annotation/user/xpos=-1/ypos=-1/halign=0/valign=0/angle=-90/siz=.5 "X"
+define annotation/user/xpos=0/ypos=0/halign=0/valign=0/angle=0/siz=.5 "X"
+define annotation/user/xpos=1/ypos=1/halign=0/valign=0/angle=45/siz=.5 "X"
+define annotation/user/xpos=0/ypos=5/halign=0/valign=0/angle=0/siz=.5 "BOX"
+define annotation/user/xpos=0/ypos=-5/halign=0/valign=0/angle=90/siz=.5 "BOX"
+define annotation/user/xpos=3/ypos=0/halign=0/valign=1/angle=45/siz=.5 "TOP"
+define annotation/user/xpos=3/ypos=0/halign=0/valign=-1/angle=45/siz=.5 "BOTTOM"
+define annotation/user/xpos=-3/ypos=0/halign=-1/valign=-1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-1/valign=1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=1/valign=-1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=1/valign=1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-3/valign=-3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-3/valign=3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=3/valign=-3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=3/valign=3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-.99/valign=5/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=.99/valign=5/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-.99/valign=-5/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=.99/valign=-5/angle=45/siz=.5 "M"
+ppl list labels
+                                                                                
+ @AS{-1,1}                                                                      
+ @AS{-1,1}                                                                      
+
+          XPOS       YPOS     HGT   ROT   UNITS
+ LAB 1  0.000E+00  6.600E+00 0.120    0  SYSTEM  @ASX : 0.5 to 2.5
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
+ LAB 2 -1.313E+00 -1.000E+00 0.500  -90  USER    X
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 3  0.000E+00 -8.333E-01 0.500    0  USER    X
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 4  1.221E+00  4.107E-01 0.500   45  USER    X
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 5  0.000E+00  4.167E+00 0.500    0  USER    BOX
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 6  3.125E-01 -5.000E+00 0.500   90  USER    BOX
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 7  3.442E+00 -1.179E+00 0.500   45  USER    TOP
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 8  3.000E+00  0.000E+00 0.500   45  USER    BOTTOM
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 9 -3.000E+00  0.000E+00 0.500   45  USER    M
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
+ LAB10 -2.558E+00 -1.179E+00 0.500   45  USER    M
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
+ LAB11 -3.000E+00  0.000E+00 0.500   45  USER    M
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
+ LAB12 -2.558E+00 -1.179E+00 0.500   45  USER    M
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
+ LAB13 -3.000E+00  2.357E+00 0.500   45  USER    M
+ 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 -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
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB18 -1.893E+00 -4.119E+00 0.500   45  USER    M
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB19 -3.665E+00  2.940E+00 0.500   45  USER    M
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB20 -4.103E+00  1.774E+00 0.500   45  USER    M
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ppl plot
+plot/ov/vs/line=1/nolab {-1,1,1,-1,-1},{4,4,6,6,4}
+plot/ov/vs/line=1/nolab .5*{-1,1,1,-1,-1},{-2,-2,-8,-8,-2}
+plot/ov/vs/sym=2/size=2/nolab 3,0
+plot/ov/vs/sym=2/size=2/nolab -3,0
+ 
+! intentional errors
+set mode ignore
+can v
+shade/i=1:2/j=1:2/nokey i+j
+ 
+ 
+! errors in arguments
+annotate/nouser/xpos=a2/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=b/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=0/halign=c/valign=0/angle=-45/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=0/halign=1/valign=d/angle=ee/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=0/halign=1/valign=0/angle=-45/siz=f "My Lab"
+ 
+! missing a location
+annotate/nouser/ypos=0 "My Lab"
+annotate/nouser/xpos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+ 
+! /USER and /NOUSER
+annotate/nouser/user/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+ 
+! define annotation
+ 
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=a2/ypos=0/hal=1/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0,3/ypos=b/hal=1/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=c/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=1/val=d/ang=ee/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=1/val=0/ang=-45/siz=f "My Lab"; ppl plot
+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.15 "My Lab"; ppl plot
+ 
+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
+[?1034h! bn_auxiliary.jnl:  exercise auxiliary coordinate regridding
+ 
+! notes about the 6/2015 version:
+! -- tests 1D regridding, only, as of 6/2015
+! -- includestests the deprecated "LAYERZ" and "__LayerzRef_" automation syntax
+!    ... to be replaced by a different automation syntax in the future
+ 
+! *sh* 6/2015
+ 
+! initialize the test environment
+USE levitus_3d_subset
+SPAWN rm layerz_test_data.txt
+LET Zpts = Z[Z=100:500:100]
+DEFINE AXIS/z/units=meters zax = zpts
+ 
+! conjure a 4D auxiliary variable that contains the same values
+! as the native Z coordinates
+! regridding using this auxiliary variable should give the same results as
+! conventional regridding -- usefuly to validate the results
+LET/D=levitus_3d_subset depth = z[g=temp]+ 0*temp[k=1]
+ 
+!************
+! exercise the syntax of setting layerz associations
+! do same tests on EZ, uvar, and netCDF variable
+ 
+! EZ file variable
+LIST/NOHEAD/FILE=layerz_test_data.txt 1
+FILE/VAR=v layerz_test_data.txt
+! set the layerz link to point to a variable named "depth"
+SET VAR/layerz=depth v
+SHOW VAR/LAYERZ v
+  DEPTH holds the designated vertical (layerz) coordinates of V
+SHOW ATT v
+! modify the layerz link
+SET VAR/layerz=newdepth v
+SHOW VAR/LAYERZ v
+  NEWDEPTH holds the designated vertical (layerz) coordinates of V
+SHOW ATT v
+     attributes for dataset: ./layerz_test_data.txt
+ V.long_name = V 
+ V.missing_value = -1.E+34
+ V.__LayerzRef_ = NEWDEPTH 
+cancel var/layerz v
+SHOW VAR/LAYERZ v
+  No variable holds vertical (layerz) coordinates of V
+SHOW ATT v
+     attributes for dataset: ./layerz_test_data.txt
+ V.long_name = V 
+ V.missing_value = -1.E+34
+CANCEL DATA layerz_test_data.txt
+ 
+! user variable
+! set the layerz link
+LET a = temp
+SET VAR/layerz=depth a
+SHOW VAR/LAYERZ a
+  DEPTH holds the designated vertical (layerz) coordinates of a
+SHOW ATT a
+     attributes for user-defined variables
+ a.long_name = TEMP 
+ a.missing_value = -1.E+34
+ a.__LayerzRef_ = DEPTH 
+! modify the layerz link
+SET VAR/layerz=newdepth a
+SHOW VAR/LAYERZ a
+  NEWDEPTH holds the designated vertical (layerz) coordinates of a
+SHOW ATT a
+     attributes for user-defined variables
+ a.long_name = TEMP 
+ a.missing_value = -1.E+34
+ a.__LayerzRef_ = NEWDEPTH 
+cancel var/layerz a
+SHOW VAR/LAYERZ a
+  No variable holds vertical (layerz) coordinates of a
+SHOW ATT a
+     attributes for user-defined variables
+ a.long_name = TEMP 
+ a.missing_value = -1.E+34
+ 
+! netCDF file variable
+! set the layerz link
+SET VAR/layerz=depth temp[d=levitus_3d_subset]
+SHOW VAR/LAYERZ/d=levitus_3d_subset temp
+  DEPTH holds the designated vertical (layerz) coordinates of TEMP
+SHOW ATT temp.__LayerzRef_[d=levitus_3d_subset]
+     attributes for dataset: ./levitus_3d_subset.nc
+ TEMP.__LayerzRef_ = DEPTH 
+! modify the layerz link
+SET VAR/layerz=newdepth temp[d=levitus_3d_subset]
+SHOW VAR/LAYERZ/d=levitus_3d_subset temp
+  NEWDEPTH holds the designated vertical (layerz) coordinates of TEMP
+SHOW ATT temp.__LayerzRef_[d=levitus_3d_subset]
+     attributes for dataset: ./levitus_3d_subset.nc
+ TEMP.__LayerzRef_ = NEWDEPTH 
+cancel var/layerz temp[d=levitus_3d_subset]
+SHOW VAR/LAYERZ/d=levitus_3d_subset temp
+  No variable holds vertical (layerz) coordinates of TEMP
+SHOW ATT temp[d=levitus_3d_subset]   ! __LayerzRef_ has been deleted
+     attributes for dataset: ./levitus_3d_subset.nc
+ TEMP.missing_value = -1.E+10
+ TEMP._FillValue = -1.E+10
+ TEMP.long_name = TEMPERATURE 
+ TEMP.history = From /home/users/tmap/ferret/linux/fer_dsets/data/levitus_climatology.cdf 
+ TEMP.units = DEG C 
+ 
+! deliberate error
+SET MODE ignore; SET VAR/layerz=depth noexist; SET MODE/last ignore
+ 
+!************
+! exercise the layerz calculations in various situations
+! compare the manually specified syntax with the automated results
+ 
+! make "depth" the layerz coordinate variable for "temp"
+SET VAR/layerz=depth temp[d=levitus_3d_subset]
+ 
+! values of the unadulterated variable
+list/PREC=7 temp[z=0:500]
+             VARIABLE : TEMPERATURE (DEG C)
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 11 points (LONGITUDE-LATITUDE-DEPTH (m))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   0
+ 48.5S / 2:  7.725000  7.917999
+ 49.5S / 1:  6.827000  7.007000
+ ---- K:2 Z:   10
+ 48.5S / 2:  7.726000  7.917999
+ 49.5S / 1:  6.843000  7.021999
+ ---- K:3 Z:   20
+ 48.5S / 2:  7.715000  7.907000
+ 49.5S / 1:  6.840000  7.018999
+ ---- K:4 Z:   30
+ 48.5S / 2:  7.594000  7.789000
+ 49.5S / 1:  6.740999  6.923000
+ ---- K:5 Z:   50
+ 48.5S / 2:  7.410999  7.584000
+ 49.5S / 1:  6.624001  6.785000
+ ---- K:6 Z:   75
+ 48.5S / 2:  7.572001  7.666000
+ 49.5S / 1:  6.750999  6.848000
+ ---- K:7 Z:   100
+ 48.5S / 2:  7.334999  7.436001
+ 49.5S / 1:  6.462000  6.572001
+ ---- K:8 Z:   150
+ 48.5S / 2:  7.372000  7.464001
+ 49.5S / 1:  6.466000  6.573999
+ ---- K:9 Z:   200
+ 48.5S / 2:  6.961000  7.073000
+ 49.5S / 1:  6.025999  6.150000
+ ---- K:10 Z:   300
+ 48.5S / 2:  6.457001  6.636999
+ 49.5S / 1:  5.445000  5.665000
+ ---- K:11 Z:   400
+ 48.5S / 2:  6.181999  6.377001
+ 49.5S / 1:  5.187000  5.410000
+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
+ normal    T
+ normal    E
+ normal    F
+ 
+! use aux var regridding.  Target coordinate points match the source points
+! identically at 0, 100, 200, ... 500
+! values should match the unadulterated variable at these points
+! this command will be issued in diagnostic mode to highlight that the
+! K range over which temp is read is the minimum needed to compute the result
+SET MODE diagnostic
+LET tempz = temp[gz(depth)=zpts]
+LIST/PREC=7 tempz
+ dealloc  dynamic grid GAO1            XAXLEVITR1YAXLEVITR4ZAXLEVITR NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ getgrid TEMPZ    C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ getgrid DEPTH    C:  9 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid GAO1            XAXLEVITR1YAXLEVITR4ZAXLEVITR NORMAL    NORMAL    NORMAL
+ getgrid ZPTS     C:  9 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid (G003)          NORMAL    NORMAL    (AX005)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G003)          NORMAL    NORMAL    (AX005)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G003)          NORMAL    NORMAL    (AX005)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    5  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    TEMPZ    C:  6 dset:   1 I:    1    2  J:    1    2  K:    1    5  L: -999 -999  M: -999 -999  N: -999 -999
+ allocate dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL    NORMAL    NORMAL
+ strip regrid on Z: TEMP --> (G002)           @LIN
+ eval    DEPTH    C:  9 dset:   1 I:    1    2  J:    1    2  K:    1   20  L: -999 -999  M: -999 -999  N: -999 -999
+ pseudo  Z        M:  1 dset:   1 I: -999 -999  J: -999 -999  K:    1   20  L: -999 -999  M: -999 -999  N: -999 -999
+ constan cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ found   TEMP     M:  2 dset:   1 I:    1    2  J:    1    2  K:    1   11  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:  4 dset:   0 I:    1    2  J:    1    2  K:    1    1  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE Z        M:  1 dset:   1 I: -999 -999  J: -999 -999  K:    1   20  L: -999 -999  M: -999 -999  N: -999 -999
+ reading TEMP     M:  1 dset:   1 I:    1    2  J:    1    2  K:    7   12  L: -999 -999  M: -999 -999  N: -999 -999
+ auxgrd  TEMP     M:  4 dset:   1 I:    1    2  J:    1    2  K:    1    5  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL    NORMAL    NORMAL
+             VARIABLE : TEMP[GZ(DEPTH)=ZPTS]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.334999  7.436001
+ 49.5S / 1:  6.462000  6.572001
+ ---- K:2 Z:   200
+ 48.5S / 2:  6.961000  7.073000
+ 49.5S / 1:  6.025999  6.150000
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.457001  6.636999
+ 49.5S / 1:  5.445000  5.665000
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.181999  6.377001
+ 49.5S / 1:  5.187000  5.410000
+ ---- K:5 Z:   500
+ 48.5S / 2:  5.835500  6.045001
+ 49.5S / 1:  4.879000  5.102500
+SHOW GRID tempz
+ dealloc  dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL    NORMAL    NORMAL
+    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
+ normal    T
+ normal    E
+ normal    F
+!LET tempz = temp[gz=zpts,layerz]  ! same regrid using semi-automated notation
+!LIST/PREC=7 tempz
+!SHOW GRID tempz
+SET MODE/last diagnostic
+ 
+! list a little with no imtermediate variable, so Z labeling is visible
+LIST/PREC=7 temp[gz(depth)=zpts,k=1]
+             VARIABLE : TEMPERATURE (DEG C)
+                        regrid: 100 delta on Z at LIN using DEPTH field
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z        : 100
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2:  7.334999  7.436001
+ 49.5S / 1:  6.462000  6.572001
+!LIST/PREC=7 temp[gz=zpts,k=1,layerz] ! same using semi-automated notation
+ 
+! same calculation, but with a named Z axis
+LET tempzax = temp[gz(depth)=zax]
+LIST tempzax
+             VARIABLE : TEMP[GZ(DEPTH)=ZAX]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (METERS))
+             120.5E 121.5E 
+               1      2
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.335  7.436
+ 49.5S / 1:  6.462  6.572
+ ---- K:2 Z:   200
+ 48.5S / 2:  6.961  7.073
+ 49.5S / 1:  6.026  6.150
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.457  6.637
+ 49.5S / 1:  5.445  5.665
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.182  6.377
+ 49.5S / 1:  5.187  5.410
+ ---- K:5 Z:   500
+ 48.5S / 2:  5.835  6.045
+ 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
+ normal    T
+ normal    E
+ normal    F
+!LET tempzax = temp[gz=zax,layerz]  ! same regrid using semi-automated notation
+!LIST tempzax
+!SHOW GRID tempzax
+ 
+! regrid to a different set of Z points
+LET tempz_alt = temp[gz(depth)=2:10:2]
+LIST/PREC=7 tempz_alt
+             VARIABLE : TEMP[GZ(DEPTH)=2:10:2]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   2
+ 48.5S / 2:  7.725200  7.917999
+ 49.5S / 1:  6.830200  7.010000
+ ---- K:2 Z:   4
+ 48.5S / 2:  7.725400  7.917999
+ 49.5S / 1:  6.833400  7.013000
+ ---- K:3 Z:   6
+ 48.5S / 2:  7.725600  7.917999
+ 49.5S / 1:  6.836600  7.016000
+ ---- K:4 Z:   8
+ 48.5S / 2:  7.725800  7.917999
+ 49.5S / 1:  6.839800  7.018999
+ ---- K:5 Z:   10
+ 48.5S / 2:  7.726000  7.917999
+ 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
+ normal    T
+ normal    E
+ normal    F
+ 
+!! do same regrid using the shorhand semi-automated notation
+!LIST/PREC=7 temp[z=2:10:2,layerz]   ! lo:hi:delta notation
+!SHOW GRID
+ 
+! test the shorthand notation var[gz(depth)=100] as an implicit aux var
+! regrid via linear interpolation
+! the value should match the preceding output at Z=6
+LET tempz_1pt = temp[gz(depth)=6]
+LIST/PREC=7 tempz_1pt
+             VARIABLE : TEMP[GZ(DEPTH)=6]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z        : 6
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2:  7.725600  7.917999
+ 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
+ normal    T
+ normal    E
+ normal    F
+ 
+       K     Z                   ZBOX      ZBOXLO
+       1>  6                     6.E-05     5.99997
+ 
+! do same regrid using the shorhand semi-automated notation
+LIST/PREC=7 temp[z=6,layerz]     ! =1pt notation   WILL BE CHANGED!
+             VARIABLE : TEMPERATURE (DEG C)
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             DEPTH (m): 6 (interpolated using DEPTH)
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2:  7.725600  7.917999
+ 49.5S / 1:  6.836600  7.016000
+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
+ normal    T
+ normal    E
+ normal    F
+ 
+! auxiliary points in reverse order
+! to get results that we can check for correctness, we will reverse the Z-order
+! of the temperature field as well as the depth field.
+LET rvtemp0 = ZREVERSE(temp)
+LET rvtemp  = rvtemp0[gz=temp at asn]
+LET rvdepth0 = ZREVERSE(depth)
+LET/D=levitus_3d_subset rvdepth  = rvdepth0[gz=temp at asn]
+! **** NOTE: THERE'S A SUBTLE MISBEHAVIOR IN AUX REGRID SHOWN IN THIS COMMENTED
+! OUT LINE BUT WILL RARELY OCCUR AND EASILY WORKED AROUND
+!LET rvtempzax = rvtemp[gz(rvdepth)=zax]  ! zlims aren't filled in if not given
+LET rvtempzax = rvtemp[gz(rvdepth)=zax,z=100:500]
+LIST/PREC=7 rvtempzax - tempz
+             VARIABLE : RVTEMPZAX - TEMPZ
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+               120.5E     121.5E   
+                 1          2
+ ---- K:1 Z:   100
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ ---- K:2 Z:   200
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ ---- K:3 Z:   300
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ ---- K:4 Z:   400
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ ---- K:5 Z:   500
+ 48.5S / 2:  0.0000000  0.0000000
+ 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
+ normal    T
+ normal    E
+ normal    F
+ 
+! deliberate execution errors:
+LET disordered_depth1 = IF K EQ 3 THEN DEPTH[K=1] ELSE DEPTH
+LET disordered_tempz1 = temp[gz(disordered_depth1)=zax]
+LET disordered_depth2 = IF K EQ 3 THEN DEPTH[K=5] ELSE DEPTH
+LET disordered_tempz2 = temp[gz(disordered_depth2)=zax]
+SET MODE ignore
+LIST disordered_tempz1
+             VARIABLE : TEMP[GZ(DISORDERED_DEPTH1)=ZAX]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (METERS))
+             120.5E 121.5E 
+               1      2
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.335  7.436
+ 49.5S / 1:  6.462  6.572
+ ---- K:2 Z:   200
+ 48.5S / 2:  6.961  7.073
+ 49.5S / 1:  6.026  6.150
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.457  6.637
+ 49.5S / 1:  5.445  5.665
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.182  6.377
+ 49.5S / 1:  5.187  5.410
+ ---- K:5 Z:   500
+ 48.5S / 2:  5.835  6.045
+ 49.5S / 1:  4.879  5.102
+LIST disordered_tempz2
+             VARIABLE : TEMP[GZ(DISORDERED_DEPTH2)=ZAX]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (METERS))
+             120.5E 121.5E 
+               1      2
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.335  7.436
+ 49.5S / 1:  6.462  6.572
+ ---- K:2 Z:   200
+ 48.5S / 2:  6.961  7.073
+ 49.5S / 1:  6.026  6.150
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.457  6.637
+ 49.5S / 1:  5.445  5.665
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.182  6.377
+ 49.5S / 1:  5.187  5.410
+ ---- K:5 Z:   500
+ 48.5S / 2:  5.835  6.045
+ 49.5S / 1:  4.879  5.102
+SET MODE/last ignore
+ 
+! test VTREE with a complex auxiliary variable definitions
+VTREE
+   in default dataset levitus_3d_subset
+   RVTEMPZAX = RVTEMP[GZ(RVDEPTH)=ZAX,Z=100:500]
+     RVTEMP = RVTEMP0[GZ=TEMP at ASN]
+       RVDEPTH = RVDEPTH0[GZ=TEMP at ASN]
+         RVDEPTH0 = ZREVERSE(DEPTH)
+           DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+   DISORDERED_TEMPZ2 = TEMP[GZ(DISORDERED_DEPTH2)=ZAX]
+       DISORDERED_DEPTH2 = IF K EQ 3 THEN DEPTH[K=5] ELSE DEPTH
+         DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+   DISORDERED_TEMPZ1 = TEMP[GZ(DISORDERED_DEPTH1)=ZAX]
+       DISORDERED_DEPTH1 = IF K EQ 3 THEN DEPTH[K=1] ELSE DEPTH
+         DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+   TEMPZ = TEMP[GZ(DEPTH)=ZPTS]
+       regrid to ZPTS = Z[Z=100:500:100]
+       DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+   TEMPZAX = TEMP[GZ(DEPTH)=ZAX]
+       DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+   TEMPZ_1PT = TEMP[GZ(DEPTH)=6]
+   TEMPZ_ALT = TEMP[GZ(DEPTH)=2:10:2]
+   A = TEMP
+ 
+! 6-dimensional regridding
+ 
+! 6d temperature and 3d depth field (depth unchanging in time, ensemble and forecast)
+LET temp6d = temp/100 + 1*L[L=1:2] + 10*_M[M=1:2] + 100*_N[N=1:2]
+!list/k=7:12/PREC=7 temp6d
+LET tempz6d = temp6d[gz(depth)=zpts]
+!LIST/PREC=7 tempz6d
+! compare pre- and post- regrid at a fixed depth
+stat/z=100 temp6d-tempz6d
+ 
+             TEMP6D-TEMPZ6D
+             LONGITUDE: 120E to 122E
+             LATITUDE: 50S to 48S
+             DEPTH (m): 100
+             T: 0.5 to 2.5
+             E: 0.5 to 2.5
+             F: 0.5 to 2.5
+             DATA SET: ./levitus_3d_subset.nc
+ 
+ Total # of data points: 32 (2*2*1*2*2*2)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+ Standard deviation: 0
+stat/z=400 temp6d-tempz6d
+ 
+             TEMP6D-TEMPZ6D
+             LONGITUDE: 120E to 122E
+             LATITUDE: 50S to 48S
+             DEPTH (m): 400
+             T: 0.5 to 2.5
+             E: 0.5 to 2.5
+             F: 0.5 to 2.5
+             DATA SET: ./levitus_3d_subset.nc
+ 
+ Total # of data points: 32 (2*2*1*2*2*2)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+ Standard deviation: 0
+ 
+! 6d temperature and 6d depth field
+! hold temperature constant over time, have depths change
+! note that for N=2 depths of less than 100 are no longer in the data hence missing values at Z=100
+LET temp6d_const = temp + 0*L[L=1:2] + 0*_M[M=1:2] + 0*_N[N=1:2]     ! constant in T,E,F
+LET depth6d = depth + 10*(L[L=1:2]-1) + 50*(_M[M=1:2]-1) + 100*(_N[N=1:2]-1)
+LET tempz6d_tDep = temp6d_const[gz(depth6d)=zpts]
+LIST/PREC=7 tempz6d_tDep
+             VARIABLE : TEMP6D_CONST[GZ(DEPTH6D)=ZPTS]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 by 2 by 2 by 2 points (LONGITUDE-LATITUDE-Z-T-E-F)
+               120.5E    121.5E  
+                 1         2
+ ---- N:1 F:   1
+ ---- M:1 E:   1
+ ---- L:1 T:   1
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.334999  7.436001
+ 49.5S / 1:  6.462000  6.572001
+ ---- K:2 Z:   200
+ 48.5S / 2:  6.961000  7.073000
+ 49.5S / 1:  6.025999  6.150000
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.457001  6.636999
+ 49.5S / 1:  5.445000  5.665000
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.181999  6.377001
+ 49.5S / 1:  5.187000  5.410000
+ ---- K:5 Z:   500
+ 48.5S / 2:  5.835500  6.045001
+ 49.5S / 1:  4.879000  5.102500
+ ---- L:2 T:   2
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.429800  7.528001
+ 49.5S / 1:  6.577600  6.682400
+ ---- K:2 Z:   200
+ 48.5S / 2:  7.043200  7.151200
+ 49.5S / 1:  6.113999  6.234800
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.507401  6.680599
+ 49.5S / 1:  5.503100  5.713500
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.209499  6.403001
+ 49.5S / 1:  5.212800  5.435500
+ ---- K:5 Z:   500
+ 48.5S / 2:  5.870150  6.078201
+ 49.5S / 1:  4.909800  5.133250
+ ---- M:2 E:   2
+ ---- L:1 T:   1
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.410999  7.584000
+ 49.5S / 1:  6.624001  6.785000
+ ---- K:2 Z:   200
+ 48.5S / 2:  7.372000  7.464001
+ 49.5S / 1:  6.466000  6.573999
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.709001  6.855000
+ 49.5S / 1:  5.735499  5.907500
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.319500  6.507000
+ 49.5S / 1:  5.316000  5.537500
+ ---- K:5 Z:   500
+ 48.5S / 2:  6.008749  6.211001
+ 49.5S / 1:  5.033000  5.256250
+ ---- L:2 T:   2
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.502500  7.686500
+ 49.5S / 1:  6.682500  6.854000
+ ---- K:2 Z:   200
+ 48.5S / 2:  7.364600  7.458401
+ 49.5S / 1:  6.465200  6.573600
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.759401  6.898600
+ 49.5S / 1:  5.793599  5.956000
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.347000  6.533000
+ 49.5S / 1:  5.341800  5.563000
+ ---- K:5 Z:   500
+ 48.5S / 2:  6.043399  6.244201
+ 49.5S / 1:  5.063800  5.287000
+ ---- N:2 F:   2
+ ---- M:1 E:   1
+ ---- L:1 T:   1
+ ---- K:1 Z:   100
+ 48.5S / 2:  7.725000  7.917999
+ 49.5S / 1:  6.827000  7.007000
+ ---- K:2 Z:   200
+ 48.5S / 2:  7.334999  7.436001
+ 49.5S / 1:  6.462000  6.572001
+ ---- K:3 Z:   300
+ 48.5S / 2:  6.961000  7.073000
+ 49.5S / 1:  6.025999  6.150000
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.457001  6.636999
+ 49.5S / 1:  5.445000  5.665000
+ ---- K:5 Z:   500
+ 48.5S / 2:  6.181999  6.377001
+ 49.5S / 1:  5.187000  5.410000
+ ---- L:2 T:   2
+ ---- K:1 Z:   100
+ 48.5S / 2:      ....      ....
+ 49.5S / 1:      ....      ....
+ ---- K:2 Z:   200
+ 48.5S / 2:  7.429800  7.528001
+ 49.5S / 1:  6.577600  6.682400
+ ---- K:3 Z:   300
+ 48.5S / 2:  7.043200  7.151200
+ 49.5S / 1:  6.113999  6.234800
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.507401  6.680599
+ 49.5S / 1:  5.503100  5.713500
+ ---- K:5 Z:   500
+ 48.5S / 2:  6.209499  6.403001
+ 49.5S / 1:  5.212800  5.435500
+ ---- M:2 E:   2
+ ---- L:1 T:   1
+ ---- K:1 Z:   100
+ 48.5S / 2:      ....      ....
+ 49.5S / 1:      ....      ....
+ ---- K:2 Z:   200
+ 48.5S / 2:  7.410999  7.584000
+ 49.5S / 1:  6.624001  6.785000
+ ---- K:3 Z:   300
+ 48.5S / 2:  7.372000  7.464001
+ 49.5S / 1:  6.466000  6.573999
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.709001  6.855000
+ 49.5S / 1:  5.735499  5.907500
+ ---- K:5 Z:   500
+ 48.5S / 2:  6.319500  6.507000
+ 49.5S / 1:  5.316000  5.537500
+ ---- L:2 T:   2
+ ---- K:1 Z:   100
+ 48.5S / 2:      ....      ....
+ 49.5S / 1:      ....      ....
+ ---- K:2 Z:   200
+ 48.5S / 2:  7.502500  7.686500
+ 49.5S / 1:  6.682500  6.854000
+ ---- K:3 Z:   300
+ 48.5S / 2:  7.364600  7.458401
+ 49.5S / 1:  6.465200  6.573600
+ ---- K:4 Z:   400
+ 48.5S / 2:  6.759401  6.898600
+ 49.5S / 1:  5.793599  5.956000
+ ---- K:5 Z:   500
+ 48.5S / 2:  6.347000  6.533000
+ 49.5S / 1:  5.341800  5.563000
+LIST/PREC=7/k=7:8 temp6d_const, depth6d  ! reference values at Z=100, 200, 300 for visual comparison
+             DATA SET: ./levitus_3d_subset.nc
+             LONGITUDE: 120E to 122E
+             LATITUDE: 50S to 48S
+             DEPTH (m): 87.5 to 175
+             T: 0.5 to 2.5
+             E: 0.5 to 2.5
+             F: 0.5 to 2.5
+ Column  1: TEMP6D_CONST is TEMP + 0*L[L=1:2] + 0*_M[M=1:2] + 0*_N[N=1:2]
+ Column  2: DEPTH6D is DEPTH + 10*(L[L=1:2]-1) + 50*(_M[M=1:2]-1) + 100*(_N[N=1:2]-1)
+         TEMP6D_CONS   DEPTH6D
+ ---- N:1 F:   1
+ ---- M:1 E:   1
+ ---- L:1 T:   1
+ ---- K:7 Z:   100
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.462000  100.0000
+121.5E / 2:  6.572001  100.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.334999  100.0000
+121.5E / 2:  7.436001  100.0000
+ ---- K:8 Z:   150
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.466000  150.0000
+121.5E / 2:  6.573999  150.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.372000  150.0000
+121.5E / 2:  7.464001  150.0000
+ ---- L:2 T:   2
+ ---- K:7 Z:   100
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.462000  110.0000
+121.5E / 2:  6.572001  110.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.334999  110.0000
+121.5E / 2:  7.436001  110.0000
+ ---- K:8 Z:   150
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.466000  160.0000
+121.5E / 2:  6.573999  160.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.372000  160.0000
+121.5E / 2:  7.464001  160.0000
+ ---- M:2 E:   2
+ ---- L:1 T:   1
+ ---- K:7 Z:   100
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.462000  150.0000
+121.5E / 2:  6.572001  150.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.334999  150.0000
+121.5E / 2:  7.436001  150.0000
+ ---- K:8 Z:   150
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.466000  200.0000
+121.5E / 2:  6.573999  200.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.372000  200.0000
+121.5E / 2:  7.464001  200.0000
+ ---- L:2 T:   2
+ ---- K:7 Z:   100
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.462000  160.0000
+121.5E / 2:  6.572001  160.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.334999  160.0000
+121.5E / 2:  7.436001  160.0000
+ ---- K:8 Z:   150
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.466000  210.0000
+121.5E / 2:  6.573999  210.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.372000  210.0000
+121.5E / 2:  7.464001  210.0000
+ ---- N:2 F:   2
+ ---- M:1 E:   1
+ ---- L:1 T:   1
+ ---- K:7 Z:   100
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.462000  200.0000
+121.5E / 2:  6.572001  200.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.334999  200.0000
+121.5E / 2:  7.436001  200.0000
+ ---- K:8 Z:   150
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.466000  250.0000
+121.5E / 2:  6.573999  250.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.372000  250.0000
+121.5E / 2:  7.464001  250.0000
+ ---- L:2 T:   2
+ ---- K:7 Z:   100
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.462000  210.0000
+121.5E / 2:  6.572001  210.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.334999  210.0000
+121.5E / 2:  7.436001  210.0000
+ ---- K:8 Z:   150
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.466000  260.0000
+121.5E / 2:  6.573999  260.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.372000  260.0000
+121.5E / 2:  7.464001  260.0000
+ ---- M:2 E:   2
+ ---- L:1 T:   1
+ ---- K:7 Z:   100
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.462000  250.0000
+121.5E / 2:  6.572001  250.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.334999  250.0000
+121.5E / 2:  7.436001  250.0000
+ ---- K:8 Z:   150
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.466000  300.0000
+121.5E / 2:  6.573999  300.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.372000  300.0000
+121.5E / 2:  7.464001  300.0000
+ ---- L:2 T:   2
+ ---- K:7 Z:   100
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.462000  260.0000
+121.5E / 2:  6.572001  260.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.334999  260.0000
+121.5E / 2:  7.436001  260.0000
+ ---- K:8 Z:   150
+ ---- J:1 Y:   49.5S
+120.5E / 1:  6.466000  310.0000
+121.5E / 2:  6.573999  310.0000
+ ---- J:2 Y:   48.5S
+120.5E / 1:  7.372000  310.0000
+121.5E / 2:  7.464001  310.0000
+! ... some spot checks
+LIST/PREC=7/l=1/m=1/n=1 tempz6d_tDep[Z=100] - temp6d_const[k=7]
+             VARIABLE : TEMPZ6D_TDEP[Z=100] - TEMP6D_CONST[K=7]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z        : 100
+             T        : 1
+             E        : 1
+             F        : 1
+               120.5E     121.5E   
+                 1          2
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+LIST/PREC=7/l=1/m=2/n=1 tempz6d_tDep[Z=200] - temp6d_const[k=8]
+             VARIABLE : TEMPZ6D_TDEP[Z=200] - TEMP6D_CONST[K=8]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z        : 200
+             T        : 1
+             E        : 2
+             F        : 1
+               120.5E     121.5E   
+                 1          2
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+LIST/PREC=7/l=1/m=2/n=2 tempz6d_tDep[Z=300] - temp6d_const[k=8]
+             VARIABLE : TEMPZ6D_TDEP[Z=300] - TEMP6D_CONST[K=8]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z        : 300
+             T        : 1
+             E        : 2
+             F        : 2
+               120.5E     121.5E   
+                 1          2
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ 
+! ** deliberate error **
+! 6d temperature and 3d depth field (depth unchanging in time, ensemble and forecast)
+! Ferret does not permit auxiliary variable to have an axis not found on the source variable
+! (to avoid having to consider auxiliary variables during grid-getting ... possible to do)
+SET MODE IGNORE
+LET tempz6d_unmatch = temp[gz(depth6d)=zpts]
+LIST/PREC=7 tempz6d_unmatch
+SET MODE/LAST IGNORE
+ 
+! ********************************
+! test the @plave regridding -- ave defined from area under piecewise curve
+ 
+! first compare to our simplest of linear interpolation regrids, tempz
+! note that results will differ due to non-linearity
+! at Z=500 on the output they become identical because the Z=500 grid box
+! extends 450:550 with source points at Z=400 and Z=600 -- pure linear
+! LET tempz = temp[gz(depth)=zpts]
+LET tempzave = temp[gz(depth)=zpts at plave]
+LIST tempzave - tempz
+             VARIABLE : TEMPZAVE - TEMPZ
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+              120.5E   121.5E  
+                1        2
+ ---- K:1 Z:   100
+ 48.5S / 2:  0.07800  0.08300
+ 49.5S / 1:  0.09350  0.09612
+ ---- K:2 Z:   200
+ 48.5S / 2:  0.03975  0.04325
+ 49.5S / 1:  0.03738  0.04537
+ ---- K:3 Z:   300
+ 48.5S / 2:  0.02862  0.02200
+ 49.5S / 1:  0.04037  0.02875
+ ---- K:4 Z:   400
+ 48.5S / 2: -0.00894 -0.00900
+ 49.5S / 1: -0.00625 -0.00656
+ ---- K:5 Z:   500
+ 48.5S / 2:  0.00000  0.00000
+ 49.5S / 1:  0.00000  0.00000
+ 
+! list a little.  Note the regridding transform label
+LIST/PREC=7 temp[gz(depth)=zpts at plave,k=1]
+             VARIABLE : TEMPERATURE (DEG C)
+                        regrid: 100 delta on Z at PLAVE using DEPTH field
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z        : 50 to 150
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2:  7.413000  7.519001
+ 49.5S / 1:  6.555500  6.668125
+ 
+! Levitus has points at 50, 75, 100, 150, 200
+! define target axis with edges at 50:75 (k=1),  75:100 (k=2)
+!                                 100:125(k=3), 125:150 (k=4), 150:175(k=5)
+define axis/edges/z=50:175:25/units=m zpt2     ! point at 125 is mid-way
+ 
+! raw source data -- artifically designed for easy mental calcs
+LET myvals = temp*0+100*(i-100)+10*(j-40)+k
+list/PREC=7 myvals[z=50:300]
+             VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+K
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 6 points (LONGITUDE-LATITUDE-DEPTH (m))
+               120.5E    121.5E  
+                 1         2
+ ---- K:5 Z:   50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:6 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:7 Z:   100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:8 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:9 Z:   200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+ ---- K:10 Z:   300
+ 48.5S / 2: -10270.00 -10170.00
+ 49.5S / 1: -10280.00 -10180.00
+ 
+! linear interpolation regridding
+LET mzlin2 = myvals[gz(depth)=zpt2]
+LIST/PREC=7 mzlin2
+             VARIABLE : MYVALS[GZ(DEPTH)=ZPT2]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   62.5
+ 48.5S / 2: -10274.50 -10174.50
+ 49.5S / 1: -10284.50 -10184.50
+ ---- K:2 Z:   87.5
+ 48.5S / 2: -10273.50 -10173.50
+ 49.5S / 1: -10283.50 -10183.50
+ ---- K:3 Z:   112.5
+ 48.5S / 2: -10272.75 -10172.75
+ 49.5S / 1: -10282.75 -10182.75
+ ---- K:4 Z:   137.5
+ 48.5S / 2: -10272.25 -10172.25
+ 49.5S / 1: -10282.25 -10182.25
+ ---- K:5 Z:   162.5
+ 48.5S / 2: -10271.75 -10171.75
+ 49.5S / 1: -10281.75 -10181.75
+ 
+! average-regridding
+LET mzave2 = myvals[gz(depth)=zpt2 at plave]
+ 
+! cases:
+! 1) both edges lie on source points
+LIST/PREC=7 mzave2[k=2]   ! vals at 75, 100 ==> 75:100
+             VARIABLE : MYVALS[GZ(DEPTH)=ZPT2 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z (M)    : 87.5
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10273.50 -10173.50
+ 49.5S / 1: -10283.50 -10183.50
+ 
+! 2) lower edge only lies on source point
+LIST/PREC=7 mzave2[k=3]   ! vals at 100, 150 ==> 100:125
+             VARIABLE : MYVALS[GZ(DEPTH)=ZPT2 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z (M)    : 112.5
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10272.75 -10172.75
+ 49.5S / 1: -10282.75 -10182.75
+ 
+! 3) upper edge only lies on source point
+LIST/PREC=7 mzave2[k=4]   ! vals at 100, 150 ==> 125:150
+             VARIABLE : MYVALS[GZ(DEPTH)=ZPT2 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z (M)    : 137.5
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10272.25 -10172.25
+ 49.5S / 1: -10282.25 -10182.25
+ 
+! 4) full range
+! myvals2 is linear in k, so @plave and @lin get identical results
+LIST/PREC=7 mzave2
+             VARIABLE : MYVALS[GZ(DEPTH)=ZPT2 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   62.5
+ 48.5S / 2: -10274.50 -10174.50
+ 49.5S / 1: -10284.50 -10184.50
+ ---- K:2 Z:   87.5
+ 48.5S / 2: -10273.50 -10173.50
+ 49.5S / 1: -10283.50 -10183.50
+ ---- K:3 Z:   112.5
+ 48.5S / 2: -10272.75 -10172.75
+ 49.5S / 1: -10282.75 -10182.75
+ ---- K:4 Z:   137.5
+ 48.5S / 2: -10272.25 -10172.25
+ 49.5S / 1: -10282.25 -10182.25
+ ---- K:5 Z:   162.5
+ 48.5S / 2: -10271.75 -10171.75
+ 49.5S / 1: -10281.75 -10181.75
+LIST/PREC=7 mzave2 - mzlin2
+             VARIABLE : MZAVE2 - MZLIN2
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E     121.5E   
+                 1          2
+ ---- K:1 Z:   62.5
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ ---- K:2 Z:   87.5
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ ---- K:3 Z:   112.5
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ ---- K:4 Z:   137.5
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ ---- K:5 Z:   162.5
+ 48.5S / 2:  0.0000000  0.0000000
+ 49.5S / 1:  0.0000000  0.0000000
+ 
+! 5) divide a single source range into multiple destination cells
+! a range of 50 divided into 5 cells will have means of x.1,x.3,x.5, x.7, x.9
+define axis/edges/z=150:200:10/units=m zpt3
+LET mzave3 = myvals[gz(depth)=zpt3 at plave]
+LIST/PREC=7 mzave3
+             VARIABLE : MYVALS[GZ(DEPTH)=ZPT3 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   155
+ 48.5S / 2: -10271.90 -10171.90
+ 49.5S / 1: -10281.90 -10181.90
+ ---- K:2 Z:   165
+ 48.5S / 2: -10271.70 -10171.70
+ 49.5S / 1: -10281.70 -10181.70
+ ---- K:3 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:4 Z:   185
+ 48.5S / 2: -10271.30 -10171.30
+ 49.5S / 1: -10281.30 -10181.30
+ ---- K:5 Z:   195
+ 48.5S / 2: -10271.10 -10171.10
+ 49.5S / 1: -10281.10 -10181.10
+ 
+! 6) derive a single destination cell from many source points
+! by manual calculation the correct answers will be n.333333
+define axis/edges/z=50:200:150/units=m zpt4
+LET mzave4 = myvals[gz(depth)=zpt4 at plave]
+LIST/PREC=7 mzave4
+             VARIABLE : MYVALS[GZ(DEPTH)=ZPT4 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z (M)    : 125
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10272.67 -10172.67
+ 49.5S / 1: -10282.67 -10182.67
+ 
+! 7) derive a single destination cell from many source points
+! by manual calculation the correct answers will be n.8125
+define axis/edges/z=50:250:200/units=m zpt5
+LET mzave5 = myvals[gz(depth)=zpt5 at plave]
+LIST/PREC=7 mzave5
+             VARIABLE : MYVALS[GZ(DEPTH)=ZPT5 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z (M)    : 150
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10272.19 -10172.19
+ 49.5S / 1: -10282.19 -10182.19
+ 
+! 8) test the short-hand notation var[gz(depth)=0:100 at ave] as an implicit
+! aux var regrid via piecewice linear averaging
+! To confirm correct results we create a piecewize linear function that
+! has constant slope.  Averaging such a function over a symmetric region
+! around a point on the source data should return the value at the point
+LET myvals_z = TEMP*0+100*(I-100)+10*(J-40)+Z
+list/PREC=7 myvals_z[z=200]
+             VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             DEPTH (m): 200
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10080.00  -9980.00
+ 49.5S / 1: -10090.00  -9990.00
+list/PREC=7 myvals_z[gz(depth)=190:210 at ave]
+             VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+                        regrid: on Z at PLAVE using DEPTH field
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z        : 190 to 210
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10080.00  -9980.00
+ 49.5S / 1: -10090.00  -9990.00
+list/PREC=7 myvals_z[gz(depth)=150:250 at ave]
+             VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+                        regrid: on Z at PLAVE using DEPTH field
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             Z        : 150 to 250
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10080.00  -9980.00
+ 49.5S / 1: -10090.00  -9990.00
+ 
+! 8a) do same regrid using the shorhand semi-automated notation
+SET VAR/LAYERZ=depth myvals_z
+list/PREC=7 myvals_z[z=190:210 at ave,layerz]  ! lo:hi at ave notation WILL BE CHANGED
+             VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             DEPTH (m): 190 to 210 (pc wise lin avgd using DEPTH)
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10080.00  -9980.00
+ 49.5S / 1: -10090.00  -9990.00
+list/PREC=7 myvals_z[z=150:250 at ave,layerz]  ! WILL BE CHANGED
+             VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 points (LONGITUDE-LATITUDE)
+             DEPTH (m): 150 to 250 (pc wise lin avgd using DEPTH)
+               120.5E    121.5E  
+                 1         2
+ 48.5S / 2: -10080.00  -9980.00
+ 49.5S / 1: -10090.00  -9990.00
+ 
+! test missing values in the depth array
+! cases:
+! 1) missing values at start of aux array
+define axis/z=25:200:25/units=m zpt6
+LET depmis = IF (I NE 102 OR k GT 6) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+ 
+! 2) missing values at end of aux array
+LET depmis = IF (I NE 102 OR k LT 9) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+ 
+! 3) missing values in midst of aux array -- stops processing beyond
+LET depmis = IF (I NE 102 OR k EQ 7 OR K EQ 8) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+ 
+! 4) singleton non-missing values in a line of the aux array
+LET depmis = IF (I NE 102 OR K EQ 8) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+ 
+! 5) there are only missing values in a line of the aux array
+LET depmis = IF (I NE 102) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+ 
+! 6) two separated singletons -- only the first should be found
+LET depmis = IF (I NE 102 OR K EQ 6 OR K EQ 8) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+             VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+               120.5E    121.5E  
+                 1         2
+ ---- K:1 Z:   25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z:   50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z:   75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z:   100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z:   125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z:   150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z:   175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z:   200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+list depmis[z=25:200]      ! to illustrate why the result is as it is
+             VARIABLE : IF (I NE 102 OR K EQ 6 OR K EQ 8) THEN DEPTH
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 6 points (LONGITUDE-LATITUDE-DEPTH (m))
+             120.5E 121.5E 
+               1      2
+ ---- K:4 Z:   30
+ 48.5S / 2:   30.0   30.0
+ 49.5S / 1:   30.0   30.0
+ ---- K:5 Z:   50
+ 48.5S / 2:   50.0   50.0
+ 49.5S / 1:   50.0   50.0
+ ---- K:6 Z:   75
+ 48.5S / 2:   75.0   75.0
+ 49.5S / 1:   75.0   75.0
+ ---- K:7 Z:   100
+ 48.5S / 2:  100.0  100.0
+ 49.5S / 1:  100.0  100.0
+ ---- K:8 Z:   150
+ 48.5S / 2:  150.0  150.0
+ 49.5S / 1:  150.0  150.0
+ ---- K:9 Z:   200
+ 48.5S / 2:  200.0  200.0
+ 49.5S / 1:  200.0  200.0
+ 
+! ********
+! reversed-auxiliary variable used in regridding
+! (see definitions made earlier)
+! Note that the regridded result only matches the original data in regions
+! where the underlying piecewise function remains strictly linear with
+! unchanging slope/intercept.  Since the Z=500 point has cell limits 450:550
+! and the underlying Levitus Z points (used in the definition of "depth") are
+! at 400 and 600, we get the identical result from @PLAVE and @LIN
+LET rvtempzaxave = rvtemp[gz(rvdepth)=zax at plave,z=100:500]
+LIST/PREC=7 rvtempzaxave - tempz
+             VARIABLE : RVTEMPZAXAVE - TEMPZ
+             FILENAME : levitus_3d_subset.nc
+             SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+                120.5E      121.5E   
+                  1           2
+ ---- K:1 Z:   100
+ 48.5S / 2:  0.07800055  0.08299971
+ 49.5S / 1:  0.09349990  0.09612441
+ ---- K:2 Z:   200
+ 48.5S / 2:  0.03974986  0.04325008
+ 49.5S / 1:  0.03737521  0.04537499
+ ---- K:3 Z:   300
+ 48.5S / 2:  0.02862477  0.02200031
+ 49.5S / 1:  0.04037499  0.02874994
+ ---- K:4 Z:   400
+ 48.5S / 2: -0.00893724 -0.00900024
+ 49.5S / 1: -0.00625008 -0.00656247
+ ---- K:5 Z:   500
+ 48.5S / 2:  0.00000000  0.00000000
+ 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
+ normal    T
+ normal    E
+ normal    F
+ 
+       K     Z                   ZBOX      ZBOXLO
+       1>  100                   100        50
+       2>  200                   100        150
+       3>  300                   100        250
+       4>  400                   100        350
+       5>  500                   100        450
+ 
+! 5/15 -- added tests for non-monotonic auxiliary variable
+!test_non_monotonic_aux_z.jnl
+ 
+cancel region
+define axis/x=161e:165e:1 xax
+define axis/z=100:600:100 zax
+ 
+let temp = 0.0001*Z[gz=zax]^2 + 0*x[gx=xax]
+list temp
+             VARIABLE : 0.0001*Z[GZ=ZAX]^2 + 0*X[GX=XAX]
+             SUBSET   : 5 by 6 points (LONGITUDE-Z)
+             161E   162E   163E   164E   165E   
+               1      2      3      4      5
+ 100   / 1:   1.00   1.00   1.00   1.00   1.00
+ 200   / 2:   4.00   4.00   4.00   4.00   4.00
+ 300   / 3:   9.00   9.00   9.00   9.00   9.00
+ 400   / 4:  16.00  16.00  16.00  16.00  16.00
+ 500   / 5:  25.00  25.00  25.00  25.00  25.00
+ 600   / 6:  36.00  36.00  36.00  36.00  36.00
+ 
+! disordered points at beginning, middle and end, missing at beginning
+let density0 = 0*i[gx=xax]*k[gz=zax] + z/10
+let density1 = if i eq 2 and k eq 4 then 20  else density0
+let density2 = if i eq 3 and k eq 1 then 20  else density1
+let density3 = if i eq 3 and k eq 2 then 10  else density2
+let density4 = if i eq 4 and k eq 6 then 30  else density3
+let density  = if i eq 5 and k le 2 then 1/0 else density4  ! missing at k=1:3
+list density
+             VARIABLE : IF I EQ 5 AND K LE 2 THEN 1/0 ELSE DENSITY4
+             SUBSET   : 5 by 6 points (LONGITUDE-Z)
+             161E   162E   163E   164E   165E   
+               1      2      3      4      5
+ 100   / 1:  10.00  10.00  20.00  10.00   ....
+ 200   / 2:  20.00  20.00  10.00  20.00   ....
+ 300   / 3:  30.00  30.00  30.00  30.00  30.00
+ 400   / 4:  40.00  20.00  40.00  40.00  40.00
+ 500   / 5:  50.00  50.00  50.00  50.00  50.00
+ 600   / 6:  60.00  60.00  60.00  30.00  60.00
+ 
+! Z=200-300 on the density axis are double valued at I=2
+list temp[gz(density)=5:65:2.5]
+             VARIABLE : 0.0001*Z[GZ=ZAX]^2 + 0*X[GX=XAX]
+                        regrid: 2.5 delta on Z at LIN using DENSITY field
+             SUBSET   : 5 by 25 points (LONGITUDE-Z)
+             161E   162E   163E   164E   165E   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 7.5  /  2:   ....   ....   ....   ....   ....
+ 10   /  3:   1.00   1.00   4.00   1.00   ....
+ 12.5 /  4:   1.75   1.75   ....   1.75   ....
+ 15   /  5:   2.50   2.50   ....   2.50   ....
+ 17.5 /  6:   3.25   3.25   ....   3.25   ....
+ 20   /  7:   4.00   ....   ....   4.00   ....
+ 22.5 /  8:   5.25   ....   7.13   5.25   ....
+ 25   /  9:   6.50   ....   7.75   6.50   ....
+ 27.5 / 10:   7.75   ....   8.38   7.75   ....
+ 30   / 11:   9.00   ....   9.00   ....   9.00
+ 32.5 / 12:  10.75  19.75  10.75   ....  10.75
+ 35   / 13:  12.50  20.50  12.50   ....  12.50
+ 37.5 / 14:  14.25  21.25  14.25   ....  14.25
+ 40   / 15:  16.00  22.00  16.00   ....  16.00
+ 42.5 / 16:  18.25  22.75  18.25   ....  18.25
+ 45   / 17:  20.50  23.50  20.50   ....  20.50
+ 47.5 / 18:  22.75  24.25  22.75   ....  22.75
+ 50   / 19:  25.00  25.00  25.00  25.00  25.00
+ 52.5 / 20:  27.75  27.75  27.75   ....  27.75
+ 55   / 21:  30.50  30.50  30.50   ....  30.50
+ 57.5 / 22:  33.25  33.25  33.25   ....  33.25
+ 60   / 23:  36.00  36.00  36.00   ....  36.00
+ 62.5 / 24:   ....   ....   ....   ....   ....
+ 65   / 25:   ....   ....   ....   ....   ....
+ 
+ 
+!************************************
+! reverse-ordering of same field
+let btemp = 0.0001*(700-Z[gz=zax])^2  + 0*x[gx=xax]
+list btemp
+             VARIABLE : 0.0001*(700-Z[GZ=ZAX])^2  + 0*X[GX=XAX]
+             SUBSET   : 5 by 6 points (LONGITUDE-Z)
+             161E   162E   163E   164E   165E   
+               1      2      3      4      5
+ 100   / 1:  36.00  36.00  36.00  36.00  36.00
+ 200   / 2:  25.00  25.00  25.00  25.00  25.00
+ 300   / 3:  16.00  16.00  16.00  16.00  16.00
+ 400   / 4:   9.00   9.00   9.00   9.00   9.00
+ 500   / 5:   4.00   4.00   4.00   4.00   4.00
+ 600   / 6:   1.00   1.00   1.00   1.00   1.00
+ 
+let bdensity0 = 0*i[gx=xax]*k[gz=zax] + (700-z)/10
+let bdensity1 = if i eq 2 and (7-k) eq 4 then 20  else bdensity0
+let bdensity2 = if i eq 3 and (7-k) eq 1 then 20  else bdensity1
+let bdensity3 = if i eq 3 and (7-k) eq 2 then 10  else bdensity2
+let bdensity4 = if i eq 4 and (7-k) eq 6 then 30  else bdensity3
+let bdensity  = if i eq 5 and (7-k) le 2 then 1/0 else bdensity4 !missing k=1:3
+ 
+SAY "************ TBD: STILL NEED TO MAKE SURE UNITS ARE WORKING ********"
+************ TBD: STILL NEED TO MAKE SURE UNITS ARE WORKING ********
+SET VAR/units="kg/m^3" density
+ 
+list bdensity
+             VARIABLE : IF I EQ 5 AND (7-K) LE 2 THEN 1/0 ELSE BDENSITY4
+             SUBSET   : 5 by 6 points (LONGITUDE-Z)
+             161E   162E   163E   164E   165E   
+               1      2      3      4      5
+ 100   / 1:  60.00  60.00  60.00  30.00  60.00
+ 200   / 2:  50.00  50.00  50.00  50.00  50.00
+ 300   / 3:  40.00  20.00  40.00  40.00  40.00
+ 400   / 4:  30.00  30.00  30.00  30.00  30.00
+ 500   / 5:  20.00  20.00  10.00  20.00   ....
+ 600   / 6:  10.00  10.00  20.00  10.00   ....
+ 
+list btemp[gz(bdensity)=5:65:2.5]
+             VARIABLE : 0.0001*(700-Z[GZ=ZAX])^2  + 0*X[GX=XAX]
+                        regrid: 2.5 delta on Z at LIN using BDENSITY field
+             SUBSET   : 5 by 25 points (LONGITUDE-Z)
+             161E   162E   163E   164E   165E   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 7.5  /  2:   ....   ....   ....   ....   ....
+ 10   /  3:   1.00   1.00   4.00   1.00   ....
+ 12.5 /  4:   1.75   1.75   ....   1.75   ....
+ 15   /  5:   2.50   2.50   ....   2.50   ....
+ 17.5 /  6:   3.25   3.25   ....   3.25   ....
+ 20   /  7:   4.00   ....   ....   4.00   ....
+ 22.5 /  8:   5.25   ....   7.13   5.25   ....
+ 25   /  9:   6.50   ....   7.75   6.50   ....
+ 27.5 / 10:   7.75   ....   8.38   7.75   ....
+ 30   / 11:   9.00   ....   9.00   ....   9.00
+ 32.5 / 12:  10.75  19.75  10.75   ....  10.75
+ 35   / 13:  12.50  20.50  12.50   ....  12.50
+ 37.5 / 14:  14.25  21.25  14.25   ....  14.25
+ 40   / 15:  16.00  22.00  16.00   ....  16.00
+ 42.5 / 16:  18.25  22.75  18.25   ....  18.25
+ 45   / 17:  20.50  23.50  20.50   ....  20.50
+ 47.5 / 18:  22.75  24.25  22.75   ....  22.75
+ 50   / 19:  25.00  25.00  25.00  25.00  25.00
+ 52.5 / 20:  27.75  27.75  27.75   ....  27.75
+ 55   / 21:  30.50  30.50  30.50   ....  30.50
+ 57.5 / 22:  33.25  33.25  33.25   ....  33.25
+ 60   / 23:  36.00  36.00  36.00   ....  36.00
+ 62.5 / 24:   ....   ....   ....   ....   ....
+ 65   / 25:   ....   ....   ....   ....   ....
+ 
+!************************************
+! similar analysis using @plave over wider cells
+! compare to reverse-ordered data
+list  temp[gz(density)=5:65:15 at plave]
+             VARIABLE : 0.0001*Z[GZ=ZAX]^2 + 0*X[GX=XAX]
+                        regrid: 15 kg/m^3 on Z at PLAVE using DENSITY field
+             SUBSET   : 5 by 5 points (LONGITUDE-Z (kg/m^3))
+            161E   162E   163E   164E   165E   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+list btemp[gz(bdensity)=5:65:15 at plave]
+             VARIABLE : 0.0001*(700-Z[GZ=ZAX])^2  + 0*X[GX=XAX]
+                        regrid: 15 delta on Z at PLAVE using BDENSITY field
+             SUBSET   : 5 by 5 points (LONGITUDE-Z)
+            161E   162E   163E   164E   165E   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 
+! 6/15
+! test 1D auxiliary axis regirdding on all axes
+ 
+! p for passive axis
+! a for active axis
+ 
+define axis/x=161:165:1 xp
+define axis/y=161:165:1 yp
+define axis/z=161:165:1 zp
+define axis/t=161:165:1 tp
+define axis/e=161:165:1 ep
+define axis/f=161:165:1 fp
+ 
+define axis/x=100:700:100 xa
+define axis/y=100:700:100 ya
+define axis/z=100:700:100 za
+define axis/t=100:700:100 ta
+define axis/e=100:700:100 ea
+define axis/f=100:700:100 fa
+ 
+ 
+GO bn_auxiliary.sub Z,X,F
+
+*****************************
+**********  Z,X,F ***********
+*****************************
+
+! show the underlying fields
+list/order=($pax1)($aax)($REG1) temp
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (X-Z)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:   1.00   1.00   1.00   1.00   1.00
+ 200   / 2:   4.00   4.00   4.00   4.00   4.00
+ 300   / 3:   9.00   9.00   9.00   9.00   9.00
+ 400   / 4:  16.00  16.00  16.00  16.00  16.00
+ 500   / 5:  25.00  25.00  25.00  25.00  25.00
+ 600   / 6:  36.00  36.00  36.00  36.00  36.00
+ 700   / 7:  49.00  49.00  49.00  49.00  49.00
+list/order=($pax1)($aax)($REG1) btemp
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (X-Z)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  49.00  49.00  49.00  49.00  49.00
+ 200   / 2:  36.00  36.00  36.00  36.00  36.00
+ 300   / 3:  25.00  25.00  25.00  25.00  25.00
+ 400   / 4:  16.00  16.00  16.00  16.00  16.00
+ 500   / 5:   9.00   9.00   9.00   9.00   9.00
+ 600   / 6:   4.00   4.00   4.00   4.00   4.00
+ 700   / 7:   1.00   1.00   1.00   1.00   1.00
+list/order=($pax1)($aax)($REG1) density
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 density
+             VARIABLE : IF (_I EQ 5 OR _N EQ 5) AND _K LE 2 THEN 1/0 ELSE DENSITY4
+             SUBSET   : 5 by 7 points (X-Z)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  10.00  10.00  20.00  10.00   ....
+ 200   / 2:  20.00  20.00  10.00  20.00   ....
+ 300   / 3:  30.00  30.00  30.00  30.00  30.00
+ 400   / 4:  40.00  20.00  40.00  40.00  40.00
+ 500   / 5:  50.00  50.00  50.00  50.00  50.00
+ 600   / 6:  60.00  60.00  60.00  30.00  60.00
+ 700   / 7:  70.00  70.00  70.00  70.00  70.00
+list/order=($pax1)($aax)($REG1) bdensity
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 bdensity
+             VARIABLE : IF (_I EQ 5 OR _N EQ 5) AND (8-_K) LE 2 THEN 1/0 ELSE BDENSITY4
+             SUBSET   : 5 by 7 points (X-Z)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  70.00  70.00  70.00  70.00  70.00
+ 200   / 2:  60.00  60.00  60.00  30.00  60.00
+ 300   / 3:  50.00  50.00  50.00  50.00  50.00
+ 400   / 4:  40.00  20.00  40.00  40.00  40.00
+ 500   / 5:  30.00  30.00  30.00  30.00  30.00
+ 600   / 6:  20.00  20.00  10.00  20.00   ....
+ 700   / 7:  10.00  10.00  20.00  10.00   ....
+ 
+! show the regridded fields
+! using interpolation
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:5]  ! passive ax 1
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp[gZ(density)=5:80:5]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on Z at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (X-Z)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:5]  ! passive ax 2
+ !-> list/order=FZ/i=1/j=1 /l=1/m=1 temp[gZ(density)=5:80:5]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on Z at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (F-Z)
+             X        : 161
+             Y        : 161
+             T        : 161
+             E        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:5]  ! backwards pasv ax 1
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=5:80:5]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on Z at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (X-Z)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:5]  ! backwards pasv ax 2
+ !-> list/order=FZ/i=1/j=1 /l=1/m=1 btemp[gZ(bdensity)=5:80:5]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on Z at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (F-Z)
+             X        : 161
+             Y        : 161
+             T        : 161
+             E        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp[gZ(density)=35]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on Z at LIN using DENSITY field
+             SUBSET   : 5 points (X)
+             Z        : 35
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          12.50  20.50  12.50  12.50  12.50
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=35]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on Z at LIN using BDENSITY field
+             SUBSET   : 5 points (X)
+             Z        : 35
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          12.50  20.50  12.50  12.50  12.50
+ 
+ 
+! using piecewise linear averaging
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:15 at plave]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp[gZ(density)=5:80:15 at plave]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on Z at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (X-Z)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:15 at plave]
+ !-> list/order=FZ/i=1/j=1 /l=1/m=1 temp[gZ(density)=5:80:15 at plave]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on Z at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (F-Z)
+             X        : 161
+             Y        : 161
+             T        : 161
+             E        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:15 at plave]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=5:80:15 at plave]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on Z at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (X-Z)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:15 at plave]
+ !-> list/order=FZ/i=1/j=1 /l=1/m=1 btemp[gZ(bdensity)=5:80:15 at plave]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on Z at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (F-Z)
+             X        : 161
+             Y        : 161
+             T        : 161
+             E        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35:55 at plave]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp[gZ(density)=35:55 at plave]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on Z at PLAVE using DENSITY field
+             SUBSET   : 5 points (X)
+             Z        : 35 to 55
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          20.75  24.00  20.75   ....  20.75
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35:55 at plave]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=35:55 at plave]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on Z at PLAVE using BDENSITY field
+             SUBSET   : 5 points (X)
+             Z        : 35 to 55
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          20.75  24.00  20.75   ....  20.75
+ 
+!*********************************************************************************
+!*********************************************************************************
+EXIT/SCRIPT
+GO bn_auxiliary.sub Z,Y,E
+
+*****************************
+**********  Z,Y,E ***********
+*****************************
+
+! show the underlying fields
+list/order=($pax1)($aax)($REG1) temp
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 temp
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (Y-Z)
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:   1.00   1.00   1.00   1.00   1.00
+ 200   / 2:   4.00   4.00   4.00   4.00   4.00
+ 300   / 3:   9.00   9.00   9.00   9.00   9.00
+ 400   / 4:  16.00  16.00  16.00  16.00  16.00
+ 500   / 5:  25.00  25.00  25.00  25.00  25.00
+ 600   / 6:  36.00  36.00  36.00  36.00  36.00
+ 700   / 7:  49.00  49.00  49.00  49.00  49.00
+list/order=($pax1)($aax)($REG1) btemp
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 btemp
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (Y-Z)
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  49.00  49.00  49.00  49.00  49.00
+ 200   / 2:  36.00  36.00  36.00  36.00  36.00
+ 300   / 3:  25.00  25.00  25.00  25.00  25.00
+ 400   / 4:  16.00  16.00  16.00  16.00  16.00
+ 500   / 5:   9.00   9.00   9.00   9.00   9.00
+ 600   / 6:   4.00   4.00   4.00   4.00   4.00
+ 700   / 7:   1.00   1.00   1.00   1.00   1.00
+list/order=($pax1)($aax)($REG1) density
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 density
+             VARIABLE : IF (_J EQ 5 OR _M EQ 5) AND _K LE 2 THEN 1/0 ELSE DENSITY4
+             SUBSET   : 5 by 7 points (Y-Z)
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  10.00  10.00  20.00  10.00   ....
+ 200   / 2:  20.00  20.00  10.00  20.00   ....
+ 300   / 3:  30.00  30.00  30.00  30.00  30.00
+ 400   / 4:  40.00  20.00  40.00  40.00  40.00
+ 500   / 5:  50.00  50.00  50.00  50.00  50.00
+ 600   / 6:  60.00  60.00  60.00  30.00  60.00
+ 700   / 7:  70.00  70.00  70.00  70.00  70.00
+list/order=($pax1)($aax)($REG1) bdensity
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 bdensity
+             VARIABLE : IF (_J EQ 5 OR _M EQ 5) AND (8-_K) LE 2 THEN 1/0 ELSE BDENSITY4
+             SUBSET   : 5 by 7 points (Y-Z)
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  70.00  70.00  70.00  70.00  70.00
+ 200   / 2:  60.00  60.00  60.00  30.00  60.00
+ 300   / 3:  50.00  50.00  50.00  50.00  50.00
+ 400   / 4:  40.00  20.00  40.00  40.00  40.00
+ 500   / 5:  30.00  30.00  30.00  30.00  30.00
+ 600   / 6:  20.00  20.00  10.00  20.00   ....
+ 700   / 7:  10.00  10.00  20.00  10.00   ....
+ 
+! show the regridded fields
+! using interpolation
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:5]  ! passive ax 1
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 temp[gZ(density)=5:80:5]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on Z at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (Y-Z)
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:5]  ! passive ax 2
+ !-> list/order=EZ/i=1/j=1 /l=1 /n=1 temp[gZ(density)=5:80:5]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on Z at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (E-Z)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:5]  ! backwards pasv ax 1
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 btemp[gZ(bdensity)=5:80:5]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on Z at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (Y-Z)
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:5]  ! backwards pasv ax 2
+ !-> list/order=EZ/i=1/j=1 /l=1 /n=1 btemp[gZ(bdensity)=5:80:5]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on Z at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (E-Z)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35]
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 temp[gZ(density)=35]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on Z at LIN using DENSITY field
+             SUBSET   : 5 points (Y)
+             Z        : 35
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          12.50  20.50  12.50  12.50  12.50
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35]
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 btemp[gZ(bdensity)=35]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on Z at LIN using BDENSITY field
+             SUBSET   : 5 points (Y)
+             Z        : 35
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          12.50  20.50  12.50  12.50  12.50
+ 
+ 
+! using piecewise linear averaging
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:15 at plave]
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 temp[gZ(density)=5:80:15 at plave]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on Z at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (Y-Z)
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:15 at plave]
+ !-> list/order=EZ/i=1/j=1 /l=1 /n=1 temp[gZ(density)=5:80:15 at plave]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on Z at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (E-Z)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:15 at plave]
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 btemp[gZ(bdensity)=5:80:15 at plave]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on Z at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (Y-Z)
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:15 at plave]
+ !-> list/order=EZ/i=1/j=1 /l=1 /n=1 btemp[gZ(bdensity)=5:80:15 at plave]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on Z at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (E-Z)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35:55 at plave]
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 temp[gZ(density)=35:55 at plave]
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0.0001*     _Z[GZ=ZA] ^2 +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on Z at PLAVE using DENSITY field
+             SUBSET   : 5 points (Y)
+             Z        : 35 to 55
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          20.75  24.00  20.75   ....  20.75
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35:55 at plave]
+ !-> list/order=YZ/i=1  /l=1/m=1/n=1 btemp[gZ(bdensity)=35:55 at plave]
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on Z at PLAVE using BDENSITY field
+             SUBSET   : 5 points (Y)
+             Z        : 35 to 55
+             X        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          20.75  24.00  20.75   ....  20.75
+ 
+!*********************************************************************************
+!*********************************************************************************
+EXIT/SCRIPT
+CANC MODE VERIFY
+
+*****************************
+**********  X,Z,F ***********
+*****************************
+
+             VARIABLE : 0.0001*     _X[GX=XA] ^2 +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (Z-X)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:   1.00   1.00   1.00   1.00   1.00
+ 200   / 2:   4.00   4.00   4.00   4.00   4.00
+ 300   / 3:   9.00   9.00   9.00   9.00   9.00
+ 400   / 4:  16.00  16.00  16.00  16.00  16.00
+ 500   / 5:  25.00  25.00  25.00  25.00  25.00
+ 600   / 6:  36.00  36.00  36.00  36.00  36.00
+ 700   / 7:  49.00  49.00  49.00  49.00  49.00
+             VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (Z-X)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  49.00  49.00  49.00  49.00  49.00
+ 200   / 2:  36.00  36.00  36.00  36.00  36.00
+ 300   / 3:  25.00  25.00  25.00  25.00  25.00
+ 400   / 4:  16.00  16.00  16.00  16.00  16.00
+ 500   / 5:   9.00   9.00   9.00   9.00   9.00
+ 600   / 6:   4.00   4.00   4.00   4.00   4.00
+ 700   / 7:   1.00   1.00   1.00   1.00   1.00
+             VARIABLE : IF (_K EQ 5 OR _N EQ 5) AND _I LE 2 THEN 1/0 ELSE DENSITY4
+             SUBSET   : 5 by 7 points (Z-X)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  10.00  10.00  20.00  10.00   ....
+ 200   / 2:  20.00  20.00  10.00  20.00   ....
+ 300   / 3:  30.00  30.00  30.00  30.00  30.00
+ 400   / 4:  40.00  20.00  40.00  40.00  40.00
+ 500   / 5:  50.00  50.00  50.00  50.00  50.00
+ 600   / 6:  60.00  60.00  60.00  30.00  60.00
+ 700   / 7:  70.00  70.00  70.00  70.00  70.00
+             VARIABLE : IF (_K EQ 5 OR _N EQ 5) AND (8-_I) LE 2 THEN 1/0 ELSE BDENSITY4
+             SUBSET   : 5 by 7 points (Z-X)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  70.00  70.00  70.00  70.00  70.00
+ 200   / 2:  60.00  60.00  60.00  30.00  60.00
+ 300   / 3:  50.00  50.00  50.00  50.00  50.00
+ 400   / 4:  40.00  20.00  40.00  40.00  40.00
+ 500   / 5:  30.00  30.00  30.00  30.00  30.00
+ 600   / 6:  20.00  20.00  10.00  20.00   ....
+ 700   / 7:  10.00  10.00  20.00  10.00   ....
+             VARIABLE : 0.0001*     _X[GX=XA] ^2 +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on X at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (Z-X)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0.0001*     _X[GX=XA] ^2 +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on X at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (F-X)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on X at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (Z-X)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on X at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (F-X)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0.0001*     _X[GX=XA] ^2 +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on X at LIN using DENSITY field
+             SUBSET   : 5 points (Z)
+             X        : 35
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          12.50  20.50  12.50  12.50  12.50
+             VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on X at LIN using BDENSITY field
+             SUBSET   : 5 points (Z)
+             X        : 35
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          12.50  20.50  12.50  12.50  12.50
+             VARIABLE : 0.0001*     _X[GX=XA] ^2 +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on X at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (Z-X)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0.0001*     _X[GX=XA] ^2 +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on X at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (F-X)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on X at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (Z-X)
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on X at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (F-X)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0.0001*     _X[GX=XA] ^2 +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on X at PLAVE using DENSITY field
+             SUBSET   : 5 points (Z)
+             X        : 35 to 55
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          20.75  24.00  20.75   ....  20.75
+             VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on X at PLAVE using BDENSITY field
+             SUBSET   : 5 points (Z)
+             X        : 35 to 55
+             Y        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          20.75  24.00  20.75   ....  20.75
+
+*****************************
+**********  Y,X,E ***********
+*****************************
+
+             VARIABLE : 0*_X[GX=XP] +  0.0001*     _Y[GY=YA] ^2 +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (X-Y)
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:   1.00   1.00   1.00   1.00   1.00
+ 200   / 2:   4.00   4.00   4.00   4.00   4.00
+ 300   / 3:   9.00   9.00   9.00   9.00   9.00
+ 400   / 4:  16.00  16.00  16.00  16.00  16.00
+ 500   / 5:  25.00  25.00  25.00  25.00  25.00
+ 600   / 6:  36.00  36.00  36.00  36.00  36.00
+ 700   / 7:  49.00  49.00  49.00  49.00  49.00
+             VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (X-Y)
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  49.00  49.00  49.00  49.00  49.00
+ 200   / 2:  36.00  36.00  36.00  36.00  36.00
+ 300   / 3:  25.00  25.00  25.00  25.00  25.00
+ 400   / 4:  16.00  16.00  16.00  16.00  16.00
+ 500   / 5:   9.00   9.00   9.00   9.00   9.00
+ 600   / 6:   4.00   4.00   4.00   4.00   4.00
+ 700   / 7:   1.00   1.00   1.00   1.00   1.00
+             VARIABLE : IF (_I EQ 5 OR _M EQ 5) AND _J LE 2 THEN 1/0 ELSE DENSITY4
+             SUBSET   : 5 by 7 points (X-Y)
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  10.00  10.00  20.00  10.00   ....
+ 200   / 2:  20.00  20.00  10.00  20.00   ....
+ 300   / 3:  30.00  30.00  30.00  30.00  30.00
+ 400   / 4:  40.00  20.00  40.00  40.00  40.00
+ 500   / 5:  50.00  50.00  50.00  50.00  50.00
+ 600   / 6:  60.00  60.00  60.00  30.00  60.00
+ 700   / 7:  70.00  70.00  70.00  70.00  70.00
+             VARIABLE : IF (_I EQ 5 OR _M EQ 5) AND (8-_J) LE 2 THEN 1/0 ELSE BDENSITY4
+             SUBSET   : 5 by 7 points (X-Y)
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  70.00  70.00  70.00  70.00  70.00
+ 200   / 2:  60.00  60.00  60.00  30.00  60.00
+ 300   / 3:  50.00  50.00  50.00  50.00  50.00
+ 400   / 4:  40.00  20.00  40.00  40.00  40.00
+ 500   / 5:  30.00  30.00  30.00  30.00  30.00
+ 600   / 6:  20.00  20.00  10.00  20.00   ....
+ 700   / 7:  10.00  10.00  20.00  10.00   ....
+             VARIABLE : 0*_X[GX=XP] +  0.0001*     _Y[GY=YA] ^2 +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on Y at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (X-Y)
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] +  0.0001*     _Y[GY=YA] ^2 +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on Y at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (E-Y)
+             X        : 161
+             Z        : 161
+             T        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on Y at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (X-Y)
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on Y at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (E-Y)
+             X        : 161
+             Z        : 161
+             T        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] +  0.0001*     _Y[GY=YA] ^2 +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on Y at LIN using DENSITY field
+             SUBSET   : 5 points (X)
+             Y        : 35
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          12.50  20.50  12.50  12.50  12.50
+             VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on Y at LIN using BDENSITY field
+             SUBSET   : 5 points (X)
+             Y        : 35
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          12.50  20.50  12.50  12.50  12.50
+             VARIABLE : 0*_X[GX=XP] +  0.0001*     _Y[GY=YA] ^2 +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on Y at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (X-Y)
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] +  0.0001*     _Y[GY=YA] ^2 +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on Y at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (E-Y)
+             X        : 161
+             Z        : 161
+             T        : 161
+             F        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on Y at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (X-Y)
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on Y at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (E-Y)
+             X        : 161
+             Z        : 161
+             T        : 161
+             F        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] +  0.0001*     _Y[GY=YA] ^2 +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on Y at PLAVE using DENSITY field
+             SUBSET   : 5 points (X)
+             Y        : 35 to 55
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          20.75  24.00  20.75   ....  20.75
+             VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on Y at PLAVE using BDENSITY field
+             SUBSET   : 5 points (X)
+             Y        : 35 to 55
+             Z        : 161
+             T        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          20.75  24.00  20.75   ....  20.75
+
+*****************************
+**********  T,Y,F ***********
+*****************************
+
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0.0001*     _T[GT=TA] ^2 +  0*_E[GE=EP] +  0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (Y-T)
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:   1.00   1.00   1.00   1.00   1.00
+ 200   / 2:   4.00   4.00   4.00   4.00   4.00
+ 300   / 3:   9.00   9.00   9.00   9.00   9.00
+ 400   / 4:  16.00  16.00  16.00  16.00  16.00
+ 500   / 5:  25.00  25.00  25.00  25.00  25.00
+ 600   / 6:  36.00  36.00  36.00  36.00  36.00
+ 700   / 7:  49.00  49.00  49.00  49.00  49.00
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (Y-T)
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  49.00  49.00  49.00  49.00  49.00
+ 200   / 2:  36.00  36.00  36.00  36.00  36.00
+ 300   / 3:  25.00  25.00  25.00  25.00  25.00
+ 400   / 4:  16.00  16.00  16.00  16.00  16.00
+ 500   / 5:   9.00   9.00   9.00   9.00   9.00
+ 600   / 6:   4.00   4.00   4.00   4.00   4.00
+ 700   / 7:   1.00   1.00   1.00   1.00   1.00
+             VARIABLE : IF (_J EQ 5 OR _N EQ 5) AND _L LE 2 THEN 1/0 ELSE DENSITY4
+             SUBSET   : 5 by 7 points (Y-T)
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  10.00  10.00  20.00  10.00   ....
+ 200   / 2:  20.00  20.00  10.00  20.00   ....
+ 300   / 3:  30.00  30.00  30.00  30.00  30.00
+ 400   / 4:  40.00  20.00  40.00  40.00  40.00
+ 500   / 5:  50.00  50.00  50.00  50.00  50.00
+ 600   / 6:  60.00  60.00  60.00  30.00  60.00
+ 700   / 7:  70.00  70.00  70.00  70.00  70.00
+             VARIABLE : IF (_J EQ 5 OR _N EQ 5) AND (8-_L) LE 2 THEN 1/0 ELSE BDENSITY4
+             SUBSET   : 5 by 7 points (Y-T)
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  70.00  70.00  70.00  70.00  70.00
+ 200   / 2:  60.00  60.00  60.00  30.00  60.00
+ 300   / 3:  50.00  50.00  50.00  50.00  50.00
+ 400   / 4:  40.00  20.00  40.00  40.00  40.00
+ 500   / 5:  30.00  30.00  30.00  30.00  30.00
+ 600   / 6:  20.00  20.00  10.00  20.00   ....
+ 700   / 7:  10.00  10.00  20.00  10.00   ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0.0001*     _T[GT=TA] ^2 +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on T at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (Y-T)
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0.0001*     _T[GT=TA] ^2 +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 5 delta on T at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (F-T)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             E        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on T at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (Y-T)
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 5 delta on T at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (F-T)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             E        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0.0001*     _T[GT=TA] ^2 +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on T at LIN using DENSITY field
+             SUBSET   : 5 points (Y)
+             T        : 35
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          12.50  20.50  12.50  12.50  12.50
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on T at LIN using BDENSITY field
+             SUBSET   : 5 points (Y)
+             T        : 35
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          12.50  20.50  12.50  12.50  12.50
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0.0001*     _T[GT=TA] ^2 +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on T at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (Y-T)
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0.0001*     _T[GT=TA] ^2 +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: 15 delta on T at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (F-T)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             E        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on T at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (Y-T)
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: 15 delta on T at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (F-T)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             E        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0.0001*     _T[GT=TA] ^2 +  0*_E[GE=EP] +  0*_F[GF=FP]
+                        regrid: on T at PLAVE using DENSITY field
+             SUBSET   : 5 points (Y)
+             T        : 35 to 55
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          20.75  24.00  20.75   ....  20.75
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+                        regrid: on T at PLAVE using BDENSITY field
+             SUBSET   : 5 points (Y)
+             T        : 35 to 55
+             X        : 161
+             Z        : 161
+             E        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          20.75  24.00  20.75   ....  20.75
+
+*****************************
+**********  E,Z,F ***********
+*****************************
+
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0.0001*     _E[GE=EA] ^2 +  0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (Z-E)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:   1.00   1.00   1.00   1.00   1.00
+ 200   / 2:   4.00   4.00   4.00   4.00   4.00
+ 300   / 3:   9.00   9.00   9.00   9.00   9.00
+ 400   / 4:  16.00  16.00  16.00  16.00  16.00
+ 500   / 5:  25.00  25.00  25.00  25.00  25.00
+ 600   / 6:  36.00  36.00  36.00  36.00  36.00
+ 700   / 7:  49.00  49.00  49.00  49.00  49.00
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+             SUBSET   : 5 by 7 points (Z-E)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  49.00  49.00  49.00  49.00  49.00
+ 200   / 2:  36.00  36.00  36.00  36.00  36.00
+ 300   / 3:  25.00  25.00  25.00  25.00  25.00
+ 400   / 4:  16.00  16.00  16.00  16.00  16.00
+ 500   / 5:   9.00   9.00   9.00   9.00   9.00
+ 600   / 6:   4.00   4.00   4.00   4.00   4.00
+ 700   / 7:   1.00   1.00   1.00   1.00   1.00
+             VARIABLE : IF (_K EQ 5 OR _N EQ 5) AND _M LE 2 THEN 1/0 ELSE DENSITY4
+             SUBSET   : 5 by 7 points (Z-E)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  10.00  10.00  20.00  10.00   ....
+ 200   / 2:  20.00  20.00  10.00  20.00   ....
+ 300   / 3:  30.00  30.00  30.00  30.00  30.00
+ 400   / 4:  40.00  20.00  40.00  40.00  40.00
+ 500   / 5:  50.00  50.00  50.00  50.00  50.00
+ 600   / 6:  60.00  60.00  60.00  30.00  60.00
+ 700   / 7:  70.00  70.00  70.00  70.00  70.00
+             VARIABLE : IF (_K EQ 5 OR _N EQ 5) AND (8-_M) LE 2 THEN 1/0 ELSE BDENSITY4
+             SUBSET   : 5 by 7 points (Z-E)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  70.00  70.00  70.00  70.00  70.00
+ 200   / 2:  60.00  60.00  60.00  30.00  60.00
+ 300   / 3:  50.00  50.00  50.00  50.00  50.00
+ 400   / 4:  40.00  20.00  40.00  40.00  40.00
+ 500   / 5:  30.00  30.00  30.00  30.00  30.00
+ 600   / 6:  20.00  20.00  10.00  20.00   ....
+ 700   / 7:  10.00  10.00  20.00  10.00   ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0.0001*     _E[GE=EA] ^2 +  0*_F[GF=FP]
+                        regrid: 5 delta on E at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (Z-E)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0.0001*     _E[GE=EA] ^2 +  0*_F[GF=FP]
+                        regrid: 5 delta on E at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (F-E)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             T        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+                        regrid: 5 delta on E at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (Z-E)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+                        regrid: 5 delta on E at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (F-E)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             T        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0.0001*     _E[GE=EA] ^2 +  0*_F[GF=FP]
+                        regrid: on E at LIN using DENSITY field
+             SUBSET   : 5 points (Z)
+             E        : 35
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          12.50  20.50  12.50  12.50  12.50
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+                        regrid: on E at LIN using BDENSITY field
+             SUBSET   : 5 points (Z)
+             E        : 35
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          12.50  20.50  12.50  12.50  12.50
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0.0001*     _E[GE=EA] ^2 +  0*_F[GF=FP]
+                        regrid: 15 delta on E at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (Z-E)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0.0001*     _E[GE=EA] ^2 +  0*_F[GF=FP]
+                        regrid: 15 delta on E at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (F-E)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             T        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+                        regrid: 15 delta on E at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (Z-E)
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+                        regrid: 15 delta on E at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (F-E)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             T        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0.0001*     _E[GE=EA] ^2 +  0*_F[GF=FP]
+                        regrid: on E at PLAVE using DENSITY field
+             SUBSET   : 5 points (Z)
+             E        : 35 to 55
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          20.75  24.00  20.75   ....  20.75
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+                        regrid: on E at PLAVE using BDENSITY field
+             SUBSET   : 5 points (Z)
+             E        : 35 to 55
+             X        : 161
+             Y        : 161
+             T        : 161
+             F        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          20.75  24.00  20.75   ....  20.75
+
+*****************************
+**********  F,X,T ***********
+*****************************
+
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0.0001*     _F[GF=FA] ^2
+             SUBSET   : 5 by 7 points (X-F)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:   1.00   1.00   1.00   1.00   1.00
+ 200   / 2:   4.00   4.00   4.00   4.00   4.00
+ 300   / 3:   9.00   9.00   9.00   9.00   9.00
+ 400   / 4:  16.00  16.00  16.00  16.00  16.00
+ 500   / 5:  25.00  25.00  25.00  25.00  25.00
+ 600   / 6:  36.00  36.00  36.00  36.00  36.00
+ 700   / 7:  49.00  49.00  49.00  49.00  49.00
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+             SUBSET   : 5 by 7 points (X-F)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  49.00  49.00  49.00  49.00  49.00
+ 200   / 2:  36.00  36.00  36.00  36.00  36.00
+ 300   / 3:  25.00  25.00  25.00  25.00  25.00
+ 400   / 4:  16.00  16.00  16.00  16.00  16.00
+ 500   / 5:   9.00   9.00   9.00   9.00   9.00
+ 600   / 6:   4.00   4.00   4.00   4.00   4.00
+ 700   / 7:   1.00   1.00   1.00   1.00   1.00
+             VARIABLE : IF (_I EQ 5 OR _L EQ 5) AND _N LE 2 THEN 1/0 ELSE DENSITY4
+             SUBSET   : 5 by 7 points (X-F)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  10.00  10.00  20.00  10.00   ....
+ 200   / 2:  20.00  20.00  10.00  20.00   ....
+ 300   / 3:  30.00  30.00  30.00  30.00  30.00
+ 400   / 4:  40.00  20.00  40.00  40.00  40.00
+ 500   / 5:  50.00  50.00  50.00  50.00  50.00
+ 600   / 6:  60.00  60.00  60.00  30.00  60.00
+ 700   / 7:  70.00  70.00  70.00  70.00  70.00
+             VARIABLE : IF (_I EQ 5 OR _L EQ 5) AND (8-_N) LE 2 THEN 1/0 ELSE BDENSITY4
+             SUBSET   : 5 by 7 points (X-F)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 100   / 1:  70.00  70.00  70.00  70.00  70.00
+ 200   / 2:  60.00  60.00  60.00  30.00  60.00
+ 300   / 3:  50.00  50.00  50.00  50.00  50.00
+ 400   / 4:  40.00  20.00  40.00  40.00  40.00
+ 500   / 5:  30.00  30.00  30.00  30.00  30.00
+ 600   / 6:  20.00  20.00  10.00  20.00   ....
+ 700   / 7:  10.00  10.00  20.00  10.00   ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0.0001*     _F[GF=FA] ^2
+                        regrid: 5 delta on F at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (X-F)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0.0001*     _F[GF=FA] ^2
+                        regrid: 5 delta on F at LIN using DENSITY field
+             SUBSET   : 5 by 16 points (T-F)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             E        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+                        regrid: 5 delta on F at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (X-F)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+                        regrid: 5 delta on F at LIN using BDENSITY field
+             SUBSET   : 5 by 16 points (T-F)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             E        : 161
+              161    162    163    164    165   
+               1      2      3      4      5
+ 5    /  1:   ....   ....   ....   ....   ....
+ 10   /  2:   1.00   1.00   4.00   1.00   ....
+ 15   /  3:   2.50   2.50   ....   2.50   ....
+ 20   /  4:   4.00   ....   ....   4.00   ....
+ 25   /  5:   6.50   ....   7.75   6.50   ....
+ 30   /  6:   9.00   ....   9.00   ....   9.00
+ 35   /  7:  12.50  20.50  12.50   ....  12.50
+ 40   /  8:  16.00  22.00  16.00   ....  16.00
+ 45   /  9:  20.50  23.50  20.50   ....  20.50
+ 50   / 10:  25.00  25.00  25.00   ....  25.00
+ 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 60   / 12:  36.00  36.00  36.00  45.75  36.00
+ 65   / 13:  42.50  42.50  42.50  47.38  42.50
+ 70   / 14:  49.00  49.00  49.00  49.00  49.00
+ 75   / 15:   ....   ....   ....   ....   ....
+ 80   / 16:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0.0001*     _F[GF=FA] ^2
+                        regrid: on F at LIN using DENSITY field
+             SUBSET   : 5 points (X)
+             F        : 35
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          12.50  20.50  12.50  12.50  12.50
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+                        regrid: on F at LIN using BDENSITY field
+             SUBSET   : 5 points (X)
+             F        : 35
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          12.50  20.50  12.50  12.50  12.50
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0.0001*     _F[GF=FA] ^2
+                        regrid: 15 delta on F at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (X-F)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0.0001*     _F[GF=FA] ^2
+                        regrid: 15 delta on F at PLAVE using DENSITY field
+             SUBSET   : 5 by 6 points (T-F)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             E        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+                        regrid: 15 delta on F at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (X-F)
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+                        regrid: 15 delta on F at PLAVE using BDENSITY field
+             SUBSET   : 5 by 6 points (T-F)
+             X        : 161
+             Y        : 161
+             Z        : 161
+             E        : 161
+             161    162    163    164    165   
+              1      2      3      4      5
+ 5    / 1:   ....   ....   ....   ....   ....
+ 20   / 2:   4.38   ....   ....   4.38   ....
+ 35   / 3:  12.58   ....  12.64   ....   ....
+ 50   / 4:  25.38  26.50  25.38   ....  25.38
+ 65   / 5:   ....   ....   ....   ....   ....
+ 80   / 6:   ....   ....   ....   ....   ....
+             VARIABLE : 0*_X[GX=XP] +  0*_Y[GY=YP] +  0*_Z[GZ=ZP] +  0*_T[GT=TP] +  0*_E[GE=EP] +  0.0001*     _F[GF=FA] ^2
+                        regrid: on F at PLAVE using DENSITY field
+             SUBSET   : 5 points (X)
+             F        : 35 to 55
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+           161    162    163    164    165   
+            1      2      3      4      5
+          20.75  24.00  20.75   ....  20.75
+             VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+                        regrid: on F at PLAVE using BDENSITY field
+             SUBSET   : 5 points (X)
+             F        : 35 to 55
+             Y        : 161
+             Z        : 161
+             T        : 161
+             E        : 161
+           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
+[?1034h! bn_plot_ribbon_gaploc.jnl
+! 7/20/2015 *acm*  new PLOT/VS/RIBBON/GAPLOC
+!
+! If a trajectory leaves the selected region and then travels
+! 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.
+ 
+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 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
+ 
+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 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
+ 
+ 
+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"
+*** Running test: bn696_bug_fixes
+[?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
+ 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
+ 
+       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
+*** Running test: bn_bin_regrid
+[?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 test: bn_all_ef.jnl
+[?1034hSET MODE VERIFY
+! bn_all_ef.jnl
+! - run all the benchmark tests for externally-linked external functions.
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO bn_ef_external_functions.jnl
+! Tests of external functions that are distributed as shared object files.
+ 
+! Jon's benchmarks
+go bench_examples
+set mode ignore_error
+show func/ext add_9
+ADD_9(A,B,C,D,E,F,G,H,I)
+    (demonstration function) adds 9 arguments
+show func/ext ave*
+AVE_SCAT2GRID_T(TPTS,VPTS,TAXIS)
+    Compute average of a variable in each cell of output time axis
+    TPTS: T coordinates of scattered input time coordinates
+    VPTS: Variable at times in TPTS
+    TAXIS: Output time axis
+AVET(A)
+    (demonstration function) returns the time average
+    A: data to be averaged over the time axis
+show func pass_thru
+PASS_THRU(A)
+    (demonstration function) sets result equal to input
+    A: this arg is passed through
+show func sto*
+STORAGE(A)
+    sets result equal to input/10
+    A: input
+ 
+go bench_add_9
+! Bench_add_9.jnl
+!  ACM  8/99
+!  benchmark script for testing external function add_9.
+! Note: bench_add_9_visual contains plots of similar computations
+ 
+set mode ignore_errors
+ 
+ 
+can region
+use coads_climatology
+set region/x=151E:179E/y=0
+ 
+let a1 = sst[d=1,l=1]
+let a2 = sst[d=1,l=2]
+let a3 = sst[d=1,l=3]
+ 
+let a = add_9(a1,a2,a3,a1,a2,a3,a1,a2,a3)
+ 
+list a
+             VARIABLE : ADD_9(A1,A2,A3,A1,A2,A3,A1,A2,A3)
+             SUBSET   : 15 points (LONGITUDE)
+             LATITUDE : 1S
+             TIME     : 16-JAN 06:00
+                1S    
+                45
+ 151E   / 66:  263.6
+ 153E   / 67:  264.5
+ 155E   / 68:  264.2
+ 157E   / 69:  261.3
+ 159E   / 70:  260.9
+ 161E   / 71:  262.4
+ 163E   / 72:  264.0
+ 165E   / 73:  261.1
+ 167E   / 74:  260.9
+ 169E   / 75:  261.0
+ 171E   / 76:  259.3
+ 173E   / 77:  257.9
+ 175E   / 78:  257.0
+ 177E   / 79:  259.1
+ 179E   / 80:  254.8
+list  a - 3 * sst[d=1,l=1:3 at sum]
+             VARIABLE : A - 3 * SST[D=coads_climatology,L=1:3 at SUM]
+             SUBSET   : 15 points (LONGITUDE)
+             LATITUDE : 1S
+             TIME     : 16-JAN 06:00
+                 1S    
+                 45
+ 151E   / 66:  0.0000
+ 153E   / 67:  0.0000
+ 155E   / 68:  0.0000
+ 157E   / 69:  0.0000
+ 159E   / 70:  0.0000
+ 161E   / 71:  0.0000
+ 163E   / 72:  0.0000
+ 165E   / 73:  0.0000
+ 167E   / 74:  0.0000
+ 169E   / 75:  0.0000
+ 171E   / 76:  0.0000
+ 173E   / 77:  0.0000
+ 175E   / 78:  0.0000
+ 177E   / 79:  0.0000
+ 179E   / 80:  0.0000
+set mode/last ignore_errors
+go bench_avet
+! Bench_avet.jnl
+!  ACM  8/99
+!  benchmark script for testing external function avet.
+! Note: bench_avet_visual.jnl contains plots of similar computations
+ 
+set mode ignore_errors
+ 
+can region
+use coads_climatology
+set region/x=151E:179E/y=0
+ 
+let a = avet(sst)
+list a
+             VARIABLE : AVET(SST)
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 15 points (LONGITUDE)
+             LATITUDE : 1S
+                1S    
+                45
+ 151E   / 66:  29.28
+ 153E   / 67:  29.39
+ 155E   / 68:  29.35
+ 157E   / 69:  29.03
+ 159E   / 70:  28.99
+ 161E   / 71:  29.15
+ 163E   / 72:  29.33
+ 165E   / 73:  29.01
+ 167E   / 74:  28.99
+ 169E   / 75:  29.00
+ 171E   / 76:  28.81
+ 173E   / 77:  28.66
+ 175E   / 78:  28.56
+ 177E   / 79:  28.79
+ 179E   / 80:  28.31
+list a - sst[l=@ave]
+             VARIABLE : A - SST[L=@AVE]
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 15 points (LONGITUDE)
+             LATITUDE : 1S
+             TIME     : 01-JAN 00:45 to 01-APR 08:12
+                  1S      
+                  45
+ 151E   / 66:  0.000E+00
+ 153E   / 67: -3.553E-15
+ 155E   / 68:  0.000E+00
+ 157E   / 69:  0.000E+00
+ 159E   / 70:  3.553E-15
+ 161E   / 71:  7.105E-15
+ 163E   / 72:  3.553E-15
+ 165E   / 73:  0.000E+00
+ 167E   / 74:  0.000E+00
+ 169E   / 75:  3.553E-15
+ 171E   / 76:  0.000E+00
+ 173E   / 77:  3.553E-15
+ 175E   / 78:  0.000E+00
+ 177E   / 79:  3.553E-15
+ 179E   / 80:  3.553E-15
+ 
+can region
+let a = x[i=1:9,k=1:5] + t[l=1:5]
+let b = x[i=1:9,k=1:5]
+let c = avet(a)
+list b, c
+             X: 0.5 to 9.5
+ Column  1: B is X[I=1:9,K=1:5]
+ Column  2: C is AVET(A)
+             B     C
+1   / 1:  1.000   4.00
+2   / 2:  2.000   5.00
+3   / 3:  3.000   6.00
+4   / 4:  4.000   7.00
+5   / 5:  5.000   8.00
+6   / 6:  6.000   9.00
+7   / 7:  7.000  10.00
+8   / 8:  8.000  11.00
+9   / 9:  9.000  12.00
+ 
+set mode/last ignore_errors
+go bench_pass_thru
+! Bench_pass_thru.jnl
+!  ACM  8/99
+!  benchmark script for testing external function pass_thru.
+! Note: bench_pass_thru_visual.jnl contains plots of similar computations
+ 
+set mode ignore_errors
+ 
+can region
+let a = pass_thru(x)
+list a[i=1:20]
+             VARIABLE : PASS_THRU(X)
+             SUBSET   : 20 points (X)
+ 1    /  1:   1.00
+ 2    /  2:   2.00
+ 3    /  3:   3.00
+ 4    /  4:   4.00
+ 5    /  5:   5.00
+ 6    /  6:   6.00
+ 7    /  7:   7.00
+ 8    /  8:   8.00
+ 9    /  9:   9.00
+ 10   / 10:  10.00
+ 11   / 11:  11.00
+ 12   / 12:  12.00
+ 13   / 13:  13.00
+ 14   / 14:  14.00
+ 15   / 15:  15.00
+ 16   / 16:  16.00
+ 17   / 17:  17.00
+ 18   / 18:  18.00
+ 19   / 19:  19.00
+ 20   / 20:  20.00
+set region/i=1:20
+list sin(a)
+             VARIABLE : SIN(A)
+             SUBSET   : 20 points (X)
+ 1    /  1:  0.8415
+ 2    /  2:  0.9093
+ 3    /  3:  0.1411
+ 4    /  4: -0.7568
+ 5    /  5: -0.9589
+ 6    /  6: -0.2794
+ 7    /  7:  0.6570
+ 8    /  8:  0.9894
+ 9    /  9:  0.4121
+ 10   / 10: -0.5440
+ 11   / 11: -1.0000
+ 12   / 12: -0.5366
+ 13   / 13:  0.4202
+ 14   / 14:  0.9906
+ 15   / 15:  0.6503
+ 16   / 16: -0.2879
+ 17   / 17: -0.9614
+ 18   / 18: -0.7510
+ 19   / 19:  0.1499
+ 20   / 20:  0.9129
+can var/all
+can region
+ 
+use coads_climatology
+let a = pass_thru(sst[l=@ave,y=@sbx:11])
+list/x=50 a
+             VARIABLE : PASS_THRU(SST[L=@AVE,Y=@SBX:11])
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 90 points (LATITUDE)
+             LONGITUDE: 49E
+             TIME     : 01-JAN 00:45 to 01-APR 08:12
+               49E   
+               15
+ 89N   / 90:   ....
+ 87N   / 89:   ....
+ 85N   / 88:   ....
+ 83N   / 87:   ....
+ 81N   / 86:   ....
+ 79N   / 85:   ....
+ 77N   / 84:   ....
+ 75N   / 83:   ....
+ 73N   / 82:   ....
+ 71N   / 81:   ....
+ 69N   / 80:   ....
+ 67N   / 79:   ....
  65N   / 78:   ....
  63N   / 77:   ....
  61N   / 76:   ....
@@ -77948,39 +86084,39 @@ exit
  
 exit/command
 *** Running test: bn_startupfile.jnl
- Current size of FERRET memory cache: 31 MegaWords  (1 word = 8 bytes)
+[?1034h Current size of FERRET memory cache: 31 MegaWords  (1 word = 8 bytes)
 PPL$XPIXEL = "979"
 PPL$YPIXEL = "844"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.93"
-FERRET_PLATFORM = "Linux 2.6.18-398.el5"
+FERRET_VERSION = "6.96"
+FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:38:15 $"
+NETCDF_VERSION = "4.3.3.1 of Nov 17 2015 15:01:40 $"
 FERRET_MEMORY = "31"
-SESSION_DATE = " 5-Nov-14"
-SESSION_TIME = "16:42"
-SESSION_PID = "14705"
-DELTA_CPU = "0.537918"
-CLOCK_SECS = "0.335"
-CURRENT_DATE = " 5-Nov-14"
-CURRENT_TIME = "16:42:11"
+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"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "PyFerret"
 LAST_GO_FILE = "./bn_startupfile.jnl"
 PPL$FORMAT = "(3F10.2)"
 PPL$PLTNME = "ferret.png"
-PPL$TEKNME = "/dev/tty"
-PPL$XLEN = "8.000"
-PPL$YLEN = "6.000"
-PPL$XORG = "1.200"
-PPL$YORG = "1.400"
-PPL$WIDTH = "10.20"
-PPL$HEIGHT = "8.800"
+PPL$TEKNME = "/dev/tt"
+PPL$XLEN = "8.00000"
+PPL$YLEN = "6.00000"
+PPL$XORG = "1.20000"
+PPL$YORG = "1.40000"
+PPL$WIDTH = "10.2000"
+PPL$HEIGHT = "8.80000"
 PPL$LINE_COUNT = "0"
-PPL$XFACT1 = "1.000"
-PPL$XOFF1 = "0.000"
-PPL$YFACT1 = "1.000"
-PPL$YOFF1 = "0.000"
+PPL$XFACT1 = "1.000000"
+PPL$XOFF1 = "0.000000"
+PPL$YFACT1 = "1.000000"
+PPL$YOFF1 = "0.000000"
 PPL$VIEW_X = "0.000"
 PPL$VIEW_Y = "0.000"
 PPL$VIEW_Z = "0.000"
@@ -77988,7 +86124,7 @@ PPL$COMMAND_FILE = "$$MEMBUF$$"
 VP_WIDTH = "10.2"
 VP_HEIGHT = "8.8"
 PPL$SCALE = "1.0000"
-WIN_TITLE = "5-Nov-14_16:42"
+WIN_TITLE = "19-Nov-15_12:07"
 VP_SCALE = "1"
 VP_RT_MARGIN = "1"
 VP_TOP_MARGIN = "1.4"
@@ -78007,7 +86143,8 @@ VP_YHI = "1"
       LATIT_LABEL   CANCELLED            1
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
-      6D_LAB           SET
+      E_LABEL          SET               1
+      F_LABEL          SET               1
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -78017,7 +86154,7 @@ VP_YHI = "1"
       METAFILE      CANCELLED      ferret.png
       PPLLIST       CANCELLED      ppllist.out
       GUI           CANCELLED
-      LOGO             SET
+      LOGO          CANCELLED
       LABELS           SET
       GRATICULE        SET
       LINECOLORS       SET               7
@@ -78026,7 +86163,8 @@ VP_YHI = "1"
       NODATA_LAB       SET
       SHRINK_YLAB   CANCELLED
       CURVILINEAR   CANCELLED
-      SIGMA         CANCELLED
+      LAYERZ        CANCELLED
+      6D_LAB           SET
      currently SET data sets:
     1> ./gtbc011.cdf  (default)
  name     title                             I         J         K         L         M         N
@@ -78039,4 +86177,9 @@ VP_YHI = "1"
  TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
  PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
  
-Ended at Wed Nov  5 16:42:11 PST 2014
+*** Running test: 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
diff --git a/bench/test_results/pyferret_run_tests_ncdump b/bench/test_results/pyferret_run_tests_ncdump
index 6407e3a..74aa5bf 100644
--- a/bench/test_results/pyferret_run_tests_ncdump
+++ b/bench/test_results/pyferret_run_tests_ncdump
@@ -50,7 +50,7 @@ variables:
 		MY_VAR:long_name = "T[GT=T5]" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -75,7 +75,7 @@ variables:
 		MY_VAR:long_name = "T[GT=T5]" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -112,7 +112,7 @@ variables:
 		B:long_name = "\"one line of text\"" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -151,7 +151,7 @@ variables:
 		D:history = "From test_string" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		: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.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -256,7 +256,7 @@ variables:
 		V:long_name = "T[GT=MONTH_IRREG]" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -313,7 +313,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -370,7 +370,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -425,7 +425,7 @@ variables:
 		T2:long_name = "Z[GZ=ZIRR]" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -473,7 +473,7 @@ variables:
 		V:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -567,7 +567,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -637,7 +637,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		: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.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -779,7 +779,7 @@ variables:
 		A:long_name = "T[GT=TIME]" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -806,7 +806,7 @@ variables:
 		X_:long_name_mod = "axis ABSTRACT" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		: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.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 		:title = "a long title, longer than the previous limit of 80 characters.  Previously various buffers were set to 80, and storage in ds_title was also too short." ;
 data:
@@ -857,14 +857,14 @@ variables:
 		A:history = "From t0_cdc" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running test: bn_tab_comma_multivar.jnl
 *** Running test: bn_element_functions.jnl
 *** Running test: bn_long_revision_num.jnl
 bn_long_revision_num.jnl --- history attribute
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		: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
@@ -900,7 +900,7 @@ variables:
 		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -973,7 +973,7 @@ variables:
 		VAR_B:long_name = "my strings" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1017,7 +1017,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1059,7 +1059,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1167,7 +1167,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 6 after CANCEL MODE upcase_output
@@ -1208,7 +1208,7 @@ variables:
 		Elev:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		: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.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1257,7 +1257,7 @@ variables:
 		BB:another_attr = 6.f ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1277,7 +1277,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1298,7 +1298,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1341,7 +1341,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		: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.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 13 cancel output of attributes of the variable.
@@ -1419,7 +1419,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 14 attributes of data from ez data.
@@ -1448,7 +1448,7 @@ variables:
 		A3:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1481,7 +1481,7 @@ variables:
 		V4:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1507,7 +1507,7 @@ variables:
 		A:four = "theory" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1553,7 +1553,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 		:simulation = "K-Bay OAR3d model (200m)" ;
 		:start_date = "980105000000" ;
@@ -1660,7 +1660,7 @@ variables:
 		TEMP:units = "deg. C" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 		:dt_internal = 15. ;
 }
@@ -1702,7 +1702,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1785,7 +1785,7 @@ variables:
 		RIGUE:history = "From test0" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1822,7 +1822,7 @@ variables:
 		B:long_name = "hello" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1862,7 +1862,7 @@ variables:
 		VWND:units = "M/S" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1913,7 +1913,7 @@ variables:
 		T2:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1972,7 +1972,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2017,7 +2017,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2060,7 +2060,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2095,7 +2095,7 @@ variables:
 		TEMP:units = "DEG C" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2129,7 +2129,7 @@ variables:
 		TWO:history = "From levitus_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		: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.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		: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.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 		:glob = "Global attribute" ;
 		:FERRET_comment = "File written via LAS. Attributes are inherited from originating dataset" ;
@@ -2249,7 +2249,7 @@ variables:
 		FAREN:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2294,7 +2294,7 @@ variables:
 		FAREN:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running test: bn_transforms.jnl
@@ -2335,7 +2335,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2365,7 +2365,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2395,7 +2395,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2448,7 +2448,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2490,7 +2490,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2508,7 +2508,7 @@ variables:
 		V:long_name = "Y[GY=YAXIS]" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running test: bn_no_valid_on_plot.jnl
@@ -2530,7 +2530,7 @@ variables:
 		MY_ASC:history = "From dat.dat" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2548,7 +2548,7 @@ variables:
 		MY_UNF:history = "From unf.dat" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		: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.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		: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.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2657,7 +2657,7 @@ variables:
 		newvar:history = "From a" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running test: bn_cdf_keepax.jnl
@@ -2686,7 +2686,7 @@ variables:
 		A:long_name = "X[GX=X100] + T[GT=T31]" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES
@@ -2713,7 +2713,7 @@ variables:
 		A:long_name = "X[GX=X100] + T[GT=T31]" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running test: bn_key_label_minmax.jnl
@@ -2818,7 +2818,7 @@ variables:
 		ZUP:long_name = "Z[GZ=ZAXUP]" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		: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.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since
@@ -2883,7 +2883,7 @@ variables:
 		XYTVAR:history = "From bn_strides" ;
 
 // global attributes:
-		:history = "FERRET V6.93 (PyFerret 1.1.0)  5-Nov-14" ;
+		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running test: bn_repeated_coords.jnl
@@ -2933,5 +2933,101 @@ variables:
 *** 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
+netcdf a {
+dimensions:
+	TIME = 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, TIME) ;
+		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.96 (PyFerret 1.2) 19-Nov-15" ;
+		:Conventions = "CF-1.6" ;
+data:
+
+ REFTIME = 0, 1, 2.03333333333333 ;
+
+ REFTIME_bnds =
+  -0.5, 0.5,
+  0.5, 1.51666666666667,
+  1.51666666666667, 2.55 ;
+
+ 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 ;
+}
+netcdf a {
+dimensions:
+	time = 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, time) ;
+		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.96 (PyFerret 1.2) 19-Nov-15" ;
+		:Conventions = "CF-1.6" ;
+data:
+
+ reftime = 0, 1, 2.03333333333333 ;
+
+ reftime_bnds =
+  -0.5, 0.5,
+  0.5, 1.51666666666667,
+  1.51666666666667, 2.55 ;
+
+ 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 ;
+}
+*** 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
diff --git a/bench/test_results/startup_tests2.pdf b/bench/test_results/startup_tests2.pdf
index 365c8a5..5bff017 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/timetics.pdf b/bench/test_results/timetics.pdf
index 0f6cd34..f5857a4 100644
Binary files a/bench/test_results/timetics.pdf and b/bench/test_results/timetics.pdf differ
diff --git a/bench/test_results/timetics2.pdf b/bench/test_results/timetics2.pdf
index 1824830..53b6621 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 d6ccf4b..f63cf4b 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 1e5a8e8..d121ebd 100644
Binary files a/bench/test_results/vec_curv2.pdf and b/bench/test_results/vec_curv2.pdf differ
diff --git a/bench/test_results/viewaxes.pdf b/bench/test_results/viewaxes.pdf
index b37aa16..14c1c0e 100644
Binary files a/bench/test_results/viewaxes.pdf and b/bench/test_results/viewaxes.pdf differ
diff --git a/bench/timesec.nc b/bench/timesec.nc
new file mode 100644
index 0000000..4bebc14
Binary files /dev/null and b/bench/timesec.nc differ
diff --git a/bench/twodtime.nc b/bench/twodtime.nc
new file mode 100644
index 0000000..f249b29
Binary files /dev/null and b/bench/twodtime.nc differ
diff --git a/bin/ferret_paths_template.csh b/bin/ferret_paths_template.csh
index 8e4d14c..f8b6bf3 100644
--- a/bin/ferret_paths_template.csh
+++ b/bin/ferret_paths_template.csh
@@ -75,6 +75,8 @@ 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"
+## PyFerret external function files (shared-object libraries)
+setenv PYFER_EXTERNAL_FUNCTIONS "${FER_DIR}/ext_func/pylibs"
 
 ## Space-separated list of directories for Ferret color palettes
 setenv FER_PALETTE ". ${FER_DIR}/ppl"
diff --git a/bin/ferret_paths_template.sh b/bin/ferret_paths_template.sh
index 4d585d8..69f9375 100644
--- a/bin/ferret_paths_template.sh
+++ b/bin/ferret_paths_template.sh
@@ -75,6 +75,8 @@ 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"
+## PyFerret external function files (shared-object libraries)
+export PYFER_EXTERNAL_FUNCTIONS="${FER_DIR}/ext_func/pylibs"
 
 ## Space-separated list of directories for Ferret color palettes
 export FER_PALETTE=". ${FER_DIR}/ppl"
diff --git a/bin/make_environment_tar b/bin/make_environment_tar
index 9a0477e..e78e522 100755
--- a/bin/make_environment_tar
+++ b/bin/make_environment_tar
@@ -135,6 +135,7 @@ 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
@@ -145,7 +146,7 @@ done
 if [ "${ans}" = "y" ]; then
    echo ""
    rm -f "${ctar_file}"
-   tar cvzf "${ctar_file}" --exclude .svn *
+   tar czf "${ctar_file}" --exclude .svn *
    echo ""
    ls -l "${ctar_file}"
 else
diff --git a/bin/make_executable_tar b/bin/make_executable_tar
index dec1cde..0906ed3 100755
--- a/bin/make_executable_tar
+++ b/bin/make_executable_tar
@@ -1,9 +1,8 @@
 #! /bin/sh
 
 # mycp needs to recursively copy subdirectories for the lib/python* directories
-# verbose flag used to create info messages when running this script
-mycp="/bin/cp -v -R -p"
-mylns="/bin/ln -v -s"
+mycp="/bin/cp -R -p"
+mylns="/bin/ln -s"
 
 echo ""
 if [ $# -eq 3 ]; then
@@ -74,6 +73,9 @@ 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
@@ -84,12 +86,11 @@ 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 the 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 \;
-
 # Copy font files from bin/build_fonts/unix/
 fer_files=${ferret_dir}/bin/build_fonts/unix/f*
 if [ $? -ne 0 -o "${fer_files}" = "" ]; then
@@ -154,6 +155,7 @@ 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
@@ -165,7 +167,7 @@ if [ "${ans}" = "y" ]; then
    echo ""
    cd ${temp_dir}
    rm -f "${ctar_file}"
-   tar cvzf "${ctar_file}" *
+   tar czf "${ctar_file}" *
    echo ""
    ls -l "${ctar_file}"
 else
diff --git a/bin/make_source_tar b/bin/make_source_tar
index 96f643e..81e8e76 100755
--- a/bin/make_source_tar
+++ b/bin/make_source_tar
@@ -87,7 +87,7 @@ done
 if [ "${ans}" = "y" ]; then
    echo ""
    rm -f "${ctar_file}"
-   tar cvzf "${ctar_file}" --exclude .svn "${fer_name}"
+   tar czf "${ctar_file}" --exclude .svn "${fer_name}"
    echo ""
    ls -l "${ctar_file}"
 else
diff --git a/external_functions/ef_utility/site_specific.mk b/external_functions/ef_utility/site_specific.mk
index 1b501f7..2c06d31 100644
--- a/external_functions/ef_utility/site_specific.mk
+++ b/external_functions/ef_utility/site_specific.mk
@@ -1,6 +1,5 @@
 ## Site-dependent definitions included in external function 
-## Makefiles in an installed PyFerret directory.  (This file
-## is not used when building PyFerret from source.)
+## Makefiles in an installed PyFerret directory.  
 
 ## Machine type for which to build Ferret/PyFerret
 ##   x86_64-linux      for 64-bit RHEL
@@ -32,7 +31,7 @@ PYTHON_EXE = python2.6
 ## FER_LOCAL_EXTFCNS is the directory in which to install
 ## the Ferret Fortran external functions.  The example
 ## functions that come with the PyFerret installation are
-## installed in $(INSTALL_FER_DIR)/ext_func/libs
-FER_LOCAL_EXTFCNS = $(INSTALL_FER_DIR)/ext_func/libs
+## installed in $(INSTALL_FER_DIR)/ext_func/pylibs
+FER_LOCAL_EXTFCNS = $(INSTALL_FER_DIR)/ext_func/pylibs
 
 ##
diff --git a/external_functions/fft/Makefile b/external_functions/fft/Makefile
index 08cbe0e..fdf0384 100644
--- a/external_functions/fft/Makefile
+++ b/external_functions/fft/Makefile
@@ -30,7 +30,7 @@ include ../ef_utility/platform_specific.mk.$(BUILDTYPE)
 
 .SUFFIXES: .so
 
-SUB_OBJS = fftinv_subs.o
+SUB_OBJS = fftinv_subs.o fftsubs.o
 
 #
 # Rules
diff --git a/external_functions/gridding/Makefile b/external_functions/gridding/Makefile
index 2193405..67f9dfa 100644
--- a/external_functions/gridding/Makefile
+++ b/external_functions/gridding/Makefile
@@ -39,9 +39,9 @@ SUB_OBJS = modscatminmax.o nobsxytv.o scat2grid_subs_mask.o
 # Targets
 #
 
-all:	$(SUB_OBJS) tracks2grid_std_xyt.so tracks2grid_ave_xyt.so scat2grid_std_xyt.so \
+all:	$(SUB_OBJS) tracks2grid_std_xyt.so scat2grid_std_xyt.so \
 	scat2grid_minmax_xyt.so scat2grid_mask_bin_xyt.so scat2grid_mask_minmax_xyt.so \
-	scat2grid_mask_nbin_xyt.so scat2grid_mask_std_xyt.so tracks2grid_mask_ave_xyt.so 
+	scat2grid_mask_nbin_xyt.so scat2grid_mask_std_xyt.so tracks2grid_mask_ave_xyt.so
 
 #all:	$(SUB_OBJS) index_to_grid.so scat2grid_nobs_xy.so
 
diff --git a/external_functions/gridding/fco2_xyt_stats_year.jnl b/external_functions/gridding/fco2_xyt_stats_year.jnl
deleted file mode 100644
index db5feb8..0000000
--- a/external_functions/gridding/fco2_xyt_stats_year.jnl
+++ /dev/null
@@ -1,84 +0,0 @@
-DEFINE AXIS/T0="1-jan-1970"/EDGES/UNITS=days tmnth = DAYS1900(year,month,1) - offset1970
-
-! Count of cruises with some data in each XYT cell
-   ! Send a scalar as argument 1 to just count the cruises
-   LET var = 1
-   LET/UNITS="count"/TITLE="Number of cruises" \
-     count_ncruise = TRACKS2GRID_AVE_XYT(var,LON,LAT,DATE,CRUISE_NO,X[GX=xlon],Y[GY=ylat],T[GT=tmnth])
-   
-   SAVE/($file_qual)/FILE="($gridded_outfile)" count_ncruise
-   sh axis tmnth
-   DEFINE SYMBOL file_qual = APPEND
-
-! Now count all of observations in each XYT cell
-   LET var = fco2_rec
-   LET/Units="count"/TITLE="Number of obs" \
-     count_nobs = SCAT2GRID_NBIN_XYT(LON,LAT,DATE,var,X[GX=xlon],Y[GY=ylat],T[GT=tmnth])
-   
-   SAVE/APPEND/FILE="($gridded_outfile)" count_nobs
-   sh axis tmnth
-
-! Mean by cruise of Fco2_rec, with some data in each XYT cell
-   LET var = fco2_rec
-   LET/UNITS="umol"/TITLE="fco2 mean - per cruise weighted" \
-    FCO2_AVE_WEIGHTED = TRACKS2GRID_AVE_XYT(VAR,LON,LAT,DATE,CRUISE_NO,X[GX=xlon],Y[GY=ylat],T[GT=tmnth])
-   
-   SAVE/APPEND/FILE="($gridded_outfile)" fco2_ave_weighted
-   sh axis tmnth
-
-
-! Mean fco2_rec, all observations in each XYT cell
-   LET/UNITS="umol"/TITLE="fco2 mean - unweighted all obs" \
-     FCO2_AVE_UNWTD = SCAT2GRID_BIN_XYT(LON,LAT,DATE,fco2_rec,X[GX=xlon],Y[GY=ylat],T[GT=tmnth])
-   
-   SAVE/APPEND/FILE="($gridded_outfile)" fco2_ave_unwtd
-   sh axis tmnth
-
-! Min and max fco2.  These are computed from one function with min at k=1, max at k=2.
-! Use the Z=1:1 at ave to remove the Z axis from the grid of the variable on output.
-   LET minmax = SCAT2GRID_MINMAX_XYT(lon, lat, date, fco2_rec, x[gx=xlon], y[gy=ylat], t[gt=tmnth])
-   LOAD minmax
-
-   LET/UNITS=umol/TITLE="fco2 min" fco2_min_unwtd = minmax[z=1:1 at ave]
-   SAVE/APPEND/FILE="($gridded_outfile)" fco2_min_unwtd
-   sh axis tmnth
-
-   LET/UNITS=umol/TITLE="fco2 max" fco2_max_unwtd = minmax[z=2:2 at ave]
-   SAVE/APPEND/FILE="($gridded_outfile)" fco2_max_unwtd
-
-   sh axis tmnth
-
-! Variance by cruise of Fco2_rec, with some data in each XYT cell
-   LET fvar = fco2_rec
-
-   LET/UNITS="umol"/TITLE="fco2 std dev - per cruise weighted" \
-    fco2_std_weighted = tracks2grid_std_xyt(fvar,lon,lat,\
-    date,cruise_no,x[gx=xlon],y[gy=ylat],t[gt=tmnth])
-
-   SAVE/APPEND/FILE="($gridded_outfile)" fco2_std_weighted
-   sh axis tmnth
-   
-
-! unweighted std dev fco2
-   LET/UNITS=umol/TITLE="fco2 std dev - unweighted all obs" \
-     fco2_std_unwtd = SCAT2GRID_STD_XYT(lon, lat, date, fco2_rec, x[gx=xlon], y[gy=ylat], t[gt=tmnth])
-   SAVE/APPEND/FILE="($gridded_outfile)" fco2_std_unwtd
-   sh axis tmnth
-
-
-! Mean delta-latitude of all observations in each XYT cell
-   LET nearest_lat = IF lat GE 0 THEN (INT(lat) + 0.5) ELSE (INT(lat) - 0.5)
-   LET y_from_lat = (lat - nearest_lat)
-   LET/UNITS="Deg N"/TITLE="Latitude average offset from cell center" \
-     lat_offset_unwtd = SCAT2GRID_BIN_XYT(LON,LAT,DATE,y_from_lat,X[GX=xlon],Y[GY=ylat],T[GT=tmnth])
-   
-   SAVE/APPEND/FILE="($gridded_outfile)" lat_offset_unwtd
-
-! Mean delta-longitude of all observations in each XYT cell
-   LET nearest_lon = IF lon GE 0 THEN (INT(lon) + 0.5) ELSE (INT(lon) - 0.5)
-   LET x_from_lon = (lon - nearest_lon) 
-   LET/UNITS="Deg E"/TITLE="Longitude average offset from cell center" \
-     lon_offset_unwtd = SCAT2GRID_BIN_XYT(LON,LAT,DATE,x_from_lon,X[GX=xlon],Y[GY=ylat],T[GT=tmnth])
-   
-   SAVE/APPEND/FILE="($gridded_outfile)" lon_offset_unwtd
-   sh axis tmnth
diff --git a/external_functions/gridding/nobsxytv.F b/external_functions/gridding/nobsxytv.F
index b6ab230..89a0d80 100644
--- a/external_functions/gridding/nobsxytv.F
+++ b/external_functions/gridding/nobsxytv.F
@@ -8,57 +8,62 @@ c............yy/y1/yf all in same units
 
 c  i	xx,yy,tt=x/y/t location of data pt (data units)
 c  i	nx,ny,nt=size of grids
-c  i	x1,y1,L1=west/south/earliest edge of grid (center of 1st box in data units)
+c  i	xaxlo,xaxyi, etc bounds of destination grid cells
 c  o 	obs(nx,ny,nt) number of obs in each (x,y,t) gridbox
 c--------------------------------------------------------------------------
 
 	SUBROUTINE nobsxytv (obs_only, xx, yy, tt, vv, nx, ny, nt, 
-     .             x1, y1, t1, dx, dy, dt, xf, yf, tf, indx, obs)
+     .             xaxlo,xaxhi, yaxlo,yaxhi, taxlo,taxhi, indx, obs)
 
 
 * Argument declarations
 
         INTEGER nx, ny, nt, obs_only, indx(4,2)
-	REAL xx, yy, tt, vv, x1, y1, t1, dx, dy, dt, xf, 
-     .       yf, tf, obs(nx,ny,2,nt)
+	REAL xx, yy, tt, vv, xaxlo(*), xaxhi(*), 
+     .       yaxlo(*), yaxhi(*), taxlo(*), taxhi(*), obs(nx,ny,2,nt)
 
 * Local variable declarations
 
-        REAL xxg, yyg, ttg
-        INTEGER ig, jg, Lg ! !!!!!!!!!!!!!!!!!!!!!!!! adding t dimension throughtout
-
-	xxg = (xx-x1)/ dx + 1.		  ! grid values of data location
-	yyg = (yy-y1)/ dy + 1.
-	ttg = (tt-t1)/ dt + 1.
-
-c.................sum the value and count in each (x,y,t) gridbox
-	ig = NINT(xxg)
-	jg = NINT(yyg)
-	Lg = NINT(ttg)
-	IF (ig.LT.1 .OR. ig.GT.nx) RETURN
-	IF (ig.LT.1 .OR. ig.GT.nx) RETURN
-	IF (lg.LT.1 .OR. lg.GT.nt) RETURN
-
-	IF (obs_only .EQ. 0) THEN
-           IF (ig.GE.1 .AND. ig.LE.nx .AND. jg.GE.1 .AND. jg.LE.ny .AND.
-     .       Lg.GE.1 .AND. Lg.LE.nt   ) THEN
-     		obs(ig,jg,1,Lg) = obs(ig,jg,1,Lg) + vv
-     		obs(ig,jg,2,Lg) = obs(ig,jg,2,Lg) + 1.
-	   ENDIF
-	ELSE
-	   IF (ig.GE.1 .AND. ig.LE.nx .AND. jg.GE.1 .AND. jg.LE.ny .AND.
-     .      Lg.GE.1 .AND. Lg.LE.nt   ) THEN
-     		obs(ig,jg,1,Lg) = obs(ig,jg,1,Lg) + 1.
-	   ENDIF
-	ENDIF
+        INTEGER ig, jg, Lg
+
+	lg = 1
+	DO l = 1, nt
+	   IF (tt.GE.taxlo(lg) .AND.
+     .         tt.LT.taxhi(lg)) THEN
+              jg = 1
+	      DO j = 1, ny
+		 IF (yy.GE.yaxlo(jg) .AND.
+     .	             yy.LT.yaxhi(jg)) THEN
+                    ig = 1
+		    DO i = 1, nx
+		       IF ( xx.GE.xaxlo(ig) .AND.
+     .                      xx.LT.xaxhi(ig)) THEN
+
+		          IF (obs_only .EQ. 0) THEN
+		             obs(ig,jg,1,Lg) = obs(ig,jg,1,Lg) + vv
+		             obs(ig,jg,2,Lg) = obs(ig,jg,2,Lg) + 1.
+		          ELSE
+		             obs(ig,jg,1,Lg) = obs(ig,jg,1,Lg) + 1.
+		             ENDIF
 
 * Store the min and max index used in this cruise
-	indx(1,1) = MIN(indx(1,1), ig)
-	indx(1,2) = MAX(indx(1,2), ig)
-	indx(2,1) = MIN(indx(2,1), jg)
-	indx(2,2) = MAX(indx(2,2), jg)
-	indx(4,1) = MIN(indx(4,1), Lg)
-	indx(4,2) = MAX(indx(4,2), Lg)
+		             indx(1,1) = MIN(indx(1,1), ig)
+		             indx(1,2) = MAX(indx(1,2), ig)
+		             indx(2,1) = MIN(indx(2,1), jg)
+		             indx(2,2) = MAX(indx(2,2), jg)
+		             indx(4,1) = MIN(indx(4,1), Lg)
+		             indx(4,2) = MAX(indx(4,2), Lg)
+		       ENDIF !xx in grid box
+		       ig = ig + 1
+		    ENDDO  ! nx
+
+		 ENDIF !yy in grid box
+		 jg = jg + 1
+	      ENDDO  ! ny
+
+	   ENDIF !tt in grid box
+	   lg = lg + 1
+	ENDDO  ! nt
 
 	RETURN
 	END
diff --git a/external_functions/gridding/scat2grid_mask_bin_xyt.F b/external_functions/gridding/scat2grid_mask_bin_xyt.F
index 771ff62..2f4a855 100644
--- a/external_functions/gridding/scat2grid_mask_bin_xyt.F
+++ b/external_functions/gridding/scat2grid_mask_bin_xyt.F
@@ -438,11 +438,14 @@ C  Get first coordinates of output axes.
 
             imask = INT(1+(xx-x1)/dx)
             if (xx .LT. xaxlo(imask,1,1,1)) imask = imask - 1
-            if (xx .GT. xaxhi(imask,1,1,1)) imask = imask + 1
+            if (xx .GE. xaxhi(imask,1,1,1)) imask = imask + 1
             jmask = INT(1+(yy-y1)/dy)
             if (yy .LT. yaxlo(jmask,1,1,1)) jmask = jmask - 1
-            if (yy .GT. yaxhi(jmask,1,1,1)) jmask = jmask + 1
+            if (yy .GE. yaxhi(jmask,1,1,1)) jmask = jmask + 1
 
+
+            IF (imask.LT.mem8lox .OR. imask.GT.mem8hix) GOTO 300
+            IF (jmask.LT.mem8loy .OR. jmask.GT.mem8hiy) GOTO 300
             IF (arg_8(imask,jmask,k8,l8) .NE. 1.) GOTO 300
 
 *  If output X axis is modulo, apply modulo adjustment to that coordinate
diff --git a/external_functions/gridding/socat_decadal.jnl b/external_functions/gridding/socat_decadal.jnl
deleted file mode 100644
index 6748faf..0000000
--- a/external_functions/gridding/socat_decadal.jnl
+++ /dev/null
@@ -1,99 +0,0 @@
- ! Compute decadal averages of SOCAT gridded data:
- ! sum the counts
- ! average the fco2 averages
- ! min and max the fco2 min and max.
-
-use "/home/data/socat/SOCAT_tracks_gridded_monthly.nc"
-set mem/siz=70
-
-define symbol outfile = /home/data/socat/SOCAT_tracks_gridded_decadal_new.nc
-sp rm -f outfile
-
-! Define output time axis
-
- 
-
-yes? let year = 1900+{70,80,90,100,110}
-yes? let month = 1
-yes? let day = 1
-yes? define axis/units=days/t0=1-jan-1900/edges tdecade = days1900(year, month, 1)
-
-
-! Regrid each variable to the decadal axis using the appropriate transform.
-
-define symbol invar = count_ncruise  ! count_ncruise or ($invar)
-define sym op = SUM
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-
-! Sum for each month, adding to the dataset
-let/title="($title_out)"/units="($units_out)"  ($invar)_decade = ($invar)[gt=tdecade@($op)]
-save/file="($outfile)"/clobber ($invar)_decade
-
-! Now the same for count_nobs
-define symbol invar = count_nobs  ! count_ncruise or count_nobs
-define symbol op = SUM
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-! add to dataset
-let/title="($title_out)"/units="($units_out)"  ($invar)_decade = ($invar)[gt=tdecade@($op)]
-save/file="($outfile)"/append ($invar)_decade
-
-
-! For FCO2 variables, average.
-define symbol invar = fco2_ave_weighted
-define symbol op = AVE
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-
-! add to dataset
-let/title="($title_out)"/units="($units_out)"  ($invar)_decade = ($invar)[gt=tdecade@($op)]
-save/file="($outfile)"/append ($invar)_decade
-
-! For FCO2 variables, average.
-define symbol invar = fco2_ave_unwtd
-define symbol op = AVE
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-
-! add to dataset
-let/title="($title_out)"/units="($units_out)"  ($invar)_decade = ($invar)[gt=tdecade@($op)]
-save/file="($outfile)"/append ($invar)_decade
-
-! For FCO2 min and max, use the min and max.
-define symbol invar = fco2_min_unwtd
-define symbol op = MIN
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-
-! add to dataset
-let/title="($title_out)"/units="($units_out)"  ($invar)_decade = ($invar)[gt=tdecade@($op)]
-save/file="($outfile)"/append ($invar)_decade
-
-! For FCO2 min and max, use the min and max.
-define symbol invar = fco2_max_unwtd
-define symbol op = MAX
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-
-! add to dataset
-let/title="($title_out)"/units="($units_out)"  ($invar)_decade = ($invar)[gt=tdecade@($op)]
-save/file="($outfile)"/append ($invar)_decade
-
-! Add global attribute
-
-let status = nco_attr("($outfile)", "global", "title", "c", "a",\
-"SOCAT gridded v1.4 May 2011, QC-Flags A-D, WOCE-Flag 2 by Decade" )
-load status
diff --git a/external_functions/gridding/socat_monthly_climatology.jnl b/external_functions/gridding/socat_monthly_climatology.jnl
deleted file mode 100644
index f3abc1b..0000000
--- a/external_functions/gridding/socat_monthly_climatology.jnl
+++ /dev/null
@@ -1,96 +0,0 @@
- ! Compute monthly climatologies of SOCAT gridded data.
- ! sum the counts
- ! average the fco2 averages
- ! min and max the fco2 min and max.
-
-use "/home/data/socat/SOCAT_tracks_gridded_monthly.nc"
-
-
-define symbol outfile = /home/data/socat/SOCAT_tracks_gridded_month_clim.nc
-sp rm -f outfile
-
-define symbol invar = count_ncruise  ! count_ncruise or ($invar)
-define sym op = SUM
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-use climatological_axes
-can data 2
-
-let LL = l[gt=($invar)[d=1]]
-
-if `tax_month(LL[L=1], LL) NE 1` THEN 
-   say 'original time axis does not start in January'
-   exit/program
-endif
- 
-! For plotting the climatologies
-define sym levsym=(v,0min)
-keymark,1
-set win/siz=0.5
-
-! Sum for each month, adding to the dataset
-repeat/range=1:12/name=m (let imon = `m`; go clim_month)
-pause
-
-! Now the same for count_nobs
-define symbol invar = count_nobs  ! count_ncruise or count_nobs
-define symbol op = SUM
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-! All months
-repeat/range=1:12/name=m (let imon = `m`; go clim_month)
-pause
-
-! For FCO2 variables, average.
-define symbol invar = fco2_ave_weighted
-define symbol op = AVE
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-! All months
-repeat/range=1:12/name=m (let imon = `m`; go clim_month)
-pause
-
-! For FCO2 variables, average.
-define symbol invar = fco2_ave_unwtd
-define symbol op = AVE
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-! All months
-repeat/range=1:12/name=m (let imon = `m`; go clim_month)
-pause
-
-! For FCO2 min and max, use the min and max.
-define symbol invar = fco2_min_unwtd
-define symbol op = MIN
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-! All months
-repeat/range=1:12/name=m (let imon = `m`; go clim_month)
-pause
-
-! For FCO2 min and max, use the min and max.
-define symbol invar = fco2_max_unwtd
-define symbol op = MAX
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-! All months
-repeat/range=1:12/name=m (let imon = `m`; go clim_month)
-
-
-! Add global attributes
-
-let status = nco_attr("($outfile)", "global", "title", "c", "a",\
-"SOCAT gridded v1.4 May 2011, QC-Flags A-D, WOCE-Flag 2 Monthly Climatology" )
-load status
diff --git a/external_functions/gridding/socat_yearly.jnl b/external_functions/gridding/socat_yearly.jnl
deleted file mode 100644
index 7506f35..0000000
--- a/external_functions/gridding/socat_yearly.jnl
+++ /dev/null
@@ -1,93 +0,0 @@
- ! Compute yearly averages of SOCAT gridded data:
- ! sum the counts
- ! average the fco2 averages
- ! min and max the fco2 min and max.
-
-use "/home/data/socat/SOCAT_tracks_gridded_monthly.nc"
-set mem/siz=70
-
-define symbol outfile = /home/data/socat/SOCAT_tracks_gridded_yearly.nc
-sp rm -f outfile
-
-! Define output time axis
-
-DEFINE AXIS/t="1-jan-1970":"31-dec-2007":1/edges/units=year tyear
-
-
-! Regrid each variable to the yearly axis using the appropriate transform.
-
-define symbol invar = count_ncruise  ! count_ncruise or ($invar)
-define sym op = SUM
-
-define symbol title_out=`($invar)[d=1],return=title` 
-define symbol units_out=`($invar)[d=1],return=units`
-
-! Sum for each month, adding to the dataset
-let/title="($title_out)"/units="($units_out)"  ($invar)_year = ($invar)[gt=tyear@($op)]
-save/file="($outfile)"/clobber ($invar)_year
-
-! Now the same for count_nobs
-define symbol invar = count_nobs  ! count_ncruise or count_nobs
-define symbol op = SUM
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-! add to dataset
-let/title="($title_out)"/units="($units_out)"  ($invar)_year = ($invar)[gt=tyear@($op)]
-save/file="($outfile)"/append ($invar)_year
-
-
-! For FCO2 variables, average.
-define symbol invar = fco2_ave_weighted
-define symbol op = AVE
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-
-! add to dataset
-let/title="($title_out)"/units="($units_out)"  ($invar)_year = ($invar)[gt=tyear@($op)]
-save/file="($outfile)"/append ($invar)_year
-
-! For FCO2 variables, average.
-define symbol invar = fco2_ave_unwtd
-define symbol op = AVE
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-
-! add to dataset
-let/title="($title_out)"/units="($units_out)"  ($invar)_year = ($invar)[gt=tyear@($op)]
-save/file="($outfile)"/append ($invar)_year
-
-! For FCO2 min and max, use the min and max.
-define symbol invar = fco2_min_unwtd
-define symbol op = MIN
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-
-! add to dataset
-let/title="($title_out)"/units="($units_out)"  ($invar)_year = ($invar)[gt=tyear@($op)]
-save/file="($outfile)"/append ($invar)_year
-
-! For FCO2 min and max, use the min and max.
-define symbol invar = fco2_max_unwtd
-define symbol op = MAX
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-
-! add to dataset
-let/title="($title_out)"/units="($units_out)"  ($invar)_year = ($invar)[gt=tyear@($op)]
-save/file="($outfile)"/append ($invar)_year
-
-! Add global attribute
-
-let status = nco_attr("($outfile)", "global", "title", "c", "a",\
-"SOCAT gridded v1.4 May 2011, QC-Flags A-D, WOCE-Flag 2 Yearly" )
-load status
diff --git a/external_functions/gridding/test_tracks2grid_var_xyt.jnl b/external_functions/gridding/test_tracks2grid_var_xyt.jnl
deleted file mode 100644
index 4eb893e..0000000
--- a/external_functions/gridding/test_tracks2grid_var_xyt.jnl
+++ /dev/null
@@ -1,64 +0,0 @@
-! compute cruiseVariance
-
-! create a coarse resolution XYT grid that can be used to anticipate the
-! volume of data in an arbitrary XYT region
- 
-SET MEM/SIZ=300
-
-DEFINE AXIS/X=-179.5:179.5:1/UNITS=degrees_east/MODULO xlon
-DEFINE AXIS/Y=-89.5:89.5:1/UNITS=degrees_north ylat
-
-LET dx = `0.5* xbox[gx=xlon,i=1]`
-LET dy = `0.5* ybox[gy=ylat,j=1]`
-
-!Data contains lat,lon,date,data_id,cruise_id,cruise_no,fco2_rec
-USE "/home/data/socat/SOCAT_triples_1.3_fco2.nc"
-
-SET AXIS/STRIDE=1 `lon,return=xaxis`
-let ntimes = 10000
-let ntimes = `lon,return=isize`
-
-LET offset1970 = DAYS1900(1970,1,1)
-LET month = MOD(ii-1,12)+1
-LET year = 1970 + INT((ii-1)/12)
-
-! for entire time period of SOCAT
-LET ii = i[i=1:480]
-
-
-!LET ii = i[i=421:433] ! for the year 2005 only
-!LET ii = i[i=445:456] ! for the year 2007 only
-
-DEFINE AXIS/T0="1-jan-1970"/EDGES/UNITS=days tmnth = DAYS1900(year,month,1) - offset1970
-   
-! Variance by cruise of Fco2_rec, with some data in each XYT cell
-LET fvar = fco2_rec
-
-LET/UNITS="Variance"/\
- TITLE="Variance variable fco2_rec over cruises with carbon obs in 1x1, monthly bins" \
- fco2_weighted_var = TRACKS2GRID_VAR_XYT(fvar[i=1:`ntimes`],lon[i=1:`ntimes`],lat[i=1:`ntimes`],\
- date[i=1:`ntimes`],cruise_no[i=1:`ntimes`],x[gx=xlon],y[gy=ylat],t[gt=tmnth])
-
-SP date
-SAVE/CLOBBER/FILE=SOCAT_var.nc fco2_weighted_var
-SP date
-
-can var/all
-use SOCAT_var
-
-
-shade/lev=(0,2200,100)(inf) fco2_weighted_var[t=@ave]
-go fland 20
-
-
-pause
-shade/lev/x=-10:10/y=40:60 fco2_weighted_var[t=@ave]
-SET DATA 1
-GO polymark poly/over/nokey/pal=greyscale lon, lat, cruise_no, square
-
-
-pause
-let fc =  FCO2_WEIGHTED_VAR^0.5
-shade fc[t=@ave]
-go fland 20
-
diff --git a/external_functions/gridding/tracks2grid_ave_fco2_xyt_stats.jnl b/external_functions/gridding/tracks2grid_ave_fco2_xyt_stats.jnl
deleted file mode 100644
index 19d194d..0000000
--- a/external_functions/gridding/tracks2grid_ave_fco2_xyt_stats.jnl
+++ /dev/null
@@ -1,57 +0,0 @@
-! compute cruiseDensity
-
-! create a coarse resolution XYT grid that can be used to anticipate the
-! volume of data in an arbitrary XYT region
- 
-SET MEM/SIZ=300
-
-DEFINE AXIS/X=-179.5:179.5:1/UNITS=degrees_east/MODULO xlon
-DEFINE AXIS/Y=-89.5:89.5:1/UNITS=degrees_north ylat
-
-LET dx = `0.5* xbox[gx=xlon,i=1]`
-LET dy = `0.5* ybox[gy=ylat,j=1]`
-
-!Data contains lat,lon,date,data_id,cruise_id,cruise_no,fco2_rec
-! USE "/home/data/socat/SOCAT_triples_fco2.nc"
-
- !USE "/home/data/socat/SOCAT_triples_AD_1.3_fco2.nc"
-
-use  "/home/data/socat/SOCAT_triples_averaged_8_30_2011_AD_1.3_fco2.nc"
-
-!SET AXIS/STRIDE=100 `lon,return=xaxis`
-
-! Triples have time with origin at start of 1970.
-LET offset1970 = DAYS1900(1970,1,1)
-LET month = MOD(ii-1,12)+1
-LET year = 1970 + INT((ii-1)/12)
-
-! for entire time period of SOCAT
-LET ii = i[i=1:480]
-
-! Repeat and do the calculation for 5-year intervals.
-LET i1 = 1
-LET i2 = 61
-LET del = 60
-
-let imax = 457  ! through the end of 2007
-
-DEFINE SYMBOL file_qual = CLOBBER  ! First time CLOBBBER, afterwards APPEND to the file.
-DEFINE SYMBOL gridded_outfile = /home/data/socat/SOCAT_tracks_gridded_stats_AD.nc
-DEFINE SYMBOL gridded_outfile = /home/data/socat/SOCAT_tracks_gridded_monthly.SOCAT_triples_averaged_8_30_2011_AD_1.3_fco2.nc
-
-repeat/range=1:10:1 ( \
- LET ii = i[i=`i1`:`i2`]; \
- GO fco2_xyt_stats_year.jnl; \
- LET i1 = `i2`; \
- LET i2 = `i2+del`; \
- IF `i2 GT imax` THEN LET i2 = `imax`; \
- IF `i1 GE imax` THEN exit/loop; \
- )
-
-
-! Add global attributes
-
-let status = nco_attr("($gridded_outfile)", "global", "title", "c", "a",\
-"SOCAT gridded. SOCAT v1.4 May 2011, QC-Flags A-D, WOCE-Flag 2" )
-load status
-
diff --git a/external_functions/gridding/tracks2grid_mask_ave_xyt.F b/external_functions/gridding/tracks2grid_mask_ave_xyt.F
index 1d8ee0a..26f2178 100644
--- a/external_functions/gridding/tracks2grid_mask_ave_xyt.F
+++ b/external_functions/gridding/tracks2grid_mask_ave_xyt.F
@@ -106,7 +106,7 @@
       CALL ef_set_axis_inheritance(id, IMPLIED_BY_ARGS,
      .        IMPLIED_BY_ARGS, NORMAL, IMPLIED_BY_ARGS)
 
-      CALL ef_set_num_work_arrays(id, 5)
+      CALL ef_set_num_work_arrays(id, 8)
 
 * Output grid is determined by arguments 4, 5, 6, the result's x, y, t axes. 
 
@@ -144,19 +144,19 @@
       arg = 6
       CALL ef_set_arg_name(id, arg, 'XAXPTS')
       CALL ef_set_arg_desc(id, arg, 
-     .                   'X axis coordinates of a regular output grid')
+     . 'X axis coordinates of the output grid, with same units as xpts')
       CALL ef_set_axis_influence(id, arg, YES, NO, NO, NO)
 
       arg = 7
       CALL ef_set_arg_name(id, arg, 'YAXPTS')
       CALL ef_set_arg_desc(id, arg, 
-     .                   'Y axis coordinates of a regular output grid')
+     . 'Y axis coordinates of the output grid, with same units as ypts')
       CALL ef_set_axis_influence(id, arg, NO, YES, NO, NO)
 
       arg = 8
       CALL ef_set_arg_name(id, arg, 'TAXPTS')
       WRITE (buff, 20)
-   20 FORMAT ('T axis coordinates, of a regular output grid, with same ',
+   20 FORMAT ('T axis coordinates, of the output grid, with same ',
      .       'units and origin as tpts')
       CALL ef_set_arg_desc(id, arg, buff)
       CALL ef_set_axis_influence(id, arg, NO, NO, NO, YES)
@@ -203,29 +203,31 @@
       nyout = 1 + arg_hi_ss(Y_AXIS,ARG7) - arg_lo_ss(Y_AXIS,ARG7)
       ntout = 1 + arg_hi_ss(T_AXIS,ARG8) - arg_lo_ss(T_AXIS,ARG8)
 
-      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, nxout, 1, 1, 1)
+* xaxhi  output x axis
+      CALL ef_set_work_array_dims (id, 2, 1, 1, 1, 1, nxout, 1, 1, 1)
 
-* xax  output x axis
-      CALL ef_set_work_array_dims (id, 1, 1, 1, 1, 1, nx2, 1, 1, 1)
+* yaxlo  output y axis
+      CALL ef_set_work_array_dims (id, 3, 1, 1, 1, 1, nyout, 1, 1, 1)
+* yaxhi  output y axis
+      CALL ef_set_work_array_dims (id, 4, 1, 1, 1, 1, nyout, 1, 1, 1)
 
-* yax  output y axis
-      CALL ef_set_work_array_dims (id, 2, 1, 1, 1, 1, ny2, 1, 1, 1)
-
-* Tax  output t axis
-      CALL ef_set_work_array_dims (id, 3, 1, 1, 1, 1, nt2, 1, 1, 1)
+* taxlo  output t axis
+      CALL ef_set_work_array_dims (id, 5, 1, 1, 1, 1, ntout, 1, 1, 1)
+* taxhi  output t axis
+      CALL ef_set_work_array_dims (id, 6, 1, 1, 1, 1, ntout, 1, 1, 1)
 
 * obs_cruise  work array - sum and counts of observations per cruise
 * x,y,t direction: output grid
 * z direction: 1..2
-      CALL ef_set_work_array_dims (id, 4, 1, 1, 1, 1, 
+      CALL ef_set_work_array_dims (id, 7, 1, 1, 1, 1, 
      .                             nxout, nyout, 2, ntout)
 
 * obs  work array - work array - sum and counts of observations
 * x,y,t direction: output grid
 * z direction: 1..2
-      CALL ef_set_work_array_dims (id, 5, 1, 1, 1, 1, 
+      CALL ef_set_work_array_dims (id, 8, 1, 1, 1, 1, 
      .                             nxout, nyout, 2, ntout)
 
       RETURN
@@ -238,7 +240,7 @@
 
       SUBROUTINE tracks2grid_mask_ave_xyt_compute(id, arg_1, arg_2, arg_3, 
      .     arg_4, arg_5, arg_6, arg_7, arg_8, arg_9, result, 
-     .      xax, yax, tax, obs_cruise, obs)
+     .     xaxlo, xaxhi, yaxlo, yaxhi, taxlo, taxhi, obs_cruise, obs)
 
 *  arg_1  var
 *  arg_2  xpts  \
@@ -295,7 +297,6 @@
       INTEGER i, j, k, l, m, n
       INTEGER i1, i2, j1, k1, l1, k2
       INTEGER i6,j7,L8,i6n,j7n,L8n
-      INTEGER imask, jmask, k9, l9
 
       INTEGER nxpts, npts
       INTEGER nx, ny, nt
@@ -307,25 +308,27 @@
 
 *  Dimension the work arrays
 
-      REAL*8 xax(wrk1lox:wrk1hix/2, wrk1loy:wrk1hiy,
+      REAL*8 xaxlo(wrk1lox:wrk1hix, wrk1loy:wrk1hiy,
      .               wrk1loz:wrk1hiz, wrk1lot:wrk1hit)
-      REAL*8 yax(wrk2lox:wrk2hix/2, wrk2loy:wrk2hiy,
+      REAL*8 xaxhi(wrk2lox:wrk2hix, wrk2loy:wrk2hiy,
      .               wrk2loz:wrk2hiz, wrk2lot:wrk2hit)
-      REAL*8 tax(wrk3lox:wrk3hix/2, wrk3loy:wrk3hiy,
+      REAL*8 yaxlo(wrk3lox:wrk3hix, wrk3loy:wrk3hiy,
      .               wrk3loz:wrk3hiz, wrk3lot:wrk3hit)
-      REAL obs_cruise(wrk4lox:wrk4hix, wrk4loy:wrk4hiy,
+      REAL*8 yaxhi(wrk4lox:wrk4hix, wrk4loy:wrk4hiy, 
      .               wrk4loz:wrk4hiz, wrk4lot:wrk4hit)
-      REAL obs(wrk5lox:wrk5hix, wrk5loy:wrk5hiy,
+      REAL*8 taxlo(wrk5lox:wrk5hix, wrk5loy:wrk5hiy,
      .               wrk5loz:wrk5hiz, wrk5lot:wrk5hit)
+      REAL*8 taxhi(wrk6lox:wrk6hix, wrk6loy:wrk6hiy,
+     .               wrk6loz:wrk6hiz, wrk6lot:wrk6hit)
 
-      CHARACTER*250 errtxt
-
-C  variables for checking axis characteristics (modulo axes)
+      REAL obs_cruise(wrk7lox:wrk7hix, wrk7loy:wrk7hiy,
+     .               wrk7loz:wrk7hiz, wrk7lot:wrk7hit)
+      REAL obs(wrk8lox:wrk8hix, wrk8loy:wrk8hiy,
+     .               wrk8loz:wrk8hiz, wrk8lot:wrk8hit)
 
-      CHARACTER ax_name(4)*16, ax_units(4)*16
-      LOGICAL backward(4), modulox(4), moduloy(4), modulot(4), regular(4)
+      CHARACTER*250 errtxt
 
-      REAL dx, dy, xxbeg, xxend, yybeg, yyend
+      REAL*8 dx, dy, dt, xxbeg, xxend, yybeg, yyend
       REAL*8 xax1,xaxf, yax1,yaxf, tax1,taxf
       INTEGER indx(4,2)
 
@@ -336,15 +339,6 @@ C  variables for checking axis characteristics (modulo axes)
       obs_only = 0	! 0 = var 1 is a variable to average.
                         ! 1 = Compute a count of cruises with an obs in the grid cells
 
-*  Check to see if output axes are modulo
-
-      CALL ef_get_axis_info (id, 6, ax_name, ax_units, backward, 
-     .                       modulox, regular)
-      CALL ef_get_axis_info (id, 7, ax_name, ax_units, backward, 
-     .                       moduloy, regular)
-      CALL ef_get_axis_info (id, 8, 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 arguments.
 
@@ -435,54 +429,23 @@ C  variables for checking axis characteristics (modulo axes)
 
 C  Get coordinates of output axes.
 
-      call ef_get_coordinates(id, ARG6, X_AXIS, 
-     .   arg_lo_ss(X_AXIS, ARG6), arg_hi_ss(X_AXIS, ARG6), xax)
-
-      call ef_get_coordinates(id, ARG7, Y_AXIS, 
-     .   arg_lo_ss(Y_AXIS, ARG7), arg_hi_ss(Y_AXIS, ARG7), yax)
-
-      call ef_get_coordinates(id, ARG8, T_AXIS, 
-     .   arg_lo_ss(T_AXIS, ARG8), arg_hi_ss(T_AXIS, ARG8), tax)
+      CALL EF_GET_BOX_LIMITS(id, ARG6, X_AXIS,
+     .   arg_lo_ss(X_AXIS, ARG6), arg_hi_ss(X_AXIS, ARG6), xaxlo, xaxhi)
 
-*  Set start, end, and delta for output axes. 
+      CALL EF_GET_BOX_LIMITS(id, ARG7, Y_AXIS,
+     .   arg_lo_ss(Y_AXIS, ARG7), arg_hi_ss(Y_AXIS, ARG7), yaxlo, yaxhi)
 
-      x1 = xax(1,1,1,1)
-      y1 = yax(1,1,1,1)
-      t1 = tax(1,1,1,1)
+      CALL EF_GET_BOX_LIMITS(id, ARG8, T_AXIS,
+     .   arg_lo_ss(T_AXIS, ARG8), arg_hi_ss(T_AXIS, ARG8), taxlo, taxhi)
 
-      xf = xax(nx,1,1,1)
-      yf = yax(ny,1,1,1)
-      tf = tax(nt,1,1,1)
+*  Get first coordinates of output axes.
 
-*  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) 
-      dt = tf - t1
-      IF (nt .GT. 1) dt = (tf-t1)/ REAL(nt-1) 
-
-      IF (nx .EQ. 1) THEN 
-         CALL ef_get_box_limits(id, ARG6, X_AXIS, 
-     .   arg_lo_ss(X_AXIS, ARG6), arg_hi_ss(X_AXIS, ARG6), xax1,xaxf)
-         dx = xaxf - xax1
-      ENDIF
-      IF (ny .EQ. 1) THEN 
-         CALL ef_get_box_limits(id, ARG7, Y_AXIS, 
-     .   arg_lo_ss(Y_AXIS, ARG7), arg_hi_ss(Y_AXIS, ARG7), yax1,yaxf)
-         dy = yaxf - yax1
-      ENDIF
-         IF (nt .EQ. 1) THEN 
-         CALL ef_get_box_limits(id, ARG8, T_AXIS, 
-     .   arg_lo_ss(T_AXIS, ARG8), arg_hi_ss(T_AXIS, ARG8), tax1,taxf)
-         tx = taxf - tax1
-      ENDIF
-
-
-      CALL ef_get_box_limits(id, ARG6, X_AXIS, 
-     .   arg_lo_ss(X_AXIS, ARG6), arg_lo_ss(X_AXIS, ARG6), xax1,xax1)
-      CALL ef_get_box_limits(id, ARG6, X_AXIS, 
-     .   arg_hi_ss(X_AXIS, ARG6), arg_hi_ss(X_AXIS, ARG6), xaxf,xaxf)
+      call ef_get_coordinates(id, ARG6, X_AXIS, 
+     .   arg_lo_ss(X_AXIS, ARG6), arg_lo_ss(X_AXIS, ARG6), xax1)
+      call ef_get_coordinates(id, ARG7, X_AXIS, 
+     .   arg_lo_ss(Y_AXIS, ARG7), arg_lo_ss(Y_AXIS, ARG7), yax1)
+      x1 = xax1
+      y1 = yax1
 
 *  Compute result
 
@@ -529,9 +492,7 @@ C  Get coordinates of output axes.
       indx(2,2) = 1
       indx(4,1) = nt
       indx(4,2) = 1
-
-      k9 = arg_lo_ss(Z_AXIS,ARG9)
-      l9 = arg_lo_ss(T_AXIS,ARG9)
+      
       DO 300 n = 1, nscat
 
          CALL pickoutxytcv (obs_only, arg_1, arg_2, arg_3, arg_4, arg_5,
@@ -539,15 +500,9 @@ 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
      
-         imask = INT(1+(xx-x1)/dx)
-         if (xx .LT. xax(imask,1,1,1) - dx/2) imask = imask - 1
-         if (xx .GT. xax(imask,1,1,1) + dx/2) imask = imask + 1
-         jmask = INT(1+(yy-y1)/dy)
-         if (yy .LT. yax(jmask,1,1,1) - dy/2) jmask = jmask - 1
-         if (yy .GT. yax(jmask,1,1,1) + dy/2) jmask = jmask + 1
-
-         IF (arg_9(imask,jmask,k9,l9) .NE. 1.) 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 (ncc .NE. icruise) THEN
 	    
@@ -584,31 +539,8 @@ C  Get coordinates of output axes.
 	    
 	 ENDIF
 
-*  If an output axis is modulo, apply modulo adjustment to that coordinate
-*  of the scattered point.
-
-c         IF  (modulox(1) .AND. xx.NE.bad_flag(ARG1))
-c     .         CALL modscatminmax (xax1, xaxf, 1, xx)
-
          CALL nobsxytv (obs_only, xx, yy, tt, vv, nx, ny, nt, 
-     .           x1, y1, t1, dx, dy, dt, xf, yf, tf, indx, obs_cruise)
-
-*  Put points within dx or dy  or dt of the end just beyond the
-*  other end, and use in the gridding computation.
-
-c         IF (modulox(1)) THEN
-c            IF ((xx-x1 .GE. 0.) .AND. (xx-x1 .LT. dx) ) THEN
-c               xxend = xf + (xx-x1)
-c               CALL nobsxytv (obs_only, xxend, yy, tt, vv, nx, ny, nt, 
-c     .              x1, y1, t1, dx, dy, dt, xf, yf, tf, indx, obs_cruise)
-c            ENDIF
-                     
-c            IF ((xf-xx .GE. 0.)  .AND. (xf-xx .LT. dx) ) THEN
-c               xxbeg = x1 - (xf-xx)
-c               CALL nobsxytv (obs_only, xxbeg, yy, tt, vv, nx, ny, nt, 
-c     .              x1, y1, t1, dx, dy, dt, xf, yf, tf, indx, obs_cruise)
-c            ENDIF
-c         ENDIF
+     .           xaxlo,xaxhi, yaxlo,yaxhi, taxlo,taxhi, indx, obs_cruise)
 
  300     CONTINUE
 
diff --git a/external_functions/gridding/tracks2grid_std_xyt.F b/external_functions/gridding/tracks2grid_std_xyt.F
index 4df5e3f..e790900 100644
--- a/external_functions/gridding/tracks2grid_std_xyt.F
+++ b/external_functions/gridding/tracks2grid_std_xyt.F
@@ -204,18 +204,14 @@
       nyout = 1 + arg_hi_ss(Y_AXIS,ARG7) - arg_lo_ss(Y_AXIS,ARG7)
       ntout = 1 + arg_hi_ss(T_AXIS,ARG8) - arg_lo_ss(T_AXIS,ARG8)
 
-      nx2 = nxout* 2
-      ny2 = nyout* 2
-      nt2 = ntout* 2
+* xax  output x axis cell edges
+      CALL ef_set_work_array_dims (id, 1, 1, 1, 1, 1, nxout, 2, 1, 1)
 
-* xax  output x axis
-      CALL ef_set_work_array_dims (id, 1, 1, 1, 1, 1, nx2, 1, 1, 1)
+* yax  output y axis cell edges
+      CALL ef_set_work_array_dims (id, 2, 1, 1, 1, 1, nyout, 2, 1, 1)
 
-* yax  output y axis
-      CALL ef_set_work_array_dims (id, 2, 1, 1, 1, 1, ny2, 1, 1, 1)
-
-* Tax  output t axis
-      CALL ef_set_work_array_dims (id, 3, 1, 1, 1, 1, nt2, 1, 1, 1)
+* Tax  output t axis cell edges
+      CALL ef_set_work_array_dims (id, 3, 1, 1, 1, 1, ntout, 2, 1, 1)
 
 * obs_cruise  work array - sum and counts of observations per cruise
 * x,y,t direction: output grid
@@ -332,11 +328,11 @@
 
 *  Dimension the work arrays
 
-      REAL*8 xax(wrk1lox:wrk1hix/2, wrk1loy:wrk1hiy,
+      REAL*8 xax(wrk1lox:wrk1hix, wrk1loy:wrk1hiy,
      .               wrk1loz:wrk1hiz, wrk1lot:wrk1hit)
-      REAL*8 yax(wrk2lox:wrk2hix/2, wrk2loy:wrk2hiy,
+      REAL*8 yax(wrk2lox:wrk2hix, wrk2loy:wrk2hiy,
      .               wrk2loz:wrk2hiz, wrk2lot:wrk2hit)
-      REAL*8 tax(wrk3lox:wrk3hix/2, wrk3loy:wrk3hiy,
+      REAL*8 tax(wrk3lox:wrk3hix, wrk3loy:wrk3hiy,
      .               wrk3loz:wrk3hiz, wrk3lot:wrk3hit)
       REAL obs_cruise(wrk4lox:wrk4hix, wrk4loy:wrk4hiy,
      .               wrk4loz:wrk4hiz, wrk4lot:wrk4hit)
@@ -351,26 +347,12 @@
 
       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), modulot(4), regular(4)
-
       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)
 
       obs_only = 0	! Compute the std for average of variable (e.g. fco2)
 
-*  Check to see if output axes are modulo
-
-      CALL ef_get_axis_info (id, 6, ax_name, ax_units, backward, 
-     .                       modulox, regular)
-      CALL ef_get_axis_info (id, 7, ax_name, ax_units, backward, 
-     .                       moduloy, regular)
-      CALL ef_get_axis_info (id, 8, 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 arguments.
 
@@ -460,48 +442,23 @@ C  variables for checking axis characteristics (modulo axes)
 
 C  Get coordinates of output axes.
 
-      call ef_get_coordinates(id, ARG6, X_AXIS, 
-     .   arg_lo_ss(X_AXIS, ARG6), arg_hi_ss(X_AXIS, ARG6), xax)
-
-      call ef_get_coordinates(id, ARG7, Y_AXIS, 
-     .   arg_lo_ss(Y_AXIS, ARG7), arg_hi_ss(Y_AXIS, ARG7), yax)
-
-      call ef_get_coordinates(id, ARG8, T_AXIS, 
-     .   arg_lo_ss(T_AXIS, ARG8), arg_hi_ss(T_AXIS, ARG8), tax)
+      CALL EF_GET_BOX_LIMITS(id, ARG6, X_AXIS,
+     .   arg_lo_ss(X_AXIS, ARG6), arg_hi_ss(X_AXIS, ARG6), xax(1,1,1,1), xax(1,2,1,1))
 
-*  Set start, end, and delta for output axes. 
+      CALL EF_GET_BOX_LIMITS(id, ARG7, Y_AXIS,
+     .   arg_lo_ss(Y_AXIS, ARG7), arg_hi_ss(Y_AXIS, ARG7), yax(1,1,1,1), yax(1,2,1,1))
 
-      x1 = xax(1,1,1,1)
-      y1 = yax(1,1,1,1)
-      t1 = tax(1,1,1,1)
+      CALL EF_GET_BOX_LIMITS(id, ARG8, T_AXIS,
+     .   arg_lo_ss(T_AXIS, ARG8), arg_hi_ss(T_AXIS, ARG8), tax(1,1,1,1), tax(1,2,1,1))
 
-      xf = xax(nx,1,1,1)
-      yf = yax(ny,1,1,1)
-      tf = tax(nt,1,1,1)
+*  Get first coordinates of output axes.
 
-*  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) 
-      dt = tf - t1
-      IF (nt .GT. 1) dt = (tf-t1)/ REAL(nt-1) 
-
-      IF (nx .EQ. 1) THEN 
-         CALL ef_get_box_limits(id, ARG6, X_AXIS, 
-     .   arg_lo_ss(X_AXIS, ARG6), arg_hi_ss(X_AXIS, ARG6), xax1,xaxf)
-         dx = xaxf - xax1
-      ENDIF
-      IF (ny .EQ. 1) THEN 
-         CALL ef_get_box_limits(id, ARG7, Y_AXIS, 
-     .   arg_lo_ss(Y_AXIS, ARG7), arg_hi_ss(Y_AXIS, ARG7), yax1,yaxf)
-         dy = yaxf - yax1
-      ENDIF
-         IF (nt .EQ. 1) THEN 
-         CALL ef_get_box_limits(id, ARG8, T_AXIS, 
-     .   arg_lo_ss(T_AXIS, ARG8), arg_hi_ss(T_AXIS, ARG8), tax1,taxf)
-         tx = taxf - tax1
-      ENDIF
+      call ef_get_coordinates(id, ARG6, X_AXIS, 
+     .   arg_lo_ss(X_AXIS, ARG6), arg_lo_ss(X_AXIS, ARG6), xax1)
+      call ef_get_coordinates(id, ARG7, X_AXIS, 
+     .   arg_lo_ss(Y_AXIS, ARG7), arg_lo_ss(Y_AXIS, ARG7), yax1)
+      x1 = xax1
+      y1 = yax1
 
 *  Compute result
 
@@ -599,7 +556,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.) THEN
+	       IF (obs_cruise(i,j,2,L).GT.0. .AND. obs_cruise(i,j,3,L).GT.0.) THEN
 
                   wt_cruise_mean = obs_cruise(i,j,1,L)/obs_cruise(i,j,3,L)
 
@@ -653,7 +610,8 @@ C  Get coordinates of output axes.
 *  Count and add up observations in each cell, in this cruise. 
      
          CALL nobsxytv_var (obs_only, xx, yy, tt, vv, nx, ny, nt, 
-     .           x1, y1, t1, dx, dy, dt, xf, yf, tf, indx, obs_cruise)
+     .        xax(1,1,1,1), xax(1,2,1,1), yax(1,1,1,1), yax(1,2,1,1), 
+     .        tax(1,1,1,1), tax(1,2,1,1), indx, obs_cruise)
 
  300  CONTINUE
 
@@ -665,7 +623,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.) THEN
+	       IF (obs_cruise(i,j,2,L).GT.0. .AND. obs_cruise(i,j,3,L).GT.0.) THEN
 
                   wt_cruise_mean = obs_cruise(i,j,1,L)/obs_cruise(i,j,3,L)
 
@@ -709,10 +667,10 @@ C  Get coordinates of output axes.
 
                IF (nc_cell .EQ. 0) THEN
                    result(i,j,k,l) = bad_flag_result
-                   result(i,j,2,l) = bad_flag_result
                ELSE IF (nc_cell .EQ. 1) THEN
                    result(i,j,k,l) = 0.
-                   result(i,j,2,l) = wi_sums(i,j,1,L)
+               ELSE IF (wi_sums(i,j,1,l).LE.1.e-6) THEN
+                   result(i,j,k,l) = bad_flag_result
 
 * Compute sum of (cruise-cell-averages - weighted cell mean) squared\
 
@@ -815,61 +773,69 @@ c this version returns the cell variance in obs(ig,jg,3,Lg)
 
 c  i	xx,yy,tt=x/y/t location of data pt (data units)
 c  i	nx,ny,nt=size of grids
-c  i	x1,y1,L1=west/south/earliest edge of grid (center of 1st box in data units)
+c  i	xaxlo,xaxyi, etc bounds of destination grid cells
 c  o 	obs(nx,ny,nt) number of obs in each (x,y,t) gridbox
 c--------------------------------------------------------------------------
 
 	SUBROUTINE nobsxytv_var (obs_only, xx, yy, tt, vv, nx, ny, nt, 
-     .             x1, y1, t1, dx, dy, dt, xf, yf, tf, indx, obs)
+     .             xaxlo,xaxhi, yaxlo,yaxhi, taxlo,taxhi, indx, obs)
 
 
 * Argument declarations
 
         INTEGER nx, ny, nt, obs_only, indx(4,2)
-	REAL xx, yy, tt, vv, x1, y1, t1, dx, dy, dt, xf, 
-     .       yf, tf, obs(nx,ny,3,nt)
+	REAL xx, yy, tt, vv,xaxlo(*), xaxhi(*), yaxlo(*), yaxhi(*), 
+     .       taxlo(*), taxhi(*), obs(nx,ny,3,nt)
 
 * Local variable declarations
 
         REAL xxg, yyg, ttg
-        INTEGER ig, jg, Lg ! !!!!!!!!!!!!!!!!!!!!!!!! adding t dimension throughtout
-
-	xxg = (xx-x1)/ dx + 1.		  ! grid values of data location
-	yyg = (yy-y1)/ dy + 1.
-	ttg = (tt-t1)/ dt + 1.
-
-c.................sum the value and count in each (x,y,t) gridbox
-	ig = NINT(xxg)
-	jg = NINT(yyg)
-	Lg = NINT(ttg)
-	IF (ig.LT.1 .OR. ig.GT.nx) RETURN
-	IF (ig.LT.1 .OR. ig.GT.nx) RETURN
-	IF (lg.LT.1 .OR. lg.GT.nt) RETURN
-
-* See below for def of algorithm, mean, delta, M2
-
-	IF (obs_only .EQ. 0) THEN
-           IF (ig.GE.1 .AND. ig.LE.nx .AND. jg.GE.1 .AND. jg.LE.ny .AND.
-     .       Lg.GE.1 .AND. Lg.LE.nt   ) THEN
-     		obs(ig,jg,2,Lg) = obs(ig,jg,2,Lg) + 1.	! count
-		delta = vv - obs(ig,jg,1,Lg)
-		obs(ig,jg,1,Lg) = obs(ig,jg,1,Lg) + delta/obs(ig,jg,2,Lg) ! current est of mean
-		obs(ig,jg,3,Lg) = obs(ig,jg,3,Lg) - delta*(vv - obs(ig,jg,1,Lg)) !M2
-	   ENDIF
-	ELSE
-	   IF (ig.GE.1 .AND. ig.LE.nx .AND. jg.GE.1 .AND. jg.LE.ny .AND.
-     .      Lg.GE.1 .AND. Lg.LE.nt   ) THEN
-     		obs(ig,jg,1,Lg) = obs(ig,jg,1,Lg) + 1.
-	   ENDIF
-	ENDIF
+        INTEGER ig, jg, Lg 
+
+
+	lg = 1
+	DO l = 1, nt
+	   IF (tt.GE.taxlo(lg) .AND.
+     .         tt.LT.taxhi(lg)) THEN
+              jg = 1
+	      DO j = 1, ny
+		 IF (yy.GE.yaxlo(jg) .AND.
+     .	             yy.LT.yaxhi(jg)) THEN
+                    ig = 1
+		    DO i = 1, nx
+		       IF ( xx.GE.xaxlo(ig) .AND.
+     .                      xx.LT.xaxhi(ig)) THEN
+
+		          IF (obs_only .EQ. 0) THEN
+		             obs(ig,jg,2,Lg) = obs(ig,jg,2,Lg) + 1.	! count
+		             delta = vv - obs(ig,jg,1,Lg)
+		             obs(ig,jg,1,Lg) = obs(ig,jg,1,Lg) + 
+     .                          delta/obs(ig,jg,2,Lg) ! current est of mean
+		             obs(ig,jg,3,Lg) = obs(ig,jg,3,Lg) - 
+     .                          delta*(vv - obs(ig,jg,1,Lg)) !M2
+		          ELSE
+		             obs(ig,jg,1,Lg) = obs(ig,jg,1,Lg) + 1.
+		          ENDIF
 
 * Store the min and max index used in this cruise
-	indx(1,1) = MIN(indx(1,1), ig)
-	indx(1,2) = MAX(indx(1,2), ig)
-	indx(2,1) = MIN(indx(2,1), jg)
-	indx(2,2) = MAX(indx(2,2), jg)
-	indx(4,1) = MIN(indx(4,1), Lg)
-	indx(4,2) = MAX(indx(4,2), Lg)
+		             indx(1,1) = MIN(indx(1,1), ig)
+		             indx(1,2) = MAX(indx(1,2), ig)
+		             indx(2,1) = MIN(indx(2,1), jg)
+		             indx(2,2) = MAX(indx(2,2), jg)
+		             indx(4,1) = MIN(indx(4,1), Lg)
+		             indx(4,2) = MAX(indx(4,2), Lg)
+		       ENDIF !xx in grid box
+		       ig = ig + 1
+		    ENDDO  ! nx
+
+		 ENDIF !yy in grid box
+		 jg = jg + 1
+	      ENDDO  ! ny
+
+	   ENDIF !tt in grid box
+	   lg = lg + 1
+	ENDDO  ! nt
+
 
 	RETURN
 	END
diff --git a/external_functions/las/Makefile b/external_functions/las/Makefile
index ce16f7f..4a43db7 100644
--- a/external_functions/las/Makefile
+++ b/external_functions/las/Makefile
@@ -40,7 +40,7 @@ include ../ef_utility/platform_specific.mk.$(BUILDTYPE)
 #
 
 #all:	write_webrow.so write_webrow_gwt.so list_value_xml.so
-all:	write_webrow_gwt.so
+all:	write_webrow_gwt.so lon_lat_time_string.so
 
 debug:
 	$(MAKE) "FFLAGS = $(FFLAGS) $(FFLAGS_DEBUG)" "CFLAGS = $(CFLAGS) $(CFLAGS_DEBUG)" all
diff --git a/external_functions/las/lon_lat_time_string.F b/external_functions/las/lon_lat_time_string.F
new file mode 100644
index 0000000..a966554
--- /dev/null
+++ b/external_functions/las/lon_lat_time_string.F
@@ -0,0 +1,238 @@
+*
+* lon_lat_time_string.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 lon_lat_time_string_init(id)
+
+      IMPLICIT NONE
+      INCLUDE 'ferret_cmn/EF_Util.cmn'
+
+      INTEGER id, arg
+
+      CALL ef_version_test(ef_version)
+
+* **********************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+*                                                                      V
+
+      CALL ef_set_desc(id,
+     .        'Generate names based on longitude,latitude,time,and a string')
+      CALL ef_set_num_args(id, 5)
+      CALL ef_set_axis_inheritance(id,
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
+      CALL ef_set_result_type(id, STRING_RETURN)
+
+      arg = 1
+      CALL ef_set_arg_name(id, arg, 'longitude')
+      CALL ef_set_arg_desc(id, arg, 'Station longitude')
+      CALL ef_set_axis_influence(id, arg, YES, YES, YES, YES)
+
+      arg = 2
+      CALL ef_set_arg_name(id, arg, 'latitude')
+      CALL ef_set_arg_desc(id, arg, 'Station latitude')
+      CALL ef_set_axis_influence(id, arg, YES, YES, YES, YES)
+
+      arg = 3
+      CALL ef_set_arg_name(id, arg, 'time')
+      CALL ef_set_arg_desc(id, arg, 'numeric times')
+      CALL ef_set_axis_influence(id, arg, YES, YES, YES, YES)
+
+      arg = 4
+      CALL ef_set_arg_name(id, arg, 'time_axis')
+      CALL ef_set_arg_desc(id, arg, 
+     .     'Varible with a time axis to use to convert time to time strings')
+      CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+      arg = 5
+      CALL ef_set_arg_name(id, arg, 'string to prepend')
+      CALL ef_set_arg_type (id, arg, STRING_ARG)
+      CALL ef_set_arg_desc(id, arg, 'A label to start the names with')
+      CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+*                                                                      ^
+*                                                                      |
+*                                            USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+      RETURN
+      END
+
+
+*
+* In this subroutine we compute the result
+*
+      SUBROUTINE lon_lat_time_string_compute(id, arg_1, arg_2, arg_3, arg_4, 
+     .          arg_5, result)
+
+      IMPLICIT NONE
+      INCLUDE 'ferret_cmn/EF_Util.cmn'
+      INCLUDE 'ferret_cmn/EF_mem_subsc.cmn'
+
+      INTEGER id
+
+      REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz,
+     .           mem1lot:mem1hit)
+      REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy, mem2loz:mem2hiz,
+     .           mem2lot:mem2hit)
+      REAL arg_3(mem3lox:mem3hix, mem3loy:mem3hiy, mem3loz:mem3hiz,
+     .           mem3lot:mem3hit)
+      REAL arg_4(mem4lox:mem4hix, mem4loy:mem4hiy, mem4loz:mem4hiz,
+     .           mem4lot:mem4hit)
+      REAL arg_5(1,mem5lox:mem5hix, mem5loy:mem5hiy, mem5loz:mem5hiz,
+     .           mem5lot:mem5hit)
+
+      REAL result(1,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)
+
+      REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+
+* **********************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+*                                                                      V
+      INTEGER TM_LENSTR
+      INTEGER i,  j,  k,  l
+      INTEGER i1, j1, k1, l1
+      INTEGER slen,len1,len2,outlen,llen
+
+      CHARACTER*20  TM_FMT, datestring, lonstr, latstr, ilab
+      CHARACTER*256 lab, outstring
+      REAL ddate
+
+ 1100  FORMAT(i1)
+ 1200  FORMAT(i2.2)
+ 1300  FORMAT(i3.3)
+
+      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)
+
+      IF (arg_hi_ss(X_AXIS,ARG1) .GE. 1000)  
+     .  CALL ef_bail_out(id,'Function for making lists size 999 or smaller')
+
+      CALL ef_get_arg_string(id, ARG5, lab)
+      slen = TM_LENSTR(lab)
+
+      l1 = arg_lo_ss(T_AXIS,ARG1)
+        DO 400 l=res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
+         k1 = arg_lo_ss(Z_AXIS,ARG1)
+         DO 300 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+
+          j1 = arg_lo_ss(Y_AXIS,ARG1)
+          DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+
+           i1 = arg_lo_ss(X_AXIS,ARG1)
+           DO 100 i=res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+
+            IF ( arg_1(i1,j1,k1,l1) .EQ. bad_flag(ARG1) .OR.
+     .           arg_2(i1,j1,k1,l1) .EQ. bad_flag(ARG2) .OR.
+     .           arg_3(i1,j1,k1,l1) .EQ. bad_flag(ARG3) ) THEN
+
+C     Get the string value of dates and put them in the result.
+
+               outstring = '***'
+	       CALL EF_PUT_STRING (outstring, 3, result(1,i,j,k,l))
+
+            ELSE
+
+	       lonstr = TM_FMT(arg_1(i1,j1,k1,l1), 4, 5, len1)
+	       latstr = TM_FMT(arg_2(i1,j1,k1,l1), 4, 5, len2)
+	          
+               ddate = arg_3(i1,j1,k1,l1)
+               CALL EF_GET_AXIS_DATES (id, ARG4, ddate, 1, datestring)
+               outstring = lab(:slen)//'_'//lonstr(:len1)//
+     .           'E_'//latstr(:len2) //'N_'//datestring(1:11)
+
+cc Just use a sequence number...
+cc
+cc	       IF (arg_hi_ss(X_AXIS,ARG1) .LT. 10) THEN
+cc	          WRITE (ilab, 1100) i1
+cc		  llen = 1
+cc	       ELSEIF (arg_hi_ss(X_AXIS,ARG1) .LT. 100) THEN
+cc	          WRITE (ilab, 1200) i1
+cc		  llen = 2
+cc	       ELSEIF (arg_hi_ss(X_AXIS,ARG1) .LT. 1000) THEN
+cc	          WRITE (ilab, 1300) i1
+cc		  llen = 3
+cc	       ENDIF
+cc               outstring = lab(:slen)//'_'//ilab(:llen)
+     
+	       outlen = TM_LENSTR(outstring)
+	       CALL EF_PUT_STRING (outstring, outlen, result(1,i,j,k,l))
+
+            ENDIF
+
+            i1 = i1 + arg_incr(X_AXIS,ARG1)
+ 100       CONTINUE
+
+           j1 = j1 + arg_incr(Y_AXIS,ARG1)
+ 200      CONTINUE
+
+          k1 = k1 + arg_incr(Z_AXIS,ARG1)
+ 300     CONTINUE
+
+         l1 = l1 + arg_incr(T_AXIS,ARG1)
+ 400    CONTINUE
+
+
+      RETURN
+
+ 999  CALL EF_BAIL_OUT(id, 'Argument 2 is not a numeric string')
+
+*                                                                      ^
+*                                                                      |
+*                                            USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+      RETURN
+      END
diff --git a/external_functions/zaxr/Makefile b/external_functions/zaxr/Makefile
index 1eec861..ebbac60 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 
+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/ccr/EF_InternalUtil.c b/fer/ccr/EF_InternalUtil.c
index 56db464..f5e1867 100644
--- a/fer/ccr/EF_InternalUtil.c
+++ b/fer/ccr/EF_InternalUtil.c
@@ -91,6 +91,8 @@
 *      *kms*  3/12 Add E and F dimensions 
 *      *acm*  6/14 New separate function for DSG files 
 *      *acm*  9/14 Make DATE1900 accept an array of date strings, returning an array of coordinates
+*      *acm*  2/15 TAX_DATESTRING works on an F or a T axis
+*      *acm*  2/15 new Functions TIME_REFORMAT, FT_TO_ORTHOGONAL
 */
 
 
@@ -267,8 +269,7 @@ void FORTRAN(fft_re_init)(int *);
 void FORTRAN(fft_re_custom_axes)(int *);
 void FORTRAN(fft_re_result_limits)(int *);
 void FORTRAN(fft_re_work_size)(int *);
-void FORTRAN(fft_re_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
-                           DFTYPE *, DFTYPE *, DFTYPE *);
+void FORTRAN(fft_re_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(sampleij_init)(int *);
 void FORTRAN(sampleij_result_limits)(int *);
@@ -303,6 +304,14 @@ void FORTRAN(samplet_date_compute)(int *, DFTYPE *, DFTYPE *,
       DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
       DFTYPE *, DFTYPE *);
 
+void FORTRAN(samplef_date_init)(int *);
+void FORTRAN(samplef_date_result_limits)(int *);
+void FORTRAN(samplef_date_work_size)(int *);
+void FORTRAN(samplef_date_compute)(int *, DFTYPE *, DFTYPE *,
+      DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+      DFTYPE *, DFTYPE *);
+
+
 void FORTRAN(samplexy_init)(int *);
 void FORTRAN(samplexy_result_limits)(int *);
 void FORTRAN(samplexy_work_size)(int *);
@@ -641,6 +650,9 @@ void FORTRAN(curv_to_rect_map_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTY
 void FORTRAN(curv_to_rect_init)(int *);
 void FORTRAN(curv_to_rect_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *);
 
+void FORTRAN(curv_to_rect_fsu_init)(int *);
+void FORTRAN(curv_to_rect_fsu_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *);
+
 void FORTRAN(rect_to_curv_init)(int *);
 void FORTRAN(rect_to_curv_work_size)(int *);
 void FORTRAN(rect_to_curv_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
@@ -913,23 +925,18 @@ void FORTRAN(nco_result_limits)(int *);
 void FORTRAN(nco_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(tax_datestring_init)(int *);
-void FORTRAN(tax_datestring_work_size)(int *);
 void FORTRAN(tax_datestring_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(tax_day_init)(int *);
-void FORTRAN(tax_day_work_size)(int *);
 void FORTRAN(tax_day_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(tax_dayfrac_init)(int *);
-void FORTRAN(tax_dayfrac_work_size)(int *);
 void FORTRAN(tax_dayfrac_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(tax_jday1900_init)(int *);
-void FORTRAN(tax_jday1900_work_size)(int *);
 void FORTRAN(tax_jday1900_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(tax_jday_init)(int *);
-void FORTRAN(tax_jday_work_size)(int *);
 void FORTRAN(tax_jday_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(tax_month_init)(int *);
@@ -947,11 +954,9 @@ void FORTRAN(tax_units_init)(int *);
 void FORTRAN(tax_units_compute)(int *, DFTYPE *, DFTYPE*);
 
 void FORTRAN(tax_year_init)(int *);
-void FORTRAN(tax_year_work_size)(int *);
 void FORTRAN(tax_year_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(tax_yearfrac_init)(int *);
-void FORTRAN(tax_yearfrac_work_size)(int *);
 void FORTRAN(tax_yearfrac_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(fill_xy_init)(int *);
@@ -1014,6 +1019,9 @@ void FORTRAN(list_value_xml_init)(int *);
 void FORTRAN(list_value_xml_result_limits)(int *);
 void FORTRAN(list_value_xml_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
 
+void FORTRAN(lon_lat_time_string_init)(int *);
+void FORTRAN(lon_lat_time_string_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, char *);
+
 void FORTRAN(write_webrow_init)(int *);
 void FORTRAN(write_webrow_result_limits)(int *);
 void FORTRAN(write_webrow_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
@@ -1025,6 +1033,35 @@ void FORTRAN(separate_init)(int *);
 void FORTRAN(separate_result_limits)(int *);
 void FORTRAN(separate_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
 
+void FORTRAN(time_reformat_init)(int *);
+void FORTRAN(time_reformat_compute)(int *, char *);
+
+void FORTRAN(ft_to_orthogonal_init)(int *);
+void FORTRAN(ft_to_orthogonal_work_size)(int *);
+void FORTRAN(ft_to_orthogonal_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
+
+void FORTRAN(separate_str_init)(int *);
+void FORTRAN(separate_str_result_limits)(int *);
+void FORTRAN(separate_str_compute)(int *, char *, DFTYPE *, DFTYPE *, char *);
+
+void FORTRAN(sample_fast_i_init)(int *);
+void FORTRAN(sample_fast_i_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *);
+
+void FORTRAN(sample_fast_i_str_init)(int *);
+void FORTRAN(sample_fast_i_str_compute)(int *, char *, DFTYPE *, char *);
+
+void FORTRAN(piecewise3_init)(int *);
+void FORTRAN(piecewise3_result_limits)(int *);
+void FORTRAN(piecewise3_work_size)(int *);
+void FORTRAN(piecewise3_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+  DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+  DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *); 
+
+void FORTRAN(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 *);
+
+
 /*
  *  End of declarations for internally linked external functions
  *  ------------------------------------ */
@@ -1043,7 +1080,7 @@ void FORTRAN(separate_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
 
 /*
  * Find all of the ~.so files in directories listed in the
- * FER_EXTERNAL_FUNCTIONS environment variable and add all 
+ * PYFER_EXTERNAL_FUNCTIONS environment variable and add all 
  * the names and associated directory information to the 
  * STATIC_ExternalFunctionList.
  */
@@ -1066,7 +1103,7 @@ int FORTRAN(efcn_scan)( int *gfcn_num_internal )
  *  int_dlsym.pl.  Check that N_INTEF is correctly defined below.
  */
 
-#define N_INTEF 164
+#define N_INTEF 174
 
 struct {
   char funcname[EF_MAX_NAME_LENGTH];
@@ -1127,115 +1164,125 @@ struct {
    strcpy(I_EFnames[52].funcname, "labwid");
    strcpy(I_EFnames[53].funcname, "lanczos");
    strcpy(I_EFnames[54].funcname, "list_value_xml");
-   strcpy(I_EFnames[55].funcname, "lsl_lowpass");
-   strcpy(I_EFnames[56].funcname, "minmax");
-   strcpy(I_EFnames[57].funcname, "minutes24");
-   strcpy(I_EFnames[58].funcname, "nco");
-   strcpy(I_EFnames[59].funcname, "nco_attr");
-   strcpy(I_EFnames[60].funcname, "pt_in_poly");
-   strcpy(I_EFnames[61].funcname, "rect_to_curv");
-   strcpy(I_EFnames[62].funcname, "sampleij");
-   strcpy(I_EFnames[63].funcname, "samplei_multi");
-   strcpy(I_EFnames[64].funcname, "samplej_multi");
-   strcpy(I_EFnames[65].funcname, "samplek_multi");
-   strcpy(I_EFnames[66].funcname, "samplel_multi");
-   strcpy(I_EFnames[67].funcname, "samplet_date");
-   strcpy(I_EFnames[68].funcname, "samplexy");
-   strcpy(I_EFnames[69].funcname, "samplexy_closest");
-   strcpy(I_EFnames[70].funcname, "samplexy_curv");
-   strcpy(I_EFnames[71].funcname, "samplexy_curv_avg");
-   strcpy(I_EFnames[72].funcname, "samplexy_curv_nrst");
-   strcpy(I_EFnames[73].funcname, "samplexyt");
-   strcpy(I_EFnames[74].funcname, "samplexz");
-   strcpy(I_EFnames[75].funcname, "sampleyz");
-   strcpy(I_EFnames[76].funcname, "scat2ddups");
-   strcpy(I_EFnames[77].funcname, "scat2grid_bin_xy");
-   strcpy(I_EFnames[78].funcname, "scat2grid_bin_xyt");
-   strcpy(I_EFnames[79].funcname, "scat2gridgauss_xt");
-   strcpy(I_EFnames[80].funcname, "scat2gridgauss_xt_v0");
-   strcpy(I_EFnames[81].funcname, "scat2gridgauss_xy");
-   strcpy(I_EFnames[82].funcname, "scat2gridgauss_xy_v0");
-   strcpy(I_EFnames[83].funcname, "scat2gridgauss_xz");
-   strcpy(I_EFnames[84].funcname, "scat2gridgauss_xz_v0");
-   strcpy(I_EFnames[85].funcname, "scat2gridgauss_yt");
-   strcpy(I_EFnames[86].funcname, "scat2gridgauss_yt_v0");
-   strcpy(I_EFnames[87].funcname, "scat2gridgauss_yz");
-   strcpy(I_EFnames[88].funcname, "scat2gridgauss_yz_v0");
-   strcpy(I_EFnames[89].funcname, "scat2gridgauss_zt");
-   strcpy(I_EFnames[90].funcname, "scat2gridgauss_zt_v0");
-   strcpy(I_EFnames[91].funcname, "scat2gridlaplace_xt");
-   strcpy(I_EFnames[92].funcname, "scat2gridlaplace_xy");
-   strcpy(I_EFnames[93].funcname, "scat2gridlaplace_xz");
-   strcpy(I_EFnames[94].funcname, "scat2gridlaplace_yt");
-   strcpy(I_EFnames[95].funcname, "scat2gridlaplace_yz");
-   strcpy(I_EFnames[96].funcname, "scat2gridlaplace_zt");
-   strcpy(I_EFnames[97].funcname, "scat2grid_nbin_xy");
-   strcpy(I_EFnames[98].funcname, "scat2grid_nbin_xyt");
-   strcpy(I_EFnames[99].funcname, "scat2grid_nobs_xy");
-   strcpy(I_EFnames[100].funcname, "scat2grid_nobs_xyt");
-   strcpy(I_EFnames[101].funcname, "scat2grid_t");
-   strcpy(I_EFnames[102].funcname, "sorti");
-   strcpy(I_EFnames[103].funcname, "sorti_str");
-   strcpy(I_EFnames[104].funcname, "sortj");
-   strcpy(I_EFnames[105].funcname, "sortj_str");
-   strcpy(I_EFnames[106].funcname, "sortk");
-   strcpy(I_EFnames[107].funcname, "sortk_str");
-   strcpy(I_EFnames[108].funcname, "sortl");
-   strcpy(I_EFnames[109].funcname, "sortl_str");
-   strcpy(I_EFnames[110].funcname, "sortm");
-   strcpy(I_EFnames[111].funcname, "sortm_str");
-   strcpy(I_EFnames[112].funcname, "sortn");
-   strcpy(I_EFnames[113].funcname, "sortn_str");
-   strcpy(I_EFnames[114].funcname, "tauto_cor");
-   strcpy(I_EFnames[115].funcname, "tax_datestring");
-   strcpy(I_EFnames[116].funcname, "tax_day");
-   strcpy(I_EFnames[117].funcname, "tax_dayfrac");
-   strcpy(I_EFnames[118].funcname, "tax_jday");
-   strcpy(I_EFnames[119].funcname, "tax_jday1900");
-   strcpy(I_EFnames[120].funcname, "tax_month");
-   strcpy(I_EFnames[121].funcname, "tax_times");
-   strcpy(I_EFnames[122].funcname, "tax_tstep");
-   strcpy(I_EFnames[123].funcname, "tax_units");
-   strcpy(I_EFnames[124].funcname, "tax_year");
-   strcpy(I_EFnames[125].funcname, "tax_yearfrac");
-   strcpy(I_EFnames[126].funcname, "tcat");
-   strcpy(I_EFnames[127].funcname, "tcat_str");
-   strcpy(I_EFnames[128].funcname, "test_opendap");
-   strcpy(I_EFnames[129].funcname, "transpose_xt");
-   strcpy(I_EFnames[130].funcname, "transpose_xy");
-   strcpy(I_EFnames[131].funcname, "transpose_xz");
-   strcpy(I_EFnames[132].funcname, "transpose_yt");
-   strcpy(I_EFnames[133].funcname, "transpose_yz");
-   strcpy(I_EFnames[134].funcname, "transpose_zt");
-   strcpy(I_EFnames[135].funcname, "treverse");
-   strcpy(I_EFnames[136].funcname, "unique_str2int");
-   strcpy(I_EFnames[137].funcname, "write_webrow");
-   strcpy(I_EFnames[138].funcname, "xauto_cor");
-   strcpy(I_EFnames[139].funcname, "xcat");
-   strcpy(I_EFnames[140].funcname, "xcat_str");
-   strcpy(I_EFnames[141].funcname, "xreverse");
-   strcpy(I_EFnames[142].funcname, "ycat");
-   strcpy(I_EFnames[143].funcname, "ycat_str");
-   strcpy(I_EFnames[144].funcname, "yreverse");
-   strcpy(I_EFnames[145].funcname, "zaxreplace_avg");
-   strcpy(I_EFnames[146].funcname, "zaxreplace_bin");
-   strcpy(I_EFnames[147].funcname, "zaxreplace_rev");
-   strcpy(I_EFnames[148].funcname, "zaxreplace_zlev");
-   strcpy(I_EFnames[149].funcname, "zcat");
-   strcpy(I_EFnames[150].funcname, "zcat_str");
-   strcpy(I_EFnames[151].funcname, "zreverse");
-   strcpy(I_EFnames[152].funcname, "eofsvd_space");
-   strcpy(I_EFnames[153].funcname, "eofsvd_stat");
-   strcpy(I_EFnames[154].funcname, "eofsvd_tfunc");
-   strcpy(I_EFnames[155].funcname, "expnd_by_len");
-   strcpy(I_EFnames[156].funcname, "expnd_by_len_str");
-   strcpy(I_EFnames[157].funcname, "fc_isubset");
-   strcpy(I_EFnames[158].funcname, "expndi_by_z_counts");
-   strcpy(I_EFnames[159].funcname, "expndi_id_by_z_counts");
-   strcpy(I_EFnames[160].funcname, "expndi_by_m_counts");
-   strcpy(I_EFnames[161].funcname, "str_mask");
-   strcpy(I_EFnames[162].funcname, "samplexyt_nrst");
-   strcpy(I_EFnames[163].funcname, "separate");
+   strcpy(I_EFnames[55].funcname, "lon_lat_time_string");
+   strcpy(I_EFnames[56].funcname, "lsl_lowpass");
+   strcpy(I_EFnames[57].funcname, "minmax");
+   strcpy(I_EFnames[58].funcname, "minutes24");
+   strcpy(I_EFnames[59].funcname, "nco");
+   strcpy(I_EFnames[60].funcname, "nco_attr");
+   strcpy(I_EFnames[61].funcname, "pt_in_poly");
+   strcpy(I_EFnames[62].funcname, "rect_to_curv");
+   strcpy(I_EFnames[63].funcname, "sampleij");
+   strcpy(I_EFnames[64].funcname, "samplei_multi");
+   strcpy(I_EFnames[65].funcname, "samplej_multi");
+   strcpy(I_EFnames[66].funcname, "samplek_multi");
+   strcpy(I_EFnames[67].funcname, "samplel_multi");
+   strcpy(I_EFnames[68].funcname, "samplef_date");
+   strcpy(I_EFnames[69].funcname, "samplet_date");
+   strcpy(I_EFnames[70].funcname, "samplexy");
+   strcpy(I_EFnames[71].funcname, "samplexy_closest");
+   strcpy(I_EFnames[72].funcname, "samplexy_curv");
+   strcpy(I_EFnames[73].funcname, "samplexy_curv_avg");
+   strcpy(I_EFnames[74].funcname, "samplexy_curv_nrst");
+   strcpy(I_EFnames[75].funcname, "samplexyt");
+   strcpy(I_EFnames[76].funcname, "samplexz");
+   strcpy(I_EFnames[77].funcname, "sampleyz");
+   strcpy(I_EFnames[78].funcname, "scat2ddups");
+   strcpy(I_EFnames[79].funcname, "scat2grid_bin_xy");
+   strcpy(I_EFnames[80].funcname, "scat2grid_bin_xyt");
+   strcpy(I_EFnames[81].funcname, "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");
 
 /*    
  *  ------------------------------------ 
@@ -1310,7 +1357,7 @@ struct {
       }
 
   /*
-   * - Get all the paths from the "FER_EXTERNAL_FUNCTIONS" environment variable.
+   * - Get all the paths from the "PYFER_EXTERNAL_FUNCTIONS" environment variable.
    *
    * - While there is another path:
    *    - get the path;
@@ -1319,15 +1366,15 @@ struct {
    *
    */
 
-  if ( !getenv("FER_EXTERNAL_FUNCTIONS") ) {
+  if ( !getenv("PYFER_EXTERNAL_FUNCTIONS") ) {
     if ( !I_have_warned_already ) {
       fprintf(stderr, "\n"
-                      "WARNING: environment variable FER_EXTERNAL_FUNCTIONS not defined.\n\n");
+                      "WARNING: environment variable PYFER_EXTERNAL_FUNCTIONS not defined.\n\n");
       I_have_warned_already = TRUE;
     }
     /* *kob* v5.32 - the return val was set to 0 below but that was wrong. 
        That didn't take into account that on any system, the 
-       FER_EXTERNAL_FUNCTIONS env variable might not be set.  If that were the
+       PYFER_EXTERNAL_FUNCTIONS env variable might not be set.  If that were the
        case, a core dump occurred on all systems.  Set return_val to count, 
        which was generated above - also have to  note that the ef's 
        have been scanned*/
@@ -1336,16 +1383,16 @@ struct {
     return return_val;
   }
 
-  sprintf(paths, "%s", getenv("FER_EXTERNAL_FUNCTIONS"));
-    
+  strncpy(paths, getenv("PYFER_EXTERNAL_FUNCTIONS"), 8192);
   path_ptr = strtok(paths, " \t");
-
   if ( path_ptr == NULL ) {
- 
-    fprintf(stderr, "\n"
-                    "WARNING:No paths were found in the environment variable FER_EXTERNAL_FUNCTIONS.\n\n");
-
-    return_val = 0;
+    if ( !I_have_warned_already ) {
+      fprintf(stderr, "\n"
+                      "WARNING:No paths were found in the environment variable PYFER_EXTERNAL_FUNCTIONS.\n\n");
+      I_have_warned_already = TRUE;
+    }
+    return_val = count;
+    I_have_scanned_already = TRUE;
     return return_val;
  
   } else {
@@ -3420,6 +3467,12 @@ else if ( !strcmp(name,"samplet_date_result_limits_") ) return (void *)FORTRAN(s
 else if ( !strcmp(name,"samplet_date_work_size_") ) return (void *)FORTRAN(samplet_date_work_size);
 else if ( !strcmp(name,"samplet_date_compute_") ) return (void *)FORTRAN(samplet_date_compute);
 
+/* samplef_date.F */
+else if ( !strcmp(name,"samplef_date_init_") ) return (void *)FORTRAN(samplef_date_init);
+else if ( !strcmp(name,"samplef_date_result_limits_") ) return (void *)FORTRAN(samplef_date_result_limits);
+else if ( !strcmp(name,"samplef_date_work_size_") ) return (void *)FORTRAN(samplef_date_work_size);
+else if ( !strcmp(name,"samplef_date_compute_") ) return (void *)FORTRAN(samplef_date_compute);
+
 /* samplexy.F */
 else if ( !strcmp(name,"samplexy_init_") ) return (void *)FORTRAN(samplexy_init);
 else if ( !strcmp(name,"samplexy_result_limits_") ) return (void *)FORTRAN(samplexy_result_limits);
@@ -3817,6 +3870,10 @@ else if ( !strcmp(name,"curv_to_rect_map_compute_") ) return (void *)FORTRAN(cur
 else if ( !strcmp(name,"curv_to_rect_init_") ) return (void *)FORTRAN(curv_to_rect_init);
 else if ( !strcmp(name,"curv_to_rect_compute_") ) return (void *)FORTRAN(curv_to_rect_compute);
 
+/* curv_to_rect_fsu.F */
+else if ( !strcmp(name,"curv_to_rect_fsu_init_") ) return (void *)FORTRAN(curv_to_rect_fsu_init);
+else if ( !strcmp(name,"curv_to_rect_fsu_compute_") ) return (void *)FORTRAN(curv_to_rect_fsu_compute);
+
 /* rect_to_curv.F */
 else if ( !strcmp(name,"rect_to_curv_init_") ) return (void *)FORTRAN(rect_to_curv_init);
 else if ( !strcmp(name,"rect_to_curv_work_size_") ) return (void *)FORTRAN(rect_to_curv_work_size);
@@ -4096,25 +4153,19 @@ else if ( !strcmp(name,"nco_attr_init_") ) return (void *)FORTRAN(nco_attr_init)
 else if ( !strcmp(name,"nco_attr_result_limits_") ) return (void *)FORTRAN(nco_attr_result_limits);
 else if ( !strcmp(name,"nco_attr_compute_") ) return (void *)FORTRAN(nco_attr_compute);
 
-
 else if ( !strcmp(name,"tax_datestring_init_") ) return (void *)FORTRAN(tax_datestring_init);
-else if ( !strcmp(name,"tax_datestring_work_size_") ) return (void *)FORTRAN(tax_datestring_work_size);
 else if ( !strcmp(name,"tax_datestring_compute_") ) return (void *)FORTRAN(tax_datestring_compute);
 
 else if ( !strcmp(name,"tax_day_init_") ) return (void *)FORTRAN(tax_day_init);
-else if ( !strcmp(name,"tax_day_work_size_") ) return (void *)FORTRAN(tax_day_work_size);
 else if ( !strcmp(name,"tax_day_compute_") ) return (void *)FORTRAN(tax_day_compute);
 
 else if ( !strcmp(name,"tax_dayfrac_init_") ) return (void *)FORTRAN(tax_dayfrac_init);
-else if ( !strcmp(name,"tax_dayfrac_work_size_") ) return (void *)FORTRAN(tax_dayfrac_work_size);
 else if ( !strcmp(name,"tax_dayfrac_compute_") ) return (void *)FORTRAN(tax_dayfrac_compute);
 
 else if ( !strcmp(name,"tax_jday1900_init_") ) return (void *)FORTRAN(tax_jday1900_init);
-else if ( !strcmp(name,"tax_jday1900_work_size_") ) return (void *)FORTRAN(tax_jday1900_work_size);
 else if ( !strcmp(name,"tax_jday1900_compute_") ) return (void *)FORTRAN(tax_jday1900_compute);
 
 else if ( !strcmp(name,"tax_jday_init_") ) return (void *)FORTRAN(tax_jday_init);
-else if ( !strcmp(name,"tax_jday_work_size_") ) return (void *)FORTRAN(tax_jday_work_size);
 else if ( !strcmp(name,"tax_jday_compute_") ) return (void *)FORTRAN(tax_jday_compute);
 
 else if ( !strcmp(name,"tax_month_init_") ) return (void *)FORTRAN(tax_month_init);
@@ -4132,11 +4183,9 @@ else if ( !strcmp(name,"tax_units_init_") ) return (void *)FORTRAN(tax_units_ini
 else if ( !strcmp(name,"tax_units_compute_") ) return (void *)FORTRAN(tax_units_compute);
 
 else if ( !strcmp(name,"tax_year_init_") ) return (void *)FORTRAN(tax_year_init);
-else if ( !strcmp(name,"tax_year_work_size_") ) return (void *)FORTRAN(tax_year_work_size);
 else if ( !strcmp(name,"tax_year_compute_") ) return (void *)FORTRAN(tax_year_compute);
 
 else if ( !strcmp(name,"tax_yearfrac_init_") ) return (void *)FORTRAN(tax_yearfrac_init);
-else if ( !strcmp(name,"tax_yearfrac_work_size_") ) return (void *)FORTRAN(tax_yearfrac_work_size);
 else if ( !strcmp(name,"tax_yearfrac_compute_") ) return (void *)FORTRAN(tax_yearfrac_compute);
 
 else if ( !strcmp(name,"fill_xy_init_") ) return (void *)FORTRAN(fill_xy_init);
@@ -4168,6 +4217,9 @@ else if ( !strcmp(name,"list_value_xml_init_") ) return (void *)FORTRAN(list_val
 else if ( !strcmp(name,"list_value_xml_result_limits_") ) return (void *)FORTRAN(list_value_xml_result_limits);
 else if ( !strcmp(name,"list_value_xml_compute_") ) return (void *)FORTRAN(list_value_xml_compute);
 
+else if ( !strcmp(name,"lon_lat_time_string_init_") ) return (void *)FORTRAN(lon_lat_time_string_init);
+else if ( !strcmp(name,"lon_lat_time_string_compute_") ) return (void *)FORTRAN(lon_lat_time_string_compute);
+
 else if ( !strcmp(name,"write_webrow_init_") ) return (void *)FORTRAN(write_webrow_init);
 else if ( !strcmp(name,"write_webrow_result_limits_") ) return (void *)FORTRAN(write_webrow_result_limits);
 else if ( !strcmp(name,"write_webrow_compute_") ) return (void *)FORTRAN(write_webrow_compute);
@@ -4179,7 +4231,31 @@ else if ( !strcmp(name,"separate_init_") ) return (void *)FORTRAN(separate_init)
 else if ( !strcmp(name,"separate_result_limits_") ) return (void *)FORTRAN(separate_result_limits);
 else if ( !strcmp(name,"separate_compute_") ) return (void *)FORTRAN(separate_compute);
 
+else if ( !strcmp(name,"separate_str_init_") ) return (void *)FORTRAN(separate_str_init);
+else if ( !strcmp(name,"separate_str_result_limits_") ) return (void *)FORTRAN(separate_str_result_limits);
+else if ( !strcmp(name,"separate_str_compute_") ) return (void *)FORTRAN(separate_str_compute);
+
+else if ( !strcmp(name,"time_reformat_init_") ) return (void *)FORTRAN(time_reformat_init);
+else if ( !strcmp(name,"time_reformat_compute_") ) return (void *)FORTRAN(time_reformat_compute);
+
+else if ( !strcmp(name,"ft_to_orthogonal_init_") ) return (void *)FORTRAN(ft_to_orthogonal_init);
+else if ( !strcmp(name,"ft_to_orthogonal_work_size_") ) return (void *)FORTRAN(ft_to_orthogonal_work_size);
+else if ( !strcmp(name,"ft_to_orthogonal_compute_") ) return (void *)FORTRAN(ft_to_orthogonal_compute);
+
+else if ( !strcmp(name,"piecewise3_init_") ) return (void *)FORTRAN(piecewise3_init);
+else if ( !strcmp(name,"piecewise3_result_limits_") ) return (void *)FORTRAN(piecewise3_result_limits);
+else if ( !strcmp(name,"piecewise3_work_size_") ) return (void *)FORTRAN(piecewise3_work_size);
+else if ( !strcmp(name,"piecewise3_compute_") ) return (void *)FORTRAN(piecewise3_compute);
+
+else if ( !strcmp(name,"sample_fast_i_init_") ) return (void *)FORTRAN(sample_fast_i_init);
+else if ( !strcmp(name,"sample_fast_i_compute_") ) return (void *)FORTRAN(sample_fast_i_compute);
+
+else if ( !strcmp(name,"sample_fast_i_str_init_") ) return (void *)FORTRAN(sample_fast_i_str_init);
+else if ( !strcmp(name,"sample_fast_i_str_compute_") ) return (void *)FORTRAN(sample_fast_i_str_compute);
 
+else if ( !strcmp(name,"write_webrow_gwt_init_") ) return (void *)FORTRAN(write_webrow_gwt_init);
+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);
 
 return NULL;
  }
diff --git a/fer/ccr/SOURCE_FILES b/fer/ccr/SOURCE_FILES
index 61463f7..4848330 100644
--- a/fer/ccr/SOURCE_FILES
+++ b/fer/ccr/SOURCE_FILES
@@ -11,13 +11,16 @@ c_strrindex.c\
 c_strcat.c\
 c_substr.c\
 c_strfloat.c\
+cache_full_array.c\
 check_nan_data_sub.c\
 compare_c_strings.c\
 copy_c_string.c\
+create_utf8_string.c\
 perl_read.c\
 EF_InternalUtil.c\
 ferret_dispatch_c.c\
 ferret_query.c\
+free_cached_full_array.c\
 free_c_pointer.c\
 free_c_string_array.c\
 get_c_string.c\
@@ -29,6 +32,7 @@ get_sys_cmnd.c\
 init_c_string_array.c\
 linux_routines_c.c\
 list.c\
+recover_cached_full_array.c\
 replaceable_bad_flags.c \
 replace_bad_data_sub.c \
 run_thredds_browser.c\
@@ -38,5 +42,6 @@ set_nan.c\
 set_null_c_string.c\
 set_null_c_string_array.c\
 sizeof_pointer.c\
+text_to_utf8.c\
 write_dods.c\
 xfer_c_ptrs.c
diff --git a/fmt/src/tm_switch_nan.c b/fer/ccr/cache_full_array.c
similarity index 71%
copy from fmt/src/tm_switch_nan.c
copy to fer/ccr/cache_full_array.c
index e3c75e8..49ada13 100644
--- a/fmt/src/tm_switch_nan.c
+++ b/fer/ccr/cache_full_array.c
@@ -34,33 +34,43 @@
 *
 */
 
-#include <Python.h> /* make sure Python.h is first */
-#include <math.h>
-#include "ferretmacros.h"
 
-#define bad_val4 1.0e-34
 
-/* tm_switch_nan :
- *  check for a missing or bad value flag of NaN.  if either flag is Nan, */
-/*  then make sure it's ds_missing_flag and if both are NaN, make sure to */
-/*  set ds_bad_flag to bad_val4     */
+/*
+ * cache_full_array.c
+ *
+ * Allocate c heap storage and copy array to it, returning pointer
+ * This storage mechanism will be used for CF auxiliary coordinate arrays,
+ * in order to minimize the need to re-read them 
+ *
+ * programmer - steve hankin
+ * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
+ *
+ * revision 0.0 - 5/5/15
+ */
+
+#include <stdlib.h>
+#include "ferret.h"
+ 
+void FORTRAN(cache_full_array)( double *array, int *alen, double **pointer_val )
 
-/* *kob* - 2/18/99 */
-/* *acm*  1/12      - Ferret 6.8 ifdef double_p for double-precision ferret, see the
-*					 definition of macro DFTYPE in ferretmacros.h.
+/*
+  input  - array and alen (array length)
+  output - pointer to array
+      note the "lie" here": FORTRAN actually passes the 
 */
 
-void FORTRAN(switch_nan)(bad, missing)
-     DFTYPE *bad;
-     DFTYPE *missing;
 {
-  if (isnan(*bad) || isnan(*missing))
-    { 
-      if (isnan(*bad)) 
-	{
-	  *missing = *bad;
-	  *bad = bad_val4;
-	}
-    }
-}
+  double *ptr;
+  int i;
 
+  ptr = (double *) malloc(sizeof(double) * (*alen));
+
+  for (i=0; i < *alen; i++) {
+    ptr[i] = array[i];
+  }
+
+  *pointer_val = ptr;   // return the address value for ptr
+
+  return;
+}
diff --git a/fer/ccr/create_utf8_string.c b/fer/ccr/create_utf8_string.c
new file mode 100644
index 0000000..07e8523
--- /dev/null
+++ b/fer/ccr/create_utf8_string.c
@@ -0,0 +1,80 @@
+/*
+ *  This software was developed by the Thermal Modeling and Analysis
+ *  Project(TMAP) of the National Oceanographic and Atmospheric
+ *  Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+ *  hereafter referred to as NOAA/PMEL/TMAP.
+ *
+ *  Access and use of this software shall impose the following
+ *  obligations and understandings on the user. The user is granted the
+ *  right, without any fee or cost, to use, copy, modify, alter, enhance
+ *  and distribute this software, and any derivative works thereof, and
+ *  its supporting documentation for any purpose whatsoever, provided
+ *  that this entire notice appears in all copies of the software,
+ *  derivative works and supporting documentation.  Further, the user
+ *  agrees to credit NOAA/PMEL/TMAP in any publications that result from
+ *  the use of this software or in any product that includes this
+ *  software. The names TMAP, NOAA and/or PMEL, however, may not be used
+ *  in any advertising or publicity to endorse or promote any products
+ *  or commercial entity unless specific written permission is obtained
+ *  from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+ *  is not obligated to provide the user with any support, consulting,
+ *  training or assistance of any kind with regard to the use, operation
+ *  and performance of this software nor to provide the user with any
+ *  updates, revisions, new versions or "bug fixes".
+ *
+ *  THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+ *  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ *  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ *  ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+ *  INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ *  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+ *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+ *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.  
+ */
+
+#include <Python.h> /* make sure Python.h is first */
+#include "utf8str.h"
+
+/*
+ * Assigns a character string with the values for a UTF-8 character
+ *
+ * Input: 
+ *     codepoint - the UTF-8 code point (integer) value
+ * Output:
+ *     utf8str (array of at least four characters) - the character 
+ *                  representation of the UTF-8 character
+ *     utf8strlen - the number of characters in the character 
+ *                  representation of the UTF-8 characters, 
+ *                  or zero if the codepoint is invalid for UTF-8
+ */
+void create_utf8_str_(const int *codepoint, char *utf8str, int *utf8strlen) 
+{
+    int codept = *codepoint;
+
+    if ( codept <= 0x7F ) {
+        utf8str[0] = (char) codept;
+        *utf8strlen = 1;
+    } 
+    else if ( codept <= 0x7FF ) {
+        utf8str[0] = (char) ((codept >> 6) + 0xC0);
+        utf8str[1] = (char) ((codept & 0x3F) + 0x80);
+        *utf8strlen = 2;
+    } 
+    else if (codept <= 0xFFFF) {
+        utf8str[0] = (char) ((codept >> 12) + 0xE0);
+        utf8str[1] = (char) (((codept >> 6) & 0x3F) + 0x80);
+        utf8str[2] = (char) ((codept & 0x3F) + 0x80);
+        *utf8strlen = 3;
+    } 
+    else if (codept <= 0x10FFFF) {
+        utf8str[0] = (char) ((codept >> 18) + 0xF0);
+        utf8str[1] = (((codept >> 12) & 0x3F) + 0x80);
+        utf8str[2] = (((codept >> 6) & 0x3F) + 0x80);
+        utf8str[3] = ((codept & 0x3F) + 0x80);
+        *utf8strlen = 4;
+    } 
+    else {
+        *utf8strlen = 0;
+    }
+}
+
diff --git a/fer/utl/decrement_plot_grid.F b/fer/ccr/free_cached_full_array.c
old mode 100755
new mode 100644
similarity index 75%
copy from fer/utl/decrement_plot_grid.F
copy to fer/ccr/free_cached_full_array.c
index aa6c503..594df6c
--- a/fer/utl/decrement_plot_grid.F
+++ b/fer/ccr/free_cached_full_array.c
@@ -1,5 +1,4 @@
-	SUBROUTINE DECREMENT_PLOT_GRID
-
+/*
 *
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -31,21 +30,44 @@
 *  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.  
 *
+*/
 
-* Ansley Manke NOAA/PMEL/TMAP 2/10/2014
-*
-*      Decrement the grid use count which was bumped up, saving the grid used
-*      in a SHADE/SET, FILL/SET, CONTOUR/SET or WIRE/SET command. See ticket 883.
 
-	include 'xbox_bounds.cmn'
 
-	INTEGER grid
+/*
+ * free_cached_full_array.c
+ *
+ * Free a cached full array from c heap storage
+ *
+ * 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 <stdlib.h>
+#include <assert.h>
+#include "ferret.h"
+
+ 
+void FORTRAN(free_cached_full_array)( double **pointer_val )
+
+/*
+  see complementary routines recover_cached_full_array and cache_full_array.c
+*/
+
+{
+  double *ptr;
+
+  ptr = *pointer_val;
 
-	grid = bb_grid
-	IF (bb_grid_inccount .GT. 0) CALL TM_DEALLO_DYN_GRID (grid)
-	bb_grid_inccount = 0
+  if (ptr) {
+	  free(ptr);  // could do assert on ptr==0
+	  *pointer_val=0;
+  }
 
-	RETURN
-	END
+  return;
+}
diff --git a/fer/utl/decrement_plot_grid.F b/fer/ccr/recover_cached_full_array.c
old mode 100755
new mode 100644
similarity index 77%
copy from fer/utl/decrement_plot_grid.F
copy to fer/ccr/recover_cached_full_array.c
index aa6c503..51e9844
--- a/fer/utl/decrement_plot_grid.F
+++ b/fer/ccr/recover_cached_full_array.c
@@ -1,5 +1,4 @@
-	SUBROUTINE DECREMENT_PLOT_GRID
-
+/*
 *
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -31,21 +30,41 @@
 *  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.  
 *
+*/
 
-* Ansley Manke NOAA/PMEL/TMAP 2/10/2014
-*
-*      Decrement the grid use count which was bumped up, saving the grid used
-*      in a SHADE/SET, FILL/SET, CONTOUR/SET or WIRE/SET command. See ticket 883.
 
-	include 'xbox_bounds.cmn'
 
-	INTEGER grid
+/*
+ * recover_cached_full_array.c
+ *
+ * Copy 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
+ */
+
+#include <stdlib.h>
+#include "ferret.h"
+ 
+void FORTRAN(recover_cached_full_array)( double *array, int *alen, double **pointer_val )
+
+/*
+  see complementary routine cache_full_array.c
+*/
+
+{
+  double *ptr;
+  int i;
+
+  ptr = *pointer_val;
 
-	grid = bb_grid
-	IF (bb_grid_inccount .GT. 0) CALL TM_DEALLO_DYN_GRID (grid)
-	bb_grid_inccount = 0
+  for (i=0; i < *alen; i++) {
+    array[i] = ptr[i];
+  }
 
-	RETURN
-	END
+  return;
+}
diff --git a/fer/ccr/text_to_utf8.c b/fer/ccr/text_to_utf8.c
new file mode 100644
index 0000000..072135e
--- /dev/null
+++ b/fer/ccr/text_to_utf8.c
@@ -0,0 +1,67 @@
+/*
+ *  This software was developed by the Thermal Modeling and Analysis
+ *  Project(TMAP) of the National Oceanographic and Atmospheric
+ *  Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+ *  hereafter referred to as NOAA/PMEL/TMAP.
+ *
+ *  Access and use of this software shall impose the following
+ *  obligations and understandings on the user. The user is granted the
+ *  right, without any fee or cost, to use, copy, modify, alter, enhance
+ *  and distribute this software, and any derivative works thereof, and
+ *  its supporting documentation for any purpose whatsoever, provided
+ *  that this entire notice appears in all copies of the software,
+ *  derivative works and supporting documentation.  Further, the user
+ *  agrees to credit NOAA/PMEL/TMAP in any publications that result from
+ *  the use of this software or in any product that includes this
+ *  software. The names TMAP, NOAA and/or PMEL, however, may not be used
+ *  in any advertising or publicity to endorse or promote any products
+ *  or commercial entity unless specific written permission is obtained
+ *  from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+ *  is not obligated to provide the user with any support, consulting,
+ *  training or assistance of any kind with regard to the use, operation
+ *  and performance of this software nor to provide the user with any
+ *  updates, revisions, new versions or "bug fixes".
+ *
+ *  THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+ *  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ *  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ *  ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+ *  INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ *  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+ *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+ *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.  
+ */
+
+#include <Python.h> /* make sure Python.h is first */
+#include "utf8str.h"
+
+/*
+ * Translates an extended-character string into a UTF-8 string.
+ *
+ * Input: 
+ *     text - string that include extended characters (> 0x7F)
+ *     textlen - length of text
+ * Output:
+ *     utf8str - null-terminated UTF-8 string representation of text;
+ *               every extended character in text will result 
+ *               in two characters in this array (so ideally,
+ *               has minimum length 2*textlen + 1)
+ *     utf8strlen - length of the UTF-8 string created
+ */
+void text_to_utf8_(const char *text, const int *textlen, char *utf8str, int *utf8strlen)
+{
+    int codept;
+    char utf8chars[4];
+    int  numutf8chars;
+    int  j, k, q;
+
+    for (j = 0, k = 0; j < *textlen; j++) {
+        codept = (unsigned char) (text[j]);
+        create_utf8_str_(&codept, utf8chars, &numutf8chars);
+        for (q = 0; q < numutf8chars; q++, k++)
+           utf8str[k] = utf8chars[q];
+    }
+    utf8str[k] = '\0';
+    *utf8strlen = k;
+}
+
diff --git a/fer/ccr/utf8str.h b/fer/ccr/utf8str.h
new file mode 100644
index 0000000..eebdd24
--- /dev/null
+++ b/fer/ccr/utf8str.h
@@ -0,0 +1,5 @@
+#include <Python.h> /* make sure Python.h is first */
+
+void create_utf8_str_(const int *codepoint, char *utf8str, int *utf8strlen);
+void text_to_utf8_(const char *text, const int *textlen, char *utf8str, int *utf8strlen);
+
diff --git a/fer/cferbind/cairoCFerBind.h b/fer/cferbind/cairoCFerBind.h
index 2d035a1..8dc6966 100644
--- a/fer/cferbind/cairoCFerBind.h
+++ b/fer/cferbind/cairoCFerBind.h
@@ -4,18 +4,15 @@
 /* Make sure Python.h is always included first */
 #include <Python.h>
 #include <cairo/cairo.h>
+#ifdef USEPANGOCAIRO
+#include <pango/pangocairo.h>
+#endif
 /* Use of grdelBool (int) and grdelType (void *) is just to clarify intent */
 #include "grdel.h"
 
 /* Size of filename string arrays */
 #define CCFB_NAME_SIZE 512
 
-/* DPI to use for the Cairo "Window" */
-#define CCFB_WINDOW_DPI 96
-
-/* Factor for converting pixels to points */
-#define CCFB_POINTS_PER_PIXEL (72.0 / (double) CCFB_WINDOW_DPI)
-
 typedef enum CCFBImageFormat_enum {
     CCFBIF_PNG = 0,
     CCFBIF_PDF,
@@ -58,6 +55,18 @@ typedef struct CCFBBrush_Struct {
     cairo_pattern_t *pattern;
 } CCFBBrush;
 
+extern const char *CCFBFontId;
+typedef struct CCFBFont_Struct {
+    const char *id;
+#ifdef USEPANGOCAIRO
+    PangoFontDescription *fontdesc;
+#else
+    cairo_font_face_t *fontface;
+    double fontsize;
+#endif
+    int underline;
+} CCFBFont;
+    
 /* Structure for creating a linked list of image or recording surfaces */
 typedef struct CCFBPicture_Struct {
     struct CCFBPicture_Struct *next;
@@ -66,10 +75,13 @@ typedef struct CCFBPicture_Struct {
 } CCFBPicture;
 
 typedef struct CairoCFerBindData_struct {
+    double pixelsperinch;
     /* image size in pixels */
     int imagewidth;
     int imageheight;
     int minsize;
+    /* Scaling factor for line widths and symbol sizes */
+    double widthfactor;
     /* clearing color */
     CCFBColor lastclearcolor;
     /* image filename and format */
@@ -77,13 +89,14 @@ typedef struct CairoCFerBindData_struct {
     CCFBImageFormat imageformat;
     /* Anti-alias non-text elements? */
     int antialias;
-    /* Use colors with an alpha channel (ARGB32)? */
-    int usealpha;
+    /* 
+     * Never use colors with an alpha channel (ARGB32) ? 
+     * If false (zero), it will depend on the output format.
+     */
+    int noalpha;
     /* data for recreating the current view */
     CCFBSides fracsides;
     int clipit;
-    /* Scaling factor for line widths, symbol sizes, and font sizes */
-    double widthfactor;
     /* Linked list of image or recording surfaces, with segment IDs */
     CCFBPicture *firstpic;
     CCFBPicture *lastpic;
@@ -100,12 +113,12 @@ typedef struct CairoCFerBindData_struct {
     int somethingdrawn;
     /*
      * Flag that something about the image has changed since the last 
-     * update.  Only really used by the PipedImager/PyQtCairo engine.
+     * update.  Only really used by the PipedImager engine.
      */
     int imagechanged;
     /*
      * The image displayer.
-     * Only assigned and used by the PipedImager/PyQtCairo engine.
+     * Only assigned and used by the PipedImager engine.
      */
     grdelType viewer;
 } CairoCFerBindData;
@@ -127,6 +140,7 @@ grdelBool cairoCFerBind_clearWindow(CFerBind *self, grdelType fillcolor);
 grdelBool cairoCFerBind_redrawWindow(CFerBind *self, grdelType fillcolor);
 grdelBool cairoCFerBind_windowScreenInfo(CFerBind *self, float *dpix, float *dpiy,
                                          int *screenwidth, int *screenheight);
+grdelBool cairoCFerBind_setWindowDpi(CFerBind *self, double newdpi);
 grdelBool cairoCFerBind_resizeWindow(CFerBind *self, double width, double height);
 grdelBool cairoCFerBind_scaleWindow(CFerBind *self, double scale);
 grdelBool cairoCFerBind_showWindow(CFerBind *self, int visible);
@@ -164,6 +178,8 @@ grdelBool cairoCFerBind_drawPolygon(CFerBind *self, double ptsx[], double ptsy[]
                                     int numpts, grdelType brush, grdelType pen);
 grdelBool cairoCFerBind_drawRectangle(CFerBind *self, double left, double bottom,
                         double right, double top, grdelType brush, grdelType pen);
+grdelBool cairoCFerBind_textSize(CFerBind *self, const char *text, int textlen,
+                                 grdelType font, double *widthptr, double *heightptr);
 grdelBool cairoCFerBind_drawText(CFerBind *self, const char *text, int textlen,
                                  double startx, double starty, grdelType font,
                                  grdelType color, double rotation);
diff --git a/fer/cferbind/cairoCFerBind_clipView.c b/fer/cferbind/cairoCFerBind_clipView.c
index a7ec1f1..40b4807 100644
--- a/fer/cferbind/cairoCFerBind_clipView.c
+++ b/fer/cferbind/cairoCFerBind_clipView.c
@@ -53,10 +53,10 @@ grdelBool cairoCFerBind_clipView(CFerBind *self, int clipit)
     top = instdata->fracsides.top * instdata->imageheight;
     bottom = instdata->fracsides.bottom * instdata->imageheight;
     if ( instdata->imageformat != CCFBIF_PNG ) {
-        left   *= CCFB_POINTS_PER_PIXEL;
-        right  *= CCFB_POINTS_PER_PIXEL;
-        top    *= CCFB_POINTS_PER_PIXEL;
-        bottom *= CCFB_POINTS_PER_PIXEL;
+        left   *= (72.0 / instdata->pixelsperinch);
+        right  *= (72.0 / instdata->pixelsperinch);
+        top    *= (72.0 / instdata->pixelsperinch);
+        bottom *= (72.0 / instdata->pixelsperinch);
     }
 
     /* Create the clipping rectangle path */
diff --git a/fer/cferbind/cairoCFerBind_createBrush.c b/fer/cferbind/cairoCFerBind_createBrush.c
index 6a0b2b2..8199faf 100644
--- a/fer/cferbind/cairoCFerBind_createBrush.c
+++ b/fer/cferbind/cairoCFerBind_createBrush.c
@@ -7,7 +7,7 @@
 #include "cferbind.h"
 #include "cairoCFerBind.h"
 
-/* Instatiate the global value */
+/* Instantiate the global value */
 const char *CCFBBrushId = "CCFBBrushId";
 
 /*
diff --git a/fer/cferbind/cairoCFerBind_createColor.c b/fer/cferbind/cairoCFerBind_createColor.c
index b31936d..f420294 100644
--- a/fer/cferbind/cairoCFerBind_createColor.c
+++ b/fer/cferbind/cairoCFerBind_createColor.c
@@ -6,7 +6,7 @@
 #include "cferbind.h"
 #include "cairoCFerBind.h"
 
-/* Instatiate the global value */
+/* Instantiate the global value */
 const char *CCFBColorId = "CCFBColorId";
 
 /*
diff --git a/fer/cferbind/cairoCFerBind_createFont.c b/fer/cferbind/cairoCFerBind_createFont.c
index 3f6ad2d..069d3c5 100644
--- a/fer/cferbind/cairoCFerBind_createFont.c
+++ b/fer/cferbind/cairoCFerBind_createFont.c
@@ -5,11 +5,12 @@
 #include "cferbind.h"
 #include "cairoCFerBind.h"
 
+/* Instantiate the global value */
+const char *CCFBFontId = "CCFBFontId";
+
 /*
  * Create a font object for this "Window".
- *
- * Currently stubbed since it is currently not used by Ferret;
- * thus always fails.
+ * The fontsize is in points (1/72")
  *
  * Returns a font object if successful.   If an error occurs,
  * grdelerrmsg is assigned an appropriate error message and NULL
@@ -18,17 +19,104 @@
 grdelType cairoCFerBind_createFont(CFerBind *self, const char *familyname, int namelen,
                         double fontsize, int italic, int bold, int underlined)
 {
+    CairoCFerBindData *instdata;
+    double adjfontsize;
+    char *family;
+    CCFBFont *fontobj;
+#ifndef USEPANGOCAIRO
+    cairo_font_slant_t slant;
+    cairo_font_weight_t weight;
+#endif
+
     /* Sanity check */
     if ( (self->enginename != CairoCFerBindName) &&
          (self->enginename != PyQtCairoCFerBindName) ) {
         strcpy(grdelerrmsg, "cairoCFerBind_createFont: unexpected error, "
                             "self is not a valid CFerBind struct");
-        return 0;
+        return NULL;
+    }
+    if ( fontsize <= 0.0 ) {
+        strcpy(grdelerrmsg, "cairoCFerBind_createFont: invalid font size given");
+        return NULL;
+    }
+    instdata = (CairoCFerBindData *) self->instancedata;
+    /* adjust the font size for Cairo text drawing */
+    if ( instdata->imageformat == CCFBIF_PNG ) {
+        adjfontsize = fontsize * 96.0 / 72.0;
+    }
+    else {
+        adjfontsize = fontsize * 96.0 / instdata->pixelsperinch;
+    }
+
+    if ( familyname == NULL ) {
+        strcpy(grdelerrmsg, "cairoCFerBind_createFont: familyname is not given");
+        return NULL;
+    }
+    if ( namelen < 0 ) {
+        strcpy(grdelerrmsg, "cairoCFerBind_createFont: invalid familyname length given");
+        return NULL;
+    }
+
+    fontobj = (CCFBFont *) PyMem_Malloc(sizeof(CCFBFont));
+    if ( fontobj == NULL ) {
+        strcpy(grdelerrmsg, "cairoCFerBind_createFont: "
+                            "out of memory for a CCFBFont structure");
+        return NULL;
+    }
+
+    family = (char *) PyMem_Malloc(namelen+1);
+    if ( family == NULL ) {
+        strcpy(grdelerrmsg, "cairoCFerBind_createFont: "
+                            "out of memory for a copy of the familyname string");
+        PyMem_Free(fontobj);
+        return NULL;
+    }
+    strncpy(family, familyname, namelen);
+    family[namelen] = '\0';
+
+#ifdef USEPANGOCAIRO
+
+    fontobj->fontdesc = pango_font_description_new();
+    pango_font_description_set_family(fontobj->fontdesc, family);
+    if ( italic == 0 )
+        pango_font_description_set_style(fontobj->fontdesc, PANGO_STYLE_NORMAL);
+    else
+        pango_font_description_set_style(fontobj->fontdesc, PANGO_STYLE_ITALIC);
+    if ( bold == 0 )
+        pango_font_description_set_weight(fontobj->fontdesc, PANGO_WEIGHT_NORMAL);
+    else
+        pango_font_description_set_weight(fontobj->fontdesc, PANGO_WEIGHT_BOLD);
+    pango_font_description_set_variant(fontobj->fontdesc, PANGO_VARIANT_NORMAL);
+    pango_font_description_set_stretch(fontobj->fontdesc, PANGO_STRETCH_NORMAL);
+    pango_font_description_set_size(fontobj->fontdesc, (int) (adjfontsize * PANGO_SCALE + 0.5));
+
+#else
+
+    if ( italic != 0 )
+	    slant = CAIRO_FONT_SLANT_ITALIC;
+    else
+       slant = CAIRO_FONT_SLANT_NORMAL;
+    if ( bold != 0 )
+       weight = CAIRO_FONT_WEIGHT_BOLD;
+    else
+       weight = CAIRO_FONT_WEIGHT_NORMAL;
+    fontobj->fontface = cairo_toy_font_face_create(family, slant, weight);
+    if ( cairo_font_face_status(fontobj->fontface) != CAIRO_STATUS_SUCCESS ) {
+        strcpy(grdelerrmsg, "cairoCFerBind_createFont: "
+                            "unable to find a font face for the given font");
+        cairo_font_face_destroy(fontobj->fontface);
+        PyMem_Free(family);
+        PyMem_Free(fontobj);
+        return NULL;
     }
+    fontobj->fontsize = adjfontsize;
+
+#endif
+
+    PyMem_Free(family);
 
-    /* TODO: implement */
-    strcpy(grdelerrmsg, "cairoCFerBind_createFont: unexpected error, "
-                        "stubbed function");
-    return NULL;
+    fontobj->underline = underlined;
+    fontobj->id = CCFBFontId;
+    return fontobj;
 }
 
diff --git a/fer/cferbind/cairoCFerBind_createPen.c b/fer/cferbind/cairoCFerBind_createPen.c
index 2629b9e..05a36db 100644
--- a/fer/cferbind/cairoCFerBind_createPen.c
+++ b/fer/cferbind/cairoCFerBind_createPen.c
@@ -7,7 +7,7 @@
 #include "cferbind.h"
 #include "cairoCFerBind.h"
 
-/* Instatiate the global value */
+/* Instantiate the global value */
 const char *CCFBPenId = "CCFBPenId";
 
 /*
diff --git a/fer/cferbind/cairoCFerBind_createSurface.c b/fer/cferbind/cairoCFerBind_createSurface.c
index 497b751..5410bc5 100644
--- a/fer/cferbind/cairoCFerBind_createSurface.c
+++ b/fer/cferbind/cairoCFerBind_createSurface.c
@@ -22,6 +22,7 @@ grdelBool cairoCFerBind_createSurface(CFerBind *self)
     char  *fmtname;
     double width;
     double height;
+    cairo_rectangle_t extents;
 
     /* Sanity check */
     if ( (self->enginename != CairoCFerBindName) &&
@@ -49,60 +50,63 @@ grdelBool cairoCFerBind_createSurface(CFerBind *self)
         switch( instdata->imageformat ) {
         case CCFBIF_PNG:
             /* Surface size is given in integer pixels */
-            instdata->surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32,
+            if ( instdata->noalpha )
+                instdata->surface = cairo_image_surface_create(CAIRO_FORMAT_RGB24,
+                                      instdata->imagewidth, instdata->imageheight);
+            else
+                instdata->surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32,
                                       instdata->imagewidth, instdata->imageheight);
-            instdata->usealpha = 1;
             /* Note that all surface values are initialized to zero (transparent) */
             fmtname = "PNG";
             break;
         case CCFBIF_PDF:
             /* Surface size is given in (floating-point) points */
-            width = (double) instdata->imagewidth * CCFB_POINTS_PER_PIXEL;
-            height = (double) instdata->imageheight * CCFB_POINTS_PER_PIXEL;
-            instdata->surface = cairo_pdf_surface_create(instdata->imagename,
-                                                         width, height);
-            instdata->usealpha = 0;
+            width = instdata->imagewidth * 72.0 / instdata->pixelsperinch;
+            height = instdata->imageheight * 72.0 / instdata->pixelsperinch; 
+            instdata->surface = cairo_pdf_surface_create(instdata->imagename, width, height);
+            /* Never use the alpha channel to avoid embedded image */
+            instdata->noalpha = 1;
             fmtname = "PDF";
             break;
         case CCFBIF_PS:
             /* Surface size is given in (floating-point) points */
-            width = (double) instdata->imagewidth * CCFB_POINTS_PER_PIXEL;
-            height = (double) instdata->imageheight * CCFB_POINTS_PER_PIXEL;
+            width = instdata->imagewidth * 72.0 / instdata->pixelsperinch;
+            height = instdata->imageheight * 72.0 / instdata->pixelsperinch; 
             if ( width > height ) {
                 /*
                  * Landscape orientation
                  * Swap width and height and then translate and rotate (see
                  * below) per Cairo requirements.
                  */
-                instdata->surface = cairo_ps_surface_create(instdata->imagename,
-                                                            height, width);
+                instdata->surface = cairo_ps_surface_create(instdata->imagename, height, width);
             }
             else {
                 /* Portrait orientation */
-                instdata->surface = cairo_ps_surface_create(instdata->imagename,
-                                                            width, height);
+                instdata->surface = cairo_ps_surface_create(instdata->imagename, width, height);
             }
-            /* Do not use alpha channel - prevents embedded image */
-            instdata->usealpha = 0;
+            /* Never use the alpha channel to avoid embedded image */
+            instdata->noalpha = 1;
             fmtname = "PS";
             break;
         case CCFBIF_SVG:
             /* Surface size is given in (floating-point) points */
-            width = (double) instdata->imagewidth * CCFB_POINTS_PER_PIXEL;
-            height = (double) instdata->imageheight * CCFB_POINTS_PER_PIXEL;
-            instdata->surface = cairo_svg_surface_create(instdata->imagename,
-                                                         width, height);
-            instdata->usealpha = 1;
+            width = instdata->imagewidth * 72.0 / instdata->pixelsperinch;
+            height = instdata->imageheight * 72.0 / instdata->pixelsperinch; 
+            instdata->surface = cairo_svg_surface_create(instdata->imagename, width, height);
             fmtname = "SVG";
             break;
         case CCFBIF_REC:
-            /* Surface size is given in (floating-point) points */
-            width = (double) instdata->imagewidth * CCFB_POINTS_PER_PIXEL;
-            height = (double) instdata->imageheight * CCFB_POINTS_PER_PIXEL;
-            instdata->surface = 
-                cairo_svg_surface_create_for_stream(NULL, NULL, width, height);
-            instdata->usealpha = 1;
-            fmtname = "SVG REC";
+            /* Values will be given in (floating-point) points */
+            extents.x = 0.0;
+            extents.y = 0.0;
+            extents.width = instdata->imagewidth * 72.0 / instdata->pixelsperinch;
+            extents.height = height = instdata->imageheight * 72.0 / instdata->pixelsperinch; 
+#ifdef CAIRO_HAS_RECORDING_SURFACE
+            instdata->surface = cairo_recording_surface_create(CAIRO_CONTENT_COLOR_ALPHA, &extents);
+#else
+            instdata->surface = cairo_svg_surface_create_for_stream(NULL, NULL, extents.width, extents.height);
+#endif
+            fmtname = "recording";
             break;
         default:
             sprintf(grdelerrmsg, "cairoCFerBind_createSurface: unexpected error, "
@@ -139,8 +143,8 @@ grdelBool cairoCFerBind_createSurface(CFerBind *self)
          * to correct for swapped width and height (per Cairo requirements).
          */
         if ( instdata->imageformat == CCFBIF_PS ) {
-            width = (double) instdata->imagewidth * CCFB_POINTS_PER_PIXEL;
-            height = (double) instdata->imageheight * CCFB_POINTS_PER_PIXEL;
+            width = instdata->imagewidth * 72.0 / instdata->pixelsperinch;
+            height = instdata->imageheight * 72.0 / instdata->pixelsperinch; 
             if ( width > height ) {
                 /* surface was created with coordinates (0,0) to (height, width) */
                 cairo_matrix_t transmat;
diff --git a/fer/cferbind/cairoCFerBind_createWindow.c b/fer/cferbind/cairoCFerBind_createWindow.c
index 77e0265..b848f3c 100644
--- a/fer/cferbind/cairoCFerBind_createWindow.c
+++ b/fer/cferbind/cairoCFerBind_createWindow.c
@@ -13,7 +13,7 @@
  * successful.  If an error occurs, grdelerrmsg is assigned
  * an appropriate error message and NULL is returned.
  */
-CFerBind *cairoCFerBind_createWindow(void)
+CFerBind *cairoCFerBind_createWindow(int noalpha)
 {
     CFerBind *bindings;
     CairoCFerBindData *instdata;
@@ -45,6 +45,7 @@ CFerBind *cairoCFerBind_createWindow(void)
     bindings->clearWindow = cairoCFerBind_clearWindow;
     bindings->redrawWindow = cairoCFerBind_redrawWindow;
     bindings->windowScreenInfo = cairoCFerBind_windowScreenInfo;
+    bindings->setWindowDpi = cairoCFerBind_setWindowDpi;
     bindings->resizeWindow = cairoCFerBind_resizeWindow;
     bindings->scaleWindow = cairoCFerBind_scaleWindow;
     bindings->showWindow = cairoCFerBind_showWindow;
@@ -66,6 +67,7 @@ CFerBind *cairoCFerBind_createWindow(void)
     bindings->drawPoints = cairoCFerBind_drawPoints;
     bindings->drawPolygon = cairoCFerBind_drawPolygon;
     bindings->drawRectangle = cairoCFerBind_drawRectangle;
+    bindings->textSize = cairoCFerBind_textSize;
     bindings->drawText = cairoCFerBind_drawText;
 
     /* Create the instance-specific data structure */
@@ -83,9 +85,11 @@ CFerBind *cairoCFerBind_createWindow(void)
     instdata = (CairoCFerBindData *) bindings->instancedata;
     /* Default Cairo surface type */
     instdata->imageformat = CCFBIF_REC;
-    /* default image size and minimum allowed value */
-    instdata->imagewidth = (int) (10.5 * CCFB_WINDOW_DPI);
-    instdata->imageheight = (int) (8.5 * CCFB_WINDOW_DPI);
+    /* default DPI, image size, line width scaling factor, and minimum allowed value */
+    instdata->pixelsperinch = 96;
+    instdata->imagewidth = (int) (10.2 * instdata->pixelsperinch);
+    instdata->imageheight = (int) (8.8 * instdata->pixelsperinch);
+    instdata->widthfactor = instdata->pixelsperinch * 0.72 / 72.0;
     instdata->minsize = 128;
     /* default clear color of opaque white */
     instdata->lastclearcolor.id = CCFBColorId;
@@ -93,8 +97,9 @@ CFerBind *cairoCFerBind_createWindow(void)
     instdata->lastclearcolor.greenfrac = 1.0;
     instdata->lastclearcolor.bluefrac = 1.0;
     instdata->lastclearcolor.opaquefrac = 1.0;
-    /* default line width scaling factor */
-    instdata->widthfactor = CCFB_WINDOW_DPI * 0.75 / 72.0;
+
+    /* save the decision about the alpha channel */
+    instdata->noalpha = noalpha;
 
     return bindings;
 }
diff --git a/fer/cferbind/cairoCFerBind_deleteFont.c b/fer/cferbind/cairoCFerBind_deleteFont.c
index 88c7654..5c9bb9f 100644
--- a/fer/cferbind/cairoCFerBind_deleteFont.c
+++ b/fer/cferbind/cairoCFerBind_deleteFont.c
@@ -8,14 +8,13 @@
 /*
  * Delete a font object for this "Window".
  *
- * Currently stubbed since it is currently not used by Ferret;
- * thus always fails.
- *
  * Returns one if successful.   If an error occurs, grdelerrmsg
  * is assigned an appropriate error message and zero is returned.
  */
 grdelBool cairoCFerBind_deleteFont(CFerBind *self, grdelType font)
 {
+    CCFBFont *fontobj;
+
     /* Sanity check */
     if ( (self->enginename != CairoCFerBindName) &&
          (self->enginename != PyQtCairoCFerBindName) ) {
@@ -24,9 +23,31 @@ grdelBool cairoCFerBind_deleteFont(CFerBind *self, grdelType font)
         return 0;
     }
 
-    /* TODO: implement */
-    strcpy(grdelerrmsg, "cairoCFerBind_deleteFont: unexpected error, "
-                        "stubbed function");
-    return 0;
+    fontobj = (CCFBFont *) font;
+    if ( fontobj->id != CCFBFontId ) {
+        strcpy(grdelerrmsg, "cairoCFerBind_deleteFont: unexpected error, "
+                            "font is not CCFBFont struct");
+        return 0;
+    }
+
+#ifdef USEPANGOCAIRO
+    if ( fontobj->fontdesc != NULL ) {
+        pango_font_description_free(fontobj->fontdesc);
+        fontobj->fontdesc = NULL;
+    }
+#else
+    if ( fontobj->fontface != NULL ) {
+        cairo_font_face_destroy(fontobj->fontface);
+        fontobj->fontface = NULL;
+    }
+#endif
+
+    /* Wipe the id to detect errors */
+    fontobj->id = NULL;
+
+    /* Free the memory */
+    PyMem_Free(font);
+
+    return 1;
 }
 
diff --git a/fer/cferbind/cairoCFerBind_drawMultiline.c b/fer/cferbind/cairoCFerBind_drawMultiline.c
index 9c2ff48..550c90f 100644
--- a/fer/cferbind/cairoCFerBind_drawMultiline.c
+++ b/fer/cferbind/cairoCFerBind_drawMultiline.c
@@ -59,12 +59,12 @@ grdelBool cairoCFerBind_drawMultiline(CFerBind *self, double ptsx[],
         return 0;
     }
 
-    /* Convertions factor for those surfaces that expect points instead of pixels */
+    /* Conversion factor for those surfaces that expect points instead of pixels */
     if ( instdata->imageformat == CCFBIF_PNG ) {
         unitfactor = 1.0;
     }
     else {
-        unitfactor = CCFB_POINTS_PER_PIXEL;
+        unitfactor = 72.0 / instdata->pixelsperinch;
     }
 
     /* Create the path that will be stroked */
@@ -79,13 +79,13 @@ grdelBool cairoCFerBind_drawMultiline(CFerBind *self, double ptsx[],
     }
 
     /* Assign the line color */
-    if ( instdata->usealpha )
+    if ( instdata->noalpha )
+        cairo_set_source_rgb(instdata->context, penobj->color.redfrac,
+                             penobj->color.greenfrac, penobj->color.bluefrac);
+    else
         cairo_set_source_rgba(instdata->context, penobj->color.redfrac,
                               penobj->color.greenfrac, penobj->color.bluefrac,
                               penobj->color.opaquefrac);
-    else
-        cairo_set_source_rgb(instdata->context, penobj->color.redfrac,
-                             penobj->color.greenfrac, penobj->color.bluefrac);
     /* Assign the adjusted line width, which is in points */
     adjwidth  = penobj->width * instdata->widthfactor;
     /* width of zero is a cosmetic pen - make it 1 pixel wide */
diff --git a/fer/cferbind/cairoCFerBind_drawPoints.c b/fer/cferbind/cairoCFerBind_drawPoints.c
index 61c6fe2..42f3534 100644
--- a/fer/cferbind/cairoCFerBind_drawPoints.c
+++ b/fer/cferbind/cairoCFerBind_drawPoints.c
@@ -48,20 +48,20 @@ grdelBool cairoCFerBind_drawPoints(CFerBind *self, double ptsx[], double ptsy[],
     }
 
     /* Assign the (solid) color to use for the symbols */
-    if ( instdata->usealpha )
+    if ( instdata->noalpha )
+        cairo_set_source_rgb(instdata->context, colorobj->redfrac,
+                             colorobj->greenfrac, colorobj->bluefrac);
+    else
         cairo_set_source_rgba(instdata->context, colorobj->redfrac,
                               colorobj->greenfrac, colorobj->bluefrac,
                               colorobj->opaquefrac);
-    else
-        cairo_set_source_rgb(instdata->context, colorobj->redfrac,
-                             colorobj->greenfrac, colorobj->bluefrac);
 
-    /* Convertions factor for those surfaces that expect points instead of pixels */
+    /* Conversion factor for those surfaces that expect points instead of pixels */
     if ( instdata->imageformat == CCFBIF_PNG ) {
         unitfactor = 1.0;
     }
     else {
-        unitfactor = CCFB_POINTS_PER_PIXEL;
+        unitfactor = 72.0 / instdata->pixelsperinch;
     }
 
     /* Scaling factor to use for these symbols "drawn" as 100x100 pixel paths */
diff --git a/fer/cferbind/cairoCFerBind_drawPolygon.c b/fer/cferbind/cairoCFerBind_drawPolygon.c
index 5872abb..cfef6e4 100644
--- a/fer/cferbind/cairoCFerBind_drawPolygon.c
+++ b/fer/cferbind/cairoCFerBind_drawPolygon.c
@@ -88,12 +88,12 @@ grdelBool cairoCFerBind_drawPolygon(CFerBind *self, double ptsx[], double ptsy[]
         return 0;
     }
 
-    /* Convertions factor for those surfaces that expect points instead of pixels */
+    /* Conversion factor for those surfaces that expect points instead of pixels */
     if ( instdata->imageformat == CCFBIF_PNG ) {
         unitfactor = 1.0;
     }
     else {
-        unitfactor = CCFB_POINTS_PER_PIXEL;
+        unitfactor = 72.0 / instdata->pixelsperinch;
     }
 
     /* Turn off antialiasing for this operation */
@@ -128,23 +128,28 @@ grdelBool cairoCFerBind_drawPolygon(CFerBind *self, double ptsx[], double ptsy[]
 
         if ( brushobj->pattern != NULL )
             cairo_set_source(instdata->context, brushobj->pattern);
-        else if ( instdata->usealpha )
+        else if ( instdata->noalpha )
+            cairo_set_source_rgb(instdata->context, brushobj->color.redfrac,
+                  brushobj->color.greenfrac, brushobj->color.bluefrac);
+        else
             cairo_set_source_rgba(instdata->context, brushobj->color.redfrac,
                   brushobj->color.greenfrac, brushobj->color.bluefrac,
                   brushobj->color.opaquefrac);
-        else
-            cairo_set_source_rgb(instdata->context, brushobj->color.redfrac,
-                  brushobj->color.greenfrac, brushobj->color.bluefrac);
 
         /* Fill the rectangle, but preserve the path for stroking */
-        cairo_fill_preserve(instdata->context);
+        /* 
+         * cairo_fill_preserve(instdata->context); 
+         */
+        cairo_fill(instdata->context);
 
         /* Stroke the path with a solid cosmetic (one pixel width) line */
-        cairo_set_line_width(instdata->context, 1.0 * unitfactor);
-        cairo_set_dash(instdata->context, NULL, 0, 0.0);
-        cairo_set_line_cap(instdata->context, CAIRO_LINE_CAP_SQUARE);
-        cairo_set_line_join(instdata->context, CAIRO_LINE_JOIN_BEVEL);
-        cairo_stroke(instdata->context);
+        /*
+         * cairo_set_line_width(instdata->context, 1.0 * unitfactor);
+         * cairo_set_dash(instdata->context, NULL, 0, 0.0);
+         * cairo_set_line_cap(instdata->context, CAIRO_LINE_CAP_SQUARE);
+         * cairo_set_line_join(instdata->context, CAIRO_LINE_JOIN_BEVEL);
+         * cairo_stroke(instdata->context);
+         */
 
         /* Reset the original transformation */
         /*
@@ -154,10 +159,10 @@ grdelBool cairoCFerBind_drawPolygon(CFerBind *self, double ptsx[], double ptsy[]
         /* Draw this group using the brush alpha value (if appropriate) */
         /*
          * cairo_pop_group_to_source(instdata->context);
-         * if ( instdata->usealpha )
-         *     cairo_paint_with_alpha(instdata->context, brushobj->color.opaquefrac);
-         * else
+         * if ( instdata->noalpha )
          *     cairo_paint(instdata->context);
+         * else
+         *     cairo_paint_with_alpha(instdata->context, brushobj->color.opaquefrac);
          */
     }
     else {
@@ -166,25 +171,25 @@ grdelBool cairoCFerBind_drawPolygon(CFerBind *self, double ptsx[], double ptsy[]
             /* Fill pattern or solid color */
             if ( brushobj->pattern != NULL )
                 cairo_set_source(instdata->context, brushobj->pattern);
-            else if ( instdata->usealpha )
+            else if ( instdata->noalpha )
+                cairo_set_source_rgb(instdata->context, brushobj->color.redfrac,
+                      brushobj->color.greenfrac, brushobj->color.bluefrac);
+            else
                 cairo_set_source_rgba(instdata->context, brushobj->color.redfrac,
                       brushobj->color.greenfrac, brushobj->color.bluefrac,
                       brushobj->color.opaquefrac);
-            else
-                cairo_set_source_rgb(instdata->context, brushobj->color.redfrac,
-                      brushobj->color.greenfrac, brushobj->color.bluefrac);
             /* Fill the polygon, but preserve the path for stroking */
             cairo_fill_preserve(instdata->context);
         }
 
         /* Assign the line color to the context */
-        if ( instdata->usealpha )
+        if ( instdata->noalpha )
+            cairo_set_source_rgb(instdata->context, penobj->color.redfrac,
+                  penobj->color.greenfrac, penobj->color.bluefrac);
+        else
             cairo_set_source_rgba(instdata->context, penobj->color.redfrac,
                   penobj->color.greenfrac, penobj->color.bluefrac,
                   penobj->color.opaquefrac);
-        else
-            cairo_set_source_rgb(instdata->context, penobj->color.redfrac,
-                  penobj->color.greenfrac, penobj->color.bluefrac);
         /* Assign the adjusted line width */
         adjwidth = penobj->width * instdata->widthfactor;
         /* width of zero is a cosmetic pen - make it one pixel wide */
diff --git a/fer/cferbind/cairoCFerBind_drawRectangle.c b/fer/cferbind/cairoCFerBind_drawRectangle.c
index 851202c..d961b28 100644
--- a/fer/cferbind/cairoCFerBind_drawRectangle.c
+++ b/fer/cferbind/cairoCFerBind_drawRectangle.c
@@ -85,12 +85,12 @@ grdelBool cairoCFerBind_drawRectangle(CFerBind *self, double left, double bottom
         return 0;
     }
 
-    /* Convertions factor for those surfaces that expect points instead of pixels */
+    /* Conversion factor for those surfaces that expect points instead of pixels */
     if ( instdata->imageformat == CCFBIF_PNG ) {
         unitfactor = 1.0;
     }
     else {
-        unitfactor = CCFB_POINTS_PER_PIXEL;
+        unitfactor = 72.0 / instdata->pixelsperinch;
     }
 
     /* Turn off antialiasing for this operation */
@@ -121,23 +121,28 @@ grdelBool cairoCFerBind_drawRectangle(CFerBind *self, double left, double bottom
 
         if ( brushobj->pattern != NULL )
             cairo_set_source(instdata->context, brushobj->pattern);
-        else if ( instdata->usealpha )
+        else if ( instdata->noalpha )
+            cairo_set_source_rgb(instdata->context, brushobj->color.redfrac,
+                  brushobj->color.greenfrac, brushobj->color.bluefrac);
+        else
             cairo_set_source_rgba(instdata->context, brushobj->color.redfrac,
                   brushobj->color.greenfrac, brushobj->color.bluefrac,
                   brushobj->color.opaquefrac);
-        else
-            cairo_set_source_rgb(instdata->context, brushobj->color.redfrac,
-                  brushobj->color.greenfrac, brushobj->color.bluefrac);
 
         /* Fill the rectangle, but preserve the path for stroking */
-        cairo_fill_preserve(instdata->context);
+        /*
+         * cairo_fill_preserve(instdata->context);
+         */
+        cairo_fill(instdata->context);
 
         /* Stroke the path with a solid cosmetic (one pixel width) line */
-        cairo_set_line_width(instdata->context, 1.0 * unitfactor);
-        cairo_set_dash(instdata->context, NULL, 0, 0.0);
-        cairo_set_line_cap(instdata->context, CAIRO_LINE_CAP_SQUARE);
-        cairo_set_line_join(instdata->context, CAIRO_LINE_JOIN_BEVEL);
-        cairo_stroke(instdata->context);
+        /*
+         * cairo_set_line_width(instdata->context, 1.0 * unitfactor);
+         * cairo_set_dash(instdata->context, NULL, 0, 0.0);
+         * cairo_set_line_cap(instdata->context, CAIRO_LINE_CAP_SQUARE);
+         * cairo_set_line_join(instdata->context, CAIRO_LINE_JOIN_BEVEL);
+         * cairo_stroke(instdata->context);
+         */
 
         /* Reset the original transformation */
         /*
@@ -147,10 +152,10 @@ grdelBool cairoCFerBind_drawRectangle(CFerBind *self, double left, double bottom
         /* Draw this group using the brush alpha value (if appropriate) */
         /*
          * cairo_pop_group_to_source(instdata->context);
-         * if ( instdata->usealpha )
-         *     cairo_paint_with_alpha(instdata->context, brushobj->color.opaquefrac);
-         * else
+         * if ( instdata->noalpha )
          *     cairo_paint(instdata->context);
+         * else
+         *     cairo_paint_with_alpha(instdata->context, brushobj->color.opaquefrac);
          */
     }
     else {
@@ -159,25 +164,25 @@ grdelBool cairoCFerBind_drawRectangle(CFerBind *self, double left, double bottom
             /* Fill pattern or solid color */
             if ( brushobj->pattern != NULL )
                 cairo_set_source(instdata->context, brushobj->pattern);
-            else if ( instdata->usealpha )
+            else if ( instdata->noalpha )
+                cairo_set_source_rgb(instdata->context, brushobj->color.redfrac,
+                      brushobj->color.greenfrac, brushobj->color.bluefrac);
+            else
                 cairo_set_source_rgba(instdata->context, brushobj->color.redfrac,
                       brushobj->color.greenfrac, brushobj->color.bluefrac,
                       brushobj->color.opaquefrac);
-            else
-                cairo_set_source_rgb(instdata->context, brushobj->color.redfrac,
-                      brushobj->color.greenfrac, brushobj->color.bluefrac);
             /* Fill the rectangle, but preserve the path for stroking */
             cairo_fill_preserve(instdata->context);
         }
 
         /* Assign the line color to the context */
-        if ( instdata->usealpha )
+        if ( instdata->noalpha )
+            cairo_set_source_rgb(instdata->context, penobj->color.redfrac,
+                  penobj->color.greenfrac, penobj->color.bluefrac);
+        else
             cairo_set_source_rgba(instdata->context, penobj->color.redfrac,
                   penobj->color.greenfrac, penobj->color.bluefrac,
                   penobj->color.opaquefrac);
-        else
-            cairo_set_source_rgb(instdata->context, penobj->color.redfrac,
-                  penobj->color.greenfrac, penobj->color.bluefrac);
         /* Assign the adjusted line width */
         adjwidth = penobj->width * instdata->widthfactor;
         /* width of zero is a cosmetic pen - make it one pixel wide */
diff --git a/fer/cferbind/cairoCFerBind_drawText.c b/fer/cferbind/cairoCFerBind_drawText.c
index fd75cff..bcec48b 100644
--- a/fer/cferbind/cairoCFerBind_drawText.c
+++ b/fer/cferbind/cairoCFerBind_drawText.c
@@ -4,12 +4,12 @@
 #include "grdel.h"
 #include "cferbind.h"
 #include "cairoCFerBind.h"
+#include "utf8str.h"
 
 /*
- * Draw text to this "Window".
- *
- * Currently stubbed since it is currently not used by Ferret;
- * thus always fails.
+ * Draw text to this "Window".  Text is a UTF-8 encoding of the desired text, 
+ * and textlen is length of the text array (which may be more than the number 
+ * of "characters" in the text).  Rotation is in degrees clockwise from horizontal.
  *
  * Returns one if successful.   If an error occurs, grdelerrmsg
  * is assigned an appropriate error message and zero is returned.
@@ -19,7 +19,14 @@ grdelBool cairoCFerBind_drawText(CFerBind *self, const char *text, int textlen,
                                  grdelType color, double rotation)
 {
     CairoCFerBindData *instdata;
+    CCFBFont *fontobj;
     CCFBColor *colorobj;
+    double unitfactor;
+    char *utf8str;
+#ifdef USEPANGOCAIRO
+    PangoLayout *layout;
+#endif
+    cairo_status_t result;
 
     /* Sanity check */
     if ( (self->enginename != CairoCFerBindName) &&
@@ -36,16 +43,85 @@ grdelBool cairoCFerBind_drawText(CFerBind *self, const char *text, int textlen,
             return 0;
         }
     }
+    fontobj = (CCFBFont *) font;
+    if ( fontobj->id != CCFBFontId ) {
+        strcpy(grdelerrmsg, "cairoCFerBind_drawText: unexpected error, "
+                            "font is not CCFBFont struct");
+        return 0;
+    }
     colorobj = (CCFBColor *) color;
     if ( colorobj->id != CCFBColorId ) {
         strcpy(grdelerrmsg, "cairoCFerBind_drawText: unexpected error, "
                             "color is not CCFBColor struct");
         return 0;
     }
+    if ( textlen < 0 ) {
+        strcpy(grdelerrmsg, "cairoCFerBind_drawText: textlen is not positive");
+        return 0;
+    }
+
+    /* Assign the color for this text */
+    if ( instdata->noalpha )
+        cairo_set_source_rgb(instdata->context, colorobj->redfrac, 
+                             colorobj->greenfrac, colorobj->bluefrac);
+    else
+        cairo_set_source_rgba(instdata->context, colorobj->redfrac, 
+                              colorobj->greenfrac, colorobj->bluefrac, 
+                              colorobj->opaquefrac);
+
+    /* Conversion factor for those surfaces that expect points instead of pixels */
+    if ( instdata->imageformat == CCFBIF_PNG ) {
+        unitfactor = 1.0;
+    }
+    else {
+        unitfactor = 72.0 / instdata->pixelsperinch;
+    }
+
+    /* Move to the place to start drawing this text */
+    cairo_move_to(instdata->context, startx * unitfactor, starty * unitfactor);
+
+    /* If no text to draw, just return at this point */
+    if ( textlen == 0 )
+        return 1;
+
+    /* Null-terminated the UTF-8 string */
+    utf8str = (char *) PyMem_Malloc((textlen + 1) * sizeof(char));
+    if ( utf8str == NULL ) {
+        strcpy(grdelerrmsg, "cairoCFerBind_drawText: "
+                            "out of memory for a copy of the text string");
+        return 0;
+    }
+    strncpy(utf8str, text, textlen);
+    utf8str[textlen] = '\0';
+
+    /* draw the text */
+    cairo_save(instdata->context);
+    cairo_rotate(instdata->context, rotation * M_PI / 180.0);
+#ifdef USEPANGOCAIRO
+    layout = pango_cairo_create_layout(instdata->context);
+    pango_layout_set_font_description(layout, fontobj->fontdesc);
+    pango_layout_set_text(layout, text, textlen);
+    pango_cairo_show_layout(instdata->context, layout);
+    g_object_unref(layout);
+#else
+    cairo_set_font_face(instdata->context, fontobj->fontface);
+    /* fontsize has already been adjusted appropriately for this surface */
+    cairo_set_font_size(instdata->context, fontobj->fontsize);
+    cairo_show_text(instdata->context, utf8str);
+#endif
+    result = cairo_status(instdata->context);
+    cairo_restore(instdata->context);
+
+    PyMem_Free(utf8str);
+    instdata->somethingdrawn = 1;
+    instdata->imagechanged = 1;
+
+    if ( result != CAIRO_STATUS_SUCCESS ) {
+        strcpy(grdelerrmsg, "cairoCFerBind_drawText: "
+                            "drawing the text was not successful");
+        return 0;
+    }
 
-    /* TODO: implement */
-    strcpy(grdelerrmsg, "cairoCFerBind_drawText: unexpected error, "
-                        "stubbed function");
-    return 0;
+    return 1;
 }
 
diff --git a/fer/cferbind/cairoCFerBind_saveWindow.c b/fer/cferbind/cairoCFerBind_saveWindow.c
index 7257cd9..06ec36e 100644
--- a/fer/cferbind/cairoCFerBind_saveWindow.c
+++ b/fer/cferbind/cairoCFerBind_saveWindow.c
@@ -38,7 +38,7 @@
  * A filename consisting of only an extension (e.g., ".png")
  * will be treated as not having an extension.
  *
- * If transbkg is non-zero, the saved image is filled with the 
+ * If transbkg is zero, the saved image is filled with the 
  * last clearing color before drawing the current image with a 
  * transparent background.
  *
@@ -62,20 +62,20 @@ grdelBool cairoCFerBind_saveWindow(CFerBind *self, const char *filename,
     cairo_t           *annocontext;
     double             padding;
     double             penwidth;
-    double             annowidth;
-    double             annoheight;
     cairo_surface_t   *savesurface;
     cairo_t           *savecontext;
     PangoLayout       *annolayout;
+    double             layoutwidth;
     double             layoutheight;
     cairo_status_t     result;
     char               savename[CCFB_NAME_SIZE];
     double             savewidth;
     double             saveheight;
-    int                usealpha;
+    int                noalpha;
     double             scalefactor;
     double             offset;
     CCFBPicture       *thispic;
+    cairo_rectangle_t  extents;
 
     /* Sanity checks - this should NOT be called by the PyQtCairo engine */
     if ( self->enginename != CairoCFerBindName ) {
@@ -223,19 +223,27 @@ grdelBool cairoCFerBind_saveWindow(CFerBind *self, const char *filename,
         /* Remove the last newline */
         allannos[j-1] = '\0';
         /* padding and pen width in points */
-        padding = 12.0;
+        padding = 9.0;
         penwidth = 2.0;
         /*
-         * Create the SVG recording surface for the annotations;
+         * Create the recording surface for the annotations;
          * keep the same width, less padding, as the image; the 
          * height is actually arbitrary.
          */
-        annowidth = (double) (instdata->imagewidth * CCFB_POINTS_PER_PIXEL 
-                              - 2 * padding);
-        annoheight = (double) (instdata->imageheight * CCFB_POINTS_PER_PIXEL
-                               - 2 * padding);
-        annosurface = cairo_svg_surface_create_for_stream(
-                                        NULL, NULL, annowidth, annoheight);
+        extents.x = 0.0;
+        extents.y = 0.0;
+        extents.width = instdata->imagewidth * 72.0 / instdata->pixelsperinch - 2.0 * padding;
+        extents.height = instdata->imageheight * 72.0 / instdata->pixelsperinch - 2.0 * padding;
+#if 0
+#ifdef CAIRO_HAS_RECORDING_SURFACE
+        annosurface = cairo_recording_surface_create(CAIRO_CONTENT_COLOR_ALPHA, &extents);
+#else
+        annosurface = cairo_svg_surface_create_for_stream(NULL, NULL, extents.width, extents.height);
+#endif
+#else
+        /* Always use the SVG surface for the old Pango library */
+        annosurface = cairo_svg_surface_create_for_stream(NULL, NULL, extents.width, extents.height);
+#endif
         if ( cairo_surface_status(annosurface) != CAIRO_STATUS_SUCCESS ) {
             strcpy(grdelerrmsg, "cairoCFerBind_saveWindow: "
                                 "problems creating a temp surface for annotations");
@@ -255,14 +263,24 @@ grdelBool cairoCFerBind_saveWindow(CFerBind *self, const char *filename,
         }
         /* Create the Pango layout for the annotations */
         annolayout = pango_cairo_create_layout(annocontext);
-        pango_layout_set_width(annolayout, (int) (PANGO_SCALE * annowidth + 0.5));
+        pango_layout_set_width(annolayout, (int) (PANGO_SCALE * (extents.width) + 0.5));
         pango_layout_set_wrap(annolayout, PANGO_WRAP_WORD_CHAR);
         pango_layout_set_markup(annolayout, allannos, j-1);
         /* Apply the annotations to this cairo surface */
         pango_cairo_show_layout(annocontext, annolayout);
-        /* Get the actual size of the annotations in "device units" (points) */
-        pango_layout_get_pixel_size(annolayout, &j, &k);
-        layoutheight = (double) k;
+        /* Get the actual size of the annotations in Pango scaled surface units */
+        pango_layout_get_size(annolayout, NULL, &k);
+        if ( k > 0 ) {
+           layoutheight = (double) k / PANGO_SCALE + 2.0 * padding;
+           layoutwidth = extents.width + 2.0 * padding;
+        }
+        else {
+           /* No content in the annotations so ignore them */
+           padding = 0.0;
+           penwidth = 0.0;
+           layoutheight = 0.0;
+           layoutwidth = 0.0;
+        }
         /* Done with the Pango layout */
         g_object_unref(annolayout);
         /* Make sure the context is not in an error state */
@@ -295,9 +313,10 @@ grdelBool cairoCFerBind_saveWindow(CFerBind *self, const char *filename,
     }
     else {
         annosurface = NULL;
-        padding = 0;
-        penwidth = 0;
-        layoutheight = 0;
+        padding = 0.0;
+        penwidth = 0.0;
+        layoutheight = 0.0;
+        layoutwidth = 0.0;
     }
 
     /* Create a temporary surface for the desired format */
@@ -307,12 +326,25 @@ grdelBool cairoCFerBind_saveWindow(CFerBind *self, const char *filename,
         saveheight = (double) ypixels;
         scalefactor  = savewidth / instdata->imagewidth;
         scalefactor += saveheight / instdata->imageheight;
-        /* layoutheight, padding, and recording surfaces are in points */
-        scalefactor /= 2.0 * CCFB_POINTS_PER_PIXEL;
-        saveheight += scalefactor * (layoutheight + 2.0 * padding);
-        savesurface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32,
-                                  (int) savewidth, (int) saveheight );
-        usealpha = 1;
+        if ( instdata->imageformat == CCFBIF_PNG ) {
+            /* memory image is in pixels value given in imagewidth, imageheight */
+            scalefactor *= 0.5;
+        }
+        else {
+            /* recording surface is actually in points value of imagewidth, imageheight */
+            scalefactor *= instdata->pixelsperinch / 144.0;
+        }
+        saveheight += scalefactor * layoutheight;
+        if ( instdata->noalpha ) {
+            savesurface = cairo_image_surface_create(CAIRO_FORMAT_RGB24,
+                                      (int) savewidth, (int) saveheight);
+            noalpha = 1;
+        }
+        else {
+            savesurface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32,
+                                      (int) savewidth, (int) saveheight);
+            noalpha = 0;
+        }
     }
     else if ( strcmp(fmtext, "PDF") == 0 ) {
         /* Surface size is given in (floating-point) points */
@@ -320,11 +352,12 @@ grdelBool cairoCFerBind_saveWindow(CFerBind *self, const char *filename,
         saveheight = yinches * 72.0;
         scalefactor  = savewidth / instdata->imagewidth;
         scalefactor += saveheight / instdata->imageheight;
-        /* instdata image size is in pixels */
-        scalefactor /= 2.0 * CCFB_POINTS_PER_PIXEL;
-        saveheight += scalefactor * (layoutheight + 2.0 * padding);
+        /* recording surface is actually in points value of imagewidth, imageheight */
+        scalefactor *= instdata->pixelsperinch / 144.0;
+        saveheight += scalefactor * layoutheight;
         savesurface = cairo_pdf_surface_create(savename, savewidth, saveheight);
-        usealpha = 0;
+        /* Never use the alpha channel */
+        noalpha = 1;
     }
     else if ( strcmp(fmtext, "PS") == 0 ) {
         /* Surface size is given in (floating-point) points */
@@ -332,9 +365,9 @@ grdelBool cairoCFerBind_saveWindow(CFerBind *self, const char *filename,
         saveheight = yinches * 72.0;
         scalefactor  = savewidth / instdata->imagewidth;
         scalefactor += saveheight / instdata->imageheight;
-        /* instdata image size is in pixels */
-        scalefactor /= 2.0 * CCFB_POINTS_PER_PIXEL;
-        saveheight += scalefactor * (layoutheight + 2.0 * padding);
+        /* recording surface is actually in points value of imagewidth, imageheight */
+        scalefactor *= instdata->pixelsperinch / 144.0;
+        saveheight += scalefactor * layoutheight;
         if ( savewidth > saveheight ) {
             /*
              * Landscape orientation
@@ -347,8 +380,8 @@ grdelBool cairoCFerBind_saveWindow(CFerBind *self, const char *filename,
             /* Portrait orientation */
             savesurface = cairo_ps_surface_create(savename, savewidth, saveheight);
         }
-        /* Do not use alpha channel; otherwise it will be created with an embedded image */
-        usealpha = 0;
+        /* Never use the alpha channel */
+        noalpha = 1;
     }
     else if ( strcmp(fmtext, "SVG") == 0 ) {
         /* Surface size is given in (floating-point) points */
@@ -356,11 +389,11 @@ grdelBool cairoCFerBind_saveWindow(CFerBind *self, const char *filename,
         saveheight = yinches * 72.0;
         scalefactor  = savewidth / instdata->imagewidth;
         scalefactor += saveheight / instdata->imageheight;
-        /* instdata image size is in pixels */
-        scalefactor /= 2.0 * CCFB_POINTS_PER_PIXEL;
-        saveheight += scalefactor * (layoutheight + 2.0 * padding);
+        /* recording surface is actually in points value of imagewidth, imageheight */
+        scalefactor *= instdata->pixelsperinch / 144.0;
+        saveheight += scalefactor * layoutheight;
         savesurface = cairo_svg_surface_create(savename, savewidth, saveheight);
-        usealpha = 1;
+        noalpha = instdata->noalpha;
     }
     else {
         sprintf(grdelerrmsg, "cairoCFerBind_saveWindow: "
@@ -386,14 +419,6 @@ grdelBool cairoCFerBind_saveWindow(CFerBind *self, const char *filename,
         return 0;
     }
 
-    if ( (strcmp(fmtext, "PNG") == 0) && (instdata->imageformat == CCFBIF_PNG) ) {
-        /* 
-         * Both surface use units of pixels, so fix the scaling 
-         * factor computed for recording surfaces, which use points.
-         */
-        scalefactor *= CCFB_POINTS_PER_PIXEL;
-    }
-
     /*
      * If landscape PostScript, translate and rotate the coordinate system
      * to correct for swapped savewidth and saveheight (per Cairo requirements).
@@ -423,30 +448,30 @@ grdelBool cairoCFerBind_saveWindow(CFerBind *self, const char *filename,
         }
     }
 
-    /* Set the scale on the destination so the source will just fit. */
-    cairo_scale(savecontext, scalefactor, scalefactor);
-
     /* 
      * If not a transparent background, or if the alpha channel 
      * is not supported, fill in the background (with an opaque 
      * color if the alpha channel is not supported).
      */
-    if ( (! transbkg) || (! usealpha) ) {
-        if ( usealpha )
+    if ( (! transbkg) || noalpha ) {
+        if ( noalpha )
+            cairo_set_source_rgb(savecontext,
+                                 instdata->lastclearcolor.redfrac,
+                                 instdata->lastclearcolor.greenfrac,
+                                 instdata->lastclearcolor.bluefrac);
+        else
             cairo_set_source_rgba(savecontext,
                                   instdata->lastclearcolor.redfrac,
                                   instdata->lastclearcolor.greenfrac,
                                   instdata->lastclearcolor.bluefrac,
                                   instdata->lastclearcolor.opaquefrac);
-        else
-            cairo_set_source_rgb(savecontext,
-                                 instdata->lastclearcolor.redfrac,
-                                 instdata->lastclearcolor.greenfrac,
-                                 instdata->lastclearcolor.bluefrac);
         cairo_paint(savecontext);
     }
 
-    /* Check using layoutheight just in case there was no text */
+    /* Set the scale on the destination so the source will just fit. */
+    cairo_scale(savecontext, scalefactor, scalefactor);
+
+    /* Check if there are annotations (with content) to be drawn */
     if ( layoutheight > 0.0 ) {
         /* 
          * Draw the annotations in a white-filled, black-outlined 
@@ -454,19 +479,18 @@ grdelBool cairoCFerBind_saveWindow(CFerBind *self, const char *filename,
          */
         cairo_new_path(savecontext);
         cairo_rectangle(savecontext, 0.5 * penwidth, 0.5 * penwidth,
-              (instdata->imagewidth * CCFB_POINTS_PER_PIXEL - penwidth),
-              layoutheight + 2.0 * padding - penwidth);
+                        layoutwidth - penwidth, layoutheight - penwidth);
         /* white fill */
-        if ( usealpha )
-            cairo_set_source_rgba(savecontext, 1.0, 1.0, 1.0, 1.0);
-        else
+        if ( noalpha )
             cairo_set_source_rgb(savecontext, 1.0, 1.0, 1.0);
+        else
+            cairo_set_source_rgba(savecontext, 1.0, 1.0, 1.0, 1.0);
         cairo_fill_preserve(savecontext);
         /* black outline */
-        if ( usealpha )
-            cairo_set_source_rgba(savecontext, 0.0, 0.0, 0.0, 1.0);
-        else
+        if ( noalpha )
             cairo_set_source_rgb(savecontext, 0.0, 0.0, 0.0);
+        else
+            cairo_set_source_rgba(savecontext, 0.0, 0.0, 0.0, 1.0);
         cairo_set_line_width(savecontext, penwidth);
         cairo_set_dash(savecontext, NULL, 0, 0.0);
         cairo_set_line_cap(savecontext, CAIRO_LINE_CAP_SQUARE);
@@ -474,11 +498,12 @@ grdelBool cairoCFerBind_saveWindow(CFerBind *self, const char *filename,
         cairo_stroke(savecontext);
         /* 
          * Draw the transparent-background annotations image
-         * onto this temporary surface within the rectangle.
+         * onto the save surface within the rectangle.
          */
         cairo_set_source_surface(savecontext, annosurface, padding, padding);
         cairo_paint(savecontext);
-        offset = layoutheight + 2.0 * padding;
+        cairo_surface_flush(savesurface);
+        offset = layoutheight;
     }
     else {
         offset = 0.0;
diff --git a/fer/cferbind/cairoCFerBind_setWidthFactor.c b/fer/cferbind/cairoCFerBind_setWidthFactor.c
index 1a7ecd4..bdd558e 100644
--- a/fer/cferbind/cairoCFerBind_setWidthFactor.c
+++ b/fer/cferbind/cairoCFerBind_setWidthFactor.c
@@ -31,7 +31,7 @@ grdelBool cairoCFerBind_setWidthFactor(CFerBind *self, double factor)
     }
 
     instdata = (CairoCFerBindData *) self->instancedata;
-    instdata->widthfactor = CCFB_WINDOW_DPI * factor / 72.0;
+    instdata->widthfactor = factor * instdata->pixelsperinch / 72.0;
     return 1;
 }
 
diff --git a/fer/cferbind/cairoCFerBind_setWidthFactor.c b/fer/cferbind/cairoCFerBind_setWindowDpi.c
similarity index 50%
copy from fer/cferbind/cairoCFerBind_setWidthFactor.c
copy to fer/cferbind/cairoCFerBind_setWindowDpi.c
index 1a7ecd4..bdee4fb 100644
--- a/fer/cferbind/cairoCFerBind_setWidthFactor.c
+++ b/fer/cferbind/cairoCFerBind_setWindowDpi.c
@@ -1,37 +1,33 @@
 /* Python.h should always be first */
 #include <Python.h>
+#include <cairo/cairo.h>
 #include <string.h>
 #include "grdel.h"
 #include "cferbind.h"
 #include "cairoCFerBind.h"
 
 /*
- * Set the scaling factor for line widths and symbol sizes
- * to convert from points (1/72 inches) to pixels, and to 
- * apply any additional width scaling specified by factor.
+ * Set the DPI for this "Window".  Adjusts the line width scaling factor.
+ * Does not adjust window size since the should precede a window resize 
+ * command.  Does not adjust font sizes as these are generated as needed.
  *
  * Returns one if successful.   If an error occurs, grdelerrmsg
  * is assigned an appropriate error message and zero is returned.
  */
-grdelBool cairoCFerBind_setWidthFactor(CFerBind *self, double factor)
+grdelBool cairoCFerBind_setWindowDpi(CFerBind *self, double newdpi)
 {
     CairoCFerBindData *instdata;
 
-    /* Sanity check */
+    /* Sanity check  - allow PyQtCairoCFerBindName for internal use */
     if ( (self->enginename != CairoCFerBindName) &&
          (self->enginename != PyQtCairoCFerBindName) ) {
-        strcpy(grdelerrmsg, "cairoCFerBind_setWidthFactor: unexpected error, "
+        strcpy(grdelerrmsg, "cairoCFerBind_setWindowDpi: unexpected error, "
                             "self is not a valid CFerBind struct");
         return 0;
     }
-    if ( factor <= 0.0 ) {
-        strcpy(grdelerrmsg, "cairoCFerBind_setWidthFactor: "
-                            "scaling factor must be positive");
-        return 0;
-    }
-
     instdata = (CairoCFerBindData *) self->instancedata;
-    instdata->widthfactor = CCFB_WINDOW_DPI * factor / 72.0;
+    instdata->widthfactor *= newdpi / instdata->pixelsperinch;
+    instdata->pixelsperinch = newdpi;
     return 1;
 }
 
diff --git a/fer/cferbind/cairoCFerBind_textSize.c b/fer/cferbind/cairoCFerBind_textSize.c
new file mode 100644
index 0000000..c46c012
--- /dev/null
+++ b/fer/cferbind/cairoCFerBind_textSize.c
@@ -0,0 +1,110 @@
+/* Python.h should always be first */
+#include <Python.h>
+#include <string.h>
+#include "grdel.h"
+#include "cferbind.h"
+#include "cairoCFerBind.h"
+#include "utf8str.h"
+
+/*
+ * Return the size of the text if drawn to this "Window" using the given font.
+ * Text is a UTF-8 encoding of the desired text, and textlen is length of the 
+ * text array (which may be more than the number of "characters" in the text).  
+ * The value returned at widthptr is amount to advance in X direction to draw 
+ * any subsequent text after this text (not the width of the text glyphs as 
+ * drawn).  The value returned at heightptr is the height for the font 
+ * (recommended line spacing).
+ *
+ * Returns one if successful.   If an error occurs, grdelerrmsg
+ * is assigned an appropriate error message and zero is returned.
+ */
+grdelBool cairoCFerBind_textSize(CFerBind *self, const char *text, int textlen,
+                                 grdelType font, double *widthptr, double *heightptr)
+{
+    CairoCFerBindData *instdata;
+    CCFBFont *fontobj;
+    char *utf8str;
+#ifdef USEPANGOCAIRO
+    PangoLayout *layout;
+    int pangowidth;
+    int pangoheight;
+#else
+    cairo_font_extents_t fontextents;
+    cairo_text_extents_t textextents;
+#endif
+    cairo_status_t result;
+
+    /* Sanity check */
+    if ( (self->enginename != CairoCFerBindName) &&
+         (self->enginename != PyQtCairoCFerBindName) ) {
+        strcpy(grdelerrmsg, "cairoCFerBind_textSize: unexpected error, "
+                            "self is not a valid CFerBind struct");
+        return 0;
+    }
+    instdata = (CairoCFerBindData *) self->instancedata;
+    if ( instdata->context == NULL ) {
+        /* Create the Cairo Surface and Context if they do not exist */
+        if ( ! cairoCFerBind_createSurface(self) ) {
+            /* grdelerrmsg already assigned */
+            return 0;
+        }
+    }
+    fontobj = (CCFBFont *) font;
+    if ( fontobj->id != CCFBFontId ) {
+        strcpy(grdelerrmsg, "cairoCFerBind_textSize: unexpected error, "
+                            "font is not CCFBFont struct");
+        return 0;
+    }
+    if ( textlen < 1 ) {
+        strcpy(grdelerrmsg, "cairoCFerBind_textSize: textlen is not positive");
+        return 0;
+    }
+
+    /* Convert to a null-terminated string */
+    utf8str = (char *) PyMem_Malloc((textlen + 1) * sizeof(char));
+    if ( utf8str == NULL ) {
+        strcpy(grdelerrmsg, "cairoCFerBind_textSize: "
+                            "out of memory for a copy of the text string");
+        return 0;
+    }
+    strncpy(utf8str, text, textlen);
+    utf8str[textlen] = '\0';
+
+    /* Get the extents of this text if drawn using the given font */
+    cairo_save(instdata->context);
+#ifdef USEPANGOCAIRO
+    layout = pango_cairo_create_layout(instdata->context);
+    pango_layout_set_font_description(layout, fontobj->fontdesc);
+    pango_layout_set_text(layout, text, textlen);
+    pango_layout_get_size(layout, &pangowidth, &pangoheight);
+    g_object_unref(layout);
+    *widthptr = (double) pangowidth / PANGO_SCALE;
+    *heightptr = (double) pangoheight / PANGO_SCALE;
+#else
+    cairo_set_font_face(instdata->context, fontobj->fontface);
+    cairo_set_font_size(instdata->context, fontobj->fontsize);
+    cairo_font_extents(instdata->context, &fontextents);
+    cairo_text_extents(instdata->context, utf8str, &textextents);
+    *widthptr = textextents.x_advance;
+    *heightptr = fontextents.height;
+#endif
+    result = cairo_status(instdata->context);
+    cairo_restore(instdata->context);
+
+    PyMem_Free(utf8str);
+
+    /* Convert returned sizes to pixels */
+    if ( instdata->imageformat != CCFBIF_PNG ) {
+        *widthptr *= (instdata->pixelsperinch / 72.0);
+        *heightptr *= (instdata->pixelsperinch / 72.0);
+    }
+
+    if ( result != CAIRO_STATUS_SUCCESS ) {
+        strcpy(grdelerrmsg, "cairoCFerBind_textSize: "
+                            "getting the text size was not successful");
+        return 0;
+    }
+
+    return 1;
+}
+
diff --git a/fer/cferbind/cairoCFerBind_windowScreenInfo.c b/fer/cferbind/cairoCFerBind_windowScreenInfo.c
index 4a81d94..9bc4076 100644
--- a/fer/cferbind/cairoCFerBind_windowScreenInfo.c
+++ b/fer/cferbind/cairoCFerBind_windowScreenInfo.c
@@ -6,8 +6,7 @@
 #include "cairoCFerBind.h"
 
 /*
- * Returns information about the default screen (display) of
- * the window.  In this case (Cairo), these are hard-coded values.
+ * Returns information about the default screen (display) of the window. 
  *
  * If an error occurs, grdelerrmsg is assigned an appropriate 
  * error message and zero is returned; otherwise one is returned.
@@ -16,17 +15,20 @@ grdelBool cairoCFerBind_windowScreenInfo(CFerBind *self,
                         float *dpix, float *dpiy,
                         int *screenwidth, int *screenheight)
 {
+    CairoCFerBindData *instdata;
+
     /* Sanity check - this should NOT be called by the PyQtCairo engine */
     if ( self->enginename != CairoCFerBindName ) {
         strcpy(grdelerrmsg, "cairoCFerBind_windowScreenInfo: unexpected error, "
                             "self is not a valid CFerBind struct");
         return 0;
     }
+    instdata = (CairoCFerBindData *) self->instancedata;
 
-    *dpix = (float) CCFB_WINDOW_DPI;
-    *dpiy = (float) CCFB_WINDOW_DPI;
-    *screenwidth = (int) (20 * CCFB_WINDOW_DPI);
-    *screenheight = (int) (11.25 * CCFB_WINDOW_DPI);
+    *dpix = (float) instdata->pixelsperinch;
+    *dpiy = (float) instdata->pixelsperinch;
+    *screenwidth = (int) (20 * instdata->pixelsperinch);
+    *screenheight = (int) (12 * instdata->pixelsperinch);
     return 1;
 }
 
diff --git a/fer/cferbind/cferbind.h b/fer/cferbind/cferbind.h
index eeaa9d7..8d2bca8 100644
--- a/fer/cferbind/cferbind.h
+++ b/fer/cferbind/cferbind.h
@@ -40,6 +40,7 @@ typedef struct CFerBind_struct {
      grdelBool (*redrawWindow)(struct CFerBind_struct *self, grdelType fillcolor);
      grdelBool (*windowScreenInfo)(struct CFerBind_struct *self, float *dpix, float *dpiy,
                              int *screenwidth, int *screenheight);
+     grdelBool (*setWindowDpi)(struct CFerBind_struct *self, double newdpi);
      grdelBool (*resizeWindow)(struct CFerBind_struct *self,
                                double width, double height);
      grdelBool (*scaleWindow)(struct CFerBind_struct *self, double scale);
@@ -83,6 +84,8 @@ typedef struct CFerBind_struct {
      grdelBool (*drawRectangle)(struct CFerBind_struct *self,
                                 double left, double bottom, double right,
                                 double top, grdelType brush, grdelType pen);
+     grdelBool (*textSize)(struct CFerBind_struct *self, const char *text, int textlen,
+                           grdelType font, double *widthptr, double *heightptr);
      grdelBool (*drawText)(struct CFerBind_struct *self, const char *text, int textlen,
                            double startx, double starty, grdelType font, grdelType color,
                            double rotation);
@@ -93,12 +96,13 @@ typedef struct CFerBind_struct {
  * instance and any other appropriate initialization for this "Window". 
  */
 CFerBind *cferbind_createWindow(const char *enginename, int engnamelen,
-                                const char *windowname, int winnamelen, int visible);
+                                const char *windowname, int winnamelen, 
+                                int visible, int noalpha);
 
 /* The createWindow function for the Cairo engine */
-CFerBind *cairoCFerBind_createWindow(void);
+CFerBind *cairoCFerBind_createWindow(int noalpha);
 /* The createWindow function for the PyQtCairo engine */
 CFerBind *pyqtcairoCFerBind_createWindow(const char *windowname, int windnamelen,
-                                         int visible);
+                                         int visible, int noalpha);
 
 #endif
diff --git a/fer/cferbind/cferbind_createWindow.c b/fer/cferbind/cferbind_createWindow.c
index 670e1da..9b2a3f1 100644
--- a/fer/cferbind/cferbind_createWindow.c
+++ b/fer/cferbind/cferbind_createWindow.c
@@ -27,7 +27,8 @@ const int lenPyQtCairoCFerBindName = 11;
  * error message and NULL is returned.
  */
 CFerBind *cferbind_createWindow(const char *enginename, int engnamelen,
-                                const char *windowname, int winnamelen, int visible)
+                                const char *windowname, int winnamelen, 
+                                int visible, int noalpha)
 {
     CFerBind *bindings;
     int k;
@@ -36,7 +37,7 @@ CFerBind *cferbind_createWindow(const char *enginename, int engnamelen,
     if ( (engnamelen == lenCairoCFerBindName) &&
          (strncmp(enginename, CairoCFerBindName, lenCairoCFerBindName) == 0) ) {
         /* Create a bindings instance for a Cairo engine */
-        bindings = cairoCFerBind_createWindow();
+        bindings = cairoCFerBind_createWindow(noalpha);
         return bindings;
     }
 
@@ -44,7 +45,7 @@ CFerBind *cferbind_createWindow(const char *enginename, int engnamelen,
     if ( (engnamelen == lenPyQtCairoCFerBindName) &&
          (strncmp(enginename, PyQtCairoCFerBindName, lenPyQtCairoCFerBindName) == 0) ) {
         /* Create a bindings instance for a PipedImager engine */
-        bindings = pyqtcairoCFerBind_createWindow(windowname, winnamelen, visible);
+        bindings = pyqtcairoCFerBind_createWindow(windowname, winnamelen, visible, noalpha);
         return bindings;
     }
 
diff --git a/fer/cferbind/pyqtcairoCFerBind_createWindow.c b/fer/cferbind/pyqtcairoCFerBind_createWindow.c
index 30805ec..8f284ac 100644
--- a/fer/cferbind/pyqtcairoCFerBind_createWindow.c
+++ b/fer/cferbind/pyqtcairoCFerBind_createWindow.c
@@ -15,7 +15,7 @@
  * an appropriate error message and NULL is returned.
  */
 CFerBind *pyqtcairoCFerBind_createWindow(const char *windowname, int windnamelen,
-                                         int visible)
+                                         int visible, int noalpha)
 {
     CFerBind *bindings;
     CairoCFerBindData *instdata;
@@ -40,6 +40,7 @@ CFerBind *pyqtcairoCFerBind_createWindow(const char *windowname, int windnamelen
     bindings->clearWindow = pyqtcairoCFerBind_clearWindow;
     bindings->redrawWindow = pyqtcairoCFerBind_redrawWindow;
     bindings->windowScreenInfo = pyqtcairoCFerBind_windowScreenInfo;
+    bindings->setWindowDpi = NULL;
     bindings->resizeWindow = pyqtcairoCFerBind_resizeWindow;
     bindings->scaleWindow = pyqtcairoCFerBind_scaleWindow;
     bindings->showWindow = pyqtcairoCFerBind_showWindow;
@@ -70,6 +71,7 @@ CFerBind *pyqtcairoCFerBind_createWindow(const char *windowname, int windnamelen
     bindings->drawPoints = cairoCFerBind_drawPoints;
     bindings->drawPolygon = cairoCFerBind_drawPolygon;
     bindings->drawRectangle = cairoCFerBind_drawRectangle;
+    bindings->textSize = cairoCFerBind_textSize;
     bindings->drawText = cairoCFerBind_drawText;
 
     /* Create the instance-specific data structure */
@@ -88,9 +90,11 @@ CFerBind *pyqtcairoCFerBind_createWindow(const char *windowname, int windnamelen
     instdata = (CairoCFerBindData *) bindings->instancedata;
     /* Cairo surface type - must be an image surface */
     instdata->imageformat = CCFBIF_PNG;
-    /* default image size and minimum allowed value */
-    instdata->imagewidth = (int) 10.5 * CCFB_WINDOW_DPI;
-    instdata->imageheight = (int) 8.5 * CCFB_WINDOW_DPI;
+    /* default DPI, image size, line width scaling factor, and minimum allowed value */
+    instdata->pixelsperinch = 96;
+    instdata->imagewidth = (int) (10.2 * instdata->pixelsperinch);
+    instdata->imageheight = (int) (8.8 * instdata->pixelsperinch);
+    instdata->widthfactor = 0.72 * instdata->pixelsperinch / 72.0;
     instdata->minsize = 128;
     /* default clear color of opaque white */
     instdata->lastclearcolor.id = CCFBColorId;
@@ -99,7 +103,9 @@ CFerBind *pyqtcairoCFerBind_createWindow(const char *windowname, int windnamelen
     instdata->lastclearcolor.bluefrac = 1.0;
     instdata->lastclearcolor.opaquefrac = 1.0;
     /* default line width scaling factor */
-    instdata->widthfactor = CCFB_WINDOW_DPI * 0.75 / 72.0;
+
+    /* save the decision about the alpha channel */
+    instdata->noalpha = noalpha;
 
     /*
      * Get bindings to PipedImagerPQ for displaying the image.
@@ -107,7 +113,7 @@ CFerBind *pyqtcairoCFerBind_createWindow(const char *windowname, int windnamelen
      * PipedImager methods interacting with the viewer.
      */
     instdata->viewer = grdelWindowCreate("PipedImagerPQ", 13, windowname,
-                                         windnamelen, visible);
+                                         windnamelen, visible, noalpha);
     if ( instdata->viewer == NULL ) {
         /* grdelerrmsg already assigned */
         PyMem_Free(bindings->instancedata);
diff --git a/fer/cferbind/pyqtcairoCFerBind_updateWindow.c b/fer/cferbind/pyqtcairoCFerBind_updateWindow.c
index 063bb8e..108a02e 100644
--- a/fer/cferbind/pyqtcairoCFerBind_updateWindow.c
+++ b/fer/cferbind/pyqtcairoCFerBind_updateWindow.c
@@ -73,8 +73,12 @@ grdelBool pyqtcairoCFerBind_updateWindow(CFerBind *self)
 
     if ( instdata->firstpic != NULL ) {
         /* create a temporary surface to combine all the pictures */
-        savesurface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32,
-                            instdata->imagewidth, instdata->imageheight);
+        if ( instdata->noalpha )
+            savesurface = cairo_image_surface_create(CAIRO_FORMAT_RGB24,
+                                instdata->imagewidth, instdata->imageheight);
+        else
+            savesurface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32,
+                                instdata->imagewidth, instdata->imageheight);
         if ( cairo_surface_status(savesurface) != CAIRO_STATUS_SUCCESS ) {
             strcpy(grdelerrmsg, "pyqtCairoCFerBind_updateWindow: problems "
                                 "creating a combined pictures image surface");
diff --git a/fer/common/ferret.parm b/fer/common/ferret.parm
index 18f349b..c3c7465 100644
--- a/fer/common/ferret.parm
+++ b/fer/common/ferret.parm
@@ -38,6 +38,11 @@
 *		  added patnam_sigma, patnam_curvx, patnam_curvy
 * 		  turned max_context into a variable to allow aux frames above it
 * V692 7/14 *acm* new transform @WGT, ticket 2180
+* V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
+*       12/14 *sh* _DQ_ and _SQ_ alternatives to double and single quote marks
+*        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
 
 * this should always match maxdsets in TMAP_FORMAT:
 	INTEGER		max_gfdl_dsets
@@ -139,8 +144,9 @@
      .			cat_temp_var, cat_pseudo_var,
      .			cat_constant, cat_file_rev,
      .			cat_const_var,   cat_string,
-     .                  cat_counter_var, cat_attrib_val,
-     .                  cat_aggregate_var, cat_pystat_var
+     .			cat_counter_var, cat_attrib_val,
+     .			cat_agg_e_var, cat_agg_f_var,
+     .			cat_pystat_var
 	PARAMETER     ( cat_work_mr  = -9,
      .			cat_file_var = 1,
      .			cat_calc_var = 2,
@@ -156,8 +162,9 @@
      .			cat_string     = 12,
      .			cat_counter_var= 13,
      .			cat_attrib_val = 14,
-     .			cat_aggregate_var= 15,
-     .                  cat_pystat_var = 16 )
+     .			cat_agg_e_var  = 15,
+     .			cat_agg_f_var  = 16,
+     .			cat_pystat_var = 17 )
 
 * codes referring to the user-defined variables
 	INTEGER		uvar_deleted,
@@ -282,7 +289,9 @@
      .                  trans_4d_good_pt,
      .                  trans_4d_bad_pt,
      .                  trans_reduced,
-     .                  trans_4d_sum
+     .                  trans_4d_sum,
+     .			trans_smth_box_p,
+     .                  trans_4d_std
 	INTEGER		trans_nrst_dist_abv,
      .			trans_nrst_dist_blw,
      .			trans_nrst_indx_abv,
@@ -319,7 +328,8 @@
      .			trans_event_mask    = 26,
      .			trans_avg_wgt       = 27,
      .			trans_4d_avg_wgt    = 28,
-     .			max_plane_transform = trans_4d_avg_wgt )
+     .			trans_smth_box_p    = 29,
+     .			max_plane_transform = trans_smth_box_p )
 
 	PARAMETER     ( trans_average      = trans_compress_code + 1,
      .			trans_interpolate  = trans_compress_code + 2,
@@ -339,7 +349,8 @@
      .                  trans_4d_bad_pt	   = trans_compress_code + 16,
      .                  trans_reduced 	   = trans_compress_code + 17,
      .                  trans_4d_sum 	   = trans_compress_code + 18,
-     .                  trans_std_dev      = trans_compress_code + 19)
+     .                  trans_std_dev      = trans_compress_code + 19,
+     .                  trans_4d_std       = trans_compress_code + 20)
 
 * codes to designate regridding transformations
 ! unused but required to compile V4.11 code:
@@ -366,6 +377,8 @@
      .			prgrd_modmin,
      .			prgrd_modmax,
      .			prgrd_nearest,
+     .			prgrd_bin,
+     .			prgrd_nbin,
      .			prgrd_from_source,
      .			prgrd_from_ntrmed,
      .			pinterpolate
@@ -390,6 +403,8 @@
      .			prgrd_modmin		= 17,
      .			prgrd_modmax		= 18,
      .			prgrd_nearest		= 19,
+     .			prgrd_bin		= 21,
+     .			prgrd_nbin		= 22,
      .			prgrd_from_source	= -6,
      .			prgrd_from_ntrmed	= -7,
      .			pinterpolate		= 0 )
@@ -399,32 +414,39 @@
      .			pauxrgrd_linear,
      .			pauxrgrd_average,
      .			pauxrgrd_pwlave,
-     .			pauxrgrd_thick_ave
+     .			pauxrgrd_thick_ave,
+     .			pauxrgrd_fmrc
 	PARAMETER     (	max_auxregrid_trans= max_regrid_trans+6,
      .			pauxrgrd_linear    = max_regrid_trans+1,
      .			pauxrgrd_average   = max_regrid_trans+2,
      .			pauxrgrd_pwlave    = max_regrid_trans+3,
-     .			pauxrgrd_thick_ave = max_regrid_trans+4 )
+     .			pauxrgrd_thick_ave = max_regrid_trans+4,
+     .			pauxrgrd_fmrc      = max_regrid_trans+5 )
 
 * auxiliary variable pointer merging
+* 	paux_stat_init     - initialize to 0
 *	paux_stat_na	   - no inherited aux coord
 *	paux_stat_passed   - aux coords inherited passively
 *	paux_stat_needed   - aux coords inherited and desired in graphics
 *	paux_stat_used	   - aux coords inherited but already regridded
 *	paux_stat_conflict - vars w differing aux coordinates in one expression
 *	paux_stat_notfound - named aux var not found in this dataset
-	INTEGER		paux_stat_na     ,
+	INTEGER		paux_stat_init ,
+     .                  paux_stat_na     ,
      .			paux_stat_passed ,
      .			paux_stat_needed ,
      .			paux_stat_used   ,
      .			paux_stat_conflict,
-     .			paux_stat_notfound
-	PARAMETER     ( paux_stat_na       = 1,
+     .			paux_stat_notfound,
+     .			paux_stat_false_1pt_regrid
+	PARAMETER     ( paux_stat_init     = 0,
+     .                  paux_stat_na       = 1,
      .			paux_stat_passed   = 2,
      .			paux_stat_needed   = 3,
      .			paux_stat_used     = 4,
      .			paux_stat_conflict = 5,
-     .			paux_stat_notfound = 6)
+     .			paux_stat_notfound = 6,
+     .			paux_stat_false_1pt_regrid = 7 )
 
 * codes to designate classes of items used within algebraic expressions
 	INTEGER		alg_operator,
@@ -514,6 +536,14 @@
 	INTEGER		pdset_irrelevant
 	PARAMETER     (	pdset_irrelevant = 0 )
 
+* virtual dataset containing user-defined variables, used in attribute handling
+	INTEGER		pdset_uvars
+	PARAMETER     (	pdset_uvars = -1 )
+
+* virtual dataset containing user-defined axes (coord vars), used in attribute handling
+	INTEGER		pdset_coordvars
+	PARAMETER     (	pdset_coordvars = -2 )
+
 * pointers to the 7 fundamental axes of the Cox/Phil./Sieg. model
 * eg mxt points to the X axis used by TEMP (and SALT, TAU, etc.)
 	INTEGER		mtime, mxt, mxu, myt, myu, mzt, mzw
@@ -694,7 +724,13 @@
      .			pinfer_frm_aux = -123455 )
 
 * special attribute names
-	CHARACTER*11	patnam_sigma, patnam_curvx, patnam_curvy
-	PARAMETER     ( patnam_sigma = '__SigmaRef_',
-     .		        patnam_curvx = '__CurvxRef_',
-     .		        patnam_curvy = '__CurvxRef_'  )
\ No newline at end of file
+	CHARACTER*12	patnam_layerz, patnam_curvx, patnam_curvy
+	PARAMETER     ( patnam_layerz = '__LayerzRef_',
+     .		        patnam_curvx  = '__CurvxRef_',
+     .		        patnam_curvy  = '__CurvyRef_'  )
+
+* alternative quotation atoms
+	CHARACTER*4	p_DQ_quote, p_SQ_quote
+	PARAMETER     ( p_DQ_quote = '_DQ_',
+     .		        p_SQ_quote = '_SQ_'  )
+
diff --git a/fer/common/fgrdel.cmn b/fer/common/fgrdel.cmn
index a7a9202..9799dfd 100644
--- a/fer/common/fgrdel.cmn
+++ b/fer/common/fgrdel.cmn
@@ -53,6 +53,9 @@
 * Scaling factor for line widths and symbol sizes
         REAL*4 thickfactor(maxwindowobjs)
 
+* Width of outlines for rectangles and other polygons
+        REAL*4 outlinewidth(maxwindowobjs)
+
 * Coordinate transformation information (independent of window)
 * View limits defined in [0,1] normalized device coordinates
         REAL*4 viewleftfrac(maxtransforms),
@@ -147,7 +150,7 @@
      .         penobjs, symbolobjs, 
      .
      .         colorrgba, symbolsize, windowdpix, windowdpiy, 
-     .         thickfactor, windowwidth, windowheight, 
+     .         thickfactor, outlinewidth, windowwidth, windowheight, 
      .         ndcxmax, ndcymax, viewleftfrac, viewbottomfrac, 
      .         viewrightfrac, viewtopfrac, viewleftcoord, 
      .         viewbottomcoord, viewrightcoord, viewtopcoord, 
diff --git a/fer/common/interp_stack.parm b/fer/common/interp_stack.parm
index ba1014e..3abc02b 100644
--- a/fer/common/interp_stack.parm
+++ b/fer/common/interp_stack.parm
@@ -6,6 +6,7 @@
 * V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
 * 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
 
 * minimum working space provided to transformations
 	INTEGER		iswksiz
@@ -103,6 +104,7 @@
      .			isact_smth_median,
      .			isact_smth_min,
      .			isact_smth_box,
+     .			isact_smth_box_p,
      .			isact_smth_binml,
      .			isact_smth_hanng,
      .			isact_smth_parzn,
@@ -132,7 +134,8 @@
      .			isact_nrst_indx_blw,
      .			isact_event_mask,
      .			isact_avg_wgt,
-     .			isact_avg_4d_wgt
+     .			isact_avg_4d_wgt,
+     .			isact_std_4d
 
 	PARAMETER (
      .		isact_interp		= isact_trans_code + trans_interpolate,
@@ -145,6 +148,7 @@
      .		isact_max		= isact_trans_code + trans_max,
      .		isact_min		= isact_trans_code + trans_min,
      .		isact_smth_box		= isact_trans_code + trans_smth_box,
+     .		isact_smth_box_p	= isact_trans_code + trans_smth_box_p,
      .		isact_smth_binml	= isact_trans_code + trans_smth_binml,
      .		isact_smth_hanng	= isact_trans_code + trans_smth_hanng,
      .		isact_smth_parzn	= isact_trans_code + trans_smth_parzn,
@@ -178,7 +182,8 @@
      .		isact_nrst_indx_blw = isact_trans_code + trans_nrst_indx_blw,
      .		isact_event_mask    = isact_trans_code + trans_event_mask,
      .		isact_avg_wgt       = isact_trans_code + trans_avg_wgt,
-     .		isact_avg_4d_wgt    = isact_trans_code + trans_4d_avg_wgt)
+     .		isact_avg_4d_wgt    = isact_trans_code + trans_4d_avg_wgt,
+     .		isact_std_4d		= isact_trans_code + trans_4d_std)
 
 * classes of stack objects
 	INTEGER		isobj_uvar,
diff --git a/fer/common/rpn.parm b/fer/common/rpn.parm
index 70f5a3a..bb29a18 100644
--- a/fer/common/rpn.parm
+++ b/fer/common/rpn.parm
@@ -11,6 +11,7 @@
 * 12/98 - *sh*  increased num_state and num_class to add {1,3,5} notation
 *  1/99 - *sh*  increased num_state and num_class to add string variables
 * V530  10/00 - *sh*  increased maxatoms and max_exp
+* V693+ 12/14 *sh* allow _QD_ and _SQ_ for quotation alternatives 
 
 	integer		maxatoms,
      .			max_fcn,
@@ -41,5 +42,5 @@
      .			right_paren		= 3,
      .			inf_flg 		= 1,
      .			stk_flg 		= 2,
-     .			num_state		= 12,
-     .			num_class		= 15 )
+     .			num_state		= 16,
+     .			num_class		= 16 )
diff --git a/fer/common/slash.parm b/fer/common/slash.parm
index 9696853..0192e7a 100644
--- a/fer/common/slash.parm
+++ b/fer/common/slash.parm
@@ -64,6 +64,13 @@
 * V690 12/13 *sh* /SIGMA and /CURVILINEAR
 * V687  3/14 *acm* add SET AXIS/NAME
 * V691+ 8/14 *acm* Fix ticket 2194: SHOW with /OUTFILE and not /XML. 
+* V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
+* V6.95 *acm* 3/15 Changes for PyFerret fonts. Add SET TEXT, SHOW TEXT,
+*                  CANCEL TEXT
+* 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)
+
 
 * command qualifier states
 	INTEGER		qual_on,
@@ -104,11 +111,20 @@
      .			slash_canc_data_noerr,
      .
      .			slash_canc_var_data,
-     .			slash_canc_var_sigma,
+     .			slash_canc_var_layerz,
      .			slash_canc_var_curvi,
+     .			slash_canc_var_noerr,
      .
      .			slash_canc_attr_output,
-     .			slash_canc_attr_data
+     .			slash_canc_attr_data,
+     .
+     .			slash_canc_text_font,
+     .			slash_canc_text_color,
+     .			slash_canc_text_italic,
+     .			slash_canc_text_bold,
+     .			slash_canc_text_isiz,
+     .			slash_canc_text_all
+
 
 	INTEGER	
      .			slash_set_movie_out,
@@ -127,7 +143,7 @@
      .			slash_show_var_append,
      .			slash_show_var_clobber,
      .			slash_show_var_tree,
-     .			slash_show_var_sigma,
+     .			slash_show_var_layerz,
      .			slash_show_var_curvi,
      .
      .			slash_show_grid_x0,
@@ -167,7 +183,7 @@
      .			slash_list_endian,
      .			slash_list_outtype,
      .			slash_list_curvi,
-     .			slash_list_sigma
+     .			slash_list_layerz
 
 	INTEGER		
      .			slash_set_data_ez,
@@ -195,7 +211,7 @@
      .			slash_set_var_scale,
      .			slash_set_var_offset,
      .			slash_set_var_outtype,
-     .			slash_set_var_sigma,
+     .			slash_set_var_layerz,
      .			slash_set_var_curvi,
      .
      .			slash_set_grid_save,
@@ -228,6 +244,13 @@
      .                  slash_set_redirect_append,
      .                  slash_set_redirect_clobber
 
+	INTEGER		
+     .			slash_set_text_font,
+     .			slash_set_text_color,
+     .			slash_set_text_italic,
+     .			slash_set_text_bold,
+     .			slash_set_text_isiz
+
 	INTEGER		slash_cont_over_plot,
      .			slash_cont_set_up,
      .			slash_cont_frame,
@@ -323,6 +346,7 @@
      .			slash_plot_spectrum,
      .			slash_plot_fast,
      .			slash_plot_missing,
+     .			slash_plot_gap,
      .                  slash_plot_opacity
 
 	INTEGER		slash_wire_over,
@@ -402,12 +426,20 @@
      .			slash_canc_data_noerr  = 2,
      .
      .			slash_canc_var_data	= 2,
-     .			slash_canc_var_sigma	= 3,
+     .			slash_canc_var_layerz	= 3,
      .			slash_canc_var_curvi	= 4,
+     .			slash_canc_var_noerr	= 5,
      .
      .			slash_canc_attr_output	= 1,
      .			slash_canc_attr_data	= 2,
      .
+     .			slash_canc_text_font     = 1,
+     .                  slash_canc_text_color    = 2,
+     .                  slash_canc_text_italic   = 3,
+     .                  slash_canc_text_bold     = 4,
+     .                  slash_canc_text_isiz     = 5,
+     .                  slash_canc_text_all      = 6,
+     .
      .			slash_set_movie_out    = 1,
      .			slash_set_movie_compress = 2,
      .			slash_set_movie_laser  = 3,
@@ -420,7 +452,7 @@
      .			slash_show_var_append = 7,
      .			slash_show_var_clobber = 8,
      .			slash_show_var_tree = 9,
-     .			slash_show_var_sigma = 10,
+     .			slash_show_var_layerz = 10,
      .			slash_show_var_curvi = 11,
      .
      .			slash_show_grid_x0 = 7,
@@ -463,7 +495,7 @@
      .			slash_list_endian  = 1+52,
      .			slash_list_outtype = 1+53,
      .			slash_list_curvi   = 1+54,
-     .			slash_list_sigma   = 1+55 )
+     .			slash_list_layerz   = 1+55 )
 
 	PARAMETER     (
      .			slash_set_data_ez	= 1,
@@ -491,7 +523,7 @@
      .			slash_set_var_scale	= 7,
      .			slash_set_var_offset	= 8,
      .			slash_set_var_outtype	= 9,
-     .			slash_set_var_sigma	= 10,
+     .			slash_set_var_layerz	= 10,
      .			slash_set_var_curvi	= 11,
      .
      .			slash_set_grid_save	= 1,
@@ -523,7 +555,14 @@
      .                  slash_set_redirect_journal = 2,
      .                  slash_set_redirect_file    = 3,
      .                  slash_set_redirect_append  = 4,
-     .                  slash_set_redirect_clobber = 5 )
+     .                  slash_set_redirect_clobber = 5)
+
+	PARAMETER     (
+     .                  slash_set_text_font     = 1,
+     .                  slash_set_text_color    = 2,
+     .                  slash_set_text_italic   = 3,
+     .                  slash_set_text_bold     = 4,
+     .                  slash_set_text_isiz     = 5)
 
 	PARAMETER     ( slash_cont_over_plot	= 1+12,
      .			slash_cont_set_up	= 1+13,
@@ -620,7 +659,8 @@
      .			slash_plot_spectrum 	= 1+44,
      .			slash_plot_fast 	= 1+45,
      .			slash_plot_missing 	= 1+46,
-     .                  slash_plot_opacity      = 1+47 )
+     .			slash_plot_gap	 	= 1+47,
+     .                  slash_plot_opacity      = 1+48)
 
 	PARAMETER     ( slash_wire_over		= 1+12,
      .			slash_wire_set_up	= 1+13,
@@ -701,3 +741,24 @@
      .			slash_polygon_mod    = 1 + 41,
      .                  slash_polygon_opacity = 1 + 42 )
 
+
+
+        INTEGER		slash_annotate_user,
+     .			slash_annotate_norm,
+     .			slash_annotate_nouser,
+     .			slash_annotate_xpos,
+     .			slash_annotate_ypos,
+     .			slash_annotate_valign,
+     .			slash_annotate_halign,
+     .			slash_annotate_angle,
+     .			slash_annotate_size
+     
+	PARAMETER     ( slash_annotate_user   = 0 + 1,
+     .			slash_annotate_norm   = 1 + 1,
+     .			slash_annotate_nouser = 2  + 1,
+     .			slash_annotate_xpos   = 3 + 1,
+     .			slash_annotate_ypos   = 4 + 1,
+     .			slash_annotate_halign = 5 + 1,
+     .			slash_annotate_valign = 6 + 1,
+     .			slash_annotate_angle  = 7 + 1,
+     .			slash_annotate_size   = 8 + 1)
diff --git a/fer/common/xcommand.cmn b/fer/common/xcommand.cmn
index 8fb710b..8a2a66e 100644
--- a/fer/common/xcommand.cmn
+++ b/fer/common/xcommand.cmn
@@ -49,6 +49,11 @@
 * PyFr *kms*  7/13 Add /THICKEN to SET WINDOW to specify line thickness scaling factor
 * 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
+
 
 * PARAMETERS are used to store numbers of subcommands and qualifiers for use
 * in BLOCK DATA XCOMMAND_DATA.  They are also used to compute pointers into
@@ -123,7 +128,7 @@
      .			nqual1o = 3, nqual_at1p = nqual_at1o + nqual1o,	!'NCCACHE'
      .			nqual1p = 8, nqual_at1q = nqual_at1p + nqual1p,	!'REDIRECT'
      .			nqual1q = 0, nqual_at1r = nqual_at1q + nqual1q,	!'GIFFILE'
-     .			nqual1r = 4, nqual_at1s = nqual_at1r + nqual1r,	!'****'
+     .			nqual1r = 6, nqual_at1s = nqual_at1r + nqual1r,	!'TEXT'
      .			nqual1s = 4, nqual_at1t = nqual_at1s + nqual1s,	!'****'
      .			nqual1t = 4, nqual_at2a = nqual_at1t + nqual1t	!'****'
      .		      )
@@ -152,7 +157,8 @@
      .			nqual2s    , nqual_at2t,
      .			nqual2t    , nqual_at2u,
      .			nqual2u    , nqual_at2v,
-     .			nqual2v    , nqual_at3a
+     .			nqual2v    , nqual_at2w,
+     .			nqual2w    , nqual_at3a
 	PARAMETER    (	nsub2   =22, nsub_at3   = nsub_at2   + nsub2,
      .			nqual2a = 1, nqual_at2b = nqual_at2a + nqual2a,	!'    '
      .			nqual2b = 1, nqual_at2c = nqual_at2b + nqual2b,	!'WIND'
@@ -174,10 +180,12 @@
      .			nqual2r = 3, nqual_at2s = nqual_at2r + nqual2r,	!'ATTR'
      .			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 = 3, nqual_at3a = nqual_at2v + nqual2v	!'QUER'
+     .			nqual2u = 7, nqual_at2v = nqual_at2u + nqual2u, !'FUNC'
+     .                  nqual2v = 1, nqual_at2w = nqual_at2v + nqual2v, !'TEXT' 
+     .                  nqual2w = 3, nqual_at3a = nqual_at2w + nqual2w  !'QUER' 
      .		      )
 
+
 * CANCEL 	 - commmand # 3
 	INTEGER		nsub3      , nsub_at4  ,
      .			nqual3a    , nqual_at3b,
@@ -220,7 +228,7 @@
      .			nqual3q = 1, nqual_at3r = nqual_at3q + nqual3q,	!'SYMBOL'
      .			nqual3r = 1, nqual_at3s = nqual_at3r + nqual3r,	!'NCCACHE'
      .			nqual3s = 3, nqual_at3t = nqual_at3s + nqual3s,	!'PYVAR'
-     .			nqual3t = 3, nqual_at4a = nqual_at3t + nqual3t	!'****'
+     .			nqual3t = 7, nqual_at4a = nqual_at3t + nqual3t	!'TEXT'
      .		      )
 
 * CONTOUR	 - commmand # 4
@@ -239,7 +247,7 @@
 	INTEGER		nsub6      , nsub_at7  ,
      .			nqual6a    , nqual_at7a
 	PARAMETER    (	nsub6   = 1, nsub_at7   = nsub_at6   + nsub6,
-     .			nqual6a =48, nqual_at7a = nqual_at6a + nqual6a  )
+     .			nqual6a =49, nqual_at7a = nqual_at6a + nqual6a  )
 
 * GO		 - commmand # 7
 	INTEGER		nsub7      , nsub_at8   ,
@@ -271,8 +279,9 @@
      .			nqual10h    , nqual_at10i,
      .			nqual10i    , nqual_at10j,
      .			nqual10j    , nqual_at10k,
-     .			nqual10k    , nqual_at11a
-	PARAMETER    (	nsub10   =11, nsub_at11   = nsub_at10   + nsub10,
+     .			nqual10k    , nqual_at10l,
+     .			nqual10l    , nqual_at11a
+	PARAMETER    (	nsub10   =12, nsub_at11   = nsub_at10   + nsub10,
      .			nqual10a = 0, nqual_at10b = nqual_at10a + nqual10a,!'  '
      .			nqual10b =26, nqual_at10c = nqual_at10b + nqual10b,!REGI
      .			nqual10c =11, nqual_at10d = nqual_at10c + nqual10c,!GRID
@@ -283,7 +292,8 @@
      .			nqual10h = 2, nqual_at10i = nqual_at10h + nqual10h,!SYMB
      .			nqual10i = 4, nqual_at10j = nqual_at10i + nqual10i,!ATTR
      .			nqual10j = 2, nqual_at10k = nqual_at10j + nqual10j,!PYFUNC
-     .			nqual10k =10, nqual_at11a = nqual_at10k + nqual10k !DATA
+     .			nqual10k =10, nqual_at10l = nqual_at10k + nqual10k, !DATA
+     .			nqual10l =10, nqual_at11a = nqual_at10l + nqual10l !ANNOTATION
      .		      )
 * EXIT		 - commmand # 11
 	INTEGER		nsub11      , nsub_at12  ,
@@ -387,11 +397,11 @@
 	PARAMETER    (	nsub27   = 1, nsub_at28    = nsub_at27   + nsub27,
      .			nqual27a = 44,nqual_at28a  = nqual_at27a + nqual27a  )
 
-* ****/****/**** - command number 28
+* ANNOTATE - command number 28
 	INTEGER		nsub28       , nsub_at29 ,
      .			nqual28a     ,nqual_at29a
 	PARAMETER    (	nsub28   = 1, nsub_at29    = nsub_at28   + nsub28,
-     .			nqual28a = 2,nqual_at29a  = nqual_at28a + nqual28a  )
+     .			nqual28a = 12,nqual_at29a  = nqual_at28a + nqual28a  )
 
 * ****/****/**** - command number 29
 	INTEGER		nsub29       , nsub_at30 ,
@@ -416,7 +426,7 @@
      .			total_num_commands	= 30,
      .			total_num_subcommands	= nsub_at31 - 1,
      .			total_num_qualifiers	= nqual_at31a - 1,
-     .	                num_predefined_alias    = 23,
+     .	                num_predefined_alias    = 24,
      .			max_queries		= 50 )
 
 * declarations
diff --git a/fer/common/xcontext.cmn b/fer/common/xcontext.cmn
index 86bf1bb..2f2a367 100644
--- a/fer/common/xcontext.cmn
+++ b/fer/common/xcontext.cmn
@@ -18,6 +18,9 @@
 * V690 12/13 *sh* added cx_implicit_aux, cx_aux_given, cx_g_eq_regrid,
 *		 cx_aux_stat for automated curvilinear regridding
 *	         max_context made a variable to allow frames above it
+* V693+ added cx_vtree* vars for ticket #2195 - reporting regridding dependency
+* V694 cx_calendar needs to be 6-D to handle F and T calendar time
+* V6.95 *acm* 3/15 Changes for PyFerret fonts. Add SET TEXT, SHOW TEXT
 
 * the declarations below represent a stack of depth max_context for saving
 * the nested contexts.  The bottom few entries in the stack have special uses:
@@ -79,6 +82,10 @@
      .		cx_trans	 ( nferdims, min_context:max_cx ),
      .		cx_regrid_trans  ( nferdims, max_cx )
 	INTEGER	cx_stack_ptr,
+     .		cx_vtree_var_or_start( nferdims ),
+     .		cx_vtree_cat_or_end  ( nferdims ),
+     .		cx_vtree_regrid_dset ( nferdims ),
+     .		cx_vtree_regrid_ntarget,
      .		cx_data_set ( max_cx ),
      .		cx_category ( max_cx ),
      .		cx_variable ( max_cx ),
@@ -92,11 +99,12 @@
      .		cx_aux_cat  (nferdims, max_cx),
      .		cx_aux_stat (nferdims, max_cx )
 
-	LOGICAL	cx_unstand_grid	( max_cx ),
+	LOGICAL	cx_vtree_unknown_grid( nferdims ),
+     .     	cx_unstand_grid	( max_cx ),
      .		cx_by_ss	( nferdims, min_context:max_cx ),
      .		cx_given	( nferdims, min_context:max_cx ),
      .		cx_dset_gvn	( max_cx ),
-     .		cx_calendar	( min_context:max_cx ),
+     .		cx_calendar	( nferdims, min_context:max_cx ),
      .		cx_grid_needs_dset,
      .		cx_aux_given    ( nferdims, max_cx ),
      .		cx_g_eq_regrid  ( nferdims),
@@ -127,6 +135,11 @@
      .		cx_data_set,
      .		cx_category,
      .		cx_variable,
+     .		cx_vtree_var_or_start,
+     .		cx_vtree_cat_or_end,
+     .		cx_vtree_regrid_dset,
+     .		cx_vtree_regrid_ntarget,
+     .		cx_vtree_unknown_grid,
      .		cx_naux,
      .		cx_aux_var,
      .		cx_aux_cat,
diff --git a/fer/common/xcontrol.cmn b/fer/common/xcontrol.cmn
index b7a3a93..470f8f4 100644
--- a/fer/common/xcontrol.cmn
+++ b/fer/common/xcontrol.cmn
@@ -14,6 +14,7 @@
 *                  for repeat command.
 * 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.
 
 	INTEGER		cs_max
 	PARAMETER     (	cs_max = 200 )
@@ -21,7 +22,8 @@
 	LOGICAL	cs_in_control,
      .		cs_by_ss( cs_max ),
      .		cs_save_by_ss( cs_max ),
-     .          cs_is_calendar(cs_max),
+     .          cs_is_calendar_f(cs_max),
+     .          cs_is_calendar_t(cs_max),
      .		has_continuation_cmnd,
      .          bumped
 	INTEGER	csp,			! control stack pointer
@@ -65,12 +67,10 @@
      .		cs_lun     ,
      .		cs_text ,
      .		cmnd_copy ,
-     .          cs_is_calendar,
+     .          cs_is_calendar_t,
+     .          cs_is_calendar_f,
      .          cs_repeatname,
      .		has_continuation_cmnd,
      .		bumped,
      .		len_cmnd_copy,
      .          my_cbuff
-
-
-
diff --git a/fer/common/xdependency_tree.cmn b/fer/common/xdependency_tree.cmn
index 5a2772f..dad4ec6 100644
--- a/fer/common/xdependency_tree.cmn
+++ b/fer/common/xdependency_tree.cmn
@@ -33,6 +33,10 @@
 	INTEGER		dependency_nfields
 	PARAMETER     ( dependency_nfields = 9 )
 
+* special flag for report of a regrid dependency, rather than a variable
+	INTEGER		pcx_vtree_regrid_report
+	PARAMETER     ( pcx_vtree_regrid_report = -12345 )
+
 * dependency flag values -- ordered by increasing error severity
 	INTEGER		df_defined_earlier,
      .			df_valid_aux_var, 
diff --git a/fer/common/xprog_state.cmn b/fer/common/xprog_state.cmn
index ed0c831..9012b10 100644
--- a/fer/common/xprog_state.cmn
+++ b/fer/common/xprog_state.cmn
@@ -40,7 +40,7 @@
 *                   mode_ensemble_lab, and mode_forecast_lab;
 *                   add E and F dimensions to ax_fmt and ax_dec_pt (set to nferdims)
 *       *acm* 4/12 Add new MODE FOURDEE to allow E,F,M,N,etc as user-vars
-* V6.8  *acm  6/12 Implement mode_6d_lab, set by default. If canceled, the 
+* V6.8  *acm  6/12 Implement mode_F_LAB, set by default. If canceled, the 
 *                 various SHOW commnands will not list info for E,F dimensions.
 *                 Remove mode_ensemble_lab, and mode_forecast_lab.
 *acm* 4/12 Remove MODE FOURDEE, using _E, _F, _M, _N instead, throughout.
@@ -48,6 +48,9 @@
 *acm* 8/12 New MODE shrink_ylab, see tickets 1896, 1958.
 * V685 *sh* 11/13 - added allowed_err. SHOW VAR/TREE to display despite errors
 * V690 *sh* 12/13 - added mode_auto_*, for automated curvilinear and sigma vars
+* V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
+*                  added ifstk_skipping
+* V695  *acm* 5/15 logical flag its_pyferret 
 
 	INTEGER		cmnd_buff_len, max_qual_list, max_arg_list,
      .			max_item_list, max_modes, mode_stack_size,
@@ -68,14 +71,14 @@
 	INTEGER		pmode_diagnostic, pmode_verify, pmode_interpolate,
      .			pmode_ignore_err, pmode_stupid, pmode_journal,
      .			pmode_long_lab, pmode_lat_lab, pmode_depth_lab,
-     .			pmode_time_lab, pmode_6d_lab,
+     .			pmode_time_lab, pmode_E_LAB, pmode_F_LAB,
      .			pmode_segment, pmode_font_ascii, pmode_wait,
      .			pmode_reject, pmode_desperate, pmode_rpn,
      .			pmode_gks, pmode_xwindows, pmode_metafile,
      .			pmode_ppllist, pmode_gui, pmode_logo, pmode_labels,
      .                  pmode_grat, pmode_linecolors, pmode_upcase_output,
      .                  pmode_nlevels, pmode_nodata_lab, pmode_shrink_ylab,
-     .                  pmode_curvilinear, pmode_sigma
+     .                  pmode_curvilinear, pmode_layerz, pmode_6d_lab
 
 	PARAMETER     ( pmode_diagnostic	= 1,
      .			pmode_verify		= 2,
@@ -87,29 +90,31 @@
      .			pmode_lat_lab		= 8,
      .			pmode_depth_lab		= 9,
      .			pmode_time_lab		= 10,
-     .			pmode_6d_lab		= 11,
-     .			pmode_font_ascii	= 12,
-     .			pmode_segment		= 13,
-     .			pmode_wait		= 14,
-     .			pmode_reject		= 15,
-     .			pmode_desperate		= 16 )
+     .			pmode_e_lab		= 11,
+     .			pmode_f_lab		= 12,
+     .			pmode_font_ascii	= 13,
+     .			pmode_segment		= 14,
+     .			pmode_wait		= 15,
+     .			pmode_reject		= 16,
+     .			pmode_desperate		= 17 )
 	PARAMETER     ( 
-     .			pmode_rpn		= 17,
-     .			pmode_gks		= 18,
-     .			pmode_xwindows		= 19,
-     .			pmode_metafile		= 20,
-     .			pmode_ppllist		= 21,
-     .			pmode_gui		= 22,
-     .			pmode_logo		= 23,
-     .			pmode_labels		= 24,
-     .			pmode_grat		= 25,
-     .                  pmode_linecolors        = 26,
-     .                  pmode_upcase_output     = 27,
-     .                  pmode_nlevels           = 28,
-     .                  pmode_nodata_lab        = 29,
-     .                  pmode_shrink_ylab       = 30,
-     .			pmode_curvilinear	= 31,
-     .			pmode_sigma		= 32 )
+     .			pmode_rpn		= 18,
+     .			pmode_gks		= 19,
+     .			pmode_xwindows		= 20,
+     .			pmode_metafile		= 21,
+     .			pmode_ppllist		= 22,
+     .			pmode_gui		= 23,
+     .			pmode_logo		= 24,
+     .			pmode_labels		= 25,
+     .			pmode_grat		= 26,
+     .                  pmode_linecolors        = 27,
+     .                  pmode_upcase_output     = 28,
+     .                  pmode_nlevels           = 29,
+     .                  pmode_nodata_lab        = 30,
+     .                  pmode_shrink_ylab       = 31,
+     .			pmode_curvilinear	= 32,
+     .			pmode_layerz		= 33,
+     .			pmode_6d_lab		= 34 )
 
 	CHARACTER	pmode_unused*10
 	PARAMETER     ( pmode_unused = '%% unused %%' )
@@ -163,7 +168,8 @@
      .		saved_abstract_grid,
      .		xwind_node_len,
      .		genl_storage(25),
-     .		ifstk, if_cs(max_ifstk), if_doing(max_ifstk),
+     .		ifstk, ifstk_skipping,
+     .		if_cs(max_ifstk), if_doing(max_ifstk),
      .          num_linecolors
 
 
@@ -185,7 +191,8 @@
      .          allowed_err,
      .          one_cmnd_mode,
      .		mode_auto_curvi, mode_auto_curvi_last,
-     .		mode_auto_sigma, mode_auto_sigma_last
+     .		mode_auto_layerz, mode_auto_layerz_last,
+     .		its_pyferret
 
 
 ! Note: available_char_var is unused
@@ -222,7 +229,7 @@
 	COMMON/ XPROG_STATE /
      .		interactive, prompt, prompt_len, 
      .		input_source, mouse_input,
-     .		if_conditional, ifstk, if_cs, if_doing,
+     .		if_conditional, ifstk, ifstk_skipping, if_cs, if_doing,
      .          num_linecolors,
      .		cmnd_buff, last_cmnd_buff,
      .          mode_grat_buff,
@@ -243,11 +250,11 @@
      .		denig_xylim_msg_done, denig_pen_msg_done,
      .		in_get_grid_mode, 
      .		mode_auto_curvi, mode_auto_curvi_last,
-     .		mode_auto_sigma, mode_auto_sigma_last,
+     .		mode_auto_layerz, mode_auto_layerz_last,
      .		frame_compress, available_char_var,
      .		journal_file, ppllist_file,
      .		xwind_node, xwind_node_len,
-     .		genl_storage, its_script, grat_on,
+     .		genl_storage, its_script, its_pyferret, grat_on,
      .          shade_trim, silent_err, allowed_err, one_cmnd_mode,
      .		ppl_wait, mode_name, 
      .          scriptfile_name, show_file, list_outtype
@@ -256,13 +263,14 @@
 	LOGICAL		mode_diagnostic, mode_verify, mode_interpolate,
      .			mode_ignore_err, mode_stupid, mode_journal, 
      .			mode_long_lab, mode_lat_lab, mode_depth_lab, 
-     .			mode_time_lab, mode_6d_lab,
+     .			mode_time_lab, mode_e_lab, mode_f_lab,
      .			mode_segment, mode_font_ascii, mode_wait,
      .			mode_reject, mode_desperate, mode_rpn,
      .			mode_gks, mode_xwindows, mode_metafile,
      .			mode_ppllist, mode_gui, mode_logo, mode_labels,
      .                  mode_grat, mode_linecolors, mode_upcase_output, 
-     .                  mode_nlevels, mode_nodata_lab, mode_shrink_ylab
+     .                  mode_nlevels, mode_nodata_lab, mode_shrink_ylab, 
+     .                  mode_6d_lab
 	EQUIVALENCE
      .		( mode_state( pmode_diagnostic  ,1), mode_diagnostic  ),
      .		( mode_state( pmode_verify      ,1), mode_verify      ),
@@ -274,7 +282,8 @@
      .		( mode_state( pmode_lat_lab     ,1), mode_lat_lab     ),
      .		( mode_state( pmode_depth_lab   ,1), mode_depth_lab   ),
      .		( mode_state( pmode_time_lab    ,1), mode_time_lab    ),
-     .		( mode_state( pmode_6d_lab      ,1), mode_6d_lab      ),
+     .		( mode_state( pmode_e_lab       ,1), mode_e_lab      ),
+     .		( mode_state( pmode_f_lab       ,1), mode_f_lab      ),
      .		( mode_state( pmode_font_ascii  ,1), mode_font_ascii  ),
      .		( mode_state( pmode_segment     ,1), mode_segment     ),
      .		( mode_state( pmode_wait        ,1), mode_wait        ),
@@ -293,7 +302,8 @@
      .		( mode_state( pmode_upcase_output,1),mode_upcase_output),
      .		( mode_state( pmode_nlevels     ,1), mode_nlevels     ),
      .		( mode_state( pmode_nodata_lab  ,1), mode_nodata_lab  ),
-     .		( mode_state( pmode_shrink_ylab ,1), mode_shrink_ylab  )
+     .		( mode_state( pmode_shrink_ylab ,1), mode_shrink_ylab  ),
+     .		( mode_state( pmode_6d_lab      ,1), mode_6d_lab  )
 
 * axis label modes
 *     assumes sequential long, lat, depth, time, ensemble, forecast pmode values
diff --git a/fer/common/xrisc.cmn b/fer/common/xrisc.cmn
index d697003..38f510b 100644
--- a/fer/common/xrisc.cmn
+++ b/fer/common/xrisc.cmn
@@ -8,13 +8,14 @@
 * symbol substitution and grave accent evals on command it limits the
 * 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.
+
+* ***  Note that there is also a risc_buff defined in fmt/cmn/xrisc_buff.cmn ***
+
 
 	INTEGER     size_rbuff
-	PARAMETER ( size_rbuff = 2048 )  ! was 256 pre 8/99
+	PARAMETER ( size_rbuff = 10240 )  ! was 256 pre 8/99
 
 	COMMON/ XRISC / len_rbuff, risc_buff
 	CHARACTER  risc_buff*(size_rbuff)
 	INTEGER    len_rbuff
-
-
-
diff --git a/fer/common/xvariables.cmn b/fer/common/xvariables.cmn
index 989dd3b..8d55052 100644
--- a/fer/common/xvariables.cmn
+++ b/fer/common/xvariables.cmn
@@ -61,6 +61,8 @@
 * V690 9/13-1/14 *sh*  added aux var regridding,
 *	           including is_aux_ptr, and uvar_curvi_var/cat
 *		   added space at the top of the isp stack for nferdims auxvars
+* V695+ *sh* 5/15  added uvar_c_cache_ptr for c-malloc caching of aux vars
+* V698+ *sh* 6/15  changed is_sum from REAL to INTEGER
 
 * Terminology:
 *	"mr"	- "memory resident"
@@ -159,7 +161,9 @@
 *	uvar_lo/hi_ss	- when uvlims are given in expression this tells what
 *	uvar_lo/hi_ww	- when uvlims are given in expression this tells what
 *	uvar_bad_data	- missing value flag to be used for this variable
+*	uvar_c_cache_ptr- pointer to c-cahce of full range variable
 *	has_uvar_gc	- variable is a grid-changing variable
+*	is_uvar_const	- variable is a constant-array variable
 
 *	isp	 	- interpretation stack pointer
 *	is_act   	- activity currently in progress
@@ -308,7 +312,9 @@
      .		uvar_ifv	 ( max_uvar ),
      .		uvar_title_w_text( max_uvar ),
      .		uvar_need_dset	 ( max_uvar ),
+     .		uvar_c_cache_ptr ( max_uvar ),
      .		has_uvar_gc,
+     .		is_uvar_const,
      .
      .		uvar_text	 ( max_uvar ),
      .		uvar_title	 ( max_uvar ),
@@ -373,13 +379,16 @@
      .			uvar_mod_pseudo,
      .			uvar_by_ss,
      .			has_uvar_gc,
+     .			is_uvar_const,
      .			uvar_ifv,
      .			uvar_remote,
      .			rvar_on_server
 	REAL*8          uvar_name_code_head,
      .                  uvar_name_code_padding,       
      .                  uvar_num_items_head,
-     .                  uvar_num_items_padding
+     .                  uvar_num_items_padding,
+     .			uvar_c_cache_ptr
+
         INTEGER		uvar_num_items  ,
      .			uvar_grid	,
      .			uvar_data_type	,
@@ -410,8 +419,8 @@
      .			is_axis ,
      .			is_uvar ,
      .			is_mr,
-     .			is_aux_ptr
-	REAL		is_sum
+     .			is_aux_ptr,
+     .			is_sum
 
 * equivalences to assist with declaration statements
 	INTEGER mr_lo_s1( max_mrs ),
diff --git a/fer/ctx/apply_auto_curv.F b/fer/ctx/apply_auto_curv.F
index ca783fe..aba9b84 100644
--- a/fer/ctx/apply_auto_curv.F
+++ b/fer/ctx/apply_auto_curv.F
@@ -33,15 +33,17 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *  setup auto-curvilinear loading of aux vars and regridding
-*      z = lo:hi at ave        ==> a curvi regrid to a 1pt axis via pcwz avrging
+*      z = pt               ==> interpolation computed as a hidden curvi regrid
+*      z = lo:hi at ave        ==> a compressing xform computed as a hidden curvi
+*				regridding operation using pcwz averaging
+* 
 *      z = lo:hi:delta      ==> a curvi regrid via linear interpolation
 *      z = lo:hi:delta at ave  ==> a curvi regrid via piececwise averaging
-*      z = pt               ==> a curvi regrid to a 1pt axis via linear interp
-* ... and for convenience also
-*      gz = axis, sigma
-*      gz = lo:hi:delta,sigma
 
-* V690 12/13 *sh* 
+* V690 12/13 *sh* - hidden curvi regrids added 4/14
+* V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
+* V695+  3/15 *sh* added pauxrgrd_fmrc for GT(time2d)+1d and GF(time2d)=1d
+* V698+  6/15 *sh* generalize single_pt applicable to all axes
 
 	IMPLICIT NONE
 
@@ -58,6 +60,7 @@
 	CHARACTER*(*) full_var_name
 
 * internal variable declarations
+	LOGICAL	single_pt
 	INTEGER	idim, impl_grid
 	REAL	range, midpt
 
@@ -79,14 +82,28 @@
 * a regrid implies that the aux axis status is "used"
 	  cx_aux_stat(idim,cx) = paux_stat_used 
 
+* single point Z-axis regrid?
+	   single_pt = cx_lo_ww(idim,cx) .EQ. cx_hi_ww(idim,cx)
+     .	     .OR.    ( cx_trans(idim,cx) .EQ. trans_average
+     .           .AND. cx_delta(idim,cx) .EQ. unspecified_val8 )
+
 * modify the xform or regridding xform to be an aux var regrid xform
-	   IF ( cx_regrid_trans(idim,cx) .EQ. prgrd_average
-     .	  .    OR. cx_trans       (idim,cx) .EQ. trans_average) THEN
-	      CALL WARN_OCCASIONALLY(
-     .		   'Box-averaging not available for sigma axis '//
-     .		   'regridding.'//pCR//
-     .		   '           Using piecewise linear averaging instead, '//
-     .		   'equivalent to gz(depth)=0:100 at plave', 10, 101)
+	   IF     ( single_pt ) THEN   ! Z=pt or Z=lo:hi at ave
+	      IF ( cx_trans(idim,cx) .EQ. trans_no_transform ) THEN
+	         cx_regrid_trans(idim,cx) = pauxrgrd_linear
+	      ELSEIF ( cx_trans(idim,cx) .EQ. trans_average ) THEN 
+	         cx_regrid_trans(idim,cx) = pauxrgrd_pwlave
+	      ELSE
+	         GOTO 5200
+	      ENDIF
+	      cx_trans(idim,cx) = trans_no_transform
+	   ELSEIF ( cx_regrid_trans(idim,cx) .EQ. prgrd_average 
+     .	       .OR. cx_trans(idim,cx)        .EQ. trans_average ) THEN
+!	      CALL WARN_OCCASIONALLY(
+!     .		   'Box-averaging not available for layerz axis '//
+!     .		   'regridding.'//pCR//
+!     .		   '           Using piecewise linear averaging instead, '//
+!     .		   'equivalent to gz(depth)=0:100 at plave', 10, 101)
 	       cx_regrid_trans(idim,cx) = pauxrgrd_pwlave
 	       cx_trans       (idim,cx) = trans_no_transform
 	   ELSEIF (cx_regrid_trans(idim,cx) .EQ. prgrd_linear_interp) THEN
@@ -100,21 +117,29 @@
 	   IF (cx_g_eq_regrid(idim)) THEN
 * GZ=axis or GZ=lo:hi:delta
 	      cx_aux_stat(idim,cx) = paux_stat_used  ! gz syntax sets itself up
-	   ELSEIF (cx_regrid_trans(idim,cx) .EQ. pauxrgrd_pwlave
-     .	     .AND. cx_delta(idim,cx)        .EQ. unspecified_val8) THEN
-* Z=lo:hi at ave ==> regrid to a single point axis with these lo:hi end points
-	      range = cx_hi_ww(idim,cx) - cx_lo_ww(idim,cx)
-	      midpt = (cx_hi_ww(idim,cx) + cx_lo_ww(idim,cx)) / 2.
-	      cx_lo_ww(idim,cx) = midpt - range/2
-	      cx_hi_ww(idim,cx) = midpt + range/2
-	      cx_delta(idim,cx) = pauto_1pt_ax
+	   ELSEIF (single_pt) THEN
+* set up a "false regridding" by falsely setting cx_unstand_grid
+* and setting cx_aux_stat as a flag that it is not a real regrid
+* This is because we want to invoke the curvilinear regridding machinery
+* but we want the result to remain on the original grid -- not unique 1pt grids
+* Else layerz_temp[Z=50] and layerz_temp[Z=100] would get differing grids
+	      cx_unstand_grid(cx) = .TRUE.
+	      cx_aux_stat(idim,cx) = paux_stat_false_1pt_regrid
+!	   ELSEIF (cx_regrid_trans(idim,cx) .EQ. pauxrgrd_pwlave
+!     .	     .AND. cx_delta(idim,cx)        .EQ. unspecified_val8) THEN
+!* Z=lo:hi at ave ==> regrid to a single point axis with these lo:hi end points
+!	      range = cx_hi_ww(idim,cx) - cx_lo_ww(idim,cx)
+!	      midpt = (cx_hi_ww(idim,cx) + cx_lo_ww(idim,cx)) / 2.
+!	      cx_lo_ww(idim,cx) = midpt - range/2
+!	      cx_hi_ww(idim,cx) = midpt + range/2
+!	      cx_delta(idim,cx) = pauto_1pt_ax
 	   ELSEIF ( cx_delta(idim,cx) .NE. unspecified_val8 ) THEN
 * z=lo:hi:delta and z=lo:hi:delta at ave
 	      CONTINUE
-	   ELSEIF (cx_given(idim,cx)
-     .	    .AND. cx_lo_ww(idim,cx) .EQ. cx_hi_ww(idim,cx)) THEN
-* Z=pt ==> regrid to a 1 point axis axis by interpolation
-	      cx_delta(idim,cx) = pauto_1pt_ax
+!	   ELSEIF (cx_given(idim,cx)
+!     .	     .AND. cx_lo_ww(idim,cx) .EQ. cx_hi_ww(idim,cx)) THEN
+!* Z=pt ==> regrid to a 1 point axis axis by interpolation
+!	      cx_delta(idim,cx) = pauto_1pt_ax
 	   ELSE
 * no regridding after all -- just getting the aux vars for plotting
 	      cx_aux_stat(idim,cx) = paux_stat_needed
@@ -122,9 +147,10 @@
 	   cx_implicit_aux(cx) = .TRUE.
 	   cx_naux(cx) = cx_naux(cx) + 1
 
-* curvilinear and sigma regridding always imply a new target axis
+* curvilinear and layerz regridding that are not single_pt imply a new target axis
 * if it was not already created by GET_CONTEXT_MODS then create it here
-	   IF (.NOT.(    cx_aux_stat(idim,cx).EQ.paux_stat_needed
+	   IF (.NOT.(    single_pt
+     .	            .OR. cx_aux_stat(idim,cx).EQ.paux_stat_needed
      .	            .OR. cx_unstand_grid(cx)
      .		    .OR. cx_has_impl_grid(cx))      ) THEN
 	      CALL ALLO_GRID_TO_CX(cx,impl_grid,status)
@@ -137,15 +163,9 @@
  5000	RETURN
 
 * error exits
- 5200	IF (idim .EQ. z_dim) THEN
-	   CALL ERRMSG( ferr_invalid_command, status,
-     .	     'xform not (yet) supported on sigma-Z var: '
-     .		//full_var_name, *5000)
-	ELSE
-	   CALL ERRMSG( ferr_invalid_command, status,
-     .	     'xform not (yet) supported on curvilinear var: '
+ 5200	CALL ERRMSG( ferr_invalid_command, status,
+     .	     'xform not (yet) supported on auxiliary variable regridding: '
      .		//full_var_name, *5000)
-	ENDIF
 
 	END
 
diff --git a/fer/ctx/apply_context_mods.F b/fer/ctx/apply_context_mods.F
index 343d80c..9f0c804 100644
--- a/fer/ctx/apply_context_mods.F
+++ b/fer/ctx/apply_context_mods.F
@@ -68,6 +68,7 @@
 *                  world coordinates
 *       *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
 * V685 3/13 *sh* support for aux var regridding: var[gz(depth)=zax]
+* V695  *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
 
 	IMPLICIT NONE
 
@@ -127,7 +128,7 @@
 	         cx_hi_ww( idim,dest_cx ) = unspecified_val8
 * kob 9/97 - need to reset cx_calendar as well
 		 IF (idim.EQ.t_dim .OR. idim.EQ.f_dim) THEN
-                    cx_calendar(dest_cx) = .FALSE.
+                    cx_calendar(idim,dest_cx) = .FALSE.
                     cx_cal_id(dest_cx) = unspecified_int4
                  ENDIF
 	      ELSE
@@ -137,7 +138,7 @@
 	         cx_hi_ss( dest_cx ,idim) = unspecified_int4
 * kob 9/97 - need to transfer cx_calendar as well
 		 IF (idim.EQ.t_dim .OR. idim.EQ.f_dim) THEN
-                    cx_calendar(dest_cx) = cx_calendar(mods_cx)
+                    cx_calendar(idim,dest_cx) = cx_calendar(idim,mods_cx)
                     cx_cal_id(dest_cx) = cx_cal_id(mods_cx)
                  ENDIF
 
diff --git a/fer/ctx/complete_missing_limits.F b/fer/ctx/complete_missing_limits.F
index 652369b..afcb981 100644
--- a/fer/ctx/complete_missing_limits.F
+++ b/fer/ctx/complete_missing_limits.F
@@ -147,9 +147,10 @@
 	      IF ( needs_limits ) THEN
 
 	         cx_by_ss(idim, cx) = .TRUE.
-	         IF ( (cat .EQ. cat_file_var) .OR.
-     .                (cat .EQ. cat_aggregate_var) .OR.
-     .                (cat .EQ. cat_pystat_var) ) THEN
+	         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
 	            CALL VAR_SS_LIMS( idim, cx,
      .				      cx_lo_ss(cx,idim),
      .				      cx_hi_ss(cx,idim)  )
diff --git a/fer/ctx/cs_set_context.F b/fer/ctx/cs_set_context.F
index 0a48436..4bb8c41 100644
--- a/fer/ctx/cs_set_context.F
+++ b/fer/ctx/cs_set_context.F
@@ -49,6 +49,7 @@
 * *acm* v580 11/04 Introducing cx_cal_id, saves the calendar ID used 
 *                  when computing world coordinates
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V695  *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
 
 * internal variable declarations:
 	INTEGER	idim
@@ -70,8 +71,8 @@
 	   cx_lo_ww( idim, cx_last ) = unspecified_val8
 	   cx_hi_ww( idim, cx_last ) = unspecified_val8
 * kob 9/97 - need to reset cx_calendar as well
-	   IF (idim .eq. t_dim) THEN
-              cx_calendar(cx_last) = .FALSE.
+	   IF (idim .eq. t_dim .OR. idim .eq. f_dim) THEN
+              cx_calendar(idim,cx_last) = .FALSE.
               cx_cal_id(cx_last) = unspecified_int4
            ENDIF
 	ELSE
@@ -81,7 +82,11 @@
 	   cx_lo_ww( idim, cx_last ) = cs_phase( csp )
 	   cx_hi_ww( idim, cx_last ) = cs_phase( csp )
 	   IF (idim .eq. t_dim) THEN
-              cx_calendar(cx_last) = cs_is_calendar(csp)
+              cx_calendar(idim,cx_last) = cs_is_calendar_t(csp)
+              cx_cal_id ( cx_last) = cs_cal_id(csp)
+           ENDIF
+	   IF (idim .eq. f_dim) THEN
+              cx_calendar(idim,cx_last) = cs_is_calendar_f(csp)
               cx_cal_id ( cx_last) = cs_cal_id(csp)
            ENDIF
 	ENDIF
diff --git a/fer/ctx/del_cx_dim.F b/fer/ctx/del_cx_dim.F
index d176ba6..69d51ac 100644
--- a/fer/ctx/del_cx_dim.F
+++ b/fer/ctx/del_cx_dim.F
@@ -45,6 +45,7 @@
 * V200:  5/19/89 - reordered _ss dims
 * 9/97 *kob* - eliminate newly create cx_calendar
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V695  *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -59,8 +60,8 @@
 	cx_hi_ww    ( idim, cx ) = unspecified_val8
 	cx_trans    ( idim, cx ) = trans_no_transform
 	cx_trans_arg( idim, cx ) = bad_val4
-	if (idim .EQ. t_dim) 
-     .      cx_calendar(cx) = .FALSE.
+	if (idim .EQ. t_dim .OR. idim .EQ. f_dim) 
+     .      cx_calendar(idim,cx) = .FALSE.
 
 	RETURN
 	END
diff --git a/fer/ctx/flesh_out_axis.F b/fer/ctx/flesh_out_axis.F
index b5a19ea..b20cf04 100644
--- a/fer/ctx/flesh_out_axis.F
+++ b/fer/ctx/flesh_out_axis.F
@@ -81,6 +81,9 @@
 *                  dimension is now an arg to SECS_TO_TSTEP.
 * V683  *acm*10/12  Fix bug 1972: cx_calendar and cx_cal_id are changed only
 *                   if it's the T dimension not the T or F dimension.
+* V690  *sh* 4/14  For curvilinear axes keep ww limits as-is (may exceed axis limits)  
+* V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
+* V695  *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
 
 	include 'tmap_dims.parm'
 	include 'xtm_grid.cmn_text'
@@ -113,10 +116,9 @@
 	cat  = cx_category( cx )
 	grid = cx_grid    ( cx )
 	
-* For setting the calendar information just think about the time axis
-* (What if it's the F axis?)
+* For setting the calendar information
 
-	is_time = idim .EQ. t_dim
+	is_time = idim.EQ.t_dim .OR. idim.EQ.f_dim
 
 * check for special actions needed on user-defined variables
 * ( e.g. how to handle U[K=5] - U[K=1:10] )
@@ -147,7 +149,7 @@
 	   cx_trans( idim, cx ) = trans_no_transform
 * kob 9/97 - need to reset cx_calendar as well
 
-	   IF (is_time) cx_calendar(cx) = .FALSE.
+	   IF (is_time) cx_calendar(idim,cx) = .FALSE.
 
 * axes with fully "given" regions will have their regions determined via
 * MERGE_CONTEXT (when computed) or PASS_AMBIG_LIMS (when found in memory)
@@ -186,7 +188,7 @@
 	   cx_trans( idim, cx ) = trans_no_transform
 * kob 9/97 - need to reset cx_calendar as well
 	   IF (is_time) THEN
-              cx_calendar(cx) = .FALSE.
+              cx_calendar(idim,cx) = .FALSE.
               cx_cal_id(cx) = unspecified_int4
            ENDIF
 
@@ -217,14 +219,22 @@
 	   cx_hi_ww(idim, cx) = TM_WORLD( cx_hi_ss( cx,idim),
      .					  grid, idim, box_hi_lim )
 
-	   IF ( is_time .AND. cx_calendar(cx) ) THEN
+	   IF ( is_time .AND. cx_calendar(idim,cx) ) THEN
              cal_id = TM_GET_CALENDAR_ID (line_cal_name(axis))
              cx_cal_id(cx) = cal_id
            ENDIF
 
 
-* POSITIONS WERE SPECIFIED BY WORLD COORDINATES
+	ELSEIF ( cx_aux_stat( idim, cx ) .EQ. paux_stat_false_1pt_regrid
+     .	   .AND. cx_unstand_grid( cx		)	             ) THEN
+* 4/14 - WORLD COORDINATES ON A CURVILINEAR OR LAYERZ AXIS
+	      cx_lo_ss(cx,idim) = unspecified_int4
+	      cx_hi_ss(cx,idim) = unspecified_int4
+*  leave ww limits as-is. Values refer to the aux var range, not the native axis 
+	        CONTINUE
+
 	ELSE
+* WORLD COORDINATE POSITIONS
 * is there valid position data for this axis ?
 	   IF ( cx_lo_ww( idim, cx ) .EQ. unspecified_val8 ) THEN
 * ... no position data but maybe it's a file variable with only 1 point
@@ -236,21 +246,21 @@
 * ... compute world positions as grid box edges
 	      cx_lo_ww(idim, cx) = TM_WORLD( lo_ss, grid, idim, box_lo_lim )
 	      cx_hi_ww(idim, cx) = TM_WORLD( hi_ss, grid, idim, box_hi_lim )
-	    ENDIF
+	   ENDIF
 
 	   point = cx_lo_ww(idim,cx) .EQ. cx_hi_ww(idim,cx)
 
 * convert times given as seconds from BC to time step values
 * *kob* 8/97 - use cx_calender instead of cx_lo_ww
 
-	   IF ( is_time .AND. cx_calendar(cx) ) THEN
+	   IF ( is_time .AND. cx_calendar(idim,cx) ) THEN
              cal_id = TM_GET_CALENDAR_ID (line_cal_name(axis))
              IF ( TM_DATE_OK( line_t0(axis), cal_id ) ) THEN
 	         cx_lo_ww(idim,cx) =
      .                SECS_TO_TSTEP( grid, idim, -cx_lo_ww(idim,cx) )
 	         cx_hi_ww(idim,cx) =
      .                SECS_TO_TSTEP( grid, idim, -cx_hi_ww(idim,cx) )
-		 cx_calendar(cx) = .FALSE.
+		 cx_calendar(idim,cx) = .FALSE.
                  cx_cal_id(cx) = cal_id
               ENDIF
 	   ENDIF
diff --git a/fer/ctx/get_auto_aux_vars.F b/fer/ctx/get_auto_aux_vars.F
index 9a46228..848f084 100644
--- a/fer/ctx/get_auto_aux_vars.F
+++ b/fer/ctx/get_auto_aux_vars.F
@@ -37,17 +37,18 @@
 *
 *
 * determine if curvilinear coordinates are applicable on a particular variable
-* by looking for the __SigmaRef_ and __CurviRef__ attributes
+* by looking for the __LayerzRef_ and __CurviRef_ attributes
 * These may have been set either automatically, based upon CF 'coordinates'
 * and 'formula_terms' attributes found in a netCDF file, or have been set
-* manually using the SET VARIABLE/SIGMA and /CURV commands
+* manually using the SET VARIABLE/LAYERZ and /CURV commands
 
 * inputs: var, cat, dset -- describe the variable for which we are seeking
 *		auxiliary coordinates
 * outputs: curv_vars, curv_cats -- the identities of the aux variables
 
-
 * *sh* 12/13
+* V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
+
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
 	include	'errmsg.parm'
@@ -65,7 +66,7 @@
 	INTEGER	  TM_LENSTR1, 
      .		  idim, dset, attlen, attoutflag, maxlen, varid, slen,
      .		  status, aux_var, aux_cat
-	REAL	  attvals(10)   ! only if __SigmaRef_ mis-defined as numeric!
+	REAL	  attvals(10)   ! only if __LayerzRef_ mis-defined as numeric!
 	CHARACTER VAR_CODE*128, refvarname*128, varname*128,
      .		  dsetname*128
 
@@ -91,15 +92,15 @@
 	   ENDDO
 	ENDIF
 
-* get the variable ID in the linked list  (user vars stored under dset=-1?)
-	IF (cat .EQ. cat_user_var) dset = -1  ! signals a uvar ??
+* 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??
 
-* get the attribute value of '__SigmaRef_' (patnam_sigma)
+* get the attribute value of '__LayerzRef_' (patnam_layerz)
         maxlen = LEN(refvarname)
-        got_it = NC_GET_ATTRIB ( dset, varid, patnam_sigma,
+        got_it = NC_GET_ATTRIB ( dset, varid, patnam_layerz,
      .                           .FALSE., varname, maxlen,
      .                           attlen, attoutflag, refvarname,
      .                           attvals )
@@ -111,11 +112,11 @@
      .			    refvarname,
      .			    aux_cat, aux_var )
 	IF (aux_var .EQ. munknown_var_name) THEN
-* .... "Variable TEMP associated with non-existent sigma variable DEPTH"
+* .... "Variable TEMP associated with non-existent layerz variable DEPTH"
 *      "in levitus_climatology"
 	   CALL GET_SHORT_DSET_NAME(dataset, dsetname, slen )
 	   CALL WARN('Variable '//varname(:TM_LENSTR1(varname)) //
-     .		' associated with non-existent sigma variable ' //
+     .		' associated with non-existent layerz variable ' //
      .		refvarname(:TM_LENSTR1(refvarname)) // pCR //
      .		'           in ' //dsetname(:slen) )
 	ELSE
diff --git a/fer/ctx/get_aux_var_context.F b/fer/ctx/get_aux_var_context.F
index 6fa831a..79cebfd 100644
--- a/fer/ctx/get_aux_var_context.F
+++ b/fer/ctx/get_aux_var_context.F
@@ -37,24 +37,22 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* given a full variable specification of the form:
-*			(eg.) TEMP[X=170E:170W,K=+1D,T=188979]
-* return in var_cx context information describing the exact variable instance
-* including variable, data set, grid, region and plane
+* this routine gets the context of the auxiliary variable (e.g."depth")
+* within parenthese in the format   VAR[gz(depth)=zax at ave]
+*  
+
+* it is performed in two steps: first get the context of the main variable
+* VAR.  Then use the context of the parent variable as the default for the
+* auxiliary variable ("depth")
+
 
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
 * written for VAX computer under VMS operating system
 *
 * V685 - new based upon GET_VAR_CONTEXT
+* V695+ *sh* 3/15 - support joint TF -- var[gt(time2d)calt,gf(time2d)=lagf]
 
-* this routine gets the context of the auxiliary variable arguments (e.g."depth")
-* within parenthese in the format   VAR[gz(depth)=zax at ave]
-*  
-
-* it is performed in two steps: first get the context of the main variable
-* VAR.  Then use the context of the parent variable as the default for the
-* auxiliary variable ("depth")
 
 	IMPLICIT NONE
 
@@ -92,6 +90,7 @@
 
 * which auxiliary var is the subject of interest?
 * e.g. for "temp[gz(depth)=zax]" the argument "depth" is found in the z dim
+* note that for joint TF regridding, this will return T_dim
 	the_axis = AUX_AXIS_FROM_ARG(var_cx, aux_arg_num)
 
 * pull the auxiliary variable identity from the parent context
@@ -126,7 +125,9 @@
 	DO 500 idim = 1, nferdims
 	   aux_var_axis = grid_line(idim,cx_grid(aux_var_cx))
 	   var_axis     = grid_line(idim,cx_grid(    var_cx))
-	   IF (idim .EQ. the_axis) THEN
+!3/15 	   IF (idim .EQ. the_axis) THEN  ! logic not adequate for joint TF
+ 	   IF (cx_aux_stat(idim,var_cx) .NE. paux_stat_na) THEN !ok logic? 3/15
+
 	      IF (aux_var_axis .EQ. mnormal) GOTO 5300 
 * ... set up to get the full index range on the regrid axes of the aux var
               cx_lo_ss ( aux_var_cx, idim )  = unspecified_int4
diff --git a/fer/ctx/get_context_bad_flag.F b/fer/ctx/get_context_bad_flag.F
index 3ae952a..32a881e 100644
--- a/fer/ctx/get_context_bad_flag.F
+++ b/fer/ctx/get_context_bad_flag.F
@@ -59,13 +59,14 @@
 
 
 	IF     ( cx_category( cx ) .EQ. cat_file_var .OR.
-     .           cx_category( cx ) .EQ. cat_aggregate_var ) THEN
+     .           cx_category( cx ) .EQ. cat_agg_e_var .OR.
+     .           cx_category( cx ) .EQ. cat_agg_f_var ) THEN
 
 	   cx_bad_data( cx ) = ds_bad_flag( cx_variable( cx ) )
 
-        ELSEIF ( cx_category(cx) .EQ. cat_pystat_var ) THEN
+	ELSEIF ( cx_category(cx) .EQ. cat_pystat_var ) THEN
 
-           cx_bad_data( cx ) = pyvar_missing_flag( cx_variable( cx ) )
+	   cx_bad_data( cx ) = pyvar_missing_flag( cx_variable( cx ) )
 
 	ELSEIF     ( cx_category( cx ) .EQ. cat_user_var ) THEN
 
diff --git a/fer/ctx/get_context_grid.F b/fer/ctx/get_context_grid.F
index f3cc2ce..adb571e 100644
--- a/fer/ctx/get_context_grid.F
+++ b/fer/ctx/get_context_grid.F
@@ -48,6 +48,9 @@
 * Also, if delta specifications were used (e.g. var[i=1:100:10]) then an
 * implicit axis AND grid must be created.
 
+
+* FERRET DOCUMENTATION: MANAGING DYNAMIC GRIDS AND AXES:  OVERVIEW
+
 *************************************
 * *** MANAGING DYNAMIC GRIDS AND AXES:  OVERVIEW  ***
 
@@ -115,7 +118,7 @@
 *		  into implicit grid
 *	 1/96	- idim subscripting bug fixed 1/96 ... how did it escape?
 
-* $Id: get_context_grid.F 17182 2014-04-01 00:38:04Z ksmith $ 
+* $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
@@ -140,6 +143,11 @@
 * V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
 * V690 12/13 *sh* set default regrid transforms for aux var regridding transform
 *	          set up dynamic axis if cx_delta=pauto_1pt_ax
+*      4/14  *sh* return standard grid if "false regridding" - 1 pt curvi
+* V695  *acm* 2/15 cx_calendar stores info about formatting of T and F axes
+* 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
 
 	include 'errmsg.parm'
 	include 'ferret.parm'
@@ -156,21 +164,24 @@
 	include 'xtm_grid.cmn_text'
 	external xgt_grid_data
 	include 'xfr_grid.cmn'   ! stack ptr should be in TMAP lib
+	include 'xunits.cmn_text'
 
 * calling argument declarations:
 	INTEGER	cx, status
 
 * internal variable declarations:
         LOGICAL   GEOG_COS_FACTOR, GEOG_LABEL,
-     .		  its_dyn, has_impl_axis, explicit_unstd
-	INTEGER	  KNOWN_GRID, 
+     .		  its_dyn, has_impl_axis, explicit_unstd, use_std_grid,
+     .		  made_aux_line_dummy
+	INTEGER	  KNOWN_GRID, TM_UNIT_ID,
      .		  use_grid, ilo, ihi,
      .		  cat, var, dset, std_grid, std_axis, use_axis, idim,
-     .		  base_grid, impl_grid
+     .		  base_grid, impl_grid, src_line
 	REAL*8	  SECS_TO_TSTEP, dlo, dhi, delta
-	CHARACTER VAR_CODE*128
+	CHARACTER VAR_CODE*128, AUX_VAR_UNITS*64
 
 * initialize
+	made_aux_line_dummy = .FALSE.
 	cat  = cx_category( cx )
 	var  = cx_variable( cx )
 	dset = cx_data_set( cx )
@@ -180,7 +191,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_aggregate_var .OR. cat.EQ.cat_calc_var )
+	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 )
 
@@ -280,7 +292,7 @@
 	            ENDIF
 	            IF (idim.EQ.t_dim .OR. idim.EQ.f_dim) THEN
 * 8/97 *kob* use cx_calender to check if time is date rather than time step
-	               IF ( cx_calendar(cx) ) THEN
+	               IF ( cx_calendar(idim,cx) ) THEN
 	                  IF (.NOT.GEOG_LABEL(idim,std_grid)) GOTO 5400
 	                  dlo = SECS_TO_TSTEP(std_grid,idim,-1.*cx_lo_ww(idim,cx))
 	                  dhi = SECS_TO_TSTEP(std_grid,idim,-1.*cx_hi_ww(idim,cx))
@@ -288,11 +300,25 @@
      .				/ line_tunit(grid_line(idim,std_grid)) !was hrs
 	               ENDIF
 	            ENDIF
+* 5/15 ax units for gz(density)=lo:hi:del come from aux var
+	            IF ( cx_naux(cx) .GT.0
+     .		   .AND. cx_aux_var(idim,cx) .NE. unspecified_int4 ) THEN
+* ... set up specimen line using units information from the auxiliary variable
+	               CALL TM_MAKE_BASIC_AXIS('tmp_aux_line_dummy',0.,1.,1,
+     .		       src_line, status)
+	               made_aux_line_dummy = .TRUE.
+	               line_units(src_line) = AUX_VAR_UNITS(cx,idim)
+	               line_unit_code(src_line) = TM_UNIT_ID(line_units(src_line))
+	               line_tunit(src_line) = un_convert(line_unit_code(src_line))
+* ** MORE TO BE DONE:  line_t0 and calendar need to be set as in cd_get_1_axis.F
+	            ELSE
+	               src_line = grid_line(idim,std_grid)
+	            ENDIF
 	            CALL TM_GET_LIKE_DYN_LINE(	idim,
      .						dlo,
      .						dhi,
      .						delta,
-     .						grid_line(idim,std_grid),
+     .						src_line,
      .						pline_class_basic,
      .						grid_line(idim,impl_grid),
      .						status)
@@ -315,7 +341,15 @@
 	ENDIF
 
 * use the standard grid ?
-	IF ( .NOT. cx_unstand_grid( cx ) ) THEN
+* 4/14 cx_unstand_grid may indicate a "false regrid" used for single point curvi results
+* note that false regridding may not have been checked in all possible combos of
+* delta values on other axes, etc.
+	use_std_grid = .NOT. cx_unstand_grid( cx )
+	DO idim = 1, nferdims
+	   IF (cx_aux_stat(idim,cx) .EQ. paux_stat_false_1pt_regrid)
+     .			use_std_grid = .TRUE.
+	ENDDO
+	IF ( use_std_grid ) THEN
 	   cx_grid( cx ) = std_grid
 	   RETURN
 	ENDIF
@@ -399,6 +433,10 @@
 	   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
+     .		.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
 	      ENDIF
@@ -425,7 +463,8 @@
            ENDIF
         ENDIF
 
- 5000	RETURN
+ 5000	IF (made_aux_line_dummy) CALL TM_DEALLO_DYN_LINE(src_line) ! is this needed?
+	RETURN
 
 * error exits
 ! 5100	CALL ERRMSG( ferr_invalid_command, status,
diff --git a/fer/ctx/get_var_context.F b/fer/ctx/get_var_context.F
index 5665ce1..6853338 100644
--- a/fer/ctx/get_var_context.F
+++ b/fer/ctx/get_var_context.F
@@ -65,9 +65,10 @@
 * V685 4/13 *sh* parse the auxiliary regridding context terms ("*aux*"), too
 *	         and don't report errors in dependency_tree_mode
 * V690 12/13 *sh* bug fix when variable name unrecognized in VTREE mode
-* V693 10/14 *acm fix ticket 2206: If the grid number is a placeholder, don't 
+* V693 10/14 *acm* fix ticket 2206: If the grid number is a placeholder, don't 
 *                 go call flesh_out_axis etc (See the comment in get_context_mods, where
 *                 the grid is an encoding of the start/end limits of the regrid spec)
+* V695+ 5/15 *sh* report unrecognized aux var unless in dependency_tree_mode
 
 	IMPLICIT NONE
 
@@ -80,7 +81,9 @@
 	include	'xprog_state.cmn'
         include 'xdset_info.cmn_text'
         include 'xdependency_tree.cmn'
+	include 'xtm_grid.cmn_text' 
         external xdset_info_data
+#        include "tmap_dset.parm"
 
 * calling argument declarations:
 	INTEGER		default_cx, var_cx, status
@@ -111,16 +114,22 @@
 	      cx_variable(var_cx) = unspecified_int4
 	      cx_category(var_cx) = unspecified_int4
 	      unreported_error = .TRUE.
-	      IF (cx_has_impl_grid(var_cx)) THEN
-	         IF (cx_impl_grid(var_cx).NE.grd_stk_ptr )
-     .					CALL WARN('crptn_get_var_ctxt')
-	         CALL DEALLO_GRID(i) ! 12/13 bug fix
-	      ENDIF
 	   ELSE
 	      GOTO 5000
 	   ENDIF
 	ENDIF
 
+* in dependency tree mode bail out of implicit grid created by GET_CONTEXT_MODS
+	IF ( dependency_tree_mode ) THEN
+	   IF (cx_has_impl_grid(var_cx)) THEN
+	      IF (cx_impl_grid(var_cx).NE.grd_stk_ptr )
+     .				CALL WARN('crptn_get_var_ctxt')
+	      grid_name(grd_stk_ptr) = char_init16
+	      grd_stk_ptr = grd_stk_ptr + 1
+	      cx_has_impl_grid(var_cx) = .FALSE.
+	   ENDIF
+	ENDIF
+
 * if explicit auxiliary regridding variables were detected, identify them
 	IF (cx_naux(var_cx).GT.0 .AND. .NOT.cx_implicit_aux(var_cx)) THEN
 	   iarg = 0
@@ -147,12 +156,14 @@
 	            cx_aux_cat (idim,var_cx) = cat
 	            cx_aux_var (idim,var_cx) = var
 	            cx_aux_stat(idim,var_cx) = paux_stat_used
-	         ELSE
+	         ELSEIF ( dependency_tree_mode ) THEN
 	            cx_valid_aux(iarg,var_cx) = .FALSE. ! a name not found
 	            IF (.NOT. unreported_error) THEN
 	               status = ferr_unknown_auxvar
 		       unreported_error = .TRUE.
 	            ENDIF
+	         ELSE
+	            GOTO 5200
 	         ENDIF	
 	      ENDIF
 	   ENDDO
@@ -162,6 +173,9 @@
 	   GOTO 5000
 	ENDIF
 
+* below here is work that is needed for evaluations;  not for dependency tree
+	IF ( dependency_tree_mode ) GOTO 100  ! 12/31
+
 * 8/99 If G=unknown_user_var was given then exit now.
 * It is recognizable because the text position is encoded in the grid number.
 * This should happen ONLY when this is called from IS_UVAR_GRID
@@ -199,6 +213,9 @@ c Fix for bug 1475
 c FLESH_OUT_AXIS has a check for whether there is a transformation that
 c reduces the range to a point and if so sets cx_by_ss(idim,cx)=.FALSE.
 
+** NOTE: This change causes bug 1748 because then the index range for the
+** transform doesn't get checked in confine_context.
+
 * flesh out the context on each axis with grid-related positions
 * seeing if cx_by_ss(idim,cx) should really be in effect
 	DO 11 idim = 1, nferdims
diff --git a/fer/ctx/init_context_mods.F b/fer/ctx/init_context_mods.F
index d194427..6bf9e0a 100644
--- a/fer/ctx/init_context_mods.F
+++ b/fer/ctx/init_context_mods.F
@@ -52,6 +52,7 @@
 * V510 *sh* - added cx_formatted
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 * V685 3/2013 *sh* initialize auxiliary regrid variable info
+* V695  *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -71,7 +72,6 @@
 	cx_grid( cx )     = unspecified_int4
 	cx_unstand_grid( cx )  = .FALSE.
 	cx_has_impl_grid( cx ) = .FALSE.
-	cx_calendar(cx)        = .FALSE.
 	cx_grid_needs_dset     = .FALSE.
 	
 * initialize region
@@ -79,6 +79,7 @@
 	DO 100 idim = 1, nferdims
 	   cx_lo_ss ( cx, idim )  = unspecified_int4
 	   cx_hi_ss ( cx, idim )  = unspecified_int4
+	   cx_calendar(idim,cx)   = .FALSE.
 	   cx_lo_ww ( idim, cx )  = unspecified_val8
 	   cx_hi_ww ( idim, cx )  = unspecified_val8
 	   cx_delta ( idim, cx )  = unspecified_val8
diff --git a/fer/ctx/init_empty_context.F b/fer/ctx/init_empty_context.F
index 0f272c9..491f3bc 100644
--- a/fer/ctx/init_empty_context.F
+++ b/fer/ctx/init_empty_context.F
@@ -42,6 +42,7 @@
 * V530:  8/00 *sh* - initialize data type to unspecified
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 * V690 *sh* 2/14 init auxiliary var-related context variables
+* V695  *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -85,8 +86,8 @@
 	cx_impl_grid    ( cx ) = unspecified_int4
 
 * kob 9/97 - need to initialize cx_calendar as well
-		 IF (idim .eq. t_dim) 
-     .                cx_calendar(cx) = .FALSE.
+		 IF (idim .eq. t_dim .OR. idim .eq. f_dim) 
+     .                cx_calendar(idim,cx) = .FALSE.
 
 * (*) initialized to TRUE so that ANDing with another context will yield
 *	TRUE only if "given" in that context
diff --git a/fer/ctx/known_data_type.F b/fer/ctx/known_data_type.F
index 8e74502..2afb262 100644
--- a/fer/ctx/known_data_type.F
+++ b/fer/ctx/known_data_type.F
@@ -69,11 +69,15 @@
 
 	   cx_type(cx) =  ds_var_type(variable)
 
-	ELSEIF ( category .EQ. cat_aggregate_var ) THEN
+	ELSEIF ( category .EQ. cat_agg_e_var ) THEN
 
            cx_type(cx) = ds_var_type(variable)
 
-        ELSEIF ( category .EQ. cat_pystat_var ) THEN
+	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)
 
diff --git a/fer/ctx/merge_axis_with_offsets.F b/fer/ctx/merge_axis_with_offsets.F
index b700d8f..a4e6b85 100644
--- a/fer/ctx/merge_axis_with_offsets.F
+++ b/fer/ctx/merge_axis_with_offsets.F
@@ -46,6 +46,7 @@
 * V500:  4/9/98   - extracted from merge_context
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 * V685  *acm* 12/13 Fix bug in 6D Ferret decclarations, lo_off and hi_off
+* V695  *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -114,8 +115,8 @@
 *	cx_given ( idim, dest )   = cx_given ( idim, source )
 *	cx_trans_arg(idim, dest)  = cx_trans_arg(idim, source)
 ** 8/97 *kob* 	
-*	IF (idim .EQ. t_dim) 
-*     .        cx_calendar(dest) = cx_calendar(source)
+*	IF (idim .EQ. t_dim .OR. idim .eq. f_dim) 
+*     .        cx_calendar(idim,dest) = cx_calendar(idim,source)
 
 
 * successful completion
diff --git a/fer/ctx/merge_grid.F b/fer/ctx/merge_grid.F
index 03f26bb..69bf0dd 100644
--- a/fer/ctx/merge_grid.F
+++ b/fer/ctx/merge_grid.F
@@ -114,6 +114,10 @@
 *                   user-variable has multiple sub-expressions
 * v690 *sh* 2/14  Determine the curvilinear (aux var) dependencies of the merged
 *		  expression
+* V694+*acm*5/15  Fix for ticket 2273: return= shape, *size for expressions built 
+*                 of other exprns.
+* V695 *acm* 6/16 Fix ticket 1602. Do not substitute abstract axes for normal axes
+*                 when merging a constant.
 
 	include 'tmap_dims.parm'
 	include 'grid_chg_fcns.parm'
@@ -135,14 +139,14 @@
 
 * local variable declarations
 	LOGICAL		INHERITED_LIMITS, ITSA_PURE_SUM_VAR,
-     .			same, nest, expl_com_lim
+     .			same, nest, expl_com_lim, abstgrid, normabst, var_is_const
 	INTEGER		CX_DIM_LEN, TM_LENSTR1, REGION_CLASS,
      .			NEST_REGION_CLASS,  WHICH_GCFCN, GCF_RTN_TYPE,
      .			mrg_grd, mrg_ax, mrg_len, com_grd, com_ax, com_len,
      .			idim, i, icom, imrg, com_uvar, com_class, mrg_class,
      .			uv_class, ax_choice(6,5), joint_match(0:3,0:3),
      .			lims_gvn, gcfcn, axis_source(nferdims), uvar_test,
-     .			naux, blen
+     .			naux, blen, mabstract, iline
 	CHARACTER	VAR_CODE*128, buff*128
 
 * local parameter declarations
@@ -151,6 +155,8 @@
 	INTEGER		gnl,   lo,   lohi,   xact
 	PARAMETER     ( gnl=0, lo=1, lohi=2, xact=3 )
 
+* FERRET DOCUMENTATION: merging grids for an expression
+*
 * procedure:
 * the important considerations are
 *	o whether merged/component axes are same axis
@@ -261,7 +267,19 @@
 
 * do we have nested user-defined variables ?
 	nest = cx_category( com_cx ) .EQ. cat_user_var
-	IF ( nest ) com_uvar = cx_variable( com_cx )
+	IF ( nest ) THEN
+	   com_uvar = cx_variable( com_cx )
+	   var_is_const = uvar_item_type( uvar_num_items(com_uvar), com_uvar )
+     .          .EQ. alg_constant
+	ENDIF
+
+* Is the mrg_grd all normal or abstract ?
+	mabstract = grid_line( 1, mgrid_abstract )
+	normabst = .TRUE.
+	DO idim = 1, nferdims
+	   iline = grid_line(idim,mrg_grd)
+	   IF (iline.NE.mnormal .AND. iline.NE.mabstract) normabst = .FALSE.
+	ENDDO
 
 * for merged context to be data set independent all components must be so
 	IF ( cx_category(com_cx) .EQ. cat_pseudo_var ) THEN
@@ -468,6 +486,13 @@
 	cx_given(idim,mrg_cx) = cx_given(idim,mrg_cx)
      .			  .AND. expl_com_lim
 
+* Do not substitute an abstract axis for normal axes in the grid 
+* when merging a constant
+
+	IF (com_ax.EQ.mabstract .AND. mrg_ax.EQ.mnormal) THEN
+	   IF (.NOT. (normabst) .AND. var_is_const) GOTO 400
+	ENDIF
+
 * take appropriate merging action
 *		  EXP  IMP WRN1   ***   NA  WRN2
 	   GOTO ( 100, 200,  90, 9000, 400, 190 ) ax_choice(icom,imrg)
@@ -530,9 +555,13 @@
 * for the entire expression. This was the cause of ticket 2051. Use 
 * uvlim_need_lohi instead for the tests below.
 
+*  For 2273, we do not want to change the value of uvar_test here. The 
+*  examples in ticket 2051 still give correct resu;ts, but the RETURN= examples 
+*  in the report for 2273 did not.  Perhaps changes for the `RETURN=isready` 
+*  have allowed cause  this to work better?
+
 cc	   IF ( uvar_given(idim,uvar) .EQ. uvlim_need_xact ) GOTO 500
 	   uvar_test =  uvar_given(idim,uvar)
-	   IF ( uvar_given(idim,uvar) .EQ. uvlim_need_xact ) uvar_test = uvlim_need_lohi
 
 * get limits-region class of new component
 	   IF ( nest ) THEN
diff --git a/fer/ctx/parse_var_name.F b/fer/ctx/parse_var_name.F
index 30434a4..8472493 100644
--- a/fer/ctx/parse_var_name.F
+++ b/fer/ctx/parse_var_name.F
@@ -70,6 +70,8 @@
 * V685 3/13 *sh* support for auxiliary regridding variables
 *		 and SHOW VAR/DEPENDENCIES (unknown variable err not reported)
 * 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
 
 	include	'tmap_dims.parm'
 	include	'ferret.parm'
@@ -171,6 +173,13 @@
      .				status	)
 	IF ( status .NE. ferr_ok ) GOTO 5900
 
+! no.  save exact position when error is detected in GET_CONTEXT_MODS
+!* save the bracket position for VTREE unknown grid report
+!	IF (cx_vtree_unknown_grid) THEN
+!	   cx_vtree_var_or_start = left_bracket
+!	   cx_vtree_cat_or_end   = right_bracket
+!	ENDIF
+
 * apply those context mods that don't need to know the grid
 * apply them now, before looking for the variable name, because the data set is
 * needed in the name search
@@ -215,7 +224,7 @@
 
 * set up automated curvilinear actions:  aux variable loads and regridding
 * cases include
-*  [z=pt, sigma], [z=lo:hi:delta,sigma], [z=lo:hi at ave,sigma], [gz=zax,sigma]
+*  [z=pt, layerz], [z=lo:hi:delta,layerz], [z=lo:hi at ave,layerz], [gz=zax,layerz]
 	cx_implicit_aux(var_cx) = .FALSE.   ! set default
 	aux_given = .FALSE.
 	DO idim = 1, nferdims
@@ -224,7 +233,7 @@
 	IF ( aux_given ) THEN
 	   IF ( cx_category(var_cx) .NE. cat_file_var
      .	  .AND. cx_category(var_cx) .NE. cat_user_var ) GOTO 5200
-!	   IF (cx_mod_sigma .AND.
+!	   IF (cx_mod_layerz .AND.
 !     .	     .NOT. (cx_given(z_dim,mods_cx)) GOTO 5300
 !	   IF (cx_mod_curvi .AND.
 !     .	     .NOT.(cx_given(x_dim,mods_cx).AND.cx_given(y_dim,mods_cx))
@@ -236,19 +245,21 @@
 * set the data type of the variable'
 	IF ( cx_category(var_cx) .EQ. cat_file_var ) THEN
 	   cx_type(var_cx) = ptype_float   ! TO BE GENERALIZED LATER (8/00)
-	ELSEIF ( cx_category(var_cx) .EQ. cat_aggregate_var ) THEN
+	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
+	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
+	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
+	ELSEIF (cx_category(var_cx) .EQ. cat_attrib_val) THEN
 
            do_err = .TRUE.
            dset = cx_data_set(var_cx)
-           IF (dset .EQ. unspecified_int4) dset = -1  
+           IF (dset .EQ. unspecified_int4) dset = pdset_uvars  
            CALL  BREAK_VARATTNAME ( newname(1:name_len),
      .                              dset, varname, 
      .                              attname, varid, do_err, status )
@@ -306,10 +317,10 @@
      .		( ferr_unknown_variable, status, full_var_name, *5900 )
 	ENDIF
  5200	CALL ERRMSG( ferr_syntax, status,
-     .		'SIGMA and CURVI can only be used on LET variables'//
+     .		'LAYERZ and CURVI can only be used on LET variables'//
      .		' and file variables: '//full_var_name, *5900 )
 ! 5300	CALL ERRMSG( ferr_syntax, status,
-!     .		'SIGMA must be accompanied by explicit Z limits: '
+!     .		'LAYERZ must be accompanied by explicit Z limits: '
 !     .		//full_var_name, *5900 )
 ! 5350	CALL ERRMSG( ferr_syntax, status,
 !     .		'CURVI must be accompanied by explicit X and Y limits: '
diff --git a/fer/ctx/pseudo_var_context.F b/fer/ctx/pseudo_var_context.F
index 2637b08..de7b958 100644
--- a/fer/ctx/pseudo_var_context.F
+++ b/fer/ctx/pseudo_var_context.F
@@ -70,6 +70,7 @@
 * V581*acm*  6/05 - For fix to bug 1271, add flag line_shift_origin
 *       *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
 *       *acm* 4/12 Add new MODE FOURDEE to allow E,F,M,N,etc as user-vars
+* V695  *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
 
 	include	'ferret.parm'
 	include	'errmsg.parm'
@@ -209,7 +210,8 @@
 	   ELSE
 * ... special processing for calendar pseudo-variables and lat/long formatting
 * *kob* 8/97 check cx_calendar rather then cx_lo_ww
-	      calendar = pvdim.EQ.t_dim .AND. cx_calendar(pvar_cx)
+	      calendar = (pvdim.EQ.t_dim .OR. pvdim.EQ.f_dim) .AND. 
+     .		 cx_calendar(pvdim,pvar_cx)
 	      alloed_tmp = .FALSE.	! assume no dyn axis allocated
 	      IF ( calendar ) THEN
 * ... note: a minor misbehavior:  for the pseudo-variable
@@ -220,7 +222,7 @@
 	         cx_hi_ww(pvdim,pvar_cx) = cx_hi_ww(pvdim,pvar_cx)
      .					/(-1 * daysinsecs)	! days since BC
 * *kob* 9/997 - reset cx_calendar after conversion
-		 cx_calendar(pvar_cx) = .FALSE.
+		 cx_calendar(pvdim,pvar_cx) = .FALSE.
 	         cx_delta(pvdim,pvar_cx) = cx_delta(pvdim,pvar_cx)/24.
 	         CALL TM_ALLO_DYN_LINE( tmp, status )
 	         IF ( status .NE. ferr_ok ) GOTO 5000
diff --git a/fer/dat/SOURCE_FILES b/fer/dat/SOURCE_FILES
index 12475da..8e9fd03 100644
--- a/fer/dat/SOURCE_FILES
+++ b/fer/dat/SOURCE_FILES
@@ -18,7 +18,6 @@ xonedim_data.F\
 xplot_setup_data.F\
 xplot_state_data.F\
 xprog_state_data.F\
-xpyvar_info_data.F\
 xrevision_data.F\
 xtext_info_data.F\
 xvariables_data.F\
diff --git a/fer/dat/xalgebra_data.F b/fer/dat/xalgebra_data.F
index 0c35877..b7cce19 100644
--- a/fer/dat/xalgebra_data.F
+++ b/fer/dat/xalgebra_data.F
@@ -92,6 +92,9 @@
 *                  pseudo-variables
 *       *acm* 4/12 Add new MODE FOURDEE to allow E,F,M,N,etc as user-vars
 * V690 12/13 *sh* added auxiliary regridding transforms
+* 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
 
         IMPLICIT NONE
 	include	'ferret.parm'
@@ -689,10 +692,19 @@
      .		alg_trans_num  ( 43 )	/ trans_avg_wgt  	/,
      .		alg_trans_text ( 44 )	/ 'WG4'  		/, 
      .		alg_trans_title( 44 )	/ '4D weights, avg,int'  /,
-     .		alg_trans_num  ( 44 )	/ trans_4d_avg_wgt  	/
+     .		alg_trans_num  ( 44 )	/ trans_4d_avg_wgt  	/,
+     .		alg_trans_text ( 45 )	/ 'SPX' 		/, 
+     .		alg_trans_title( 45 )	/ 'box smooth w/missing'/,
+     .		alg_trans_num  ( 45 )	/ trans_smth_box_p	/,
+     .		alg_trans_its_int ( 45)	/ .TRUE.		/,
+     .		alg_trans_has_arg ( 45)	/ .TRUE.		/,
+     .		alg_trans_dflt_arg( 45)	/ 3.			/,
+     .		alg_trans_text ( 46 )	/ 'SD4'  		/, 
+     .		alg_trans_title( 46 )	/ '4D stddev'           /,
+     .		alg_trans_num  ( 46 )	/ trans_4d_std  	/
 
-        DATA    (alg_trans_num(i),i = 45, num_transforms)
-     .            /16*unspecified_int4 /
+        DATA    (alg_trans_num(i),i = 47, num_transforms)
+     .            /14*unspecified_int4 /
 
 	DATA
      .		alg_regrid_title( prgrd_exact )		/ ' '	/,
@@ -701,7 +713,7 @@
      .		alg_regrid_title( prgrd_linear_interp )	/ 'lin. interp.'/,
      .		alg_regrid_code ( prgrd_linear_interp )	/ 'LIN'	/,
      .		alg_regrid_vizb ( prgrd_linear_interp )	/ .TRUE.	/,
-     .		alg_regrid_title( prgrd_average )	/ 'box avgd'	/,
+     .		alg_regrid_title( prgrd_average )	/ 'area-wgtd avgd'/,
      .		alg_regrid_code ( prgrd_average )	/ 'AVE'	/,
      .		alg_regrid_vizb ( prgrd_average )	/ .TRUE. 	/,
      .		alg_regrid_title( prgrd_xy_ave )	/ 'area avgd'	/,
@@ -725,10 +737,10 @@
      .		alg_regrid_title( prgrd_max )		/ 'maximum'	/,
      .		alg_regrid_code ( prgrd_max )		/ 'MAX'	/,
      .		alg_regrid_vizb(  prgrd_max )		/ .TRUE.	/,
-     .		alg_regrid_title( prgrd_sum )		/ 'sum'	/,
+     .		alg_regrid_title( prgrd_sum )		/ 'area-wgtd sum'/,
      .		alg_regrid_code ( prgrd_sum )		/ 'SUM'	/,
      .		alg_regrid_vizb(  prgrd_sum )		/ .TRUE.	/,
-     .		alg_regrid_title( prgrd_good_pt )	/ '# gd pts'	/,
+     .		alg_regrid_title( prgrd_good_pt )	/ '#gd pts, area wgtd' /,
      .		alg_regrid_code ( prgrd_good_pt )	/ 'NGD'	/,
      .		alg_regrid_vizb ( prgrd_good_pt )	/ .TRUE.	/,
      .		alg_regrid_title( prgrd_modulo )	/ 'modulo ave'	/,
@@ -755,12 +767,19 @@
      .		alg_regrid_title( prgrd_nearest )	/ 'nearst coord'/,
      .		alg_regrid_code ( prgrd_nearest )	/ 'NRST'	/
      .		alg_regrid_vizb ( prgrd_nearest )	/ .TRUE.	/,
-     .		(alg_regrid_title(i),i=prgrd_nearest+1,max_regrid_trans)
-     .				/11*unspecified_name4/,
-     .		(alg_regrid_code (i),i=prgrd_nearest+1,max_regrid_trans)
-     .				/11*unspecified_name4/,
-     .		(alg_regrid_vizb (i),i=prgrd_nearest+1,max_regrid_trans)
-     .				/11*.FALSE./
+     .		alg_regrid_title( prgrd_bin )		/ 'unwgtd avg'  /,
+     .		alg_regrid_code ( prgrd_bin )		/ 'BIN'		/
+     .		alg_regrid_vizb ( prgrd_bin )		/ .TRUE.	/,
+     .		alg_regrid_title( prgrd_nbin )		/ '#good in bin'/,
+     .		alg_regrid_code ( prgrd_nbin )		/ 'NBIN'	/
+     .		alg_regrid_vizb ( prgrd_nbin )		/ .TRUE.	/,
+
+     .		(alg_regrid_title(i),i=prgrd_nbin+1,max_regrid_trans)
+     .				/8*unspecified_name4/,
+     .		(alg_regrid_code (i),i=prgrd_nbin+1,max_regrid_trans)
+     .				/8*unspecified_name4/,
+     .		(alg_regrid_vizb (i),i=prgrd_nbin+1,max_regrid_trans)
+     .				/8*.FALSE./
 
 
 	DATA
@@ -778,18 +797,23 @@
      .						/ 'box ave from thkness'/,
      .		alg_regrid_code (pauxrgrd_thick_ave)/ unspecified_name4 /,
      .		alg_regrid_vizb (pauxrgrd_thick_ave)	/ .FALSE.	/,
+     .		alg_regrid_title(pauxrgrd_fmrc)
+     .						     / 'reorg T-F array'/,
+     .		alg_regrid_code (pauxrgrd_fmrc)		/ 'FMRC'/,
+     .		alg_regrid_vizb (pauxrgrd_fmrc)		/ .FALSE.	/,
+
      .		(alg_regrid_title(i),
-     .				i=pauxrgrd_thick_ave+1,max_auxregrid_trans)
-     .				/2*unspecified_name4/,
+     .				i=pauxrgrd_fmrc+1,max_auxregrid_trans)
+     .				/1*unspecified_name4/,
      .		(alg_regrid_code (i),
-     .				i=pauxrgrd_thick_ave+1,max_auxregrid_trans)
-     .				/2*unspecified_name4/,
+     .				i=pauxrgrd_fmrc+1,max_auxregrid_trans)
+     .				/1*unspecified_name4/,
      .		(alg_regrid_vizb (i),
-     .				i=pauxrgrd_thick_ave+1,max_auxregrid_trans)
-     .				/2*.FALSE./
+     .				i=pauxrgrd_fmrc+1,max_auxregrid_trans)
+     .				/1*.FALSE./
 
 * translation table for substituting 1D transformations with 4D transforms
-	DATA	num_4d_trans/ 7 /
+	DATA	num_4d_trans/ 8 /
 	DATA	alg_1d_to_4d(1) /trans_average/,
      .		alg_4d_trans(1) /trans_4d_ave/,
      .		alg_1d_to_4d(2) /trans_integ_def/,
@@ -804,6 +828,8 @@
      .		alg_4d_trans(6) /trans_4d_sum/,
      .		alg_1d_to_4d(7) /trans_avg_wgt/,
      .		alg_4d_trans(7) /trans_4d_avg_wgt/
+     .		alg_1d_to_4d(8) /trans_std_dev/,
+     .		alg_4d_trans(8) /trans_4d_std/
 
 	END
 
diff --git a/fer/dat/xcommand_data.F b/fer/dat/xcommand_data.F
index 98616ea..9fc2f98 100644
--- a/fer/dat/xcommand_data.F
+++ b/fer/dat/xcommand_data.F
@@ -213,9 +213,20 @@
 * PyFr  *kms*  8/13 Add /ANNOTATE to FRAME
 * V685 *sh*  9/13  Add SHOW VARIABLE/TREE and alias VTREE
 * V685 *acm* 11/13 Add /QUIET for DEFINE ATTRIBUTE
-* V690 *sh* 12/13 Add /CURVILINEAR and /SIGMA to action commands
-*		  Add SET,CANCEL,SHOW VARIABLE/SIGMA/CURVI
+* V690 *sh* 12/13 Add /CURVILINEAR and /LAYERZ to action commands (formerly /SIGMA)
+*		  Add SET,CANCEL,SHOW VARIABLE/LAYERZ/CURVI  	  (formerly /SIGMA)
 * V687  3/14 *acm* add SET AXIS/NAME
+* V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
+* V695 *acm*  2/15 Add DEFINE AGGREGATE/F alias, FMRC
+* V695 *acm*  3/15 Changes for PyFerret fonts. Add SHOW TEXT, 
+*             4/15 Add SET TEXT/FONT/COLOR/ITALIC/BOLD/ISIZ
+*                  Add CANCEL TEXT/FONT/COLOR/ITALIC/BOLD/ISIZ
+*                  No args on SHOW TEXT
+* V695 *acm*  6/16 New ANNOTATE command.
+* V695 *acm*  6/16 New subcommand DEFINE ANNOTATION
+* 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
 
         IMPLICIT NONE
 	include 'ferret.parm'
@@ -256,7 +267,7 @@
 		DATA qualifiers  (nqual_at1b+15)/ 'XINCHES'	/
 		DATA qualifiers  (nqual_at1b+16)/ 'YINCHES'	/
 		DATA qualifiers  (nqual_at1b+17)/ 'TEXTPROM'	/
-		DATA qualifiers  (nqual_at1b+18)/ '****'	/
+		DATA qualifiers  (nqual_at1b+18)/ 'OUTLINE'	/
 		DATA qualifiers  (nqual_at1b+19)/ '****'	/
 * SET REGION
 	   DATA subcommands      (nsub_at1 + 2)	/ 'REGION'	/
@@ -367,9 +378,9 @@
 	   DATA subcommands      (nsub_at1 + 9)	/ 'VARIABLE'	/
 	   DATA num_qualifs      (nsub_at1 + 9)	/ nqual1j	/
 	   DATA qualifier_pointer(nsub_at1 + 9)	/ nqual_at1j	/
-* SET VARIABLE/TITLE/UNIT/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE
+* SET VARIABLE/TITLE/UNITS/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE
 		DATA qualifiers  (nqual_at1j+0)	/ 'TITLE'	/
-		DATA qualifiers  (nqual_at1j+1)	/ 'UNIT'	/
+		DATA qualifiers  (nqual_at1j+1)	/ 'UNITS'	/
 		DATA qualifiers  (nqual_at1j+2)	/ 'GRID'	/
 		DATA qualifiers  (nqual_at1j+3)	/ 'BAD'	/
 		DATA qualifiers  (nqual_at1j+4)	/ 'DATASET'	/
@@ -377,7 +388,7 @@
 		DATA qualifiers  (nqual_at1j+6)	/ 'SCALEFAC'	/
 		DATA qualifiers  (nqual_at1j+7)	/ 'OFFSET'	/
 		DATA qualifiers  (nqual_at1j+8)	/ 'OUTTYPE'	/
-		DATA qualifiers  (nqual_at1j+9)	/ 'SIGMA'	/
+		DATA qualifiers  (nqual_at1j+9)	/ 'LAYERZ'	/
 		DATA qualifiers  (nqual_at1j+10)/ 'CURVILINEAR'	/
 		DATA qualifiers  (nqual_at1j+11)/ '****'	/
 		DATA qualifiers  (nqual_at1j+12)/ '****'	/
@@ -448,15 +459,17 @@
 	   DATA subcommands      (nsub_at1 +16)	/ 'GIFFILE'	/
 	   DATA num_qualifs      (nsub_at1 +16)	/ nqual1q	/
 	   DATA qualifier_pointer(nsub_at1 +16)	/ nqual_at1q	/
-* SET ****							  ! unused (r)
-           DATA subcommands      (nsub_at1 +17)	/ '****'	/
+* SET TEXT							  ! set text properties for PyFerret fonts
+           DATA subcommands      (nsub_at1 +17)	/ 'TEXT'	/
            DATA num_qualifs      (nsub_at1 +17)	/ nqual1r	/
            DATA qualifier_pointer(nsub_at1 +17)	/ nqual_at1r	/
-* SET **** / ****
-                DATA qualifiers  (nqual_at1r+0)	/ '****'	/
-                DATA qualifiers  (nqual_at1r+1)	/ '****'	/
-                DATA qualifiers  (nqual_at1r+2)	/ '****'	/
-                DATA qualifiers  (nqual_at1r+3)	/ '****'	/
+* SET TEXT /FONT /COLOR /ITALIC /BOLD 
+                DATA qualifiers  (nqual_at1r+0)	/ 'FONT'	/
+                DATA qualifiers  (nqual_at1r+1)	/ 'COLOR'	/
+                DATA qualifiers  (nqual_at1r+2)	/ 'ITALIC'	/
+                DATA qualifiers  (nqual_at1r+3)	/ 'BOLD'	/
+                DATA qualifiers  (nqual_at1r+4)	/ 'ISIZ'	/
+                DATA qualifiers  (nqual_at1r+5)	/ '****'	/
 * SET ****							  ! unused (s)
 	   DATA subcommands      (nsub_at1 +18)	/ '****'	/
 	   DATA num_qualifs      (nsub_at1 +18)	/ nqual1s	/
@@ -583,7 +596,7 @@
 		DATA qualifiers  (nqual_at2j+6)	/ 'APPEND'	/
 		DATA qualifiers  (nqual_at2j+7)	/ 'CLOBBER'	/
 		DATA qualifiers  (nqual_at2j+8)	/ 'TREE'	/ ! was /DEPENDENCY
-		DATA qualifiers  (nqual_at2j+9)	/ 'SIGMA'	/
+		DATA qualifiers  (nqual_at2j+9)	/ 'LAYERZ'	/
 		DATA qualifiers  (nqual_at2j+10)/ 'CURVILINEAR'	/
 		DATA qualifiers  (nqual_at2j+11)/ '****'	/
 		DATA qualifiers  (nqual_at2j+12)/ '****'	/
@@ -687,14 +700,23 @@
 		DATA qualifiers  (nqual_at2u+4)	/ 'DETAILS'	/
 		DATA qualifiers  (nqual_at2u+5)	/ '****'	/
 		DATA qualifiers  (nqual_at2u+6)	/ '****'	/
+
+* SHOW TEXT         ! view text properties for PyFerret fonts
+           DATA subcommands      (nsub_at2 +21)/ 'TEXT'	/
+           DATA num_qualifs      (nsub_at2 +21)	/ nqual2v	/
+           DATA qualifier_pointer(nsub_at2 +21)	/ nqual_at2v	/
+* SHOW TEXT  / ****
+                DATA qualifiers  (nqual_at2v+0)	/ '****'	/
+                DATA qualifiers  (nqual_at2v+1)	/ '****'	/
+
 * SHOW QUERIES							 
-	   DATA subcommands      (nsub_at2 +21)	/ 'QUERIES'	/
-	   DATA num_qualifs      (nsub_at2 +21)	/ nqual2v	/
-	   DATA qualifier_pointer(nsub_at2 +21)	/ nqual_at2v	/
+	   DATA subcommands      (nsub_at2 +22)	/ 'QUERIES'	/
+	   DATA num_qualifs      (nsub_at2 +22)	/ nqual2w	/
+	   DATA qualifier_pointer(nsub_at2 +22)	/ nqual_at2w	/
 * SHOW QUERIES / ****
-		DATA qualifiers  (nqual_at2v+0)	/ 'ALL'		/
-		DATA qualifiers  (nqual_at2v+1)	/ '****'	/
-		DATA qualifiers  (nqual_at2v+2)	/ '****'	/
+		DATA qualifiers  (nqual_at2w+0)	/ 'ALL'		/
+		DATA qualifiers  (nqual_at2w+1)	/ '****'	/
+		DATA qualifiers  (nqual_at2w+2)	/ '****'	/
 
 * CANCEL	 - command # 3
 	DATA commands(3)			/ 'CANCEL'	/
@@ -785,9 +807,9 @@
 	   DATA qualifier_pointer(nsub_at3 +10)	/ nqual_at3k	/
 		DATA qualifiers  (nqual_at3k+0)	/ 'ALL '	/
 		DATA qualifiers  (nqual_at3k+1)	/ 'DATASET'	/
-		DATA qualifiers  (nqual_at3k+2)	/ 'SIGMA'	/
+		DATA qualifiers  (nqual_at3k+2)	/ 'LAYERZ'	/
 		DATA qualifiers  (nqual_at3k+3)	/ 'CURVILINEAR'	/
-		DATA qualifiers  (nqual_at3k+4)	/ '****'	/
+		DATA qualifiers  (nqual_at3k+4)	/ 'NOERROR'	/
 		DATA qualifiers  (nqual_at3k+5)	/ '****'	/
 * CANCEL AXIS
 	   DATA subcommands      (nsub_at3 +11)	/ 'AXIS'	/
@@ -837,13 +859,17 @@
 		DATA qualifiers  (nqual_at3s+0)	/ 'ALL'		/
 		DATA qualifiers  (nqual_at3s+1)	/ 'DATASET'	/
 		DATA qualifiers  (nqual_at3s+2)	/ '****'	/
-* CANCEL ****							  ! unused(t)
-	   DATA subcommands      (nsub_at3 +19)	/ '****'	/
+* CANCEL TEXT				                          ! unset text properties for PyFerret fonts
+	   DATA subcommands      (nsub_at3 +19)	/ 'TEXT'	/
 	   DATA num_qualifs      (nsub_at3 +19)	/ nqual3t	/
 	   DATA qualifier_pointer(nsub_at3 +19)	/ nqual_at3t	/
-		DATA qualifiers  (nqual_at3t+0)	/ '****'	/
-		DATA qualifiers  (nqual_at3t+1)	/ '****'	/
-		DATA qualifiers  (nqual_at3t+2)	/ '****'	/
+		DATA qualifiers  (nqual_at3t+0)	/ 'FONT'	/
+		DATA qualifiers  (nqual_at3t+1)	/ 'COLOR'	/
+		DATA qualifiers  (nqual_at3t+2)	/ 'ITALIC'	/
+		DATA qualifiers  (nqual_at3t+3)	/ 'BOLD'	/
+		DATA qualifiers  (nqual_at3t+4)	/ 'ISIZ'	/
+		DATA qualifiers  (nqual_at3t+5)	/ 'ALL'		/
+		DATA qualifiers  (nqual_at3t+6)	/ '****'	/
 
 * CONTOUR - command # 4
 	DATA commands(4)			/ 'CONTOUR'	/
@@ -966,7 +992,7 @@
 		DATA qualifiers  (nqual_at5a+52)/ 'ENDIAN'/
 		DATA qualifiers  (nqual_at5a+53)/ 'OUTTYPE'/
 		DATA qualifiers  (nqual_at5a+54)/ 'CURVILIN'/
-		DATA qualifiers  (nqual_at5a+55)/ 'SIGMA'/
+		DATA qualifiers  (nqual_at5a+55)/ 'LAYERZ'/
 		DATA qualifiers  (nqual_at5a+56)/ '****'/
 		DATA qualifiers  (nqual_at5a+57)/ '****'/
 		DATA qualifiers  (nqual_at5a+58)/ '****'/
@@ -1029,7 +1055,8 @@
 		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)/ 'OPACITY'/	! overriding opacity
+		DATA qualifiers  (nqual_at6a+47)/ 'GAPLOC'/	! A variable marking gaps to insert in PLOT/VS
+		DATA qualifiers  (nqual_at6a+48)/ 'OPACITY'/	! overriding opacity
 
 * GO	 - command # 7
 	DATA commands(7)			/ 'GO  '	/
@@ -1227,18 +1254,32 @@
 	   DATA subcommands      (nsub_at10 + 10)/ 'DATA'	/
 	   DATA num_qualifs      (nsub_at10 + 10)/ nqual10k	/
 	   DATA qualifier_pointer(nsub_at10 + 10)/ nqual_at10k	/
-* DEFINE DATA / AGGREGATE / TITLE /HIDE /E 
+* DEFINE DATA / AGGREGATE / TITLE /HIDE /E /F 
 		DATA qualifiers  (nqual_at10k+ 0)/ 'AGGREGATE' /
 		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+ 5)/ 'E'    /
-		DATA qualifiers  (nqual_at10k+ 6)/ '****' / ! f
+		DATA qualifiers  (nqual_at10k+ 5)/ 'E'    / ! e
+		DATA qualifiers  (nqual_at10k+ 6)/ 'F'    / ! f
 		DATA qualifiers  (nqual_at10k+ 7)/ 'TITLE' /
 		DATA qualifiers  (nqual_at10k+ 8)/ 'QUIET' /
-		DATA qualifiers  (nqual_at10k+ 9)/ 'HIDE' /
-
+		DATA qualifiers  (nqual_at10k+ 9)/ 'HIDE' /	
+* DEFINE ANNOTATION
+	   DATA subcommands      (nsub_at10 + 11)/ 'ANNOTATION'	/
+	   DATA num_qualifs      (nsub_at10 + 11)/ nqual10l	/
+	   DATA qualifier_pointer(nsub_at10 + 11)/ nqual_at10l	/
+* DEFINE ANNOTATION /USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
+		DATA qualifiers  (nqual_at10l+ 0)/ 'USER' /
+		DATA qualifiers  (nqual_at10l+ 1)/ 'NORM' /
+		DATA qualifiers  (nqual_at10l+ 2)/ 'NOUSER' /
+		DATA qualifiers  (nqual_at10l+ 3)/ 'XPOS' /
+		DATA qualifiers  (nqual_at10l+ 4)/ 'YPOS' /
+		DATA qualifiers  (nqual_at10l+ 5)/ 'HALIGN' /
+		DATA qualifiers  (nqual_at10l+ 6)/ 'VALIGN' /
+		DATA qualifiers  (nqual_at10l+ 7)/ 'ANGLE' /
+		DATA qualifiers  (nqual_at10l+ 8)/ 'SIZE' /
+		DATA qualifiers  (nqual_at10l+ 9)/ 'NLAB' /
 * EXIT	 - command # 11
 	DATA commands(11)			/ 'EXIT'	/
         DATA its_action_command(11)             / .FALSE.       /
@@ -1664,18 +1705,28 @@
 		DATA qualifiers  (nqual_at27a+42)/ 'OPACITY'/	! overriding opacity
 		DATA qualifiers  (nqual_at27a+43)/ '****'/
 
-* **** - command # 28
-	DATA commands(28)			/ '****'	/
+* ANNOTATE - command # 28
+	DATA commands(28)			/ 'ANNOTATE'	/
         DATA its_action_command(28)             / .FALSE.       /
 	DATA num_subcommands(28)		/ nsub28	/
 	DATA subcommand_pointer(28)		/ nsub_at28	/
-* **** '    '
+* ANNOTATE '    '
 	   DATA subcommands      (nsub_at28 + 0)	/ '    '	/
 	   DATA num_qualifs      (nsub_at28 + 0)	/ nqual28a	/
 	   DATA qualifier_pointer(nsub_at28 + 0)	/ nqual_at28a	/
-* **** / ****
-		DATA qualifiers  (nqual_at28a+0)/ '****'	/
-		DATA qualifiers  (nqual_at28a+1)/ '****'	/
+* ANNOTATE /USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE
+		DATA qualifiers  (nqual_at28a+0)/ 'USER'	/
+		DATA qualifiers  (nqual_at28a+1)/ 'NORM'	/
+		DATA qualifiers  (nqual_at28a+2)/ 'NOUSER'	/
+		DATA qualifiers  (nqual_at28a+3)/ 'XPOS'	/
+		DATA qualifiers  (nqual_at28a+4)/ 'YPOS'	/
+		DATA qualifiers  (nqual_at28a+5)/ 'HALIGN'	/
+		DATA qualifiers  (nqual_at28a+6)/ 'VALIGN'	/
+		DATA qualifiers  (nqual_at28a+7)/ 'ANGLE'	/
+		DATA qualifiers  (nqual_at28a+8)/ 'SIZE'	/
+		DATA qualifiers  (nqual_at28a+9)/ '****'	/
+		DATA qualifiers  (nqual_at28a+10)/ '****'	/
+		DATA qualifiers  (nqual_at28a+11)/ '****'	/
 
 * **** - command # 29
 	DATA commands(29)			/ '****'	/
@@ -1770,16 +1821,19 @@
      .		alias_name(22)	/ 'ENSEMBLE' /,
      .		alias_len(22)	/ 22 /,
      .		alias(22)	/ 'DEFINE DATA/AGGREGAT/E' /
-     .		alias_name(23)	/ 'VTREE' /,
-     .		alias_len(23)	/ 13 /,
-     .		alias(23)	/ 'SHOW VAR/TREE' /
+     .		alias_name(23)	/ 'FMRC' /,
+     .		alias_len(23)	/ 22 /,
+     .		alias(23)	/ 'DEFINE DATA/AGGREGAT/F' /
+     .		alias_name(24)	/ 'VTREE' /,
+     .		alias_len(24)	/ 13 /,
+     .		alias(24)	/ 'SHOW VAR/TREE' /
 
         DATA
      .		(alias_name(i),i=num_predefined_alias+1,150)
-     .                   / 127*unspecified_name4 /,
-     .		(alias_len(i),i=num_predefined_alias+1,150) / 127*4 /,
+     .                   / 126*unspecified_name4 /,
+     .		(alias_len(i),i=num_predefined_alias+1,150) / 126*4 /,
      .		(alias(i),i=num_predefined_alias+1,150)
-     .                   / 127*unspecified_name4 /
+     .                   / 126*unspecified_name4 /
 
 
 	DATA queries(1) / 'STATUS' /,
diff --git a/fer/dat/xfgrdel_data.F b/fer/dat/xfgrdel_data.F
index d9cde8a..5f20a85 100644
--- a/fer/dat/xfgrdel_data.F
+++ b/fer/dat/xfgrdel_data.F
@@ -67,6 +67,9 @@
 * Scaling factor for line widths and symbol sizes
         DATA thickfactor / maxwindowobjs * dflt_thicken /
 
+* Width of outlines for rectangles and other polygons
+        DATA outlinewidth / maxwindowobjs * 0.0 /
+
 * Coordinate transformation data independent of windows
         DATA viewleftfrac / maxtransforms * 0.0 /
         DATA viewbottomfrac / maxtransforms * 0.0 /
diff --git a/fer/dat/xprog_state_data.F b/fer/dat/xprog_state_data.F
index 64c069d..a4a861e 100644
--- a/fer/dat/xprog_state_data.F
+++ b/fer/dat/xprog_state_data.F
@@ -107,7 +107,7 @@
 *                   include tmap_dims.parm for nferdims needed by xprog_state.cmn
 *       *acm* 4/12 Add new MODE FOURDEE to allow E,F,M,N,etc as user-vars
 *       *acm* 4/12 Remove MODE FOURDEE, using _E, _F, _M, _N instead, throughout.
-* V6.8  acm  6/12 Instead of mode_ensemble_lab, mode_forecast_lab, use mode_6d_lab, 
+* V6.8  acm  6/12 Instead of mode_ensemble_lab, mode_forecast_lab, use mode_F_LAB, 
 *                 which will be on by default. If canceled, the various SHOW and 
 *                 LIST commands, etc, will not list info for E,F dimensions.
 * V683  *acm* 8/12 - add new MODE SHRINK_YLAB
@@ -115,6 +115,12 @@
 * PyFr  *kms* 8/12 - frame file ferret.gif -> ferret.png
 * V685  *sh* 11/13 - added allowed_err for SH VAR/TREE
 * V690  *sh* 12/13 - added mode_curvilinear, mode_sigma
+* V694 11/14 *sh* renaming 'sigma' as 'layerz' throughout
+* V695  *acm* 5/15 logical flag its_pyferret 
+* V695  *acm* 5/13 - Ticket 2281: mode_e_lab and mode_f_lab to act as mode_lon_lab, etc, 
+*                    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.)
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -173,7 +179,9 @@
      .					/ mode_stack_size*.TRUE.    /,
      .		(mode_state( pmode_time_lab    ,i), i=1,mode_stack_size)
      .					/ mode_stack_size*.TRUE.    /,
-     .		(mode_state( pmode_6d_lab      ,i), i=1,mode_stack_size)
+     .		(mode_state( pmode_E_LAB      ,i), i=1,mode_stack_size)
+     .					/ mode_stack_size*.TRUE.    /,
+     .		(mode_state( pmode_F_LAB      ,i), i=1,mode_stack_size)
      .					/ mode_stack_size*.TRUE.    /
 	DATA	(mode_state( pmode_font_ascii  ,i), i=1,mode_stack_size)
      .					/ mode_stack_size*.TRUE.    /,
@@ -215,8 +223,10 @@
      .					/ mode_stack_size*.FALSE.   /
      .		(mode_state( pmode_curvilinear,i), i=1,mode_stack_size)
      .					/ mode_stack_size*.FALSE.   /
-     .		(mode_state( pmode_sigma,i), i=1,mode_stack_size)
+     .		(mode_state( pmode_layerz,i), i=1,mode_stack_size)
      .					/ mode_stack_size*.FALSE.   /
+     .		(mode_state( pmode_6d_lab,i), i=1,mode_stack_size)
+     .					/ mode_stack_size*.TRUE.   /
 
 	DATA	mode_name ( pmode_diagnostic  )	/ 'DIAGNOSTIC  ' /,
      .		mode_name ( pmode_verify      )	/ 'VERIFY      ' /,
@@ -228,7 +238,8 @@
      .		mode_name ( pmode_lat_lab     )	/ 'LATIT_LABEL'  /,
      .		mode_name ( pmode_depth_lab   )	/ 'DEPTH_LABEL'  /,
      .		mode_name ( pmode_time_lab    )	/ 'CALENDAR'     /,
-     .		mode_name ( pmode_6d_lab)	/ '6D_LAB'       /,
+     .		mode_name ( pmode_E_LAB)	/ 'E_LABEL'      /,
+     .		mode_name ( pmode_F_LAB)	/ 'F_LABEL'      /,
      .		mode_name ( pmode_font_ascii  )	/ 'ASCII_FONT'   /,
      .		mode_name ( pmode_segment     )	/ 'SEGMENT'      /,
      .		mode_name ( pmode_wait        )	/ 'WAIT'         /,
@@ -249,9 +260,8 @@
      .		mode_name ( pmode_nodata_lab  ) / 'NODATA_LAB'   /,
      .		mode_name ( pmode_shrink_ylab ) / 'SHRINK_YLAB'  /,
      .		mode_name ( pmode_curvilinear ) / 'CURVILINEAR'  /,
-     .		mode_name ( pmode_sigma       ) / 'SIGMA'        /,
-     .		mode_name ( 33     ) / pmode_unused /,
-     .		mode_name ( 34     ) / pmode_unused /,
+     .		mode_name ( pmode_layerz      ) / 'LAYERZ'       /,
+     .		mode_name ( pmode_6d_lab      ) / '6D_LAB'       /,
      .		mode_name ( 35     ) / pmode_unused /,
      .		mode_name ( 36     ) / pmode_unused /,
      .		mode_name ( 37     ) / pmode_unused /,
@@ -279,8 +289,10 @@
      .				/ mode_stack_size*-4 /, ! 4 sig. digs. less 0's
      .		(mode_arg  ( pmode_time_lab    ,i), i=1,mode_stack_size)
      .				/ mode_stack_size*-5 /, ! dd-mmm-yyyy:hh:mm
-     .		(mode_arg  ( pmode_6d_lab     ,i), i=1,mode_stack_size)
-     .				/ mode_stack_size*unspecified_int4 / 
+     .		(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 / 
 	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)
@@ -321,7 +333,9 @@
      .				/ mode_stack_size*unspecified_int4 /
      .		(mode_arg  ( pmode_curvilinear,i), i=1,mode_stack_size)
      .				/ mode_stack_size*unspecified_int4 /
-     .		(mode_arg  ( pmode_sigma,i), i=1,mode_stack_size)
+     .		(mode_arg  ( pmode_layerz,i), i=1,mode_stack_size)
+     .				/ mode_stack_size*unspecified_int4 /
+     .		(mode_arg  ( pmode_6d_lab,i), i=1,mode_stack_size)
      .				/ mode_stack_size*unspecified_int4 /
 
 * If the value of nlevels is changed, also change NLEV in plot/ppldata.F
@@ -360,11 +374,11 @@
 	DATA	denig_xylim_msg_done / .FALSE. /
 	DATA	denig_pen_msg_done / .FALSE. /
 
-* auto sigma and curvilinear states
-	DATA	mode_auto_curvi      /.FALSE./,
-     .		mode_auto_curvi_last /.FALSE./,
-     .		mode_auto_sigma      /.FALSE./,
-     .		mode_auto_sigma_last /.FALSE./
+* auto layerz and curvilinear states
+	DATA	mode_auto_curvi       /.FALSE./,
+     .		mode_auto_curvi_last  /.FALSE./,
+     .		mode_auto_layerz      /.FALSE./,
+     .		mode_auto_layerz_last /.FALSE./
 
 * miscellaneous
 	DATA	saved_dset		/ unspecified_int4 /
@@ -375,5 +389,6 @@
         DATA    allowed_err             / .FALSE. /  ! briefly set true in SHOW VAR/TREE
         DATA    grat_on                 / .FALSE. /
         DATA    num_linecolors          / 6 /
+        DATA    its_pyferret            / .TRUE. /
 
 	END
diff --git a/fer/dat/xrevision_data.F b/fer/dat/xrevision_data.F
index 1a6179a..3e9ef7f 100644
--- a/fer/dat/xrevision_data.F
+++ b/fer/dat/xrevision_data.F
@@ -117,13 +117,23 @@
 * v6.926   fix ticket 2203, 2200
 * v6.927   fix ticket 2205, 2206
 * v6.93    release
+* v6.931   to gfdl
+* v6.932   to John Maurer, bug 2223 and tag v_6_9_32_GFDL23Dec
+* v6.933   to GFDL tag v_6_9_33_GFDL27Jan15
+* v6.94    Ferret release to go with LAS 8.4
+* v6.941   Version number for post-v6.94 development
+* v6.942   Version number for post-v6.94 development 5/8/2015
+* v6.943   To GFDL  tag v_6_9_43_GFDL_2Jun15 tickets thru 2296
+* v6.95    release for LAS8.4
+* v6.951   New development
+* v6.96    little release with @BIN @NBIN regrid; high-res time plots
 
         IMPLICIT NONE
 	include	'xrevision.cmn'
 
 	DATA program_name	/ 'FERRET' /
 	DATA len_program_name	/  6       /
-	DATA revision_level	/  6.93   /
+	DATA revision_level	/  6.96    /
 
 ! Note we can put a debug title in the Ferret startup header lines
 ! by putting a title into the Makefile: $(MAKE) "DEBUG_TITLE=beta" update
diff --git a/fer/dat/xvariables_data.F b/fer/dat/xvariables_data.F
index 3f269eb..d2db40c 100644
--- a/fer/dat/xvariables_data.F
+++ b/fer/dat/xvariables_data.F
@@ -60,6 +60,7 @@
 *			  because it needed a preprocessor.
 *       2/12 *kms* Add E and F dimensions (set to nferdims in tmap_dims.parm)
 * V685+: 3/14 *sh* - initialize max_usable_intrp
+* V695+: 5/15 *sh* - initialize uvar_c_cache_ptr
 
         IMPLICIT NONE
 #include "tmap_dset.parm"
@@ -120,6 +121,7 @@
         DATA uvar_num_items_head / 0 /
         DATA uvar_num_items_padding / 0 /
 	DATA uvar_num_items	/ max_uvar*uvar_deleted /
+	DATA uvar_c_cache_ptr	/ max_uvar*0.0 /
 	DATA num_uvars_in_cmnd	/ cmnd_uvars_not_given	/
 
 	
diff --git a/fer/doo/SOURCE_FILES b/fer/doo/SOURCE_FILES
index e0a1801..93ff770 100644
--- a/fer/doo/SOURCE_FILES
+++ b/fer/doo/SOURCE_FILES
@@ -3,7 +3,9 @@ asn_regrid_1_axis.F\
 asn_ptr_regrid_1_axis.F\
 ave_regrid_1_axis.F\
 binom_wt.F\
+bin_regrid_1_axis.F\
 convolve.F\
+convolve_p.F\
 days_from_day0.F\
 dd1step.F\
 dd2step.F\
@@ -15,19 +17,23 @@ do_4d_nbd.F\
 do_4d_ngd.F\
 do_4d_string_goodbad.F\
 do_4d_string_trans.F\
+do_4d_std.F\
 do_4d_sum.F\
 do_4d_trans.F\
 do_4d_var.F\
 do_4d_wgt.F\
 do_asn_regrid.F\
+do_aux_regrid_line_ave.F\
+do_aux_regrid_line_lin.F\
 do_aux_var_regrid.F\
 do_aux_var_regrid_1d.F\
-do_aux_var_regrid_line_ave.F\
-do_aux_var_regrid_line_lin.F\
+do_aux_var_regrid_1d_t.F\
+do_aux_var_regrid_2d_tf.F\
 do_ave_int.F\
 do_ave_regrid.F\
 do_average.F\
 do_avg_wgt.F\
+do_bin_regrid.F\
 do_deriv_bkwd.F\
 do_deriv_cntr.F\
 do_deriv_frwd.F\
@@ -60,6 +66,7 @@ do_run_sum_sub.F\
 do_shift.F\
 do_smth_binml.F\
 do_smth_box.F\
+do_smth_box_p.F\
 do_smth_hanng.F\
 do_smth_max.F\
 do_smth_median.F\
diff --git a/fer/doo/ave_regrid_1_axis.F b/fer/doo/ave_regrid_1_axis.F
index 33513b9..c5549f2 100644
--- a/fer/doo/ave_regrid_1_axis.F
+++ b/fer/doo/ave_regrid_1_axis.F
@@ -177,7 +177,7 @@
 	         xsrc_max = TM_WORLD(srcss,src_grid,axis,box_hi_lim)
 
 	        src_encloses = 
-     .               (xdst_lo.GE.xsrc_min .AND. xdst_hi.LE.xsrc_max) 
+     .               (xdst_lo.GT.xsrc_min .AND. xdst_hi.LT.xsrc_max) 
 
 	         xsrc_lo = MAX(xsrc_min,xdst_lo)
 	         xsrc_hi = MIN(xsrc_max,xdst_hi )
@@ -256,7 +256,7 @@
 	         xsrc_max = TM_WORLD(srcss,src_grid,axis,box_hi_lim)
 
 	        src_encloses = 
-     .               (xdst_lo.GE.xsrc_min .AND. xdst_hi.LE.xsrc_max) 
+     .               (xdst_lo.GT.xsrc_min .AND. xdst_hi.LT.xsrc_max) 
 
 	         xsrc_lo = MAX(xsrc_min,xdst_lo)
 	         xsrc_hi = MIN(xsrc_max,xdst_hi)
@@ -334,7 +334,7 @@
 	         xsrc_max = TM_WORLD(srcss,src_grid,axis,box_hi_lim)
 
 	        src_encloses = 
-     .               (xdst_lo.GE.xsrc_min .AND. xdst_hi.LE.xsrc_max) 
+     .               (xdst_lo.GT.xsrc_min .AND. xdst_hi.LT.xsrc_max) 
 
 	         xsrc_lo = MAX(xsrc_min,xdst_lo)
 	         xsrc_hi = MIN(xsrc_max,xdst_hi )
@@ -415,7 +415,7 @@
 	         xsrc_max = TM_WORLD(srcss,src_grid,axis,box_hi_lim)
 
 	        src_encloses = 
-     .               (xdst_lo.GE.xsrc_min .AND. xdst_hi.LE.xsrc_max) 
+     .               (xdst_lo.GT.xsrc_min .AND. xdst_hi.LT.xsrc_max) 
 
 	         xsrc_lo = MAX(xsrc_min,xdst_lo)
 	         xsrc_hi = MIN(xsrc_max,xdst_hi)
@@ -433,7 +433,8 @@
 	            ELSE	! average or variance
 	               sum   = sum  + ddist * src(i, j, k, srcss, m, n)
 	            ENDIF
-	         ENDIF
+	         ENDIF 
+
  410	      CONTINUE
 
 	      IF ( trans.EQ.prgrd_good_pt ) THEN
@@ -495,7 +496,7 @@
 	         xsrc_max = TM_WORLD(srcss,src_grid,axis,box_hi_lim)
 
 	        src_encloses = 
-     .               (xdst_lo.GE.xsrc_min .AND. xdst_hi.LE.xsrc_max) 
+     .               (xdst_lo.GT.xsrc_min .AND. xdst_hi.LT.xsrc_max) 
 
 	         xsrc_lo = MAX(xsrc_min,xdst_lo)
 	         xsrc_hi = MIN(xsrc_max,xdst_hi)
@@ -575,7 +576,7 @@
 	         xsrc_max = TM_WORLD(srcss,src_grid,axis,box_hi_lim)
 
 	        src_encloses = 
-     .               (xdst_lo.GE.xsrc_min .AND. xdst_hi.LE.xsrc_max) 
+     .               (xdst_lo.GT.xsrc_min .AND. xdst_hi.LT.xsrc_max) 
 
 	         xsrc_lo = MAX(xsrc_min,xdst_lo)
 	         xsrc_hi = MIN(xsrc_max,xdst_hi)
diff --git a/fer/doo/bin_regrid_1_axis.F b/fer/doo/bin_regrid_1_axis.F
new file mode 100644
index 0000000..7c2aab6
--- /dev/null
+++ b/fer/doo/bin_regrid_1_axis.F
@@ -0,0 +1,495 @@
+	SUBROUTINE BIN_REGRID_1_AXIS(cx_lims, axis, trans,
+     .				 src, msrc, dst, mdst, ss21, src_cx,
+     .                           dst_cx, wksize )
+*
+*
+*  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. 
+*
+*
+* 	Using data values from src organized on grid src_grid, regrid to
+* 	grid dst_grid by binning withing boxes along one axis
+*       @BIN returns binned data, @NBIN returns number of valid source
+*       points in the destination grid cell
+
+* 	msrc and mdst point to data structures in COMMON/XVARIABLES/ which
+
+* 	specify the subscript bounds of src and dst within their 
+* 	respective grids.
+
+*	ss21 holds the indices of source grid boxes (on src_grid) for box
+*	limits on dst_grid.
+
+* 	programmer - Ansley Manke
+* 	NOAA/PMEL,Seattle,WA - TMAP/ SDIG  11/2/2015
+
+        IMPLICIT NONE
+        include 'tmap_dims.parm'
+	include 'ferret.parm'
+	include 'xcontext.cmn'
+	include 'xmem_subsc.cmn'
+	include 'xvariables.cmn'
+
+* calling argument declarations:
+	INTEGER cx_lims, axis, trans, msrc, mdst, wksize
+	INTEGER ss21(wksize)
+
+	REAL    src( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
+     .	             m1lot:m1hit,m1loe:m1hie,m1lof:m1hif ),
+     .	        dst( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,
+     .	             m2lot:m2hit,m2loe:m2hie,m2lof:m2hif )
+
+* local variable declarations:
+
+        LOGICAL         ok_neg111, coord_in_dst
+        INTEGER		dstss,srcss,src_grid,dst_grid,i,j,k,l,m,n
+	INTEGER	     	srcss_lo,srcss_hi, dstss_lo, dstss_hi,
+     .                  src_cx, dst_cx
+
+	REAL		ddist, bad_src, bad_dst
+	REAL*8		TM_WORLD, TDEST_WORLD, sum,
+     .			xsrc_min, xsrc_max, 
+     .			xdst_lo, xdst_hi, xsrc_pt, nsrc_in_dst
+******************************************************************************
+
+* initialize
+	src_grid = mr_grid( msrc )
+	dst_grid = mr_grid( mdst )
+
+* limits for calculation
+        srcss_lo = mr_lo_ss(msrc,axis)
+        srcss_hi = mr_hi_ss(msrc,axis)
+
+* Range of subscripts might be negative, and contain the value of unspecified_int4 
+* among them.  ok_neg111 distinguishes between this and the flag unspecified_int4.
+
+        ok_neg111 = srcss_lo .LT. unspecified_int4 .AND.
+     .              srcss_hi .GT. unspecified_int4
+
+        dstss_lo = cx_lo_ss(cx_lims,axis)
+        dstss_hi = cx_hi_ss(cx_lims,axis)
+
+* flag for bad/missing data
+        bad_src = mr_bad_data(msrc)
+        bad_dst = mr_bad_data(mdst)
+
+* determine the source grid boxes containing the destination box edges
+	CALL GET_AVE_LIMS( srcss_lo, srcss_hi, src_grid,
+     .			   dstss_lo, dstss_hi, dst_grid,
+     .			   axis, ss21 )
+
+* along X axis
+        IF ( axis .EQ. x_dim ) THEN
+           DO 190 n = cx_lo_s6(cx_lims), cx_hi_s6(cx_lims)
+           DO 190 m = cx_lo_s5(cx_lims), cx_hi_s5(cx_lims)
+           DO 190 l = cx_lo_s4(cx_lims), cx_hi_s4(cx_lims)
+           DO 190 k = cx_lo_s3(cx_lims), cx_hi_s3(cx_lims)
+           DO 190 j = cx_lo_s2(cx_lims), cx_hi_s2(cx_lims)
+
+* loop through the each destination grid box
+	   DO 160 dstss = dstss_lo,dstss_hi
+	      srcss_lo = ss21(dstss-dstss_lo+1)
+	      srcss_hi = ss21(dstss-dstss_lo+2)
+
+*  check if requested region is out of source range
+              IF ( (srcss_lo .EQ. unspecified_int4
+     .	     .OR.  srcss_hi .EQ. unspecified_int4)
+     .       .AND. .NOT.(ok_neg111) ) THEN
+	         dst(dstss,j,k,l,m,n) = bad_dst
+	         goto 160
+	      ENDIF
+
+	      xdst_lo = TM_WORLD(dstss, dst_grid, axis, box_lo_lim )
+	      xdst_hi = TM_WORLD(dstss, dst_grid, axis, box_hi_lim )
+
+* add all partial or complete boxes of data from the source grid
+
+* IF source box completely encloses the dest box, then srcss_lo=srcss_hi
+* and we can just stick the source point into the destination (for avg or var)
+	      sum = 0.0D0
+	      nsrc_in_dst = 0.0D0
+	      DO 110 srcss = srcss_lo, srcss_hi
+
+* ... ignore missing source data
+	         IF ( src(srcss, j, k, l, m, n) .EQ. bad_src ) GOTO 110
+
+	         xsrc_pt = TM_WORLD(srcss,src_grid,axis,box_middle)
+	         coord_in_dst = (xsrc_pt.GE.xdst_lo .AND. xsrc_pt.LT.xdst_hi) 
+
+* ... source point in dest box
+                 IF (coord_in_dst) THEN
+	            nsrc_in_dst = nsrc_in_dst + 1
+	            sum   = sum  + src(srcss, j, k, l, m, n)
+	         ENDIF 
+ 
+ 110	      CONTINUE
+
+
+* ... divide by npts in bin for @BIN or return # pts for @NBIN
+
+	      IF (trans.EQ.prgrd_bin ) THEN
+
+	         IF ( nsrc_in_dst .EQ. 0.0 ) THEN
+	            dst(dstss, j, k, l, m, n) = bad_dst
+	        ELSE
+	            dst(dstss, j, k, l, m, n) = sum / nsrc_in_dst
+	        ENDIF
+
+	      ELSEIF ( trans.EQ.prgrd_nbin ) THEN
+	         dst(dstss, j, k, l, m, n) = nsrc_in_dst
+	      ENDIF
+
+ 160	   CONTINUE
+ 190	   CONTINUE
+
+* along Y axis
+        ELSEIF ( axis .EQ. Y_dim ) THEN
+
+           DO 290 n = cx_lo_s6(cx_lims), cx_hi_s6(cx_lims)
+           DO 290 m = cx_lo_s5(cx_lims), cx_hi_s5(cx_lims)
+           DO 290 l = cx_lo_s4(cx_lims), cx_hi_s4(cx_lims)
+           DO 290 k = cx_lo_s3(cx_lims), cx_hi_s3(cx_lims)
+           DO 290 i = cx_lo_s1(cx_lims), cx_hi_s1(cx_lims)
+
+* loop through the each destination grid box
+	   DO 260 dstss = dstss_lo,dstss_hi
+	      srcss_lo = ss21(dstss-dstss_lo+1)
+	      srcss_hi = ss21(dstss-dstss_lo+2)
+
+*  check if requested region is out of source range
+              IF ( (srcss_lo .EQ. unspecified_int4
+     .	     .OR.  srcss_hi .EQ. unspecified_int4)
+     .       .AND. .NOT.(ok_neg111) ) THEN
+	         dst(i,dstss,k,l,m,n) = bad_dst
+	         goto 260
+	      ENDIF
+
+	      xdst_lo  = TM_WORLD(dstss, dst_grid, axis, box_lo_lim )
+	      xdst_hi  = TM_WORLD(dstss, dst_grid, axis, box_hi_lim )
+
+* add all partial or complete boxes of data from the source grid
+
+* IF source box completely encloses the dest box, then srcss_lo=srcss_hi
+* and we can just stick the source point into the destination (for avg or var)
+	      sum = 0.0D0
+	      nsrc_in_dst = 0.0D0
+	      DO 210 srcss = srcss_lo, srcss_hi
+
+* ... ignore missing source data
+	         IF ( src(i, srcss, k, l, m, n) .EQ. bad_src ) GOTO 210
+
+	         xsrc_pt = TM_WORLD(srcss,src_grid,axis,box_middle)
+	         coord_in_dst = (xsrc_pt.GE.xdst_lo .AND. xsrc_pt.LT.xdst_hi)
+
+* ... source point in dest box
+                 IF (coord_in_dst) THEN
+	            nsrc_in_dst = nsrc_in_dst + 1
+	            sum   = sum  + src(i, srcss, k, l, m, n)
+	         ENDIF 
+ 
+ 210	      CONTINUE
+
+* ... divide by npts in bin for @BIN or return # pts for @NBIN
+
+	      IF (trans.EQ.prgrd_bin ) THEN
+	         IF ( nsrc_in_dst .EQ. 0.0 ) THEN
+	            dst(i, dstss, k, l, m, n) = bad_dst
+	         ELSE
+	            dst(i, dstss, k, l, m, n) = sum / nsrc_in_dst
+	         ENDIF
+	      ELSEIF ( trans.EQ.prgrd_nbin ) THEN
+	         dst(i, dstss, k, l, m, n) = nsrc_in_dst
+	      ENDIF
+
+ 260	   CONTINUE
+ 290	   CONTINUE
+
+* along Z axis
+        ELSEIF ( axis .EQ. z_dim ) THEN
+
+           DO 390 n = cx_lo_s6(cx_lims), cx_hi_s6(cx_lims)
+           DO 390 m = cx_lo_s5(cx_lims), cx_hi_s5(cx_lims)
+           DO 390 l = cx_lo_s4(cx_lims), cx_hi_s4(cx_lims)
+           DO 390 j = cx_lo_s2(cx_lims), cx_hi_s2(cx_lims)
+           DO 390 i = cx_lo_s1(cx_lims), cx_hi_s1(cx_lims)
+
+* loop through the each destination grid box
+	   DO 360 dstss = dstss_lo,dstss_hi
+	      srcss_lo = ss21(dstss-dstss_lo+1)
+	      srcss_hi = ss21(dstss-dstss_lo+2)
+
+*  check if requested region is out of source range
+              IF ( (srcss_lo .EQ. unspecified_int4
+     .	     .OR.  srcss_hi .EQ. unspecified_int4)
+     .       .AND. .NOT.(ok_neg111) ) THEN
+	         dst(i,j,dstss,k,m,n) = bad_dst
+	         goto 360
+	      ENDIF
+
+	      xdst_lo = TM_WORLD(dstss, dst_grid, axis, box_lo_lim )
+	      xdst_hi = TM_WORLD(dstss, dst_grid, axis, box_hi_lim )
+
+* add all partial or complete boxes of data from the source grid
+
+* IF source box completely encloses the dest box, then srcss_lo=srcss_hi
+* and we can just stick the source point into the destination (for avg or var)
+	      sum = 0.0D0
+	      nsrc_in_dst = 0.0D0
+	      DO 310 srcss = srcss_lo, srcss_hi
+
+* ... ignore missing source data
+	         IF ( src(i, j, srcss, l, m, n) .EQ. bad_src ) GOTO 310
+
+	         xsrc_pt = TM_WORLD(srcss,src_grid,axis,box_middle)
+
+	         coord_in_dst = (xsrc_pt.GE.xdst_lo .AND. xsrc_pt.LT.xdst_hi)
+
+* ... source point in dest box
+                 IF (coord_in_dst) THEN
+	            nsrc_in_dst = nsrc_in_dst + 1
+	            sum   = sum  + src(i, j, srcss, l, m, n)
+	         ENDIF 
+ 
+ 310	      CONTINUE
+
+* ... divide by npts in bin for @BIN or return # pts for @NBIN
+
+	      IF (trans.EQ.prgrd_bin ) THEN
+	         IF ( nsrc_in_dst .EQ. 0.0 ) THEN
+	            dst(i, j, dstss, l, m, n) = bad_dst
+	         ELSE
+	            dst(i, j, dstss, l, m, n) = sum / nsrc_in_dst
+	         ENDIF
+	      ELSEIF ( trans.EQ.prgrd_nbin ) THEN
+	         dst(i, j, dstss, l, m, n) = nsrc_in_dst
+	      ENDIF
+
+ 360	   CONTINUE
+ 390	   CONTINUE
+
+* along T axis
+        ELSEIF ( axis .EQ. T_dim ) THEN
+
+           DO 490 n = cx_lo_s6(cx_lims), cx_hi_s6(cx_lims)
+           DO 490 m = cx_lo_s5(cx_lims), cx_hi_s5(cx_lims)
+           DO 490 k = cx_lo_s3(cx_lims), cx_hi_s3(cx_lims)
+           DO 490 j = cx_lo_s2(cx_lims), cx_hi_s2(cx_lims)
+           DO 490 i = cx_lo_s1(cx_lims), cx_hi_s1(cx_lims)
+
+* loop through the each destination grid box
+	   DO 460 dstss = dstss_lo,dstss_hi
+	      srcss_lo = ss21(dstss-dstss_lo+1)
+	      srcss_hi = ss21(dstss-dstss_lo+2)
+
+*  check if requested region is out of source range
+              IF ( (srcss_lo .EQ. unspecified_int4
+     .	     .OR.  srcss_hi .EQ. unspecified_int4)
+     .       .AND. .NOT.(ok_neg111) ) THEN
+	         dst(i,j,k,dstss,m,n) = bad_dst
+	         goto 460
+	      ENDIF
+
+* USE SOURCE GRID TIME/DATE ENCODINGS FOR ALL CALCULATIONS 6/94
+* initialization of TDEST_WORLD is done from GET_AVE_LIMS
+
+	      xdst_lo = TDEST_WORLD(dstss, dst_grid, axis, box_lo_lim)
+	      xdst_hi = TDEST_WORLD(dstss, dst_grid, axis, box_hi_lim)
+
+* add all partial or complete boxes of data from the source grid
+
+* IF source box completely encloses the dest box, then srcss_lo=srcss_hi
+* and we can just stick the source point into the destination (for avg or var)
+	      sum = 0.0D0
+	      nsrc_in_dst = 0.0
+	      DO 410 srcss = srcss_lo, srcss_hi
+
+* ... ignore missing source data
+	         IF ( src(i, j, k, srcss, m, n) .EQ. bad_src ) GOTO 410
+	         xsrc_pt = TM_WORLD(srcss,src_grid,axis,box_middle)
+
+	        coord_in_dst = (xsrc_pt.GE.xdst_lo .AND. xsrc_pt.LT.xdst_hi) 
+
+* ... source point in dest box
+                 IF (coord_in_dst) THEN
+	            nsrc_in_dst = nsrc_in_dst + 1
+	            sum   = sum  + src(i, j, k, srcss, m, n)
+	         ENDIF 
+
+ 410	      CONTINUE
+
+* ... divide by npts in bin for @BIN or return # pts for @NBIN
+
+	      IF (trans.EQ.prgrd_bin ) THEN
+	         IF ( nsrc_in_dst .EQ. 0.0 ) THEN
+	            dst(i, j, k, dstss, m, n) = bad_dst
+	         ELSE
+	            dst(i, j, k, dstss, m, n) = sum / nsrc_in_dst
+	         ENDIF
+	      ELSEIF ( trans.EQ.prgrd_nbin ) THEN
+	         dst(i, j, k, dstss, m, n) = nsrc_in_dst
+	      ENDIF
+
+ 460	   CONTINUE
+ 490	   CONTINUE
+
+* along E axis
+        ELSEIF ( axis .EQ. e_dim ) THEN
+
+           DO 590 n = cx_lo_s6(cx_lims), cx_hi_s6(cx_lims)
+           DO 590 l = cx_lo_s4(cx_lims), cx_hi_s4(cx_lims)
+           DO 590 k = cx_lo_s3(cx_lims), cx_hi_s3(cx_lims)
+           DO 590 j = cx_lo_s2(cx_lims), cx_hi_s2(cx_lims)
+           DO 590 i = cx_lo_s1(cx_lims), cx_hi_s1(cx_lims)
+
+* loop through the each destination grid box
+	   DO 560 dstss = dstss_lo,dstss_hi
+	      srcss_lo = ss21(dstss-dstss_lo+1)
+	      srcss_hi = ss21(dstss-dstss_lo+2)
+
+*  check if requested region is out of source range
+              IF ( (srcss_lo .EQ. unspecified_int4
+     .	     .OR.  srcss_hi .EQ. unspecified_int4)
+     .       .AND. .NOT.(ok_neg111) ) THEN
+	         dst(i,j,k,l,dstss,n) = bad_dst
+	         goto 560
+	      ENDIF
+
+* USE SOURCE GRID TIME/DATE ENCODINGS FOR ALL CALCULATIONS 6/94
+* initialization of TDEST_WORLD is done from GET_AVE_LIMS
+
+	      xdst_lo = TDEST_WORLD(dstss, dst_grid, axis, box_lo_lim)
+	      xdst_hi = TDEST_WORLD(dstss, dst_grid, axis, box_hi_lim)
+
+* add all partial or complete boxes of data from the source grid
+
+* IF source box completely encloses the dest box, then srcss_lo=srcss_hi
+* and we can just stick the source point into the destination (for avg or var)
+	      sum = 0.0D0
+	      nsrc_in_dst = 0.0
+	      DO 510 srcss = srcss_lo, srcss_hi
+
+* ... ignore missing source data
+	         IF ( src(i, j, k, l, srcss, n) .EQ. bad_src ) GOTO 510
+
+	         xsrc_pt = TM_WORLD(srcss,src_grid,axis,box_middle)
+	         coord_in_dst = (xsrc_pt.GE.xdst_lo .AND. xsrc_pt.LT.xdst_hi) 
+
+* ... source point in dest box
+                 IF (coord_in_dst) THEN
+	            nsrc_in_dst = nsrc_in_dst + 1
+	            sum   = sum  + src(i, j, k, l, srcss, n)
+	         ENDIF 
+ 510	      CONTINUE
+
+* ... divide by npts in bin for @BIN or return # pts for @NBIN
+
+	      IF (trans.EQ.prgrd_bin ) THEN
+	         IF ( nsrc_in_dst .EQ. 0.0 ) THEN
+	            dst(i, j, k, l, dstss, n) = bad_dst
+	         ELSE
+	            dst(i, j, k, l, dstss, n) = sum / nsrc_in_dst
+	         ENDIF
+	      ELSEIF ( trans.EQ.prgrd_nbin ) THEN
+	         dst(i, j, k, l, dstss, n) = nsrc_in_dst
+	      ENDIF
+
+ 560	   CONTINUE
+ 590	   CONTINUE
+
+* along F axis
+        ELSEIF ( axis .EQ. f_dim ) THEN
+
+           DO 690 m = cx_lo_s5(cx_lims), cx_hi_s5(cx_lims)
+           DO 690 l = cx_lo_s4(cx_lims), cx_hi_s4(cx_lims)
+           DO 690 k = cx_lo_s3(cx_lims), cx_hi_s3(cx_lims)
+           DO 690 j = cx_lo_s2(cx_lims), cx_hi_s2(cx_lims)
+           DO 690 i = cx_lo_s1(cx_lims), cx_hi_s1(cx_lims)
+
+* loop through the each destination grid box
+	   DO 660 dstss = dstss_lo,dstss_hi
+	      srcss_lo = ss21(dstss-dstss_lo+1)
+	      srcss_hi = ss21(dstss-dstss_lo+2)
+
+*  check if requested region is out of source range
+              IF ( (srcss_lo .EQ. unspecified_int4
+     .	     .OR.  srcss_hi .EQ. unspecified_int4)
+     .       .AND. .NOT.(ok_neg111) ) THEN
+	         dst(i,j,k,l,m,dstss) = bad_dst
+	         goto 660
+	      ENDIF
+
+* USE SOURCE GRID TIME/DATE ENCODINGS FOR ALL CALCULATIONS 6/94
+* initialization of TDEST_WORLD is done from GET_AVE_LIMS
+
+	      xdst_lo = TDEST_WORLD(dstss, dst_grid, axis, box_lo_lim)
+	      xdst_hi = TDEST_WORLD(dstss, dst_grid, axis, box_hi_lim)
+
+* add all partial or complete boxes of data from the source grid
+
+* IF source box completely encloses the dest box, then srcss_lo=srcss_hi
+* and we can just stick the source point into the destination (for avg or var)
+	      sum = 0.0D0
+	      nsrc_in_dst = 0.0
+	      DO 610 srcss = srcss_lo, srcss_hi
+
+* ... ignore missing source data
+	         IF ( src(i, j, k, l, m, srcss) .EQ. bad_src ) GOTO 610
+
+	         xsrc_pt = TM_WORLD(srcss,src_grid,axis,box_middle)
+	         coord_in_dst = (xsrc_pt.GE.xdst_lo .AND. xsrc_pt.LT.xdst_hi) 
+
+* ... source point in dest box
+                 IF (coord_in_dst) THEN
+	            nsrc_in_dst = nsrc_in_dst + 1
+	            sum   = sum  + src(i, j, k, l, m, srcss)
+	         ENDIF 
+ 610	      CONTINUE
+
+* ... divide by npts in bin for @BIN or return # pts for @NBIN
+
+	      IF (trans.EQ.prgrd_bin ) THEN
+	         IF ( nsrc_in_dst .EQ. 0.0 ) THEN
+	            dst(i, j, k, l, m, dstss) = bad_dst
+	         ELSE
+	            dst(i, j, k, l, m, dstss) = sum / nsrc_in_dst
+	         ENDIF
+	      ELSEIF ( trans.EQ.prgrd_nbin ) THEN
+	         dst(i, j, k, l, m, dstss) = nsrc_in_dst
+	      ENDIF
+
+ 660	   CONTINUE
+ 690	   CONTINUE
+
+        ENDIF
+
+	RETURN
+	END
diff --git a/fer/doo/convolve_p.F b/fer/doo/convolve_p.F
new file mode 100644
index 0000000..701ab19
--- /dev/null
+++ b/fer/doo/convolve_p.F
@@ -0,0 +1,390 @@
+	SUBROUTINE CONVOLVE_P(idim, hlen, wt,
+     .				com, com_mr, com_cx,
+     .				res, res_mr, res_cx )
+
+*
+*
+*  This software was developed by the Thermal Modeling and Analysis
+*  Project(TMAP) of the National Oceanographic and Atmospheric
+*  Administration''s (NOAA) Pacific Marine Environmental Lab(PMEL),
+*  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. 
+*
+*
+* convolve the component grid, com, with the weight function, wt
+* along axis idim, skipping missing data and applyig weights accordingly
+* 
+* note: the component context may not be of adequate size for the full
+*	calculation.  Missing data flags will be inserted where computation is
+*	impossible
+* From convolve; removing the restriction that any missing data results in 
+*       missing result. This is called for boxcar smoother SPX.
+
+        IMPLICIT NONE
+        include 'tmap_dims.parm'
+	include	'ferret.parm'
+	include	'xcontext.cmn'
+	include	'xvariables.cmn'
+	include	'xmem_subsc.cmn'
+
+* calling argument declarations:
+	INTEGER	idim, hlen, com_mr, com_cx, res_mr, res_cx
+	REAL	wt(-hlen:hlen),
+     .		com( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
+     .		     m1lot:m1hit,m1loe:m1hie,m1lof:m1hif ),
+     .		res( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,
+     .		     m2lot:m2hit,m2loe:m2hie,m2lof:m2hif )
+
+* internal variable declarations:
+	LOGICAL TM_ITS_SUBSPAN_MODULO, has_mod_void
+	INTEGER	TM_MODULO_LINE_DIM, CGRID_AXIS, 
+     .		i, j, k, l, m, n, ii,
+     .		lo_sub(nferdims), hi_sub(nferdims), lo_lim, hi_lim,
+     .		hlen1, lo_modlim, hi_modlim, nmod, nmod_prev, modlen
+	REAL	bad_com, bad_res, comp, sum, wsum
+
+* internal (convenience) equivalences
+	INTEGER lo_s1, lo_s2, lo_s3, lo_s4, lo_s5, lo_s6,
+     .          hi_s1, hi_s2, hi_s3, hi_s4, hi_s5, hi_s6
+	EQUIVALENCE (lo_s1, lo_sub(1)) , (lo_s2, lo_sub(2)),
+     .		    (lo_s3, lo_sub(3)) , (lo_s4, lo_sub(4)),
+     .		    (lo_s5, lo_sub(5)) , (lo_s6, lo_sub(6)),
+     .		    (hi_s1, hi_sub(1)) , (hi_s2, hi_sub(2)),
+     .		    (hi_s3, hi_sub(3)) , (hi_s4, hi_sub(4)),
+     .		    (hi_s5, hi_sub(5)) , (hi_s6, hi_sub(6))
+
+* initialize
+	bad_com = mr_bad_data( res_mr )
+	bad_res = mr_bad_data( com_mr )
+	hlen1 = hlen
+	lo_lim = cx_lo_ss(com_cx,idim)
+	hi_lim = cx_hi_ss(com_cx,idim) 
+	nmod_prev = -99999
+
+* compute limits within which calculation is possible
+	DO 10 ii = 1, nferdims
+	   lo_sub(ii) = cx_lo_ss(res_cx,ii)
+	   hi_sub(ii) = cx_hi_ss(res_cx,ii)
+ 10	CONTINUE
+
+* it his a subspan modulo axis?
+	has_mod_void = TM_ITS_SUBSPAN_MODULO( CGRID_AXIS(idim,com_cx) )
+	IF (has_mod_void) THEN
+	   modlen = TM_MODULO_LINE_DIM( CGRID_AXIS(idim,com_cx) )
+	   has_mod_void = lo_lim.LE.0 .OR. hi_lim.GE.modlen
+	ENDIF
+
+* !temp - not optimized for speed yet
+* ... though treating each axis separately is to avoid testing inside the loop
+* CONVOLVE ALONG X AXIS
+	IF ( idim .EQ. x_dim ) THEN
+	   DO 110 n = lo_s6, hi_s6
+	   DO 110 m = lo_s5, hi_s5
+	   DO 110 l = lo_s4, hi_s4
+	   DO 110 k = lo_s3, hi_s3
+	   DO 110 j = lo_s2, hi_s2
+	   DO 110 i = lo_s1, hi_s1
+	      IF (has_mod_void) THEN
+*  ... do not allow convolution across the modulo void
+	         IF (i.GE.1) THEN  ! get # of modulos to curr index
+	            nmod = (i-1)/modlen 
+	         ELSE
+	            nmod = i/modlen - 1
+	         ENDIF
+	         IF ( nmod .NE. nmod_prev ) THEN
+	            nmod_prev = nmod
+	            lo_modlim = nmod*modlen + 1
+	            hi_modlim = (nmod+1) * modlen
+	            lo_lim = MAX( lo_modlim, cx_lo_ss(com_cx,idim) )
+	            hi_lim = MIN( hi_modlim, cx_hi_ss(com_cx,idim)  )
+	         ENDIF
+	      ENDIF
+	      sum = 0.0
+	      wsum = 0.0
+	      DO 100 ii = -hlen1, hlen1
+* test limits of component data before using
+                 IF ( i+ii .GE. lo_lim
+     .          .AND. i+ii .LE. hi_lim ) THEN
+                    comp = com(i+ii,j,k,l,m,n)
+                 ELSE
+                    res(i,j,k,l,m,n) = bad_res
+                    GOTO 110
+                 ENDIF
+
+	         IF ( comp .NE. bad_com ) THEN
+	            sum = sum + comp*wt(ii)
+		    wsum = wsum + wt(ii)
+	         ENDIF
+ 100	      CONTINUE
+	      IF (wsum .GT. 0) THEN 
+	         res(i,j,k,l,m,n) = sum/wsum
+	      ELSE 
+	         res(i,j,k,l,m,n) = bad_res
+	      ENDIF
+ 110	   CONTINUE
+
+* CONVOLVE ALONG Y AXIS
+	ELSEIF ( idim .EQ. y_dim ) THEN
+	   DO 210 n = lo_s6, hi_s6
+	   DO 210 m = lo_s5, hi_s5
+	   DO 210 l = lo_s4, hi_s4
+	   DO 210 k = lo_s3, hi_s3
+	   DO 210 j = lo_s2, hi_s2
+	      IF (has_mod_void) THEN
+*  ... do not allow convolution across the modulo void
+	         IF (j.GE.1) THEN  ! get # of modulos to curr index
+	            nmod = (j-1)/modlen 
+	         ELSE
+	            nmod = j/modlen - 1
+	         ENDIF
+	         IF ( nmod .NE. nmod_prev ) THEN
+	            nmod_prev = nmod
+	            lo_modlim = nmod*modlen + 1
+	            hi_modlim = (nmod+1) * modlen
+	            lo_lim = MAX( lo_modlim, cx_lo_ss(com_cx,idim) )
+	            hi_lim = MIN( hi_modlim, cx_hi_ss(com_cx,idim)  )
+	         ENDIF
+	      ENDIF
+	   DO 210 i = lo_s1, hi_s1
+	      sum = 0.0
+	      wsum = 0.0
+	      DO 200 ii = -hlen1, hlen1
+* test limits of component data before using
+                 IF ( j+ii .GE. lo_lim
+     .          .AND. j+ii .LE. hi_lim ) THEN
+                    comp = com(i,j+ii,k,l,m,n)
+                 ELSE
+                    res(i,j,k,l,m,n) = bad_res
+                    GOTO 210
+                 ENDIF
+
+	         IF ( comp .NE. bad_com ) THEN
+	            sum = sum + comp*wt(ii)
+		    wsum = wsum + wt(ii)
+	         ENDIF
+ 200	      CONTINUE
+	      IF (wsum .GT. 0) THEN 
+	         res(i,j,k,l,m,n) = sum/wsum
+	      ELSE 
+	         res(i,j,k,l,m,n) = bad_res
+	      ENDIF
+ 210	   CONTINUE
+
+* CONVOLVE ALONG Z AXIS
+	ELSEIF ( idim .EQ. z_dim ) THEN
+	   DO 310 n = lo_s6, hi_s6
+	   DO 310 m = lo_s5, hi_s5
+	   DO 310 l = lo_s4, hi_s4
+	   DO 310 k = lo_s3, hi_s3
+	      IF (has_mod_void) THEN
+*  ... do not allow convolution across the modulo void
+	         IF (k.GE.1) THEN  ! get # of modulos to curr index
+	            nmod = (k-1)/modlen 
+	         ELSE
+	            nmod = k/modlen - 1
+	         ENDIF
+	         IF ( nmod .NE. nmod_prev ) THEN
+	            nmod_prev = nmod
+	            lo_modlim = nmod*modlen + 1
+	            hi_modlim = (nmod+1) * modlen
+	            lo_lim = MAX( lo_modlim, cx_lo_ss(com_cx,idim) )
+	            hi_lim = MIN( hi_modlim, cx_hi_ss(com_cx,idim)  )
+	         ENDIF
+	      ENDIF
+	   DO 310 j = lo_s2, hi_s2
+	   DO 310 i = lo_s1, hi_s1
+	      sum = 0.0
+	      wsum = 0.0
+	      DO 300 ii = -hlen1, hlen1
+* test limits of component data before using
+                 IF ( k+ii .GE. lo_lim
+     .          .AND. k+ii .LE. hi_lim ) THEN
+                    comp = com(i,j,k+ii,l,m,n)
+                 ELSE
+                    res(i,j,k,l,m,n) = bad_res
+                    GOTO 310
+                 ENDIF
+
+	         IF ( comp .NE. bad_com ) THEN
+	            sum = sum + comp*wt(ii)
+		    wsum = wsum + wt(ii)
+	         ENDIF
+ 300	      CONTINUE
+	      IF (wsum .GT. 0) THEN 
+	         res(i,j,k,l,m,n) = sum/wsum
+	      ELSE 
+	         res(i,j,k,l,m,n) = bad_res
+	      ENDIF
+ 310	   CONTINUE
+
+* CONVOLVE ALONG T AXIS
+	ELSE IF ( idim .EQ. t_dim ) THEN
+	   DO 410 n = lo_s6, hi_s6
+	   DO 410 m = lo_s5, hi_s5
+	   DO 410 l = lo_s4, hi_s4
+	      IF (has_mod_void) THEN
+*  ... do not allow convolution across the modulo void
+	         IF (l.GE.1) THEN  ! get # of modulos to curr index
+	            nmod = (l-1)/modlen 
+	         ELSE
+	            nmod = l/modlen - 1
+	         ENDIF
+	         IF ( nmod .NE. nmod_prev ) THEN
+	            nmod_prev = nmod
+	            lo_modlim = nmod*modlen + 1
+	            hi_modlim = (nmod+1) * modlen
+	            lo_lim = MAX( lo_modlim, cx_lo_ss(com_cx,idim) )
+	            hi_lim = MIN( hi_modlim, cx_hi_ss(com_cx,idim)  )
+	         ENDIF
+	      ENDIF
+	   DO 410 k = lo_s3, hi_s3
+	   DO 410 j = lo_s2, hi_s2
+	   DO 410 i = lo_s1, hi_s1
+	      sum = 0.0
+	      wsum = 0.0
+	      DO 400 ii = -hlen1, hlen1
+* test limits of component data before using
+                 IF ( l+ii .GE. lo_lim
+     .          .AND. l+ii .LE. hi_lim ) THEN
+                    comp = com(i,j,k,l+ii,m,n)
+                 ELSE
+                    res(i,j,k,l,m,n) = bad_res
+                    GOTO 410
+                 ENDIF
+
+	         IF ( comp .NE. bad_com ) THEN
+	            sum = sum + comp*wt(ii)
+		    wsum = wsum + wt(ii)
+	         ENDIF
+ 400	      CONTINUE
+	      IF (wsum .GT. 0) THEN 
+	         res(i,j,k,l,m,n) = sum/wsum
+	      ELSE 
+	         res(i,j,k,l,m,n) = bad_res
+	      ENDIF
+ 410	   CONTINUE
+
+* CONVOLVE ALONG E AXIS
+	ELSE IF ( idim .EQ. e_dim ) THEN
+	   DO 510 n = lo_s6, hi_s6
+	   DO 510 m = lo_s5, hi_s5
+	      IF (has_mod_void) THEN
+*  ... do not allow convolution across the modulo void
+	         IF (m.GE.1) THEN  ! get # of modulos to curr index
+	            nmod = (m-1)/modlen 
+	         ELSE
+	            nmod = m/modlen - 1
+	         ENDIF
+	         IF ( nmod .NE. nmod_prev ) THEN
+	            nmod_prev = nmod
+	            lo_modlim = nmod*modlen + 1
+	            hi_modlim = (nmod+1) * modlen
+	            lo_lim = MAX( lo_modlim, cx_lo_ss(com_cx,idim) )
+	            hi_lim = MIN( hi_modlim, cx_hi_ss(com_cx,idim)  )
+	         ENDIF
+	      ENDIF
+	   DO 510 l = lo_s4, hi_s4
+	   DO 510 k = lo_s3, hi_s3
+	   DO 510 j = lo_s2, hi_s2
+	   DO 510 i = lo_s1, hi_s1
+	      sum = 0.0
+	      wsum = 0.0
+	      DO 500 ii = -hlen1, hlen1
+* test limits of component data before using
+                 IF ( m+ii .GE. lo_lim
+     .          .AND. m+ii .LE. hi_lim ) THEN
+                    comp = com(i,j,k,l,m+ii,n)
+                 ELSE
+                    res(i,j,k,l,m,n) = bad_res
+                    GOTO 510
+                 ENDIF
+
+	         IF ( comp .NE. bad_com ) THEN
+	            sum = sum + comp*wt(ii)
+		    wsum = wsum + wt(ii)
+	         ENDIF
+ 500	      CONTINUE
+	      IF (wsum .GT. 0) THEN 
+	         res(i,j,k,l,m,n) = sum/wsum
+	      ELSE 
+	         res(i,j,k,l,m,n) = bad_res
+	      ENDIF
+ 510	   CONTINUE
+
+* CONVOLVE ALONG F AXIS
+	ELSE IF ( idim .EQ. f_dim ) THEN
+	   DO 610 n = lo_s6, hi_s6
+	      IF (has_mod_void) THEN
+*  ... do not allow convolution across the modulo void
+	         IF (n.GE.1) THEN  ! get # of modulos to curr index
+	            nmod = (n-1)/modlen 
+	         ELSE
+	            nmod = n/modlen - 1
+	         ENDIF
+	         IF ( nmod .NE. nmod_prev ) THEN
+	            nmod_prev = nmod
+	            lo_modlim = nmod*modlen + 1
+	            hi_modlim = (nmod+1) * modlen
+	            lo_lim = MAX( lo_modlim, cx_lo_ss(com_cx,idim) )
+	            hi_lim = MIN( hi_modlim, cx_hi_ss(com_cx,idim)  )
+	         ENDIF
+	      ENDIF
+	   DO 610 m = lo_s5, hi_s5
+	   DO 610 l = lo_s4, hi_s4
+	   DO 610 k = lo_s3, hi_s3
+	   DO 610 j = lo_s2, hi_s2
+	   DO 610 i = lo_s1, hi_s1
+	      sum = 0.0
+	      wsum = 0.0
+	      DO 600 ii = -hlen1, hlen1
+* test limits of component data before using
+                 IF ( n+ii .GE. lo_lim
+     .          .AND. n+ii .LE. hi_lim ) THEN
+                    comp = com(i,j,k,l,m,n+ii)
+                 ELSE
+                    res(i,j,k,l,m,n) = bad_res
+                    GOTO 610
+                 ENDIF
+
+	         IF ( comp .NE. bad_com ) THEN
+	            sum = sum + comp*wt(ii)
+		    wsum = wsum + wt(ii)
+	         ENDIF
+ 600	      CONTINUE
+	      IF (wsum .GT. 0) THEN 
+	         res(i,j,k,l,m,n) = sum/wsum
+	      ELSE 
+	         res(i,j,k,l,m,n) = bad_res
+	      ENDIF
+ 610	   CONTINUE
+
+	ENDIF
+
+	RETURN
+	END
diff --git a/fer/doo/dd1step.F b/fer/doo/dd1step.F
index 82e9f46..47a5580 100644
--- a/fer/doo/dd1step.F
+++ b/fer/doo/dd1step.F
@@ -248,7 +248,7 @@
 	         IF ( lo_com.EQ.bad_res .OR. hi_com.EQ.bad_res ) THEN
 	            res(i,j,k,l,m,n) = bad_res
 	         ELSE
-	            res(i,j,k,l,m,n) = (hi_com-lo_com) / box(m)
+	            res(i,j,k,l,m,n) = (hi_com-lo_com) / box(n)
 	         ENDIF
 	         lo_com = hi_com
  600	      CONTINUE
diff --git a/fer/doo/diag_op.F b/fer/doo/diag_op.F
index 4a58fab..dcf69f6 100644
--- a/fer/doo/diag_op.F
+++ b/fer/doo/diag_op.F
@@ -60,6 +60,7 @@
 * V6.8  acm  6/12 Implement mode_6d_lab, set by default. If cancelled, the 
 *                 output will not list info for E,F dimensions.
 * V690  1/14 *sh* report 3-argument var-getting operation
+*		  allow for "false 1 point" regridding
 
 * calling argument declarations:
         IMPLICIT NONE
@@ -68,6 +69,7 @@
 
 * internal variable declarations:
 	INTEGER	  TM_LENSTR1, slen, clen, ii, i, listdims
+	CHARACTER*3   ALG_TRANS_CODE
 	CHARACTER*128 VAR_CODE,  var
 	CHARACTER*150 VAR_TRANS, out_buff
 
@@ -104,12 +106,20 @@
  3010      FORMAT (1X,A5,' --> ',A)
 	   CALL SPLIT_LIST(pttmode_ops, ttout_lun, risc_buff, 0 )
 
-* REGRIDDING
+* REGRIDDING (4/14 - incl false 1pt regridding)
 	ELSEIF( act_class .EQ. isact_class_regrid ) THEN
-	   WRITE ( risc_buff, 3020 ) doing, ww_dim_name(idim),
+	   IF (cx_aux_stat(idim,cx) .EQ. paux_stat_false_1pt_regrid ) THEN
+	      WRITE ( risc_buff, 3019 ) doing,
+     .		       var(1:slen),
+     .		       ww_dim_name(idim),
+     .                 alg_regrid_code(cx_regrid_trans(idim,cx))
+ 3019	      FORMAT (1X,A5,' false regrid of ',A,' --> ',A1,'@',A)
+	   ELSE
+	      WRITE ( risc_buff, 3020 ) doing, ww_dim_name(idim),
      .		       var(1:slen), grid_name(cx_grid(cx))(:16),
      .                 alg_regrid_code(cx_regrid_trans(idim,cx))
- 3020	   FORMAT (1X,A5,' regrid on ',A1,': ',A,' --> ',A,' @',A)
+ 3020	      FORMAT (1X,A5,' regrid on ',A1,': ',A,' --> ',A,' @',A)
+	   ENDIF
 	   CALL SPLIT_LIST(pttmode_ops, ttout_lun, risc_buff, 0 )
 
 * SPLITTING/GATHERING
diff --git a/fer/doo/do_stddev.F b/fer/doo/do_4d_std.F
old mode 100755
new mode 100644
similarity index 79%
copy from fer/doo/do_stddev.F
copy to fer/doo/do_4d_std.F
index 0e4724d..9e44565
--- a/fer/doo/do_stddev.F
+++ b/fer/doo/do_4d_std.F
@@ -1,7 +1,7 @@
-	INTEGER FUNCTION DO_STDDEV (	idim, arg,
+	INTEGER FUNCTION DO_4D_STD(	idim, arg,
      .					com, com_mr, com_cx,
      .					res, res_mr, res_cx,
-     .					box	)
+     .					boxes	)
 
 *
 *
@@ -38,43 +38,38 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* determine the variance of the given field along the indicated axis
+* call DO_4D_TRANS with the appropriate transformation
+
+* programmer - Ansley Manke
+* NOAA/PMEL, Seattle, WA - TMAP
+* V695 *acm* 10/15 Fix #2319: @STD as a multi-D transform
 
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* V230:  3/2/92
-*        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
 	include	'ferret.parm'
 	include	'errmsg.parm'
 	include	'interp_stack.parm'
-	include	'xcontext.cmn'
 	include	'xprog_state.cmn'
 
 * calling argument declarations:
 	INTEGER	idim, com_mr, com_cx, res_mr, res_cx
-	REAL	arg, com(*), res(*), box(*)
+	REAL	arg, com(*), res(*), boxes(*)
 
 * internal variable declarations:
-	LOGICAL stddev
-
-	stddev = .TRUE.
+	INTEGER	CX_DIM_LEN
 
 * diagnostic mode output: " doing --> VAR_NAME[x=lo:hi at TRN:n,D=#]"
 	IF ( mode_diagnostic ) 	CALL DIAG_OP
      .				( 'doing', isact_class_trans, res_cx, idim )
 
-	CALL DO_VAR_SUB( idim,
-     .			 cx_lo_ss(com_cx,idim), cx_hi_ss(com_cx,idim),
-     .			 com, com_mr, com_cx,
-     .			 res, res_mr, res_cx,
-     .			 box, stddev )
+* pass the transform to be performed
+	CALL DO_4D_TRANS(   trans_4d_std,
+     .			    com, com_mr, com_cx,
+     .			    res, res_mr, res_cx,
+     .			    boxes )
 
-	DO_STDDEV = ferr_ok
+	DO_4D_STD = ferr_ok
 
 	RETURN
 	END
diff --git a/fer/doo/do_4d_trans.F b/fer/doo/do_4d_trans.F
index 5d81d55..286dba4 100644
--- a/fer/doo/do_4d_trans.F
+++ b/fer/doo/do_4d_trans.F
@@ -72,6 +72,7 @@
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
 * V685 *acm* 7/13  Fix ticket 2083: single-y and multi-D transform
 * V685+*acm* 12/13 Bug in y boxes; only when y axis in the transf.
+* V695 *acm* 10/15 Fix #2319: @STD as a multi-D transform
 
 	IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -87,8 +88,8 @@
 
 * internal variable declarations:
 	LOGICAL GEOG_COS_FACTOR, point, yes_ax(nferdims), no_ax(nferdims),
-     .		at_ave, at_var, at_din, at_nbd, at_ngd, at_sum, short_comp,
-     .		need_cos, one_y
+     .		at_ave, at_var, at_din, at_nbd, at_ngd, at_sum, at_std, 
+     .		short_comp,need_cos, one_y
 	INTEGER idim, i, j, ir, jr, kr, lr, mr, nr, ic, jc, kc, lc, mc, nc,
      .		grid, nbd, ngd, com_lo(nferdims), com_hi(nferdims),
      .		box_offset(nferdims), offset, ind_lo, ind_hi, cos_offset
@@ -162,6 +163,7 @@
 	at_nbd = action .EQ. trans_4d_bad_pt
 	at_ngd = action .EQ. trans_4d_good_pt
 	at_sum = action .EQ. trans_4d_sum
+	at_std = action .EQ. trans_4d_std
 	short_comp = at_ngd .OR. at_nbd	.OR. at_sum	! for speed, only
 
 * determine the axes to be transformed
@@ -424,8 +426,8 @@ C (Unless there is just one grid cell in the y direction.)
 
  220	    CONTINUE
 
-! for variance calculation, only: a 2nd pass ...
-	    IF ( at_var ) THEN
+! for variance or std calculation, only: a 2nd pass ...
+	    IF ( at_var .OR. at_std) THEN
 	      IF (bsum .NE. 0.0D0) THEN
 	        mean = dsum / bsum
 	        dsum = 0.0D0
@@ -467,7 +469,13 @@ C (Unless there is just one grid cell in the y direction.)
 	  ELSEIF (at_din) THEN
 	     res(ir,jr,kr,lr,mr,nr) = dsum
 	  ELSE
-	     res(ir,jr,kr,lr,mr,nr) = dsum/bsum	! average or variance
+	  
+	     IF (at_std) THEN
+	        res(ir,jr,kr,lr,mr,nr) = SQRT( dsum/bsum )
+	     ELSE
+	        res(ir,jr,kr,lr,mr,nr) = dsum/bsum	! average or variance
+	     ENDIF
+
 	  ENDIF
 
  300	CONTINUE
diff --git a/fer/doo/do_aux_var_regrid_line_ave.F b/fer/doo/do_aux_regrid_line_ave.F
similarity index 79%
rename from fer/doo/do_aux_var_regrid_line_ave.F
rename to fer/doo/do_aux_regrid_line_ave.F
index f1894f1..8d84e2b 100644
--- a/fer/doo/do_aux_var_regrid_line_ave.F
+++ b/fer/doo/do_aux_regrid_line_ave.F
@@ -4,7 +4,8 @@
      .					 ndx_dst, coef_dst,
      .					 kmin_dst, kmax_dst,
      .					 kdlo_ok,  kdhi_ok,
-     .					 bad_src,  bad_dst, ascending,
+     .					 bad_src,  bad_dst, bad_pos,
+     .					 ascending,
      .					 dst_line    )
 
 *
@@ -76,6 +77,7 @@
 *                  interp_val = coef*src(k) + (1-coef)*src(k+1)
 * 
 * v690 11/13 *sh* - based upon DO_AUX_VAR_REGRID_LIN
+* v698+ 5/15 *sh* - support non-monotonic and missing aux vars (e.g. density)
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -93,27 +95,31 @@
      .		pos_line(kmin_src:kmax_src),
      .		coef_dst(kmin_dst:kmax_dst+1),
      .		dst_line(kmin_dst:kmax_dst),
-     .		bad_src, bad_dst
+     .		bad_src, bad_dst, bad_pos
 
 * internal variable declarations:
-	LOGICAL	trunc
+	LOGICAL	trunc, bad_ave, bad_next_ave
         INTEGER ndx_lo, ksrc, kdst, kend, kstart, kinc1
         REAL    area, span, width, frac, pos_lo, pos_hi, src_lo, src_hi
+* ... 5/15 bad_ave and bad_next_ave look after non-monotonic and missing values
 
 * initialize
-	IF (ascending) THEN
+	IF (ascending) THEN 
 	   kinc1 = 1
 	ELSE
 	   kinc1 = -1
 	ENDIF
 
 * set up the lower bound of the first trapezoid (possibly truncated)
- 110	ksrc   = ndx_dst (kdlo_ok)
+	frac   = coef_dst(kdlo_ok)
+	ksrc   = ndx_dst (kdlo_ok)
 	pos_hi = pos_line(ksrc)
 	src_hi = src_line(ksrc)
-	frac   = coef_dst(kdlo_ok)
-	trunc  = frac .NE. 1.0
-	IF (trunc) THEN
+	bad_ave = frac   .EQ. bad_val4
+     .       .OR. pos_hi .EQ. bad_pos
+     .       .OR. src_hi .EQ. bad_src
+	trunc  = frac.NE.1.0
+	IF (trunc .AND. .NOT.bad_ave) THEN
 * make the initial truncated trapezoid behave like a full trapezoid by  
 * replacing its lower limit with the proper linear interpolation
 	   src_hi = frac*src_hi + (1-frac)*src_line(ksrc+kinc1)
@@ -143,8 +149,16 @@
 	      pos_hi  = pos_line(ksrc)
 	      src_hi  = src_line(ksrc)
 
-* add a full trapezoid 
 	      width = pos_hi - pos_lo
+
+* bail on this output cell if there is non-monotonic or missing data
+	      bad_ave = bad_ave
+     .	           .OR. pos_hi .EQ. bad_pos
+     .             .OR. src_hi .EQ. bad_src
+     .             .OR. width  .LE. 0.0
+	      IF (bad_ave) EXIT
+
+* add a full trapezoid 
 	      span  = span + width
 	      area  = area + width * 0.5*(src_hi+src_lo)
 
@@ -155,22 +169,34 @@
 
 * handle partial trapezoid at upper bound of destination cell
 	   frac = coef_dst(kdst+1)
-	   trunc = frac .NE. 1.0
+	   bad_next_ave = frac .EQ. bad_val4
+	   trunc = frac .NE. 1.0 .AND. .NOT.bad_next_ave
 	   IF (trunc) THEN
+	      bad_next_ave = pos_line(kend) .EQ. bad_pos
+     .                  .OR. src_line(kend) .EQ. bad_src
+     .                  .OR. pos_line(kend+kinc1) .EQ. bad_pos
+     .                  .OR. src_line(kend+kinc1) .EQ. bad_src
+	      IF (.NOT. bad_next_ave) THEN
 * add the lower part of the truncated trapezoid.
 * the upper part is handled as part of the next destination cell
-	      pos_hi = frac*pos_line(kend) + (1-frac)*pos_line(kend+kinc1)
-	      src_hi = frac*src_line(kend) + (1-frac)*src_line(kend+kinc1)
-	      width = pos_hi - pos_lo
-	      span  = span + width
-	      area  = area + width * 0.5*(src_hi+src_lo)
+	         pos_hi = frac*pos_line(kend) + (1-frac)*pos_line(kend+kinc1)
+	         src_hi = frac*src_line(kend) + (1-frac)*src_line(kend+kinc1)
+	         width = pos_hi - pos_lo
+	         span  = span + width
+	         area  = area + width * 0.5*(src_hi+src_lo)
+	      ENDIF
 	   ENDIF
 
 * store the weighted average of trapezoids contributing to dst cell
-	   dst_line(kdst) = area/span
+	   IF (bad_ave .OR. bad_next_ave) THEN
+	      dst_line(kdst) = bad_dst
+	   ELSE
+	      dst_line(kdst) = area/span
+	   ENDIF
 
-* prepare for next src trapezoid contributing to this dst
+* prepare for next dst
 	   kstart = kend + kinc1
+	   bad_ave = bad_next_ave   ! happens when bad partial trap at end
 
  1000	CONTINUE
 
diff --git a/fer/doo/do_aux_var_regrid_line_lin.F b/fer/doo/do_aux_regrid_line_lin.F
similarity index 98%
rename from fer/doo/do_aux_var_regrid_line_lin.F
rename to fer/doo/do_aux_regrid_line_lin.F
index b51e7be..caffe94 100644
--- a/fer/doo/do_aux_var_regrid_line_lin.F
+++ b/fer/doo/do_aux_regrid_line_lin.F
@@ -87,7 +87,7 @@
               dst_line(k) = bad_dst
            ELSEIF ( frac .EQ. 1.0 ) THEN
               dst_line(k) = src_line(ndx_lo)
-           ELSEIF ( src_line(ndx_lo+1) .EQ. bad_src ) THEN
+           ELSEIF ( src_line(ndx_lo+kinc1) .EQ. bad_src ) THEN
               dst_line(k) = bad_dst
            ELSE
 * ... interpolate data from com1 field to get result
diff --git a/fer/doo/do_aux_var_regrid.F b/fer/doo/do_aux_var_regrid.F
index b38ab0c..ceeeac5 100644
--- a/fer/doo/do_aux_var_regrid.F
+++ b/fer/doo/do_aux_var_regrid.F
@@ -44,7 +44,9 @@
 * perform a dispatch of regridding to the rountine appropriate
 ! for the dimensionailty
 
-* v685 4/13 *sh*
+* v685 4/13-4/14 *sh*
+* v689+ 3/15 *sh* added support for T axis T-F orthoganalization
+*       5/15 *sh* allow non-monotonic aux points 
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -62,31 +64,66 @@
 	REAL	memory( mem_blk_size, max_mem_blks )
         REAL    src(*), dst(*), aux1(*), aux2(*), aux3(*)
 
+* internal variable declarations
+	INTEGER	axis, indmin_dst, indmax_dst, slen
+	CHARACTER  LEFINT*8, cn*8
 
 	IF ( naxis .EQ. 1) THEN
-* Ansley:  note that this needs to be generalized for other axes than Z
-* allocate a work arrays for a single profile of Z depths
-* nwk_dst enuf to hold a line of the destination grid
-	   IF (axis_list(1) .NE. z_dim)
-     .			CALL ERRMSG( ferr_internal, status, 'non-z aux', *5000)
 
-* do the 1D regridding using linear interpolation
-	   CALL DO_AUX_VAR_REGRID_1D(
-     .			axis_list(1), aux_has_cell_pts,
+* initialize
+	   axis = axis_list(1)
+
+	   IF ( axis .EQ. t_dim
+     .    .AND. cx_regrid_trans(axis,dst_cx) .EQ. pauxrgrd_fmrc) THEN
+* do the 1D T axis T-F orthoganalization
+	      CALL DO_AUX_VAR_REGRID_1D_T(
+     .			axis,
      .			src,  msrc,  src_cx,
      .			dst,  mdst,  dst_cx,
      .			aux1, maux1, aux1_cx,
-     .			cx_lo_ss(src_cx,z_dim),cx_hi_ss(src_cx,z_dim),
-     .			cx_lo_ss(dst_cx,z_dim),cx_hi_ss(dst_cx,z_dim) )
+     .			cx_lo_ss(dst_cx,t_dim),cx_hi_ss(dst_cx,t_dim) )
+
+	   ELSE
+* if this is a "1pt false regridding", in which there is no new target axis
+* such as results from Z=0 or Z=100:200 at ave, then the cx_ss values are
+* -999:-999.  To avoid accidental "bad value" interpretations we replace those
+	      IF (cx_aux_stat(axis,dst_cx)
+     .	     .EQ. paux_stat_false_1pt_regrid) THEN
+	         indmin_dst = 1   ! replacing -999
+	         indmax_dst = 1   ! replacing -999
+	      ELSE
+	         indmin_dst = cx_lo_ss(dst_cx,axis)
+	         indmax_dst = cx_hi_ss(dst_cx,axis)
+	      ENDIF
+
+* do the 1D regridding
+	      CALL DO_AUX_VAR_REGRID_1D(
+     .			axis, aux_has_cell_pts,
+     .			src,  msrc,  src_cx,
+     .			dst,  mdst,  dst_cx,
+     .			aux1, maux1, aux1_cx,
+     .			cx_lo_ss(aux1_cx,axis),cx_hi_ss(aux1_cx,axis),
+     .			cx_lo_ss(src_cx, axis),cx_hi_ss(src_cx, axis),
+     .			indmin_dst,           indmax_dst             )
+	
+	   ENDIF
+
+	ELSEIF (naxis .EQ. 2) THEN
+	   IF (axis_list(1).EQ.t_dim .AND. axis_list(2).EQ.f_dim) THEN
+
+* do the 1D T axis T-F orthoganalization
+	      CALL DO_AUX_VAR_REGRID_2D_TF(
+     .			src,  msrc,  src_cx,
+     .			dst,  mdst,  dst_cx,
+     .			aux1, maux1, aux1_cx,
+     .			cx_lo_ss(dst_cx,t_dim),cx_hi_ss(dst_cx,t_dim) )
+	   ELSE
+	       STOP 'mystery 2D regrid should not be happening'
+	   ENDIF
 	ELSE
-*  ==> insert horizontal curvilinear regridding (naxis.EQ.2) here
-	   STOP 'do_aux_var_regrid >1d'
+	       STOP 'mystery N-D regrid should not be happening'
 	ENDIF
 
-* success
+* success always -- all possible error conditions were anticipated
 	RETURN
-
-* error
- 5000	RETURN
-
 	END
diff --git a/fer/doo/do_aux_var_regrid_1d.F b/fer/doo/do_aux_var_regrid_1d.F
index dca3fab..67bc5ac 100644
--- a/fer/doo/do_aux_var_regrid_1d.F
+++ b/fer/doo/do_aux_var_regrid_1d.F
@@ -1,9 +1,10 @@
-	SUBROUTINE DO_AUX_VAR_REGRID_1D( axis, aux_has_cell_pts,
-     .				         src,  msrc, src_cx,
-     .				         dst,  mdst, dst_cx,
-     .				         pos,  mpos, pos_cx,
-     .					 kmin_src, kmax_src, 
-     .					 kmin_dst, kmax_dst ) 
+	SUBROUTINE DO_AUX_VAR_REGRID_1D  ( axis, aux_has_cell_pts,
+     .				           src,  msrc, src_cx,
+     .				           dst,  mdst, dst_cx,
+     .				           pos,  mpos, pos_cx,
+     .					   kmin_pos, kmax_pos, 
+     .					   kmin_src, kmax_src, 
+     .					   kmin_dst, kmax_dst    )
 
 *
 *
@@ -40,7 +41,8 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* perform a 1D regrid guided by an auxiliary variable containing coord positions
+* perform a 1D Z axis regrid guided by an auxiliary variable
+* containing coord positions
 * allow for the usual Ferret promotion of point axes to match span axes
 * where either the source data or the position field may have degenerate axes
 * (typically the position array will be degenerate in T, E and F) 
@@ -51,7 +53,11 @@
 *      pos == com2
 
 
-* v690 11/13 *sh*
+* v690 11/13-4/14 *sh*
+* V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
+* v695+ 3/15 *sh*  change to call name to accommodate T axis regridding
+* v698+ 5/15 *sh* linear regrid allows monotonic, but averaging doesnt
+*       6/15 *sh* bug fix in determination of ascending affects false_1pt_regrid [gz(aux)=pt]
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -65,7 +71,7 @@
 	LOGICAL	aux_has_cell_pts
 	INTEGER	axis,
      .		msrc, mdst, mpos, src_cx, dst_cx, pos_cx,
-     .		kmin_src, kmax_src, kmin_dst, kmax_dst
+     .		kmin_src, kmax_src, kmin_dst, kmax_dst, kmin_pos, kmax_pos
         REAL    src( m4lox:m4hix,m4loy:m4hiy,m4loz:m4hiz,
      .               m4lot:m4hit,m4loe:m4hie,m4lof:m4hif ),
      .          dst( m5lox:m5hix,m5loy:m5hiy,m5loz:m5hiz,
@@ -75,7 +81,8 @@
 
 
 * internal variable declarations:
-	LOGICAL	new_aux_line, has_valid, ascending
+	LOGICAL	new_aux_line, has_valid, ascending, false_1pt_regrid,
+     .		monotonic_block
         INTEGER CX_DIM_LEN,
      .          idim,
      .          i,   j,   k,   l,   m,   n,
@@ -85,12 +92,14 @@
      .          pi0, pj0, pk0, pl0, pm0, pn0,
      .          dsi, dsj, dsk, dsl, dsm, dsn,
      .          dpi, dpj, dpk, dpl, dpm, dpn
-        INTEGER ndx_lo, wkblk, kdmax, ii, trans, klook, khiok
-        REAL    bad_src, bad_dst, bad_pos, zval, frac
+        INTEGER ndx_lo, wkblk, kdmax, ss, trans, klook, khiok,
+     .		koffset_false, kstart, kend, n_ascnd, n_desnd
+        REAL    bad_src, bad_dst, bad_pos, zval, v0, v1
         REAL*8  TM_WORLD
 * internally declared work arrays
-	INTEGER	indices(kmin_dst:kmax_dst+1)
-	REAL	  posline(kmin_src:kmax_src),srcline(kmin_src:kmax_src),
+	INTEGER	indices(kmin_dst:kmax_dst+1),
+     .		dstlo(nferdims), dsthi(nferdims)
+	REAL	  posline(kmin_pos:kmax_pos),srcline(kmin_src:kmax_src),
      .		  dstline(kmin_dst:kmax_dst),
      .		dstcoords(kmin_dst:kmax_dst+1),coef(kmin_dst:kmax_dst+1)
 
@@ -117,16 +126,23 @@
 *==========================
 
 * initialize
+	kdmax = kmax_dst
+	false_1pt_regrid = cx_aux_stat(axis,dst_cx)
+     .		      .EQ. paux_stat_false_1pt_regrid
+*   koofset_false fixes ss of -999 used as a valid position in the dest axis.
+	koffset_false = kmin_dst - m5loz
+	trans = cx_regrid_trans(axis,dst_cx)
+
 * flag(s) for bad or missing values
         bad_src = mr_bad_data( msrc )
         bad_dst = mr_bad_data( mdst )
         bad_pos = mr_bad_data( mpos )
-	kdmax = kmax_dst
-	trans = cx_regrid_trans(z_dim,dst_cx) !  TEMPORARY: z_dim HARD CODED!!!
 
 * compute the delta increment for each axis
 * this allows "promotion" of degenerate axes
         DO 10 idim = 1, nferdims
+	   dstlo(idim) = mr_lo_ss(mdst,idim)
+	   dsthi(idim) = mr_hi_ss(mdst,idim)
            IF ( CX_DIM_LEN(idim,src_cx) .EQ. 1 ) THEN
               srcinc(idim) = 0
            ELSE
@@ -138,6 +154,11 @@
               posinc(idim) = 1
            ENDIF
  10     CONTINUE
+* ... a dummy loop on the designated axis 
+	dstlo(axis)  = 1
+	dsthi(axis)  = 1
+	srcinc(axis) = 0
+	posinc(axis) = 0
 
 * compute the starting subscript for each axis of each component
 * (pre-decrement by 1 delta for looping ahead)
@@ -149,22 +170,33 @@
 
 * extract the list of target coordinates
 	IF (trans .EQ. pauxrgrd_linear ) THEN
-	   DO 30 k = kmin_dst, kmax_dst
-              dstcoords(k) = TM_WORLD(k,cx_grid(dst_cx),z_dim,box_middle)
- 30	   CONTINUE
+	   IF (false_1pt_regrid) THEN
+* ... false 1pt regridding - e.g. Z=100
+	      dstcoords(kmin_dst) = cx_lo_ww(axis, dst_cx)
+	   ELSE
+	      DO k = kmin_dst, kmax_dst
+                 dstcoords(k) = TM_WORLD(k,cx_grid(dst_cx),axis,box_middle)
+	      ENDDO
+	   ENDIF
 	ELSEIF (trans .EQ. pauxrgrd_pwlave ) THEN
-	   DO 32 k = kmin_dst, kmax_dst
-              dstcoords(k) = TM_WORLD(k,cx_grid(dst_cx),z_dim,box_lo_lim)
- 32	   CONTINUE
-	   dstcoords(kmax_dst+1) =
-     .		    TM_WORLD(kmax_dst,cx_grid(dst_cx),z_dim,box_hi_lim)
+	   IF (false_1pt_regrid) THEN
+* ... false 1pt regridding - e.g. Z=100:200 at ave
+	      dstcoords(kmin_dst  ) = cx_lo_ww(axis, dst_cx)
+	      dstcoords(kmin_dst+1) = cx_hi_ww(axis, dst_cx)
+	   ELSE
+	      DO k = kmin_dst, kmax_dst
+                 dstcoords(k) = TM_WORLD(k,cx_grid(dst_cx),axis,box_lo_lim)
+	      ENDDO
+	      dstcoords(kmax_dst+1) =
+     .		    TM_WORLD(kmax_dst,cx_grid(dst_cx),axis,box_hi_lim)
+	   ENDIF
 	   kdmax = kdmax + 1
 	ELSE
 	   STOP 'do_aux_var_regrid_trns'   ! checked in AUX_REGRID_LIMS
 	ENDIF
 
 * initial code does only the Z axis, based upon "ZAXREPLACE(V,ZVALS,ZAX)"
-* of old ... regrid a sigma-coordinate-style (layered) variable, V (src), onto
+* of old ... regrid a layer-Z-coordinate variable, V (src), onto
 * a depth axis, ZAX, (Z axis of dst) guided by the depths in ZVALS (pos)
 
 
@@ -172,7 +204,7 @@
 	new_aux_line = .TRUE.
 	is = si0
 	ip = pi0
-	DO 1000 i = mr_lo_s1(mdst), mr_hi_s1(mdst)
+	DO 1000 i = dstlo(x_dim), dsthi(x_dim)
 	 is = is + dsi
 	 IF (dpi .NE. 0) THEN
 	   ip = ip + dpi
@@ -180,61 +212,117 @@
 	 ENDIF
 	 js = sj0
 	 jp = pj0
-	 DO 1000 j = mr_lo_s2(mdst), mr_hi_s2(mdst)
+	 DO 1000 j = dstlo(y_dim), dsthi(y_dim)
 	  js = js + dsj
 	  IF (dpj .NE. 0) THEN
 	    jp = jp + dpj
 	    new_aux_line = .TRUE.
 	  ENDIF
-	  ls = sl0
-	  lp = pl0
-!   ... k is the axis of the EXTRACT ...
-	  DO 1000 l = mr_lo_s4(mdst), mr_hi_s4(mdst)
-	   ls = ls + dsl
-	   IF (dpl .NE. 0) THEN
-	     lp = lp + dpl
-	     new_aux_line = .TRUE.
-	   ENDIF
-	   ms = sm0
-	   mp = pm0
-	   DO 1000 m = mr_lo_s5(mdst), mr_hi_s5(mdst)
-	    ms = ms + dsm
-	    IF (dpm .NE. 0) THEN
-	      mp = mp + dpm
+	   ks = sk0
+	   kp = pk0
+	   DO 1000 k = dstlo(z_dim), dsthi(z_dim)
+	    ks = ks + dsk
+	    IF (dpk .NE. 0) THEN
+	      kp = kp + dpk
 	      new_aux_line = .TRUE.
 	    ENDIF
-	    ns = sn0
-	    np = pn0
-	    DO 1000 n = mr_lo_s6(mdst), mr_hi_s6(mdst)
-	     ns = ns + dsn
-	     IF (dpn .NE. 0) THEN
-	       np = np + dpn
+	    ls = sl0
+	    lp = pl0
+	    DO 1000 l = dstlo(t_dim), dsthi(t_dim)
+	     ls = ls + dsl
+	     IF (dpl .NE. 0) THEN
+	       lp = lp + dpl
 	       new_aux_line = .TRUE.
 	     ENDIF
+	     ms = sm0
+	     mp = pm0
+	     DO 1000 m = dstlo(e_dim), dsthi(e_dim)
+	      ms = ms + dsm
+	      IF (dpm .NE. 0) THEN
+	        mp = mp + dpm
+	        new_aux_line = .TRUE.
+	      ENDIF
+	      ns = sn0
+	      np = pn0
+	      DO 1000 n = dstlo(f_dim), dsthi(f_dim)
+	       ns = ns + dsn
+	       IF (dpn .NE. 0) THEN
+	         np = np + dpn
+	         new_aux_line = .TRUE.
+	       ENDIF
 
 
 * compute on the source and destination coords only if they differ from last
 	     IF (new_aux_line) THEN
-* extract the line of source coord vals from the aux variable at this location
-	        DO 500 k = kmin_src, kmax_src
- 500		posline(k) = pos(ip, jp, k, lp, mp, np)
-
-* for each destination point, find the source index just below this value
-* and the weight coefficient to attach to that index 
-* ... note that the indices are referenced to a starting index of 1
-	        CALL HUNT_INDICES(posline, kmin_src, kmax_src,
+* extract the line of coord vals from the aux variable at this location
+* 6/2015-- do full region so that we get a reliable determination of ascending vs descending
+	        CALL EXTRACT_ARG1_LINE( pos, axis, kmin_pos, kmax_pos,
+     .				        ip, jp, kp, lp, mp, np, posline )
+
+
+* 5/15 - allow for non-monotonic position array.
+* PROGRAMMER NOTE: The 5/15 changes make this code seriously sub-optimal
+* The code immediately following could be blended with the routines
+* HUNT_INDICES and FULL_SCAN_INDICES to make something both smaller and faster
+
+* check for a single contiguous block of monotonic points
+	        monotonic_block = .FALSE.
+	        n_ascnd = 0
+	        n_desnd = 0
+	        kstart = kmax_src
+	        kend   = kmin_src
+
+* ... count ascending and descending pairs
+		v0 = posline(kmin_pos)
+	        DO ss = kmin_pos+1, kmax_pos
+		   v1 = posline(ss)
+	           IF (v1 .NE. bad_pos) THEN
+	              IF (v1 .GT. v0) THEN
+	                 n_ascnd = n_ascnd + 1
+	              ELSEIF (v1 .LT. v0) THEN
+	                 n_desnd = n_desnd + 1
+	              ENDIF
+	              v0 = v1
+	           ENDIF
+	        ENDDO
+
+* ... assess the monotonicity
+*     Note: through this approach columns may differ in direction in pathological data!!
+	        ascending = n_ascnd .GE. n_desnd
+
+* ... find start of non-bad block
+	        DO ss = kmin_src, kmax_src
+	           IF (posline(ss) .NE. bad_pos) THEN
+	              kstart = ss
+	              GOTO 510
+	           ENDIF
+	        ENDDO
+* ... find end of non-bad block
+ 510	        DO ss = kmax_src, kstart, -1
+	           IF (posline(ss) .NE. bad_pos) THEN
+	              kend = ss
+	              GOTO 590
+	           ENDIF
+	        ENDDO
+
+* ... no non-bad-block exists
+	        CONTINUE
+
+ 590		CALL FULL_SCAN_INDICES(posline(kmin_src), kmin_src, kmax_src,
+     .				  kstart, kend,
      .				  bad_pos, dstcoords,
      .				  indices, coef, kmin_dst, kdmax,
-     .				  klook, khiok, ascending )
-	        has_valid = klook .NE. unspecified_int4
-		IF (trans .EQ. pauxrgrd_pwlave ) khiok = khiok-1
-		new_aux_line = .FALSE.
+     .				  ascending, has_valid )
+	        klook = kmin_dst
+	        khiok = kdmax
+	        IF (trans .EQ. pauxrgrd_pwlave ) khiok = khiok-1
+	        new_aux_line = .FALSE.
 	     ENDIF
 
 	     IF (has_valid) THEN
 * extract the line of source vals 
-	        DO 600 k = kmin_src, kmax_src
- 600	        srcline(k) = src(is, js, k, ls, ms, ns)
+	        CALL EXTRACT_ARG4_LINE( src, axis, kmin_src, kmax_src,
+     .					is, js, ks, ls, ms, ns, srcline )
 
 * perform the regridding
 	        IF (trans .EQ. pauxrgrd_linear ) THEN
@@ -248,20 +336,23 @@
      .				  bad_src,  bad_dst, ascending,
      .				  dstline             )
 	        ELSEIF (trans .EQ. pauxrgrd_pwlave ) THEN
-* ... by within-target-cell averaging
+* ... by within-target-cell averaging   (count non-monotonic positions)
 	           CALL DO_AUX_REGRID_LINE_AVE (axis,
-     .				  srcline,  posline,
+     .				  srcline,  posline(kmin_src),
      .				  kmin_src, kmax_src,
      .				  indices,  coef,
      .				  kmin_dst, kmax_dst,
      .				  klook,    khiok,
-     .				  bad_src,  bad_dst, ascending,
+     .				  bad_src,  bad_dst, bad_pos,
+     .				  ascending,
      .				  dstline             )
 	        ENDIF
 
 * put the line of results into the destination array
-	        DO 900 k = klook, khiok
- 900	        dst(i, j, k, l, m, n) = dstline(k)
+	        CALL PUT_ARG5_LINE(
+     .			dst, axis, klook, khiok, koffset_false,
+     .			i, j, k, l, m, n, dstline )
+
 	     ENDIF
 
  1000	CONTINUE
diff --git a/fer/doo/do_aux_var_regrid_1d_t.F b/fer/doo/do_aux_var_regrid_1d_t.F
new file mode 100644
index 0000000..3a5ac1b
--- /dev/null
+++ b/fer/doo/do_aux_var_regrid_1d_t.F
@@ -0,0 +1,233 @@
+	SUBROUTINE DO_AUX_VAR_REGRID_1D_T( axis,
+     .				           src,  msrc,  src_cx,
+     .				           dst,  mdst,  dst_cx,
+     .				           tsrc, mtsrc, tsrc_cx,
+     .					   ldst_min, ldst_max ) 
+
+*
+*
+*  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. 
+*
+*
+* perform a 1D t-axis "orthoganalization" regrid guided by an
+* auxiliary variable containing a 2D array of time steps
+* allow for the usual Ferret promotion of point axes to match span axes
+* where either the source data or the position field may have degenerate axes
+* (typically the position array will be degenerate in Z and E) 
+
+* This code copied/modified from do_aux_var_regrid_1d_z.F
+
+* V695+ 3/15 *sh*
+
+        IMPLICIT NONE
+        include 'tmap_dims.parm'
+        include 'errmsg.parm'
+	include	'ferret.parm'
+	include	'xcontext.cmn'
+	include	'xvariables.cmn'
+	include	'xmem_subsc.cmn'
+	
+* calling argument declarations:
+	INTEGER	axis,
+     .		msrc, mdst, mtsrc, src_cx, dst_cx, tsrc_cx,
+     .		ldst_min, ldst_max
+        REAL    src ( m4lox:m4hix,m4loy:m4hiy,m4loz:m4hiz,
+     .                m4lot:m4hit,m4loe:m4hie,m4lof:m4hif ),
+     .          dst ( m5lox:m5hix,m5loy:m5hiy,m5loz:m5hiz,
+     .                m5lot:m5hit,m5loe:m5hie,m5lof:m5hif ),
+     .          tsrc( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
+     .                m1lot:m1hit,m1loe:m1hie,m1lof:m1hif )
+
+
+* internal variable declarations:
+        INTEGER CX_DIM_LEN,
+     .          idim,
+     .          i,   j,   k,   l,   m,   n,
+     .          is,  js,  ks,  ls,  ms,  ns,
+     .          si0, sj0, sk0, sl0, sm0, sn0,
+     .          dsi, dsj, dsk, dsl, dsm, dsn,
+     .		ip,   jp,  kp,       mp
+        INTEGER nmin, nmax, dgrid, status,
+     .		lsrc_min, lsrc_max, lsrc_start, lsrc_end, ldst_start, ldst_end
+        REAL    tsrc_min, tsrc_max
+        REAL*8  TM_WORLD
+* internally declared work arrays
+	REAL*8	tdst(ldst_min:ldst_max)
+
+* equivalence conveniences
+* "inc" is the increments for each axis of each component
+* "lo"  is the starting subscript (minus 1) for each axis of each component
+* "s" is the source data (src)
+* "p" (tsrcition) is the time steps of the source data ==> the 2D array
+* "d" indicates the delta increment
+* "0" indicates the start (lo) index
+        INTEGER srcinc(nferdims), srclo(nferdims)
+        EQUIVALENCE
+     .	    (srcinc(1),dsi), (srcinc(2),dsj), (srcinc(3),dsk),
+     .	    (srcinc(4),dsl), (srcinc(5),dsm), (srcinc(6),dsn),
+     .	    (srclo(1), si0), (srclo(2), sj0), (srclo(3), sk0),
+     .	    (srclo(4), sl0), (srclo(5), sm0), (srclo(6), sn0)
+
+*==========================
+
+* initialize
+* nicer names for key index limits
+	dgrid   = cx_grid(dst_cx)
+	nmin    = cx_lo_ss(dst_cx,f_dim) ! lowest forecast axis index
+	nmax    = cx_hi_ss(dst_cx,f_dim) !  hiest forecast axis index
+	lsrc_min = cx_lo_ss(src_cx,t_dim) ! l index min in source data
+	lsrc_max = cx_hi_ss(src_cx,t_dim) ! l index max in source data
+
+* auxiliary TIME field is 2D on T-F so set up static indices for other axes
+	ip = cx_lo_ss(tsrc_cx,x_dim)
+	jp = cx_lo_ss(tsrc_cx,y_dim)
+	kp = cx_lo_ss(tsrc_cx,z_dim)
+	mp = cx_lo_ss(tsrc_cx,e_dim)
+
+* extract the time step values of the destination
+	DO l = ldst_min, ldst_max
+	   tdst(l) = TM_WORLD(l, dgrid, t_dim, box_middle)
+	ENDDO
+
+* compute the delta increment for each axis
+* this allows "promotion" of degenerate axes
+        DO 10 idim = 1, nferdims
+           IF ( CX_DIM_LEN(idim,src_cx) .EQ. 1 ) THEN
+              srcinc(idim) = 0
+           ELSE
+              srcinc(idim) = 1
+           ENDIF
+ 10     CONTINUE
+
+* compute the starting subscript for each axis of each component
+* used below through equivalence relationship
+* pre-decrement by 1 delta for looping ahead)
+        DO idim = 1, nferdims
+	   srclo(idim) = cx_lo_ss(src_cx,idim) - srcinc(idim)
+	ENDDO
+
+* the relationship between the time steps in the source data (the
+* values found in the "position" data -- the 2D aux time field)
+* and the same times in the destination field looks something
+* like this over 3 forecast cycles
+
+*   **     2d aux times    **	      ** orthoganalized T-F field **
+*                       		                 	110
+*                       		                 	109
+*                       		        1010   1010	108
+*                       		        1009   1009	107
+*   18     >1008   1012   1016		 1008   1008   1008	106
+*   17     >1007   1011   1015		 1007   1007		105
+*   16     >1006  >1010   1014		 1006   1006		104
+*   15     >1005  >1009   1013		 1005   1005		103
+*   14      1004  >1008   1012		 1004   1004		102
+*   13      1003  >1007   1011		 			101
+*   12      1002  >1006  >1010		 			100
+*   11      1001  >1005  >1009		 			 99
+*   10      1000   1004  >1008		 			 98
+*    |								  |
+* l in src_cx						    l in dst_cx 
+
+* ">" above indicate a requested time range of T=1005:1010
+
+* the outer loop is over the frequency axis
+	ns = sn0
+	DO n = mr_lo_s6(mdst), mr_hi_s6(mdst)
+	   ns = ns + dsn
+
+* are there time steps to be copied at this forecast index
+	   tsrc_min = tsrc(ip,jp,kp,lsrc_min,mp,n) ! min time at this F
+	   tsrc_max = tsrc(ip,jp,kp,lsrc_max,mp,n) ! max time at this F
+	   IF (tdst(ldst_min) .GT. tsrc_max
+     .    .OR. tdst(ldst_max) .LT. tsrc_min) CYCLE  ! nothing to copy
+
+* locate the index at which the block of times to be copied begins in source and dest
+	   IF (tdst(ldst_min) .LT. tsrc_min ) THEN
+	      lsrc_start = lsrc_min
+	      DO ldst_start = ldst_min, ldst_max
+	         IF (tdst(ldst_start) .EQ. tsrc_min) EXIT
+	      ENDDO
+	   ELSE
+	      ldst_start = ldst_min
+	      DO lsrc_start = lsrc_min, lsrc_max
+	         IF (tsrc(ip,jp,kp,lsrc_start,mp,n)
+     .	        .EQ. tdst(ldst_min)            ) EXIT
+	      ENDDO
+	   ENDIF
+
+* locate the index at which the block of times to be copied ends
+	   IF (tdst(ldst_max) .GT. tsrc_max ) THEN
+	      lsrc_end = lsrc_max
+	   ELSE
+	      DO lsrc_end = lsrc_max, lsrc_min, -1
+	         IF (tsrc(ip,jp,kp,lsrc_end,mp,n)
+     .	        .EQ. tdst(ldst_max)            ) EXIT
+	      ENDDO
+	   ENDIF
+	   ldst_end = ldst_start + (lsrc_end-lsrc_start)
+
+* copy the src data to the destination array -- loop over its  X,Y,Z,T,E range
+* the 's' variables are source array indices
+ 100	   is = si0
+	   DO 1000 i = mr_lo_s1(mdst), mr_hi_s1(mdst)
+	    is = is + dsi
+
+	    js = sj0
+	    DO 1000 j = mr_lo_s2(mdst), mr_hi_s2(mdst)
+	     js = js + dsj
+
+	     ks = sk0
+	     DO 1000 k = mr_lo_s3(mdst), mr_hi_s3(mdst)
+	      ks = ks + dsk
+
+* ... special set-up for L axis
+	      ls = lsrc_start - 1
+	      DO 1000 l = ldst_start, ldst_end
+	       ls = ls + 1
+
+	       ms = sm0
+	       DO 1000 m = mr_lo_s5(mdst), mr_hi_s5(mdst)
+	        ms = ms + dsm
+
+	    dst(i,j,k,l,m,n) = src(is,js,ks,ls,ms,ns)
+
+ 1000	   CONTINUE
+	ENDDO
+
+* successful completion.  Clean up.
+        CALL RELEASE_WORK_SPC    ! ?? needed ??
+        RETURN
+
+* error exit
+ 5000	RETURN
+	END
diff --git a/fer/doo/do_aux_var_regrid_2d_tf.F b/fer/doo/do_aux_var_regrid_2d_tf.F
new file mode 100644
index 0000000..bf4c515
--- /dev/null
+++ b/fer/doo/do_aux_var_regrid_2d_tf.F
@@ -0,0 +1,286 @@
+	SUBROUTINE DO_AUX_VAR_REGRID_2D_TF(
+     .				           src,  msrc,  src_cx,
+     .				           dst,  mdst,  dst_cx,
+     .				           tsrc, mtsrc, tsrc_cx,
+     .					   ldst_min, ldst_max ) 
+
+*
+*
+*  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. 
+*
+*
+* perform a 1D t-axis "orthoganalization" regrid guided by an
+* auxiliary variable containing a 2D array of time steps
+* allow for the usual Ferret promotion of point axes to match span axes
+* where either the source data or the position field may have degenerate axes
+* (typically the position array will be degenerate in Z and E) 
+
+* This code copied/modified from do_aux_var_regrid_1d_z.F
+
+* V695+ 3/15 *sh*
+
+        IMPLICIT NONE
+        include 'tmap_dims.parm'
+        include 'errmsg.parm'
+	include	'ferret.parm'
+	include	'xcontext.cmn'
+	include	'xvariables.cmn'
+	include	'xmem_subsc.cmn'
+	include 'xtm_grid.cmn_text'   ! for line_delta
+	
+* calling argument declarations:
+	INTEGER	axis,
+     .		msrc, mdst, mtsrc, src_cx, dst_cx, tsrc_cx,
+     .		ldst_min, ldst_max
+        REAL    src ( m4lox:m4hix,m4loy:m4hiy,m4loz:m4hiz,
+     .                m4lot:m4hit,m4loe:m4hie,m4lof:m4hif ),
+     .          dst ( m5lox:m5hix,m5loy:m5hiy,m5loz:m5hiz,
+     .                m5lot:m5hit,m5loe:m5hie,m5lof:m5hif ),
+     .          tsrc( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
+     .                m1lot:m1hit,m1loe:m1hie,m1lof:m1hif )
+
+
+* internal variable declarations:
+        INTEGER CX_DIM_LEN,
+     .          idim,
+     .          i,   j,   k,   l,   m,   n,
+     .          is,  js,  ks,  ls,  ms,  ns,
+     .          si0, sj0, sk0, sl0, sm0, sn0,
+     .          dsi, dsj, dsk, dsl, dsm, dsn,
+     .		ip,   jp,  kp,       mp
+        INTEGER CGRID_AXIS,
+     .		ndst_min, ndst_max, dgrid,
+     .		lsrc_min, lsrc_max, lsrc_start, lsrc_end, ldst_start, ldst_end,
+     .		nsrc_min, nsrc_max, nsrc0, lsrc0, f_axis, l_per_n, ldst0
+        REAL    tsrc_min, tsrc_max, t_target, f_delta, t_delta
+        REAL*8  TM_WORLD
+* internally declared work arrays
+	REAL*8	tdst(ldst_min:ldst_max)
+
+* equivalence conveniences
+* "inc" is the increments for each axis of each component
+* "lo"  is the starting subscript (minus 1) for each axis of each component
+* "s" is the source data (src)
+* "p" (tsrcition) is the time steps of the source data ==> the 2D array
+* "d" indicates the delta increment
+* "0" indicates the start (lo) index
+        INTEGER srcinc(nferdims), srclo(nferdims)
+        EQUIVALENCE
+     .	    (srcinc(1),dsi), (srcinc(2),dsj), (srcinc(3),dsk),
+     .	    (srcinc(4),dsl), (srcinc(5),dsm), (srcinc(6),dsn),
+     .	    (srclo(1), si0), (srclo(2), sj0), (srclo(3), sk0),
+     .	    (srclo(4), sl0), (srclo(5), sm0), (srclo(6), sn0)
+
+*==========================
+
+* initialize
+* nicer names for key index limits
+	dgrid   = cx_grid(dst_cx)
+	ndst_min    = cx_lo_ss(dst_cx,f_dim)  ! lowest forecast axis index
+	ndst_max    = cx_hi_ss(dst_cx,f_dim)  !  hiest forecast axis index
+	lsrc_min = cx_lo_ss(src_cx,t_dim) ! l index min in source data
+	lsrc_max = cx_hi_ss(src_cx,t_dim) ! l index max in source data
+	nsrc_min = cx_lo_ss(src_cx,f_dim)
+	nsrc_max = cx_hi_ss(src_cx,f_dim)
+
+* auxiliary TIME field is 2D on T-F so set up static indices for other axes
+	ip = cx_lo_ss(tsrc_cx,x_dim)
+	jp = cx_lo_ss(tsrc_cx,y_dim)
+	kp = cx_lo_ss(tsrc_cx,z_dim)
+	mp = cx_lo_ss(tsrc_cx,e_dim)
+
+* 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)
+
+* extract the time step values of the destination
+	DO l = ldst_min, ldst_max
+	   tdst(l) = TM_WORLD(l, dgrid, t_dim, box_middle)
+	ENDDO
+
+* no source data overlapping with requested dest times?  Then quit here
+	IF (tdst(ldst_min) .GT. tsrc(ip,jp,kp,lsrc_max,mp,nsrc_max)
+     . .OR. tdst(ldst_max) .LT. tsrc(ip,jp,kp,lsrc_min,mp,nsrc_min) )
+     .								RETURN
+* number of time steps before the start of the next forecast
+	IF (m1hit .GT. m1lot ) THEN
+* ... 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
+
+* compute the delta increment for each axis
+* this allows "promotion" of degenerate axes
+        DO 10 idim = 1, nferdims
+           IF ( CX_DIM_LEN(idim,src_cx) .EQ. 1 ) THEN
+              srcinc(idim) = 0
+           ELSE
+              srcinc(idim) = 1
+           ENDIF
+ 10     CONTINUE
+
+* compute the starting subscript for each axis of each component
+* used below through equivalence relationship
+* pre-decrement by 1 delta for looping ahead)
+        DO idim = 1, nferdims
+	   srclo(idim) = cx_lo_ss(src_cx,idim) - srcinc(idim)
+	ENDDO
+
+* the relationship between the time steps in the 2D aux time field (cx1)
+* and the same times in the destination field looks something
+* like this
+
+*          **  2d aux times    **  ==>   ** cal-T x lag-F field **
+
+*   12  1011(0)   1015(1)   1019(2)        1019(2) 1019(3) 1019(4)     20
+*   11  1010(0)   1014(1)   1018(2)        1018(2) 1018(3) 1018(4)     19
+*   10  1009(0)   1013(1)   1017(2)        1017(2) 1017(3) 1017(4)     18
+*    9  1008(0)   1012(1)   1016(2)        1016(2) 1016(3) 1016(4)     17
+*    8  1007(0)   1011(1)   1015(2)        1015(1) 1015(2) 1015(3)     16
+*    7  1006(0)  >1010(1)   1014(2)        1014(1) 1014(2) 1014(3)     15
+*    6  1005(0)   1009(1)   1013(2)        1013(1) 1013(2) 1013(3)     14
+*    5  1004(0)   1008(1)   1012(2)        1012(1) 1012(2) 1012(3)     13
+*    4  1003(0)   1007(1)   1011(2)        1011(0) 1011(1) 1011(2)     12
+*    3  1002(0)   1006(1)   1010(2)        1010(0) 1010(1) 1010(2)     11
+*    2  1001(0)  >1005(1)   1009(2)        1009(0) 1009(1) 1009(2)     10
+*    1  1000(0)   1004(1)   1008(2)        1008(0) 1008(1) 1008(2)      9
+*    ^                                                                  ^
+*    |                                                                  |
+* l in src_cx                                                     l in dst_cx 
+
+* ">" above indicate a requested time range of T=1005:1010
+
+* strategy for reorganizing the data:
+*   - initialize by finding the last forecast (highest N index) which
+*     contains the starting destination time requested.  Call this nsrc0
+*   - loop over the destination time axis.
+*     count when F-delta advances occur.  When they occur, advance to  
+*     next nsrc0
+*   - at each time, loop over the F axis,
+*        start by copying nsrc0 source into n=1
+*        advance to n=2,3, ... keeping T constant by incrementing L forward
+*        at each consecutive forecast by an amount delta-F
+
+* find the highest source N index at which lowest destination time can be found
+	DO ldst0 = ldst_min, ldst_max
+	   t_target = tdst(ldst0)
+	   DO nsrc0 = cx_hi_ss(tsrc_cx,f_dim),cx_lo_ss(tsrc_cx,f_dim), -1
+	      IF (t_target .GE. tsrc(ip,jp,kp,lsrc_min,mp,nsrc0)) THEN
+	         DO lsrc0 = lsrc_min,lsrc_max
+	            IF  (tsrc(ip,jp,kp,lsrc0,mp,nsrc0) .EQ. t_target) THEN
+	               GOTO 50
+	            ELSEIF  (tsrc(ip,jp,kp,lsrc0,mp,nsrc0) .GT. t_target) THEN
+	               CALL WARN('1D time axis of FMRC contains time'//
+     .			         ' not in forecast collection'//pCR//
+     .				 'Results may not be correct.')
+	               GOTO 50
+	            ENDIF
+	         ENDDO
+	      ENDIF
+	   ENDDO
+* ... the time t_target does not exist in this forcast
+	ENDDO
+* can never get here: no overlap between source and destination time ranges
+	STOP 'do_aux_ver_regrid_2d_tf'
+
+* determine where we are starting on the l_per_n cycle
+! 50	n = AMOD(t_target, f_delta) / t_delta + 1
+ 50	lsrc0 = lsrc0 - 1
+
+******************************************************************
+	DO l = ldst0, ldst_max         ! ***** T-cal loop  ******
+
+* advance to the next forecast for pulling from the source data
+* (do not do this on initial entry -- everything set properly initially)
+	 IF (l.GT.ldst0 .AND. MOD(ls,l_per_n).EQ.0) THEN
+	   nsrc0 = nsrc0 + 1
+	   lsrc0 = lsrc_min - 1
+	 ENDIF
+
+	 lsrc0 = lsrc0 + 1
+	 ls = lsrc0
+	 ns    = nsrc0
+	 n     = 1
+
+	 DO WHILE (n<=ndst_max)          ! ***** N-lag loop *****
+
+* this IF allows i) user N limits to exclude low n values
+*           and ii) copying the ragged high end of the FMRC block
+	   IF (n  .GE. ndst_min
+     .   .AND. ns .LE. nsrc_max) THEN
+
+* copy the src data to the destination array -- loop over its  X,Y,Z,E range
+* the 's' variables are source array indices
+	     is = si0
+	     DO 1000 i = mr_lo_s1(mdst), mr_hi_s1(mdst)
+	      is = is + dsi
+
+	      js = sj0
+	      DO 1000 j = mr_lo_s2(mdst), mr_hi_s2(mdst)
+	       js = js + dsj
+
+	       ks = sk0
+	       DO 1000 k = mr_lo_s3(mdst), mr_hi_s3(mdst)
+	        ks = ks + dsk
+
+	         ms = sm0
+	         DO 1000 m = mr_lo_s5(mdst), mr_hi_s5(mdst)
+	          ms = ms + dsm
+
+	          dst(i,j,k,l,m,n) = src(is,js,ks,ls,ms,ns)
+
+ 1000	     CONTINUE
+	   ENDIF
+
+* set up for same destination time taken from the previous forecast
+	   n = n + 1
+	   ns = ns - 1
+	   ls = ls + l_per_n 
+	   IF (ns.LT.nsrc_min .OR. ls.GT.lsrc_max) EXIT
+	 ENDDO     ! N loop
+
+	ENDDO     ! L loop
+
+* successful completion.  Clean up.
+        CALL RELEASE_WORK_SPC    ! ?? needed ??
+        RETURN
+
+* error exit
+ 5000	RETURN
+	END
diff --git a/fer/utl/decrement_plot_grid.F b/fer/doo/do_bin_regrid.F
old mode 100755
new mode 100644
similarity index 73%
copy from fer/utl/decrement_plot_grid.F
copy to fer/doo/do_bin_regrid.F
index aa6c503..8695666
--- a/fer/utl/decrement_plot_grid.F
+++ b/fer/doo/do_bin_regrid.F
@@ -1,9 +1,11 @@
-	SUBROUTINE DECREMENT_PLOT_GRID
+	SUBROUTINE DO_BIN_REGRID( cx_lims, axis, trans,
+     .				  src, msrc, dst, mdst,
+     .				  work, src_cx, dst_cx, itot)
+
 
-*
 *  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,19 +35,25 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-
-* Ansley Manke NOAA/PMEL/TMAP 2/10/2014
 *
-*      Decrement the grid use count which was bumped up, saving the grid used
-*      in a SHADE/SET, FILL/SET, CONTOUR/SET or WIRE/SET command. See ticket 883.
+* call the regridding routine with appropriate work arrays
 
-	include 'xbox_bounds.cmn'
+* programmer - Ansley Manke
+* NOAA/PMEL, Seattle, WA - SDIG
+*
+* revision 0.0 - 11/15
+        IMPLICIT NONE
+        include 'tmap_dims.parm'
+	include	'ferret.parm'
+	include	'xcontext.cmn'
 
-	INTEGER grid
+* calling argument declarations:
+	INTEGER	cx_lims, axis, trans, msrc, mdst, itot, src_cx, dst_cx
+	REAL	src(*), dst(*), work(itot)
 
-	grid = bb_grid
-	IF (bb_grid_inccount .GT. 0) CALL TM_DEALLO_DYN_GRID (grid)
-	bb_grid_inccount = 0
+	CALL BIN_REGRID_1_AXIS( cx_lims, axis, trans,
+     .			   src, msrc, dst, mdst,
+     .			   work(1), src_cx, dst_cx, itot )
 
 	RETURN
 	END
diff --git a/fer/doo/do_stddev.F b/fer/doo/do_smth_box_p.F
old mode 100755
new mode 100644
similarity index 73%
copy from fer/doo/do_stddev.F
copy to fer/doo/do_smth_box_p.F
index 0e4724d..b7f710b
--- a/fer/doo/do_stddev.F
+++ b/fer/doo/do_smth_box_p.F
@@ -1,7 +1,7 @@
-	INTEGER FUNCTION DO_STDDEV (	idim, arg,
+	INTEGER FUNCTION DO_SMTH_BOX_P( idim, arg,
      .					com, com_mr, com_cx,
      .					res, res_mr, res_cx,
-     .					box	)
+     .					wt	)
 
 *
 *
@@ -38,43 +38,53 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* determine the variance of the given field along the indicated axis
+* smooth along axis idim by a running mean filter, summing all data 
+* present in the box. This will return a result based on partial data.
 
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* V230:  3/2/92
-*        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* programmer - Ansley Manke
+* From do_smth_box
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
 	include	'ferret.parm'
 	include	'errmsg.parm'
 	include	'interp_stack.parm'
-	include	'xcontext.cmn'
 	include	'xprog_state.cmn'
 
 * calling argument declarations:
 	INTEGER	idim, com_mr, com_cx, res_mr, res_cx
-	REAL	arg, com(*), res(*), box(*)
-
-* internal variable declarations:
-	LOGICAL stddev
+	REAL	arg, wt(*), com(*), res(*)
 
-	stddev = .TRUE.
+* internal variable declarations
+	LOGICAL	even
+	INTEGER	i, wlen
+	REAL	weight
 
 * diagnostic mode output: " doing --> VAR_NAME[x=lo:hi at TRN:n,D=#]"
 	IF ( mode_diagnostic ) 	CALL DIAG_OP
      .				( 'doing', isact_class_trans, res_cx, idim )
 
-	CALL DO_VAR_SUB( idim,
-     .			 cx_lo_ss(com_cx,idim), cx_hi_ss(com_cx,idim),
-     .			 com, com_mr, com_cx,
-     .			 res, res_mr, res_cx,
-     .			 box, stddev )
+* initialize
+	wlen = arg	! length of smoother
+
+* create weights array to be convolved with data
+* (with half weights on ends for even argument given)
+	weight = 1. / FLOAT(wlen)
+	even = MOD(wlen,2) .EQ. 0
+	IF (even) wlen = wlen + 1
+	DO 100 i = 1, wlen
+ 100	wt(i) = weight
+	IF ( even) THEN
+	   wt(1)    = weight * 0.5
+	   wt(wlen) = weight * 0.5
+	ENDIF
 
-	DO_STDDEV = ferr_ok
+* now convolve this along the desired axis of the grid
+	CALL CONVOLVE_P(idim, wlen/2, wt,
+     .			com, com_mr, com_cx,
+     .			res, res_mr, res_cx )
 
+* success
+	DO_SMTH_BOX_P = ferr_ok
 	RETURN
 	END
diff --git a/fer/doo/do_stddev.F b/fer/doo/do_stddev.F
old mode 100755
new mode 100644
diff --git a/fer/doo/regrid_comments.F b/fer/doo/regrid_comments.F
index 6bac7b6..d6f68b3 100644
--- a/fer/doo/regrid_comments.F
+++ b/fer/doo/regrid_comments.F
@@ -48,6 +48,8 @@
 * V68  *acm* 1/12  changes for double-precision ferret.
 *        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
 
         IMPLICIT NONE
 	include	'tmap_dims.parm'
@@ -142,61 +144,83 @@
 	      ELSE
 	         add_on = .TRUE.
 	      ENDIF
-	      IF ( line_regular(axis) .AND. .NOT.stat_grid 
-     .	    .AND.  line_dim    (axis) .GT.  1               ) THEN
+
+	      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"
+	         IF (idim .EQ. t_dim) THEN
+     	            REGRID_COMMENTS = REGRID_COMMENTS(:mlen) //
+     .                  'reorganized on T'
+	            mlen = mlen + 16
+	         ELSEIF (idim.EQ. f_dim) THEN
+     	            REGRID_COMMENTS = REGRID_COMMENTS(:mlen-1) //
+     .                  'F'
+	         ENDIF
+	      ELSE
+
+	         IF ( line_regular(axis) .AND. .NOT.stat_grid 
+     .	    .   AND.  line_dim    (axis) .GT.  1               ) THEN
 * ... delta
 #ifdef double_p
-	         REGRID_COMMENTS = REGRID_COMMENTS(:mlen) //
+	            REGRID_COMMENTS = REGRID_COMMENTS(:mlen) //
      .				 TM_FMT(line_delta(axis),2,8,slen)
-	         mybuff = mybuff(:mlen) //
+	            mybuff = mybuff(:mlen) //
      .				 TM_FMT(line_delta(axis),2,8,slen)
 #else
-     	         REGRID_COMMENTS = REGRID_COMMENTS(:mlen) //
+     	            REGRID_COMMENTS = REGRID_COMMENTS(:mlen) //
      .				 TM_FMT(SNGL(line_delta(axis)),2,8,slen)
-	         mybuff = mybuff(:mlen) //
+	            mybuff = mybuff(:mlen) //
      .				 TM_FMT(SNGL(line_delta(axis)),2,8,slen)
 #endif
-	         mlen = MIN( maxlen, mlen+slen )
+	            mlen = MIN( maxlen, mlen+slen )
 * ... units
-	         IF ( line_units(axis) .EQ. ' ' ) THEN
-	            units = 'delta'
-	         ELSE
-	            IF ( line_unit_code(axis) .EQ. 0 ) THEN
-	                units = line_units(axis)
+	            IF ( line_units(axis) .EQ. ' ' ) THEN
+	               units = 'delta'
 	            ELSE
-	                units = un_name(line_unit_code(axis))
+	               IF ( line_unit_code(axis) .EQ. 0 ) THEN
+	                  units = line_units(axis)
+	               ELSE
+	                  units = un_name(line_unit_code(axis))
+	               ENDIF
 	            ENDIF
-	         ENDIF
-	         slen = TM_LENSTR1(units)
-	         REGRID_COMMENTS = REGRID_COMMENTS(:mlen) //
+	            slen = TM_LENSTR1(units)
+	            REGRID_COMMENTS = REGRID_COMMENTS(:mlen) //
      .				   ' '// units(:slen)//' '
-	         mybuff = mybuff(:mlen) //
+	            mybuff = mybuff(:mlen) //
      .				   ' '// units(:slen)//' '
-	         mlen = MIN( maxlen, mlen+slen+2 )
-	      ENDIF
+	            mlen = MIN( maxlen, mlen+slen+2 )
+	         ENDIF
 * ... axis
-	      REGRID_COMMENTS = REGRID_COMMENTS(:mlen) // 'on '
+	         REGRID_COMMENTS = REGRID_COMMENTS(:mlen) // 'on '
      .					//ww_dim_name(idim)
-	      mybuff = mybuff(:mlen) // 'on '
+	         mybuff = mybuff(:mlen) // 'on '
      .					//ww_dim_name(idim)
-	      mlen = MIN( maxlen, mlen+4 )
+	         mlen = MIN( maxlen, mlen+4 )
 * ... @transform
-	      IF (non_atlin) THEN
-	         trans = alg_regrid_code(cx_regrid_trans(idim,cx))
-	         REGRID_COMMENTS = REGRID_COMMENTS(:mlen)//'@'//trans
-	         mybuff = mybuff(:mlen)//'@'//trans
-	         mlen = MIN(maxlen,mlen+1+TM_LENSTR1(trans) )
+	         IF (non_atlin) THEN
+	            trans = alg_regrid_code(cx_regrid_trans(idim,cx))
+	            IF ( trans(:4) .NE. unspecified_name4 ) THEN
+	              REGRID_COMMENTS = REGRID_COMMENTS(:mlen)//'@'//trans
+	              mybuff = mybuff(:mlen)//'@'//trans
+	              mlen = MIN(maxlen,mlen+1+TM_LENSTR1(trans) )
+	            ENDIF
+	         ENDIF
 	      ENDIF
 	   ENDIF
  120	CONTINUE
 
-* sigma and curvilinear regridding
+* layerz and curvilinear regridding
 * if an auxiliary variable regrid then document "using DEPTH" or whatever
  900	IF (cx_naux(cx) .GT. 0) THEN
 	   mybuff = ' using'
 	   slen = 6
 	   sep = ' '
 	   DO idim = 1, nferdims
+	      IF (cx_regrid_trans(idim,cx) .EQ. pauxrgrd_fmrc ) THEN
+	         IF (idim .EQ. f_dim ) CYCLE
+	         mybuff = mybuff(:slen) // ' 2d'
+	         slen = slen + 3
+	      ENDIF
 	      IF (cx_aux_cat(idim,cx) .NE. unspecified_int4) THEN
 	         mybuff = mybuff(:slen) // sep //
      .			  VAR_CODE(cx_aux_cat(idim,cx),
@@ -207,6 +231,12 @@
 	   ENDDO
 	   REGRID_COMMENTS = REGRID_COMMENTS(:mlen)//mybuff
 	   mlen = MIN(maxlen,mlen+slen)
+	   REGRID_COMMENTS = REGRID_COMMENTS(:mlen)//' field'
+	   mlen = MIN(maxlen,mlen+6)
+	   IF (cx_naux(cx) .GT. 1) THEN
+	      REGRID_COMMENTS = REGRID_COMMENTS(:mlen)//'s'
+	      mlen = MIN(maxlen,mlen+1)
+	   ENDIF
 	ENDIF
 
 * signal if the string has been truncated for being too long
diff --git a/fer/ef_utility/SOURCE_FILES b/fer/ef_utility/SOURCE_FILES
index e0a1c91..6b65122 100644
--- a/fer/ef_utility/SOURCE_FILES
+++ b/fer/ef_utility/SOURCE_FILES
@@ -41,7 +41,8 @@ ef_set_arg_unit.F\
 ef_set_custom_axis.F\
 ef_set_freq_axis.F\
 ef_set_desc.F\
-ef_set_real_to_string.F
+ef_set_real_to_string.F\
+ef_get_date_tstep.F
 
 SRCS_C = \
 ef_get_arg_type.c\
diff --git a/fer/ef_utility/ef_get_axis_dates.F b/fer/ef_utility/ef_get_axis_dates.F
index c7e36d2..db46f58 100644
--- a/fer/ef_utility/ef_get_axis_dates.F
+++ b/fer/ef_utility/ef_get_axis_dates.F
@@ -46,8 +46,9 @@ c*
 *                   the year 0000 or 0001 returns as blank.  If not modulo
 *		    then we want to return the year correctly.
 * V68  *acm* 1/12  ifdef double_p for double-precision ferret.
+* v695 *acm* 2/15  Get axis dates from an F or T axis
 
-      SUBROUTINE EF_GET_AXIS_DATES(id, iarg, tax, numtimes, datebuf )
+      SUBROUTINE EF_GET_AXIS_DATES(id, iarg, tax, dim, numtimes, datebuf )
 
       IMPLICIT NONE
       INCLUDE 'tmap_dims.parm'
@@ -56,7 +57,7 @@ c*
       INCLUDE 'EF_Util.parm'
       INCLUDE 'xtm_grid.cmn_text'
 
-      INTEGER id, iarg, numtimes
+      INTEGER id, iarg, dim, numtimes
       REAL*8 tax(*)
       CHARACTER*(*) datebuf(*)
 
@@ -73,112 +74,9 @@ c* to be accessible to the external function.
 
       DO 100 L = 1, numtimes
          tstep_r8 = tax(L)
-         CALL TSTEP_TO_DATE_OLD ( grid, tstep_r8, seconds, datebuf(l) )
+         CALL EF_GET_DATE_TSTEP ( grid, dim, tstep_r8, seconds, datebuf(l) )
 100   CONTINUE
 
 
       RETURN 
       END
-
-	SUBROUTINE TSTEP_TO_DATE_OLD ( grid, tstep, precision, date )
-*
-* Return a string giving the date for a particular timestep
-* This is done by figuring the offset from
-* 01-JAN-0000 00:00:00 in seconds, and then calculating the date.
-*
-* This is an older version of TSTEP_TO_DATE which was revised for better
-* output formatting in Ferret v6.0.  This version gives a fixed unchanging
-* format.
-*
-* Arguments:
-*	grid	 - grid containing a time axis
-*	tstep    - time step
-*	precision- precision (1 to 6 for day,mon,yr,hr,min,sec, respectively )
-*			(use ABS(precision) - neg. indicates truncate left 0s)
-*	date	 - returned string containing date in ASCII form
-*
-
-        IMPLICIT NONE
-	include 'tmap_dims.parm'
-	include 'xtm_grid.cmn_text'
-	external xgt_grid_data
-	include 'ferret.parm'
-	include 'xtext_info.cmn'
-
-* calling argument declarations
-	CHARACTER*(*)	date
-	INTEGER		grid, precision
-	REAL*8		tstep
-*
-* Local definitions
-	LOGICAL		modulo
-	CHARACTER*20	SECS_TO_DATE, SECS_TO_DATE_OUT, buff
-	INTEGER		axis, status, prec,
-     .                  TM_GET_CALENDAR_ID, cal_id
-	REAL*8		start_secs, offset_secs, this_secs
-	REAL*8		SECS_FROM_BC
-
-!	REAL*8		start_secs, offset_secs, this_secs, prec_fact(6)
-!	DATA	prec_fact	/  31536000.,  2628000.,  86400.,  3600.,
-!     .				   60., 1./
-
-* initialize
-	prec = ABS(precision)
-
-* get the axis number
-	axis = grid_line( t_dim, grid )
-	modulo = line_modulo(axis)
-#ifdef double_p	
-	IF ( axis .EQ. mnormal .OR. axis .EQ. munknown ) THEN
-	   WRITE ( date, * ) (tstep)
-	   RETURN
-	ELSEIF ( line_direction(axis) .NE. 'TI' ) THEN
-	   WRITE ( date, * ) (tstep)
-	   RETURN
-	ENDIF
-#else
-	IF ( axis .EQ. mnormal .OR. axis .EQ. munknown ) THEN
-	   WRITE ( date, * ) SNGL(tstep)
-	   RETURN
-	ELSEIF ( line_direction(axis) .NE. 'TI' ) THEN
-	   WRITE ( date, * ) SNGL(tstep)
-	   RETURN
-	ENDIF
-#endif
-
-* get the calendar type
-
-        cal_id = TM_GET_CALENDAR_ID ( line_cal_name(axis) )
-
-* First find the offset from 01-JAN-0000 00:00:00 from the descriptor file
-	start_secs = SECS_FROM_BC( line_t0(axis), cal_id, status )
-
-* Find the number of seconds since start of data set for this time step
-	offset_secs = tstep*line_tunit( axis )
-
-* Total seconds to this time step since 01-JAN-0000 00:00:00
-	this_secs = start_secs + offset_secs
-
-* round off date instead of truncating 
-* ( people do not normally view dates this way )
-!	this_secs = ( DNINT(this_secs/prec_fact(prec)) + 0.5 ) * prec_fact(prec)
-
-* Convert to date
-
-	buff = SECS_TO_DATE_OUT(this_secs, cal_id, modulo, prec)
-
-* Select the requested precision
-	IF ( prec .GT. 6 ) THEN		! full precision
-	   date = buff
-	ELSEIF ( prec .GE. 3 ) THEN	! dd-mmm-$_...
-	   date = buff( :date_str_len(prec) )
-	ELSEIF ( prec .EQ. 2 ) THEN	! mmm-$_
-	   date = buff( 4:11 )	
-	ELSE				! $_
-	   date = buff( 8:11 )	
-	ENDIF
-
-* Finished
-	RETURN
-	END
-
diff --git a/fer/ef_utility/ef_get_axis_dates.F b/fer/ef_utility/ef_get_date_tstep.F
similarity index 74%
copy from fer/ef_utility/ef_get_axis_dates.F
copy to fer/ef_utility/ef_get_date_tstep.F
index c7e36d2..0ccad61 100644
--- a/fer/ef_utility/ef_get_axis_dates.F
+++ b/fer/ef_utility/ef_get_date_tstep.F
@@ -1,14 +1,8 @@
-c*
-c* ef_get_axis_dates.F
-c*
-c* Ansley Manke
-c* Dec 9 1998
-c*
-c*
+	SUBROUTINE EF_GET_DATE_TSTEP ( grid, dim, tstep, precision, date )
 *
 *  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
@@ -38,49 +32,6 @@ c*
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-c*
-c* This returns the date buffer associated with the 
-c* time axis of an argument.
-c*
-*  V665 *acm*/11/09 Fix ticket 1766, as in #762, if the axis is modulo
-*                   the year 0000 or 0001 returns as blank.  If not modulo
-*		    then we want to return the year correctly.
-* V68  *acm* 1/12  ifdef double_p for double-precision ferret.
-
-      SUBROUTINE EF_GET_AXIS_DATES(id, iarg, tax, numtimes, datebuf )
-
-      IMPLICIT NONE
-      INCLUDE 'tmap_dims.parm'
-      INCLUDE 'ferret.parm'
-      INCLUDE 'xcontext.cmn'
-      INCLUDE 'EF_Util.parm'
-      INCLUDE 'xtm_grid.cmn_text'
-
-      INTEGER id, iarg, numtimes
-      REAL*8 tax(*)
-      CHARACTER*(*) datebuf(*)
-
-      INTEGER l, grid, seconds
-      PARAMETER (seconds=6)
-      REAL*8  tstep_r8, test(5)
-      INTEGER cx_list(EF_MAX_ARGS)
-
-c* The context list was cached by Ferret and must be retrieved
-c* to be accessible to the external function.
-
-      CALL EF_GET_CX_LIST(cx_list)
-      grid = CX_GRID(cx_list(iarg))
-
-      DO 100 L = 1, numtimes
-         tstep_r8 = tax(L)
-         CALL TSTEP_TO_DATE_OLD ( grid, tstep_r8, seconds, datebuf(l) )
-100   CONTINUE
-
-
-      RETURN 
-      END
-
-	SUBROUTINE TSTEP_TO_DATE_OLD ( grid, tstep, precision, date )
 *
 * Return a string giving the date for a particular timestep
 * This is done by figuring the offset from
@@ -92,6 +43,7 @@ c* to be accessible to the external function.
 *
 * Arguments:
 *	grid	 - grid containing a time axis
+*	dim      - dimension (t_dim or f_dim)
 *	tstep    - time step
 *	precision- precision (1 to 6 for day,mon,yr,hr,min,sec, respectively )
 *			(use ABS(precision) - neg. indicates truncate left 0s)
@@ -107,12 +59,13 @@ c* to be accessible to the external function.
 
 * calling argument declarations
 	CHARACTER*(*)	date
-	INTEGER		grid, precision
+	INTEGER		grid, dim, precision
 	REAL*8		tstep
 *
 * Local definitions
 	LOGICAL		modulo
 	CHARACTER*20	SECS_TO_DATE, SECS_TO_DATE_OUT, buff
+	CHARACTER*2     linedir
 	INTEGER		axis, status, prec,
      .                  TM_GET_CALENDAR_ID, cal_id
 	REAL*8		start_secs, offset_secs, this_secs
@@ -124,15 +77,17 @@ c* to be accessible to the external function.
 
 * initialize
 	prec = ABS(precision)
+        linedir = 'TI'
+	IF (dim .EQ. f_dim) linedir = 'FI'  ! formatted forecast date
 
 * get the axis number
-	axis = grid_line( t_dim, grid )
+	axis = grid_line( dim, grid )
 	modulo = line_modulo(axis)
 #ifdef double_p	
 	IF ( axis .EQ. mnormal .OR. axis .EQ. munknown ) THEN
 	   WRITE ( date, * ) (tstep)
 	   RETURN
-	ELSEIF ( line_direction(axis) .NE. 'TI' ) THEN
+	ELSEIF ( line_direction(axis) .NE. linedir ) THEN
 	   WRITE ( date, * ) (tstep)
 	   RETURN
 	ENDIF
@@ -140,7 +95,7 @@ c* to be accessible to the external function.
 	IF ( axis .EQ. mnormal .OR. axis .EQ. munknown ) THEN
 	   WRITE ( date, * ) SNGL(tstep)
 	   RETURN
-	ELSEIF ( line_direction(axis) .NE. 'TI' ) THEN
+	ELSEIF ( line_direction(axis) .NE. linedir ) THEN
 	   WRITE ( date, * ) SNGL(tstep)
 	   RETURN
 	ENDIF
diff --git a/fer/efi/SOURCE_FILES b/fer/efi/SOURCE_FILES
index 730d3d7..d24e4a4 100644
--- a/fer/efi/SOURCE_FILES
+++ b/fer/efi/SOURCE_FILES
@@ -23,6 +23,8 @@ copyscat.F\
 curv_range.F\
 curv_to_rect.F\
 curv_to_rect_map.F\
+curv_to_rect_fsu.F\
+curv_to_rect_subs.F\
 day_of_year.F\
 date1900.F\
 days1900toymdhms.F\
@@ -63,6 +65,7 @@ findlo.F\
 floatstr.F\
 flag2ddups.F\
 freverse.F\
+ft_to_orthogonal.F\
 gausswt.F\
 gausswt_v0.F\
 heap2_str.F\
@@ -72,6 +75,7 @@ is_element_of_str_n.F\
 labwid.F\
 lanczos.F\
 list_value_xml.F\
+lon_lat_time_string.F\
 lsl_lowpass.F\
 maxminmax.F\
 minmax.F\
@@ -83,8 +87,13 @@ nco_attr.F\
 nco.F\
 nobad.F\
 pickindex.F\
+piecewise3.F\
+piecewise_subs.F\
 pt_in_poly.F\
 rect_to_curv.F\
+sample_fast_i.F\
+sample_fast_i_str.F\
+samplef_date.F\
 sampleij.F\
 samplei_multi.F\
 samplej_multi.F\
@@ -129,6 +138,7 @@ scat2grid_nobs_xyt.F\
 scat2grid_subs.F\
 secs_to_ymdhms.F\
 separate.F\
+separate_str.F\
 sorti.F\
 sorti_str.F\
 sortj.F\
@@ -159,6 +169,7 @@ tax_yearfrac.F\
 tcat.F\
 tcat_str.F\
 test_opendap.F\
+time_reformat.F\
 transpose_xt.F\
 transpose_xy.F\
 transpose_xz.F\
@@ -175,6 +186,7 @@ xreverse.F\
 ycat.F\
 ycat_str.F\
 yreverse.F\
+write_webrow_gwt.F\
 zaxreplace_avg.F\
 zaxreplace_bin.F\
 zaxreplace_rev.F\
diff --git a/fer/efi/bin_index_wt.F b/fer/efi/bin_index_wt.F
index 2fe857b..c4b7beb 100644
--- a/fer/efi/bin_index_wt.F
+++ b/fer/efi/bin_index_wt.F
@@ -199,19 +199,13 @@
 
       ndx = res_lo_ss(X_AXIS)
       DO 200 i1 = arg_lo_ss(X_AXIS,ARG1), arg_hi_ss(X_AXIS,ARG1)
-          IF (INT(arg_1(i1,j1,k1,l1,m1,n1)) .EQ. ndx) THEN
-              result(ndx,j,k,l,m,n) = result(ndx,j, k, l, m, n) +
-     .                                 arg_2(i1, j1,k1,l1,m1,n1)
-          ELSEIF (  INT(arg_1(i1,j1,k1,l1,m1,n1)) .GT. 0) THEN
-              ndx = INT(arg_1(i1,j1,k1,l1,m1,n1))
-              result(ndx,j,k,l,m,n) = arg_2(i1,j1,k1,l1,m1,n1)
+          ndx = INT(arg_1(i1,j1,k1,l1,m1,n1))
+	  IF (  ndx .GT. 0 .AND. ndx .LE. res_hi_ss(X_AXIS) ) THEN
+             result(ndx,j,k,l,m,n) = result(ndx,j, k, l, m, n) +
+     .                               arg_2(i1, j1,k1,l1,m1,n1)
           ENDIF
   200 CONTINUE
 
-      DO 300 i = ndx+1, res_hi_ss(X_AXIS)
-         result(i,j,k,l,m,n) = bad_flag_result
-  300 CONTINUE
-      
 *                                                                     ^
 *                                                                     |
 *                                           USER CONFIGURABLE PORTION |
diff --git a/fer/efi/curv_to_rect.F b/fer/efi/curv_to_rect.F
index 30f6201..efbd468 100644
--- a/fer/efi/curv_to_rect.F
+++ b/fer/efi/curv_to_rect.F
@@ -254,97 +254,4 @@
       END  ! SUBROUTINE curv_to_rect_compute
 
 !#######################################################################
-            
-       subroutine apply_mapping (data_in, ilo, ihi, jlo, jhi,
-     .                           wt, i_lon, j_lat, data_out, 
-     .                           nlon_src, nlat_src, nlon_dst, nlat_dst,
-     .                           num_nbrs, bad_flag_in, bad_flag_out)
-
-! This is the last set of loops from horiz_interp_sphe, applying wt
-! to the data to compute the regridded result.
-
-! acm 7/2004 Add variable COUNT to set data to missing if there is nothing added
-! to the sum in a given output grid cell.  This had been done in the original code
-! by seeing if the value is a "land" value, but it is not general enough for our
-! purposes.
-
-! acm 12/2004 Compute the sum of weights here; weights only used when there
-!             is good data contributing to the destination point.
-
-       IMPLICIT NONE
-       integer ilo, ihi, jlo, jhi
-       real data_in(ilo:ihi, jlo:jhi)     ! input field
-       real data_out(nlon_dst, nlat_dst)  ! output
-       real wt(nlon_dst, nlat_dst, num_nbrs)  
-
-       real i_lon(nlon_dst,nlat_dst,num_nbrs)
-       real j_lat(nlon_dst,nlat_dst,num_nbrs) 
-
-       real bad_flag_in, bad_flag_out
-
-       integer nlon_src, nlat_src, nlon_dst, nlat_dst, 
-     .         num_nbrs
-
-!--- some local variables ----------------------------------------
-       integer nlon_in, nlat_in, nlon_out, nlat_out, num_neighbors,
-     .               m, n, k, i, j
-       real sum
-       logical okij
-!-----------------------------------------------------------------
-
-! parameters
-      real epsln, large
-cc      parameter (epsln=1.e-10, large=1.e20)
-      parameter (epsln=4.e-7, large=1.e20)
-
-         nlon_in  = nlon_src
-         nlat_in  = nlat_src
-         nlon_out = nlon_dst
-         nlat_out = nlat_dst   
-         num_neighbors = num_nbrs
-
-         do m=1,nlon_out
-         do n=1,nlat_out
-
-            data_out(m,n) = 0.0
-            sum=0.0
-            do k=1, num_neighbors
-               i = i_lon(m,n,k)
-               j = j_lat(m,n,k)
-
-               okij = .TRUE.
-               IF (i .LT. ilo  .OR. i .GT. ihi) THEN
-                  okij = .FALSE.
-               ENDIF
-               IF (j .LT. jlo  .OR.  j .GT. jhi) THEN
-                  okij = .FALSE.
-               ENDIF
-
-
-               if (i.GT.0 .and. j.GT.0 .AND. okij) THEN
-                  IF (data_in(i,j) .NE. bad_flag_in ) THEN
-                     data_out(m,n) = data_out(m,n)+
-     .                                  data_in(i,j)*wt(m,n,k)
-                     sum = sum + wt(m,n,k)
-                  endif
-               else
-                  data_out(m,n) = bad_flag_out
-                  GO TO 33
-               endif
-            enddo
-
-            IF (sum .GT. epsln) THEN
-               data_out(m,n) = data_out(m,n)/sum
-            ELSE
-               data_out(m,n) = bad_flag_out
-            ENDIF
-  33        continue
-
-         enddo
-         enddo
-      
-
-         return
-       end ! subroutine horiz_interp_sphe
-      
-      
+            
\ No newline at end of file
diff --git a/fer/efi/curv_to_rect.F b/fer/efi/curv_to_rect_fsu.F
similarity index 50%
copy from fer/efi/curv_to_rect.F
copy to fer/efi/curv_to_rect_fsu.F
index 30f6201..b6feaf9 100644
--- a/fer/efi/curv_to_rect.F
+++ b/fer/efi/curv_to_rect_fsu.F
@@ -1,9 +1,11 @@
-! curv_to_rect.F
+
+! curv_to_rect_fsu.F
 ! From Matt Harrison hinterp.F
 ! to call only the spherical interpolation modules, and
 ! recast in F77-compileable format.
-! ACM 3/2004
 !
+! This is a special version of curv_to_rect, but with num_nbrs = 1 not 4.
+! the mapping function computed at FSU uses just one neighbor.
 !   
 !   -- Check use of and document issue of cell bounds 
 !      vs cell centers.
@@ -53,6 +55,9 @@
 *             a map pre-computed using the entire dataset for this regridding.
 *             Pass the subscripts of the input curvilinear data to the 
 *             apply_mapping routine (if not a subset these are 1:max_ss).
+* ACM  1/2009 Correct bug with the indices passed into apply_mapping; Treating
+*             indices as if they start at 1 inside that routine lets us compute 
+*             and apply mapping functions based on subsets of the grid
 
 
 ! In this SUBROUTINE we provide information about
@@ -90,9 +95,8 @@
 !
 
 
-      SUBROUTINE curv_to_rect_init(id)
+      SUBROUTINE curv_to_rect_fsu_init(id)
         
-      IMPLICIT NONE
       INCLUDE 'EF_Util.cmn'
 
       INTEGER   id, arg
@@ -105,31 +109,26 @@
 
       WRITE (descr, 10)
    10 FORMAT
-     .('Apply mapping to regrid from curvilinear to rectangular grid')
+     .('Alt func to Apply mapping to regrid from curvilinear to rectangular grid')
       CALL ef_set_desc(id, descr)
 
       CALL ef_set_num_args(id, 2)
 
-      CALL ef_set_axis_inheritance_6d(id,
-     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
-     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
-     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
-      CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
+      CALL ef_set_axis_inheritance(id, IMPLIED_BY_ARGS,  
+     .     IMPLIED_BY_ARGS, IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
 
       arg = 1
       CALL ef_set_arg_name(id, arg, 'V')
       CALL ef_set_arg_desc(id, arg, 
-     .  'Variable to regrid, on curvilinear grid V(x,y,z,t,e,f)')
-      CALL ef_set_axis_influence_6d(id, arg,
-     .                              NO, NO, YES, YES, YES, YES)
+     .  'Variable to regrid, on curvilinear grid V(x,y,z,t)')
+      CALL ef_set_axis_influence(id, arg, NO, NO, YES, YES)
 
       arg = 2
       CALL ef_set_arg_name(id, arg, 'mapping')
       WRITE (descr, 30)
    30 FORMAT ('mapping computed by curv_to_rect_MAP')
       CALL ef_set_arg_desc(id, arg, descr)
-      CALL ef_set_axis_influence_6d(id, arg,
-     .                              YES, YES, NO, NO, NO, NO)
+      CALL ef_set_axis_influence(id, arg, YES, YES, NO, NO)
 
 !                                                                     ^
 !                                                                     |
@@ -137,57 +136,52 @@
 !***********************************************************************
 
       RETURN 
-      END  ! SUBROUTINE curv_to_rect_init
+      END  ! SUBROUTINE curv_to_rect_fsu_init
 
 
 !
 ! In this SUBROUTINE we compute the result
 !
-      SUBROUTINE curv_to_rect_compute(id, arg_1, arg_2, result)
+      SUBROUTINE curv_to_rect_fsu_compute(id, arg_1, arg_2, result)
 
-      IMPLICIT NONE
+      IMPLICIT none
+      
       INCLUDE 'EF_Util.cmn'
       INCLUDE 'EF_mem_subsc.cmn'
+      
+      INTEGER  id
 
-      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)
+      REAL  bad_flag(EF_MAX_ARGS), bad_flag_result
 
-* 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. 
+      REAL  arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz,
+     .       mem1lot:mem1hit)
+      REAL  arg_2(mem2lox:mem2hix, mem2loy:mem2hiy, mem2loz:mem2hiz,
+     .       mem2lot:mem2hit)
 
-      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  result(memreslox:memreshix, memresloy:memreshiy, 
+     .      memresloz:memreshiz, memreslot:memreshit)
 
-      REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+! 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, 
-     .         i1, j1, k1, l1, m1, n1,
-     .         i2, j2, k2, l2, m2, n2,
-     .         ih, jh, num_nbrs,
-     .         nlon_src, nlat_src, nlon_dst, nlat_dst
+      INTEGER  i, j, k, l, i1, j1, k1, l1, i2, j2, k2, l2, ih, jh,
+     .         num_nbrs, nlon_src, nlat_src, nlon_dst, nlat_dst
 
       num_nbrs = 4
+      num_nbrs = 1
       
-      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_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)
 
       nlon_src = arg_hi_ss(X_AXIS,ARG1) - arg_lo_ss(X_AXIS,ARG1) + 1
@@ -205,45 +199,31 @@
       j2 = arg_lo_ss(Y_AXIS,ARG2)
       k2 = arg_lo_ss(Z_AXIS,ARG2)
       l2 = arg_lo_ss(T_AXIS,ARG2)
-      m2 = arg_lo_ss(E_AXIS,ARG2)
-      n2 = arg_lo_ss(F_AXIS,ARG2)
 
       i = res_lo_ss(X_AXIS)
       j = res_lo_ss(Y_AXIS)
 
-      n1 = arg_lo_ss(F_AXIS,ARG1)
-      DO 40 n = res_lo_ss(F_AXIS),res_hi_ss(F_AXIS)
-
-         m1 = arg_lo_ss(E_AXIS,ARG1)
-         DO 30 m = res_lo_ss(E_AXIS),res_hi_ss(E_AXIS)
+      l1 = arg_lo_ss(T_AXIS,ARG1)
+      DO l = res_lo_ss(T_AXIS),res_hi_ss(T_AXIS)
 
-            l1 = arg_lo_ss(T_AXIS,ARG1)
-            DO 20 l = res_lo_ss(T_AXIS),res_hi_ss(T_AXIS)
+         k1 = arg_lo_ss(Z_AXIS,ARG1)
+         DO k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
 
-               k1 = arg_lo_ss(Z_AXIS,ARG1)
-               DO 10 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+c     .        i1, ih, j1, jh,  ! line 2 of this call WAS... 
+c     .        1,nlon_src, 1,nlat_src,  ! Or try  
+            CALL apply_mapping ( arg_1(i1,j1,k1,l1), 
+     .        i1, ih, j1, jh,
+     .        arg_2(i2,j2,k2,l2), arg_2(i2,j2,k2,l2+1),
+     .        arg_2(i2,j2,k2,l2+2), result(i,j,k,l), nlon_src,
+     .        nlat_src, nlon_dst, nlat_dst, num_nbrs, 
+     .        bad_flag(ARG1), bad_flag_result )
 
-                  CALL apply_mapping ( arg_1(i1,j1,k1,l1,m1,n1),
-     .                                 i1, ih, j1, jh,
-     .                                 arg_2(i2,j2,k2,l2,m2,n2),
-     .                                 arg_2(i2,j2,k2,l2+1,m2,n2),
-     .                                 arg_2(i2,j2,k2,l2+2,m2,n2),
-     .                                 result(i,j,k,l,m,n), nlon_src,
-     .                                 nlat_src, nlon_dst, nlat_dst,
-     .                                 num_nbrs, bad_flag(ARG1), 
-     .                                 bad_flag_result )
+            k1 = k1 + arg_incr(Z_AXIS,ARG1)
+         ENDDO
 
-                  k1 = k1 + arg_incr(Z_AXIS,ARG1)
-  10           CONTINUE
+         l1 = l1 + arg_incr(T_AXIS,ARG1)
+      ENDDO
 
-               l1 = l1 + arg_incr(T_AXIS,ARG1)
-  20        CONTINUE
-
-            m1 = m1 + arg_incr(E_AXIS,ARG1)
-  30     CONTINUE
-
-         n1 = n1 + arg_incr(F_AXIS,ARG1)
-  40  CONTINUE
 
 !                                                                     ^
 !                                                                     |
@@ -251,100 +231,4 @@
 !**********************************************************************
 
       RETURN 
-      END  ! SUBROUTINE curv_to_rect_compute
-
-!#######################################################################
-            
-       subroutine apply_mapping (data_in, ilo, ihi, jlo, jhi,
-     .                           wt, i_lon, j_lat, data_out, 
-     .                           nlon_src, nlat_src, nlon_dst, nlat_dst,
-     .                           num_nbrs, bad_flag_in, bad_flag_out)
-
-! This is the last set of loops from horiz_interp_sphe, applying wt
-! to the data to compute the regridded result.
-
-! acm 7/2004 Add variable COUNT to set data to missing if there is nothing added
-! to the sum in a given output grid cell.  This had been done in the original code
-! by seeing if the value is a "land" value, but it is not general enough for our
-! purposes.
-
-! acm 12/2004 Compute the sum of weights here; weights only used when there
-!             is good data contributing to the destination point.
-
-       IMPLICIT NONE
-       integer ilo, ihi, jlo, jhi
-       real data_in(ilo:ihi, jlo:jhi)     ! input field
-       real data_out(nlon_dst, nlat_dst)  ! output
-       real wt(nlon_dst, nlat_dst, num_nbrs)  
-
-       real i_lon(nlon_dst,nlat_dst,num_nbrs)
-       real j_lat(nlon_dst,nlat_dst,num_nbrs) 
-
-       real bad_flag_in, bad_flag_out
-
-       integer nlon_src, nlat_src, nlon_dst, nlat_dst, 
-     .         num_nbrs
-
-!--- some local variables ----------------------------------------
-       integer nlon_in, nlat_in, nlon_out, nlat_out, num_neighbors,
-     .               m, n, k, i, j
-       real sum
-       logical okij
-!-----------------------------------------------------------------
-
-! parameters
-      real epsln, large
-cc      parameter (epsln=1.e-10, large=1.e20)
-      parameter (epsln=4.e-7, large=1.e20)
-
-         nlon_in  = nlon_src
-         nlat_in  = nlat_src
-         nlon_out = nlon_dst
-         nlat_out = nlat_dst   
-         num_neighbors = num_nbrs
-
-         do m=1,nlon_out
-         do n=1,nlat_out
-
-            data_out(m,n) = 0.0
-            sum=0.0
-            do k=1, num_neighbors
-               i = i_lon(m,n,k)
-               j = j_lat(m,n,k)
-
-               okij = .TRUE.
-               IF (i .LT. ilo  .OR. i .GT. ihi) THEN
-                  okij = .FALSE.
-               ENDIF
-               IF (j .LT. jlo  .OR.  j .GT. jhi) THEN
-                  okij = .FALSE.
-               ENDIF
-
-
-               if (i.GT.0 .and. j.GT.0 .AND. okij) THEN
-                  IF (data_in(i,j) .NE. bad_flag_in ) THEN
-                     data_out(m,n) = data_out(m,n)+
-     .                                  data_in(i,j)*wt(m,n,k)
-                     sum = sum + wt(m,n,k)
-                  endif
-               else
-                  data_out(m,n) = bad_flag_out
-                  GO TO 33
-               endif
-            enddo
-
-            IF (sum .GT. epsln) THEN
-               data_out(m,n) = data_out(m,n)/sum
-            ELSE
-               data_out(m,n) = bad_flag_out
-            ENDIF
-  33        continue
-
-         enddo
-         enddo
-      
-
-         return
-       end ! subroutine horiz_interp_sphe
-      
-      
+      END  ! SUBROUTINE curv_to_rect_fsu_compute
diff --git a/fer/efi/curv_to_rect_subs.F b/fer/efi/curv_to_rect_subs.F
new file mode 100755
index 0000000..ea45dc7
--- /dev/null
+++ b/fer/efi/curv_to_rect_subs.F
@@ -0,0 +1,94 @@
+
+       subroutine apply_mapping (data_in, ilo, ihi, jlo, jhi,
+     .                           wt, i_lon, j_lat, data_out, 
+     .                           nlon_src, nlat_src, nlon_dst, nlat_dst,
+     .                           num_nbrs, bad_flag_in, bad_flag_out)
+
+! This is the last set of loops from horiz_interp_sphe, applying wt
+! to the data to compute the regridded result.
+
+! acm 7/2004 Add variable COUNT to set data to missing if there is nothing added
+! to the sum in a given output grid cell.  This had been done in the original code
+! by seeing if the value is a "land" value, but it is not general enough for our
+! purposes.
+
+! acm 12/2004 Compute the sum of weights here; weights only used when there
+!             is good data contributing to the destination point.
+
+       IMPLICIT NONE
+       integer ilo, ihi, jlo, jhi
+       real data_in(ilo:ihi, jlo:jhi)     ! input field
+       real data_out(nlon_dst, nlat_dst)  ! output
+       real wt(nlon_dst, nlat_dst, num_nbrs)  
+
+       real i_lon(nlon_dst,nlat_dst,num_nbrs)
+       real j_lat(nlon_dst,nlat_dst,num_nbrs) 
+
+       real bad_flag_in, bad_flag_out
+
+       integer nlon_src, nlat_src, nlon_dst, nlat_dst, 
+     .         num_nbrs
+
+!--- some local variables ----------------------------------------
+       integer nlon_in, nlat_in, nlon_out, nlat_out, num_neighbors,
+     .               m, n, k, i, j
+       real sum
+       logical okij
+!-----------------------------------------------------------------
+
+! parameters
+      real epsln, large
+cc      parameter (epsln=1.e-10, large=1.e20)
+      parameter (epsln=4.e-7, large=1.e20)
+
+         nlon_in  = nlon_src
+         nlat_in  = nlat_src
+         nlon_out = nlon_dst
+         nlat_out = nlat_dst   
+         num_neighbors = num_nbrs
+
+         do m=1,nlon_out
+         do n=1,nlat_out
+
+            data_out(m,n) = 0.0
+            sum=0.0
+            do k=1, num_neighbors
+               i = i_lon(m,n,k)
+               j = j_lat(m,n,k)
+
+               okij = .TRUE.
+               IF (i .LT. ilo  .OR. i .GT. ihi) THEN
+                  okij = .FALSE.
+               ENDIF
+               IF (j .LT. jlo  .OR.  j .GT. jhi) THEN
+                  okij = .FALSE.
+               ENDIF
+
+
+               if (i.GT.0 .and. j.GT.0 .AND. okij) THEN
+                  IF (data_in(i,j) .NE. bad_flag_in ) THEN
+                     data_out(m,n) = data_out(m,n)+
+     .                                  data_in(i,j)*wt(m,n,k)
+                     sum = sum + wt(m,n,k)
+                  endif
+               else
+                  data_out(m,n) = bad_flag_out
+                  GO TO 33
+               endif
+            enddo
+
+            IF (sum .GT. epsln) THEN
+               data_out(m,n) = data_out(m,n)/sum
+            ELSE
+               data_out(m,n) = bad_flag_out
+            ENDIF
+  33        continue
+
+         enddo
+         enddo
+      
+
+         return
+       end ! subroutine horiz_interp_sphe
+      
+      
diff --git a/fer/efi/expndi_by_m_counts.F b/fer/efi/expndi_by_m_counts.F
index ddbc449..ddc9e69 100644
--- a/fer/efi/expndi_by_m_counts.F
+++ b/fer/efi/expndi_by_m_counts.F
@@ -291,7 +291,8 @@
 	    i1 = 1
             DO 200 mout=arg_lo_ss(E_AXIS,ARG2),arg_hi_ss(E_AXIS,ARG2)
                DO 100 iout = 1, arg_2(i2,j2,k2,l2,mout,n1)
-                  result(iout,j,k,l,mout,n) = arg_1(i1,j1,k1,l1,m1,n1)
+                 IF ( arg_1(i1,j1,k1,l1,m1,n1) .NE. bad_flag(1) )
+     .             result(iout,j,k,l,mout,n) = arg_1(i1,j1,k1,l1,m1,n1)
 
                   i1 = i1 + 1
  100           CONTINUE
diff --git a/fer/efi/expndi_by_z_counts.F b/fer/efi/expndi_by_z_counts.F
index 6c5b22d..13f4665 100644
--- a/fer/efi/expndi_by_z_counts.F
+++ b/fer/efi/expndi_by_z_counts.F
@@ -248,7 +248,8 @@
 	    i1 = 1
             DO 200 iout=arg_lo_ss(X_AXIS,ARG2),arg_hi_ss(X_AXIS,ARG2)
                DO 100 kout = 1, arg_2(iout,j2,k2,l2)
-                  result(iout,j,kout,l) = arg_1(i1,j1,k1,l1)
+                 IF ( arg_1(i1,j1,k1,l1) .NE. bad_flag(1) )
+     .             result(iout,j,kout,l) = arg_1(i1,j1,k1,l1)
                   i1 = i1 + 1
  100           CONTINUE
  200        CONTINUE
diff --git a/fer/efi/floatstr.F b/fer/efi/floatstr.F
index e6e2704..4cff4ef 100644
--- a/fer/efi/floatstr.F
+++ b/fer/efi/floatstr.F
@@ -3,6 +3,8 @@
 *
 * 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
+*
 * Returns float converted to strings according to format given. 
 *
 * In this subroutine we provide information about
@@ -61,7 +63,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)"')
+     . '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)
 
@@ -103,7 +105,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),
@@ -120,10 +122,20 @@
 *                                                                      V
 
       INTEGER i, j, k, l, m, n
-      INTEGER i1, j1, k1, l1, m1, n1
+      INTEGER i1, j1, k1, l1, m1, n1, p, p2
       REAL    fval
-      INTEGER TM_LENSTR1, slen
+      INTEGER TM_LENSTR1, STR_UPCASE, slen, ival, isok, status
       CHARACTER*32 fstring, fformat
+      CHARACTER*128 err_msg
+      CHARACTER*1 nullstr
+
+
+      LOGICAL do_integer, zero_fill
+
+      nullstr = ''
+      isok = 3
+      zero_fill = .FALSE.
+      do_integer = .FALSE.
 
       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)
@@ -137,7 +149,33 @@
       m = arg_lo_ss (E_AXIS, ARG2)
       n = arg_lo_ss (F_AXIS, ARG2)
       CALL ef_get_string_arg_element_6d(id, ARG2, arg_2,
-     .                   i, j, k, l, m, n, slen, fformat)
+     .                   i, j, k, l, m, n, slen, fstring)
+
+      i = STR_UPCASE(fformat, fstring)
+
+      do_integer = .FALSE.
+      slen = TM_LENSTR1( fformat )
+      DO 30, p =1, slen-1
+	 IF (fformat(p:p+1) .EQ. 'F0')  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
+	    zero_fill = .TRUE.
+	    do_integer = .TRUE.
+	    fformat = fformat(1:p)//fformat(p+2:slen)
+	    GOTO 40
+	 ENDIF
+	 IF (fformat(p:p) .EQ. 'I') THEN
+	    do_integer = .TRUE.
+            GOTO 40
+	 ENDIF
+  30  CONTINUE
+  40  CONTINUE
+      
 
       n1 = arg_lo_ss(F_AXIS,ARG1)
       DO 600 n=res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
@@ -158,16 +196,31 @@
       DO 100 i=res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
 
          fval = arg_1(i1,j1,k1,l1,m1,n1)
+C     Write the string using the format, and put it in the result.
+C     If they have sent in an integer format, truncate the data first.
+
          IF ( fval .NE. bad_flag(ARG1) ) THEN
+	    IF (do_integer) THEN 
+	       ival = INT(fval)
+               WRITE (fstring, fformat) ival
+            ELSE
+               WRITE (fstring, fformat) fval
+	    ENDIF
 
-C     Write the string using the format, and put it in the result.
-            WRITE (fstring, fformat) fval
             slen = TM_LENSTR1(fstring)
+
+C adjust the field width if requested by the user (from repl_exprns.F)
+           IF (zero_fill) THEN
+	      DO p = 1, slen
+	         IF (fstring(p:p) .EQ. ' ') fstring(p:p) = '0'
+	      END DO
+	   ENDIF
+
             CALL EF_PUT_STRING(fstring, slen, result(1,i,j,k,l,m,n))
 
          ELSE
 
-            fstring = ''
+            fstring = nullstr
             slen = 0
             CALL EF_PUT_STRING (fstring, slen, result(1,i,j,k,l,m,n))
          ENDIF
@@ -196,4 +249,8 @@ C     Write the string using the format, and put it in the result.
 * **********************************************************************
 
       RETURN 
+ 5000 err_msg = 'Could not translate W or ZW width value '// fformat
+      CALL ef_bail_out (id, err_msg)
+      RETURN
+
       END
diff --git a/fer/efi/ft_to_orthogonal.F b/fer/efi/ft_to_orthogonal.F
new file mode 100644
index 0000000..849baa8
--- /dev/null
+++ b/fer/efi/ft_to_orthogonal.F
@@ -0,0 +1,259 @@
+*
+* ft_to_orthogonal.F
+*
+* Ansley Manke 2/2015
+* 
+*
+* Given a variable from a Forecast-Time dataset, and
+* the 2D time variable and a time axis representing all
+* the times in the set, return the variable in orthogonal
+* form: properly put onto the new time 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, ft_to_orthogonal )
+*                       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 )
+
+
+      SUBROUTINE ft_to_orthogonal_init(id)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id, arg
+
+* **********************************************************************
+
+
+      CALL ef_set_desc(id,
+     .        'Convert data with 2D Time coordinate to orthogonal FT grid' )
+      CALL ef_set_num_args(id, 3)
+      CALL ef_set_has_vari_args(id, NO)
+      CALL ef_set_axis_inheritance_6d(id,
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
+      CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
+      CALL ef_set_num_work_arrays(id, 1)
+
+      arg = 1
+      CALL ef_set_arg_name(id, arg, 'VAR')
+      CALL ef_set_arg_unit(id, arg, ' ')
+      CALL ef_set_arg_desc(id, arg, 'Variable with 2D Time coordinate')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                              YES, YES, YES, NO, YES, YES)
+
+      arg = 2
+      CALL ef_set_arg_name(id, arg, 'TIME2D')
+      CALL ef_set_arg_unit(id, arg, ' ')
+      CALL ef_set_arg_desc(id, arg, 'The 2-Dimensional Time coordinate variable')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                              NO, NO, NO, NO, NO, YES)
+
+      arg = 3
+      CALL ef_set_arg_name(id, arg, 'ALLTIME')
+      CALL ef_set_arg_unit(id, arg, ' ')
+      CALL ef_set_arg_desc(id, arg, 'A variable on the output time axis')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                              NO, NO, NO, YES, NO, NO)
+
+      RETURN 
+      END
+
+***********************************************************************
+
+* Request an amount of storage to be supplied by Ferret and passed
+* as additional arguments.
+
+      SUBROUTINE ft_to_orthogonal_work_size(id)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id
+
+*
+* Set the work array X/Y/Z/T/E/F dimensions
+* ef_set_work_array_dims_6d(id, array #,
+*                           xlo, ylo, zlo, tlo, elo, flo,
+*                           xhi, yhi, zhi, thi, ehi, fhi)
+
+      INTEGER ntout, nt2
+      INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+     .        arg_hi_ss(6,EF_MAX_ARGS),
+     .        arg_incr (6,EF_MAX_ARGS)
+
+      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+* Coordinate data from argument 3
+
+      ntout = 1 + arg_hi_ss(T_AXIS,ARG3) - arg_lo_ss(T_AXIS,ARG3)
+
+* output t coordinates
+      CALL ef_set_work_array_dims_6d(id, 1,
+     .                                1, 1, 1, 1, 1, 1,
+     .                            ntout, 1, 1, 1, 1, 1)
+
+      RETURN
+      END
+
+* **********************************************************************
+
+* In this subroutine we compute the result
+*
+      SUBROUTINE ft_to_orthogonal_compute(id, arg_1, arg_2, arg_3, 
+     .                                    result, taxout)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+      INCLUDE 'EF_mem_subsc.cmn'
+
+      INTEGER id
+
+      REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz, 
+     .           mem1lot:mem1hit, mem1loe:mem1hie, mem1lof:mem1hif)
+      REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy, mem2loz:mem2hiz, 
+     .           mem2lot:mem2hit, mem2loe:mem2hie, mem2lof:mem2hif)
+      REAL arg_3(mem3lox:mem3hix, mem3loy:mem3hiy, mem3loz:mem3hiz, 
+     .           mem3lot:mem3hit, mem3loe:mem3hie, mem3lof:mem3hif)
+
+      REAL result( memreslox:memreshix, memresloy:memreshiy, 
+     .             memresloz:memreshiz, memreslot:memreshit,
+     .             memresloe:memreshie, memreslof:memreshif)
+     
+      REAL taxout(wrk1lox:wrk1hix)
+
+* After initialization, the 'res_' arrays contain indexing information 
+* for the result axes.  The 'arg_' arrays will contain the indexing 
+* information for each variable''s axes. 
+
+      INTEGER res_lo_ss(6),
+     .        res_hi_ss(6),
+     .        res_incr (6)
+      INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+     .        arg_hi_ss(6,EF_MAX_ARGS),
+     .        arg_incr (6,EF_MAX_ARGS)
+
+      REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+
+* **********************************************************************
+
+      INTEGER i, j, k, l, m, n
+      INTEGER i1, j1, k1, l1, m1, n1
+      INTEGER i2, j2, k2, l2, m2, n2
+      INTEGER i3, j3, k3, l3, m3, n3
+      INTEGER l_off, del_l, del_n
+      CHARACTER*255 err_msg
+      REAL time2d_ft, timeout
+
+      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)
+
+      CALL ef_get_coordinates(id, ARG3, T_AXIS, arg_lo_ss(T_AXIS, ARG3),
+     .                        arg_hi_ss(T_AXIS, ARG3), taxout)
+
+1000  FORMAT ('2D time array mismatch with new time axis: time2d', 
+     . f8.2, ' time axis ', i3, f8.2)
+
+* Fill the result with missing-flag
+
+      DO 50 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+      DO 50 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+      DO 50 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+      DO 50 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+      DO 50 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+      DO 50 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+         result(i,j,k,l,m,n) = bad_flag_result
+  50  CONTINUE
+
+      i2 = arg_lo_ss(X_AXIS,ARG2)
+      j2 = arg_lo_ss(Y_AXIS,ARG2)
+      k2 = arg_lo_ss(Z_AXIS,ARG2)
+      l2 = arg_lo_ss(T_AXIS,ARG2)
+      m2 = arg_lo_ss(E_AXIS,ARG2)
+      n2 = arg_lo_ss(F_AXIS,ARG2)
+
+      i3 = arg_lo_ss(X_AXIS,ARG3)
+      j3 = arg_lo_ss(Y_AXIS,ARG3)
+      k3 = arg_lo_ss(Z_AXIS,ARG3)
+      l3 = arg_lo_ss(T_AXIS,ARG3)
+      m3 = arg_lo_ss(E_AXIS,ARG3)
+      n3 = arg_lo_ss(F_AXIS,ARG3)
+
+      l_off = 0
+      del_l = arg_2(i2,j2,k2,l2+1,m2,n2) - arg_2(i2,j2,k2,l2,m2,n2)
+      del_n = (arg_2(i2,j2,k2,l2,m2,n2+1) - arg_2(i2,j2,k2,l2,m2,n2))/del_l
+
+      n1 = arg_lo_ss(F_AXIS,ARG1)
+      DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+
+         DO 400 l2 = arg_lo_ss(T_AXIS,ARG2), arg_hi_ss(T_AXIS,ARG2)
+
+	    l = l2 + l_off
+            time2d_ft = arg_2(i2,j2,k2,l2,m2,n2)
+
+*  These should match.  (commented out now; something wrong with the
+*   declaration of work arrays with this function; Ferret crashes on
+*   trying to free the memory...)
+
+	    timeout = taxout(l)
+            IF (time2d_ft .NE. timeout) THEN
+	       write (err_msg, 1000) time2d_ft, l, timeout
+	       GOTO 999  
+            ENDIF
+	   
+            m1 = arg_lo_ss(E_AXIS,ARG1)
+            DO 500 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+
+            k1 = arg_lo_ss(Z_AXIS,ARG1)
+            DO 300 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+
+            j1 = arg_lo_ss(Y_AXIS,ARG1)
+            DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+
+            i1 = arg_lo_ss(X_AXIS,ARG1)
+            DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+
+	       result(i,j,k,l,m,n) = arg_1(i1,j1,k1,l2,m1,n1)
+
+            i1 = i1 + arg_incr(X_AXIS,ARG1)
+ 100        CONTINUE
+
+            j1 = j1 + arg_incr(Y_AXIS,ARG1)
+ 200        CONTINUE
+
+            k1 = k1 + arg_incr(Z_AXIS,ARG1)
+ 300        CONTINUE
+
+            m1 = m1 + arg_incr(E_AXIS,ARG1)
+ 500        CONTINUE
+
+ 400     CONTINUE
+
+         n2 = n2 + arg_incr(F_AXIS,ARG2)
+         n1 = n1 + arg_incr(F_AXIS,ARG1)
+	 l_off = l_off + del_n
+ 600  CONTINUE
+
+      RETURN
+
+ 999  CALL ef_bail_out (id, err_msg)
+
+* **********************************************************************
+
+      END
diff --git a/fer/efi/labwid.F b/fer/efi/labwid.F
index 4a17129..6a7af0b 100644
--- a/fer/efi/labwid.F
+++ b/fer/efi/labwid.F
@@ -135,9 +135,9 @@
      .        arg_hi_ss(6,EF_MAX_ARGS),
      .        arg_incr (6,EF_MAX_ARGS)
 
-      INTEGER arg, i, j, k, l, m, n
+      INTEGER arg, i, j, k, l, m, n, status
       REAL    LABEL_WIDTH, height
-      CHARACTER*1024 strng
+      CHARACTER strng*1024, errtxt*250
 
       CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
 
@@ -154,23 +154,31 @@
       m = res_lo_ss(E_AXIS)
       n = res_lo_ss(F_AXIS)
 
-      result(i,j,k,l,m,n) = LABEL_WIDTH(height, strng)
+      result(i,j,k,l,m,n) = LABEL_WIDTH(height, strng, errtxt, status)
+
+      IF (status .NE. 1) CALL EF_BAIL_OUT(id, errtxt)
 
       RETURN 
       END
 
 
-      REAL FUNCTION LABEL_WIDTH(height,strng)
+      REAL FUNCTION LABEL_WIDTH(height,strng, errtxt, status)
 
       IMPLICIT NONE
-      CHARACTER*(*) strng
-      REAL height
+      INTEGER	status
+      REAL	height
+      CHARACTER*(*) strng, errtxt
+
 
       INCLUDE 'xrisc.cmn'
+      include 'pyfonts.cmn'
+      INCLUDE 'fgrdel.cmn'
+
 
-      INTEGER n, lnbeg(500), lnend(500), numlines,
-     .        npen, nfont, npnew, nfnew, nchr
-      REAL*4 SYMWID, ht, ss, xmn
+      INTEGER	n, lnbeg(500), lnend(500), numlines,
+     .		npen, nfont, npnew, nfnew, nchr, mywindowid
+      REAL*4	SYMWID, ht, ss, xmn
+      REAL*8	mywindow
       CHARACTER*3 fontprefix, penprefix, newfont, newpen
 
       CALL TM_BREAK_LINES (strng, lnbeg, lnend, numlines)
@@ -182,11 +190,34 @@
       ss = 0.
       ht = height
 
+      status = 1
+
+c PyFerret fonts need an active window to return font size info
+      IF (pyfont) THEN
+         
+        mywindowid = ACTIVEWINDOW
+C       Some sanity checks on the window ID and window
+        IF ( (mywindowid .LT. 1) .OR. 
+     .       (mywindowid .GT. MAXWINDOWOBJS) ) THEN
+            errtxt = 'LABWID: PyFerret font queries need an active plot window'
+	    status = 0
+	    RETURN
+        ENDIF
+        mywindow = WINDOWOBJS(mywindowid)
+        IF ( mywindow .EQ. NULLOBJ ) THEN
+            errtxt = 'LABWID: PyFerret font queries need an active plot window'
+	    status = 0
+	    RETURN
+        ENDIF
+      ENDIF
+
       DO 40 n = 1, numlines
          CALL getlabfonts (strng, lnbeg, lnend, n, fontprefix, 
      .           npnew, nfnew, newfont, newpen, nchr)
 
          risc_buff = strng(lnbeg(n):lnend(n))
+
+
          xmn = SYMWID(ht,nchr+npen+nfont,
      .           penprefix(1:npen)//fontprefix(1:nfont)//
      .           risc_buff)
diff --git a/fer/efi/lon_lat_time_string.F b/fer/efi/lon_lat_time_string.F
new file mode 100644
index 0000000..65d8ef5
--- /dev/null
+++ b/fer/efi/lon_lat_time_string.F
@@ -0,0 +1,298 @@
+*
+* lon_lat_time_string.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
+* Jan 2015
+* 6-D function
+*
+*  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 )
+*                        CUSTO   - 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 lon_lat_time_string_init(id)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id, arg
+
+      CALL ef_version_test(ef_version)
+
+* **********************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+*                                                                      V
+
+      CALL ef_set_desc(id,
+     .        'Generate strings from longitude,latitude,time')
+      CALL ef_set_num_args(id, 5)
+
+      CALL ef_set_axis_inheritance_6d(id,
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
+      CALL ef_set_result_type(id, STRING_RETURN)
+
+      arg = 1
+      CALL ef_set_arg_name(id, arg, 'longitude')
+      CALL ef_set_arg_desc(id, arg, 'Station longitude')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                              YES, YES, YES, YES, YES, YES)
+
+      arg = 2
+      CALL ef_set_arg_name(id, arg, 'latitude')
+      CALL ef_set_arg_desc(id, arg, 'Station latitude')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                              YES, YES, YES, YES, YES, YES)
+
+      arg = 3
+      CALL ef_set_arg_name(id, arg, 'time')
+      CALL ef_set_arg_desc(id, arg, 'numeric times')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                              YES, YES, YES, YES, YES, YES)
+
+      arg = 4
+      CALL ef_set_arg_name(id, arg, 'time_axis')
+      CALL ef_set_arg_desc(id, arg, 
+     .     'Varible with a time axis to use to convert time to time strings')
+      CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
+
+      arg = 5
+      CALL ef_set_arg_name(id, arg, 'string to prepend')
+      CALL ef_set_arg_type (id, arg, STRING_ARG)
+      CALL ef_set_arg_desc(id, arg, 'A label to start the strings')
+      CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
+
+*                                                                      ^
+*                                                                      |
+*                                            USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+      RETURN
+      END
+
+
+*
+* In this subroutine we compute the result
+*
+      SUBROUTINE lon_lat_time_string_compute(id, arg_1, arg_2, arg_3, arg_4, 
+     .          arg_5, result)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+      INCLUDE 'EF_mem_subsc.cmn'
+
+      INTEGER strdf
+#ifdef double_p
+      PARAMETER (strdf = 1)
+#else
+      PARAMETER (strdf = 2)
+#endif
+
+      INTEGER id
+      REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz,
+     .           mem1lot:mem1hit, mem1loe:mem1hie, mem1lof:mem1hif)
+      REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy, mem2loz:mem2hiz,
+     .           mem2lot:mem2hit, mem2loe:mem2hie, mem2lof:mem2hif)
+      REAL arg_3(mem3lox:mem3hix, mem3loy:mem3hiy, mem3loz:mem3hiz,
+     .           mem3lot:mem3hit, mem3loe:mem3hie, mem3lof:mem3hif)
+      REAL arg_4(mem4lox:mem4hix, mem4loy:mem4hiy, mem4loz:mem4hiz,
+     .           mem4lot:mem4hit, mem4loe:mem4hie, mem4lof:mem4hif)
+      REAL arg_5(strdf,mem5lox:mem5hix, mem5loy:mem5hiy, mem5loz:mem5hiz,
+     .           mem5lot:mem5hit, mem5loe:mem5hie, mem5lof:mem5hif)
+      REAL result(strdf,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 TM_LENSTR
+      INTEGER i,  j,  k,  l,  m,  n
+      INTEGER i1, j1, k1, l1, m1, n1
+      INTEGER slen, len1, len2, outlen, llen
+      
+      CHARACTER*2   ns
+      CHARACTER*20  TM_FMT, datestring, lonstr, latstr, ilab
+      CHARACTER*256 lab, outstring
+      REAL ddate, alon, alat
+
+ 1100  FORMAT(i1)
+ 1200  FORMAT(i2.2)
+ 1300  FORMAT(i3.3)
+
+      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)
+
+      CALL ef_get_arg_string(id, ARG5, lab)
+      slen = TM_LENSTR(lab)
+
+      n1 = arg_lo_ss(F_AXIS,ARG1)
+      DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+      m1 = arg_lo_ss(E_AXIS,ARG1)
+      DO 500 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+      l1 = arg_lo_ss(T_AXIS,ARG1)
+      DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
+         k1 = arg_lo_ss(Z_AXIS,ARG1)
+         DO 300 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+
+          j1 = arg_lo_ss(Y_AXIS,ARG1)
+          DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+
+           i1 = arg_lo_ss(X_AXIS,ARG1)
+           DO 100 i=res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+
+            IF ( arg_1(i1,j1,k1,l1,m1,n1) .EQ. bad_flag(ARG1) .OR.
+     .           arg_2(i1,j1,k1,l1,m1,n1) .EQ. bad_flag(ARG2) .OR.
+     .           arg_3(i1,j1,k1,l1,m1,n1) .EQ. bad_flag(ARG3) ) THEN
+
+C     Get the string value of dates and put them in the result.
+
+               outstring = '***'
+	       CALL EF_PUT_STRING (outstring, 3, result(1,i,j,k,l,m,n))
+
+            ELSE
+
+	       alon = arg_1(i1,j1,k1,l1,m1,n1)
+	       IF (alon .LT. 0) alon = 360 + alon
+	       lonstr = TM_FMT(alon, 4, 5, len1)
+
+	       ns = 'N_'
+	       alat = arg_2(i1,j1,k1,l1,m1,n1)
+	       IF (alat .LT. 0) THEN
+	          alat = ABS(alat)
+		  ns = 'S_'
+	       ENDIF
+	       latstr = TM_FMT(alat, 4, 5, len2)
+	          
+               ddate = arg_3(i1,j1,k1,l1,m1,n1)
+               CALL EF_GET_AXIS_DATES (id, ARG4, ddate, T_AXIS, 1, datestring)
+               outstring = lab(:slen)//'_'//lonstr(:len1)//
+     .           'E_'//latstr(:len2) //ns//datestring(1:11)
+
+cc Just use a sequence number...
+cc
+cc	       IF (arg_hi_ss(X_AXIS,ARG1) .LT. 10) THEN
+cc	          WRITE (ilab, 1100) i1
+cc		  llen = 1
+cc	       ELSEIF (arg_hi_ss(X_AXIS,ARG1) .LT. 100) THEN
+cc	          WRITE (ilab, 1200) i1
+cc		  llen = 2
+cc	       ELSEIF (arg_hi_ss(X_AXIS,ARG1) .LT. 1000) THEN
+cc	          WRITE (ilab, 1300) i1
+cc		  llen = 3
+cc	       ENDIF
+cc               outstring = lab(:slen)//'_'//ilab(:llen)
+     
+	       outlen = TM_LENSTR(outstring)
+	       CALL EF_PUT_STRING (outstring, outlen, result(1,i,j,k,l,m,n))
+
+            ENDIF
+
+            i1 = i1 + arg_incr(X_AXIS,ARG1)
+ 100       CONTINUE
+
+           j1 = j1 + arg_incr(Y_AXIS,ARG1)
+ 200      CONTINUE
+
+          k1 = k1 + arg_incr(Z_AXIS,ARG1)
+ 300     CONTINUE
+
+         l1 = l1 + arg_incr(T_AXIS,ARG1)
+ 400    CONTINUE
+         m1 = m1 + arg_incr(E_AXIS,ARG1)
+ 500    CONTINUE
+         n1 = n1 + arg_incr(F_AXIS,ARG1)
+ 600    CONTINUE
+
+
+      RETURN
+
+*                                                                      ^
+*                                                                      |
+*                                            USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+      RETURN
+      END
diff --git a/fer/efi/piecewise3.F b/fer/efi/piecewise3.F
new file mode 100644
index 0000000..ef2b770
--- /dev/null
+++ b/fer/efi/piecewise3.F
@@ -0,0 +1,479 @@
+*  piecewise3.F
+* 
+*  This software was developed by the Thermal Modeling and Analysis
+*  Project(TMAP) of the National Oceanographic and Atmospheric
+*  Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+*  hereafter referred to as NOAA/PMEL/TMAP.
+*
+*  Access and use of this software shall impose the following
+*  obligations and understandings on the user. The user is granted the
+*  right, without any fee or cost, to use, copy, modify, alter, enhance
+*  and distribute this software, and any derivative works thereof, and
+*  its supporting documentation for any purpose whatsoever, provided
+*  that this entire notice appears in all copies of the software,
+*  derivative works and supporting documentation.  Further, the user
+*  agrees to credit NOAA/PMEL/TMAP in any publications that result from
+*  the use of this software or in any product that includes this
+*  software. The names TMAP, NOAA and/or PMEL, however, may not be used
+*  in any advertising or publicity to endorse or promote any products
+*  or commercial entity unless specific written permission is obtained
+*  from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+*  is not obligated to provide the user with any support, consulting,
+*  training or assistance of any kind with regard to the use, operation
+*  and performance of this software nor to provide the user with any
+*  updates, revisions, new versions or "bug fixes".
+*
+*  THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+*  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+*  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+*  ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+*  INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+*  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+*  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
+
+* Ansley Manke June 2013
+* implements stl2, Piecewise linear approximations of fewest line segments
+* described in http://www.computer.org/csdl/proceedings/afips/1972/5079/00/50790187.pdf
+* and a somewhat later version of the code, found at
+* http://www.netlib.org/toms/510
+*
+*
+*  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 piecewise3_init(id)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id, arg
+
+* **********************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+*                                                                      V
+
+      CALL ef_set_desc(id,
+     . 'Return indices to sample from piecewise linear interpolation of 3 vars' )
+
+      CALL ef_set_num_args(id, 7) 
+      CALL ef_set_has_vari_args(id, NO)
+      CALL ef_set_axis_inheritance(id, ABSTRACT, NORMAL, 
+     .                                              NORMAL,   NORMAL)
+      CALL ef_set_piecemeal_ok(id, NO, NO, NO, NO)
+      CALL ef_set_num_work_arrays(id, 7)
+
+      arg = 1
+      CALL ef_set_arg_name(id, arg, 'V1')
+      CALL ef_set_arg_desc(id, arg, '1st variable to sample')
+      CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+      arg = 2
+      CALL ef_set_arg_name(id, arg, 'V2')
+      CALL ef_set_arg_desc(id, arg, '2nd variable to sample')
+      CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+      arg = 3
+      CALL ef_set_arg_name(id, arg, 'V3')
+      CALL ef_set_arg_desc(id, arg, '3rd variable to sample')
+      CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+      arg = 4
+      CALL ef_set_arg_name(id, arg, 'Control parameter')
+      CALL ef_set_arg_desc(id, arg,
+     .          'Control parameter (e.g. 6 for ntol=rest=cont=1)')
+      CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+      arg = 5
+      CALL ef_set_arg_name(id, arg, 'Tol1')
+      CALL ef_set_arg_desc(id, arg, 'Tolerance for V1')
+      CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+      arg = 6
+      CALL ef_set_arg_name(id, arg, 'Tol2')
+      CALL ef_set_arg_desc(id, arg, 'Tolerance for V2')
+      CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+      arg = 7
+      CALL ef_set_arg_name(id, arg, 'Tol3')
+      CALL ef_set_arg_desc(id, arg, 'Tolerance for V3')
+      CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+
+
+*                                                                      ^
+*                                                                      |
+*                                            USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+      RETURN 
+      END
+
+
+*
+* In this subroutine we provide information about the lo and hi
+* limits associated with each abstract or custom axis.   The user 
+* configurable information consists of the following:
+*
+* lo_ss               lo subscript for an axis
+*
+* hi_ss               hi subscript for an axis
+*
+
+      SUBROUTINE piecewise3_result_limits(id)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id
+
+* **********************************************************************
+*                                           USER CONFIGURABLE PORTION |
+*                                                                     |
+*                                                                     V
+
+      INTEGER my_hi_i
+      INTEGER arg_lo_ss(4,EF_MAX_ARGS),
+     .        arg_hi_ss(4,EF_MAX_ARGS),
+     .        arg_incr (4,EF_MAX_ARGS)
+
+*
+*     Use utility functions to get context information about the arguments.
+*
+
+      CALL ef_get_arg_subscripts(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+      my_hi_i = arg_hi_ss(X_AXIS,1) - arg_lo_ss(X_AXIS,1) + 1
+
+      CALL ef_set_axis_limits(id, X_AXIS, 1, my_hi_i)
+*                                                                     ^
+*                                                                     |
+*                                           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 piecewise3_work_size(id)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id
+
+* **********************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+* 
+* Set the work arrays, X/Y/Z/T/E/F dimensions
+*
+* ef_set_work_array_dims(id, array #,
+*                           xlo, ylo, zlo, tlo, 
+*                           xhi, yhi, zhi, thi)
+*
+
+      INTEGER arg_lo_ss(4,EF_MAX_ARGS),
+     .        arg_hi_ss(4,EF_MAX_ARGS),
+     .        arg_incr (4,EF_MAX_ARGS)
+      INTEGER npts, iwork
+
+      CALL ef_get_arg_subscripts(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+      npts = 1 + arg_hi_ss(X_AXIS,ARG1) - arg_lo_ss(X_AXIS,ARG1)
+      npts = 2*npts
+
+* input x-axis coordinates
+      iwork = 1
+      CALL ef_set_work_array_dims(id, iwork,
+     .                                1, 1, 1, 1,
+     .                             npts+10, 1, 1, 1)
+
+* internal computation, u1 for y1
+      iwork = 2
+      CALL ef_set_work_array_dims(id, iwork,
+     .                                1, 1, 1, 1,
+     .                             npts+10, 1, 1, 1)
+
+* internal computation, u2 for y2
+      iwork = 3
+      CALL ef_set_work_array_dims(id, iwork,
+     .                                1, 1, 1, 1,
+     .                             npts+10, 1, 1, 1)
+
+* internal computation, u3 for y3
+      iwork = 4
+      CALL ef_set_work_array_dims(id, iwork,
+     .                                1, 1, 1, 1,
+     .                             npts+10, 1, 1, 1)
+
+* internal computation, v
+      iwork = 5
+      CALL ef_set_work_array_dims(id, iwork,
+     .                                1, 1, 1, 1,
+     .                           2*npts+10, 1, 1, 1)
+
+* internal computation, w
+      iwork = 6
+      CALL ef_set_work_array_dims(id, iwork,
+     .                                1, 1, 1, 1,
+     .                           2*npts+10, 1, 1, 1)
+
+* data w/o gaps
+      iwork = 7
+      CALL ef_set_work_array_dims(id, iwork,
+     .                                1, 1, 1, 1,
+     .                           npts+10, 1, 1, 1)
+*                                                                      ^
+*                                                                      |
+*                                            USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+      RETURN
+      END
+
+
+*  In this subroutine we compute the result
+* 
+      SUBROUTINE piecewise3_compute(id, arg_1, arg_2, arg_3, arg_4, 
+     .        arg_5, arg_6, arg_7, result, xpts, u1, u2, u3, v, w, yf)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+      INCLUDE 'EF_mem_subsc.cmn'
+
+      INTEGER id
+
+      REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz, 
+     .           mem1lot:mem1hit)
+      REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy, mem2loz:mem2hiz, 
+     .           mem2lot:mem2hit)
+      REAL arg_3(mem3lox:mem3hix, mem3loy:mem3hiy, mem3loz:mem3hiz, 
+     .           mem3lot:mem3hit)
+      REAL arg_4(mem4lox:mem4hix, mem4loy:mem4hiy, mem4loz:mem4hiz, 
+     .           mem4lot:mem4hit)
+      REAL arg_5(mem5lox:mem5hix, mem5loy:mem5hiy, mem5loz:mem5hiz, 
+     .           mem5lot:mem5hit)
+      REAL arg_6(mem6lox:mem6hix, mem6loy:mem6hiy, mem6loz:mem6hiz, 
+     .           mem6lot:mem6hit)
+      REAL arg_7(mem7lox:mem7hix, mem7loy:mem7hiy, mem7loz:mem7hiz, 
+     .           mem7lot:mem7hit)
+
+      REAL result(memreslox:memreshix, memresloy:memreshiy, 
+     .            memresloz:memreshiz, memreslot:memreshit)
+
+* Ignore the Y/Z/T/E/F dimensions in the work array since
+* they are not used and Fortran is column major
+
+      REAL xpts(wrk1lox:wrk1hix)
+
+      REAL u1(wrk2lox:wrk2hix)
+      REAL u2(wrk3lox:wrk3hix)
+      REAL u3(wrk4lox:wrk4hix)
+      REAL  v(wrk5lox:wrk5hix)
+      REAL  w(wrk6lox:wrk6hix)
+      REAL yf(wrk7lox:wrk7hix)
+
+* 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)
+
+      REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+
+
+* **********************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+*                                                                      V
+
+      INTEGER i, j, k, l
+      INTEGER nx, nout1, nout2, nout3, nmerge1, nmerge2, ip, icount
+      REAL val, tol(3), bad_y
+      CHARACTER*100 errtxt
+
+      CALL ef_get_res_subscripts(id, res_lo_ss, res_hi_ss, res_incr)
+      CALL ef_get_arg_subscripts(id, arg_lo_ss, arg_hi_ss, arg_incr)
+      CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
+
+* Initialize
+      nx = 0
+      nout1 = 0
+      nout2 = 0
+      nout3 = 0
+      nmerge1 = 0
+      nmerge2 = 0
+
+* Control parameter IP
+
+      CALL ef_get_one_val(id, ARG4, val)
+      IP = INT(val)
+
+* Tolerances
+
+      CALL ef_get_one_val(id, ARG5, tol(1))
+
+      CALL ef_get_one_val(id, ARG6, tol(2))
+
+      CALL ef_get_one_val(id, ARG7, tol(3))
+
+*  Set x coordinate - abstract axis.
+
+      nx = arg_hi_ss(X_AXIS, ARG1) - arg_lo_ss(X_AXIS, ARG1) + 1
+      DO 50 i = 1, nx
+         xpts(i) = i
+  50  CONTINUE
+
+      k = res_lo_ss(Z_AXIS)  ! index for unused dimensions
+
+* Find piecewise fit for each array then merge the indices
+* Set the work arrays to 0's so we arent using spurious data
+* If the function returns too many points, just return all indices
+
+
+* STL2 modified to truncate result to next lowest integer
+
+      bad_y = bad_flag(ARG1)
+      CALL STL2(xpts, arg_1, tol(1), nx, bad_y, bad_flag_result, 
+     .   u1, v, w, nout1, IP)
+      IF (nout1 .GT. res_hi_ss(X_AXIS)) THEN
+         nout1 = nx
+         DO 100 i = 1, nx
+	    u1(i) = FLOAT(i)
+ 100     CONTINUE
+      ENDIF
+      
+      DO 110 i = nout1+1, wrk2hix
+         u1(i) = 0.
+ 110  CONTINUE
+
+      bad_y = bad_flag(ARG2)
+      CALL STL2(xpts, arg_2, tol(2), nx, bad_y, bad_flag_result, 
+     .   u2, v, w, nout2, IP)
+      IF (nout2 .GT. res_hi_ss(X_AXIS)) THEN
+         nout2 = nx
+         DO 200 i = 1, nx
+	    u2(i) = FLOAT(i)
+ 200     CONTINUE
+      ENDIF
+
+      DO 210 i = nout2+1, wrk3hix
+         u2(i) = 0.
+ 210  CONTINUE
+
+      
+* Skip over gaps in the data array, keeping good data and indices where
+* good data lies. Decimate this instead.
+
+      bad_y = bad_flag(ARG3)
+
+      j = arg_lo_ss(Y_AXIS, ARG3)
+      k = arg_lo_ss(Z_AXIS, ARG3)
+      l = arg_lo_ss(T_AXIS, ARG3)
+
+      icount = 0
+      DO 220 i = 1, nx
+         IF (arg_3(i,j,k,l) .NE. bad_y) THEN
+	    icount = icount + 1
+	    xpts(icount) = xpts(i)
+	    yf(icount) = arg_3(i,j,k,l)
+	 ENDIF
+ 220  CONTINUE
+
+      CALL STL2(xpts, yf, tol(3), icount, bad_y, bad_flag_result, 
+     .   u3, v, w, nout3, IP)
+      IF (nout3 .GT. res_hi_ss(X_AXIS)) THEN
+         nout3 = nx
+         DO 300 i = 1, nx
+	    u3(i) = FLOAT(i)
+ 300     CONTINUE
+      ENDIF
+
+      DO 310 i = nout3+1, wrk4hix
+         u3(i) = 0.
+ 310  CONTINUE
+
+* Truncate result(j=1) to next lowest integer - its going to be
+* the set of coordinate values to sample at.
+
+      DO 400 i = 1, wrk6hix
+	 w(i) = 0.
+ 400  CONTINUE
+
+      CALL merge (u1,nout1,u2,nout2,w,nmerge1,wrk6hix)
+      IF (nmerge1 .GT. res_hi_ss(X_AXIS)) THEN
+        write (errtxt,*) 'nmerge1 too large', nmerge1
+	 GOTO 999
+      ENDIF
+
+      DO 500 i = 1, wrk5hix
+	 v(i) = 0.
+ 500  CONTINUE
+      DO 510 i = nmerge1+1, wrk6hix
+	 w(i) = 0.
+ 510  CONTINUE
+
+      CALL merge (w,nmerge1,u3,nout3,v,nmerge2,wrk5hix)
+      IF ((nmerge2 .EQ. res_hi_ss(X_AXIS)) .OR. 
+     .    (nmerge2 .EQ. res_hi_ss(X_AXIS)+1) ) THEN
+        nmerge2 = res_hi_ss(X_AXIS)  ! Returning all the data
+      ELSE IF (nmerge2 .GT. res_hi_ss(X_AXIS)) THEN
+	 GOTO 999
+      ENDIF
+
+      DO 600 i = 1, nmerge2
+        result(i,k,k,k) = v(i)
+ 600  CONTINUE
+
+      DO 700 i = nmerge2+1, res_hi_ss(X_AXIS)
+        result(i,k,k,k) = bad_flag_result
+ 700  CONTINUE
+
+      RETURN
+ 999  CALL EF_BAIL_OUT(id, errtxt)
+      RETURN
+
+      END
diff --git a/fer/efi/piecewise_subs.F b/fer/efi/piecewise_subs.F
new file mode 100644
index 0000000..a78a9dd
--- /dev/null
+++ b/fer/efi/piecewise_subs.F
@@ -0,0 +1,511 @@
+
+      SUBROUTINE STL2(X, Y, E, M, bad_y, bad_out, U, V, W, K, IP)
+
+C PIECEWISE LINEAR APPROXIMATIONS OF FEWEST
+C LINE SEGMENTS WITHIN GIVEN TOLERANCES.
+
+C X,Y,E AND M CONTAIN INPUT DATA.
+C U,V,K AND POSSIBLY W CONTAIN OUTPUT.
+
+C IP IS A PARAMETER DETERMINING THE OPERATION
+C  OF THE PROGRAM.
+
+C X AND Y ARE INPUT DATA ARRAYS OF M ELEMENTS
+C  X(I),Y(I) CONTAINS THE ITH DATA POINT.
+
+C E MAY BE A SINGLE TOLERANCE OR A TABLE OF
+C  TOLERANCES DEPENDING ON THE VALUE OF IP.
+C IF E IS AN ARRAY, THEN E(I) IS THE TOLERANCE
+C  ASSOCIATED WITH X(I),Y(I) AND E MUST CONTAIN
+C  M NONNEGATIVE ELEMENTS.
+
+C U AND V ARE OUTPUT ARRAYS OF K+1 ELEMENTS.
+C  U IS A PARTITION OF THE INTERVAL (X(1),X(N))
+C  WITH U(1)=X(1) AND U(K+1)=X(N).
+C  V(I) IS AN ORDINATE TO BE ASSOCIATED WITH
+C  U(I) IN THE APPROXIMATION.  (IF A CONTINUOUS
+C  APPROXIMATION IS REQUESTED, THEN V(I) IS
+C  'THE' ORDINATE TO BE ASSOCIATED WITH U(I).)
+
+C IF A CONTINUOUS APPROXIMATION IS REQUESTED,
+C  THEN W IS NOT USED.  IN THIS CASE THE ITH
+C  APPROXIMATING SEGMENT IS THE STRAIGHT LINE
+C  FROM U(I),V(I) TO U(I+1),V(I+1).
+
+C IF A CONTINUOUS APPROXIMATION IS NOT
+C  REQUESTED, THEN W IS A K-ELEMENT OUTPUT
+C  ARRAY.  IN THIS CASE THE ITH APPROXIMATING
+C  SEGMENT IS THE STRAIGHT LINE FROM
+C  U(I),W(I) TO U(I+1),V(I+1), AND V(1) IS
+C  SET EQUAL TO W(1).
+
+C K IS THE NUMBER OF SEGMENTS IN THE PIECE-
+C  WISE LINEAR APPROXIMATION GENERATED.  IN
+C  CASE OF AN ERROR RETURN, K WILL BE SET TO
+C  ZERO.
+
+C THE CONTROL PARAMETER IP IS THE PRODUCT
+C  OF THREE INDICATORS I1,I2 AND I3.
+C  I1 INDICATES WHETHER OR NOT E IS AN
+C     ARRAY OF TOLERANCES.
+C     I1 = -1 INDICATES E IS AN ARRAY
+C     I1 = +1 INDICATES E IS A SINGLE NUMBER.
+C  I2 INDICATES WHETHER OR NOT THE
+C     APPROXIMATION IS TO BE RESTRICTED TO
+C     THE 'TOLERANCE BAND' ABOUT THE DATA.
+C     I2 = 1 INDICATES NO BAND RESTRICTION
+C     I2 = 2 INDICATES APPLY THIS RESTRICTION
+C     (THE 'TOLERANCE BAND' IS A PIECEWISE
+C     LINEAR BAND CENTERED AT THE DATA WHOSE
+C     WIDTH IS DETERMINED BY THE TOLERANCES
+C     AT THE DATA POINTS.)
+C  I3 INDICATES WHETHER OR NOT THE
+C     APPROXIMATION MUST BE CONTINUOUS.
+C     I3 = 1 INDICATES CONTINUITY NOT REQUIRED
+C     I3 = 3 INDICATES CONTINUITY IS REQUIRED
+
+C CALL STL2 (X,Y,E,M,X,Y,E,M,IP) WILL NOT
+C  CAUSE PROBLEMS PROVIDED THAT
+C  EITHER A CONTINUOUS APPROXIMATION IS
+C  REQUESTED, OR E IS A SUFFICIENTLY LARGE
+C  ARRAY.
+
+C THE PROGRAM PERFORMS THE FOLLOWING DATA
+C  CHECKS.  ARE THE X-VALUES IN INCREASING
+C  ORDER.  ARE THE TOLERANCE(S) NONNEGATIVE.
+C  IS THE NUMBER OF DATA POINTS GREATER THAN
+C  ONE.  IF ANY CHECK FAILS, THE PROGRAM
+C  RETURNS WITH K SET EQUAL TO 0.  IN THIS
+C  CASE NO FURTHER PROCESSING IS ATTEMPTED.
+
+      IMPLICIT NONE
+* Calling arguments
+      REAL X(*), Y(*), E(*), U(*), V(*), W(*), bad_y, bad_out
+      INTEGER M, K, IP
+
+* Local declarations
+      LOGICAL skipbad
+      INTEGER N, ITCH, I, J, L, KEEP, INIT, INDC, IGRAZE,
+     .        IDIOT, IT, IPIV, KP, ilo, ihi, icount
+      REAL EPSLN, SGN, XEYE, YEYE, TEMP1, SMIN, DX, 
+     .     SVX, SVY, SVMN, TEMP2, XINIT, YINIT, SLOPE, SMAX, 
+     .     SVMX, TEST
+
+* If there is a trivial amount of data in the input array then we are done
+      ilo = 0
+      ihi = 0
+      icount = 0
+      DO i = 1, m
+         IF (y(i) .NE. bad_y) THEN
+	    icount = icount + 1
+	    IF (ilo .EQ. 0) ilo = i
+	    ihi = i
+	 ENDIF
+      ENDDO
+
+      IF (icount .LE. 2) THEN
+         k = icount
+	 IF (ilo .GT. 0) u(1) = ilo
+	 IF (ihi .GT. 0) u(icount) = ihi
+	 GOTO 600
+      ENDIF
+
+      N = M
+      ITCH = IP
+      J = 1
+C ERROR CHECKS
+      IF (N.LE.1) GO TO 400
+      IF (E(1).LT.0.0) GO TO 400
+      DO 10 L=2,N
+        IF (X(L-1).GE.X(L)) GO TO 400
+        IF (ITCH.GE.0) GO TO 10
+        IF (E(L).LT.0.0) GO TO 400
+   10 CONTINUE
+C INITIALIZATION FOR ENTIRE PROGRAM
+      EPSLN = E(1)
+      SGN = 1.0
+      KEEP = 1
+      I = 1
+
+      CALL PIECEWISE3_CHECKGAP (Y, bad_y, x, u, i, j, n, skipbad)
+      IF (I.EQ.N) GOTO 260
+      IF (skipbad) GOTO 30
+
+      U(i) = X(i)
+      J = 2
+      INIT = 1
+      INDC = 0
+      GO TO 30
+C INITIALIZATION FOR EACH SEGMENT
+   20 CONTINUE
+      J = J + 1
+      INIT = I
+      INDC = 0
+      IF (IABS(ITCH).LT.3) KEEP = I
+      IF (IABS(IABS(ITCH)-4).NE.2) GO TO 30
+C RESTRICTED TO TOLERANCE BAND
+      XEYE = U(J-1)
+      YEYE = V(J-1)
+      TEMP1 = EPSLN
+      IF (ITCH.LT.0) TEMP1 = TEMP1 + (SGN*E(I-1)-EPSLN)*(X(I)-U(J-1)
+     * )/(X(I)-X(I-1))
+      YINIT = YEYE - TEMP1 - TEMP1
+      GO TO 40
+   30 CONTINUE
+C NOT RESTRICTED TO TOLERANCE BAND
+      XEYE = X(I)
+      YEYE = Y(I) + EPSLN
+      YINIT = Y(I) - EPSLN
+      IF (IABS(ITCH).EQ.1 .OR. I.EQ.1) GO TO 40
+      TEMP1 = EPSLN
+      IF (ITCH.LT.0) TEMP1 = SGN*E(I+1)
+      SMIN = (Y(I+1)-YEYE-TEMP1)/(X(I+1)-XEYE)
+      IF (ITCH.LT.0) TEMP1 = SGN*E(I-1)
+      SMAX = (YEYE-Y(I-1)+TEMP1)/(XEYE-X(I-1))
+
+      IF (KEEP.EQ.I-1) GO TO 50
+      IT = I - 2
+      XINIT = XEYE
+      IPIV = I
+      IGRAZE = I
+      I = I + 1
+
+      CALL PIECEWISE3_CHECKGAP (Y, bad_y, x, u, i, j, n, skipbad)
+      IF (skipbad) THEN
+         IF (I.EQ.N) GOTO 260
+	 GOTO 30
+      ENDIF
+
+      GO TO 150
+   40 CONTINUE
+      IF (XEYE.GE.X(I)) I = I + 1
+      IF (ITCH.LT.0) EPSLN = SGN*E(I)
+      DX = X(I) - XEYE
+      SMAX = (Y(I)+EPSLN-YEYE)/DX
+      SMIN = (Y(I)-EPSLN-YEYE)/DX
+   50 CONTINUE
+      XINIT = XEYE
+      IPIV = I
+      IGRAZE = I
+C DETERMINATION OF INDIVIDUAL SEGMENT
+   60 CONTINUE
+      IF (I.EQ.N) GO TO 260
+      I = I + 1
+      
+C New i, so does it point to a bad-val?
+
+      CALL PIECEWISE3_CHECKGAP (Y, bad_y, x, u, i, j, n, skipbad)
+      IF (skipbad) THEN
+         IF (I.EQ.N) GOTO 260
+	 GOTO 30
+      ENDIF
+
+   70 CONTINUE
+ 
+C TEST FOR NEW *MAX* SLOPE
+      DX = X(I) - XEYE
+      IF (ITCH.LT.0) EPSLN = SGN*E(I)
+      TEMP1 = (Y(I)+EPSLN-YEYE)/DX
+      TEST = TEMP1 - SMAX
+      IF (SGN.LE.0.0) TEST = -TEST
+      IF (TEST) 80, 90, 100
+   80 CONTINUE
+C TEST FOR END OF CANDIDATE SEGMENT
+      TEST = TEMP1 - SMIN
+      IF (SGN.LE.0.0) TEST = -TEST
+      IF (TEST.LT.0.0) GO TO 210
+      SMAX = TEMP1
+   90 CONTINUE
+C TEST FOR NEW *MIN* SLOPE
+      IPIV = I
+  100 CONTINUE
+      TEMP2 = (Y(I)-EPSLN-YEYE)/DX
+      TEST = TEMP2 - SMAX
+      IF (SGN.LE.0.0) TEST = -TEST
+      IF (TEST) 110, 120, 140
+  110 CONTINUE
+      TEST = SMIN - TEMP2
+      IF (SGN.LE.0.0) TEST = -TEST
+      IF (TEST) 120, 130, 60
+  120 CONTINUE
+      SMIN = TEMP2
+  130 CONTINUE
+      IGRAZE = I
+      GO TO 60
+C CHECK FOR PIVOT AT NEW EYE POINT
+  140 CONTINUE
+      IF (XEYE.EQ.X(IPIV)) GO TO 220
+      IF (ITCH.LT.0) EPSLN = SGN*E(IPIV)
+      INDC = 1
+      SVX = XEYE
+      SVY = YEYE
+      SVMN = SMIN
+      SVMX = SMAX
+      XEYE = X(IPIV)
+      YEYE = Y(IPIV) + EPSLN
+      SMIN = SMAX
+      SMAX = (YINIT-YEYE)/(XINIT-XEYE)
+      IF (KEEP.GE.IPIV) GO TO 170
+      IT = IPIV - 1
+  150 CONTINUE
+      TEMP2 = YEYE + EPSLN
+      DO 160 L=KEEP,IT
+        IF (ITCH.LT.0) TEMP2 = YEYE + SGN*E(L)
+        TEMP1 = (Y(L)-TEMP2)/(X(L)-XEYE)
+        TEST = TEMP1 - SMAX
+        IF (SGN.LE.0.0) TEST = -TEST
+        IF (TEST.LT.0.0) SMAX = TEMP1
+  160 CONTINUE
+  170 CONTINUE
+      IF (IPIV.GE.I-1) GO TO 70
+      IT = I - 2
+      TEMP2 = YEYE - EPSLN
+      IDIOT = IPIV
+      DO 200 L=IDIOT,IT
+        DX = X(L+1) - XEYE
+        IF (ITCH.LT.0) TEMP2 = YEYE - SGN*E(L+1)
+        TEMP1 = (Y(L+1)-TEMP2)/DX
+        TEST = TEMP1 - SMAX
+        IF (SGN.LE.0.0) TEST = -TEST
+        IF (TEST) 180, 190, 200
+  180   CONTINUE
+        SMAX = TEMP1
+  190   CONTINUE
+        IPIV = L + 1
+  200 CONTINUE
+      GO TO 70
+C END OF CURRENT SEGMENT
+  210 CONTINUE
+      TEMP2 = SMIN
+      IF (I.EQ.N) GO TO 240
+      KEEP = IGRAZE
+      GO TO 250
+  220 CONTINUE
+      TEMP2 = SMAX
+      IF (I.EQ.N) GO TO 230
+      SGN = -SGN
+      EPSLN = -EPSLN
+      KEEP = IPIV
+      GO TO 250
+  230 CONTINUE
+      IF (INDC.EQ.0 .OR. XEYE.NE.X(N-1)) GO TO 240
+      XEYE = SVX
+      YEYE = SVY
+      SMIN = SVMN
+      SMAX = SVMX
+  240 CONTINUE
+      U(J) = X(N-1)
+      YINIT = Y(N-1)
+      GO TO 270
+  250 CONTINUE
+      IF (IABS(IABS(ITCH)-4).NE.2) GO TO 300
+C DETERMINE KNOT ON EDGE OF TOLERANCE BAND
+      TEMP1 = 0.0
+      IF (ITCH.LT.0) TEMP1 = EPSLN - SGN*E(I-1)
+      TEMP1 = (Y(I)-Y(I-1)+TEMP1)/(X(I)-X(I-1))
+      
+      U(J) = (Y(I)+EPSLN-YEYE-TEMP1*X(I)+TEMP2*XEYE)/(TEMP2-TEMP1)
+
+      GO TO 310
+  260 CONTINUE
+      U(J) = X(N)
+      YINIT = Y(N)
+  270 CONTINUE
+C CONTINUITY CHECK FOR LAST SEGMENT
+      IF (IABS(ITCH).GE.3 .OR. INIT.EQ.1) GO TO 290
+      IT = INIT - 1
+      SVMX = SMAX + SGN
+      TEMP2 = YEYE + EPSLN
+      DO 280 L=KP,IT
+        IF (ITCH.LT.0) TEMP2 = YEYE + SGN*E(L)
+        TEMP1 = (Y(L)-TEMP2)/(X(L)-XEYE)
+        TEST = TEMP1 - SVMX
+        IF (SGN.LE.0.0) TEST = -TEST
+        IF (TEST.LT.0.0) SVMX = TEMP1
+  280 CONTINUE
+      IF (ABS(SVMX-SMAX+SVMX-SMIN).LE.ABS(SMAX-SMIN)) SMAX = SVMX
+  290 CONTINUE
+C NEARNESS CHECK FOR LAST SEGMENT
+      TEMP2 = SMAX
+      TEMP1 = YEYE + SMAX*(U(J)-XEYE)
+      TEST = YINIT - TEMP1
+      IF (SGN.LT.0.0) TEST = -TEST
+      IF (TEST.GT.0.0) GO TO 310
+      TEMP2 = SMIN
+      TEMP1 = YEYE + SMIN*(U(J)-XEYE)
+      TEST = YINIT - TEMP1
+      IF (SGN.LT.0.0) TEST = -TEST
+      IF (TEST.LT.0.0) GO TO 310
+      TEMP2 = (YINIT-YEYE)/(U(J)-XEYE)
+      V(J) = YINIT
+      GO TO 320
+  300 CONTINUE
+      IF (IABS(ITCH).GE.3) GO TO 330
+      U(J) = 0.5*(X(I)+X(I-1))
+  310 CONTINUE
+      V(J) = YEYE + TEMP2*(U(J)-XEYE)
+  320 CONTINUE
+      IF (XEYE.NE.XINIT) GO TO 330
+      IF (IABS(ITCH).EQ.2) GO TO 360
+      IF (IABS(ITCH).NE.6) GO TO 330
+      IF (J.LE.2) GO TO 380
+      GO TO 390
+  330 CONTINUE
+C RECOMPUTATION OF KNOT FOR CONTINUITY
+      IF (J.LE.2) GO TO 370
+      IF (SLOPE.EQ.TEMP2) GO TO 360
+      YINIT = V(J-2)
+      IF (IABS(ITCH).LT.3) YINIT = W(J-2)
+      TEMP1 = (XEYE*TEMP2-U(J-2)*SLOPE+YINIT-YEYE)/(TEMP2-SLOPE)
+      IF (IABS(ITCH).GE.3) GO TO 350
+      IF (TEMP1.GT.XINIT) GO TO 360
+      TEST = ABS(EPSLN)
+      IDIOT = INIT - KP
+      DO 340 L=1,IDIOT
+        IT = INIT - L
+        IF (TEMP1.GE.X(IT)) GO TO 350
+        DX = Y(IT) - YEYE - TEMP2*(X(IT)-XEYE)
+        IF (ITCH.LT.0) TEST = E(IT)
+        IF (ABS(DX).GT.TEST) GO TO 360
+  340 CONTINUE
+  350 CONTINUE
+      U(J-1) = TEMP1
+      V(J-1) = YEYE + TEMP2*(U(J-1)-XEYE)
+      IF (IABS(ITCH).LT.3) W(J-1) = V(J-1)
+      GO TO 390
+  360 CONTINUE
+      W(J-1) = YEYE + TEMP2*(U(J-1)-XEYE)
+      GO TO 390
+  370 CONTINUE
+      IF (IABS(ITCH).LT.3) GO TO 360
+  380 CONTINUE
+      V(1) = YEYE + TEMP2*(U(1)-XEYE)
+  390 CONTINUE
+      SLOPE = TEMP2
+      KP = KEEP
+      IF (I.LT.N) GO TO 20
+      IF (X(N).EQ.U(J)) GO TO 400
+      IF (IABS(ITCH).LT.3) W(J) = V(J)
+      J = J + 1
+      U(J) = X(N)
+      V(J) = Y(N)
+  400 CONTINUE
+      IF (J.GE.2 .AND. IABS(ITCH).LT.3) V(1) = W(1)
+      K = J
+
+* Truncate to integer values: indices at which to sample
+
+      DO 500 I = 1, K
+         u(i) = INT(u(i))
+  500 CONTINUE
+
+  600 CONTINUE
+      RETURN
+      END
+
+      SUBROUTINE PIECEWISE3_CHECKGAP (Y, bad_y, x, u, i, j, 
+     .   n, skipbad)
+      REAL Y(*), bad_y, x(*), u(*)
+      INTEGER i, j, n
+      LOGICAL skipbad
+
+      skipbad = .FALSE.
+	 
+      IF ( Y(i).EQ.bad_y ) THEN
+	 IF (i.GT.2) THEN
+	    u(j) = x(i-1)
+	       
+	    IF ( j .gt. 1 .and. INT(u(j)) .LT. INT(u(j-1)) ) then
+	       j = j - 1
+	       DO WHILE (INT(u(j)) .LE. INT(u(j-1)) )
+		     j = j - 1
+	       ENDDO	  
+	       u(j) = x(i-1)
+	    ENDIF
+            IF ( j .gt. 1 .and. INT(u(j)) .EQ. INT(u(j-1)) ) j = j - 1
+
+            j = j + 1
+	 ENDIF
+         DO WHILE ( Y(i).EQ.bad_y .AND. i.LT.n)
+            i = i + 1
+         ENDDO
+         
+         IF (i.GT.1) u(j) = x(i-1)
+         IF (i.GE.n) THEN
+	    i = n
+	    u(j) = x(n)
+	 ENDIF
+         IF ( j .gt. 1 .and. INT(u(j)) .EQ. INT(u(j-1)) ) j = j - 1
+
+         j = j + 1
+         u(j) = x(i)
+         IF ( j .gt. 1 .and. INT(u(j)) .EQ. INT(u(j-1)) ) j = j - 1
+
+         j = j + 1
+         skipbad = .TRUE.
+      ENDIF
+
+      RETURN
+      END
+
+
+      subroutine merge(a,na,b,nb,c,nout,nmax)
+c http://en.wikibooks.org/wiki/Algorithm_Implementation/Sorting/Merge_sort#Fortran
+! Normal usage: NA+NB = NC
+! B overlays C(NA+1:NC)
+
+! modified to return nout instead of assuming treating NC, length of C as known.
+
+      integer nout, nmax
+      integer  NA,NB,NC         
+      REAL  A(*), B(*), C(*)
+ 
+      integer I,J,K
+ 
+      I = 1
+      J = 1
+      K = 1
+      do while(I .LE. NA .and. J .LE. NB)
+         if (A(I) .LE. B(J)) then
+            C(K) = A(I)
+            I = I+1
+	    IF (I.GT.nmax) GOTO 100
+         else
+            C(K) = B(J)
+            J = J+1
+         endif
+         K = K + 1
+	 IF (K.GT.nmax) GOTO 100
+      enddo
+      do while (I .LE. NA)
+         C(K) = A(I)
+         I = I + 1
+         K = K + 1
+	 IF (K.GT.nmax) GOTO 100
+      enddo
+      do while (J .LE. NB)
+         C(K) = B(J)
+         J = J+1
+         K = K + 1
+	 IF (K.GT.nmax) GOTO 100
+      enddo
+
+* remove duplicates
+
+ 100  CONTINUE
+      j = 1
+      do i = 2, k
+         IF (c(i) .GT. c(i-1)) then
+	    j = j + 1
+	    IF (j.GT.nmax) THEN
+	       j = nmax
+	       GOTO 200
+	    ENDIF
+	    c(j) = c(i)
+	 endif
+      enddo
+ 200  nout = j
+
+      return
+ 
+      end ! subroutine merge
diff --git a/fer/efi/pt_in_poly.F b/fer/efi/pt_in_poly.F
index 9e19fde..d542776 100644
--- a/fer/efi/pt_in_poly.F
+++ b/fer/efi/pt_in_poly.F
@@ -151,21 +151,18 @@ C            1 IF THE POINT IS INSIDE OF THE POLYGON.
 
       CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
 
-* These are going to be a double precision array, to contain axis 
-* coordinates so allocate 2* the size of the axes
-
-      nx = 2*( arg_hi_ss(X_AXIS,ARG1) - arg_lo_ss(X_AXIS,ARG1) + 1 )
-      ny = 2*( arg_hi_ss(Y_AXIS,ARG1) - arg_lo_ss(Y_AXIS,ARG1) + 1 )
+* Coordinate data from argument 1
 
       array_num = 1
       CALL ef_set_work_array_dims_6d(id, array_num,
-     .                                1, 1, 1, 1, 1, 1,
-     .                               nx, 1, 1, 1, 1, 1)
+     .                               arg_lo_ss(X_AXIS,ARG1), 1, 1, 1, 1, 1,
+     .                               arg_hi_ss(X_AXIS,ARG1), 1, 1, 1, 1, 1)
 
       array_num = 2
       CALL ef_set_work_array_dims_6d(id, array_num,
-     .                                1, 1, 1, 1, 1, 1,
-     .                               ny, 1, 1, 1, 1, 1)
+     .                               arg_lo_ss(Y_AXIS,ARG1), 1, 1, 1, 1, 1,
+     .                               arg_hi_ss(Y_AXIS,ARG1), 1, 1, 1, 1, 1)
+
 
 * Set two arrays the size of the number of vertices.
 
@@ -212,6 +209,11 @@ C   A VERTICAL LINE IS DRAWN THRU THE POINT IN QUESTION. IF IT
 C   CROSSES THE POLYGON AN ODD NUMBER OF TIMES, THEN THE 
 C   POINT IS INSIDE OF THE POLYGON. 
 C 
+C Originally written as an external function, this version uses
+C internal Ferret functions STR_UPCASE and TM_HAS_STRING to upcase
+C the axis units string and compare its value to legal longitude
+C units strings.
+C
 C .................................................................. 
 C 
 
@@ -249,10 +251,15 @@ C
      .        arg_incr (6,EF_MAX_ARGS)
 
       REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+      
+      CHARACTER ax_name(6)*16, ax_units(6)*16, dummy*16
+      LOGICAL backward(6), mdulo(6), regular(6)
 
       INTEGER i, j, k, l, m, n
       INTEGER i1, j1, ii, jj, iarg, inout, nv
-      REAL xvmin, xvmax, yvmin, yvmax, px, py
+      REAL xvmin, xvmax, yvmin, yvmax, px, py, xmin, xmax
+      INTEGER STR_UPCASE
+      LOGICAL TM_HAS_STRING, mod_lo, mod_hi
 
       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)
@@ -266,13 +273,14 @@ C
       CALL ef_get_coordinates (id, iarg, Y_AXIS, 
      .       arg_lo_ss(Y_AXIS, ARG1), arg_hi_ss(Y_AXIS, ARG1), ycoords)
 
-! Size of the list of polygon vertices
+* Size of the list of polygon vertices
 
       nv = arg_hi_ss(X_AXIS,ARG2) - arg_lo_ss(X_AXIS,ARG2) + 1 
       nv = MAX(nv, arg_hi_ss(Y_AXIS,ARG2) - arg_lo_ss(Y_AXIS,ARG2) + 1 )
       nv = MAX(nv, arg_hi_ss(Z_AXIS,ARG2) - arg_lo_ss(Z_AXIS,ARG2) + 1 )
       nv = MAX(nv, arg_hi_ss(T_AXIS,ARG2) - arg_lo_ss(T_AXIS,ARG2) + 1 )
 
+
 * Get the bounding box around the polygon. Do not check points if they are
 * outside this bounding box
  
@@ -283,6 +291,42 @@ C
 
       CALL POLY_BOUND_BOX(arg_2, arg_3, nv, xvmin, xvmax, yvmin, yvmax)
 
+* If x axis of arg 1 is longitude, see if the xpts are outside the range of the x axis. Do we need to work 
+* in a different modulo branch?
+* Get the units of the x axis of arg1
+
+      CALL ef_get_axis_info_6d(id, ARG1, ax_name, ax_units,
+     .                         backward, mdulo, regular)
+      dummy = ax_units(1) 
+      i = STR_UPCASE (dummy, ax_units(1))
+      
+      mod_lo = .FALSE.
+      mod_hi = .FALSE.
+
+      IF ( TM_HAS_STRING(ax_units(1), 'EAST')
+     .   .OR. TM_HAS_STRING(ax_units(1), 'WEST')
+     .   .OR. TM_HAS_STRING(ax_units(1), 'degreeE')
+     .   .OR. TM_HAS_STRING(ax_units(1), 'degreesE')
+     .   .OR. TM_HAS_STRING(ax_units(1), 'degree_E')
+     .   .OR. TM_HAS_STRING(ax_units(1), 'degrees_E')
+     .   .OR. TM_HAS_STRING(ax_units(1), 'degreeW')
+     .   .OR. TM_HAS_STRING(ax_units(1), 'degreesW')
+     .   .OR. TM_HAS_STRING(ax_units(1), 'degree_W')
+     .   .OR. TM_HAS_STRING(ax_units(1), 'degrees_W')
+     .   .OR. TM_HAS_STRING(ax_units(1), 'LON') ) THEN
+
+
+         xmin = 1.e34
+         xmax = -1.e34
+         do i = wrk1lox,wrk1hix 
+            xmin = MIN(xmin, xcoords(i))
+            xmax = MAX(xmax, xcoords(i))
+         enddo
+
+         mod_lo = (xvmin .LT. xmin)
+         mod_hi = (xvmax .GT. xmax)
+      ENDIF
+
 * Loop over all points, checking if they are inside or outside the polygon.
 
       n = res_lo_ss(F_AXIS)
@@ -306,6 +350,28 @@ C
             ELSE
                result(i,j,k,l,m,n) = -1
             ENDIF
+	    
+	    IF (mod_lo) THEN
+            IF (px-360 .GE. xvmin .AND. px-360 .LE. xvmax .AND.
+     .          py .GE. yvmin .AND. py .LE. yvmax ) THEN
+               CALL PNPOLY (px-360, py, arg_2, arg_3, nv, 
+     .                      workx, worky, inout )
+               result(i,j,k,l,m,n)= FLOAT(inout)
+            ELSE
+               result(i,j,k,l,m,n) = -1
+            ENDIF
+	    ENDIF  ! mod_lo
+
+	    IF (mod_hi) THEN
+            IF (px+360 .GE. xvmin .AND. px+360 .LE. xvmax .AND.
+     .          py .GE. yvmin .AND. py .LE. yvmax ) THEN
+               CALL PNPOLY (px+360, py, arg_2, arg_3, nv, 
+     .                      workx, worky, inout )
+               result(i,j,k,l,m,n)= FLOAT(inout)
+            ELSE
+               result(i,j,k,l,m,n) = -1
+            ENDIF
+	    ENDIF  ! mod_hi
 
             i1 = i1 + arg_incr(X_AXIS,ARG1)
  100     CONTINUE
diff --git a/fer/efi/sample_fast_i.F b/fer/efi/sample_fast_i.F
new file mode 100644
index 0000000..370d0f1
--- /dev/null
+++ b/fer/efi/sample_fast_i.F
@@ -0,0 +1,167 @@
+*  sample_fast_i.F
+* 
+*  This software was developed by the Thermal Modeling and Analysis
+*  Project(TMAP) of the National Oceanographic and Atmospheric
+*  Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+*  hereafter referred to as NOAA/PMEL/TMAP.
+*
+*  Access and use of this software shall impose the following
+*  obligations and understandings on the user. The user is granted the
+*  right, without any fee or cost, to use, copy, modify, alter, enhance
+*  and distribute this software, and any derivative works thereof, and
+*  its supporting documentation for any purpose whatsoever, provided
+*  that this entire notice appears in all copies of the software,
+*  derivative works and supporting documentation.  Further, the user
+*  agrees to credit NOAA/PMEL/TMAP in any publications that result from
+*  the use of this software or in any product that includes this
+*  software. The names TMAP, NOAA and/or PMEL, however, may not be used
+*  in any advertising or publicity to endorse or promote any products
+*  or commercial entity unless specific written permission is obtained
+*  from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+*  is not obligated to provide the user with any support, consulting,
+*  training or assistance of any kind with regard to the use, operation
+*  and performance of this software nor to provide the user with any
+*  updates, revisions, new versions or "bug fixes".
+*
+*  THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+*  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+*  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+*  ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+*  INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+*  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+*  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
+
+* Ansley Manke June 2013
+* Sample variable using a set of indices.
+*
+*
+*  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 sample_fast_i_init(id)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id, arg
+
+* **********************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+*                                                                      V
+
+      CALL ef_set_desc(id, 'Fast 1D sample variable using set of indices' )
+
+      CALL ef_set_num_args(id, 2)
+      CALL ef_set_has_vari_args(id, NO)
+      CALL ef_set_axis_inheritance_6d(id, IMPLIED_BY_ARGS, 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, 'V')
+      CALL ef_set_arg_desc(id, arg, 'Variable to sample')
+      CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
+
+      arg = 2
+      CALL ef_set_arg_name(id, arg, 'Indices')
+      CALL ef_set_arg_desc(id, arg, 'List of indices at which to sample ')
+      CALL ef_set_axis_influence_6d(id, arg, YES, NO, NO, NO, NO, NO)
+
+*                                                                      ^
+*                                                                      |
+*                                            USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+      RETURN 
+      END
+
+*  In this subroutine we compute the result
+* 
+      SUBROUTINE sample_fast_i_compute(id, arg_1, arg_2, result)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+      INCLUDE 'EF_mem_subsc.cmn'
+
+      INTEGER id
+
+* Function is intended only for variables in the x direction
+
+      REAL arg_1(mem1lox:mem1hix)
+      REAL arg_2(mem2lox:mem2hix)
+      REAL result(memreslox:memreshix)
+
+* 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, i2, isample
+
+      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)
+
+      i2 = arg_lo_ss(X_AXIS,ARG2)
+      DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+      
+         result(i) = bad_flag_result
+         IF (arg_2(i2) .NE. bad_flag(ARG2)) THEN
+            isample = INT(arg_2(i2))
+            result(i) = arg_1(isample)
+	 ENDIF
+	 i2 = i2 + arg_incr(X_AXIS,ARG2)
+  100 CONTINUE
+
+      RETURN
+
+      RETURN
+      END
diff --git a/fer/efi/sample_fast_i_str.F b/fer/efi/sample_fast_i_str.F
new file mode 100644
index 0000000..2278c7f
--- /dev/null
+++ b/fer/efi/sample_fast_i_str.F
@@ -0,0 +1,178 @@
+*  sample_fast_i_str.F
+* 
+*  This software was developed by the Thermal Modeling and Analysis
+*  Project(TMAP) of the National Oceanographic and Atmospheric
+*  Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+*  hereafter referred to as NOAA/PMEL/TMAP.
+*
+*  Access and use of this software shall impose the following
+*  obligations and understandings on the user. The user is granted the
+*  right, without any fee or cost, to use, copy, modify, alter, enhance
+*  and distribute this software, and any derivative works thereof, and
+*  its supporting documentation for any purpose whatsoever, provided
+*  that this entire notice appears in all copies of the software,
+*  derivative works and supporting documentation.  Further, the user
+*  agrees to credit NOAA/PMEL/TMAP in any publications that result from
+*  the use of this software or in any product that includes this
+*  software. The names TMAP, NOAA and/or PMEL, however, may not be used
+*  in any advertising or publicity to endorse or promote any products
+*  or commercial entity unless specific written permission is obtained
+*  from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+*  is not obligated to provide the user with any support, consulting,
+*  training or assistance of any kind with regard to the use, operation
+*  and performance of this software nor to provide the user with any
+*  updates, revisions, new versions or "bug fixes".
+*
+*  THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+*  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+*  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+*  ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+*  INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+*  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+*  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
+
+* Ansley Manke June 2013
+* Sample variable using a set of indices.
+*
+*
+*  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 sample_fast_i_str_init(id)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id, arg
+
+* **********************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+*                                                                      V
+
+      CALL ef_set_desc(id, 
+     .  'Fast 1D sample string variable using set of indices' )
+
+      CALL ef_set_num_args(id, 2)
+      CALL ef_set_has_vari_args(id, NO)
+      CALL ef_set_axis_inheritance_6d(id, IMPLIED_BY_ARGS, 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, 'S')
+      CALL ef_set_arg_desc(id, arg, 'String Variable to sample')
+      CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
+      CALL ef_set_arg_type(id, arg, STRING_ARG)
+
+      arg = 2
+      CALL ef_set_arg_name(id, arg, 'Indices')
+      CALL ef_set_arg_desc(id, arg, 'List of indices at which to sample ')
+      CALL ef_set_axis_influence_6d(id, arg, YES, NO, NO, NO, NO, NO)
+
+*                                                                      ^
+*                                                                      |
+*                                            USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+      RETURN 
+      END
+
+*  In this subroutine we compute the result
+* 
+      SUBROUTINE sample_fast_i_str_compute(id, arg_1, arg_2, result)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+      INCLUDE 'EF_mem_subsc.cmn'
+
+      INTEGER id
+
+* Function is intended only for variables in the x direction
+
+* Single precision Ferret: string arg and result needed to be twice the length.
+      INTEGER strdf
+#ifdef double_p
+      PARAMETER (strdf = 1)
+#else
+      PARAMETER (strdf = 2)
+#endif
+
+      REAL arg_1(strdf,mem1lox:mem1hix)
+      REAL arg_2(mem2lox:mem2hix)
+      REAL result(strdf,memreslox:memreshix)
+
+* 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, i2, isample
+
+      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)
+
+      i2 = arg_lo_ss(X_AXIS,ARG2)
+      DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+      
+         IF (arg_2(i2) .NE. bad_flag(ARG2)) THEN  ! HELLO HELLO
+            isample = INT(arg_2(i2))
+	    CALL EF_PUT_STRING_PTR(arg_1(1,isample), result(1,i) )
+
+	 ENDIF
+	 i2 = i2 + arg_incr(X_AXIS,ARG2)
+  100 CONTINUE
+
+      RETURN
+
+      RETURN
+      END
diff --git a/fer/efi/samplet_date.F b/fer/efi/samplef_date.F
similarity index 80%
copy from fer/efi/samplet_date.F
copy to fer/efi/samplef_date.F
index 5e45d38..50b1de4 100644
--- a/fer/efi/samplet_date.F
+++ b/fer/efi/samplef_date.F
@@ -1,5 +1,5 @@
 *
-* samplet_date.F
+* samplef_date.F
 *
 *
 *  This software was developed by the Thermal Modeling and Analysis
@@ -81,7 +81,7 @@
 *
 
 
-      SUBROUTINE samplet_date_init(id)
+      SUBROUTINE samplef_date_init(id)
 
       IMPLICIT NONE
       INCLUDE 'EF_Util.cmn'
@@ -98,23 +98,23 @@
       WRITE (fcn_desc, 10)
    10 FORMAT 
      .  ('Returns data sampled by interpolating ',
-     .   'to a set of times')
+     .   'to a set of times in F direction')
       CALL ef_set_desc(id, fcn_desc)
 
       CALL ef_set_num_args(id, 7)
       CALL ef_set_has_vari_args(id, NO)
       CALL ef_set_axis_inheritance_6d(id,
      .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
-     .                                IMPLIED_BY_ARGS, ABSTRACT,
-     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
+     .                                IMPLIED_BY_ARGS,IMPLIED_BY_ARGS, 
+     .                                IMPLIED_BY_ARGS, ABSTRACT)
       CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
       CALL ef_set_num_work_arrays(id, 3)
 
       arg = 1
       CALL ef_set_arg_name(id, arg, 'DAT_TO_SAMPLE')
-      CALL ef_set_arg_desc(id, arg, 'data to sample at set of times')
+      CALL ef_set_arg_desc(id, arg, 'data to sample at set of times in F')
       CALL ef_set_axis_influence_6d(id, arg,
-     .                              YES, YES, YES, NO, YES, YES)
+     .                              YES, YES, YES, YES, YES, NO)
 
       arg = 2
       CALL ef_set_arg_name(id, arg, 'YR')
@@ -170,7 +170,7 @@
 * hiss               hi subscript for an axis
 *
 
-      SUBROUTINE samplet_date_result_limits(id)
+      SUBROUTINE samplef_date_result_limits(id)
 
       IMPLICIT NONE
       INCLUDE 'EF_Util.cmn'
@@ -185,7 +185,7 @@
       INTEGER arg_lo_ss(6,EF_MAX_ARGS),
      .        arg_hi_ss(6,EF_MAX_ARGS),
      .        arg_incr (6,EF_MAX_ARGS)
-      INTEGER my_lo_l, my_hi_l
+      INTEGER my_lo_n, my_hi_n
       INTEGER nx, ny, nz, nt, ne, nf
 
 *     Use utility functions to get context information about the 
@@ -202,9 +202,9 @@
 
 *  Use the subscripts for ARG2 for the abstract axis limits; could be on any axis
 
-      my_lo_l = 1
-      my_hi_l = MAX(nx,ny,nz,nt,ne,nf)
-      CALL ef_set_axis_limits(id, T_AXIS, my_lo_l, my_hi_l)
+      my_lo_n = 1
+      my_hi_n = MAX(nx,ny,nz,nt,ne,nf)
+      CALL ef_set_axis_limits(id, F_AXIS, my_lo_n, my_hi_n)
 
 *                                                                     ^
 *                                                                     |
@@ -219,7 +219,7 @@
 * In this subroutine we request an amount of storage to be supplied
 * by Ferret and passed as an additional argument.
 *
-      SUBROUTINE samplet_date_work_size(id)
+      SUBROUTINE samplef_date_work_size(id)
 
       IMPLICIT NONE
       INCLUDE 'EF_Util.cmn'
@@ -238,7 +238,7 @@
 *                           xhi, yhi, zhi, thi, ehi, fhi)
 *
 
-      INTEGER mtdat, mt2, mt20
+      INTEGER mfdat, mf20
       INTEGER arg_lo_ss(6,EF_MAX_ARGS),
      .        arg_hi_ss(6,EF_MAX_ARGS),
      .        arg_incr (6,EF_MAX_ARGS)
@@ -248,24 +248,23 @@
 
       CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
 
-      mtdat = arg_hi_ss(T_AXIS, ARG1) - arg_lo_ss(T_AXIS, ARG1) + 1
-      mt2 = mtdat* 2	! real*8  takes twice what a real*4 does
-      mt20 = mtdat* 20	! character*20: character*1 takes 1 byte
+      mfdat = arg_hi_ss(F_AXIS, ARG1) - arg_lo_ss(F_AXIS, ARG1) + 1
+      mf20 = mfdat* 20	! character*20: character*1 takes 1 byte
 
 *  taxdat (real*8)
       CALL ef_set_work_array_dims_6d(id, 1,
      .                                1, 1, 1, 1, 1, 1,
-     .                              mt2, 1, 1, 1, 1, 1)
+     .                              mfdat, 1, 1, 1, 1, 1)
 
 *  datebuf (character*20)
       CALL ef_set_work_array_dims_6d(id, 2,
      .                                1, 1, 1, 1, 1, 1,
-     .                             mt20, 1, 1, 1, 1, 1)
+     .                             mf20, 1, 1, 1, 1, 1)
 
 *  date_axis
       CALL ef_set_work_array_dims_6d(id, 3,
-     .           arg_lo_ss(T_AXIS,ARG1), 1, 1, 1, 1, 1,
-     .           arg_hi_ss(T_AXIS,ARG1), 1, 1, 1, 1, 1)
+     .           arg_lo_ss(F_AXIS,ARG1), 1, 1, 1, 1, 1,
+     .           arg_hi_ss(F_AXIS,ARG1), 1, 1, 1, 1, 1)
 
 *                                                                      ^
 *                                                                      |
@@ -278,7 +277,7 @@
 *
 * In this subroutine we compute the result
 *
-      SUBROUTINE samplet_date_compute(id, arg_1, arg_2, arg_3,
+      SUBROUTINE samplef_date_compute(id, arg_1, arg_2, arg_3,
      .                             arg_4, arg_5, arg_6, arg_7, result,
      .                            taxdat, datebuf, date_axis)
 
@@ -307,7 +306,7 @@
      .            memresloz:memreshiz, memreslot:memreshit,
      .            memresloe:memreshie, memreslof:memreshif)
 
-      REAL*8 taxdat(wrk1lox:wrk1hix/2, wrk1loy:wrk1hiy,
+      REAL*8 taxdat(wrk1lox:wrk1hix, wrk1loy:wrk1hiy,
      .              wrk1loz:wrk1hiz, wrk1lot:wrk1hit,
      .              wrk1loe:wrk1hie, wrk1lof:wrk1hif)
       CHARACTER*20 datebuf(wrk2lox:wrk2hix/20, wrk2loy:wrk2hiy,
@@ -346,10 +345,10 @@
       INTEGER i6, j6, k6, l6, m6, n6
       INTEGER i7, j7, k7, l7, m7, n7
       INTEGER mnth, numtimes
-      INTEGER lbot, ltop, status
+      INTEGER nbot, ntop, status
       REAL ayr, amo, ada, ahr, amn, asc
       REAL byr, bmo, bda, bhr, bmn, bsc
-      REAL tbot, ttop, timepoint, frac
+      REAL fbot, ftop, timepoint, frac
 
       CHARACTER*100 errtxt
 
@@ -364,15 +363,15 @@
       CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
 
       iarg = 1
-      CALL ef_get_coordinates (id, ARG1, T_AXIS, 
-     .       arg_lo_ss(T_AXIS, ARG1), arg_hi_ss(T_AXIS, ARG1), taxdat)
+      CALL ef_get_coordinates (id, ARG1, F_AXIS, 
+     .       arg_lo_ss(F_AXIS, ARG1), arg_hi_ss(F_AXIS, ARG1), taxdat)
 
-      numtimes = arg_hi_ss(T_AXIS, ARG1) - arg_lo_ss(T_AXIS, ARG1) + 1
-      CALL ef_get_axis_dates (id, ARG1, taxdat, numtimes, datebuf)
+      numtimes = arg_hi_ss(F_AXIS, ARG1) - arg_lo_ss(F_AXIS, ARG1) + 1
+      CALL ef_get_axis_dates (id, ARG1, taxdat, F_AXIS, numtimes, datebuf)
 
-      l1 = arg_lo_ss(T_AXIS,ARG1)
-      DO 60 l = 1, numtimes
-         READ (datebuf(l,1,1,1,1,1), 20, err=900) bda, cmon, byr,
+      n1 = arg_lo_ss(F_AXIS,ARG1)
+      DO 60 n = 1, numtimes
+         READ (datebuf(n,1,1,1,1,1), 20, err=900) bda, cmon, byr,
      .                                            bhr, bmn, bsc
          bmo = 0
          DO 40 mnth = 1, 12
@@ -383,36 +382,36 @@
          bmn = bmn + bsc/ 60.
          bhr = bhr + bmn/ 60.
          bda = bda + bhr/ 24.
-         date_axis(l1,1,1,1,1,1) = byr + bda / 365.2425
-         l1 = l1 + arg_incr(T_AXIS,ARG1)
+         date_axis(n1,1,1,1,1,1) = byr + bda / 365.2425
+         n1 = n1 + arg_incr(F_AXIS,ARG1)
    60 CONTINUE
 
-      l2 = arg_lo_ss(T_AXIS,ARG2)
-      l3 = arg_lo_ss(T_AXIS,ARG3)
-      l4 = arg_lo_ss(T_AXIS,ARG4)
-      l5 = arg_lo_ss(T_AXIS,ARG5)
-      l6 = arg_lo_ss(T_AXIS,ARG6)
-      l7 = arg_lo_ss(T_AXIS,ARG7)
-      DO  400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+      n2 = arg_lo_ss(F_AXIS,ARG2)
+      n3 = arg_lo_ss(F_AXIS,ARG3)
+      n4 = arg_lo_ss(F_AXIS,ARG4)
+      n5 = arg_lo_ss(F_AXIS,ARG5)
+      n6 = arg_lo_ss(F_AXIS,ARG6)
+      n7 = arg_lo_ss(F_AXIS,ARG7)
+      DO  600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
 
 *  Get the time to sample, whichever axis of arg_2 thru arg_7 it is on.
 
-         CALL pickindex(arg_2, l, ayr)
-         CALL pickindex(arg_3, l, amo)
-         CALL pickindex(arg_4, l, ada)
-         CALL pickindex(arg_5, l, ahr)
-         CALL pickindex(arg_6, l, amn)
-         CALL pickindex(arg_7, l, asc)
+         CALL pickindex(arg_2, n, ayr)
+         CALL pickindex(arg_3, n, amo)
+         CALL pickindex(arg_4, n, ada)
+         CALL pickindex(arg_5, n, ahr)
+         CALL pickindex(arg_6, n, amn)
+         CALL pickindex(arg_7, n, asc)
 
 *  Check that we do have a valid time.
 
-         lbot = 0
+         nbot = 0
          IF (ayr .NE. bad_flag(ARG2) .AND. 
-     .       amo .NE. bad_flag(arg3) .AND. 
-     .       ada .NE. bad_flag(arg4) .AND. 
-     .       ahr .NE. bad_flag(arg5) .AND. 
-     .       amn .NE. bad_flag(arg6) .AND. 
-     .       asc .NE. bad_flag(arg7) ) THEN
+     .       amo .NE. bad_flag(ARG3) .AND. 
+     .       ada .NE. bad_flag(ARG4) .AND. 
+     .       ahr .NE. bad_flag(ARG5) .AND. 
+     .       amn .NE. bad_flag(ARG6) .AND. 
+     .       asc .NE. bad_flag(ARG7) ) THEN
 
             CALL day_of_year(amo, ada, ayr, status, errtxt)
             IF (status .NE. 0) GO TO 1000
@@ -425,31 +424,22 @@
 *  Search the 1st argument for the points before and after the requested time,
 *  interpolate to set the result.
 
-            DO 80 l1 = arg_lo_ss(T_AXIS,ARG1), arg_hi_ss(T_AXIS,ARG1)
-               IF (timepoint .GE. date_axis(l1,1,1,1,1,1)) lbot = l1
+            DO 80 n1 = arg_lo_ss(F_AXIS,ARG1), arg_hi_ss(F_AXIS,ARG1)
+               IF (timepoint .GE. date_axis(n1,1,1,1,1,1)) nbot = n1
    80       CONTINUE
-            ltop = lbot + 1
+            ntop = nbot + 1
 
-            IF (lbot .GE. arg_lo_ss(T_AXIS,ARG1)  .AND. 
-     .          ltop .LE. arg_hi_ss(T_AXIS,ARG1)) THEN
+            IF (nbot .GE. arg_lo_ss(F_AXIS,ARG1)  .AND. 
+     .          ntop .LE. arg_hi_ss(F_AXIS,ARG1)) THEN
 
-               tbot = date_axis(lbot,1,1,1,1,1)
-               ttop = date_axis(ltop,1,1,1,1,1)
-               frac = (timepoint - tbot) / (ttop - tbot)
+               fbot = date_axis(nbot,1,1,1,1,1)
+               ftop = date_axis(ntop,1,1,1,1,1)
+               frac = (timepoint - fbot) / (ftop - fbot)
             ENDIF
 
          ENDIF
 
 *  Loop over all space and interpolate.
-  
-         n1 = arg_lo_ss(F_AXIS,ARG1)
-         n2 = arg_lo_ss(F_AXIS,ARG2)
-         n3 = arg_lo_ss(F_AXIS,ARG3)
-         n4 = arg_lo_ss(F_AXIS,ARG4)
-         n5 = arg_lo_ss(F_AXIS,ARG5)
-         n6 = arg_lo_ss(F_AXIS,ARG6)
-         n7 = arg_lo_ss(F_AXIS,ARG7)
-         DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
 
          m1 = arg_lo_ss(E_AXIS,ARG1)
          m2 = arg_lo_ss(E_AXIS,ARG2)
@@ -460,6 +450,15 @@
          m7 = arg_lo_ss(E_AXIS,ARG7)
          DO 500 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
 
+         l1 = arg_lo_ss(T_AXIS,ARG1)
+         l2 = arg_lo_ss(T_AXIS,ARG2)
+         l3 = arg_lo_ss(T_AXIS,ARG3)
+         l4 = arg_lo_ss(T_AXIS,ARG4)
+         l5 = arg_lo_ss(T_AXIS,ARG5)
+         l6 = arg_lo_ss(T_AXIS,ARG6)
+         l7 = arg_lo_ss(T_AXIS,ARG7)
+         DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
          k1 = arg_lo_ss(Z_AXIS,ARG1)
          k2 = arg_lo_ss(Z_AXIS,ARG2)
          k3 = arg_lo_ss(Z_AXIS,ARG3)
@@ -487,16 +486,16 @@
                i7 = arg_lo_ss(X_AXIS, ARG7)
                DO  100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS) 
 
-                  IF ( lbot .GE. arg_lo_ss(T_AXIS,ARG1) .AND. 
-     .                 ltop .LE. arg_hi_ss(T_AXIS,ARG1) ) THEN
-                     IF ( arg_1(i1,j1,k1,lbot,m1,n1) 
+                  IF ( nbot .GE. arg_lo_ss(F_AXIS,ARG1) .AND. 
+     .                 ntop .LE. arg_hi_ss(F_AXIS,ARG1) ) THEN
+                     IF ( arg_1(i1,j1,k1,l1,m1,nbot) 
      .                          .NE. bad_flag(ARG1)     .AND.
-     .                    arg_1(i1,j1,k1,ltop,m1,n1)
+     .                    arg_1(i1,j1,k1,l1,m1,ntop)
      .                          .NE. bad_flag(ARG1) )     THEN
                         result(i,j,k,l,m,n) = 
-     .                        arg_1(i1,j1,k1,lbot,m1,n1) + 
-     .                        frac * ( arg_1(i1,j1,k1,ltop,m1,n1) -
-     .                                 arg_1(i1,j1,k1,lbot,m1,n1)  )
+     .                        arg_1(i1,j1,k1,l1,m1,nbot) + 
+     .                        frac * ( arg_1(i1,j1,k1,l1,m1,ntop) -
+     .                                 arg_1(i1,j1,k1,l1,m1,nbot)  )
                      ELSE
                         result(i,j,k,l,m,n) = bad_flag_result
                      ENDIF
@@ -531,6 +530,15 @@
             k7 = k7 + arg_incr(Z_AXIS,ARG7)
   300    CONTINUE
 
+            l1 = l1 + arg_incr(T_AXIS,ARG1)
+            l2 = l2 + arg_incr(T_AXIS,ARG2)
+            l3 = l3 + arg_incr(T_AXIS,ARG3)
+            l4 = l4 + arg_incr(T_AXIS,ARG4)
+            l5 = l5 + arg_incr(T_AXIS,ARG5)
+            l6 = l6 + arg_incr(T_AXIS,ARG6)
+            l7 = l7 + arg_incr(T_AXIS,ARG7)
+  400    CONTINUE
+
             m1 = m1 + arg_incr(E_AXIS,ARG1)
             m2 = m2 + arg_incr(E_AXIS,ARG2)
             m3 = m3 + arg_incr(E_AXIS,ARG3)
@@ -540,30 +548,20 @@
             m7 = m7 + arg_incr(E_AXIS,ARG7)
   500    CONTINUE
 
-            n1 = n1 + arg_incr(F_AXIS,ARG1)
-            n2 = n2 + arg_incr(F_AXIS,ARG2)
-            n3 = n3 + arg_incr(F_AXIS,ARG3)
-            n4 = n4 + arg_incr(F_AXIS,ARG4)
-            n5 = n5 + arg_incr(F_AXIS,ARG5)
-            n6 = n6 + arg_incr(F_AXIS,ARG6)
-            n7 = n7 + arg_incr(F_AXIS,ARG7)
-  600    CONTINUE
-
 * End of loop over all space; go on to next specified time
 
-         l2 = l2 + arg_incr(T_AXIS,ARG2)
-         l2 = l2 + arg_incr(T_AXIS,ARG2)
-         l3 = l3 + arg_incr(T_AXIS,ARG3)
-         l4 = l4 + arg_incr(T_AXIS,ARG4)
-         l5 = l5 + arg_incr(T_AXIS,ARG5)
-         l6 = l6 + arg_incr(T_AXIS,ARG6)
-         l7 = l7 + arg_incr(T_AXIS,ARG7)
-  400 CONTINUE
+         n2 = n2 + arg_incr(F_AXIS,ARG2)
+         n3 = n3 + arg_incr(F_AXIS,ARG3)
+         n4 = n4 + arg_incr(F_AXIS,ARG4)
+         n5 = n5 + arg_incr(F_AXIS,ARG5)
+         n6 = n6 + arg_incr(F_AXIS,ARG6)
+         n7 = n7 + arg_incr(F_AXIS,ARG7)
+  600 CONTINUE
 
       RETURN 
 
   900 WRITE (errtxt,*) 'error reading date buffer ', 
-     .                 l, datebuf(l1,1,1,1,1,1)
+     .                 n, datebuf(n1,1,1,1,1,1)
  1000 CALL EF_BAIL_OUT(id, errtxt)
       RETURN
       END
diff --git a/fer/efi/samplet_date.F b/fer/efi/samplet_date.F
index 5e45d38..9b75ba5 100644
--- a/fer/efi/samplet_date.F
+++ b/fer/efi/samplet_date.F
@@ -98,7 +98,7 @@
       WRITE (fcn_desc, 10)
    10 FORMAT 
      .  ('Returns data sampled by interpolating ',
-     .   'to a set of times')
+     .   'to a set of times in T direction')
       CALL ef_set_desc(id, fcn_desc)
 
       CALL ef_set_num_args(id, 7)
@@ -368,7 +368,7 @@
      .       arg_lo_ss(T_AXIS, ARG1), arg_hi_ss(T_AXIS, ARG1), taxdat)
 
       numtimes = arg_hi_ss(T_AXIS, ARG1) - arg_lo_ss(T_AXIS, ARG1) + 1
-      CALL ef_get_axis_dates (id, ARG1, taxdat, numtimes, datebuf)
+      CALL ef_get_axis_dates (id, ARG1, taxdat, T_AXIS, numtimes, datebuf)
 
       l1 = arg_lo_ss(T_AXIS,ARG1)
       DO 60 l = 1, numtimes
@@ -552,7 +552,6 @@
 * End of loop over all space; go on to next specified time
 
          l2 = l2 + arg_incr(T_AXIS,ARG2)
-         l2 = l2 + arg_incr(T_AXIS,ARG2)
          l3 = l3 + arg_incr(T_AXIS,ARG3)
          l4 = l4 + arg_incr(T_AXIS,ARG4)
          l5 = l5 + arg_incr(T_AXIS,ARG5)
diff --git a/fer/efi/samplexyt_nrst.F b/fer/efi/samplexyt_nrst.F
index 3786704..2d85e59 100644
--- a/fer/efi/samplexyt_nrst.F
+++ b/fer/efi/samplexyt_nrst.F
@@ -40,7 +40,9 @@
 * args 2, 3,4
 * 1/18/08  Ansley Manke 
 *         Result is abstract on the x axis, normal on the y and t axes,
-*         and keeps the z axes of the input 4-d data.
+*         and keeps the z axes of the input 4-d data
+* 5/15/08 Deal with sample indices outside the axis range of the grid
+* 6/15/08 When the x axis is modulo the above threw out data unnecessarily
 *
 *
 * In this subroutine we provide information about
@@ -555,6 +557,9 @@ C  variables for checking axis characteristics (modulo axes)
          ELSE
             l1 = lbot+1
          ENDIF
+         IF (l1.LT.arg_lo_ss(T_AXIS,ARG1) .OR. l1.GT.arg_hi_ss(T_AXIS,ARG1)) THEN
+	    l1 = ef_unspecified_int4
+	 ENDIF
  
 * Try to get xpt in range if the X-axis is modulo
          IF ( modulo(1) ) THEN
@@ -618,7 +623,14 @@ C  variables for checking axis characteristics (modulo axes)
          ELSE
             i1 = ibot+1
          ENDIF
-
+         IF (i1.LT.arg_lo_ss(X_AXIS,ARG1) .OR. i1.GT.arg_hi_ss(X_AXIS,ARG1)) THEN
+	    IF (modulo(1)) THEN 
+	       IF (i1.LT.arg_lo_ss(X_AXIS,ARG1)) i1 = arg_hi_ss(X_AXIS,ARG1)
+	       IF (i1.GT.arg_hi_ss(X_AXIS,ARG1)) i1 = arg_lo_ss(X_AXIS,ARG1)
+	    ELSE
+	       i1 = ef_unspecified_int4
+	    ENDIF
+	 ENDIF
 
 * Check if ypt is in the Y-axis range.
          jbot = ef_unspecified_int4
@@ -663,6 +675,9 @@ C  variables for checking axis characteristics (modulo axes)
          ELSE
             j1 = jbot+1
          ENDIF
+         IF (j1.LT.arg_lo_ss(Y_AXIS,ARG1) .OR. j1.GT.arg_hi_ss(Y_AXIS,ARG1)) THEN
+	    j1 = ef_unspecified_int4
+	 ENDIF
 
 * Loop through the Z/E/F axes, assigning results for this coordinate pair
          n1 = arg_lo_ss(F_AXIS,ARG1)
diff --git a/fer/efi/scat2grid_bin_xyt.F b/fer/efi/scat2grid_bin_xyt.F
index 2d0c879..1f7f979 100644
--- a/fer/efi/scat2grid_bin_xyt.F
+++ b/fer/efi/scat2grid_bin_xyt.F
@@ -522,15 +522,15 @@ C  Get coordinates of output axes.
 
          l1 = 1
          DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
-            IF ( tt .GE. taxlo(l1) .AND. tt .LE. taxhi(l1) ) THEN
+            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 .LE. yaxhi(j1) ) THEN
+            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 .LE. xaxhi(i1) ) THEN
+            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) + ff
                counts(i1,j1,l1) = counts(i1,j1,l1) + 1.0
diff --git a/fer/efi/scat2grid_nbin_xyt.F b/fer/efi/scat2grid_nbin_xyt.F
index c6ef565..f7a5fc2 100644
--- a/fer/efi/scat2grid_nbin_xyt.F
+++ b/fer/efi/scat2grid_nbin_xyt.F
@@ -505,15 +505,15 @@ C  Get coordinates of output axes.
 
          l1 = 1
          DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
-            IF ( tt .GE. taxlo(l1) .AND. tt .LE. taxhi(l1) ) THEN
+            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 .LE. yaxhi(j1) ) THEN
+            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 .LE. xaxhi(i1) ) THEN
+            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
diff --git a/fer/efi/separate_str.F b/fer/efi/separate_str.F
new file mode 100644
index 0000000..c2509d7
--- /dev/null
+++ b/fer/efi/separate_str.F
@@ -0,0 +1,256 @@
+*  separate_str.F
+* 
+*  This software was developed by the Thermal Modeling and Analysis
+*  Project(TMAP) of the National Oceanographic and Atmospheric
+*  Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+*  hereafter referred to as NOAA/PMEL/TMAP.
+*
+*  Access and use of this software shall impose the following
+*  obligations and understandings on the user. The user is granted the
+*  right, without any fee or cost, to use, copy, modify, alter, enhance
+*  and distribute this software, and any derivative works thereof, and
+*  its supporting documentation for any purpose whatsoever, provided
+*  that this entire notice appears in all copies of the software,
+*  derivative works and supporting documentation.  Further, the user
+*  agrees to credit NOAA/PMEL/TMAP in any publications that result from
+*  the use of this software or in any product that includes this
+*  software. The names TMAP, NOAA and/or PMEL, however, may not be used
+*  in any advertising or publicity to endorse or promote any products
+*  or commercial entity unless specific written permission is obtained
+*  from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+*  is not obligated to provide the user with any support, consulting,
+*  training or assistance of any kind with regard to the use, operation
+*  and performance of this software nor to provide the user with any
+*  updates, revisions, new versions or "bug fixes".
+*
+*  THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+*  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+*  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+*  ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+*  INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+*  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+*  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
+
+* Ansley Manke June 2013
+* Given a data variable and a ROWSIZE indicating trajectory length,
+* Insert a bad-value between trajectories.
+*
+*
+*  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 separate_str_init(id)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id, arg
+
+* **********************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+*                                                                      V
+
+      CALL ef_set_desc(id,
+     . 'Insert a bad-value between features, string variable' )
+
+      CALL ef_set_num_args(id, 3)
+      CALL ef_set_has_vari_args(id, NO)
+      CALL ef_set_axis_inheritance_6d(id, ABSTRACT, 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_desc(id, arg, 'variable to sample on I axis')
+      CALL ef_set_axis_influence_6d(id, arg, YES, NO, NO, NO, NO, NO)
+      CALL ef_set_arg_type (id, arg, STRING_ARG)
+
+      arg = 2
+      CALL ef_set_arg_name(id, arg, 'Rowsize')
+      CALL ef_set_arg_desc(id, arg,
+     .          'array with per-feature row lengths')
+      CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
+
+      arg = 3
+      CALL ef_set_arg_name(id, arg, 'FixLongitudes')
+      CALL ef_set_arg_desc(id, arg,
+     .          'ignored (included for parity with numeric fcn)')
+      CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
+
+      CALL ef_set_result_type (id, STRING_RETURN)
+
+*                                                                      ^
+*                                                                      |
+*                                            USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+      RETURN 
+      END
+
+
+
+
+      SUBROUTINE separate_str_result_limits(id)
+
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id
+
+* **********************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+*                                                                      V
+
+*     Use utility functions  to get context information about the arguments.
+*     indices.
+
+
+      INTEGER arg_lo_ss(6,EF_MAX_ARGS), arg_hi_ss(6,EF_MAX_ARGS),
+     .     arg_incr(6,EF_MAX_ARGS)
+
+      INTEGER nx, nr, lo_lim, hi_lim
+
+      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+      nx = arg_hi_ss(X_AXIS, ARG1) - arg_lo_ss(X_AXIS, ARG1) + 1
+
+* will add a point for each row
+
+      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+      nr = MAX( (arg_hi_ss(E_AXIS, ARG2) - arg_lo_ss( E_AXIS, ARG2) + 1), 
+     .          (arg_hi_ss(E_AXIS, ARG2) - arg_lo_ss( E_AXIS, ARG2) + 1) )
+
+      lo_lim = 1
+      hi_lim = nx + nr - 1
+      CALL ef_set_axis_limits(id, X_AXIS, lo_lim, hi_lim)
+
+
+
+*                                                                      ^
+*                                                                      |
+*                                            USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+      RETURN 
+      END
+
+
+
+*  In this subroutine we compute the result
+* 
+      SUBROUTINE separate_str_compute(id, arg_1, arg_2, arg_3, 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 arg_3(mem3lox:mem3hix, mem3loy:mem3hiy, mem3loz:mem3hiz, 
+     .           mem3lot:mem3hit, mem3loe:mem3hie, mem3lof:mem3hif)
+
+! We just know this is on the X axis and will be passed in and out correct.y.
+      REAL result(memreslox:memreshix)
+
+* 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, i1, ir, k, m, slen
+      INTEGER nx, ne, msum, rend
+      REAL fixlon, tol, nothing
+      LOGICAL ifix
+      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)
+      CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
+
+      k = res_lo_ss(Z_AXIS)  ! index for unused dimensions
+
+      nx = arg_hi_ss(X_AXIS, ARG1) - arg_lo_ss(X_AXIS, ARG1) + 1
+      ne = arg_hi_ss(E_AXIS, ARG2) - arg_lo_ss(E_AXIS, ARG2) + 1
+
+      CALL ef_get_one_val(id, arg3, fixlon)
+      ifix =  (fixlon .GT. 0.8)
+      tol = 200.
+
+      i1 = 1
+      ir = 1
+      msum = 0
+      DO m = arg_lo_ss(E_AXIS,ARG2), arg_hi_ss(E_AXIS, ARG2)
+         rend = arg_2(k,k,k,k,m,k)
+	 msum = msum + rend
+	 IF (msum .GT. nx) msum = nx+1
+	 DO i = i1, msum
+
+	    CALL ef_get_string_arg_element_6d(id, ARG1, arg_1,
+     .                       i,k,k,k,k,k, slen,buff)
+	    CALL ef_put_string (buff, slen, result(ir) )
+  
+	    ir = ir + 1
+	    IF (ir .GT. res_hi_ss(X_AXIS)) GOTO 9000
+	 ENDDO
+	 i1 = msum+1
+	 buff = ' '
+	 slen = 1
+	 CALL ef_put_string (buff, slen, result(ir) )
+	 ir = ir + 1
+	 IF (ir .GT. res_hi_ss(X_AXIS)) GOTO 9000
+      ENDDO
+
+ 9000 RETURN
+c 999  CALL EF_BAIL_OUT(id, errtxt)
+      RETURN
+
+      END
diff --git a/fer/efi/tax_datestring.F b/fer/efi/tax_datestring.F
index 60700b1..cf09887 100644
--- a/fer/efi/tax_datestring.F
+++ b/fer/efi/tax_datestring.F
@@ -1,12 +1,46 @@
 *
 * tax_datestring.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. 
+*
+*
 * Jing Y. Li 
 * May 2006
 * 18-may-2006 ACM change to compare only the first 3 characters of the precision string.
 * V68  *acm* 1/12  ifdef double_p for double-precision ferret.
 * 27-Feb-2013 ACM  Fix ticket 2043: remove old code for handling single-
 *                  precision values coming in from argument 1
+* v695  *acm 2/15  Return dates on an F axis or a T axis.
 *
 * Returns string of dates 
 *
@@ -51,7 +85,6 @@
      .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
       CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
       CALL ef_set_result_type(id, STRING_RETURN)
-      CALL ef_set_num_work_arrays(id, 1)
 
       arg = 1
       CALL ef_set_arg_name(id, arg, 'A')
@@ -85,60 +118,10 @@
       END
 
 
-*
-* In this subroutine we request an amount of storage to be supplied
-* by Ferret and passed as an additional argument.
-*
-      SUBROUTINE tax_datestring_work_size(id)
-
-      IMPLICIT NONE
-      INCLUDE 'EF_Util.cmn'
-
-      INTEGER id
-
-* **********************************************************************
-*                                            USER CONFIGURABLE PORTION |
-*                                                                      |
-*                                                                      V
-
-*
-* Set the work array X/Y/Z/T/E/F dimensions
-*
-* ef_set_work_array_dims_6d(id, array #,
-*                           xlo, ylo, zlo, tlo, elo, flo,
-*                           xhi, yhi, zhi, thi, ehi, fhi)
-*
-
-      INTEGER arg_lo_ss(6,EF_MAX_ARGS),
-     .        arg_hi_ss(6,EF_MAX_ARGS),
-     .        arg_incr (6,EF_MAX_ARGS)
-      INTEGER array_num, nt1, nt2
-
-      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
-
-*  Allocate double the length of the T axis of ARG2 for REAL*8 work array.
-      nt1 = arg_lo_ss(T_AXIS,ARG2)
-      nt2 = nt1 + 
-     .        2 * (arg_hi_ss(T_AXIS,ARG2) - arg_lo_ss(T_AXIS,ARG2) + 1)
-
-      array_num = 1
-      CALL ef_set_work_array_dims_6d(id, array_num,
-     .                              nt1, 1, 1, 1, 1, 1,
-     .                              nt2, 1, 1, 1, 1, 1)
-
-*                                                                      ^
-*                                                                      |
-*                                            USER CONFIGURABLE PORTION |
-* **********************************************************************
-
-      RETURN 
-      END
-
-
 * In this subroutine we compute the result
 *
       SUBROUTINE tax_datestring_compute(id, arg_1, arg_2, arg_3, 
-     .                                  result, taxdat)
+     .                                  result)
 
       IMPLICIT NONE
       INCLUDE 'EF_Util.cmn'
@@ -165,10 +148,6 @@
      .                   memresloz:memreshiz, memreslot:memreshit,
      .                   memresloe:memreshie, memreslof:memreshif)
 
-* Ignore the Y/Z/T/E/F dimensions in the work arrays since
-* they are not used and Fortran is column major
-      REAL*8 taxdat(wrk1lox:wrk1lox+(wrk1hix-wrk1lox)/2)
-
 * 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. 
@@ -193,26 +172,30 @@
       INTEGER slen
       CHARACTER*20 datestring
       CHARACTER*3 precistring
-      INTEGER L2, LL
-      LOGICAL TM_FPEQ, first
+      INTEGER L2, LL, dir
       CHARACTER*255 err_msg
-      REAL*8 ddate, d1, d2
+      REAL*8 ddate
 
 *  variables for checking axis characteristics (modulo axes)
       CHARACTER ax_name(6)*16, ax_units(6)*16
       LOGICAL backward(6), modulo(6), regular(6), tmodulo
 
-*  Check to see if time axis of arg 2 is modulo
-      CALL ef_get_axis_info_6d(id, ARG2, ax_name, ax_units,
-     .                         backward, modulo, regular)
-      tmodulo = modulo(T_AXIS)
-
       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)
 
-      CALL ef_get_coordinates(id, ARG2, T_AXIS,
-     .        arg_lo_ss(T_AXIS,ARG2), arg_hi_ss(T_AXIS,ARG2), taxdat)
+*  Check to see if time axis of arg 2 is modulo
+      CALL ef_get_axis_info_6d(id, ARG2, ax_name, ax_units,
+     .                         backward, modulo, regular)
+* Get the direction of arg 2
+      IF (arg_lo_ss(T_AXIS, ARG2) .NE. ef_unspecified_int4) THEN
+         dir = T_AXIS
+         tmodulo = modulo(T_AXIS)
+      ENDIF
+      IF (arg_lo_ss(F_AXIS, ARG2) .NE. ef_unspecified_int4) THEN
+         dir = F_AXIS
+         tmodulo = modulo(F_AXIS)
+      ENDIF
 
 *     Get the precision for output (string)
       i3 = arg_lo_ss(X_AXIS, ARG3)
@@ -231,116 +214,114 @@
       m1 = arg_lo_ss(E_AXIS,ARG1)
       DO 500 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
 
+      l1 = arg_lo_ss(T_AXIS,ARG1)
+      DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
       k1 = arg_lo_ss(Z_AXIS,ARG1)
       DO 300 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
 
-         j1 = arg_lo_ss(Y_AXIS,ARG1)
-         DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
-
-            i1 = arg_lo_ss(X_AXIS,ARG1)
-            DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+      j1 = arg_lo_ss(Y_AXIS,ARG1)
+      DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
 
-               first = .TRUE.
+      i1 = arg_lo_ss(X_AXIS,ARG1)
+      DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
 
-               l1 = arg_lo_ss(T_AXIS,ARG1)
-               DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
-
-                  ddate = arg_1(i1,j1,k1,l1,m1,n1) 
-                  ddate = ddate  
-                  IF ( ddate .NE. bad_flag(ARG1) ) THEN
+         ddate = arg_1(i1,j1,k1,l1,m1,n1) 
+         ddate = ddate  
+         IF ( ddate .NE. bad_flag(ARG1) ) THEN
 
 *     Get the date string corresponding to time ddate for the variable ARG2
-                     CALL EF_GET_AXIS_DATES(id, ARG2, ddate,
-     .                                      1, datestring)
+            CALL EF_GET_AXIS_DATES 
+     .                   (id, ARG2, ddate, dir, 1, datestring)
 
 *     Assign the appropriate substring to the result.
-                     IF ( .NOT. tmodulo ) THEN
-                        IF ( precistring .EQ. 'sec' ) THEN
-                           slen = 20
-                           CALL EF_PUT_STRING(datestring, slen,
-     .                                        result(1,i,j,k,l,m,n))
-                        ELSE IF ( precistring .EQ. 'min' ) THEN
-                           slen = 17
-                           CALL EF_PUT_STRING(datestring(1:17), slen,
-     .                                        result(1,i,j,k,l,m,n))
-                        ELSE IF ( precistring .EQ. 'hou' ) THEN
-                           slen = 14
-                           CALL EF_PUT_STRING(datestring(1:14), slen,
-     .                                        result(1,i,j,k,l,m,n))
-                        ELSE IF ( precistring .EQ. 'day' ) THEN
-                           slen = 11
-                           CALL EF_PUT_STRING(datestring(1:11), slen,
-     .                                        result(1,i,j,k,l,m,n))
-                        ELSE IF ( precistring .EQ. 'mon' ) THEN
-                           slen = 8
-                           CALL EF_PUT_STRING(datestring(4:11), slen,
-     .                                        result(1,i,j,k,l,m,n))
-                        ELSE IF ( precistring .EQ. 'yea' ) THEN
-                           slen = 4
-                           CALL EF_PUT_STRING(datestring(8:11), slen,
-     .                                        result(1,i,j,k,l,m,n))
-                        ELSE
-                           slen = 20
-                           CALL EF_PUT_STRING (datestring, slen,
-     .                                        result(1,i,j,k,l,m,n))
-                        ENDIF
-
-                     ELSE  ! modulo time axis.  Datestring looks like 15-FEB 02:54:36
-
-                        IF ( precistring .EQ. 'sec' ) THEN
-                           slen = 15
-                           CALL EF_PUT_STRING(datestring(1:15), slen,
-     .                                        result(1,i,j,k,l,m,n))
-                        ELSE IF ( precistring .EQ. 'min' ) THEN
-                           slen = 12
-                           CALL EF_PUT_STRING(datestring(1:12), slen,
-     .                                        result(1,i,j,k,l,m,n))
-                        ELSE IF ( precistring .EQ. 'hou' ) THEN
-                           slen = 9
-                           CALL EF_PUT_STRING(datestring(1:9), slen,
-     .                                        result(1,i,j,k,l,m,n))
-                        ELSE IF ( precistring .EQ. 'day' ) THEN
-                           slen = 6
-                           CALL EF_PUT_STRING(datestring(1:6), slen, 
-     .                                        result(1,i,j,k,l,m,n))
-                        ELSE IF ( precistring .EQ. 'mon' ) THEN
-                           slen = 3
-                           CALL EF_PUT_STRING(datestring(4:6), slen,
-     .                                        result(1,i,j,k,l,m,n))
-                        ELSE IF ( precistring .EQ. 'yea' ) THEN
-                           datestring = '...'
-                           slen = 3
-                           CALL EF_PUT_STRING(datestring, slen,
-     .                                        result(1,i,j,k,l,m,n))
-                        ELSE
+            IF ( .NOT. tmodulo ) THEN
+               IF ( precistring .EQ. 'sec' ) THEN
+                  slen = 20
+                  CALL EF_PUT_STRING(datestring, slen,
+     .                               result(1,i,j,k,l,m,n))
+               ELSE IF ( precistring .EQ. 'min' ) THEN
+                  slen = 17
+                  CALL EF_PUT_STRING(datestring(1:17), slen,
+     .                               result(1,i,j,k,l,m,n))
+               ELSE IF ( precistring .EQ. 'hou' ) THEN
+                  slen = 14
+                  CALL EF_PUT_STRING(datestring(1:14), slen,
+     .                               result(1,i,j,k,l,m,n))
+               ELSE IF ( precistring .EQ. 'day' ) THEN
+                  slen = 11
+                  CALL EF_PUT_STRING(datestring(1:11), slen,
+     .                               result(1,i,j,k,l,m,n))
+               ELSE IF ( precistring .EQ. 'mon' ) THEN
+                  slen = 8
+                  CALL EF_PUT_STRING(datestring(4:11), slen,
+     .                               result(1,i,j,k,l,m,n))
+               ELSE IF ( precistring .EQ. 'yea' ) THEN
+                  slen = 4
+                  CALL EF_PUT_STRING(datestring(8:11), slen,
+     .                               result(1,i,j,k,l,m,n))
+               ELSE
+                  slen = 20
+                  CALL EF_PUT_STRING (datestring, slen,
+     .                               result(1,i,j,k,l,m,n))
+               ENDIF
+
+            ELSE  ! modulo time axis.  Datestring looks like 15-FEB 02:54:36
+
+               IF ( precistring .EQ. 'sec' ) THEN
+                  slen = 15
+                  CALL EF_PUT_STRING(datestring(1:15), slen,
+     .                               result(1,i,j,k,l,m,n))
+               ELSE IF ( precistring .EQ. 'min' ) THEN
+                  slen = 12
+                  CALL EF_PUT_STRING(datestring(1:12), slen,
+     .                               result(1,i,j,k,l,m,n))
+               ELSE IF ( precistring .EQ. 'hou' ) THEN
+                  slen = 9
+                  CALL EF_PUT_STRING(datestring(1:9), slen,
+     .                               result(1,i,j,k,l,m,n))
+               ELSE IF ( precistring .EQ. 'day' ) THEN
+                  slen = 6
+                  CALL EF_PUT_STRING(datestring(1:6), slen, 
+     .                               result(1,i,j,k,l,m,n))
+               ELSE IF ( precistring .EQ. 'mon' ) THEN
+                  slen = 3
+                  CALL EF_PUT_STRING(datestring(4:6), slen,
+     .                               result(1,i,j,k,l,m,n))
+               ELSE IF ( precistring .EQ. 'yea' ) THEN
+                  datestring = '...'
+                  slen = 3
+                  CALL EF_PUT_STRING(datestring, slen,
+     .                               result(1,i,j,k,l,m,n))
+               ELSE
                            slen = 15
                            CALL EF_PUT_STRING(datestring, slen,
      .                                        result(1,i,j,k,l,m,n))
-                        ENDIF
+               ENDIF
 
-                     ENDIF  ! Modulo time
+            ENDIF  ! Modulo time
 
-                  ELSE  ! ddate .NE. bad_flag(ARG1)
+         ELSE  ! ddate .NE. bad_flag(ARG1)
 
-                     datestring = '...'
-                     slen = 3
-                     CALL EF_PUT_STRING(datestring, slen,
+            datestring = '...'
+            slen = 3
+            CALL EF_PUT_STRING(datestring, slen,
      .                                  result(1,i,j,k,l,m,n))
 
-                  ENDIF
+         ENDIF
 
-                  l1 = l1 + arg_incr(T_AXIS,ARG1)
- 400           CONTINUE
+         i1 = i1 + arg_incr(X_AXIS,ARG1)
+ 100  CONTINUE
 
-               i1 = i1 + arg_incr(X_AXIS,ARG1)
- 100        CONTINUE
-
-            j1 = j1 + arg_incr(Y_AXIS,ARG1)
- 200     CONTINUE
+         j1 = j1 + arg_incr(Y_AXIS,ARG1)
+ 200  CONTINUE
 
          k1 = k1 + arg_incr(Z_AXIS,ARG1)
  300  CONTINUE
 
+         l1 = l1 + arg_incr(T_AXIS,ARG1)
+ 400  CONTINUE
+
          m1 = m1 + arg_incr(E_AXIS,ARG1)
  500  CONTINUE
 
diff --git a/fer/efi/tax_day.F b/fer/efi/tax_day.F
index a727fc5..d25e330 100644
--- a/fer/efi/tax_day.F
+++ b/fer/efi/tax_day.F
@@ -1,10 +1,45 @@
 *
 * tax_day.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. 
+*
+*
 * Jing Y. Li 
 * May 4th 2006
 * 27-Feb-2013 ACM  Fix ticket 2043: remove old code for handling single-
-*                  precision values coming in from argument 1
+*                  precision values coming in from argument 
+* v695  *acm 2/15  Time axis may be an F axis or a T axis.
+
 *
 * This function returns day specified by the first argument (variable 
 * containing time values) from the second argument (variable from which time 
@@ -67,7 +102,6 @@
      .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
      .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
       CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
-      CALL ef_set_num_work_arrays(id, 1)
 
       arg = 1
       CALL ef_set_arg_name(id, arg, 'A')
@@ -91,60 +125,10 @@
       RETURN 
       END
 
-
-*
-* In this subroutine we request an amount of storage to be supplied
-* by Ferret and passed as an additional argument.
-*
-      SUBROUTINE tax_day_work_size(id)
-
-      IMPLICIT NONE
-      INCLUDE 'EF_Util.cmn'
-
-      INTEGER id
-
-* **********************************************************************
-*                                            USER CONFIGURABLE PORTION |
-*                                                                      |
-*                                                                      V
-
-*
-* Set the work array X/Y/Z/T/E/F dimensions
-*
-* ef_set_work_array_dims_6d(id, array #,
-*                           xlo, ylo, zlo, tlo, elo, flo,
-*                           xhi, yhi, zhi, thi, ehi, fhi)
-*
-      INTEGER arg_lo_ss(6,EF_MAX_ARGS),
-     .        arg_hi_ss(6,EF_MAX_ARGS),
-     .        arg_incr (6,EF_MAX_ARGS)
-      INTEGER array_num, nt1, nt2
-
-      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
-
-*  Allocate double the length of the T axis of ARG2 for REAL*8 work array.
-      nt1 = arg_lo_ss(T_AXIS,ARG2)
-      nt2 = nt1 + 
-     .        2 * (arg_hi_ss(T_AXIS,ARG2) - arg_lo_ss(T_AXIS,ARG2) + 1)
-
-      array_num = 1
-      CALL ef_set_work_array_dims_6d(id, array_num,
-     .                              nt1, 1, 1, 1, 1, 1,
-     .                              nt2, 1, 1, 1, 1, 1)
-
-*                                                                      ^
-*                                                                      |
-*                                            USER CONFIGURABLE PORTION |
-* **********************************************************************
-
-      RETURN 
-      END
-
-
 *
 * In this subroutine we compute the result
 *
-      SUBROUTINE tax_day_compute(id, arg_1, arg_2, result, taxdat)
+      SUBROUTINE tax_day_compute(id, arg_1, arg_2, result)
 
       IMPLICIT NONE
       INCLUDE 'EF_Util.cmn'
@@ -161,10 +145,6 @@
      .            memresloz:memreshiz, memreslot:memreshit,
      .            memresloe:memreshie, memreslof:memreshif)
 
-* Ignore the Y/Z/T/E/F dimensions in the work arrays since
-* they are not used and Fortran is column major
-      REAL*8 taxdat(wrk1lox:wrk1lox+(wrk1hix-wrk1lox)/2)
-
 * 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. 
@@ -186,10 +166,9 @@
       CHARACTER*20 datebuf
       INTEGER iyear, day_of_mon
       CHARACTER*3 cmon
-      INTEGER L2, LL
-      LOGICAL TM_FPEQ, first
+      INTEGER L2, LL, dir
       CHARACTER*255 err_msg
-      REAL*8 ddate, d1, d2
+      REAL*8 ddate
       INTEGER i,j,k,l, m, n
       INTEGER i1, j1, k1, l1, m1, n1
 
@@ -197,17 +176,24 @@
       CHARACTER ax_name(6)*16, ax_units(6)*16
       LOGICAL backward(6), modulo(6), regular(6), tmodulo
 
-*  Check to see if time axis of arg 2 is modulo
-      CALL ef_get_axis_info_6d(id, ARG2, ax_name, ax_units,
-     .                         backward, modulo, regular)
-      tmodulo = modulo(T_AXIS)
 
       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)
 
-      CALL ef_get_coordinates(id, ARG2, T_AXIS,
-     .        arg_lo_ss(T_AXIS,ARG2), arg_hi_ss(T_AXIS,ARG2), taxdat)
+*  Check to see if time axis of arg 2 is modulo
+      CALL ef_get_axis_info_6d(id, ARG2, ax_name, ax_units,
+     .                         backward, modulo, regular)
+      
+* Get the direction of arg 2
+      IF (arg_lo_ss(T_AXIS, ARG2) .NE. ef_unspecified_int4) THEN
+         dir = T_AXIS
+         tmodulo = modulo(T_AXIS)
+      ENDIF
+      IF (arg_lo_ss(F_AXIS, ARG2) .NE. ef_unspecified_int4) THEN
+         dir = F_AXIS
+         tmodulo = modulo(F_AXIS)
+      ENDIF
 
       n1 = arg_lo_ss(F_AXIS,ARG1)
       DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
@@ -215,56 +201,54 @@
       m1 = arg_lo_ss(E_AXIS,ARG1)
       DO 500 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
 
+      l1 = arg_lo_ss(T_AXIS,ARG1)
+      DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
       k1 = arg_lo_ss(Z_AXIS,ARG1)
       DO 300 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
 
-         j1 = arg_lo_ss(Y_AXIS,ARG1)
-         DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+      j1 = arg_lo_ss(Y_AXIS,ARG1)
+      DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
 
-            i1 = arg_lo_ss(X_AXIS,ARG1)
-            DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+      i1 = arg_lo_ss(X_AXIS,ARG1)
+      DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
 
-               first = .TRUE.
+         ddate = arg_1(i1,j1,k1,l1,m1,n1)
 
-               l1 = arg_lo_ss(T_AXIS,ARG1)
-               DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
-
-                  ddate = arg_1(i1,j1,k1,l1,m1,n1)
-
-                  IF ( ddate .NE. bad_flag(ARG1) ) THEN
+         IF ( ddate .NE. bad_flag(ARG1) ) THEN
 
 *     Get the date string corresponding to time ddate for the variable ARG2
-                     CALL EF_GET_AXIS_DATES(id, ARG2, ddate, 1, datebuf)
-                  
-                     IF ( .NOT. tmodulo ) THEN
-*                       datebuf is in form "DD-MON-YEAR HH:MM:SS". Read date.
-                        READ (datebuf,420,err=900) day_of_mon, cmon, iyear
-  420                   FORMAT (i2, 1x, a3, 1x, i4) 
-                     ELSE
-*                       modulo: datebuf is in form "DD-MON HH:MM:SS". Read date.
-                        READ (datebuf,430,err=900) day_of_mon, cmon
-  430                   FORMAT (i2, 1x, a3) 
-                     ENDIF
-                     result(i,j,k,l,m,n) = day_of_mon 
+            CALL EF_GET_AXIS_DATES(id, ARG2, ddate, dir, 1, datebuf)
 
-                  ELSE
+            IF ( .NOT. tmodulo ) THEN
+*               datebuf is in form "DD-MON-YEAR HH:MM:SS". Read day.
+               READ (datebuf,120,err=900) day_of_mon, cmon, iyear
+  120                   FORMAT (i2, 1x, a3, 1x, i4) 
+            ELSE
+*               modulo: datebuf is in form "DD-MON HH:MM:SS". Read day.
+               READ (datebuf,130,err=900) day_of_mon, cmon
+  130          FORMAT (i2, 1x, a3) 
+            ENDIF
+            result(i,j,k,l,m,n) = day_of_mon 
 
-                     result(i,j,k,l,m,n) = bad_flag_result
+         ELSE
 
-                  ENDIF
+            result(i,j,k,l,m,n) = bad_flag_result
 
-                  l1 = l1 + arg_incr(T_AXIS,ARG1)
- 400           CONTINUE
+         ENDIF
 
-               i1 = i1 + arg_incr(X_AXIS,ARG1)
- 100        CONTINUE
+         i1 = i1 + arg_incr(X_AXIS,ARG1)
+ 100  CONTINUE
 
-            j1 = j1 + arg_incr(Y_AXIS,ARG1)
- 200     CONTINUE
+         j1 = j1 + arg_incr(Y_AXIS,ARG1)
+ 200  CONTINUE
 
          k1 = k1 + arg_incr(Z_AXIS,ARG1)
  300  CONTINUE
 
+         l1 = l1 + arg_incr(T_AXIS,ARG1)
+ 400  CONTINUE
+
          m1 = m1 + arg_incr(E_AXIS,ARG1)
  500  CONTINUE
 
diff --git a/fer/efi/tax_dayfrac.F b/fer/efi/tax_dayfrac.F
index 30edfa1..1ba0e10 100644
--- a/fer/efi/tax_dayfrac.F
+++ b/fer/efi/tax_dayfrac.F
@@ -1,10 +1,44 @@
 *
 * tax_dayfrac.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. 
+*
+*
 * Jing Y. Li 
 * May 4th 2006
 * 27-Feb-2013 ACM  Fix ticket 2043: remove old code for handling single-
 *                  precision values coming in from argument 1
+* v695  *acm 2/15  Time axis may be an F axis or a T axis.
 *
 * This function returns day fraction ([0,1]) specified by the first argument 
 * (variable containing time values) from the second argument (variable from 
@@ -67,7 +101,6 @@
      .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
      .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
       CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
-      CALL ef_set_num_work_arrays(id, 1)
 
       arg = 1
       CALL ef_set_arg_name(id, arg, 'A')
@@ -91,61 +124,10 @@
       RETURN 
       END
 
-
-*
-* In this subroutine we request an amount of storage to be supplied
-* by Ferret and passed as an additional argument.
-*
-      SUBROUTINE tax_dayfrac_work_size(id)
-
-      IMPLICIT NONE
-      INCLUDE 'EF_Util.cmn'
-
-      INTEGER id
-
-* **********************************************************************
-*                                            USER CONFIGURABLE PORTION |
-*                                                                      |
-*                                                                      V
-
-*
-* Set the work array X/Y/Z/T/E/F dimensions
-*
-* ef_set_work_array_dims_6d(id, array #,
-*                           xlo, ylo, zlo, tlo, elo, flo,
-*                           xhi, yhi, zhi, thi, ehi, fhi)
-*
-
-      INTEGER arg_lo_ss(6,EF_MAX_ARGS),
-     .        arg_hi_ss(6,EF_MAX_ARGS),
-     .        arg_incr (6,EF_MAX_ARGS)
-      INTEGER array_num, nt1, nt2
-
-      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
-
-*  Allocate double the length of the T axis of ARG2 for REAL*8 work array.
-      nt1 = arg_lo_ss(T_AXIS,ARG2)
-      nt2 = nt1 + 
-     .        2 * (arg_hi_ss(T_AXIS,ARG2) - arg_lo_ss(T_AXIS,ARG2) + 1)
-
-      array_num = 1
-      CALL ef_set_work_array_dims_6d(id, array_num,
-     .                              nt1, 1, 1, 1, 1, 1,
-     .                              nt2, 1, 1, 1, 1, 1)
-
-*                                                                      ^
-*                                                                      |
-*                                            USER CONFIGURABLE PORTION |
-* **********************************************************************
-
-      RETURN 
-      END
-
-
 *
 * In this subroutine we compute the result
 *
-      SUBROUTINE tax_dayfrac_compute(id, arg_1, arg_2, result, taxdat) 
+      SUBROUTINE tax_dayfrac_compute(id, arg_1, arg_2, result) 
 
       IMPLICIT NONE
       INCLUDE 'EF_Util.cmn'
@@ -162,10 +144,6 @@
      .            memresloz:memreshiz, memreslot:memreshit,
      .            memresloe:memreshie, memreslof:memreshif)
 
-* Ignore the Y/Z/T/E/F dimensions in the work arrays since
-* they are not used and Fortran is column major
-      REAL*8 taxdat(wrk1lox:wrk1lox+(wrk1hix-wrk1lox)/2)
-
 * 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. 
@@ -188,10 +166,9 @@
       INTEGER iyear, day_of_mon
       INTEGER ihour, iminute, isec
       CHARACTER*3 cmon
-      INTEGER L2, LL
-      LOGICAL TM_FPEQ, first
+      INTEGER L2, LL, dir
       CHARACTER*255 err_msg
-      REAL*8 ddate, d1, d2
+      REAL*8 ddate
       INTEGER i, j, k, l, m, n
       INTEGER i1, j1, k1, l1, m1, n1
 
@@ -199,17 +176,23 @@
       CHARACTER ax_name(6)*16, ax_units(6)*16
       LOGICAL backward(6), modulo(6), regular(6), tmodulo
 
-*  Check to see if time axis of arg 2 is modulo
-      CALL ef_get_axis_info_6d(id, ARG2, ax_name, ax_units,
-     .                         backward, modulo, regular)
-      tmodulo = modulo(T_AXIS)
-
       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)
 
-      CALL ef_get_coordinates(id, ARG2, T_AXIS,
-     .        arg_lo_ss(T_AXIS,ARG2), arg_hi_ss(T_AXIS,ARG2), taxdat)
+*  Check to see if time axis of arg 2 is modulo
+      CALL ef_get_axis_info_6d(id, ARG2, ax_name, ax_units,
+     .                         backward, modulo, regular)
+
+* Get the direction of arg 2
+      IF (arg_lo_ss(T_AXIS, ARG2) .NE. ef_unspecified_int4) THEN
+         dir = T_AXIS
+         tmodulo = modulo(T_AXIS)
+      ENDIF
+      IF (arg_lo_ss(F_AXIS, ARG2) .NE. ef_unspecified_int4) THEN
+         dir = F_AXIS
+         tmodulo = modulo(F_AXIS)
+      ENDIF
 
       n1 = arg_lo_ss(F_AXIS,ARG1)
       DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
@@ -217,56 +200,54 @@
       m1 = arg_lo_ss(E_AXIS,ARG1)
       DO 500 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
 
+      l1 = arg_lo_ss(T_AXIS,ARG1)
+      DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
       k1 = arg_lo_ss(Z_AXIS,ARG1)
       DO 300 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
 
-         j1 = arg_lo_ss(Y_AXIS,ARG1)
-         DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
-
-            i1 = arg_lo_ss(X_AXIS,ARG1)
-            DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+      j1 = arg_lo_ss(Y_AXIS,ARG1)
+      DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
 
-              first = .TRUE.
+      i1 = arg_lo_ss(X_AXIS,ARG1)
+      DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
 
-              l1 = arg_lo_ss(T_AXIS,ARG1)
-              DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
-
-                  ddate = arg_1(i1,j1,k1,l1,m1,n1)
-                  IF ( ddate .NE. bad_flag(ARG1) ) THEN
+         ddate = arg_1(i1,j1,k1,l1,m1,n1)
+         IF ( ddate .NE. bad_flag(ARG1) ) THEN
 
 *     Get the date string corresponding to time ddate for the variable ARG2
-                     CALL EF_GET_AXIS_DATES(id, ARG2, ddate, 1, datebuf)
-
-                     IF ( .NOT. tmodulo ) THEN
-*                       datebuf is in form "DD-MON-YEAR HH:MM:SS". Read time.
-                        READ (datebuf,420,err=900) ihour, iminute, isec
- 420                    FORMAT (11x, 3(1x,i2))
-                     ELSE 
-*                       modulo: datebuf is in form "DD-MON HH:MM:SS". Read time.
-                        READ (datebuf,430,err=900) ihour, iminute, isec
- 430                    FORMAT (6x, 3(1x,i2))
-                     ENDIF
-                     result(i,j,k,l,m,n) = ( (isec / 60. + iminute) / 60.
+            CALL EF_GET_AXIS_DATES(id, ARG2, ddate, dir, 1, datebuf)
+
+            IF ( .NOT. tmodulo ) THEN
+*              datebuf is in form "DD-MON-YEAR HH:MM:SS". Read time.
+               READ (datebuf,420,err=900) ihour, iminute, isec
+ 420           FORMAT (11x, 3(1x,i2))
+            ELSE 
+*              modulo: datebuf is in form "DD-MON HH:MM:SS". Read time.
+               READ (datebuf,430,err=900) ihour, iminute, isec
+ 430           FORMAT (6x, 3(1x,i2))
+            ENDIF
+            result(i,j,k,l,m,n) = ( (isec / 60. + iminute) / 60.
      .                                        + ihour ) / 24.
 
-                  ELSE
-
-                     result(i,j,k,l,m,n) = bad_flag_result
+         ELSE
 
-                  ENDIF
+            result(i,j,k,l,m,n) = bad_flag_result
 
-                  l1 = l1 + arg_incr(T_AXIS,ARG1)
- 400           CONTINUE
+         ENDIF
 
-               i1 = i1 + arg_incr(X_AXIS,ARG1)
- 100        CONTINUE
+         i1 = i1 + arg_incr(X_AXIS,ARG1)
+ 100  CONTINUE
 
-            j1 = j1 + arg_incr(Y_AXIS,ARG1)
- 200     CONTINUE
+         j1 = j1 + arg_incr(Y_AXIS,ARG1)
+ 200  CONTINUE
 
          k1 = k1 + arg_incr(Z_AXIS,ARG1)
  300  CONTINUE
 
+         l1 = l1 + arg_incr(T_AXIS,ARG1)
+ 400  CONTINUE
+
          m1 = m1 + arg_incr(E_AXIS,ARG1)
  500  CONTINUE
 
diff --git a/fer/efi/tax_jday.F b/fer/efi/tax_jday.F
index 34e808c..c0aa739 100644
--- a/fer/efi/tax_jday.F
+++ b/fer/efi/tax_jday.F
@@ -1,10 +1,44 @@
 *
 * tax_jday.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. 
+*
+*
 * Jing Y. Li 
 * May 4th 2006
 * 27-Feb-2013 ACM  Fix ticket 2043: remove old code for handling single-
 *                  precision values coming in from argument 1
+* v695  *acm 2/15  Time axis may be an F axis or a T axis.
 *
 * This function returns day of current year specified by the first argument 
 * (variable containing time values) from the second argument (variable from 
@@ -67,7 +101,6 @@
      .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
      .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
       CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
-      CALL ef_set_num_work_arrays(id, 1)
 
       arg = 1
       CALL ef_set_arg_name(id, arg, 'A')
@@ -93,59 +126,9 @@
 
 
 *
-* In this subroutine we request an amount of storage to be supplied
-* by Ferret and passed as an additional argument.
-*
-      SUBROUTINE tax_jday_work_size(id)
-
-      IMPLICIT NONE
-      INCLUDE 'EF_Util.cmn'
-
-      INTEGER id
-
-* **********************************************************************
-*                                            USER CONFIGURABLE PORTION |
-*                                                                      |
-*                                                                      V
-
-*
-* Set the work array X/Y/Z/T/E/F dimensions
-*
-* ef_set_work_array_dims_6d(id, array #,
-*                           xlo, ylo, zlo, tlo, elo, flo,
-*                           xhi, yhi, zhi, thi, ehi, fhi)
-*
-
-      INTEGER arg_lo_ss(6,EF_MAX_ARGS),
-     .        arg_hi_ss(6,EF_MAX_ARGS),
-     .        arg_incr (6,EF_MAX_ARGS)
-      INTEGER array_num, nt1, nt2
-
-      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
-
-*  Allocate double the length of the T axis of ARG2 for REAL*8 work array.
-      nt1 = arg_lo_ss(T_AXIS,ARG2)
-      nt2 = nt1 + 
-     .        2 * (arg_hi_ss(T_AXIS,ARG2) - arg_lo_ss(T_AXIS,ARG2) + 1)
-
-      array_num = 1
-      CALL ef_set_work_array_dims_6d(id, array_num,
-     .                              nt1, 1, 1, 1, 1, 1,
-     .                              nt2, 1, 1, 1, 1, 1)
-
-*                                                                      ^
-*                                                                      |
-*                                            USER CONFIGURABLE PORTION |
-* **********************************************************************
-
-      RETURN 
-      END
-
-
-*
 * In this subroutine we compute the result
 *
-      SUBROUTINE tax_jday_compute(id, arg_1, arg_2, result, taxdat) 
+      SUBROUTINE tax_jday_compute(id, arg_1, arg_2, result) 
 
       IMPLICIT NONE
       INCLUDE 'EF_Util.cmn'
@@ -162,10 +145,6 @@
      .            memresloz:memreshiz, memreslot:memreshit,
      .            memresloe:memreshie, memreslof:memreshif)
 
-* Ignore the Y/Z/T/E/F dimensions in the work arrays since
-* they are not used and Fortran is column major
-      REAL*8 taxdat(wrk1lox:wrk1lox+(wrk1hix-wrk1lox)/2)
-
 * 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. 
@@ -187,10 +166,9 @@
       CHARACTER*20 datebuf
       INTEGER iyear, day_of_mon, day_of_year, days_this_year
       CHARACTER*3 cmon
-      INTEGER L2, LL
-      LOGICAL TM_FPEQ, first
+      INTEGER L2, LL, dir
       CHARACTER*255 err_msg
-      REAL*8 ddate, d1, d2
+      REAL*8 ddate
       INTEGER i, j, k, l, m, n
       INTEGER i1, j1, k1, l1, m1, n1
 
@@ -198,17 +176,23 @@
       CHARACTER ax_name(6)*16, ax_units(6)*16
       LOGICAL backward(6), modulo(6), regular(6), tmodulo
 
-*  Check to see if time axis of arg 2 is modulo
-      CALL ef_get_axis_info_6d(id, ARG2, ax_name, ax_units,
-     .                         backward, modulo, regular)
-      tmodulo = modulo(T_AXIS)
-
       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)
 
-      CALL ef_get_coordinates(id, ARG2, T_AXIS,
-     .        arg_lo_ss(T_AXIS,ARG2), arg_hi_ss(T_AXIS,ARG2), taxdat)
+*  Check to see if time axis of arg 2 is modulo
+      CALL ef_get_axis_info_6d(id, ARG2, ax_name, ax_units,
+     .                         backward, modulo, regular)
+
+* Get the direction of arg 2
+      IF (arg_lo_ss(T_AXIS, ARG2) .NE. ef_unspecified_int4) THEN
+         dir = T_AXIS
+         tmodulo = modulo(T_AXIS)
+      ENDIF
+      IF (arg_lo_ss(F_AXIS, ARG2) .NE. ef_unspecified_int4) THEN
+         dir = F_AXIS
+         tmodulo = modulo(F_AXIS)
+      ENDIF
 
       n1 = arg_lo_ss(F_AXIS,ARG1)
       DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
@@ -216,59 +200,57 @@
       m1 = arg_lo_ss(E_AXIS,ARG1)
       DO 500 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
 
+      l1 = arg_lo_ss(T_AXIS,ARG1)
+      DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
       k1 = arg_lo_ss(Z_AXIS,ARG1)
       DO 300 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
 
-         j1 = arg_lo_ss(Y_AXIS,ARG1)
-         DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
-
-            i1 = arg_lo_ss(X_AXIS,ARG1)
-            DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+      j1 = arg_lo_ss(Y_AXIS,ARG1)
+      DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
 
-               first = .TRUE.
+      i1 = arg_lo_ss(X_AXIS,ARG1)
+      DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
 
-               l1 = arg_lo_ss(T_AXIS,ARG1)
-               DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
-
-                  ddate = arg_1(i1,j1,k1,l1,m1,n1)
-                  IF ( ddate .NE. bad_flag(ARG1) ) THEN
+         ddate = arg_1(i1,j1,k1,l1,m1,n1)
+         IF ( ddate .NE. bad_flag(ARG1) ) THEN
 
 *     Get the date string corresponding to time ddate for the variable ARG2
-                     CALL EF_GET_AXIS_DATES(id, ARG2, ddate, 1, datebuf)
+            CALL EF_GET_AXIS_DATES(id, ARG2, ddate, dir, 1, datebuf)
                   
-                     IF ( .NOT. tmodulo ) THEN
-*                       datebuf is in form "DD-MON-YEAR HH:MM:SS". Read date.
-                        READ (datebuf,420,err=900) day_of_mon, cmon, iyear
- 420                    FORMAT (i2, 1x, a3, 1x, i4) 
-                     ELSE
-*                       modulo: Datebuf is in form "DD-MON HH:MM:SS". Read date.
-                        READ (datebuf,430,err=900) day_of_mon, cmon
- 430                    FORMAT (i2, 1x, a3) 
-                        iyear = 1901  ! nominally non-leap year 
-                     ENDIF
-
-                     CALL JULIAN_DAY_OF_YEAR(cmon, day_of_mon, iyear,
-     .                                  day_of_year, days_this_year)
-                     result(i,j,k,l,m,n) = day_of_year 
+            IF ( .NOT. tmodulo ) THEN
+*               datebuf is in form "DD-MON-YEAR HH:MM:SS". Read date.
+               READ (datebuf,420,err=900) day_of_mon, cmon, iyear
+ 420           FORMAT (i2, 1x, a3, 1x, i4) 
+            ELSE
+*               modulo: Datebuf is in form "DD-MON HH:MM:SS". Read date.
+               READ (datebuf,430,err=900) day_of_mon, cmon
+ 430           FORMAT (i2, 1x, a3) 
+               iyear = 1901  ! nominally non-leap year 
+            ENDIF
 
-                  ELSE
+            CALL JULIAN_DAY_OF_YEAR(cmon, day_of_mon, iyear,
+     .                         day_of_year, days_this_year)
+            result(i,j,k,l,m,n) = day_of_year 
 
-                     result(i,j,k,l,m,n) = bad_flag_result
+         ELSE
 
-                  ENDIF
+            result(i,j,k,l,m,n) = bad_flag_result
 
-                  l1 = l1 + arg_incr(T_AXIS,ARG1)
- 400           CONTINUE
+         ENDIF
 
-               i1 = i1 + arg_incr(X_AXIS,ARG1)
- 100        CONTINUE
+         i1 = i1 + arg_incr(X_AXIS,ARG1)
+ 100  CONTINUE
 
-            j1 = j1 + arg_incr(Y_AXIS,ARG1)
- 200     CONTINUE
+         j1 = j1 + arg_incr(Y_AXIS,ARG1)
+ 200  CONTINUE
 
          k1 = k1 + arg_incr(Z_AXIS,ARG1)
  300  CONTINUE
 
+         l1 = l1 + arg_incr(T_AXIS,ARG1)
+ 400  CONTINUE
+
          m1 = m1 + arg_incr(E_AXIS,ARG1)
  500  CONTINUE
 
diff --git a/fer/efi/tax_jday1900.F b/fer/efi/tax_jday1900.F
index cadf019..a3e8785 100644
--- a/fer/efi/tax_jday1900.F
+++ b/fer/efi/tax_jday1900.F
@@ -1,10 +1,44 @@
 *
 * tax_jday1900.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. 
+*
+*
 *
 * Jing Y. Li 
 * May 4th 2006
 * 27-Feb-2013 ACM  Fix ticket 2043: remove old code for handling single-
 *                  precision values coming in from argument 1
+* v695  *acm 2/15  Time axis may be an F axis or a T axis.
 *
 * This function returns day of current year specified by the first argument 
 * (variable containing time values) from the second argument (variable from 
@@ -68,7 +102,6 @@
      .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
      .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
       CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
-      CALL ef_set_num_work_arrays(id, 1)
 
       arg = 1
       CALL ef_set_arg_name(id, arg, 'A')
@@ -92,60 +125,10 @@
       RETURN 
       END
 
-
-*
-* In this subroutine we request an amount of storage to be supplied
-* by Ferret and passed as an additional argument.
-*
-      SUBROUTINE tax_jday1900_work_size(id)
-
-      IMPLICIT NONE
-      INCLUDE 'EF_Util.cmn'
-
-      INTEGER id
-
-* **********************************************************************
-*                                            USER CONFIGURABLE PORTION |
-*                                                                      |
-*                                                                      V
-
-*
-* Set the work array X/Y/Z/T/E/F dimensions
-*
-* ef_set_work_array_dims_6d(id, array #,
-*                           xlo, ylo, zlo, tlo, elo, flo,
-*                           xhi, yhi, zhi, thi, ehi, fhi)
-*
-      INTEGER arg_lo_ss(6,EF_MAX_ARGS),
-     .        arg_hi_ss(6,EF_MAX_ARGS),
-     .        arg_incr (6,EF_MAX_ARGS)
-      INTEGER array_num, nt1, nt2
-
-      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
-
-*  Allocate double the length of the T axis of ARG2 for REAL*8 work array.
-      nt1 = arg_lo_ss(T_AXIS,ARG2)
-      nt2 = nt1 + 
-     .        2 * (arg_hi_ss(T_AXIS,ARG2) - arg_lo_ss(T_AXIS,ARG2) + 1)
-
-      array_num = 1
-      CALL ef_set_work_array_dims_6d(id, array_num,
-     .                              nt1, 1, 1, 1, 1, 1,
-     .                              nt2, 1, 1, 1, 1, 1)
-
-*                                                                      ^
-*                                                                      |
-*                                            USER CONFIGURABLE PORTION |
-* **********************************************************************
-
-      RETURN 
-      END
-
-
 *
 * In this subroutine we compute the result
 *
-      SUBROUTINE tax_jday1900_compute(id, arg_1, arg_2, result, taxdat)
+      SUBROUTINE tax_jday1900_compute(id, arg_1, arg_2, result)
 
       IMPLICIT NONE
       INCLUDE 'EF_Util.cmn'
@@ -162,10 +145,6 @@
      .            memresloz:memreshiz, memreslot:memreshit,
      .            memresloe:memreshie, memreslof:memreshif)
 
-* Ignore the Y/Z/T/E/F dimensions in the work arrays since
-* they are not used and Fortran is column major
-      REAL*8 taxdat(wrk1lox:wrk1lox+(wrk1hix-wrk1lox)/2)
-
 * 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. 
@@ -187,10 +166,9 @@
       CHARACTER*20 datebuf
       INTEGER iyear, day_of_mon, day_since_1900
       CHARACTER*3 cmon
-      INTEGER L2, LL
-      LOGICAL TM_FPEQ, first
+      INTEGER L2, LL, dir
       CHARACTER*255 err_msg
-      REAL*8 ddate, d1, d2
+      REAL*8 ddate
       INTEGER i, j, k, l, m, n
       INTEGER i1, j1, k1, l1, m1, n1
 
@@ -198,20 +176,29 @@
       CHARACTER ax_name(6)*16, ax_units(6)*16
       LOGICAL backward(6), modulo(6), regular(6)
 
-*  Check to see if time axis of arg 2 is modulo
-      CALL ef_get_axis_info_6d(id, ARG2, ax_name, ax_units,
-     .                         backward, modulo, regular)
-      IF ( modulo(T_AXIS) ) THEN
-         WRITE (err_msg, *) 'Function not valid for modulo time axis'
-         GO TO 999
-      ENDIF
-
       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)
 
-      CALL ef_get_coordinates(id, ARG2, T_AXIS,
-     .        arg_lo_ss(T_AXIS,ARG2), arg_hi_ss(T_AXIS,ARG2), taxdat)
+*  Check to see if time axis of arg 2 is modulo
+      CALL ef_get_axis_info_6d(id, ARG2, ax_name, ax_units,
+     .                         backward, modulo, regular)
+
+* Get the direction of arg 2
+      IF (arg_lo_ss(T_AXIS, ARG2) .NE. ef_unspecified_int4) THEN
+         dir = T_AXIS
+         IF ( modulo(T_AXIS) ) THEN
+            WRITE (err_msg, *) 'Function not valid for modulo time axis'
+            GO TO 999
+         ENDIF
+      ENDIF
+      IF (arg_lo_ss(F_AXIS, ARG2) .NE. ef_unspecified_int4) THEN
+         dir = F_AXIS
+         IF ( modulo(T_AXIS) ) THEN
+            WRITE (err_msg, *) 'Function not valid for modulo F axis'
+            GO TO 999
+         ENDIF
+      ENDIF
 
       n1 = arg_lo_ss(F_AXIS,ARG1)
       DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
@@ -219,52 +206,50 @@
       m1 = arg_lo_ss(E_AXIS,ARG1)
       DO 500 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
 
+      l1 = arg_lo_ss(T_AXIS,ARG1)
+      DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
       k1 = arg_lo_ss(Z_AXIS,ARG1)
       DO 300 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
 
-         j1 = arg_lo_ss(Y_AXIS,ARG1)
-         DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
-
-            i1 = arg_lo_ss(X_AXIS,ARG1)
-            DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+      j1 = arg_lo_ss(Y_AXIS,ARG1)
+      DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
 
-               first = .TRUE.
+      i1 = arg_lo_ss(X_AXIS,ARG1)
+      DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
 
-               l1 = arg_lo_ss(T_AXIS,ARG1)
-               DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
-
-                  ddate = arg_1(i1,j1,k1,l1,m1,n1)
-                  IF ( ddate .NE. bad_flag(ARG1) ) THEN
+         ddate = arg_1(i1,j1,k1,l1,m1,n1)
+         IF ( ddate .NE. bad_flag(ARG1) ) THEN
 
 *     Get the date string corresponding to time ddate for the variable ARG2
-                     CALL EF_GET_AXIS_DATES(id, ARG2, ddate, 1, datebuf)
+            CALL EF_GET_AXIS_DATES(id, ARG2, ddate, dir, 1, datebuf)
 
-*                    datebuf is in form "DD-MON-YEAR HH:MM:SS". Read date.
-                     READ (datebuf, 420, err=900)  day_of_mon, cmon, iyear
+*     datebuf is in form "DD-MON-YEAR HH:MM:SS". Read date.
+            READ (datebuf, 420, err=900)  day_of_mon, cmon, iyear
  420                 FORMAT (i2, 1x, a3, 1x, i4) 
 
-                     CALL JULIAN_DAY_OF_YEAR1900(cmon, day_of_mon, iyear, 
+            CALL JULIAN_DAY_OF_YEAR1900(cmon, day_of_mon, iyear, 
      .                                           day_since_1900)
-                     result(i,j,k,l,m,n) = day_since_1900 
-
-                  ELSE
+            result(i,j,k,l,m,n) = day_since_1900 
 
-                     result(i,j,k,l,m,n) = bad_flag_result
+         ELSE
 
-                  ENDIF
+            result(i,j,k,l,m,n) = bad_flag_result
 
-                  l1 = l1 + arg_incr(T_AXIS,ARG1)
- 400           CONTINUE
+         ENDIF
 
-               i1 = i1 + arg_incr(X_AXIS,ARG1)
- 100        CONTINUE
+         i1 = i1 + arg_incr(X_AXIS,ARG1)
+ 100  CONTINUE
 
-            j1 = j1 + arg_incr(Y_AXIS,ARG1)
- 200     CONTINUE
+         j1 = j1 + arg_incr(Y_AXIS,ARG1)
+ 200  CONTINUE
 
          k1 = k1 + arg_incr(Z_AXIS,ARG1)
  300  CONTINUE
 
+         l1 = l1 + arg_incr(T_AXIS,ARG1)
+ 400  CONTINUE
+
          m1 = m1 + arg_incr(E_AXIS,ARG1)
  500  CONTINUE
 
diff --git a/fer/efi/tax_month.F b/fer/efi/tax_month.F
index f3ae201..c3261ff 100644
--- a/fer/efi/tax_month.F
+++ b/fer/efi/tax_month.F
@@ -1,10 +1,43 @@
 *
 * taxmonth.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. 
+*
 * Jing Y. Li 
 * May 4th 2006
 * 27-Feb-2013 ACM  Fix ticket 2043: remove old code for handling single-
 *                  precision values coming in from argument 1
+* v695  *acm 2/15  Time axis may be an F axis or a T axis.
 *
 * This function returns month specified by the first argument (variable 
 * containing time values) from the second argument (variable from which time 
@@ -145,7 +178,7 @@
 *
 * In this subroutine we compute the result
 *
-      SUBROUTINE tax_month_compute(id, arg_1, arg_2, result, taxdat)
+      SUBROUTINE tax_month_compute(id, arg_1, arg_2, result)
 
       IMPLICIT NONE
       INCLUDE 'EF_Util.cmn'
@@ -162,10 +195,6 @@
      .            memresloz:memreshiz, memreslot:memreshit,
      .            memresloe:memreshie, memreslof:memreshif)
 
-* Ignore the Y/Z/T/E/F dimensions in the work arrays since
-* they are not used and Fortran is column major
-      REAL*8 taxdat(wrk1lox:wrk1lox+(wrk1hix-wrk1lox)/2)
-
 * 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. 
@@ -187,10 +216,9 @@
       CHARACTER*20 datebuf
       INTEGER iyear, imon, day_of_mon, mm
       CHARACTER*3 cmon
-      INTEGER L2, LL
-      LOGICAL TM_FPEQ, first
+      INTEGER L2, LL, dir
       CHARACTER*255 err_msg
-      REAL*8 ddate, d1, d2
+      REAL*8 ddate
       INTEGER i, j, k, l, m, n
       INTEGER i1, j1, k1, l1, m1, n1
 
@@ -202,17 +230,23 @@
       DATA months/'JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', 'JUL',
      .            'AUG', 'SEP', 'OCT', 'NOV', 'DEC'/
 
-*  Check to see if time axis of arg 2 is modulo
-      CALL ef_get_axis_info_6d(id, ARG2, ax_name, ax_units,
-     .                         backward, modulo, regular)
-      tmodulo = modulo(T_AXIS)
-
       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)
 
-      CALL ef_get_coordinates(id, ARG2, T_AXIS,
-     .        arg_lo_ss(T_AXIS,ARG2), arg_hi_ss(T_AXIS,ARG2), taxdat)
+*  Check to see if time axis of arg 2 is modulo
+      CALL ef_get_axis_info_6d(id, ARG2, ax_name, ax_units,
+     .                         backward, modulo, regular)
+      
+* Get the direction of arg 2
+      IF (arg_lo_ss(T_AXIS, ARG2) .NE. ef_unspecified_int4) THEN
+         dir = T_AXIS
+         tmodulo = modulo(T_AXIS)
+      ENDIF
+      IF (arg_lo_ss(F_AXIS, ARG2) .NE. ef_unspecified_int4) THEN
+         dir = F_AXIS
+         tmodulo = modulo(F_AXIS)
+      ENDIF
 
       n1 = arg_lo_ss(F_AXIS,ARG1)
       DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
@@ -220,66 +254,65 @@
       m1 = arg_lo_ss(E_AXIS,ARG1)
       DO 500 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
 
+      l1 = arg_lo_ss(T_AXIS,ARG1)
+      DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
       k1 = arg_lo_ss(Z_AXIS,ARG1)
       DO 300 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
 
-         j1 = arg_lo_ss(Y_AXIS,ARG1)
-         DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
-
-            i1 = arg_lo_ss(X_AXIS,ARG1)
-            DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+      j1 = arg_lo_ss(Y_AXIS,ARG1)
+      DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
 
-               first = .TRUE.
+      i1 = arg_lo_ss(X_AXIS,ARG1)
+      DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
 
-               l1 = arg_lo_ss(T_AXIS,ARG1)
-               DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+         ddate = arg_1(i1,j1,k1,l1,m1,n1)
 
-                  ddate = arg_1(i1,j1,k1,l1,m1,n1)
-                  IF ( ddate .NE. bad_flag(ARG1) ) THEN
+         IF ( ddate .NE. bad_flag(ARG1) ) THEN
 
 *     Get the date string corresponding to time ddate for the variable ARG2
-                     CALL EF_GET_AXIS_DATES(id, ARG2, ddate, 1, datebuf)
-                  
-                     IF ( .NOT. tmodulo ) THEN
-*                       datebuf is in form "DD-MON-YEAR HH:MM:SS". Read date.
-                        READ (datebuf,420,err=900) day_of_mon, cmon, iyear
- 420                    FORMAT (i2, 1x, a3, 1x, i4) 
-                     ELSE
-*                       modulo: Datebuf is in form "DD-MON HH:MM:SS". Read date.
-                        READ (datebuf,430,err=900) day_of_mon, cmon
- 430                    FORMAT (i2, 1x, a3) 
-                     ENDIF
+            CALL EF_GET_AXIS_DATES(id, ARG2, ddate, dir, 1, datebuf)
 
-                     DO 440 imon = 1, 12
-                        IF ( cmon .EQ. months(imon) ) THEN
-                           result(i,j,k,l,m,n) = imon 
-                           GOTO 450
-                        ENDIF
- 440                 CONTINUE  
+            IF ( .NOT. tmodulo ) THEN
+*     datebuf is in form "DD-MON-YEAR HH:MM:SS". Read day.
+               READ (datebuf,120,err=900) day_of_mon, cmon, iyear
+  120                   FORMAT (i2, 1x, a3, 1x, i4) 
+            ELSE
+*     modulo: datebuf is in form "DD-MON HH:MM:SS". Read day.
+               READ (datebuf,130,err=900) day_of_mon, cmon
+  130          FORMAT (i2, 1x, a3) 
+            ENDIF
 
-*                    month not matched
-                     result(i,j,k,l,m,n) = bad_flag_result
+            DO 440 imon = 1, 12
+            IF ( cmon .EQ. months(imon) ) THEN
+               result(i,j,k,l,m,n) = imon 
+               GOTO 450
+               ENDIF
+ 440        CONTINUE  
 
- 450                 CONTINUE  
+*     month not matched
+            result(i,j,k,l,m,n) = bad_flag_result
 
-                  ELSE
+ 450        CONTINUE  
 
-                     result(i,j,k,l,m,n) = bad_flag_result
+         ELSE
 
-                  ENDIF
+            result(i,j,k,l,m,n) = bad_flag_result
 
-                  l1 = l1 + arg_incr(T_AXIS,ARG1)
- 400           CONTINUE
+         ENDIF
 
-               i1 = i1 + arg_incr(X_AXIS,ARG1)
- 100        CONTINUE
+         i1 = i1 + arg_incr(X_AXIS,ARG1)
+ 100  CONTINUE
 
-            j1 = j1 + arg_incr(Y_AXIS,ARG1)
- 200     CONTINUE
+         j1 = j1 + arg_incr(Y_AXIS,ARG1)
+ 200  CONTINUE
 
          k1 = k1 + arg_incr(Z_AXIS,ARG1)
  300  CONTINUE
 
+         l1 = l1 + arg_incr(T_AXIS,ARG1)
+ 400  CONTINUE
+
          m1 = m1 + arg_incr(E_AXIS,ARG1)
  500  CONTINUE
 
diff --git a/fer/efi/tax_subs.F b/fer/efi/tax_subs.F
index cd6871c..2498a88 100644
--- a/fer/efi/tax_subs.F
+++ b/fer/efi/tax_subs.F
@@ -262,3 +262,54 @@ C   Create a message saying arg1 values at index are duplicate
 
       RETURN
       END
+
+      
+
+      SUBROUTINE TAX_REFORMAT_DATE (indate, outdate, dlen)
+
+* From tm_date_reformat, just the portion that calls TM_BREAK_FMT_DATE_C
+
+*     If there is a T between the date and time (as in GRIB files) replace with a space.
+
+#include "gt_lib.parm"
+
+	CHARACTER*(*)   indate, outdate
+	INTEGER		dlen
+
+	CHARACTER*32 buff
+
+	INTEGER TM_BREAK_FMT_DATE_C, slen, year, month, day,
+     .          hour, minute, second, status, outform
+	PARAMETER ( slen = 32)
+
+	REAL fsecond
+#ifdef sun
+	BYTE       dhol(slen)     !c-type Hollerith string buffers
+#else
+	INTEGER*1  dhol(slen)     !c-type Hollerith string buffers
+#endif
+
+*     If there is a T between the date and time (as in GRIB files) replace with a space.
+        buff = indate
+	IF (buff(11:11) .EQ. 'T') buff(11:11) = ' '
+	IF (buff(11:11) .EQ. 'Z') buff(11:11) = ' '
+ 
+* Break up into year, month, day, ...
+	CALL TM_FTOC_STRNG( buff(:slen), dhol, slen)
+	status = TM_BREAK_FMT_DATE_C(dhol, year, month,
+     .                              day, hour, minute, fsecond)
+	IF ( status .NE. 0 ) GOTO 5100
+
+	second = NINT(fsecond)       ! information loss ...
+
+* and reassemble it into the desired output format
+	outform = pdate_vax 
+
+	CALL TM_MAKE_FMT_DATE ( outform, outdate, year, month, day,
+     .                         hour, minute, second, dlen )
+
+ 5000	RETURN
+ 5100	outdate = 'xxx'
+        dlen = 3
+	GOTO 5000
+	END
diff --git a/fer/efi/tax_times.F b/fer/efi/tax_times.F
index 84f2bdf..5b8c5f3 100644
--- a/fer/efi/tax_times.F
+++ b/fer/efi/tax_times.F
@@ -1,6 +1,38 @@
 *
 * tax_times.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. 
+*
 *
 * In this subroutine we provide information about
 * the function.  The user configurable information 
diff --git a/fer/efi/tax_tstep.F b/fer/efi/tax_tstep.F
index bbfe18a..6d27c6a 100644
--- a/fer/efi/tax_tstep.F
+++ b/fer/efi/tax_tstep.F
@@ -1,10 +1,43 @@
 *
 * tax_tsetp.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. 
+*
 * Jing Y. Li 
 * May 31 2006
 * Finished March 24, 2009, ACM
 * V68  *acm* 1/12  ifdef double_p for double-precision ferret.
+* v695  *acm 2/15  Time axis may be an F axis or a T axis.
 *
 * This function returns time step values
 *
@@ -69,7 +102,8 @@
       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 with reference time axis')
+      CALL ef_set_arg_desc(id, arg, 
+     .           'variable with reference time or forecast axis')
       CALL ef_set_axis_influence_6d(id, arg,
      .                              YES, YES, YES, YES, YES, YES)
 
@@ -121,10 +155,19 @@
 
       CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
 
-*  Allocate double the length of the axes for REAL*8 work array.
-      mtl = arg_lo_ss(T_AXIS,ARG1)
-      mth = mtl + 
-     .        2 * (arg_hi_ss(T_AXIS,ARG1) - arg_lo_ss(T_AXIS,ARG1) + 1)
+     
+* Get the direction of arg 1: F or T
+      IF (arg_lo_ss(T_AXIS, ARG1) .NE. ef_unspecified_int4) THEN
+         mtl = arg_lo_ss(T_AXIS,ARG1)
+         mth = mtl + 
+     .         (arg_hi_ss(T_AXIS,ARG1) - arg_lo_ss(T_AXIS,ARG1))
+      ENDIF
+      IF (arg_lo_ss(F_AXIS, ARG1) .NE. ef_unspecified_int4) THEN
+         mtl = arg_lo_ss(F_AXIS,ARG1)
+         mth = mtl + 
+     .         (arg_hi_ss(F_AXIS,ARG1) - arg_lo_ss(F_AXIS,ARG1))
+      ENDIF
+
 
 *  taxdat
       CALL ef_set_work_array_dims_6d(id, 1,
@@ -170,7 +213,7 @@
 
 * Ignore the Y/Z/T/E/F dimensions in the work arrays since
 * they are not used and Fortran is column major
-      REAL*8 taxdat(wrk1lox:wrk1lox+(wrk1hix-wrk1lox)/2)
+      REAL*8 taxdat(wrk1lox:wrk1hix)
 
 * After initialization, the 'res_' arrays contain indexing information 
 * for the result axes.  The 'arg_' arrays will contain the indexing 
@@ -193,21 +236,19 @@
       INTEGER STR_SAME
       CHARACTER*20 datebuf
       CHARACTER*20 instring, t0string
-      INTEGER slen
+      INTEGER slen, dir
       REAL*8 ddate
       CHARACTER*16 axname(6), axunits(6)
       LOGICAL bkw1(6), mod1(6), reg1(6)
       CHARACTER*16 tunit
       REAL timesincet0
       INTEGER i, j, k, l, m, n
-      INTEGER l1
+      INTEGER l1, 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)
-
-      CALL ef_get_coordinates(id, ARG1, T_AXIS,
-     .        arg_lo_ss(T_AXIS, ARG1), arg_hi_ss(T_AXIS, ARG1), taxdat)
+      
 
 *     Get the new time origin (t0) string
       i = arg_lo_ss(X_AXIS, ARG2)
@@ -229,39 +270,83 @@
          t0string = instring
       ENDIF
 
+
+* Get the direction of arg 1: F or T
+      IF (arg_lo_ss(T_AXIS, ARG1) .NE. ef_unspecified_int4) THEN
+         CALL ef_get_coordinates(id, ARG1, T_AXIS,
+     .        arg_lo_ss(T_AXIS, ARG1), arg_hi_ss(T_AXIS, ARG1), taxdat)
+         dir = T_AXIS
+      ENDIF
+        
+      IF (arg_lo_ss(F_AXIS, ARG1) .NE. ef_unspecified_int4) THEN
+         CALL ef_get_coordinates(id, ARG1, F_AXIS,
+     .        arg_lo_ss(F_AXIS, ARG1), arg_hi_ss(F_AXIS, ARG1), taxdat)
+         dir = F_AXIS
+      ENDIF
+
 *     Get time axis unit
       CALL ef_get_axis_info_6d(id, ARG1, axname, axunits,
      .                         bkw1, mod1, reg1)
-      tunit = axunits(T_AXIS)
-
-      l1 = arg_lo_ss(T_AXIS,ARG1)
-      DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
-
-*        Get the time axis value for this step
-         ddate = taxdat(l1)
-*        Get the date string corresponding to time ddate
-         CALL ef_get_axis_dates(id, ARG1, ddate, 1, datebuf)
-*        Convert to time from the new origin
-         CALL time_since_t0(t0string, datebuf, tunit, timesincet0)
-
-*        Assign this time from the new origin to the results
-         DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
-         DO 500 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
-         DO 300 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
-         DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
-         DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+      tunit = axunits(dir)
+
+      IF (dir .EQ. T_AXIS) THEN
+         l1 = arg_lo_ss(T_AXIS,ARG1)
+         DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
+*      Get the time axis value for this step
+            ddate = taxdat(l1)
+*      Get the date string corresponding to time ddate
+            CALL ef_get_axis_dates(id, ARG1, ddate, dir, 1, datebuf)
+*      Convert to time from the new origin
+            CALL time_since_t0(t0string, datebuf, tunit, timesincet0)
+
+*      Assign this time from the new origin to the results
+            DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+            DO 500 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+            DO 300 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+            DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+            DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
 
             result(i,j,k,l,m,n) = timesincet0
 
- 100     CONTINUE
- 200     CONTINUE
- 300     CONTINUE
- 500     CONTINUE
- 600     CONTINUE
-
-         l1 = l1 + arg_incr(T_AXIS,ARG1)
- 400  CONTINUE
-
+ 100        CONTINUE
+ 200        CONTINUE
+ 300        CONTINUE
+ 500        CONTINUE
+ 600        CONTINUE
+
+            l1 = l1 + arg_incr(T_AXIS,ARG1)
+ 400     CONTINUE
+
+      ELSE IF (dir .EQ. F_AXIS) THEN
+         n1 = arg_lo_ss(F_AXIS,ARG1)
+         DO 650 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+
+*      Get the F axis value for this step
+            ddate = taxdat(n1)
+*      Get the date string corresponding to time ddate
+            CALL ef_get_axis_dates(id, ARG1, ddate, dir, 1, datebuf)
+*      Convert to time from the new origin
+            CALL time_since_t0(t0string, datebuf, tunit, timesincet0)
+
+*      Assign this time from the new origin to the results
+            DO 550 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+            DO 450 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+            DO 350 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+            DO 250 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+            DO 150 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+
+               result(i,j,k,l,m,n) = timesincet0
+
+ 150        CONTINUE
+ 250        CONTINUE
+ 350        CONTINUE
+ 450        CONTINUE
+ 550        CONTINUE
+
+            n1 = n1 + arg_incr(F_AXIS,ARG1)
+ 650     CONTINUE
+      ENDIF
 *                                                                      ^
 *                                                                      |
 *                                            USER CONFIGURABLE PORTION |
diff --git a/fer/efi/tax_units.F b/fer/efi/tax_units.F
index 72b5257..376a92c 100644
--- a/fer/efi/tax_units.F
+++ b/fer/efi/tax_units.F
@@ -1,8 +1,41 @@
 *
 * tax_units.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. 
+*
 * Jing Y. Li 
 * May 4th 2006
+* v695  *acm 2/15  Time axis may be an F axis or a T axis.
 *
 * This function returns the time axis unit value in seconds.
 *
@@ -117,7 +150,7 @@
 *                                                                      |
 *                                                                      V
       INTEGER i, j, k, l, m, n
-      INTEGER iun
+      INTEGER iun, dir
       CHARACTER*16 axname(6), axunits(6)
       LOGICAL bkw1(6), mod1(6), reg1(6)
       CHARACTER*255 err_msg
@@ -126,6 +159,10 @@
       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)
 
+* Get the direction of arg 1
+      IF (arg_lo_ss(T_AXIS, ARG1) .NE. ef_unspecified_int4) dir = T_AXIS
+      IF (arg_lo_ss(F_AXIS, ARG1) .NE. ef_unspecified_int4) dir = F_AXIS
+
       i = res_lo_ss(X_AXIS)
       j = res_lo_ss(Y_AXIS)
       k = res_lo_ss(Z_AXIS)
@@ -136,18 +173,18 @@
 *     Get axis information
       CALL ef_get_axis_info_6d(id, ARG1, axname, axunits,
      .                         bkw1, mod1, reg1)
-      CALL LOWER_CASE(axunits(T_AXIS))
+      CALL LOWER_CASE(axunits(dir))
       DO 20 iun = pun_1st_time, pun_last_time 
-         IF ( (un_name(iun)      .EQ. axunits(T_AXIS))      .OR.
-     .        (un_name(iun)(1:2) .EQ. axunits(T_AXIS)(1:2)) .OR.
+         IF ( (un_name(iun)      .EQ. axunits(dir))      .OR.
+     .        (un_name(iun)(1:2) .EQ. axunits(dir)(1:2)) .OR.
      .        ( (un_name(iun)    .EQ. 'yr')   .AND.
-     .          (axunits(T_AXIS) .EQ. 'year')      )        ) THEN
+     .          (axunits(dir) .EQ. 'year')      )        ) THEN
             result(i,j,k,l,m,n) = un_convert(iun) 
             RETURN
          ENDIF
   20  CONTINUE
 
-      WRITE(err_msg,*) 'Unrecognized time axis unit ', axunits(T_AXIS)
+      WRITE(err_msg,*) 'Unrecognized time axis unit ', axunits(dir)
       CALL ef_bail_out (id, err_msg)
 
 *                                                                      ^
diff --git a/fer/efi/tax_year.F b/fer/efi/tax_year.F
index d59b605..58b461f 100644
--- a/fer/efi/tax_year.F
+++ b/fer/efi/tax_year.F
@@ -1,11 +1,43 @@
 *
 * tax_year.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. 
+*
 * Jing Y. Li 
 * May 4th 2006
 * 27-Feb-2013 ACM  Fix ticket 2043: remove old code for handling single-
 *                  precision values coming in from argument 1
-
+* v695  *acm 2/15  Time axis may be an F axis or a T axis.
 *
 * This function returns year specified by the first argument (variable 
 * containing time values) from the second argument (variable from which time 
@@ -67,7 +99,6 @@
      .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
      .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
       CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
-      CALL ef_set_num_work_arrays(id, 1)
 
       arg = 1
       CALL ef_set_arg_name(id, arg, 'A')
@@ -91,61 +122,10 @@
       RETURN 
       END
 
-
-*
-* In this subroutine we request an amount of storage to be supplied
-* by Ferret and passed as an additional argument.
-*
-      SUBROUTINE tax_year_work_size(id)
-
-      IMPLICIT NONE
-      INCLUDE 'EF_Util.cmn'
-
-      INTEGER id
-
-* **********************************************************************
-*                                            USER CONFIGURABLE PORTION |
-*                                                                      |
-*                                                                      V
-
-*
-* Set the work array X/Y/Z/T/E/F dimensions
-*
-* ef_set_work_array_dims_6d(id, array #,
-*                           xlo, ylo, zlo, tlo, elo, flo,
-*                           xhi, yhi, zhi, thi, ehi, fhi)
-*
-
-      INTEGER arg_lo_ss(6,EF_MAX_ARGS),
-     .        arg_hi_ss(6,EF_MAX_ARGS),
-     .        arg_incr (6,EF_MAX_ARGS)
-      INTEGER array_num, nt1, nt2
-
-      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
-
-*  Allocate double the length of the T axis of ARG2 for REAL*8 work array.
-      nt1 = arg_lo_ss(T_AXIS,ARG2)
-      nt2 = nt1 + 
-     .        2 * (arg_hi_ss(T_AXIS,ARG2) - arg_lo_ss(T_AXIS,ARG2) + 1)
-
-      array_num = 1
-      CALL ef_set_work_array_dims_6d(id, array_num,
-     .                              nt1, 1, 1, 1, 1, 1,
-     .                              nt2, 1, 1, 1, 1, 1)
-
-*                                                                      ^
-*                                                                      |
-*                                            USER CONFIGURABLE PORTION |
-* **********************************************************************
-
-      RETURN 
-      END
-
-
 *
 * In this subroutine we compute the result
 *
-      SUBROUTINE tax_year_compute(id, arg_1, arg_2, result, taxdat)
+      SUBROUTINE tax_year_compute(id, arg_1, arg_2, result)
 
       IMPLICIT NONE
       INCLUDE 'EF_Util.cmn'
@@ -187,81 +167,91 @@
       CHARACTER*20 datebuf
       INTEGER iyear, day_of_mon
       CHARACTER*3 cmon
-      INTEGER L2, LL
-      LOGICAL TM_FPEQ, first
+      INTEGER L2, LL, dir
       CHARACTER*255 err_msg
-      REAL*8 ddate, d1, d2
+      REAL*8 ddate
       INTEGER i, j, k, l, m, n
       INTEGER i1, j1, k1, l1, m1, n1
 
 *  variables for checking axis characteristics (modulo axes)
       CHARACTER ax_name(6)*16, ax_units(6)*16
       LOGICAL backward(6), modulo(6), regular(6)
+      
+
+      CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
+      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+      CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
 
 *  Check to see if time axis of arg 2 is modulo
       CALL ef_get_axis_info_6d(id, ARG2, ax_name, ax_units,
      .                         backward, modulo, regular)
-      IF ( modulo(T_AXIS) ) THEN
-         WRITE (err_msg, *) 'Function not valid for modulo time axis'
-         GO TO 999
-      ENDIF
 
+* Get the direction of arg 2
+      IF (arg_lo_ss(T_AXIS, ARG2) .NE. ef_unspecified_int4) THEN
+         dir = T_AXIS
+         IF ( modulo(T_AXIS) ) THEN
+            WRITE (err_msg, *) 'Function not valid for modulo time axis'
+            GO TO 999
+         ENDIF
+      ENDIF
+      IF (arg_lo_ss(F_AXIS, ARG2) .NE. ef_unspecified_int4) THEN
+         dir = F_AXIS
+         IF ( modulo(T_AXIS) ) THEN
+            WRITE (err_msg, *) 'Function not valid for modulo F axis'
+            GO TO 999
+         ENDIF
+      ENDIF
       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)
 
-      CALL ef_get_coordinates(id, ARG2, T_AXIS,
-     .        arg_lo_ss(T_AXIS,ARG2), arg_hi_ss(T_AXIS,ARG2), taxdat)
-
       n1 = arg_lo_ss(F_AXIS,ARG1)
       DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
 
       m1 = arg_lo_ss(E_AXIS,ARG1)
       DO 500 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
 
+      l1 = arg_lo_ss(T_AXIS,ARG1)
+      DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
       k1 = arg_lo_ss(Z_AXIS,ARG1)
       DO 300 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
 
-         j1 = arg_lo_ss(Y_AXIS,ARG1)
-         DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
-
-            i1 = arg_lo_ss(X_AXIS,ARG1)
-            DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+      j1 = arg_lo_ss(Y_AXIS,ARG1)
+      DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
 
-               first = .TRUE.
+      i1 = arg_lo_ss(X_AXIS,ARG1)
+      DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
 
-               l1 = arg_lo_ss(T_AXIS,ARG1)
-               DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
-
-                  ddate = arg_1(i1,j1,k1,l1,m1,n1)
-                  IF ( ddate .NE. bad_flag(ARG1) ) THEN
+         ddate = arg_1(i1,j1,k1,l1,m1,n1)
+         IF ( ddate .NE. bad_flag(ARG1) ) THEN
 
 *     Get the date string corresponding to time ddate for the variable ARG2
-                     CALL EF_GET_AXIS_DATES(id, ARG2, ddate, 1, datebuf)
-
-*                    datebuf is in form "DD-MON-YEAR HH:MM:SS". Read date.
-                     READ (datebuf,420,err=900) day_of_mon, cmon, iyear
- 420                 FORMAT (i2, 1x, a3, 1x, i4) 
-                     result(i,j,k,l,m,n) = iyear
+            CALL EF_GET_AXIS_DATES(id, ARG2, ddate, dir, 1, datebuf)
 
-                  ELSE
+*     datebuf is in form "DD-MON-YEAR HH:MM:SS". Read date.
+            READ (datebuf,420,err=900) day_of_mon, cmon, iyear
+ 420        FORMAT (i2, 1x, a3, 1x, i4) 
+            result(i,j,k,l,m,n) = iyear
 
-                     result(i,j,k,l,m,n) = bad_flag_result
+         ELSE
 
-                  ENDIF
+            result(i,j,k,l,m,n) = bad_flag_result
 
-                  l1 = l1 + arg_incr(T_AXIS,ARG1)
- 400           CONTINUE
+         ENDIF
 
-               i1 = i1 + arg_incr(X_AXIS,ARG1)
- 100        CONTINUE
+         i1 = i1 + arg_incr(X_AXIS,ARG1)
+ 100  CONTINUE
 
-            j1 = j1 + arg_incr(Y_AXIS,ARG1)
- 200     CONTINUE
+         j1 = j1 + arg_incr(Y_AXIS,ARG1)
+ 200  CONTINUE
 
          k1 = k1 + arg_incr(Z_AXIS,ARG1)
  300  CONTINUE
 
+         l1 = l1 + arg_incr(T_AXIS,ARG1)
+ 400  CONTINUE
+
          m1 = m1 + arg_incr(E_AXIS,ARG1)
  500  CONTINUE
 
diff --git a/fer/efi/tax_yearfrac.F b/fer/efi/tax_yearfrac.F
index 096b1b7..8aee864 100644
--- a/fer/efi/tax_yearfrac.F
+++ b/fer/efi/tax_yearfrac.F
@@ -1,10 +1,44 @@
 *
 * tax_yearfrac.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. 
+*
+*
 * Jing Y. Li 
 * May 4th 2006
 * 27-Feb-2013 ACM  Fix ticket 2043: remove old code for handling single-
 *                  precision values coming in from argument 1
+* v695  *acm 2/15  Time axis may be an F axis or a T axis.
 *
 * This function returns fraction of year specified by the first argument 
 * (variable containing time values) from the second argument (variable from 
@@ -67,7 +101,6 @@
      .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
      .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
       CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
-      CALL ef_set_num_work_arrays(id, 1)
 
       arg = 1
       CALL ef_set_arg_name(id, arg, 'A')
@@ -91,61 +124,10 @@
       RETURN 
       END
 
-
-*
-* In this subroutine we request an amount of storage to be supplied
-* by Ferret and passed as an additional argument.
-*
-      SUBROUTINE tax_yearfrac_work_size(id)
-
-      IMPLICIT NONE
-      INCLUDE 'EF_Util.cmn'
-
-      INTEGER id
-
-* **********************************************************************
-*                                            USER CONFIGURABLE PORTION |
-*                                                                      |
-*                                                                      V
-
-*
-* Set the work array X/Y/Z/T/E/F dimensions
-*
-* ef_set_work_array_dims_6d(id, array #,
-*                           xlo, ylo, zlo, tlo, elo, flo,
-*                           xhi, yhi, zhi, thi, ehi, fhi)
-*
-
-      INTEGER arg_lo_ss(6,EF_MAX_ARGS),
-     .        arg_hi_ss(6,EF_MAX_ARGS),
-     .        arg_incr (6,EF_MAX_ARGS)
-      INTEGER array_num, nt1, nt2
-
-      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
-
-*  Allocate double the length of the T axis of ARG2 for REAL*8 work array.
-      nt1 = arg_lo_ss(T_AXIS,ARG2)
-      nt2 = nt1 + 
-     .        2 * (arg_hi_ss(T_AXIS,ARG2) - arg_lo_ss(T_AXIS,ARG2) + 1)
-
-      array_num = 1
-      CALL ef_set_work_array_dims_6d(id, array_num,
-     .                              nt1, 1, 1, 1, 1, 1,
-     .                              nt2, 1, 1, 1, 1, 1)
-
-*                                                                      ^
-*                                                                      |
-*                                            USER CONFIGURABLE PORTION |
-* **********************************************************************
-
-      RETURN 
-      END
-
-
 *
 * In this subroutine we compute the result
 *
-      SUBROUTINE tax_yearfrac_compute(id, arg_1, arg_2, result, taxdat) 
+      SUBROUTINE tax_yearfrac_compute(id, arg_1, arg_2, result) 
 
       IMPLICIT NONE
       INCLUDE 'EF_Util.cmn'
@@ -162,10 +144,6 @@
      .            memresloz:memreshiz, memreslot:memreshit,
      .            memresloe:memreshie, memreslof:memreshif)
 
-* Ignore the Y/Z/T/E/F dimensions in the work arrays since
-* they are not used and Fortran is column major
-      REAL*8 taxdat(wrk1lox:wrk1lox+(wrk1hix-wrk1lox)/2)
-
 * 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. 
@@ -187,10 +165,9 @@
       CHARACTER*20 datebuf
       INTEGER iyear, day_of_mon, day_of_year, days_this_year
       CHARACTER*3 cmon
-      INTEGER L2, LL
-      LOGICAL TM_FPEQ, first
+      INTEGER L2, LL, dir
       CHARACTER*255 err_msg
-      REAL*8 ddate, d1, d2
+      REAL*8 ddate, hr, min, sec, dayfrac
       INTEGER i, j, k, l, m, n
       INTEGER i1, j1, k1, l1, m1, n1
 
@@ -198,17 +175,24 @@
       CHARACTER ax_name(6)*16, ax_units(6)*16
       LOGICAL backward(6), modulo(6), regular(6), tmodulo
 
-*  Check to see if time axis of arg 2 is modulo
-      CALL ef_get_axis_info_6d(id, ARG2, ax_name, ax_units,
-     .                         backward, modulo, regular)
-      tmodulo = modulo(T_AXIS)
-
       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)
 
-      CALL ef_get_coordinates(id, ARG2, T_AXIS,
-     .        arg_lo_ss(T_AXIS,ARG2), arg_hi_ss(T_AXIS,ARG2), taxdat)
+*  Check to see if time axis of arg 2 is modulo
+      CALL ef_get_axis_info_6d(id, ARG2, ax_name, ax_units,
+     .                         backward, modulo, regular)
+      
+* Get the direction of arg 2
+      IF (arg_lo_ss(T_AXIS, ARG2) .NE. ef_unspecified_int4) THEN
+         dir = T_AXIS
+         tmodulo = modulo(T_AXIS)
+      ENDIF
+      IF (arg_lo_ss(F_AXIS, ARG2) .NE. ef_unspecified_int4) THEN
+         dir = F_AXIS
+         tmodulo = modulo(F_AXIS)
+      ENDIF
+
 
       n1 = arg_lo_ss(F_AXIS,ARG1)
       DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
@@ -216,60 +200,61 @@
       m1 = arg_lo_ss(E_AXIS,ARG1)
       DO 500 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
 
+      l1 = arg_lo_ss(T_AXIS,ARG1)
+      DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
       k1 = arg_lo_ss(Z_AXIS,ARG1)
       DO 300 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
 
-         j1 = arg_lo_ss(Y_AXIS,ARG1)
-         DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
-
-            i1 = arg_lo_ss(X_AXIS,ARG1)
-            DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+      j1 = arg_lo_ss(Y_AXIS,ARG1)
+      DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
 
-               first = .TRUE.
+      i1 = arg_lo_ss(X_AXIS,ARG1)
+      DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
 
-               l1 = arg_lo_ss(T_AXIS,ARG1)
-               DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+         ddate = arg_1(i1,j1,k1,l1,m1,n1)
 
-                  ddate = arg_1(i1,j1,k1,l1,m1,n1)
-                  IF ( ddate .NE. bad_flag(ARG1) ) THEN
+         IF ( ddate .NE. bad_flag(ARG1) ) THEN
 
 *     Get the date string corresponding to time ddate for the variable ARG2
-                     CALL EF_GET_AXIS_DATES(id, ARG2, ddate, 1, datebuf)
-                  
-                     IF ( .NOT. tmodulo ) THEN
-*                       datebuf is in form "DD-MON-YEAR HH:MM:SS". Read date.
-                        READ (datebuf,420,err=900) day_of_mon, cmon, iyear
- 420                    FORMAT (i2, 1x, a3, 1x, i4) 
-                     ELSE
-*                       modulo: Datebuf is in form "DD-MON HH:MM:SS". Read date.
-                        READ (datebuf,430,err=900) day_of_mon, cmon
- 430                    FORMAT (i2, 1x, a3) 
-                        iyear = 1901  ! nominally non-leap year 
-                     ENDIF
+            CALL EF_GET_AXIS_DATES(id, ARG2, ddate, dir, 1, datebuf)
 
-                     CALL JULIAN_DAY_OF_YEAR(cmon, day_of_mon, iyear,
-     .                                  day_of_year, days_this_year)
-                     result(i,j,k,l,m,n) = REAL(day_of_year) /
-     .                                     REAL(days_this_year) 
+            IF ( .NOT. tmodulo ) THEN
+*     datebuf is in form "DD-MON-YEAR HH:MM:SS". Read date.
+               READ (datebuf,420,err=900) day_of_mon, cmon, iyear,
+     .              hr, min, sec
+ 420           FORMAT (i2, 1x, a3, 1x, i4, 3(1x,f2.0)) 
+            ELSE
+*     modulo: Datebuf is in form "DD-MON HH:MM:SS". Read date.
+               READ (datebuf,430,err=900) day_of_mon, cmon,
+     .              hr, min, sec
+ 430           FORMAT (i2, 1x, a3, 3(1x,f2.0)) 
+               iyear = 1901  ! nominally non-leap year 
+            ENDIF
 
-                  ELSE
+            CALL JULIAN_DAY_OF_YEAR(cmon, day_of_mon, iyear,
+     .                              day_of_year, days_this_year)
+            dayfrac = (hr + min/60 + sec/3600)/24.
+            result(i,j,k,l,m,n) = (REAL(day_of_year) + dayfrac) / REAL(days_this_year) 
 
-                     result(i,j,k,l,m,n) = bad_flag_result
+            ELSE
 
-                  ENDIF 
+            result(i,j,k,l,m,n) = bad_flag_result
 
-                  l1 = l1 + arg_incr(T_AXIS,ARG1)
- 400           CONTINUE
+            ENDIF 
 
-               i1 = i1 + arg_incr(X_AXIS,ARG1)
- 100        CONTINUE
+         i1 = i1 + arg_incr(X_AXIS,ARG1)
+ 100  CONTINUE
 
-            j1 = j1 + arg_incr(Y_AXIS,ARG1)
- 200     CONTINUE
+         j1 = j1 + arg_incr(Y_AXIS,ARG1)
+ 200  CONTINUE
 
          k1 = k1 + arg_incr(Z_AXIS,ARG1)
  300  CONTINUE
 
+         l1 = l1 + arg_incr(T_AXIS,ARG1)
+ 400  CONTINUE
+
          m1 = m1 + arg_incr(E_AXIS,ARG1)
  500  CONTINUE
 
diff --git a/fer/efi/tax_units.F b/fer/efi/time_reformat.F
similarity index 55%
copy from fer/efi/tax_units.F
copy to fer/efi/time_reformat.F
index 72b5257..28586f7 100644
--- a/fer/efi/tax_units.F
+++ b/fer/efi/time_reformat.F
@@ -1,12 +1,10 @@
 *
-* tax_units.F
+* time_reformat.F
 *
-* Jing Y. Li 
-* May 4th 2006
+* Jan 2015
 *
-* This function returns the time axis unit value in seconds.
-*
-
+* Given a time string, translate it to a Ferret-formatted string
+*   dd-Mon-YYYY hh:mm:ss
 *
 * In this subroutine we provide information about
 * the function.  The user configurable information 
@@ -17,7 +15,7 @@
 * num_args           Required number of arguments
 *
 * axis_inheritance   Type of axis for the result
-*                       ( CUSTOM, IMPLIED_BY_ARGS, NORMAL, ABSTRACT )
+*                       ( CUSTOM, IMPLIED_BY_ARGS, NORMAL, time_reformat )
 *                       CUSTOM          - user defined axis
 *                       IMPLIED_BY_ARGS - same axis as the incoming argument
 *                       NORMAL          - the result is normal to this axis
@@ -26,26 +24,10 @@
 * 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 
-*
-* 2006-05-11 It only works with the unit naming convention in xunits_data.F
 
-      SUBROUTINE tax_units_init(id)
 
-      IMPLICIT NONE
+      SUBROUTINE time_reformat_init(id)
+
       INCLUDE 'EF_Util.cmn'
 
       INTEGER id, arg
@@ -56,20 +38,24 @@
 *                                                                      V
 
       CALL ef_set_desc(id,
-     .     'Returns units of time axis coordinate values, in seconds')
+     . 'Returns date string(s) reformatted to Ferret time-string format' )
+
       CALL ef_set_num_args(id, 1)
-      CALL ef_set_axis_inheritance_6d(id,
-     .                                NORMAL, NORMAL,
-     .                                NORMAL, NORMAL,
-     .                                NORMAL, NORMAL)
-      CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
+      CALL ef_set_axis_inheritance_6d(id, 
+     .     IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+     .     IMPLIED_BY_ARGS, IMPLIED_BY_ARGS, 
+     .     IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
+      CALL ef_set_result_type(id, STRING_RETURN)
 
       arg = 1
+      CALL ef_set_arg_type (id, arg, STRING_ARG)
+
       CALL ef_set_arg_name(id, arg, 'A')
       CALL ef_set_arg_unit(id, arg, ' ')
-      CALL ef_set_arg_desc(id, arg, 'variable with reference time axis')
-      CALL ef_set_axis_influence_6d(id, arg,
-     .                              NO, NO, NO, NO, NO, NO)
+
+      CALL ef_set_arg_desc(id, arg, 
+     . 'Time string(s) to convert, e.g. 1992-04-23 12:30:01')
+      CALL ef_set_axis_influence_6d(id, arg, YES, YES, YES, YES, YES, YES)
 
 *                                                                      ^
 *                                                                      |
@@ -79,19 +65,16 @@
       RETURN 
       END
 
-*
 * In this subroutine we compute the result
 *
-      SUBROUTINE tax_units_compute(id, arg_1, result)
+      SUBROUTINE time_reformat_compute(id, arg_1, result)
 
-      IMPLICIT NONE
       INCLUDE 'EF_Util.cmn'
       INCLUDE 'EF_mem_subsc.cmn'
-      INCLUDE 'xunits.cmn_text'
-      EXTERNAL xunits_data
 
       INTEGER id
 
+      REAL bad_flag(EF_MAX_ARGS), bad_flag_result
       REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz, 
      .           mem1lot:mem1hit, mem1loe:mem1hie, mem1lof:mem1hif)
 
@@ -101,7 +84,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),
@@ -110,50 +93,81 @@
      .        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 iun
-      CHARACTER*16 axname(6), axunits(6)
-      LOGICAL bkw1(6), mod1(6), reg1(6)
-      CHARACTER*255 err_msg
+      INTEGER i1, j1, k1, l1, m1, n1
+
+      INTEGER rtype, slen, status
+      CHARACTER*20 indate, outdate
+      CHARACTER*128 err_msg
+      INTEGER cal_id
 
       CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
+      CALL ef_get_result_type(id, rtype)
+
       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)
-      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)
-
-*     Get axis information
-      CALL ef_get_axis_info_6d(id, ARG1, axname, axunits,
-     .                         bkw1, mod1, reg1)
-      CALL LOWER_CASE(axunits(T_AXIS))
-      DO 20 iun = pun_1st_time, pun_last_time 
-         IF ( (un_name(iun)      .EQ. axunits(T_AXIS))      .OR.
-     .        (un_name(iun)(1:2) .EQ. axunits(T_AXIS)(1:2)) .OR.
-     .        ( (un_name(iun)    .EQ. 'yr')   .AND.
-     .          (axunits(T_AXIS) .EQ. 'year')      )        ) THEN
-            result(i,j,k,l,m,n) = un_convert(iun) 
-            RETURN
-         ENDIF
-  20  CONTINUE
-
-      WRITE(err_msg,*) 'Unrecognized time axis unit ', axunits(T_AXIS)
-      CALL ef_bail_out (id, err_msg)
+      i1 = arg_lo_ss(X_AXIS,ARG1)
+      DO 600 i=res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+
+         j1 = arg_lo_ss(Y_AXIS,ARG1)
+         DO 500 j=res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+
+            k1 = arg_lo_ss(Z_AXIS,ARG1)
+            DO 400 k=res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+
+               l1 = arg_lo_ss(T_AXIS,ARG1)
+               DO 300 l=res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
+               m1 = arg_lo_ss(E_AXIS,ARG1)
+               DO 200 m=res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+
+               n1 = arg_lo_ss(F_AXIS,ARG1)
+               DO 100 n=res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+
+C   Reformat the date string and put into the result.
 
+                  CALL ef_get_string_arg_element_6d(id, ARG1, arg_1,
+     .                i1,j1,k1,l1,m1,n1,slen,indate)
+
+                 CALL TAX_REFORMAT_DATE (indate, outdate, status)
+		 IF (outdate(1:3) .EQ. 'xxx') GOTO 5000
+
+                 slen = 20
+                 CALL EF_PUT_STRING (outdate, slen,
+     .                    result(i,j,k,l,m,n))
+
+                  n1 = n1 + arg_incr(F_AXIS,ARG1)
+ 100           CONTINUE
+                 
+                  m1 = m1 + arg_incr(E_AXIS,ARG1)
+ 200           CONTINUE
+                 
+                  l1 = l1 + arg_incr(T_AXIS,ARG1)
+ 300           CONTINUE
+
+               k1 = k1 + arg_incr(Z_AXIS,ARG1)
+ 400        CONTINUE
+
+            j1 = j1 + arg_incr(Y_AXIS,ARG1)
+ 500     CONTINUE
+
+         i1 = i1 + arg_incr(X_AXIS,ARG1)
+ 600  CONTINUE
+     
 *                                                                      ^
 *                                                                      |
 *                                            USER CONFIGURABLE PORTION |
 * **********************************************************************
 
-      RETURN
+      RETURN 
+ 5000 err_msg = 'Could not translate string to Ferret date format '// indate
+      CALL ef_bail_out (id, err_msg)
+
       END
diff --git a/fer/efi/write_webrow_gwt.F b/fer/efi/write_webrow_gwt.F
new file mode 100644
index 0000000..89383d8
--- /dev/null
+++ b/fer/efi/write_webrow_gwt.F
@@ -0,0 +1,272 @@
+*
+* write_webrow_gwt.F
+*
+* Ansley Manke
+* April 2009
+*
+* This function writes a special webrowset file for LAS
+*
+*
+* 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 write_webrow_gwt_init(id)
+
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id, arg
+      CHARACTER*100 descrip
+
+
+* **********************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+*                                                                      V
+
+      WRITE (descrip, 100)
+      CALL ef_set_desc(id, descrip)
+  100 FORMAT (
+     . 'Write a webrowset file with cruise numbers and IDs (used by LAS)')
+
+      CALL ef_set_num_args(id, 4)
+      CALL ef_set_axis_inheritance(id,  ABSTRACT,
+     .     NORMAL, NORMAL, NORMAL)
+      CALL ef_set_piecemeal_ok(id, NO, NO, NO, NO)
+
+      arg = 1
+      CALL ef_set_arg_name(id, arg, 'id')
+      CALL ef_set_arg_unit(id, arg, ' ')
+      CALL ef_set_arg_type (id, arg, STRING_ARG)
+      CALL ef_set_arg_desc(id, arg, 'Cruise IDs (string)')
+      CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+      arg = 2
+      CALL ef_set_arg_name(id, arg, 'name')
+      CALL ef_set_arg_unit(id, arg, ' ')
+      CALL ef_set_arg_type (id, arg, STRING_ARG)
+      CALL ef_set_arg_desc(id, arg, 'Cruise name (string)')
+      CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+      arg = 3
+      CALL ef_set_arg_name(id, arg, 'Cruise_Mask')
+      CALL ef_set_arg_unit(id, arg, ' ')
+      CALL ef_set_arg_desc(id, arg, 'Mask =1 at start of each cruise')
+      CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+      
+      arg = 4
+      CALL ef_set_arg_name(id, arg, 'filename')
+      CALL ef_set_arg_unit(id, arg, ' ')
+      CALL ef_set_arg_type (id, arg, STRING_ARG)
+      CALL ef_set_arg_desc(id, arg, 'Filename to write')
+*                                                                      ^
+*                                                                      |
+*                                            USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+      RETURN 
+      END
+
+
+
+      SUBROUTINE write_webrow_gwt_result_limits(id)
+
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id
+      INTEGER arg_lo_ss(4,1:EF_MAX_ARGS), arg_hi_ss(4,1:EF_MAX_ARGS),
+     .     arg_incr(4,1:EF_MAX_ARGS)
+
+* **********************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+*                                                                      V
+
+      INTEGER nx
+
+      nx = 1
+      call ef_set_axis_limits(id, X_AXIS, 1, nx)
+
+*                                                                      ^
+*                                                                      |
+*                                            USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+      RETURN 
+      END
+
+*
+* In this subroutine we compute the result
+*
+      SUBROUTINE write_webrow_gwt_compute(id, arg_1, arg_2, arg_3, arg_4, result)
+
+      INCLUDE 'EF_Util.cmn'
+      INCLUDE 'EF_mem_subsc.cmn'
+
+      INTEGER id, arg
+
+      REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+      REAL arg_1(2,mem1lox:mem1hix, mem1loy:mem1hiy, 
+     .           mem1loz:mem1hiz, mem1lot:mem1hit)
+      REAL arg_2(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,1:EF_MAX_ARGS), arg_hi_ss(4,1:EF_MAX_ARGS),
+     .     arg_incr(4,1:EF_MAX_ARGS)
+
+* **********************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+*                                                                      V
+
+      INTEGER i,j,k,l
+      INTEGER slen, blen, iunit, icruise, nd
+      INTEGER i1,j1,k1,l1, i2,j2,k2,l2
+      CHARACTER*512 fname
+      CHARACTER*100 errtxt
+      CHARACTER*512 buff, buff_cname
+
+      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)
+
+C  Get file name
+
+      arg = 4
+      CALL ef_get_arg_string(id, arg, fname)
+
+      iunit = 19
+
+       OPEN( UNIT        = iunit,
+     .       FILE        = fname,
+     .       FORM        = 'FORMATTED',
+     .       ACCESS      = 'SEQUENTIAL',
+     .       STATUS      = 'REPLACE',
+     .       ERR         = 5010 )
+
+* Write webrowset header.
+
+      buff = "<?xml version='1.0'?>"
+      slen = 21
+      WRITE (iunit, 1000) buff(1:slen)
+ 1000 FORMAT(A)
+      buff = "<webRowSet>"
+      slen = 99
+      WRITE (iunit, 1000) buff(1:slen)
+
+      WRITE (iunit, *) '<data>'
+
+* Write cruise ids and numbers to the webrowset file...
+
+      j1 = arg_lo_ss(Y_AXIS,ARG1)
+      k1 = arg_lo_ss(Z_AXIS,ARG1)
+      l1 = arg_lo_ss(T_AXIS,ARG1)
+      i = res_lo_ss(X_AXIS)
+
+* If the cruise_name is different from the cruise_id,
+* write the cruise_name in parentheses after the ID.
+
+      icruise = 0
+      DO 100 i1 = arg_lo_ss(X_AXIS,ARG1), arg_hi_ss(X_AXIS,ARG1)
+         IF (arg_3(i1,j1,k1,l1) .NE. bad_flag(ARG3)) THEN
+            icruise = icruise + 1 
+	    IF (icruise .LT. 10) 
+     .	       WRITE (iunit, 1010) icruise
+	    IF (icruise .GE. 10 .AND. icruise .LT. 100) 
+     .	       WRITE (iunit, 1012) icruise
+	    IF (icruise .GE. 100) 
+     .	        WRITE (iunit, 1014) icruise
+	    IF (icruise .GE. 1000) 
+     .	        WRITE (iunit, 1015) icruise
+
+            CALL EF_GET_STRING_ARG_ELEMENT(id, ARG1, arg_1,
+     .                          i1,j1,k1,l1, slen, buff)
+            CALL EF_GET_STRING_ARG_ELEMENT(id, ARG2, arg_2,
+     .                          i1,j1,k1,l1, blen, buff_cname)
+            IF (slen .EQ. blen) THEN
+	       IF (buff(:slen) .EQ. buff_cname(:slen)) blen = 0
+	    ENDIF
+            IF (blen .GT. 0) THEN
+	       buff(slen+1:slen+2) = ' ('
+	       slen = slen + 2
+	       buff(slen+1:slen+blen) = buff_cname(:blen)
+	       slen = slen + blen
+	       buff(slen+1:slen+1) = ')'
+	       slen = slen + 1
+	    ENDIF
+
+            WRITE (iunit, 1020) buff(1:slen)
+	 ENDIF
+ 100  CONTINUE
+
+1010  FORMAT('<currentRow>'/'<columnValue>'/I1/'</columnValue>')
+1012  FORMAT('<currentRow>'/'<columnValue>'/I2/'</columnValue>')
+1014  FORMAT('<currentRow>'/'<columnValue>'/I3/'</columnValue>')
+1015  FORMAT('<currentRow>'/'<columnValue>'/I4/'</columnValue>')
+1020  FORMAT('<columnValue>'/A/'</columnValue>'/'</currentRow>')
+
+* Write closing tag.
+      WRITE (iunit, 1030) 
+1030  FORMAT ('</data>'/'</webRowSet>')
+
+      CLOSE (iunit, ERR = 5020 )
+      i = res_lo_ss(X_AXIS)
+      j = res_lo_ss(Y_AXIS)
+      k = res_lo_ss(Y_AXIS)
+      l = res_lo_ss(Y_AXIS)
+      result(i,j,k,l) = 1.
+
+      RETURN 
+
+5010  CONTINUE
+      WRITE(errtxt,*) 'Error opening file ', fname
+      CALL EF_BAIL_OUT(id, errtxt)
+      RETURN
+5020  CONTINUE
+      WRITE(errtxt,*) 'Error closing file ', fname
+      CALL EF_BAIL_OUT(id, errtxt)
+      RETURN
+
+      END
diff --git a/fer/fmt/SOURCE_FILES b/fer/fmt/SOURCE_FILES
index fd7ca42..1596193 100644
--- a/fer/fmt/SOURCE_FILES
+++ b/fer/fmt/SOURCE_FILES
@@ -2,6 +2,7 @@ SRCS_F = \
 alg_regrid_trans_titl.F\
 alg_trans_titl.F\
 ascii_limits.F\
+aux_var_units.F\
 ax_title.F\
 clean_coord_string.F\
 compound_title.F\
diff --git a/fer/fmt/ascii_limits.F b/fer/fmt/ascii_limits.F
index fc57119..e32205d 100644
--- a/fer/fmt/ascii_limits.F
+++ b/fer/fmt/ascii_limits.F
@@ -57,6 +57,7 @@
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 *       *acm* 4/12 6D Ferret: time axis may be in t or f direction.
 * 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 
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -79,7 +80,8 @@
      .			grid, cal_id, len_cal
 	CHARACTER	ALG_TRANS_TITL*20, LOHI_WORLD*44, LEFINT*4, 
      .			TM_FMT*10, TM_GET_CAL*32, TM_GET_F_CAL*32,
-     .			trans_title*40, cal_name*32
+     .			VAR_CODE*128,
+     .			trans_title*128, cal_name*32
 	REAL		trans_arg
 
 * initialize
@@ -121,6 +123,22 @@
 	   ENDIF
 	   string = string(1:slen)//' ('//trans_title(:len_trans)//')'	
 	   slen = MIN( max_len, slen+len_trans+3 )
+	ELSEIF (cx_aux_stat(idim,cx) .EQ. paux_stat_false_1pt_regrid) THEN
+* ... add "averaged using DEPTH" or "interpolated using DEPTH"
+	   IF     (cx_regrid_trans(idim, cx) .EQ. pauxrgrd_linear ) THEN
+	      trans_title = 'interpolated using'
+	   ELSEIF (cx_regrid_trans(idim, cx) .EQ. pauxrgrd_pwlave ) THEN
+	      trans_title = 'pc wise lin avgd using'
+	   ELSE
+	      trans_title = '??crptn??'
+	   ENDIF	 
+	   len_trans = TM_LENSTR( trans_title )
+*      append name of auxiliary variable
+	   trans_title(len_trans+2:) = VAR_CODE(cx_aux_cat(idim,cx),
+     .				                cx_aux_var(idim,cx)  )
+	   len_trans = TM_LENSTR( trans_title )
+	   string = string(1:slen)//' ('//trans_title(:len_trans)//')'	
+	   slen = MIN( max_len, slen+len_trans+3 )
 	ENDIF
 
 * calendar name requiring comment ?
diff --git a/fer/ctx/get_context_bad_flag.F b/fer/fmt/aux_var_units.F
similarity index 62%
copy from fer/ctx/get_context_bad_flag.F
copy to fer/fmt/aux_var_units.F
index 3ae952a..5aac023 100644
--- a/fer/ctx/get_context_bad_flag.F
+++ b/fer/fmt/aux_var_units.F
@@ -1,4 +1,4 @@
-	SUBROUTINE GET_CONTEXT_BAD_FLAG ( cx )
+	CHARACTER*(*) FUNCTION AUX_VAR_UNITS( cx, idim )
 
 *
 *
@@ -35,47 +35,71 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* insert bad data flag into context for variable
+* return units text string for an auxiliary variable
 
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
 * written for VAX computer under VMS operating system
 *
-* revision 0.0 - 4/1/87
-
-* 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+ *sh* 5/15 - derived from var_units.F
 
 	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	'xcontext.cmn'
-	include	'xpyvar_info.cmn'
+	include	'xcalc_vars.cmn'
 	include	'xvariables.cmn'
 
-	INTEGER cx
+* calling argument declarations
+	INTEGER	cx, idim
+
+* 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 )
 
-	IF     ( cx_category( cx ) .EQ. cat_file_var .OR.
-     .           cx_category( cx ) .EQ. cat_aggregate_var ) THEN
+	ELSEIF ( category .EQ. cat_calc_var ) THEN
 
-	   cx_bad_data( cx ) = ds_bad_flag( cx_variable( cx ) )
+	   AUX_VAR_UNITS = unit_text( cvar_unit_code(variable) )
 
-        ELSEIF ( cx_category(cx) .EQ. cat_pystat_var ) THEN
+	ELSEIF ( category .EQ. cat_user_var ) THEN
 
-           cx_bad_data( cx ) = pyvar_missing_flag( cx_variable( cx ) )
+	   AUX_VAR_UNITS = uvar_units( variable )
 
-	ELSEIF     ( cx_category( cx ) .EQ. cat_user_var ) THEN
+	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
 
-	   cx_bad_data( cx ) = uvar_bad_data( cx_variable( cx ) )
+	   AUX_VAR_UNITS = ' '
 
 	ELSE
 
-	   cx_bad_data( cx ) = bad_val4
+	   AUX_VAR_UNITS = 'unit_err'
 
 	ENDIF
 
-	RETURN
+ 5000	RETURN
 	END
diff --git a/fer/fmt/ax_title.F b/fer/fmt/ax_title.F
index d9d7830..f1add64 100644
--- a/fer/fmt/ax_title.F
+++ b/fer/fmt/ax_title.F
@@ -45,6 +45,7 @@
 *		(kludge: use "m" for meters instead of exact unit string.
 *			This because of "METERS" in the old grid files around.)
 *       *acm* 3/12 cleanup ifdefs and unnecessary include files
+* V695+ *sh* 3/15 - generate axis titles for TIME LAG axes in FMRC variables
 
 	include 'tmap_dims.parm'
 	include 'xtm_grid.cmn_text'
@@ -58,6 +59,7 @@
 	LOGICAL	GEOG_LABEL
 
 * internal variable declarations:
+        LOGICAL ITS_FMRC
 	INTEGER	TM_LENSTR1, i, line, ulen
 	CHARACTER*16 unit_name
 
@@ -69,7 +71,7 @@
 	IF ( GEOG_LABEL( idim, grid ) ) THEN
 	   AX_TITLE = axis_title( idim )
 	   len = axis_title_len( idim )
-! special options for vertical axes - 12/19/94
+* special formatting for vertical axes - 12/19/94
 	   IF ( idim .EQ. z_dim ) THEN
 	      IF ( line_unit_code(line) .EQ. pun_millibars 
      .        .OR. line_direction( line ) .EQ. 'DU'     ) THEN
@@ -86,6 +88,21 @@
 	      len = len + 3 + ulen
 	   ENDIF	      
 
+        ELSEIF ( ITS_FMRC(grid)
+     .   .AND. (idim.EQ.t_dim .OR. idim.EQ.f_dim)) THEN 
+* HACK: special formatting for FMRC T-F plane data 3/15
+           IF (idim .EQ. t_dim ) THEN
+              AX_TITLE = 'MODEL ELAPSED TIME'
+              len = 18
+           ELSE
+              AX_TITLE = 'FORECAST LEAD TIME'
+              len = 18
+           ENDIF
+           unit_name = line_units(line)
+           ulen = TM_LENSTR1( unit_name )
+           AX_TITLE = AX_TITLE(:len)//' ('//unit_name(:ulen)//')'
+           len = len + 3 + ulen
+
 	ELSE
 	   AX_TITLE = ww_dim_name( idim )
 	   len = 1
diff --git a/fer/fmt/var_title.F b/fer/fmt/var_title.F
index 9c9b0f9..a7b7447 100644
--- a/fer/fmt/var_title.F
+++ b/fer/fmt/var_title.F
@@ -100,7 +100,8 @@
 	cat = cx_category( cx )
 
 	IF     ( cat .EQ. cat_file_var .OR. 
-     .		 cat .EQ. cat_aggregate_var) THEN
+     .		 cat .EQ. cat_agg_e_var .OR. 
+     .		 cat .EQ. cat_agg_f_var) THEN
 
 	   IF ( ds_var_title( var )(1:1) .NE. ' ' ) THEN
 	      var_title = ds_var_title( var )
diff --git a/fer/fmt/var_title_mod.F b/fer/fmt/var_title_mod.F
index 9162cc0..8963967 100644
--- a/fer/fmt/var_title_mod.F
+++ b/fer/fmt/var_title_mod.F
@@ -67,6 +67,8 @@
 *       *acm* 3/12 cleanup ifdefs and unnecessary include files
 *       *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
 *       *acm* 4/12 6D Ferret: time axis may be in t or f direction. 
+* V690 *sh* suppress comment about regridding for 1pt 'false regridding'
+*       used on  curvilinear variables.  It will be documented in ASCII_LIMITS.
 
 	include	'tmap_dims.parm'
 	include	'xdset_info.cmn_text'
@@ -84,7 +86,7 @@
 	INTEGER cx
 
 * internal variable declarations
-	LOGICAL	add_on, all_q, vcalc 
+	LOGICAL	add_on, all_q, vcalc, false_regrid
 	INTEGER	TM_LENSTR, TM_LENSTR1, CX_DIM_LEN,
      .		var, categ, dset, cairt, cairt_dset,
      .		mlen, t_len, maxlen, idim, trans, slen, k_lo
@@ -278,7 +280,14 @@
  100	CONTINUE
 
 * re-gridded ?
-	IF ( cx_unstand_grid(cx) ) THEN
+*    ... check for 'false 1pt regrid'
+	false_regrid = .FALSE.
+	DO idim = 1, nferdims
+	   IF (cx_aux_stat(idim,cx) .EQ. paux_stat_false_1pt_regrid)
+     .		false_regrid = .TRUE.
+	ENDDO
+	IF (   cx_unstand_grid(cx)
+     .	 .AND. .NOT.false_regrid ) THEN
 	   IF ( add_on ) THEN
 	      var_title_mod = var_title_mod(:mlen) //' - '
 	      mlen = MIN( maxlen, mlen + 3 )
diff --git a/fer/fmt/var_units.F b/fer/fmt/var_units.F
index 3b79c3f..8994228 100644
--- a/fer/fmt/var_units.F
+++ b/fer/fmt/var_units.F
@@ -82,7 +82,8 @@
 
 * select units by category of variable
 	IF     ( category .EQ. cat_file_var .OR. 
-     .		 category .EQ. cat_aggregate_var) THEN
+     .		 category .EQ. cat_agg_e_var .OR. 
+     .		 category .EQ. cat_agg_f_var) THEN
 
 	   VAR_UNITS = ds_var_units( variable )
 
diff --git a/fer/gnl/SOURCE_FILES b/fer/gnl/SOURCE_FILES
index 4a0bcf4..26ce775 100644
--- a/fer/gnl/SOURCE_FILES
+++ b/fer/gnl/SOURCE_FILES
@@ -103,6 +103,7 @@ show_line.F\
 show_line_xml.F\
 show_line_coords.F\
 show_mem_vars.F\
+show_pytext_group.F\
 show_region.F\
 show_regrid_transforms.F\
 show_transforms.F\
diff --git a/fer/gnl/all_1_arg.F b/fer/gnl/all_1_arg.F
index 254c833..aba0efd 100644
--- a/fer/gnl/all_1_arg.F
+++ b/fer/gnl/all_1_arg.F
@@ -47,6 +47,8 @@
 
 * V300: 4/22/93
 *       *acm* 3/12 cleanup ifdefs and unnecessary include files
+* V694 2/2015 *sh* - handle _DQ_ like double quote
+*      *acm*  2/15 Prevent run-time errors in string length for _DQ_ handling
 
 * calling argument declarations:
 
@@ -73,6 +75,19 @@
 	      IF ( cmnd_buff(i:i) .EQ. '"' ) arg_end(1) = i
 	   ENDIF
 
+* (2/15) kind of pathological cases, but what the heck ...
+* protect against lost _DQ_ from start of:  message _DQ_hello_DQ_ _DQ_world_DQ_
+	   i = arg_start(1) - 4
+	   IF (i .GE. 4) THEN
+	      IF ( cmnd_buff(i:i+3) .EQ. '_DQ_' ) arg_start(1) = i
+	   ENDIF
+
+* protect against lost _DQ_ from end
+	   i = arg_end(1) + 4
+	   IF ( i .LE. len_cmnd ) THEN
+	      IF ( cmnd_buff(i-3:i) .EQ. '_DQ_' ) arg_end(1) = i
+	   ENDIF
+
 	   num_args = 1
 
 	ENDIF
diff --git a/fer/gnl/atom_pos.F b/fer/gnl/atom_pos.F
index 00d568d..c3f76f9 100644
--- a/fer/gnl/atom_pos.F
+++ b/fer/gnl/atom_pos.F
@@ -45,6 +45,8 @@
 * revision 0.0 - 10/23/86
 * revision 0.1 - 3/23/88  - bypass embedded quotated strings during search
 *       *acm* 3/12 cleanup ifdefs and unnecessary include files
+* 2/15 *sh* add support for _DQ_
+*	    now ATOM_POS cannot be used to search for "_" unless modified
 
 	include 'ferret.parm'
 
@@ -53,7 +55,7 @@
 	CHARACTER*1	atom
 
 * internal variable declarations:
-	INTEGER		pos, slen
+	INTEGER		pos, slen, i
 
 * initialize
 	slen = LEN( string )
@@ -71,6 +73,23 @@
 	   ATOM_POS = atom_illegal_pos
 	   RETURN
 
+* _DQ_ -quotated string ?
+	ELSEIF ( string(pos:pos) .EQ. '_' 
+     .	  .AND. pos+3 .LE. slen      ) THEN
+	   IF ( string(pos:pos+3) .EQ. '_DQ_' ) THEN
+	      DO i = pos+4, slen-3
+	         IF ( string(i:i+3) .EQ. '_DQ_' ) THEN
+	            pos = i + 3
+	            GOTO 200
+	         ENDIF
+	      ENDDO
+	   ELSE
+	      GOTO 200  ! as-is this routine cannot be used to search for "_"
+	   ENDIF
+* ... unclosed quotation mark - flag it as a syntax error
+	   ATOM_POS = atom_illegal_pos
+	   RETURN
+
 * found it ?
 	ELSEIF ( string(pos:pos) .EQ. atom ) THEN
 	   IF ( pos .EQ. slen ) THEN
diff --git a/fer/gnl/cancel_data_set.F b/fer/gnl/cancel_data_set.F
index 861f6e7..d4e9523 100644
--- a/fer/gnl/cancel_data_set.F
+++ b/fer/gnl/cancel_data_set.F
@@ -99,9 +99,22 @@
 	      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 )
 
@@ -118,7 +131,8 @@
 * 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' .AND. ens_line.GT.0) THEN
+	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)
@@ -148,15 +162,16 @@
 * Cancel the ensemble axis
 	IF ( ens_line .NE. 0) CALL DELETE_ONE_LINE (ens_line, status)
 
-* Was the original dataset to close a member of an aggregation?  If so cancel 
+* 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') THEN
+	   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
diff --git a/fer/gnl/cdf_list.F b/fer/gnl/cdf_list.F
index 48631ac..934079d 100644
--- a/fer/gnl/cdf_list.F
+++ b/fer/gnl/cdf_list.F
@@ -1,7 +1,7 @@
 	SUBROUTINE CDF_LIST ( memory, fname, append, crecdim, nvars,
      .			      mr_list, cx_list, title, enhead, mode,
      .			      clobber, edges_flag, do_bounds, 
-     .			      keepax_flag, out_type, status )
+     .			      keepax_flag, out_type, quiet, status )
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -124,6 +124,9 @@
 *                 user-defined variable.	
 * V687 3/14 *acm* Fix ticket 1750. Write Ferret-internal axis names to cdf files, unless
 *                 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
 
 #include "netcdf.inc"
         include 'tmap_errors.parm'
@@ -144,7 +147,7 @@
         include 'netcdf4_settings.cmn'
 
 * calling argument declarations:
-        LOGICAL         append, enhead, clobber
+        LOGICAL         append, enhead, clobber, quiet
 	INTEGER		nvars, mr_list(nvars), cx_list(nvars), mode,
      .			edges_flag, keepax_flag, do_bounds, status
 	REAL		memory( mem_blk_size, max_mem_blks )
@@ -152,10 +155,10 @@
         CHARACTER*1     crecdim
 
 * internal variable declarations:
-        LOGICAL         TM_LEGAL_NAME, MATCH_NAME,
+        LOGICAL         TM_LEGAL_NAME, MATCH_NAME, TM_HAS_STRING,
      .			itsa_uvar, need_doc, new, formatted, flushed,
      .			itsa_string, output_units, output_title,
-     .                  output_history, get_ds
+     .                  output_history, get_ds, its_nc
 	INTEGER		TM_LENSTR1, ISUBSCR_CX, GET_MAX_C_STRING_LEN,
      .			MGRID_SIZE, STR_SAME, 
      .			cx, mr, dset, grid, cdfid, ivar, nready,
@@ -239,7 +242,7 @@
 	 flushed = .FALSE. ! on error, whether OK variables were written
 	 final_status = ferr_ok  ! innocent unless proven guilty
 	 DODS_cache = mode .EQ. pcdf_mode_cache
-         do_warn = .TRUE.
+         do_warn = .NOT.quiet
 	 got_missing = .FALSE.
 	 got_fill = .FALSE.
 
@@ -288,8 +291,8 @@
 	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')
+          IF (ds_type(dset).EQ.'CDF' .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
@@ -308,7 +311,8 @@
               IF (dset .GE. 1) THEN
                  IF (ds_type(dset) .EQ. 'CDF' .OR. 
      .               ds_type(dset) .EQ. ' MC' .OR. 
-     .               ds_type(dset) .EQ. 'ENS')
+     .               ds_type(dset) .EQ. 'ENS' .OR. 
+     .               ds_type(dset) .EQ. 'FCT')
      .          CALL CDF_LIST_GLOBAL_ATTS (dset, cdfid, status)
               ENDIF
               dset_last = dset
@@ -333,7 +337,7 @@
 * unless the user has requested otherwise.
 
            itsa_uvar = cat .EQ. cat_user_var
-           IF (itsa_uvar .OR. dset .EQ. pdset_irrelevant) dset = -1
+           IF (itsa_uvar .OR. dset .EQ. pdset_irrelevant) dset = pdset_uvars
            CALL CD_GET_VAR_ID (dset, varcode, varid, status)
 
            vartype = 0
@@ -344,7 +348,7 @@
      .            vdims, nvatts, coordvar, all_outflag, status)
               varcode = varname
               IF (mode_upcase_output) CALL STR_UPCASE( varcode, varname)
-              IF (dset .EQ. -1) THEN  !for user vars type not known in attrib structure
+              IF (dset .EQ. pdset_uvars) THEN  !for user vars type not known in attrib structure
                  vartype = 6  ! netcdf nf_double
                  IF (itsa_string) vartype = 2
               ENDIF
@@ -490,7 +494,7 @@
      .	          make_lo(t_dim) .NE. unspecified_int4 .AND.
      .	          make_lo(idim) .NE. unspecified_int4) THEN
                  crecdim = 'N'
-		 IF (.NOT.already_warned) CALL WARN (
+		 IF (.NOT.already_warned .AND. do_warn) CALL WARN (
      .	          'Saving E or F axis with time axis uses /RIGID in time')
                  already_warned = .TRUE.
 	      ENDIF
@@ -524,23 +528,26 @@
 	   ELSEIF  (cx_type(cx) .EQ. ptype_int1) THEN
 	      type = nf_byte
 	   ELSE
-	      CALL WARN('Internal err: unknown data type')
+	      CALL WARN('Internal err: unknown data type, using FLOAT')
 	      type = nf_float
 	   ENDIF
            IF (type .NE. 0 .AND. varid .GT. 0) type = outtype
-           IF (dset .EQ. -1) type = outtype
+           IF (dset .EQ. pdset_uvars) type = outtype
            IF (type .EQ. 0) outtype = vartype
 
 * create the variable and its grid (coordinate output gets deferred)
 
 * If this is a user var the axes are based on the defining dset (if any).
            dset_num = dset
-           IF (dset.EQ.-1 .AND. cx_data_set( cx ).GT.0)
+           IF (dset.EQ.pdset_uvars .AND. cx_data_set( cx ).GT.0)
      .        dset_num = cx_data_set( cx )  
 
-           IF (type .EQ. NF_CHAR) THEN
+* When its a netCDF/OPeNDAP file variable use the max string length from the originating dataset.
+           buff2 = " "
+           IF (type .EQ. NF_CHAR .AND. dset .GE. 1) THEN
 	     buff2 = ""
-             IF (dset_num .GE. 1 .AND.(.NOT.itsa_uvar)) THEN
+	     its_nc = ( .NOT. TM_HAS_STRING(ds_type(dset),'EZ') )
+             IF (dset_num.GE.1 .AND.(.NOT.itsa_uvar) .AND.its_nc) THEN
                 CALL CD_GET_DS_DIMS (dset_num, vdims(1), buff2, len, status)
                 IF (maxstrlen .LE. len) maxstrlen = len
              ENDIF
@@ -647,7 +654,7 @@
      .                (dset, varid, attname, do_warn, varcode, attlen, 
      .                attoutflag, miss_in)
      
-		    IF (dset .EQ. -1) THEN
+		    IF (dset .EQ. pdset_uvars) THEN
 		       r_scale = 1./scalefac
 		       r_off = -1.*addoff* r_scale
 		       miss_in = miss_in* r_scale + r_off
@@ -688,7 +695,7 @@
                        IF (attype .NE. outtype .AND. istat .EQ. ferr_ok)  THEN
                           alen = TM_LENSTR1(typnam(attype))
                           slen = TM_LENSTR1(typnam(outtype))
-                          IF (dset .GT. 0) CALL WARN (
+                          IF (dset .GT. 0 .AND. do_warn) CALL WARN (
      .                      'Converting data type of missing_value '//
      .                       typnam(attype)(1:alen)//
      .                      ' to match output type of variable '//
@@ -705,7 +712,7 @@
                           IF (status .NE. ferr_ok) GOTO 5400
 			  got_missing = .TRUE.
 
-			  IF (dset .EQ. -1) THEN 
+			  IF (dset .EQ. pdset_uvars) THEN 
 		             CALL CD_WRITE_ATTVAL_DP(
      .                       cdfid, varcode, '_FillValue', dvals, attlen, 
      .                       attype, status )
@@ -784,7 +791,7 @@
      .                     attlen .GT. 100) THEN
                           attlen = 100
                           alen = TM_LENSTR1(aname)
-                          CALL WARN 
+                          IF (do_warn) CALL WARN 
      .                ('writing only first 100 elements of attribute'//
      .                  aname(1:alen))
                        ENDIF
@@ -950,7 +957,7 @@
               ENDIF
 
 * data set of origin
-              IF ( dset .NE. pdset_irrelevant .AND. dset.NE.-1) THEN
+              IF ( dset .NE. pdset_irrelevant .AND. dset.NE.pdset_uvars) THEN
        
 * ..... unless the user has created a history attribute, or asked that writing
 *       it be turned off. See if there is a history attribute.
@@ -1019,7 +1026,7 @@
                  IF ( status .NE. merr_ok ) GOTO 5800
 
               ELSEIF ( cx_data_set(cx) .NE. pdset_irrelevant .AND.
-     .                 cx_data_set(cx) .NE. -1) THEN
+     .                 cx_data_set(cx) .NE. pdset_uvars) THEN
 
 * Write history attribute containing the data set of origin for user variable, 
 * if the user has not created a history attribute for the variable.
@@ -1134,7 +1141,7 @@
            itsa_uvar = cat .EQ. cat_user_var
            CALL CD_GET_VAR_ID (dset, varcode, varid, status)  ! is it in the linked-list for dset
            IF (status .NE. ferr_ok .AND. itsa_uvar ) THEN
-              dset = -1    ! is it a user var based on a var in dset
+              dset = pdset_uvars    ! is it a user var based on a var in dset
               CALL CD_GET_VAR_ID (dset, varcode, varid, status) 
            ENDIF
 
@@ -1167,8 +1174,8 @@
 
            CALL CD_WRITE_VAR ( memory, cdfid, dset_num, varcode, grid, 
      .                        write_lo, write_hi, memory(1,mr_blk1(mr)), 
-     .                        edges_flag, do_bounds, scalefac, addoff, 
-     .                        bad, mode_upcase_output, keepax_flag, status )
+     .                        edges_flag, do_bounds, mode_upcase_output, 
+     .                        keepax_flag, status )
            IF ( status .NE. merr_ok ) GOTO 5800
  500	CONTINUE
 
diff --git a/fer/gnl/cdf_list_global_atts.F b/fer/gnl/cdf_list_global_atts.F
index 3911248..85009d2 100644
--- a/fer/gnl/cdf_list_global_atts.F
+++ b/fer/gnl/cdf_list_global_atts.F
@@ -56,9 +56,9 @@
      .          bufflen
 	REAL	vals(100)
         CHARACTER*128 varname, attname, aname
-        CHARACTER*2048 buff
+        CHARACTER*10240 buff
 
-        bufflen = 2048
+        bufflen = 10240
         varid = 0
         do_warn = .TRUE.
 
@@ -81,7 +81,7 @@
      .                  attype, attlen, attoutflag, status )
 
               IF (attoutflag .EQ. 0) GOTO 80
-              IF (attlen .GT. 100 .AND. attype .NE. ptype_char) 
+              IF (attlen .GT. 100 .AND. attype .NE. NCCHAR) 
      .            attlen = 100
               got_it = NC_GET_ATTRIB ( dset, varid, aname, do_warn, 
      .           varname, bufflen, attlen, attoutflag, buff, vals)
diff --git a/fer/gnl/check_member_sets.F b/fer/gnl/check_member_sets.F
index f3dcba9..a4f6cc7 100644
--- a/fer/gnl/check_member_sets.F
+++ b/fer/gnl/check_member_sets.F
@@ -37,6 +37,9 @@
 *
 * 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*  5/15 removed block of code from here to INIT_AGGREGATE_DSET
+*                  notably, the call to GET_AXIS_SPEED
 
         include 'tmap_errors.parm'
 #include "tmap_dset.parm"
@@ -104,7 +107,7 @@
 	      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')	GOTO 5200
+	      IF (ds_type(dset).EQ.'ENS' .OR. ds_type(dset).EQ.'FCT') GOTO 5200
 	      GOTO 750
 	   ENDIF
 
@@ -118,17 +121,6 @@
            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
 
-* interpret special parameters in the descriptor
-	      CALL GET_DSET_PARMS( dset, status )
-	      IF ( status .NE. ferr_ok ) GOTO 5300
-
-* determine relative access speeds along each axis
-	      CALL GET_AXIS_SPEED( dset )
-
-* build completed ( with time axis ) grids for computable variables
-	      CALL MAKE_CVAR_GRIDS( dset, status )
-	      IF ( status .NE. ferr_ok ) GOTO 5300
-
 	   ENDIF
 
  750	   CONTINUE
diff --git a/fer/gnl/create_agg_axis.F b/fer/gnl/create_agg_axis.F
index 7f5b5c9..7086a28 100644
--- a/fer/gnl/create_agg_axis.F
+++ b/fer/gnl/create_agg_axis.F
@@ -32,8 +32,11 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-* Define an axis for the aggregation direction (Ensemble, for now). If more
-* than one ensemble axis is defined, make the names unique.
+* Define an axis for the aggregation direction (Ensemble or Forecast). If more
+* than one aggregation axis is defined, TM_NEW_LINE_NAME makes a unique name.
+
+* original: *acm*
+* V695+ *sh* 5/15 - set up calendar axis attributes from 1st member dset
 
       IMPLICIT NONE
         include 'tmap_errors.parm'
@@ -52,18 +55,25 @@
 
 * local variable declarations:
 	INTEGER ALLO_MANAGED_AXIS
-	CHARACTER*64 ename
+	CHARACTER*64 newname
 
-* create the ensemble axis
+* create the ensemble or forecast axis
 
 	status = ALLO_MANAGED_AXIS (iline )
 	IF ( status .NE. ferr_ok ) GOTO 5000
 
 * save the line in memory - but don't catalog its name
-	CALL TM_NEW_LINE_NAME ( 'ENSEMBLE', ename )
+	IF (line_dir .EQ. e_dim) THEN
+	   CALL TM_NEW_LINE_NAME ( 'ENSEMBLE', newname )
+	   line_direction( iline ) = 'EE'
+	ENDIF
+	IF (line_dir .EQ. f_dim) THEN
+	   CALL TM_NEW_LINE_NAME ( 'RUN', newname )
+	   line_direction( iline ) = 'FI'
+	ENDIF
 
-	line_name     ( iline ) = ename
-	line_name_orig( iline ) = ename
+	line_name     ( iline ) = newname
+	line_name_orig( iline ) = newname
 	line_start    ( iline ) = 1.0D0
 	line_delta    ( iline ) = 1.0D0
 	line_dim      ( iline ) = len
@@ -94,7 +104,7 @@
 	   line_name     ( iline ) = 'FORECAST'
 	ENDIF
 	line_name_orig( iline ) = line_name ( iline )
-	
+
  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 2de0c90..6990d8a 100644
--- a/fer/gnl/create_agg_dset.F
+++ b/fer/gnl/create_agg_dset.F
@@ -1,4 +1,4 @@
-	SUBROUTINE CREATE_AGG_DSET (agg_dset, dname, dtitle, 
+	SUBROUTINE CREATE_AGG_DSET (agg_dset, dname, dtitle,
      .               nsets, agg_dim, iline, status)
 *
 *  This software was developed by the Thermal Modeling and Analysis
@@ -38,6 +38,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'
 
       IMPLICIT NONE
         include 'tmap_errors.parm'
@@ -68,6 +69,7 @@
 
 * Set the dataset type and title (can add other directions)
 	IF (agg_dim .EQ. e_dim ) ds_type(agg_dset) = 'ENS'
+	IF (agg_dim .EQ. f_dim ) ds_type(agg_dset) = 'FCT'
 
 	ds_name(agg_dset) = dname
 	ds_des_name(agg_dset) = dname
diff --git a/fer/gnl/define_aggregate_grid.F b/fer/gnl/define_aggregate_grid.F
index 06e0fc6..1ca4797 100644
--- a/fer/gnl/define_aggregate_grid.F
+++ b/fer/gnl/define_aggregate_grid.F
@@ -1,5 +1,5 @@
-	SUBROUTINE DEFINE_AGGREGATE_GRID (agg_dset, nvars, vname,
-     .      fvar, iline, grid, agg_dim, member_sets, nsets)
+	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
@@ -33,13 +33,14 @@
 *  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.
+* 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'
@@ -59,20 +60,25 @@
 	include 'netcdf.inc'
 
 * calling argument declarations:
-	INTEGER agg_dset, nvars, fvar, iline, grid,
+	INTEGER agg_dset, nvars, fvar, iline, tf_lag_t, grid,
      .		agg_dim, member_sets(*), nsets
-	CHARACTER*(*) vname
+	CHARACTER*(*) vname, tcoordname
 
 * local variable declarations:
-	LOGICAL	its_dynamic, itsa_uvar
-	INTEGER STR_SAME,
-     .		big_cx, igrid, idim, gnum, nv, type, 
-     .		ii, iset, slen, vtype, status
+	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
 
-* Just for testing, get info back from the attribute-handling structure
-	CHARACTER varname*128, name*128
-	INTEGER vartype, nvdims, vdims(8), nvatts, all_outflag, varid
-	LOGICAL coordvar
+* 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
 
@@ -86,19 +92,22 @@
          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. 5) grid_name(igrid) = 'GEN'
-           IF (agg_dim .EQ. 6) grid_name(igrid) = 'GFN'
-           CALL TM_NEW_GRID_NAME( grid_name(igrid), name )
-           grid_name(igrid) = name
+         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
+	 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
@@ -108,10 +117,10 @@
      .         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)  = varname
+     .       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_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.
@@ -119,14 +128,17 @@
 	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_ordering(agg_dim,nv) = agg_dim
-	   ds_grid_start(agg_dim,nv) = 1
-	   ds_grid_end(agg_dim,nv) = nsets
+	   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
 
@@ -140,9 +152,45 @@
 	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
+* 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)
@@ -150,20 +198,224 @@
 	      IF ( (ds_var_setnum(nv) .EQ. iset) .AND. 
      .             (STR_SAME(ds_var_code(nv), vname) .EQ. 0) ) THEN
 	         igrid = ds_grid_number(nv)
-		 vtype = 1 ! file var
+		 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 = 3 ! user var
+		 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/dollar_arg.F b/fer/gnl/dollar_arg.F
index 9effc97..fb6e883 100644
--- a/fer/gnl/dollar_arg.F
+++ b/fer/gnl/dollar_arg.F
@@ -46,16 +46,16 @@
 * 2/03 *kob* - g77 port - g77 won't allow intrinsic functions in PARAMETER
 *                         statements.  use an octal constant instead
 * 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 ...
-
+*              IF (karg.LE.0 .OR. karg.GE.100) should be IF(karg.LT.0 ...
+* V693+ *sh 2/15 - added support for _DQ_-enclosedquotations
 
 * calling argument declarations:
 	INTEGER	  lenarg, status
 	CHARACTER carg*2, goline*(*), arg*(*)
 
 * internal variable declarations:
-	LOGICAL quote, found_comma, bslash
-	INTEGER	TM_LENSTR1,lengo, iarg, goptr, start, end, karg,
+	LOGICAL quote, DQ_quote, found_comma, bslash, its_quote, its_DQ
+	INTEGER	TM_LENSTR1,lengo, iarg, goptr, start, iend, karg,
      .		open_paren, open_brkt
 	CHARACTER c1*1
 
@@ -94,7 +94,7 @@
 	      c1 = goline(start:start)
 	      IF ( c1 .EQ. ',' ) THEN
 	         IF ( found_comma ) THEN
-	            end = start-1
+	            iend = start-1
 	            goptr = start    ! (start-1 hangs on double comma)
 	            GOTO 500
 	         ENDIF
@@ -111,24 +111,33 @@
 * locate the end of the argument
 * ignore commas inside of parentheses to protect "/LEV=(lo,hi,delta)"
 * 10/95 ignore commas inside of sqr brackets to protect "VAR[x=1,y=2]"
- 110	   quote = .FALSE.
-	   bslash = .FALSE.
+ 110	   quote    = .FALSE.
+	   DQ_quote = .FALSE.
+	   bslash   = .FALSE.
 	   open_paren = 0
 	   open_brkt  = 0
 	   DO 200 goptr = start, lengo
 	      c1 = goline(goptr:goptr)
+	      its_quote = c1 .EQ. '"'
+	      IF (c1 .EQ. '_' .AND. goptr+3.LE.lengo) THEN
+	         its_DQ = goline(goptr:goptr+3) .EQ. "_DQ_"
+	      ELSE
+	         its_DQ = .FALSE.
+	      ENDIF
 	      IF (bslash) THEN
 	         GOTO 190	! bypass looking at this character
 #ifdef NO_DOUBLE_ESCAPE_SLASH
-              ELSEIF (c1 .EQ. '\' ) THEN
+              ELSEIF (c1 .EQ. '\' ) THEN  ! ' char for emacs
 #else
               ELSEIF (c1 .EQ. '\\') THEN
 #endif
 	         bslash=.TRUE.  ! bypass looking at next character
 	         GOTO 200
-	      ELSEIF ( c1 .EQ. '"' ) THEN
+	      ELSEIF ( its_quote .AND. .NOT.DQ_quote ) THEN
 	         quote = .NOT.quote
-	      ELSEIF ( quote ) THEN
+	      ELSEIF ( its_DQ    .AND. .NOT.quote ) THEN
+	         DQ_quote = .NOT.DQ_quote
+	      ELSEIF ( quote .OR. DQ_quote ) THEN
 	         CONTINUE           ! skip over quoted text
 	      ELSEIF ( c1 .EQ. '(' ) THEN
 	         open_paren = open_paren + 1
@@ -141,34 +150,43 @@
 	      ELSEIF ( c1 .EQ. ',' ) THEN
 	         IF ( open_paren.EQ.0 .AND. open_brkt.EQ.0 ) THEN
 	            found_comma = .TRUE.
-	            end = goptr - 1
+	            iend = goptr - 1
 	            GOTO 500	     
 	         ENDIF
 	      ELSEIF (c1.EQ.' ' .OR. c1.EQ.tab ) THEN
-	         end = goptr - 1
+	         iend = goptr - 1
 	         GOTO 500
 	      ENDIF
  190	      bslash = .FALSE.
  200	   CONTINUE
-	   end = lengo     ! end of buffer is end of arg
+	   iend = lengo     ! end of buffer is end of arg
 
  500	CONTINUE
 
 * return the requested argument string
-	IF ( carg .EQ. ' *' .AND. end .NE. lengo ) THEN
-	   end = lengo
+	IF ( carg .EQ. ' *' .AND. iend .NE. lengo ) THEN
+	   iend = lengo
 	ELSEIF ( goline(start:start) .EQ. '"'
-     .     .AND. goline(end:end)     .EQ. '"' ) THEN
+     .     .AND. goline(iend:iend)     .EQ. '"' ) THEN
 * ... do not pass enclosing quotation marks
-	   start = start+1
-	   end = end - 1
+	   start = start + 1
+	   iend  = iend  - 1
+	ELSEIF ( goline(start:start) .EQ. '_'
+     .     .AND. goline(iend :iend ) .EQ. '_'
+     .     .AND. iend-start .GE. 7             ) THEN
+* ... do not pass enclosing _DQ_ marks
+	   IF (goline(start : start+3) .EQ. "_DQ_"
+     .   .AND. goline(iend-3: iend   ) .EQ. "_DQ_" ) THEN
+	      start = start + 4
+	      iend  = iend  - 4
+	   ENDIF
 	ENDIF
-	IF ( start .GT. end ) THEN   ! beware empty quotes
+	IF ( start .GT. iend ) THEN   ! beware empty quotes
               arg = ' '
               lenarg = 0
 	ELSE
-	   arg = goline(start:end)
-!	   lenarg = end - start + 1
+	   arg = goline(start:iend)
+!	   lenarg = iend - start + 1
 * ... remove one level of backslash escapes from the arg
 	   CALL DE_ESCAPE_STRING(arg, lenarg)
 	ENDIF
diff --git a/fer/gnl/edit_attribute.F b/fer/gnl/edit_attribute.F
index f96c0c4..228d8f7 100644
--- a/fer/gnl/edit_attribute.F
+++ b/fer/gnl/edit_attribute.F
@@ -63,6 +63,7 @@
 * V685 *acm*  3/13 For Ensemble aggregations, call the ds_type 'ENS'
 * v686 *acm*  1/14 Fix ticket 2127: dont check file type if the variable not a file variable.
 * v687 *acm*  3/14 Fix ticket 2161: editing long_name or units of var in ascii files
+* V695 *acm*  2/15 For Forecast aggregations, call the ds_type 'FCT'
 
 * codes for data sets
 	INTEGER		set_not_open,set_open,file_not_open
@@ -460,6 +461,7 @@
 	IF (dset .GT. 0) ncfile = (TM_HAS_STRING(ds_type(dset), 'CDF') .OR.
      .               TM_HAS_STRING(ds_type(dset), 'MC') .OR.
      .               TM_HAS_STRING(ds_type(dset), 'ENS') .OR.
+     .               TM_HAS_STRING(ds_type(dset), 'FCT') .OR.
      .               TM_HAS_STRING(ds_type(dset), 'GT')  )
 
 * note on EZ vars:
diff --git a/fer/gnl/equal_permute.F b/fer/gnl/equal_permute.F
index 6137338..5cd1e94 100644
--- a/fer/gnl/equal_permute.F
+++ b/fer/gnl/equal_permute.F
@@ -1,5 +1,3 @@
-
-
 	SUBROUTINE EQUAL_PERMUTE(string,fill,v_ok,neg_ok,perm,status )
 
 *
@@ -54,6 +52,7 @@
 * 2/03 *kob* - g77 port - g77 won't allow intrinsic functions in PARAMETER
 *                         statements.  use an octal constant instead
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V693+ *sh* 2/15 - added support for _DQ_ quotations
 
       IMPLICIT NONE
 
@@ -100,8 +99,19 @@
 	GOTO 5100
 
 * remove quotation marks
- 100       IF ( string(pos:pos)   .EQ. '"' ) pos  = pos + 1
-           IF ( string(slen:slen) .EQ. '"' ) slen = slen - 1
+ 100	   IF ( string(pos :pos  ) .EQ. '"'
+     .	  .AND. string(slen:slen ) .EQ. '"' ) THEN
+	      pos  = pos  + 1
+	      slen = slen - 1
+	   ELSEIF (string(pos :pos ) .EQ. '_'
+     .	     .AND. string(slen:slen) .EQ. '_' 
+     .	     .AND. slen-pos.GE.8            ) THEN
+	      IF (string(pos:pos+3)   .EQ. '_DQ_'
+     .	    .AND. string(slen-3:slen) .EQ. '_DQ_' ) THEN
+	         pos  = pos  + 4
+	         slen = slen - 4
+	      ENDIF
+	   ENDIF
 
 * decode permutation string
 	ndim = 0
diff --git a/fer/gnl/equal_str_lc.F b/fer/gnl/equal_str_lc.F
index 76240b7..64045d9 100644
--- a/fer/gnl/equal_str_lc.F
+++ b/fer/gnl/equal_str_lc.F
@@ -45,6 +45,7 @@
 *
 * V200: revision 0.0 - 3/12/91 - for Unix/RISC port - based on EQUAL_SRING
 *       *acm* 3/12 cleanup ifdefs and unnecessary include files
+* V693+ *sh* 2/15 - added support for _DQ_ quotations
 
 * calling argument declarations
 	INTEGER		status
@@ -74,8 +75,19 @@
 	   STOP '=_str'		! cannot occur
 
 * remove quotation marks
- 110	   IF ( string(strt:strt) .EQ. '"' ) strt = strt + 1
-	   IF ( string(slen:slen) .EQ. '"' ) slen = slen - 1
+ 110	   IF ( string(strt:strt) .EQ. '"'
+     .	  .AND. string(slen:slen) .EQ. '"' ) THEN
+	      strt = strt + 1
+	      slen = slen - 1
+	   ELSEIF (string(strt:strt) .EQ. '_'
+     .	     .AND. string(slen:slen) .EQ. '_' 
+     .	     .AND. slen-strt.GE.8            ) THEN
+	      IF (string(strt:strt+3) .EQ. '_DQ_'
+     .	    .AND. string(slen-3:slen) .EQ. '_DQ_' ) THEN
+	         strt = strt + 4
+	         slen = slen - 4
+	      ENDIF
+	   ENDIF
 
 	   IF ( strt .GT. slen ) THEN
 	      val = ' '
diff --git a/fer/gnl/equal_string.F b/fer/gnl/equal_string.F
index 8518f1b..d7a7533 100644
--- a/fer/gnl/equal_string.F
+++ b/fer/gnl/equal_string.F
@@ -47,6 +47,7 @@
 * V200:   7/7/89 -  remove leading blanks, process quotation marks
 *	  9/22/89 - fixed bug for NAME="" (close quotes)
 *       *acm* 3/12 cleanup ifdefs and unnecessary include files
+* V693+ *sh* 2/15 - added support for _DQ_ quotations
 
 * calling argument declarations
 	INTEGER		status
@@ -76,8 +77,19 @@
 	   STOP '=_str'		! cannot occur
 
 * remove quotation marks
- 110	   IF ( string(strt:strt) .EQ. '"' ) strt = strt + 1
-	   IF ( string(slen:slen) .EQ. '"' ) slen = slen - 1
+ 110	   IF ( string(strt:strt) .EQ. '"'
+     .	  .AND. string(slen:slen) .EQ. '"' ) THEN
+	      strt = strt + 1
+	      slen = slen - 1
+	   ELSEIF (string(strt:strt) .EQ. '_'
+     .	     .AND. string(slen:slen) .EQ. '_' 
+     .	     .AND. slen-strt.GE.8            ) THEN
+	      IF (string(strt:strt+3) .EQ. '_DQ_'
+     .	    .AND. string(slen-3:slen) .EQ. '_DQ_' ) THEN
+	         strt = strt + 4
+	         slen = slen - 4
+	      ENDIF
+	   ENDIF
 
 	   IF ( strt .GT. slen ) THEN
 	      val = ' '
diff --git a/fer/gnl/float2string_for_xml.F b/fer/gnl/float2string_for_xml.F
index 49d1f2a..5d856b1 100644
--- a/fer/gnl/float2string_for_xml.F
+++ b/fer/gnl/float2string_for_xml.F
@@ -51,7 +51,7 @@
 * Internal declarations
 	LOGICAL TM_FPEQ
 	CHARACTER TM_FMT*16
-	INTEGER TM_LENSTR, ival
+	INTEGER TM_LENSTR, STR_SAME, ival
 	REAL test_val
   
   888	FORMAT(i16.0)
@@ -60,6 +60,17 @@
 
 	strng = TM_FMT(val, 7,16,slen)
 
+* If it's NaN, we are done.  See show_data_set_vars_xml. If the
+* attribute is the _FillValue or missing_value, it has already 
+* been converted to Ferret's default missing value, to match what
+* Ferret will write into data varaibles.
+
+	IF (STR_SAME(strng, 'NaN') .EQ. 0) THEN
+	print *, '  ATTRIBUTE is NaN'
+	   slen = 3
+	   GOTO 5000
+	ENDIF
+
 	IF (attype .EQ. nf_float .OR. attype .EQ. nf_double) THEN
 	   slen = TM_LENSTR(strng)
 	ELSE
@@ -86,6 +97,7 @@
 	   ENDIF
 	ENDIF
 
+ 5000	CONTINUE
 	RETURN
 	END
 
diff --git a/fer/gnl/get_context_mods.F b/fer/gnl/get_context_mods.F
index 31d21a6..a3c82be 100644
--- a/fer/gnl/get_context_mods.F
+++ b/fer/gnl/get_context_mods.F
@@ -148,10 +148,16 @@
 *                  temp[gz(depth)=zax at ave]
 *		   including special interpretation of gz(depth)=100 (a point)
 *		   ensure that the same axis region isn't set twice (line 200)
-*		   Detect 'sigma' and 'curvi' automation flags
+*		   Detect 'layerz' and 'curvi' automation flags
 *	           Note that errors will be silent in dependency_tree_mode
 *		   Set cx_g_eq_regrid logical (used to be local "regrid_dims")
 * V6.91+ *acm* 8/14 Fix ticket 2189
+* V693+ *sh* 12/14 keep track of regridding using cx_vtree* for ticket #2195
+*                  also fix err693_undetected_regrid_dset.jnl
+* V695  *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
+* 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
 
 * specifiers may give coordinate in subscript units (/I,/J,/K,/L) or
 * may give coordinate in "world" units (/X,/Y,/Z,/T)
@@ -239,7 +245,7 @@
      .       (region_qual(idim,2),idim=1,nferdims) / 'X','Y','Z','T','E','F' /
 !     .       other_qual(1) / 'D' /,	! /DATA_SET=
 !     .       other_qual(2) / 'G' /	! /GRID=
-!     .       other_qual(3) / 'S' /	! var[z=100,SIGMA]
+!     .       other_qual(3) / 'S' /	! var[z=100,LAYERZ]
 !     .       other_qual(4) / 'C' /	! var[x=140e,Y=0,CURVILINEAR]
 
 * local parameter declarations (as in xeq_define)
@@ -253,10 +259,11 @@
         DO 10 idim = 1, nferdims
 	   morph_gx_to_x(idim)  = .FALSE.
 	   set_implicitly(idim) = .FALSE.
-	   cx_g_eq_regrid(idim) = .FALSE.
+!	   cx_g_eq_regrid(idim) = .FALSE.   ! initialize *inside* of 500 loop 6/2015
 	   first_time(idim)     = .TRUE.
  10	CONTINUE
 	has_g_eq_unkn_uvar = .FALSE.
+	cx_vtree_regrid_ntarget = 0
 
 * check in advance for the use of pre-specified ("/@") limits and D=
 * (the results of D= may be relevant in G=var)
@@ -280,7 +287,7 @@
 	            cx_hi_ww ( idim, mods_cx ) = cx_hi_ww ( idim, ict )
 * kob 9/97 - set cx_calendar as well
 		    IF (idim .EQ. t_dim .OR. idim .EQ. f_dim) 
-     .                 cx_calendar(mods_cx) = cx_calendar(ict)
+     .                 cx_calendar(idim,mods_cx) = cx_calendar(idim,ict)
 	            cx_trans ( idim, mods_cx ) = cx_trans   ( idim, ict )
 	            cx_trans_arg(idim, mods_cx ) = cx_trans_arg(idim, ict )
 	            cx_by_ss ( idim, mods_cx ) = cx_by_ss( idim, ict )
@@ -348,12 +355,17 @@
 	   letter = UPPER_CASE(text_buff(istart:istart))! 8/92
 	   has_auxvar = .FALSE.				! 12/13
 
+* ... 6/2015 initialize this inside of 500 loop to allow [gx(xaux)=xax,gy(yaux)=yax]
+           DO idim = 1, nferdims
+	      cx_g_eq_regrid(idim) = .FALSE.
+	   ENDDO
+
 * ignore any region information that contains grave accents
 	   IF ( INDEX(risc_buff,'`') .GT. 0 ) GOTO 500
 
-* identify 'SIGMA' and 'CURVI' qualifiers
+* identify 'LAYERZ' and 'CURVI' qualifiers
 	   IF (MATCH4(risc_buff,len_rbuff,
-     .			  'SIGM',   4          ) ) THEN
+     .			  'LAYE',   4          ) ) THEN
 	      cx_aux_given(z_dim,mods_cx) = .TRUE.
 	      GOTO 500
 	   ELSEIF (MATCH4(risc_buff,len_rbuff,
@@ -394,11 +406,16 @@
  100	   IF ( letter.EQ.'D' ) GOTO 500 ! already done
 	   IF ( letter.NE.'G' ) GOTO 190
 
-* only a single regridding specifier is allowed if auxvar regridding is used
-	   IF (cx_unstand_grid(mods_cx) .AND. cx_naux(mods_cx).NE. 0) THEN
-	      name = 'only a single regrid allowed when using'
-	      GOTO 5300
-	   ENDIF  
+!* only T and F axes may be simultaneously used in auxvar regridding
+!	   IF (cx_unstand_grid(mods_cx) .AND. cx_naux(mods_cx).NE. 0) THEN
+!	     name = 'only T and F regrids may be combined when using'
+!	     IF (idim.NE.t_dim .AND. idim.NE.f_dim) GOTO 5300
+!	     DO rgdim = 1, nferdims
+!	        IF (cx_g_eq_regrid(rgdim)) THEN
+!	          IF (rgdim.NE.t_dim .AND. rgdim.NE.f_dim) GOTO 5300
+!	        ENDIF
+!	     ENDDO
+!	   ENDIF  
 
 * G= or G*= non-standard grid specifier ...
 * full format is (e.g.) GX=SALT at AVE (atsin and beyond optional)
@@ -462,16 +479,18 @@ c	      next_char = istart + naxes - 1
 * if auxiliary regridding variables have been given, parse em here
 	   IF (has_auxvar) THEN
 * ... first check for valid usage
-	     IF (naxes .GT. 1) THEN
-		name =
-     .		'this Ferret version doesnt support multi aux regrid args' 
-	        GOTO 5300
-	     ENDIF
-	     IF (idim .NE. z_dim) THEN
-		name =
-     .		'only the Z axis can be used in' 
-	        GOTO 5300
-	     ENDIF
+!	     IF (naxes .GT. 1) THEN
+!		name =
+!     .		'this Ferret version doesnt support multi aux regrid args' 
+!	        GOTO 5300
+!	     ENDIF
+!	     IF (idim .NE. z_dim
+!     .	   .AND. idim .NE. t_dim
+!     .	   .AND. idim .NE. f_dim  ) THEN
+!		name =
+!     .		'only the Z, T, and F axes can be used in' 
+!	        GOTO 5300
+!	     ENDIF
 
 	     aux_lparen_pos = i
 	     aux_rparen_pos = INDEX(text_buff(i:equal_pos), ')' )
@@ -486,13 +505,20 @@ c	      next_char = istart + naxes - 1
 * ... infer the aux argument count in the parens from the number of commas
 	     aux_arg_count = 1
 	     aux_arg_namlen = 0
-*    ... argument order must match collating order of axes as in gyx(argx,argy)=
-	     DO rgdim = 1, nferdims
-	         IF (cx_g_eq_regrid(rgdim)) GOTO 704   ! too lazy to renumber
+	     IF (idim.EQ.t_dim .OR. idim.EQ.f_dim) THEN
+	        rgdim = idim
+	     ELSE
+*    ... x,y arguments must be in collating order as in gxy(argx,argy)=
+	        DO rgdim = 1, nferdims
+	           IF (cx_g_eq_regrid(rgdim)) GOTO 704   ! should use "EXIT"
+	        ENDDO
+	     ENDIF
+* (5/15) ... skip leading white space
+ 704	     DO i = aux_lparen_pos+1, aux_rparen_pos
+	        IF (text_buff(i:i) .NE. ' ') EXIT
 	     ENDDO
-	     GOTO 5400   ! can never get here
- 704	     cx_aux_arg_start(rgdim, mods_cx) = i+1
-	     cx_aux_arg_end  (rgdim, mods_cx) = i
+	     cx_aux_arg_start(rgdim, mods_cx) = i
+	     cx_aux_arg_end  (rgdim, mods_cx) = i-1
 	     cx_aux_stat     (rgdim, mods_cx) = paux_stat_used
 	     DO 104 i = aux_lparen_pos+1, aux_rparen_pos-1
 	        IF (text_buff(i:i) .EQ. ' ') GOTO 104
@@ -511,7 +537,8 @@ c	      next_char = istart + naxes - 1
 *    ... match this arg to its axis from the "gxy" syntax
 	          DO rgdim = rgdim+1, nferdims
 	             IF (cx_g_eq_regrid(rgdim)) THEN
-	                cx_aux_arg_start(rgdim, mods_cx) = i
+	                cx_aux_arg_start(rgdim, mods_cx) = i+1
+	                cx_aux_arg_end  (rgdim, mods_cx) = i
 	                GOTO 104
 	             ENDIF
 	          ENDDO
@@ -527,7 +554,7 @@ c	      next_char = istart + naxes - 1
 	        name = 'no. of auxliary variables must match no. of axes in'
 	        GOTO 5300
 	     ENDIF
-	     cx_naux(mods_cx) = naxes
+	     cx_naux(mods_cx) = cx_naux(mods_cx) + naxes
 	   ENDIF
 
 * initialize for next axis as in "GXY="
@@ -552,7 +579,10 @@ c	      next_char = istart + naxes - 1
 *	      to confuse these two
 *       3/98: for T axis with GT="1-JAN-1990" first character may be a quote
 	      i = 1		                                     ! 3/98
-	      IF ((idim.EQ.t_dim .OR. idim.EQ.f_dim)  .AND. name(1:1) .EQ. '"') i = 2    ! 3/98
+	      IF ((idim.EQ.t_dim .OR. idim.EQ.f_dim) ) THEN
+	         IF (name(1:1) .EQ. '"'   ) i = 2 ! 3/98
+	         IF (name(1:4) .EQ. '_DQ_') i = 5 ! 2/15 
+	      ENDIF
 	      IF ( TM_DIGIT(name(i:i)) .AND. .NOT.single_char ) THEN
 	         IF (.NOT.first_time(idim) ) GOTO 5200
 	         IF (naxes .GT. 1) GOTO 5205	! cannot say GXY=lo:hi:delta
@@ -648,6 +678,7 @@ c	      next_char = istart + naxes - 1
 		    dend = ii
 
 	            gdset = FIND_DSET_NUMBER( name(dstart:dend) )
+	            IF (gdset .EQ. unspecified_int4) GOTO 5058   ! added 1/201
 	            gdset_included = .TRUE.
 *33333333333333333
 	         ELSE
@@ -662,6 +693,18 @@ c	      next_char = istart + naxes - 1
 	         IF ( category .EQ. cat_pseudo_var ) GOTO 5055
 *33333333333333333
 	         IF ( variable .NE. munknown_var_name ) THEN
+	            IF (dependency_tree_mode) THEN
+* ... bookkeeping for determining the dependency tree (VTREE)
+	               cx_vtree_regrid_ntarget = cx_vtree_regrid_ntarget + 1
+	               cx_vtree_unknown_grid(cx_vtree_regrid_ntarget)
+     .								= .FALSE. 
+	               cx_vtree_var_or_start(cx_vtree_regrid_ntarget) 
+     .								= variable
+	               cx_vtree_cat_or_end  (cx_vtree_regrid_ntarget)
+     .								= category
+	               cx_vtree_regrid_dset (cx_vtree_regrid_ntarget)
+     .								= gdset
+	            ENDIF
 	            grid = KNOWN_GRID(gdset,category,variable)
 		    cx_grid_needs_dset = .NOT.cx_dset_gvn( mods_cx )
 * ... 6/00 bug fix for syntax X[gx=var[d=dset]] -- look for [d=...]
@@ -711,14 +754,46 @@ c	      next_char = istart + naxes - 1
 	            ENDIF
 *33333333333333333
 	         ELSEIF ( single_char ) THEN
-	            GOTO 5050		! (G=axis_name not allowed)
+	            IF (dependency_tree_mode) THEN
+	              cx_vtree_regrid_ntarget = cx_vtree_regrid_ntarget + 1
+	              cx_vtree_unknown_grid(cx_vtree_regrid_ntarget)
+     .							= .TRUE.
+	              cx_vtree_var_or_start(cx_vtree_regrid_ntarget)
+     .							= equal_pos + 1
+	              cx_vtree_cat_or_end  (cx_vtree_regrid_ntarget)
+     .							= equal_pos + name_end
+	              cx_vtree_regrid_dset (cx_vtree_regrid_ntarget)
+     .							= unspecified_int4
+	            ELSE
+	               GOTO 5050		! (G=axis_name not allowed)
+	            ENDIF
 *33333333333333333
 	         ELSE
 * ... as a last resort maybe it is an axis name (9/95)
 c	            axis = TM_GET_LINENUM( name(:nend) )
 	            axis = TM_GET_LINENUM( name(:name_end) )
 		    IF ( axis .EQ. unspecified_int4 ) THEN
-	               GOTO 5050	! final defeat
+	              IF (dependency_tree_mode) THEN
+* ... 12/14 hack to let an unknown grid error condition slip through if we
+*	are merely evaluating the dependency tree.
+	                 cx_vtree_regrid_ntarget = cx_vtree_regrid_ntarget + 1
+	                 cx_vtree_unknown_grid(cx_vtree_regrid_ntarget)
+     .							= .TRUE.
+	                 cx_vtree_var_or_start(cx_vtree_regrid_ntarget)
+     .							= equal_pos + 1
+	                 cx_vtree_cat_or_end  (cx_vtree_regrid_ntarget)
+     .							= equal_pos + name_end
+	                 cx_vtree_regrid_dset (cx_vtree_regrid_ntarget)
+     .							= unspecified_int4
+*       It is normal for LET-defined variables
+*	that the grid may remain unknown until the children grids
+*	are determined, so hopefully it is OK here, too.  If not then we
+*	might try inserting an innocuous grid, such as
+!	                IF (cx_grid(mods_cx) .EQ. unspecified_int4)
+!     .			    cx_grid(mods_cx) = EZ or ABSTRACT
+	              ELSE
+	                GOTO 5050		! final defeat 
+	              ENDIF
 	            ELSEIF ( TM_AXIS_DIRECTION(axis) .NE. idim
      .		       .AND. TM_AXIS_DIRECTION(axis) .NE. 0 ) THEN	! 7/96
 	               GOTO 5052
@@ -756,11 +831,11 @@ c	            axis = TM_GET_LINENUM( name(:nend) )
 	      GOTO 5020			! unknown regrid transform
 * ... trap (temporary?) for use of "@AVE" on auxiliary regridding
  182	      IF (itrans .EQ. pauxrgrd_average) THEN
-	         CALL WARN_OCCASIONALLY(
-     .		   'Box-averaging not available for auxiliary variable '//
-     .		   'regridding.'//pCR//
-     .		   '           Using @PLAVE instead, '//
-     .		   'e.g. gz(depth)=0:100 at plave', 10, 101)
+!	         CALL WARN_OCCASIONALLY(
+!     .		   'Box-averaging not available for auxiliary variable '//
+!     .		   'regridding.'//pCR//
+!     .		   '           Using @PLAVE instead, '//
+!     .		   'e.g. gz(depth)=0:100 at plave', 10, 101)
 	         itrans = pauxrgrd_pwlave
 	      ENDIF
               IF ( single_char ) THEN   ! apply transform to all axes
@@ -876,16 +951,55 @@ c	            axis = TM_GET_LINENUM( name(:nend) )
 
 * make allowances for quotation marks here and there (kludge!)
 * watch for empty strings! (10/95)
-	IF ( text_buff(lo_start:lo_start) .EQ. '"' ) lo_start = lo_start + 1
-	IF ( text_buff(lo_end  :lo_end  ) .EQ. '"' ) lo_end   = lo_end   - 1
+* add _DQ_ support 2/15
+	IF (     text_buff(lo_start:lo_start) .EQ. '"' ) THEN
+	   lo_start = lo_start + 1
+	ELSEIF ( text_buff(lo_start:lo_start) .EQ. '_'
+     .      .AND.lo_start+3 .LE. iend                  ) THEN
+	   IF (  text_buff(lo_start:lo_start+3) .EQ. '_DQ_' )
+     .	   lo_start = lo_start + 4
+	ENDIF
+ 	IF (     text_buff(lo_end  :lo_end  ) .EQ. '"' ) THEN
+	   lo_end   = lo_end   - 1
+	ELSEIF ( text_buff(lo_end  :lo_end  ) .EQ. '_'
+     .     .AND. lo_end-3 .GE. istart                  ) THEN
+	   IF (  text_buff(lo_end-3:lo_end  ) .EQ. '_DQ_' )
+     .	   lo_end   = lo_end   - 4
+	ENDIF
+ 
 	IF ( colon ) THEN
-	   IF ( text_buff(hi_start:hi_start) .EQ. '"' ) hi_start = hi_start + 1
-	   IF ( text_buff(hi_end  :hi_end  ) .EQ. '"' ) hi_end   = hi_end   - 1
+	   IF (     text_buff(hi_start:hi_start) .EQ. '"' ) THEN
+	      hi_start = hi_start + 1
+	   ELSEIF ( text_buff(hi_start:hi_start) .EQ. '_' 
+     .        .AND. hi_start+3 .LE. iend                  ) THEN
+	      IF (  text_buff(hi_start:hi_start+3) .EQ. '_DQ_' ) 
+     .	      hi_start = hi_start + 4
+	   ENDIF
+	   IF (     text_buff(hi_end  :hi_end  ) .EQ. '"' ) THEN
+	      hi_end   = hi_end   - 1
+	   ELSEIF ( text_buff(hi_end  :hi_end  ) .EQ. '_' 
+     .         .AND. hi_end-3 .GE. istart                 ) THEN
+	      IF (  text_buff(hi_end-3:hi_end  ) .EQ. '_DQ_' ) 
+     .	      hi_end   = hi_end   - 4
+	   ENDIF
 	   IF ( hi_start .GT. hi_end ) GOTO 5165
 	ENDIF
+
 	IF ( colon2 ) THEN
-	   IF (text_buff(del_start:del_start) .EQ. '"') del_start = del_start+1
-	   IF (text_buff(del_end  :del_end  ) .EQ. '"') del_end   = del_end  -1
+	   IF (    text_buff(del_start:del_start  ) .EQ. '"') THEN
+	      del_start = del_start+1
+	   ELSEIF (text_buff(del_start:del_start  ) .EQ. '_'
+     .       .AND. del_start+3 .LE. iend                    ) THEN
+	      IF  (text_buff(del_start:del_start+3) .EQ. '_DQ_') 
+     .	      del_start = del_start+4
+	   ENDIF
+	   IF (    text_buff(del_end :del_end    ) .EQ. '"' ) THEN
+	      del_end   = del_end - 1
+	   ELSEIF (text_buff(del_end :del_end    ) .EQ. '_'
+     .     .AND. del_end-3 .GE. istart                      ) THEN
+	      IF  (text_buff(del_end-3:del_end   ) .EQ. '_DQ_')
+     .	      del_end   = del_end - 4
+	   ENDIF
 	   IF ( del_start .GT. del_end ) GOTO 5165
 	ENDIF
 
@@ -925,7 +1039,8 @@ c	            axis = TM_GET_LINENUM( name(:nend) )
 
 * kob 8/97 - set cx_calender to true/false depending on whether date is
 *            a formated string or not
-	   IF (idim .EQ. t_dim .OR. idim .EQ. f_dim) cx_calendar(mods_cx) = fmat_lo
+	   IF (idim .EQ. t_dim .OR. idim .EQ. f_dim) 
+     .			cx_calendar(idim,mods_cx) = fmat_lo
 	ENDIF
 
 * is there a second value given ?
@@ -1020,13 +1135,12 @@ c	            axis = TM_GET_LINENUM( name(:nend) )
 * ... identify the axis being regridding in this qualifier
 	  DO rgdim = 1, nferdims
 	     IF (cx_g_eq_regrid(rgdim)) THEN
-	        IF (rgdim .NE. z_dim) CYCLE  ! ignore all axes but Z
 * set up for dynamic axis by inserting a special cx_delta signal
-	        IF (cx_lo_ww(z_dim,mods_cx) .EQ. unspecified_val8) CYCLE
-	        IF (cx_delta(z_dim,mods_cx) .NE. unspecified_val8) CYCLE
-	        IF (cx_lo_ww(z_dim,mods_cx) .EQ. cx_hi_ww(z_dim,mods_cx)
-     .	       .OR. cx_regrid_trans(z_dim,mods_cx) .EQ. pauxrgrd_pwlave)
-     .					cx_delta(z_dim,mods_cx) = pauto_1pt_ax
+	        IF (cx_lo_ww(rgdim,mods_cx) .EQ. unspecified_val8) CYCLE
+	        IF (cx_delta(rgdim,mods_cx) .NE. unspecified_val8) CYCLE
+	        IF (cx_lo_ww(rgdim,mods_cx) .EQ. cx_hi_ww(rgdim,mods_cx)
+     .	       .OR. cx_regrid_trans(rgdim,mods_cx) .EQ. pauxrgrd_pwlave)
+     .					cx_delta(rgdim,mods_cx) = pauto_1pt_ax
 	     ENDIF
 	   ENDDO
 	ENDIF
@@ -1040,7 +1154,7 @@ c	            axis = TM_GET_LINENUM( name(:nend) )
 *             repeat/i=3:1:1 executes the same as repeat/i=1:3:1 and
 *             list var[i=180:10:10] the same as list var[i=10:180:10]
 
-	IF (  (idim.EQ.t_dim .OR. idim.EQ.f_dim) .AND. cx_calendar(mods_cx) ) THEN
+	IF (  (idim.EQ.t_dim .OR. idim.EQ.f_dim) .AND. cx_calendar(idim,mods_cx) ) THEN
 	   IF ( cx_hi_ww(idim,mods_cx) .GT. 
      .				cx_lo_ww(idim,mods_cx) ) THEN
 	      temp = cx_lo_ww( idim, mods_cx )
@@ -1068,7 +1182,7 @@ c	            axis = TM_GET_LINENUM( name(:nend) )
 	   cx_hi_ww( idim, mods_cx ) = unspecified_val8
 * 9/97 *kob* cx_calendar must reflect these changes as well	  
 	   IF (idim .EQ. t_dim .OR. idim .EQ. f_dim) 
-     .                cx_calendar(mods_cx) = .FALSE.
+     .                cx_calendar(idim,mods_cx) = .FALSE.
 	ENDIF
 
 * SPECIAL CASES for individual axes
@@ -1087,8 +1201,9 @@ c	            axis = TM_GET_LINENUM( name(:nend) )
 500	CONTINUE
 
 * SPECIAL CASES for entire context
-* If a grid qualifiers wer given then a grid name from at least 1 was mandatory
+* If grid qualifiers were given then a grid name from at least 1 was mandatory
         IF ( cx_unstand_grid(mods_cx)
+     . .AND. .NOT.dependency_tree_mode
      . .AND. .NOT.cx_has_impl_grid(mods_cx)
      . .AND. cx_grid(mods_cx) .EQ. unspecified_int4 ) GOTO 5024
 
@@ -1110,6 +1225,14 @@ c	            axis = TM_GET_LINENUM( name(:nend) )
  600	   CONTINUE
  610	CONTINUE
 
+* TF regridding syntax may be gt(tf_times)=TF_CAL_T,gf(tf_times)=TF_LAG_F in which case
+* what appears as two distinct auxiliary variables is really only one
+	IF (cx_naux(mods_cx) .GT. 1) THEN
+	   IF ( cx_aux_arg_start(t_dim,mods_cx) .NE. unspecified_int4
+     .    .AND. cx_aux_arg_start(f_dim,mods_cx) .NE. unspecified_int4 ) 
+     .					cx_naux(mods_cx) = cx_naux(mods_cx) - 1
+	ENDIF
+
 * same is true for indefinite integrals but never been used yet ...
 	IF (  cx_trans(x_dim,mods_cx) .EQ. trans_integ_indef
      .	.AND. cx_trans(y_dim,mods_cx) .EQ. trans_integ_indef )
@@ -1153,6 +1276,8 @@ c	            axis = TM_GET_LINENUM( name(:nend) )
      .			' --> g=user-or-pseudo-var not allowed', *5000 )
  5056	CALL ERRMSG( ferr_syntax, status, 
      .	 'invalid nested brackets: '//risc_buff(:len_rbuff),*5000)
+ 5058	CALL ERRMSG
+     .		( ferr_unknown_data_set, status, name(dstart:dend), *5000 )
  5060	CALL ERRMSG( ferr_invalid_command, status, 
      .	 'use @SHF only with IJK or L: '//risc_buff(:len_rbuff),*5000)
  5100	CALL ERRMSG( ferr_syntax, status, 
diff --git a/fer/gnl/get_fer_command.F b/fer/gnl/get_fer_command.F
index c03c359..db80204 100644
--- a/fer/gnl/get_fer_command.F
+++ b/fer/gnl/get_fer_command.F
@@ -95,6 +95,13 @@
 *       *acm* 3/12 cleanup ifdefs and unnecessary include files
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 * V690 *sh* 2/14 initialize max_context, now a variable to support aux vars
+* V693+ *sh* 12/14 moved arg_start/end inits into PARSE_COMMAND (housekeeping)
+*                 Moved other house-keeping from PARSE_COMMAND here
+*	            1) Trim leading "yes? " and "...? "
+*                   2) Trim bang-comments off.
+*                   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
 
 #ifdef MIXING_NAG_F90_AND_C
 	USE F90_UNIX
@@ -106,17 +113,25 @@
 	CHARACTER*(*)	called_string
 
 * internal variable declarations:
-	LOGICAL re_verify, do_verify, prefix_verify, arg1_quoted
+	LOGICAL re_verify, do_verify, arg1_quoted,
+     .		pure_comment, appending_cmnd 
 	INTEGER	TM_LENSTR, TM_LENSTR1,
      .		iqual, ilist, cmnd_len, double_eof,
-     .          has_more, i
+     .          has_more, i, cmnd_len_w_cmnt
+	CHARACTER prefix*5, raw_cmnd_buff*2048
 
-        CHARACTER*1 backslash
+* local parameter declarations
+        CHARACTER*1 backslash, tab
+	CHARACTER*5 dprefix
+	PARAMETER ( dprefix = ' !-> ')
 #ifdef NO_INTRINSIC_IN_PARAMETER
         PARAMETER ( backslash = o'134' )
+	PARAMETER ( tab = o'011' )
 #else
         PARAMETER ( backslash = char(92) )
+	PARAMETER ( tab = CHAR(9) )
 #endif
+
 	include 'tmap_dims.parm'
 	include 'errmsg.parm'
 	include 'ferret.parm'
@@ -132,16 +147,18 @@
 	gui_status = ferr_ok	! start w/ a clean bill o' health
 	double_eof = 0
 	max_context = max_noframe_context  ! 2/2014
+	len_cmnd_copy = 0
+	appending_cmnd = .FALSE.
 
 * if a command was given then execute it immediately
 	IF ( called_string .NE. ' ' ) THEN
 	   cmnd_buff = called_string
-	   cmnd_len = TM_LENSTR( cmnd_buff )
+	   cmnd_len_w_cmnt = TM_LENSTR( cmnd_buff )
 	   IF (   mode_journal
      .	    .AND. jrnl_lun .NE. unspecified_int4
-     .	    .AND. cmnd_len .GT. 0
+     .	    .AND. cmnd_len_w_cmnt .GT. 0
      .	    .AND. cmnd_buff(1:1) .NE. backslash ) then
-	      WRITE (jrnl_lun,'(A)') cmnd_buff(1:cmnd_len)
+	      WRITE (jrnl_lun,'(A)') cmnd_buff(1:cmnd_len_w_cmnt)
 
 * *kob* 5/99 - Flush buffer
 	      CALL FLUSH(jrnl_lun)
@@ -161,14 +178,13 @@
         GOTO (100,200,300) input_source
 
 
-
 ************** OPERATOR AS SOURCE OF COMMAND LINE ****************************
 
  100	IF (mode_gui) THEN
 
 * operator using mouse input device
 	   CALL MOUSE_COMMAND (cmnd_buff)
-	   cmnd_len = TM_LENSTR( cmnd_buff )
+	   cmnd_len_w_cmnt = TM_LENSTR( cmnd_buff )
 
 	ELSE
 * operator sitting at his keyboard
@@ -176,19 +192,19 @@
 ! 3000	   FORMAT (1X,A,$)	! vms
 ! 3000	   FORMAT (A,$)         ! unix
 !	   READ  ( ttin_lun,'(A)',END=2000 ) cmnd_buff
-!	   cmnd_len = TM_LENSTR( cmnd_buff )
+!	   cmnd_len_w_cmnt = TM_LENSTR( cmnd_buff )
 
 ! check for multiple ^D's from the keyboard (or EOF on stdin redirect)
 	   double_eof = double_eof + 1
 	   IF (double_eof .GT. 2) STOP       ! 1/18/95
 
 * ... gnu readline with a FORTRAN jacket
-	   IF ( has_continuation_cmnd ) THEN
+	   IF ( appending_cmnd ) THEN
               CALL TM_FRIENDLY_READ('...? ',cmnd_buff,*20)
 	   ELSE
               CALL TM_FRIENDLY_READ(prompt(:prompt_len),cmnd_buff,*20)
 	   ENDIF
-	   cmnd_len = TM_LENSTR( cmnd_buff )
+	   cmnd_len_w_cmnt = TM_LENSTR( cmnd_buff )
 	   double_eof = 0	! in case comment or blank line returns here
 
 	ENDIF
@@ -197,9 +213,9 @@
 
 	IF (   mode_journal
      .	 .AND. jrnl_lun .NE. unspecified_int4
-     .	 .AND. cmnd_len .GT. 0
+     .	 .AND. cmnd_len_w_cmnt .GT. 0
      .	 .AND. cmnd_buff(1:1) .NE. backslash ) then
-	   WRITE (jrnl_lun,'(A)') cmnd_buff(1:cmnd_len)
+	   WRITE (jrnl_lun,'(A)') cmnd_buff(1:cmnd_len_w_cmnt)
 
 * *kob* 5/99 - Flush buffer
 	   CALL FLUSH(jrnl_lun)
@@ -214,10 +230,11 @@
 c 200	CALL my_readline(cmnd_lun,cmnd_buff,LEN(cmnd_buff),has_more)
 c        IF(has_more.NE.1) goto 210
 
-	cmnd_len = TM_LENSTR1( cmnd_buff )
-	IF (cmnd_buff(cmnd_len:cmnd_len) .EQ. pCR ) THEN
-	    cmnd_buff(cmnd_len:cmnd_len) = ' '
-	    IF (cmnd_len .GT. 1) cmnd_len = cmnd_len - 1
+	cmnd_len_w_cmnt = TM_LENSTR1( cmnd_buff )
+	IF (cmnd_buff(cmnd_len_w_cmnt:cmnd_len_w_cmnt) .EQ. pCR ) THEN
+	    cmnd_buff(cmnd_len_w_cmnt:cmnd_len_w_cmnt) = ' '
+	    IF (cmnd_len_w_cmnt .GT. 1) cmnd_len_w_cmnt = 
+     .					            cmnd_len_w_cmnt - 1
 	ENDIF
         IF ( cmnd_buff(1:1) .EQ. backslash ) THEN
            cmnd_buff(1:1) = ' '
@@ -225,10 +242,15 @@ c        IF(has_more.NE.1) goto 210
         ELSE
 	   do_verify = mode_verify
         ENDIF
-	prefix_verify = .FALSE.
+	prefix = ' '
 	GOTO 1000
 * end of command file - return to next lower control stack level
- 210	CALL POP_CS
+* if we were in the midst of an open IF block, issue a warning
+ 210	IF (if_conditional) THEN
+	   IF (csp .LE. if_cs(ifstk) ) CALL WARN(
+     .			'Unclosed IF statement ... assuming ENDIF')
+	ENDIF
+	CALL POP_CS
 	IF ( csp.EQ.0 .AND. mode_gui ) THEN		! GUI code ...
 	   gui_status = ferr_ok	! a clean bill o' health at GO termination
 	   RETURN 1
@@ -241,39 +263,118 @@ c        IF(has_more.NE.1) goto 210
 *************** COMMAND STACK AS SOURCE OF COMMAND LINE ***********************
 
  300	CALL CS_COMMAND( cmnd_buff, *20 )
-	cmnd_len = TM_LENSTR1( cmnd_buff )
+	cmnd_len_w_cmnt = TM_LENSTR1( cmnd_buff )
 	do_verify =  mode_verify .AND. mode_arg(pmode_verify,1).GE.2
-	prefix_verify = .TRUE.
+	prefix = dprefix
+
+
+*********** SAVE THE RAW COMMAND TO USE FOR ECHOING *************
+ 1000	raw_cmnd_buff = cmnd_buff
 
-*********** POSSIBLY SKIP COMMAND UNDER IF CONTROL (4/96) ********************
- 1000	IF (if_conditional) CALL PROCESS_IF(cmnd_buff, cmnd_len, *20)
+*********** TRIM "yes?" and "...?" FROM START OF LINE
+	DO WHILE (cmnd_buff(1:5) .EQ. 'yes? '
+     .       .OR. cmnd_buff(1:5) .EQ. '...? ' )
+	   IF ( cmnd_len_w_cmnt .LT. 6 ) THEN
+	     cmnd_buff = ' '
+	     cmnd_len_w_cmnt = 1
+	   ELSE
+	     cmnd_buff = cmnd_buff(6:cmnd_len_w_cmnt)
+	     cmnd_len_w_cmnt = cmnd_len_w_cmnt - 5
+	   ENDIF
+	ENDDO
+
+*********** TRIM COMMAND BUFF TO EXCLUDE BANG_COMMENTS  ********************
+* 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_buff(1:1) .EQ. '!'
+     . .OR. cmnd_buff(1:1) .EQ. '*'
+     . .OR. cmnd_buff(1:1) .EQ. ' ' .AND. cmnd_len .EQ. 1) THEN
+	   pure_comment = .TRUE.
+	ELSE
+* ... search forward in the command string for the first non-escaped "!"
+	   DO i = 2, cmnd_len_w_cmnt
+	      IF  ( cmnd_buff(i  :i  ) .EQ. '!' 
+     .	      .AND. cmnd_buff(i-1:i-1) .NE. backslash ) GOTO 1005
+	   ENDDO
+* ... no bang comment found
+	   GOTO 1010
+* ... found "!".  Now search backwards for the last non-white character
+ 1005	   pure_comment = .TRUE. ! default until non-white char found
+           DO cmnd_len = i-1, 1, -1
+              IF (  cmnd_buff(cmnd_len:cmnd_len) .NE. ' '
+     .        .AND. cmnd_buff(cmnd_len:cmnd_len) .NE. tab ) THEN
+	         pure_comment = .FALSE.
+	         GOTO 1010
+	      ENDIF
+	   ENDDO
+* ... nothing but blanks preceding the comment bang
+	   pure_comment = .TRUE.
+	ENDIF
 
-*********** ECHO THE COMMAND ****************************
-	IF (do_verify) THEN
-	   IF (prefix_verify) THEN
+*********** ECHO THE COMMAND WITH ITS COMMENTS ***********************
+ 1010	IF (.NOT.if_conditional .AND. do_verify ) THEN
+* ... echoing in IF blocks is handled by PROCESS_IF
+	   IF (prefix .EQ. ' ') THEN
+* ... separate SPLIT_LIST call to avoid single char ' ' prefix
 	      CALL SPLIT_LIST(pttmode_ops, ttout_lun,
-     .			' !-> '//cmnd_buff, cmnd_len+5 )
+     .				 cmnd_buff, cmnd_len_w_cmnt)
 	   ELSE
-	      CALL SPLIT_LIST(pttmode_ops, ttout_lun, cmnd_buff, cmnd_len)
+	      CALL SPLIT_LIST(pttmode_ops, ttout_lun,
+     .			prefix//cmnd_buff, cmnd_len_w_cmnt+5 )
 	   ENDIF
 	ENDIF
 
-*********** LEFT JUSTIFY THE COMMAND  ********************
-	IF ( .NOT.has_continuation_cmnd ) THEN
+*********** IF WE ONLY HAVE A COMMENT GET A FRESH STRING *************
+	IF (pure_comment .AND. .NOT.appending_cmnd) GOTO 20
+
+*********** WIPE OUT COMMENT AND LEFT JUSTIFY  ********************
+	IF (pure_comment) THEN
+	   cmnd_buff = ' '
+	   cmnd_len = 1
+	ELSEIF (cmnd_len_w_cmnt .GT. cmnd_len) THEN
+	   cmnd_buff(cmnd_len+1:cmnd_len_w_cmnt) = ' '
+	ENDIF
+	IF ( .NOT.appending_cmnd ) THEN
 	   CALL LEFT_JUST( cmnd_buff, cmnd_buff, cmnd_len )
-           IF ( cmnd_buff(1:1) .EQ. '?' ) THEN   ! should be an ALIAS!!
+           IF ( cmnd_buff(1:1) .EQ. '?' ) THEN   ! "?" should be an ALIAS!!
 	      cmnd_buff = 'HELP'    ! 8/92
 	      cmnd_len = 4
 	   ENDIF
 	ENDIF
 
-*************** DECODE THE COMMAND LINE ***************************************
+********** INCOMPLETE (CONTINUED) CMND LINE -- MUST GET MORE ***************
+	IF (cmnd_buff(cmnd_len:cmnd_len) .EQ. backslash) THEN
+* ... save this line as a partial command
+	   IF (appending_cmnd) THEN
+	      cmnd_copy = cmnd_copy(:len_cmnd_copy) // cmnd_buff(:cmnd_len)
+	      len_cmnd_copy = len_cmnd_copy + cmnd_len
+	   ELSE
+	      cmnd_copy = cmnd_buff(:cmnd_len)
+	      len_cmnd_copy = cmnd_len
+	   ENDIF
+* ... wipe out the backslash in the stored copy
+	   cmnd_copy(len_cmnd_copy:len_cmnd_copy) = ' '
+	   len_cmnd_copy = len_cmnd_copy - 1
+* ... go back for more
+	   appending_cmnd = .TRUE.
+	   GOTO 20
+	ENDIF
+
+*************** ASSEMBLE COMPLETED CONTINUATION LINES ********************
+	IF (appending_cmnd) THEN
+	   IF ( len_cmnd_copy+cmnd_len .GE. cmnd_buff_len ) GOTO 5005 
+	   cmnd_buff = cmnd_copy(:len_cmnd_copy) // cmnd_buff(:cmnd_len)
+	   cmnd_len = len_cmnd_copy + cmnd_len
+	   appending_cmnd = .FALSE.
+	ENDIF
 
-        DO 400 i = 1, max_arg_list
-           arg_start(i) = 0
-           arg_end(i) = 0
- 400    CONTINUE
+*********** WHEN WITHIN AN IF BLOCK, COMMANDS MAY BE SKIPPED ****************
+	IF (if_conditional) CALL PROCESS_IF(cmnd_buff, cmnd_len,
+     .			            do_verify, prefix, raw_cmnd_buff, *20)
 
+*************** PARSE THE COMMAND LINE ***************************************
+* 1/14 the command string now has no continuations and no comments
 	CALL PARSE_COMMAND ( memory, cmnd_buff,
      .			     max_arg_list, max_qual_list,
      .			     len_cmnd, cmnd_num, subcmnd_num, 
@@ -295,12 +396,13 @@ c        IF(has_more.NE.1) goto 210
 
 *************** REORGANIZE LIST OF QUALIFIERS GIVEN TO INTERNAL ORDER   ********
 
-	DO 1010 iqual = 1, max_qual_list
- 1010	qual_given( iqual ) = 0
-	DO 1020 ilist = 1, num_qualifiers
+	DO iqual = 1, max_qual_list
+	   qual_given( iqual ) = 0
+	ENDDO
+	DO ilist = 1, num_qualifiers
 	   IF ( cmnd_buff( qual_start(ilist):qual_start(ilist) ) .NE. '@' )
      .				qual_given( qualifier_list( ilist ) ) = ilist
- 1020	CONTINUE
+	ENDDO
 
 *************** BREAK APART ITEMS SEPARATED BY COMMAS IN FIRST ARGUMENT ********
 
@@ -321,4 +423,11 @@ c        IF(has_more.NE.1) goto 210
 	
 	RETURN
 
+* error exits
+ 5005	CALL ERRMSG( ferr_syntax, status,
+     .			'command line too long -- exceeds 2048', *9000 )
+! 2048 must match cmnd_buff_len
+ 9000	RETURN 1
+
+
 	END
diff --git a/fer/gnl/get_fvars_list_by_attname_and_val.F b/fer/gnl/get_fvars_list_by_attname_and_val.F
index 17c5097..babea2a 100644
--- a/fer/gnl/get_fvars_list_by_attname_and_val.F
+++ b/fer/gnl/get_fvars_list_by_attname_and_val.F
@@ -39,10 +39,11 @@
 *
 * return a list of all file variables that have a particular given value for
 * a given string attribute
-* intended usage:  find variables that have _SIGMA_REF_'="DEPTH"
+* intended usage:  find variables that have __LAYERZ_REF__'="DEPTH"
 * Note: if the incoming string is unspecified_name4, then all attrib vals match
 
 * V690: 2/14 *sh* 
+* V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
 
         IMPLICIT NONE
 #include "tmap_dset.parm"
@@ -79,7 +80,7 @@
 
 	   CALL CD_GET_VAR_ID (dset, ds_var_code(ivar), varid, status)
 
-           found_one = NC_GET_ATTRIB ( dset, varid, patnam_sigma,
+           found_one = NC_GET_ATTRIB ( dset, varid, patnam_layerz,
      .                               .FALSE., ds_var_code(ivar), maxlen,
      .                               attlen, attoutflag, retstring,
      .                               attvals )
diff --git a/fer/gnl/get_uvars_list_by_attname_and_val.F b/fer/gnl/get_uvars_list_by_attname_and_val.F
index 63825c8..c635ec8 100644
--- a/fer/gnl/get_uvars_list_by_attname_and_val.F
+++ b/fer/gnl/get_uvars_list_by_attname_and_val.F
@@ -43,6 +43,7 @@
 * Note: if the incoming string is unspecified_name4, then all attrib vals match
 
 * V690: 2/14 *sh* 
+* V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
 
         IMPLICIT NONE
 #include "tmap_dset.parm"
@@ -81,7 +82,7 @@
 	DO ivar = 1, num_indices
 
 	   CALL CD_GET_VAR_ID (dsetm1, uvar_name_code(ivar), varid, status)
-           found_one = NC_GET_ATTRIB ( dsetm1, varid, patnam_sigma,
+           found_one = NC_GET_ATTRIB ( dsetm1, varid, patnam_layerz,
      .                            .FALSE., uvar_name_code(ivar), maxlen,
      .                            attlen, attoutflag, retstring,
      .                            attvals )
@@ -96,7 +97,7 @@
 	      IF (found_one) THEN
 	         nfound = nfound + 1
 	         id_list  (nfound) = varid
-	         dset_list(nfound) = -1 ! needs to be uvar_dset(ivar) for LET/D
+	         dset_list(nfound) = pdset_uvars  ! needs to be uvar_dset(ivar) for LET/D
 	         IF (nfound .EQ. maxlist) RETURN  ! hacky but good enuf
 	      ENDIF
 	   ENDIF
diff --git a/fer/gnl/init_aggregate_dset.F b/fer/gnl/init_aggregate_dset.F
index 7d568b5..9e952a8 100644
--- a/fer/gnl/init_aggregate_dset.F
+++ b/fer/gnl/init_aggregate_dset.F
@@ -1,5 +1,5 @@
 	SUBROUTINE INIT_AGGREGATE_DSET (dname, dtitle, agg_dset, 
-     .     agg_quiet, agg_hide, status )
+     .     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
@@ -40,8 +40,11 @@
 * 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'
@@ -49,6 +52,7 @@
 	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'
@@ -58,21 +62,27 @@
 
 * calling argument declarations:
 	CHARACTER*(*)	dname, dtitle
-	INTEGER		agg_dset, status
+	INTEGER		agg_dset, agg_dim, status
 	LOGICAL		agg_quiet, agg_hide
 
 * local variable declarations:
-	LOGICAL	match, has_uvars
+	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,
+     .		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
-	CHARACTER vname*128
+     .		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
@@ -107,16 +117,47 @@
  220	CONTINUE
 
 * Create datset. Will delete it later if there are no aggregate variables found.
-
-	CALL CREATE_AGG_DSET (agg_dset, dname, dtitle, nsets, 
-     .			 e_dim, iline, status)  
+	CALL CREATE_AGG_DSET (agg_dset, dname, dtitle,
+     .			 nsets, agg_dim, iline, status)  
 	IF (status .NE. ferr_ok) GOTO 5300
 
-* See what variables are shared by all the datsets
+* 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)
@@ -149,7 +190,7 @@
 	   ENDIF
 
            grid = ds_grid_number(ivar)
-	   IF (grid_line(e_dim, grid) .NE. 0) GOTO 5400
+	   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
@@ -157,20 +198,32 @@
 *      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
 
@@ -180,16 +233,43 @@
 
 	            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
@@ -197,15 +277,21 @@
      .	         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
-c	   IF (has_uvars) grid = unspecified_int4
-	   CALL DEFINE_AGGREGATE_GRID (agg_dset, nvars, vname,
-     .           ivar, iline, grid, e_dim, member_sets, nsets)
+
+	   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
@@ -258,17 +344,16 @@ c	   IF (has_uvars) grid = unspecified_int4
 
               nvars = nvars + 1
 
-c	      grid = unspecified_int4
-	      CALL DEFINE_AGGREGATE_GRID (agg_dset, nvars, vname,
-     .           fvar, iline, grid, e_dim, member_sets, nsets)
+	      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)
+     .	         'Must be a file variable in at least '//
+     .		 'one member dataset: '// vname)
 
 	   ENDIF
 
@@ -319,7 +404,8 @@ c	      grid = unspecified_int4
 	agg_dset = unspecified_int4
 	GOTO 5000
 
- 5100   CALL ERRMSG( ferr_syntax,status,'dataset name already in use:'
+ 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 )
diff --git a/fer/gnl/list_cmnd_data.F b/fer/gnl/list_cmnd_data.F
index ff387bb..abc440c 100644
--- a/fer/gnl/list_cmnd_data.F
+++ b/fer/gnl/list_cmnd_data.F
@@ -68,7 +68,7 @@
 * V530:  3/01 *acm*- Put the calendar name in the heading if TIME not
 *		     otherwise listed, and if non-gregorian calendar.
 * V540: 11/01 *sh* - added LIST/WIDTH=
-*	           - expanded and reorganized the LIST heading
+*	           - expanded and reorganized the LIST headng
 * V552   2/03 *acm*- Increase line_buff to 10000
 * v553   9/03 *kob*- Increase GET_STRING_ELEMENT to 512 
 * V554   3/04 *acm*-For REPEAT/RANGE vars, add check for dset = unspecified_int4
@@ -120,7 +120,7 @@
         CHARACTER*(*) dods_file
 	
 * local variable declarations:
-	LOGICAL		GEOG_LABEL, TM_DFPEQ, 
+	LOGICAL		GEOG_LABEL, TM_DFPEQ, ITS_FMRC,
      .			line_too_long, del_col_changed, all_bad,
      .			valid(nferdims), need_doc(nferdims), span(nferdims), do_unform,
      .			do_stream, do_comma_del, do_tab_del, itsa_string,
@@ -254,7 +254,7 @@
 * ... DODS URL BASE or ABSOLUTE PATH
 * *kob* v553 - CYGWIN paths are always preceded by '.'
 #ifdef __CYGWIN__
-	   IF (i.GT.0 .AND.  ds_des_name(dset)(2:2).EQ.'\')
+	   IF (i.GT.0 .AND.  ds_des_name(dset)(2:2).EQ.'\')   ! ' for emacs
 #else
 	   IF (i.GT.0 .AND.  ds_des_name(dset)(1:1).NE.'.')
 #endif
@@ -342,6 +342,41 @@
 	   ENDIF
  60	CONTINUE
 
+* ... T-F plane coaching
+*    If this variable is FMRC, then add annotations to disambiguate the 2 time axes
+*      "Initialization time increases across row. Verification time increases down page."
+        IF ( ITS_FMRC(grid)
+     . .AND. (row_ax.EQ.t_dim .OR. row_ax .EQ. f_dim
+     .   .OR. col_ax.EQ.t_dim .OR. col_ax .EQ. f_dim) ) THEN
+           line_buff = ' '
+           alen = 0
+           IF (row_ax.EQ.t_dim .OR. row_ax .EQ. f_dim) THEN
+              IF (row_ax.EQ.t_dim) THEN
+                 line_buff = 'Verification'
+                 alen = 14
+              ELSE
+                 line_buff = 'Initialization'
+                 alen = 16
+              ENDIF
+              line_buff(alen:) = "time increases across row."
+              alen = alen + 26
+           ENDIF
+           IF (col_ax.EQ.t_dim .OR. col_ax .EQ. f_dim) THEN
+              IF (alen .GT. 0) alen = alen + 1
+              IF (col_ax.EQ.t_dim) THEN
+                 line_buff(alen+1:) = 'Verification'
+                 alen = alen + 14
+              ELSE
+                 line_buff(alen+1:) = 'Initialization'
+                 alen = alen + 16
+              ENDIF
+              line_buff(alen:) = "time increases down page."
+              alen = alen + 25
+           ENDIF
+           CALL SPLIT_LIST(pttmode_explct,list_lun,
+     .      '             '//line_buff,alen+13)
+        ENDIF
+
 * * * * * DETERMINE LIST LIMITS * * *
  200	DO 210 i = 1, nferdims
 	   idim = perm(i)
@@ -425,6 +460,8 @@
 	         WRITE ( list_lun, list_format ) (ax_buff(j),j=1,npts)
 	      ENDIF
  250	   CONTINUE
+
+
 * ... DATA:
 	     CALL SPLIT_LIST(pttmode_explct, list_lun, 'DATA:', 5 )
 	ENDIF
@@ -769,8 +806,8 @@
      .				' '//line_buff(:w0), w0+1 )
 
 * . . .  then subscript values ...
-	   WRITE ( col_head_format, 3020 ) cleft+1-(width-3)/2,
-     .					      num_fields,  width
+           llen = MAX(1, cleft+1-(width-3)/2)
+	   WRITE ( col_head_format, 3020 ) llen, num_fields,  width
 	   WRITE ( line_buff, col_head_format ) ( i,i = lo1,hi1,del1 ) 
  3020	   FORMAT ( '(',I2,'X,',I5,'I',I2,')' )	! eg. "( 8X, 10I 6)"
 	   CALL SPLIT_LIST(pttmode_explct, list_lun, line_buff, 0 )
diff --git a/fer/gnl/list_multi_sub.F b/fer/gnl/list_multi_sub.F
index 6ab7852..9c4c49b 100644
--- a/fer/gnl/list_multi_sub.F
+++ b/fer/gnl/list_multi_sub.F
@@ -461,8 +461,8 @@
 	   IF ( mr_type(mr_list(ivar)) .EQ. ptype_string ) THEN
               width(ivar) = MIN(nleft+3, 1020)  ! arbitrary 1020 char max   
 	   ELSEIF ( all_bad ) THEN
-	      width(ivar) = min_width
-	      WRITE ( bad_fmt(ivar), 3002 ) min_width
+	      width(ivar) = MAX(min_width, 5)
+	      WRITE ( bad_fmt(ivar), 3002 ) 5
  3002	FORMAT ( '(A',I2,')' )	
 	   ELSE
 	      CALL VAR_DATA_FMT( nleft, nright, prec_digits, min_width,
diff --git a/fer/gnl/parse_comma_list.F b/fer/gnl/parse_comma_list.F
index 4246042..aac5ba6 100644
--- a/fer/gnl/parse_comma_list.F
+++ b/fer/gnl/parse_comma_list.F
@@ -60,6 +60,8 @@
 * V533: *sh* 7/01 - allow both single and double quoted strings
 * 1/03 *kob* g77 port -  Need to use risc_buff for arbitrary concatenations
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V693 *sh* 12/14 added support for _DQ_ and _SQ_ style of quotation marks
+*                 changed unpaired [], {}, "", '', etc from error to acceptable
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -130,6 +132,7 @@
  40	   CONTINUE
 	   GOTO 5020	! unpaired
 
+
 * ... ignore commas sandwiched between ( )
 	ELSEIF ( buffer(ip:ip) .EQ. '(' ) THEN
 	   nest_level = -1  ! will be immediately incremented
@@ -167,6 +170,28 @@
 	   ENDDO
 	   GOTO 5020	! unpaired
 
+* ... ignore commas sandwiched between _DQ_ or _SQ_ ! 12/14
+	ELSEIF ( buffer(ip:ip) .EQ. "_" 
+     .     .AND. ip+3 .LE. iend         ) THEN
+           IF ( buffer(ip:ip+3) .EQ. p_DQ_quote ) THEN
+	      DO i = ip+4, iend-3
+	         IF ( buffer(i:i+3) .EQ. p_DQ_quote ) THEN
+	            ip = i+3
+	            GOTO 30
+	         ENDIF
+	      ENDDO
+	      GOTO 5020	! unpaired
+           ELSEIF ( buffer(ip:ip+3) .EQ. p_SQ_quote ) THEN
+	      DO i = ip+4, iend-3
+	         IF ( buffer(i:i+3) .EQ. p_SQ_quote ) THEN
+	            ip = i+3
+	            GOTO 30
+	         ENDIF
+	      ENDDO
+	      GOTO 5020	! unpaired
+           ENDIF
+           GOTO 30      ! just a harmless "_"
+
 * ... comma as terminator
 	ELSEIF ( buffer(ip:ip) .EQ. ',' ) THEN
 * ... search backwards for the last non-blank/tab
diff --git a/fer/gnl/parse_command.F b/fer/gnl/parse_command.F
index 9449c6a..c447163 100644
--- a/fer/gnl/parse_command.F
+++ b/fer/gnl/parse_command.F
@@ -115,6 +115,15 @@
 * V68  *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 * V68  *acm* 7/12 return 16 digits by default for grave-accent expressions
 * V685+ *acm* 12/13  bounds checking: dont refer to parts of the string outside its bounds.
+* V693 *sh* 12/14 moved arg_start/end inits into PARSE_COMMAND (housekeeping)
+*	          Changes in GET_FERRET_CMND simplify this routine:
+*                   1) comments are never passed into this routine
+*                   2) nor "yes? " or "...? "
+*                   3) continuation lines are assembled before getting here
+*                 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.
+
 
 * command, subcommand and qualifiers will be identified by number in
 *	 COMMON/XCOMMAND.  Arguments will be returned as positions in
@@ -159,13 +168,14 @@
 *
 **kob*12/97!!! NOTE:local_max_arg_list must match max_arg_list in xprog_state
         INTEGER local_max_arg_list
-        PARAMETER (local_max_arg_list = 256)
+        PARAMETER (local_max_arg_list = 128)
 
 * modified def of MATCH4 from INTEGER to LOGICAL *kob* IBM port 8/94
 	LOGICAL	TM_LEGAL_NAME, known_qualifier, atsin_qualifier,
-     .          surround_quote, doub_quote, subst, first_paren,
+     .          doub_quote, DQ_quote,
+     .		surround_quote, surround_DQ_, end_DQ_, subst, first_paren,
      .          itsa_qualifier(local_max_arg_list), 
-     .          MATCH4, escape, apply_cx, ptrslash
+     .          MATCH4, escape, apply_cx, ptrslash, i3_ok
 	INTEGER TM_LENSTR
 	INTEGER	buff_len, bang_position, ptr, quote_end,
      .		word_num, look_ahead, look_back, isub_word, csgo,
@@ -200,96 +210,113 @@
 	cmnd_num 	= 0		! in case of comment line
 	cmnd_buff (buff_len:buff_len) = ' '	! always end with blank
 
+* inits moved into this code from get_ferret_command (housekeeping)
+        DO i = 1, local_max_arg_list
+           arg_start(i) = 0
+           arg_end(i) = 0
+	ENDDO
+
 * full length of text
 	cmnd_len = TM_LENSTR (cmnd_buff)
 
-* 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
-
-* 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)
-	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
-* ... ... 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
- 15	IF ( has_continuation_cmnd ) THEN
-	   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
+! 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
 
 * 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
 
-* 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
+! 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
@@ -328,14 +355,21 @@
 * ... it is a command group if there is a ";" NOT enclosed in parens
            nparen = 0
            surround_quote = .FALSE.
+	   surround_DQ_   = .FALSE.
            DO 60 i = 1, cmnd_len
+	      i3_ok = i+3 .LT. cmnd_len
 	      c1 = cmnd_buff(i:i)
               IF ( c1 .EQ. '(' ) THEN
                  nparen = nparen + 1
               ELSEIF ( c1 .EQ. ')' ) THEN
                  nparen = nparen - 1
               ELSEIF ( c1 .EQ. '"' ) THEN
-                 surround_quote = .NOT.surround_quote
+                 IF (.NOT.surround_DQ_)
+     .			surround_quote = .NOT.surround_quote
+              ELSEIF ( i3_ok
+     .          .AND. cmnd_buff(i:i+3) .EQ. p_DQ_quote ) THEN
+                 IF (.NOT.surround_quote)
+     .			surround_DQ_   = .NOT.surround_DQ_
               ELSEIF ( c1 .EQ. ';' ) THEN
 	         escape = i.GT.1
 #ifdef NO_DOUBLE_ESCAPE_SLASH
@@ -345,6 +379,7 @@
 #endif
                  IF ( nparen.EQ.0
      .		.AND. .NOT.escape
+     .		.AND. .NOT.surround_DQ_
      .		.AND. .NOT.surround_quote ) THEN
                     cmnd_num = cmnd_semicolon
                     GOTO 1000   ! successful exit
@@ -431,46 +466,87 @@
 * we have found the start of a word - initialize variables
  300    arg_start (word_num) = ptr
         surround_quote = .FALSE.
+	surround_DQ_   = .FALSE.
 
-* start searching for the end of the word: blank,tab,"/" or ", if its a quote
- 400	CONTINUE
+* start searching for the end of the word: blank or tab
+* include as a block (i.e. skip over) quoted text 
+ 400	CONTINUE  ! ============= TOP OF LOOP
 
 * Define a logical to stay away from cmnd_buff(ptr-1:ptr-1) when ptr = 1
-        ptrslash = .FALSE.
-	IF (ptr .GT. 1) THEN
+           ptrslash = .FALSE.
+	   IF (ptr .GT. 1) THEN
 #ifdef NO_DOUBLE_ESCAPE_SLASH
-	   IF ( cmnd_buff(ptr-1:ptr-1) .EQ. '\' ) ptrslash = .TRUE.
+	      IF ( cmnd_buff(ptr-1:ptr-1) .EQ. '\' ) ptrslash = .TRUE.
+!                            '  closing single quote to make emacs happy
 #else
-	   IF ( cmnd_buff(ptr-1:ptr-1) .EQ. '\\' ) ptrslash = .TRUE.
+	      IF ( cmnd_buff(ptr-1:ptr-1) .EQ. '\\' ) ptrslash = .TRUE.
 #endif
-        ENDIF
+           ENDIF
 	   IF (ptrslash) THEN
 	      GOTO 410
-  
-	   ELSEIF ( cmnd_buff(ptr:ptr) .EQ. '"' 
-     .	   .OR.     cmnd_buff(ptr:ptr) .EQ. "'"  ) THEN
-* ... quotation marks - skip past entire quotated string
-	      doub_quote = cmnd_buff(ptr:ptr) .EQ. '"' 
-              surround_quote = doub_quote
-     .	                 .AND. ptr .EQ. arg_start(word_num)
-	      DO 401 ptr = ptr+1, cmnd_len
+           ELSEIF ( cmnd_buff(ptr:ptr) .EQ. '"'  ) THEN
+* ... double quote - skip past entire quotated string
+              surround_quote = ptr .EQ. arg_start(word_num)
+              DO i = ptr+1, cmnd_len
 #ifdef NO_DOUBLE_ESCAPE_SLASH
-	        IF ( cmnd_buff(ptr-1:ptr-1) .EQ. '\'  ) GOTO 401
+                IF ( cmnd_buff(i-1:i-1) .EQ. '\'  ) CYCLE  ! ' for emacs
 #else
-	        IF ( cmnd_buff(ptr-1:ptr-1) .EQ. '\\' ) GOTO 401
+                IF ( cmnd_buff(i-1:i-1) .EQ. '\\' ) CYCLE
 #endif
-	        IF (cmnd_buff(ptr:ptr).EQ.'"' .AND. doub_quote
-     .	       .OR. cmnd_buff(ptr:ptr).EQ."'" .AND. .NOT.doub_quote) THEN
+                IF (cmnd_buff(i:i).EQ.'"' ) THEN
+	          ptr = i
                   quote_end = ptr
                   GOTO 410
                 ENDIF
- 401	      CONTINUE
-	      GOTO 5010
+	      ENDDO
+              GOTO 5010
+           ELSEIF ( cmnd_buff(ptr:ptr) .EQ. "'"  ) THEN
+* ... single quote - skip past entire quotated string
+              DO ptr = ptr+1, cmnd_len
+#ifdef NO_DOUBLE_ESCAPE_SLASH
+                IF ( cmnd_buff(ptr-1:ptr-1) .EQ. '\'  ) CYCLE  ! ' for emacs
+#else
+                IF ( cmnd_buff(ptr-1:ptr-1) .EQ. '\\' ) CYCLE
+#endif
+                IF (cmnd_buff(ptr:ptr).EQ."'" ) GOTO 410
+	      ENDDO
+              GOTO 5010
+           ELSEIF ( cmnd_buff(ptr:ptr) .EQ. '_'  
+     .	      .AND. ptr+3 .LE. cmnd_len           ) THEN
+	      IF (cmnd_buff(ptr:ptr+3) .EQ. p_DQ_quote) THEN
+* ... _DQ_ quote - skip past entire quotated string
+                 surround_DQ_ = ptr .EQ. arg_start(word_num)
+                 DO i = ptr+4, cmnd_len
+                    IF (cmnd_buff(ptr:ptr).EQ.'_' 
+     .            .AND. i+3 .LE. cmnd_len           ) THEN
+	               IF (cmnd_buff(i:i+3) .EQ. p_DQ_quote) THEN
+	                  ptr = i + 3
+                          quote_end = ptr
+                          GOTO 410
+	               ENDIF
+                    ENDIF
+	         ENDDO
+                 GOTO 5010
+	      ELSEIF (cmnd_buff(ptr:ptr+3) .EQ. p_SQ_quote) THEN
+* ... _SQ_ quote - skip past entire quotated string
+                 DO i = ptr+4, cmnd_len
+                    IF (cmnd_buff(ptr:ptr).EQ.'_' 
+     .            .AND. i+3 .LE. cmnd_len           ) THEN
+	               IF (cmnd_buff(i:i+3) .EQ. p_SQ_quote) THEN
+	                  ptr = i + 3
+                          GOTO 410
+	               ENDIF
+                    ENDIF
+	         ENDDO
+                 GOTO 5010
+	      ENDIF
+	      GOTO 410   ! this underscore was not part of _DQ_ or _SQ_
 	   ELSEIF ( cmnd_buff(ptr:ptr) .EQ. '`' ) THEN
 * ... grave accent - skip past entire immediate mode expression
 	      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
 #else
 	         IF ( cmnd_buff(ptr-1:ptr-1) .EQ. '\\' ) GOTO 402
 #endif
@@ -483,6 +559,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
 #else
 	         IF ( cmnd_buff(ptr-1:ptr-1) .EQ. '\\' ) GOTO 403
 #endif
@@ -500,6 +577,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
 #else
 	         IF ( cmnd_buff(ptr-1:ptr-1) .EQ. '\\' ) GOTO 404
 #endif
@@ -574,8 +652,12 @@
  420    IF ( surround_quote ) THEN
 	   arg_start(word_num) = arg_start(word_num) + 1
            arg_end  (word_num) = quote_end - 1
-cc           IF ( arg_start(word_num) .GT. arg_end(word_num) ) GOTO 5015
-cc  Allow it to be zero-length
+cc  Allow zero-length null string in quotes
+           IF ( arg_start(word_num) .GT. arg_end(word_num)+1 ) GOTO 5015
+	ELSEIF ( surround_DQ_ ) THEN
+	   arg_start(word_num) = arg_start(word_num) + 4
+           arg_end  (word_num) = quote_end - 4
+cc  Allow zero-length null string in quotes
            IF ( arg_start(word_num) .GT. arg_end(word_num)+1 ) GOTO 5015
 	ELSE
 	   arg_end (word_num) = ptr - 1
@@ -725,14 +807,29 @@ cc  Allow it to be zero-length
 * the nature of arg_start,end allows safe (??) decrement/increment
 	IF (num_args .GE. 1) THEN
 	   arg1_quoted =
-     .	   (     cmnd_buff(arg_start(1)-1:arg_start(1)-1) .EQ. '"'
-     .     .AND. cmnd_buff(arg_end(1)  +1:arg_end(1)  +1) .EQ. '"' )
-     . .OR.(     cmnd_buff(arg_start(1)-1:arg_start(1)-1) .EQ. "'"
-     .     .AND. cmnd_buff(arg_end(1)  +1:arg_end(1)  +1) .EQ. "'" )
+     .	        (cmnd_buff(arg_start(1)-1:arg_start(1)-1) .EQ. '"'
+     .     .AND. cmnd_buff(arg_end  (1)+1:arg_end  (1)+1) .EQ. '"' )
+     .   .OR.
+     .	        (cmnd_buff(arg_start(1)-1:arg_start(1)-1) .EQ. "'"
+     .     .AND. cmnd_buff(arg_end  (1)+1:arg_end  (1)+1) .EQ. "'" )
+
+	   IF (.NOT.arg1_quoted
+     .    .AND. (cmnd_buff(arg_start(1)-1:arg_start(1)-1) .EQ. "_")
+     .    .AND. (cmnd_buff(arg_end  (1)+1:arg_end  (1)+1) .EQ. "_")
+     .    .AND. (arg_start(1)-4.GE.1)
+     .    .AND. (arg_end  (1)+4.LE.cmnd_len)                     )THEN
+	      arg1_quoted = 
+     .          (cmnd_buff(arg_start(1)-4:arg_start(1)-1) .EQ. "_DQ_"
+     .      .AND.cmnd_buff(arg_end  (1)+1:arg_end  (1)+4) .EQ. "_DQ_" )
+     .    .OR.
+     .          (cmnd_buff(arg_start(1)-4:arg_start(1)-1) .EQ. "_SQ_"
+     .      .AND.cmnd_buff(arg_end  (1)+1:arg_end  (1)+4) .EQ. "_SQ_" )
+	   ENDIF
 	ENDIF
 
 * REPEAT loops postpone symbol substitutions in arguments -- all 1 arg for now
 	IF ( cmnd_num .EQ. cmnd_repeat ) THEN
+	   IF (num_args .EQ. 0) GOTO 5070
 	   IF ( cmnd_buff(arg_end(num_args):arg_end(num_args)) .EQ. ')' 
      .    .AND. cmnd_buff(arg_start(1):arg_start(1)) .EQ. '(' ) THEN
 *   ... search backwards for left paren
@@ -876,14 +973,6 @@ cc  Allow it to be zero-length
 * error exits
  5000	RETURN
 
-! 5005   risc_buff = cmnd_buff(cmnd_len-19:cmnd_len)
-! 	CALL ERRMSG( ferr_line_too_long, status,
-!     .		     risc_buff(:20), *5000 )
-
- 5005	CALL ERRMSG( ferr_syntax, status,
-     .			'command line too long -- exceeds 2048', *5000 )
-! 2048 must match cmnd_buff_len
-
  5010	CALL ERRMSG( ferr_syntax, status,
      .			'unpaired quotation marks, grave accent or brackets',
      .			*5000 )
@@ -907,5 +996,8 @@ cc  Allow it to be zero-length
 
  5060	CALL ERRMSG( ferr_syntax, status,
      .		'Recursive aliases or GO argument definitions', *5000 )
+
+ 5070	CALL ERRMSG
+     .			( ferr_invalid_command, status, 'REPEAT what ?', *5000 )
 	END
 
diff --git a/fer/gnl/pop_cs.F b/fer/gnl/pop_cs.F
index dd183e9..aa74861 100644
--- a/fer/gnl/pop_cs.F
+++ b/fer/gnl/pop_cs.F
@@ -62,11 +62,15 @@
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 * V687  3/14 *acm* for ticket 2044, write note ! Exit from <script>
 * V687  3/14 *acm* for ticket 2044, write note ! Exit_GO only if SET REDIRECT is turned on.
+* V693+ 12/14 *sh* rolling back 4/99 change: an unclosed IF needs a warning
+*                  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
 
 * internal variable declarations:
 	INTEGER	LIB_FREE_LUN,TM_LENSTR1,stat,axis,ivar,cvar,csp_to,ll,
      .          slen, plen
-        INTEGER j, num_indices
+        INTEGER i, j, num_indices
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -87,14 +91,21 @@
 * we will issue a warning and then implicitly close the IF
 	IF (if_conditional) THEN
 	   IF (csp .LE. if_cs(ifstk) ) THEN
-! no! 4/99	      CALL WARN('Unclosed IF statement ... assuming ENDIF')
-	      ifstk = ifstk - 1
-	      IF (ifstk .EQ. 0 ) if_conditional = .FALSE.
+	      ifstk_skipping = 0
+* ... set ifstk to the level it was at the previous csp
+	      DO i = ifstk, 1, -1
+                 IF (csp .GT. if_cs(i)) THEN
+	            ifstk = i
+	            GOTO 5  ! if_conditional remains true
+	         ENDIF
+	      ENDDO
+	      ifstk = 0
+	      if_conditional = .FALSE.
 	   ENDIF
 	ENDIF
 
 * clean up old level
-	IF ( cs_cmnd_num( csp ) .EQ. cmnd_go ) THEN
+ 5	IF ( cs_cmnd_num( csp ) .EQ. cmnd_go ) THEN
 
 * ... Write note with script name, only if SET REDIRECT is turned on.
 	   IF (redirect_stdout_flags .NE. redirect_none) THEN
@@ -111,8 +122,8 @@
            axis = cs_axis( csp )
            cx_by_ss(axis,cx_last) = cs_save_by_ss( csp )
 
-           IF (axis .eq. t_dim) THEN
-              cx_calendar(cx_last) = .FALSE.
+           IF (axis .eq. t_dim .OR. axis .eq. f_dim) THEN
+              cx_calendar(axis,cx_last) = .FALSE.
               cx_cal_id(cx_last) = unspecified_int4
            ENDIF
 
diff --git a/fer/gnl/process_if.F b/fer/gnl/process_if.F
index 09e45e5..19af8ba 100644
--- a/fer/gnl/process_if.F
+++ b/fer/gnl/process_if.F
@@ -1,4 +1,5 @@
-	SUBROUTINE PROCESS_IF( cmnd_string, slen, * )
+	SUBROUTINE PROCESS_IF( cmnd_string, slen,
+     .			       do_verify, prefix, raw_cmnd, * )
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -55,17 +56,24 @@
 * V6.01 10/06 *acm*  Fix bug 1446 in the loop DO 200 when testing for a tab character, the
 *              index should be i not ic1. The perils of cut-and-pasting text from elsewhere!
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V693+ *sh* echoing of command lines is done here when inside of an IF block
+*        To avoid the confusing output of "ENDIF" during a skipped IF block
+*        count skipped nested IF statements using ifstk_skipping
+*        Note that this routine has been pretty trashed by repeated edits
+*        It should really be re-written, but seems risky (else I'd do it)
 
 * calling argument declarations:
+	LOGICAL		do_verify
 	INTEGER		slen
-	CHARACTER	cmnd_string*(*)
+	CHARACTER	cmnd_string*(*), prefix*5, raw_cmnd*(*)
 * RETURN 1 - used when the current command should be **skipped**
 
 * internal variable declarations:
 	INTEGER	STR_CASE_BLIND_COMPARE, ic1,
      .		status	! not returned
-        INTEGER STR_UPCASE, i, end_then, cmnd_len
-	LOGICAL its_endif, its_else, its_elif, its_if, one_liner
+        INTEGER STR_UPCASE, i, cmnd_len
+	LOGICAL ITSA_1LINEIF, 
+     .		its_endif, its_else, its_elif, its_if, one_liner
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -76,6 +84,7 @@
         include 'xrisc.cmn'
 
 * internal parameter declarations:
+	INTEGER		TM_LENSTR1
         CHARACTER*1     tab
 #ifdef NO_INTRINSIC_IN_PARAMETER
 	PARAMETER     ( tab = o'011' )
@@ -109,7 +118,7 @@
 cc	IF (its_if .OR. its_endif) RETURN
 
         IF ((its_if .OR. its_endif) .AND. 
-     .      if_doing(ifstk) .EQ. pif_doing_clause) RETURN
+     .      if_doing(ifstk) .EQ. pif_doing_clause) GOTO 1000
 
 	IF (if_conditional .AND. its_if ) THEN     ! nested IF?
 	   IF (if_doing(ifstk).NE.pif_doing_clause) THEN	! skipped IF?
@@ -119,89 +128,95 @@ cc	IF (its_if .OR. its_endif) RETURN
 * --- Check whether the current command is a one-line IF condition THEN command
 * --- and if so skip it, otherwise bump the IF stack.
 
-
-            one_liner = .FALSE.
             IF (its_if) THEN
-               end_then = INDEX(risc_buff(:slen), 'THEN') + 4
-               cmnd_len = INDEX(risc_buff(:slen), '!') - 1  ! check for comment at end
-               IF (cmnd_len .EQ. -1) cmnd_len = slen
-
-* See if there is a command after the THEN
-               DO 200 i = end_then,cmnd_len
-                   IF (cmnd_string(i:i).NE. ' '
-     .           .AND. cmnd_string(i:i).NE. tab) one_liner = .TRUE.
-  200          CONTINUE
-
-            ENDIF  
-
-	    IF ( num_args .LE. 2 .AND. .NOT. one_liner) THEN   ! multi-line nested IF?
-* ...       bump the IF stack - set up to skip this entire IF clause
-	         IF ( ifstk .GE. max_ifstk ) GOTO 5400
-	         ifstk = ifstk + 1
-cc	         if_doing(ifstk) = if_doing(ifstk-1)
-	         if_doing(ifstk) = pif_skip_to_endif
-	         if_cs(ifstk) = if_cs(ifstk-1)
-                 RETURN 1
+	       one_liner = ITSA_1LINEIF(risc_buff(:slen),slen)
+	    ELSE
+	       one_liner = .FALSE.
+	    ENDIF
+
+	    IF ( num_args .LE. 2 .AND. .NOT. one_liner) THEN  ! multi-line nested IF?
+* ...       bump the nested IF counting stack 
+	         ifstk_skipping = ifstk_skipping + 1
+                 RETURN 1    ! skip this command
 	      ENDIF
 	   ENDIF
 	ENDIF
         
-* Skipped if inside a repeat?  will have a ; or a ) after it.
-* One more fix: if the ; or ) follows a ! then ignore.
-
 	IF (if_conditional .AND. its_endif ) THEN     ! nested IF?
 	   IF (if_doing(ifstk).NE.pif_doing_clause) THEN	! skipped IF?
 
-           IF (INDEX(risc_buff, ')') .GT. INDEX(risc_buff,'ENDIF'))THEN
-	      IF (INDEX(risc_buff, '!') .GT. 0) THEN
-                IF (INDEX(risc_buff, ')') .LT. INDEX(risc_buff,'!'))
-     .            its_endif = .FALSE.
-              ELSE
-                 its_endif = .FALSE.
-              ENDIF
-	   ENDIF
-
-           IF (INDEX(risc_buff, ';') .GT. INDEX(risc_buff,'ENDIF'))THEN
-	      IF (INDEX(risc_buff, '!') .GT. 0) THEN
-                IF (INDEX(risc_buff, ';') .LT. INDEX(risc_buff,'!'))
-     .            its_endif = .FALSE.
-              ELSE
-                 its_endif = .FALSE.
-              ENDIF
+	      IF (ifstk_skipping .GT. 0) THEN
+	         ifstk_skipping = ifstk_skipping - 1 ! decrement nest level
+	         RETURN 1    ! skip this ENDIF command
+	      ENDIF
+! commented out this code 12/14 -- is it needed?
+* Skipped if inside a repeat?  will have a ; or a ) after it.
+* One more fix: if the ; or ) follows a ! then ignore.
+!           IF (INDEX(risc_buff, ')') .GT. INDEX(risc_buff,'ENDIF'))THEN
+!	      IF (INDEX(risc_buff, '!') .GT. 0) THEN
+!                IF (INDEX(risc_buff, ')') .LT. INDEX(risc_buff,'!'))
+!     .            its_endif = .FALSE.
+!              ELSE
+!                 its_endif = .FALSE.
+!              ENDIF
+!	   ENDIF
+!
+!           IF (INDEX(risc_buff, ';') .GT. INDEX(risc_buff,'ENDIF'))THEN
+!	      IF (INDEX(risc_buff, '!') .GT. 0) THEN
+!                IF (INDEX(risc_buff, ';') .LT. INDEX(risc_buff,'!'))
+!     .            its_endif = .FALSE.
+!              ELSE
+!                 its_endif = .FALSE.
+!              ENDIF
 	   ENDIF
         ENDIF
 
-        ENDIF
-
-	IF (its_endif) RETURN  ! process the endif, always
+	IF (its_endif) GOTO 1000  ! process any ENDIF not being skipped
 
 * now check each of the possible IF execution states
 	IF ( if_doing(ifstk) .EQ. pif_skip_to_endif ) THEN
 * skip everything until ENDIF is encountered
-	   RETURN 1
+	   RETURN 1   ! skip this command
 
 	ELSEIF ( if_doing(ifstk) .EQ. pif_doing_clause ) THEN
 * execute everything cuz we're "doing" the clause
-	   RETURN
+	   GOTO 1000
 
 	ELSEIF ( if_doing(ifstk) .EQ. pif_skip_to_clause ) THEN
-* check for ELSE or ELIF
+
+* check for ELSE or ELIF at the level from which skipping was initiated
 	   its_else  =
      .	      STR_CASE_BLIND_COMPARE(cmnd_string(ic1:ic1+3),'ELSE')
      .	 	    .EQ. vms_str_success
 	   its_elif  =
      .	      STR_CASE_BLIND_COMPARE(cmnd_string(ic1:ic1+3),'ELIF')
      .		    .EQ. vms_str_success
-	   IF (its_else .OR. its_elif) RETURN
+	   IF ((its_else .OR. its_elif) 
+     .	. AND. ifstk_skipping .EQ. 0  ) GOTO 1000
+
 * nope - just an ordinary command ... keep skipping 
-	   RETURN 1
+	   RETURN 1    ! skip this command
 
 	ELSE
 * unknown if condition
 	   GOTO 5000
 
 	ENDIF
- 1000	RETURN
+
+* this command needs to be executed
+* echo it if requested to do so
+ 1000	IF (do_verify) THEN
+	   slen = TM_LENSTR1(raw_cmnd)
+	   IF (prefix .EQ. ' ') THEN
+* ... separate SPLIT_LIST call to avoid single char ' ' prefix
+	      CALL SPLIT_LIST(pttmode_ops, ttout_lun,
+     .				 raw_cmnd, slen  )
+	   ELSE
+	      CALL SPLIT_LIST(pttmode_ops, ttout_lun,
+     .			prefix//raw_cmnd, slen+5 )
+	   ENDIF
+	ENDIF
+	RETURN
 
 
  5000	CALL ERRMSG(ferr_internal, status, 'ifstk!!', *1000)
diff --git a/fer/gnl/redefine_ax_att.F b/fer/gnl/redefine_ax_att.F
index cc1eb9d..423fc85 100644
--- a/fer/gnl/redefine_ax_att.F
+++ b/fer/gnl/redefine_ax_att.F
@@ -85,12 +85,12 @@
       maxlen = 128
 
 c... loop over datasets
-c    Dataset -2 is the pseudo-dataset containing user-defined axes.
-c    see if name exists as an axis name.
+c    Dataset pdset_coordvars (value -2) is the pseudo-dataset containing 
+c    user-defined axes. See if name exists as an axis name.
 
-      DO 100 dset = -2, maxdsets
-         IF (dset .EQ. -1) GOTO 100
-         IF (dset .EQ.  0) GOTO 100
+      DO 100 dset = pdset_coordvars, maxdsets
+         IF (dset .EQ. pdset_uvars) GOTO 100
+         IF (dset .EQ. pdset_irrelevant) GOTO 100
 
          IF (dset .GT. 0) THEN
             IF ( ds_name(dset) .EQ. char_init1024) GOTO 100
diff --git a/fer/gnl/repl_exprns.F b/fer/gnl/repl_exprns.F
index d26b022..bfb92f3 100644
--- a/fer/gnl/repl_exprns.F
+++ b/fer/gnl/repl_exprns.F
@@ -109,6 +109,13 @@
 *                  flag dependency_tree_mode to turn regular error reporting back on.
 * V69+ *acm*  9/14 Ticket 981. If the variable is a constant-array, evaluate it to get
 *                  the grid size rather than returning the nominal length.
+* V695 *acm*  2/15 RETURN=F0 for calendar formatted F axis 
+* V695+ *sh* 2/15 add support for _DQ_ style of quotations
+* V694 *acm* 5/15 fix bug 2213
+* V695 *acm* 6/15 Add return=defined (ticket 2293)
+* 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.
 
 #include "netcdf.inc"
 	include 'tmap_dims.parm'
@@ -130,7 +137,7 @@
 	REAL	  memory( mem_blk_size, max_mem_blks )
 	CHARACTER cmnd*(*)
 
-* local parameter declarations
+* local parameter declarations 
 	INTEGER	   max_len
 	PARAMETER (max_len = 2048)
 !	INTEGER	   fmt_lenH
@@ -138,21 +145,23 @@
 
 * internal variable declarations:
 	LOGICAL   need_formatting, zero_fill, coordvar,
-     .            do_err, do_eval, get_ready, was_dep, const_arr_var
+     .            do_err, do_eval, get_ready, was_dep, const_arr_var,
+     .		  dqote, DQ
 	INTEGER   CGRID_SIZE, CGRID_AXIS, TM_LENSTR1, CX_DIM_LEN,
-     .		  FIND_DSET_NUMBER, str_len, lenbuff, iend, itmp, axis,
+     .		  FIND_DSET_NUMBER, GET_ABSTRACT_LINE, 
+     .		  str_len, lenbuff, iend, itmp, axis,
      .		  mr, cx, mr_temp, i, i2, use_digits, true_end,
      .		  qual_end, brkt, idim, use_width, dset, varid, 
      .            vartype, nvdims, vdims(8), nvatts, ist, ind,
      .            attype, attlen, inxt, attoutflag,outflag, fertype, 
-     .            attid, ieq, dqote, base_isp, base_cx, cat, var
+     .            attid, ieq, base_isp, base_cx, cat, var
 	REAL	  result, val
 	REAL*8 TM_WORLD, TM_WW_AXLEN, ww
-	CHARACTER TM_FMT*18, LEFINT*16, VAR_TITLE*(max_len),
+	CHARACTER TM_FMT*28, LEFINT*16, VAR_TITLE*(max_len),
+c	CHARACTER TM_FMT*18, 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
-!	CHARACTER fmt*(max_len)
         CHARACTER*6 typstring(0:6)
 
 * local parameter declarations
@@ -177,6 +186,7 @@
 	info_query = .FALSE.
         coordvar = .FALSE.
         apply_cx = .FALSE.
+	str_len = 0
 
 * do_err: issue error message if attrib does not exist on varname.attname
         do_err = .TRUE.
@@ -191,7 +201,7 @@
 	istart = istart + itmp
 #ifdef NO_DOUBLE_ESCAPE_SLASH
 	IF ( istart .GT. 2 ) THEN
-	   IF (cmnd(istart-2:istart-2) .EQ. '\') GOTO 10  
+	   IF (cmnd(istart-2:istart-2) .EQ. '\') GOTO 10  ! ' for emacs
 	ENDIF
 #else
 	IF ( istart .GT. 2 ) THEN
@@ -247,14 +257,24 @@
 
 * ... see if the equals sign is just part of some string within the grave accents
 *     This fixes bug 1469 (and its duplicate 1690)
-	dqote = 0
-	DO 198 i = istart, iend
-	   IF (cmnd(i:i).EQ.'"') THEN
-	      dqote = dqote + 1
-	   ELSEIF (cmnd(i:i).EQ.'=' .AND. dqote.GT.0) THEN
-	      IF (INDEX(cmnd(i:iend), '"') .GT. 0) GOTO 149 ! = inside a string
+* *sh* add support for _DQ_ style of quotations
+	dqote = .FALSE. 
+	DQ = .FALSE.
+	DO i = istart, iend
+	   IF (cmnd(i:i).EQ.'"' .AND. .NOT.DQ)  THEN
+	      dqote = .NOT.dqote
+	   ELSEIF (cmnd(i:i).EQ.'_'
+     .       .AND. i+3 .LE. iend ) THEN
+	      IF ( cmnd(i:i+3).EQ.'_DQ_' ) DQ = .NOT.DQ
+	   ELSEIF (cmnd(i:i).EQ.'=' ) THEN
+* ... does the "=" lie between quotation marks?
+	      IF (dqote)  THEN
+	         IF (INDEX(cmnd(i:iend), '"'   ) .GT. 0) GOTO 149
+	      ELSEIF (DQ) THEN
+	         IF (INDEX(cmnd(i:iend), '_DQ_') .GT. 0) GOTO 149
+	      ENDIF
 	   ENDIF
-198	CONTINUE
+	ENDDO
 
 * ... hunt for the next equal sign 
 	DO 93 i = ieq, iend
@@ -360,10 +380,25 @@
 	      ENDIF
 	      GOTO 500
 	   ENDIF
+	   
+
+* 11/2013
+* return=DEFINED needs only to check whether the user-variable is defined
+
+* ... RETURN=DEFINED
+	   IF ( repl(1:3) .EQ. "DEF" ) THEN
+	      str_len = 1
+	      repl = '0'	! default, pos=up, or not-depth.
+	      CALL FIND_VAR_NAME ( pdset_irrelevant, cmnd(istart:iend), cat, var )
+	      IF ( var .NE. munknown_var_name) repl = '1'
+	      GOTO 500
+	   ENDIF
 
 * ... evaluate the context without computing the expression
 *	this is a major performance consideration, but not 100% reliable
+
 	   has_uvar_gc = .FALSE.
+	   is_uvar_const = .FALSE.
 	   CALL GET_NEW_CX( cx_last, cx_cmnd, apply_cx, status )
 	   IF ( status .NE. ferr_ok ) GOTO 5000
            ist = istart
@@ -383,17 +418,300 @@
 
                  cx = is_cx(1)	! always comes back as the first context
 
+		 cat = cx_category(cx)
+
+* ... Returns that can be made without evaluating the expression. If success
+*     is not verified, will continue and try again after evaluation.
+
+	      IF (cx.EQ.unspecified_int4 .OR. cx.EQ.0) GOTO 4000 ! context not set
+
+* ... RETURN=UNITS
+              IF ( repl(1:4) .EQ. "UNIT" ) THEN	! or "=UNITS"
+	         repl = VAR_UNITS( cx )
+	         str_len = TM_LENSTR1(repl)
+	         GOTO 500
+
+* ... RETURN=TITLE
+	      ELSEIF ( repl .EQ. "TITLE" ) THEN
+	         repl = VAR_TITLE( cx )
+	         str_len = TM_LENSTR1(repl)
+	         GOTO 500
+		 
+* ... RETURN=BAD
+	      ELSEIF ( repl .EQ. "BAD" ) THEN
+	         result = cx_bad_data ( cx )
+	         repl = TM_FMT( result, use_digits, max_len, str_len )
+	         str_len = TM_LENSTR1(repl)
+	         GOTO 500
+		 
+* ... RETURN=T0
+	      ELSEIF ( repl .EQ. "T0" .AND. cat.EQ.cat_file_var) THEN
+	         repl = ' '	! default
+	         idim = T_DIM
+	         axis = CGRID_AXIS ( idim, cx )
+	         IF ( axis.NE.mnormal) THEN
+	            IF (line_direction(axis) .EQ. 'TI') THEN
+    		       repl = line_T0(axis)
+                       IF (line_shift_origin(axis)) 
+     .                   repl =  '01-JAN-0001 00:00:00'
+                    ELSE
+		      GOTO 4000
+		    ENDIF
+	         ENDIF
+	         str_len = TM_LENSTR1(repl)
+	         GOTO 500
+
+* ... RETURN=F0
+	      ELSEIF ( repl .EQ. "F0" .AND. cat.EQ.cat_file_var) THEN
+	         repl = ' '	! default
+	         idim = F_DIM
+	         axis = CGRID_AXIS ( idim, cx )
+	         IF ( axis.NE.mnormal) THEN
+	            IF (line_direction(axis) .EQ. 'FI') THEN
+    		       repl = line_T0(axis)
+                       IF (line_shift_origin(axis)) 
+     .                  repl =  '01-JAN-0001 00:00:00'
+                    ELSE
+		      GOTO 4000
+                    ENDIF
+	         ENDIF
+	         str_len = TM_LENSTR1(repl)
+	         GOTO 500
+              
+* ... RETURN=CALENDAR
+	      ELSEIF ( repl(1:3) .EQ. "CAL" .AND. cat.EQ.cat_file_var) THEN
+	         repl = ' '	! default
+	         axis = CGRID_AXIS ( T_dim, cx )
+	         IF ( axis.NE.mnormal) THEN
+	               IF (line_direction(axis) .EQ. 'TI' .OR.
+     .                  line_direction(axis) .EQ. 'TT')
+     .		        repl = line_cal_name(axis)
+	         ELSE
+		      GOTO 4000
+	         ENDIF
+	         str_len = TM_LENSTR1(repl)
+	         GOTO 500
+
+
+* ... RETURN=DSET, DSETNUM, DSETPATH, DSETTITLE
+	      ELSEIF ( repl(1:4) .EQ. "DSET" .AND. cat.EQ.cat_file_var) THEN
+	         i2 = cx_data_set(cx)
+	         IF ( i2 .EQ. pdset_irrelevant
+     .	        .OR.  i2 .EQ. unspecified_int4 ) THEN
+	            GOTO 4000
+	         ELSE
+                    IF ( repl .EQ. "DSETNUM") THEN
+	               repl = LEFINT(i2, str_len)
+	            ELSEIF ( repl .EQ. "DSETPATH" ) THEN
+	               CALL GET_DSET_NAME(i2, repl, str_len)
+                    ELSEIF ( repl .EQ. "DSET" ) THEN
+	               CALL GET_SHORT_DSET_NAME(i2, repl, str_len)
+                    ELSEIF ( repl .EQ. "DSETTITLE" ) THEN
+	               CALL GET_DSET_TITLE(i2, repl, str_len)
+                    ELSE 
+	               GOTO 4000
+                    ENDIF
+	         ENDIF
+	         str_len = TM_LENSTR1(repl)
+	         GOTO 500
+
+* ... RETURN=nc_scale, nc_offset
+	         ELSEIF ( repl(1:3) .EQ. "NC_" .AND. cat.EQ.cat_file_var) THEN
+	            IF ( repl .EQ. "NC_SCALE" ) THEN
+	               CALL GET_NC_SCALE (cx, result)
+	            ELSEIF ( repl(1:6) .EQ. "NC_OFF" ) THEN
+	               CALL GET_NC_OFFSET (cx, result)
+                    ELSE 
+	               GOTO 4000
+	            ENDIF
+	            repl = TM_FMT( result, use_digits, max_len, str_len )
+	            str_len = TM_LENSTR1(repl)
+	            GOTO 500
+
+* ... RETURN=user_scale, user_offset
+	         ELSEIF ( repl(1:5) .EQ. "USER_" ) THEN
+	            IF ( repl .EQ. "USER_SCALE" ) THEN
+	               CALL GET_USER_SCALE (cx, result)
+	            ELSEIF ( repl(1:8) .EQ. "USER_OFF" ) THEN
+	               CALL GET_USER_OFFSET (cx, result)
+	            ELSE 
+	               GOTO 4000
+	            ENDIF
+	            repl = TM_FMT( result, use_digits, max_len, str_len )
+	            str_len = TM_LENSTR1(repl)
+	            GOTO 500
+
+* ... RETURN=dtype if it is available in the context at this point. For user-
+*     defined variables the type is not yet determined.
+
+	         ELSEIF ( repl .EQ. "DTYPE" .AND. cat.EQ.cat_file_var 
+     .              .AND. INDEX(cmnd(istart:iend),'.') .EQ. 0) THEN
+	            dset = cx_data_set(cx)
+	            IF (dset .EQ. pdset_irrelevant .OR. 
+     .               dset .EQ. unspecified_int4) dset = pdset_uvars  ! try user vars
+
+	            varid = 0
+	            vartype = 0
+
+	            CALL CD_GET_VAR_ID(dset, cmnd(istart:iend), varid, status)
+
+	            IF (status .EQ. ferr_ok)  
+     .                CALL CD_GET_VAR_INFO (dset, varid, cmnd(istart:iend), 
+     .                              vartype, nvdims, vdims, nvatts,
+     .                              coordvar, outflag, status )
+
+                    IF (vartype.EQ.0 ) GOTO 4000
+		    
+	            IF (status .EQ. ferr_ok) THEN
+                       repl = typstring(vartype)
+	            ELSE 
+	               GOTO 4000
+	            ENDIF
+	            str_len = TM_LENSTR1(repl)
+	            GOTO 500
+
+* ... varname.atttnum,RETURN=dtype  or varname.attname, RETURN=dtype
+
+	         ELSEIF ( repl .EQ. "DTYPE" .AND. cat.EQ.cat_file_var
+     .              .AND. INDEX(cmnd(istart:iend),'.') .GT. 0) THEN
+	            attype = 0
+	            dset = cx_data_set(cx)
+	            IF (cx_data_set(cx) .EQ. pdset_irrelevant) dset = pdset_uvars  ! user vars
+	               CALL BREAK_VARATTNAME( cmnd(istart:iend), dset, 
+     .                    varname, attname, varid, do_err, status )
+	               CALL CD_GET_VAR_ATT_ID (dset, varid, attname, attid, 
+     .                    status)
+	               IF (attid .GT. 0) CALL CD_GET_VAR_ATT_INFO (dset, varid, 
+     .                    attid, aname, attype, attlen, attoutflag, status )
+
+	            IF (status .EQ. ferr_ok) THEN
+                       repl = typstring(attype)
+	            ELSE 
+	               GOTO 4000
+	            ENDIF
+	            str_len = TM_LENSTR1(repl)
+	            GOTO 500
+
+* ... varname.atttnum,RETURN=size  or varname.attname, RETURN=size
+
+	         ELSEIF ( repl .EQ. "SIZE" .AND. cat.EQ.cat_file_var
+     .              .AND. INDEX(cmnd(istart:iend),'.') .GT. 0) THEN
+	            IF (.NOT. coordvar) dset = cx_data_set(cx)
+	            IF (dset .GE. 1) THEN
+	               IF (coordvar) THEN
+
+                          IF (INDEX(buff,'.') .GT. 0)
+     .                    CALL BREAK_VARATTNAME( cmnd(istart:iend), dset, varname, 
+     .                              attname,  varid, do_err, status )
+
+	               ELSE
+                          CALL CD_GET_VAR_ID (dset, cmnd(istart:iend), varid,
+     .                        status)
+                    
+                          IF (status .NE. ferr_ok .AND. 
+     .                     INDEX(cmnd(istart:iend),'.') .GT. 0) THEN
+                             CALL BREAK_VARATTNAME( cmnd(istart:iend), dset,
+     .                         varname, attname, varid, do_err, status )
+                          ELSE
+                             i2 = CGRID_SIZE ( cx )
+                             repl = LEFINT(i2, str_len)
+			     str_len = TM_LENSTR1(repl)
+                             GOTO 500
+                          ENDIF
+
+	               ENDIF
+                 
+	               CALL CD_GET_VAR_ATT_ID (dset, varid, attname, attid, 
+     .                   status)
+	               IF (attid .GT. 0) CALL CD_GET_VAR_ATT_INFO (dset, varid,
+     .                  attid, aname,  attype, attlen, attoutflag, status )
+
+	               IF (status .EQ. ferr_ok) THEN
+                          IF (attlen .GT. 0) THEN
+                             result = attlen
+                             repl = TM_FMT( result, use_digits, max_len, str_len )
+                          ENDIF
+	               ELSE 
+	                  GOTO 4000
+                       ENDIF
+                    ENDIF
+	            str_len = TM_LENSTR1(repl)
+	            GOTO 500
+
+* ... RETURN=XMOD
+
+	         ELSEIF ( repl .EQ. "XMOD" .AND. cat.EQ.cat_file_var) THEN
+	            repl = ' '	! default
+	            axis = CGRID_AXIS ( X_dim, cx )
+	            IF ( axis.NE.mnormal) THEN
+	               IF (line_modulo(axis)) THEN
+                          result = line_modulo_len(axis)
+
+! If axis has modulo=" ", and units are not degrees, mod len = axis len.
+#ifdef double_p
+                          IF (result .EQ. 0) result = (TM_WW_AXLEN(axis))
+#else
+                          IF (result .EQ. 0) result = SNGL(TM_WW_AXLEN(axis))
+#endif
+                          repl = TM_FMT( result, use_digits, max_len, str_len)
+		       ENDIF
+	            ENDIF
+	            str_len = TM_LENSTR1(repl)
+	            GOTO 500
+
+* ... RETURN=TMOD
+
+	         ELSEIF ( repl .EQ. "TMOD" .AND. cat.EQ.cat_file_var) THEN
+	            repl = ' '	! default
+	            axis = CGRID_AXIS ( T_dim, cx )
+	            IF ( axis.NE.mnormal) THEN
+	               IF (line_modulo(axis)) THEN
+                          result = line_modulo_len(axis)
+
+! If axis has modulo=" ", mod len = axis len.
+#ifdef double_p
+                          IF (result .EQ. 0) result = (TM_WW_AXLEN(axis))
+#else
+                          IF (result .EQ. 0) result = SNGL(TM_WW_AXLEN(axis))
+#endif
+                          repl = TM_FMT( result, use_digits, max_len, str_len)
+
+                       ENDIF
+	           ENDIF
+	           str_len = TM_LENSTR1(repl)
+	           GOTO 500
+
+* ... RETURN=ISDEPTH
+
+	         ELSEIF ( repl(1:3) .EQ. "ISD" .AND. cat.EQ.cat_file_var) THEN
+	            axis = CGRID_AXIS ( Z_dim, cx )
+	            IF ( axis.NE.mnormal) THEN
+		       repl = '0'
+	               IF (line_direction(axis) .EQ. "UD") repl = '1'
+	            ELSE 
+		       repl = '0'
+	            ENDIF
+	            str_len = TM_LENSTR1(repl)
+	            GOTO 500
+
+	         ENDIF  ! trying to return results based on context only
+
+ 4000        	CONTINUE
 
 * ... if the result has any axes with unknown limits then we have to do a
 *	full evaluation. This happens (only?) from grid-changing fcns that
 *	return ABSTRACT axes, on which limits may depend on data values
 * NOTE THE POTENTIAL FOR WRONG RESULTS WITH OPERATIONS SUCH AS MATRIX
 * TRANSPOSE - ALL "IMPOSED" AXES PRESENT THE RISK OF WRONG RESULTS
+* Just checking for the abstract axis to fix bug 2213. 
+
 
                  DO 190 idim = 1, nferdims
 		    do_eval = ( cx_hi_ww(idim, cx) .EQ. unspecified_val8
      .	                        .AND. CGRID_AXIS(idim, cx) .NE. mnormal )
-	            IF ( do_eval .OR. has_uvar_gc) THEN
+		    do_eval = (do_eval .OR. 
+     .	                 CGRID_AXIS(idim, cx) .EQ. GET_ABSTRACT_LINE(idim) )
+	            IF ( do_eval .OR. has_uvar_gc .OR. is_uvar_const) THEN
 	               CALL EVAL_EXPR ( memory, cx_last,
      .		                     cmnd(istart:iend), apply_cx, status )
 	               IF ( status .NE. ferr_ok ) GOTO 5000
@@ -415,10 +733,10 @@
 *     Add to this error string when adding new arguments:
 
            WRITE (return_errmsg,*)  
-     .       'use RETURN= shape,size,grid,title,bad,t0,units,dset, '//pCR//
+     .       'use RETURN= shape,size,grid,title,bad,t0,f0,units,dset, '//pCR//
      .	     '  dsetnum,dsetpath,dsettitle,*size,*start,*end,'//pCR//
      .       '  *units,*axis,nc_scale,nc_offset,user_scale,user_offset,'//pCR//
-     .       '  calendar,dtype,xmod,tmod,status,isDepth,isReady'
+     .       '  calendar,dtype,xmod,tmod,status,isDepth,isReady,defined'
 !     .       '  calendar,dtype,xmod,tmod,status,isDepth,isReady,isLoaded' ! w isLoaded
 
 * ... RETURN=SHAPE
@@ -440,7 +758,8 @@
 * ... RETURN=T0
 	   ELSEIF ( repl .EQ. "T0" ) THEN
 	      repl = ' '	! default
-	      axis = CGRID_AXIS ( T_dim, cx )
+	      idim = T_DIM
+	      axis = CGRID_AXIS ( idim, cx )
 	      IF ( axis.NE.mnormal) THEN
 	          IF (line_direction(axis) .EQ. 'TI') THEN
     		      repl = line_T0(axis)
@@ -448,6 +767,19 @@
      .                  repl =  '01-JAN-0001 00:00:00'
                   ENDIF
 	      ENDIF
+
+* ... RETURN=F0
+	   ELSEIF ( repl .EQ. "F0" ) THEN
+	      repl = ' '	! default
+	      idim = F_DIM
+	      axis = CGRID_AXIS ( idim, cx )
+	      IF ( axis.NE.mnormal) THEN
+	          IF (line_direction(axis) .EQ. 'FI') THEN
+    		      repl = line_T0(axis)
+                      IF (line_shift_origin(axis)) 
+     .                  repl =  '01-JAN-0001 00:00:00'
+                  ENDIF
+	      ENDIF
               
 * ... RETURN=CALENDAR
 	   ELSEIF ( repl(1:3) .EQ. "CAL" ) THEN
@@ -529,7 +861,7 @@
      .              INDEX(cmnd(istart:iend),'.') .EQ. 0) THEN
               dset = cx_data_set(cx)
               IF (dset .EQ. pdset_irrelevant .OR. 
-     .            dset .EQ. unspecified_int4) dset = -1  ! try user vars
+     .            dset .EQ. unspecified_int4) dset = pdset_uvars  ! try user vars
 
               varid = 0
               vartype = 0
@@ -577,7 +909,7 @@
      .              INDEX(cmnd(istart:iend),'.') .GT. 0) THEN
               attype = 0
               dset = cx_data_set(cx)
-              IF (cx_data_set(cx) .EQ. pdset_irrelevant) dset = -1  ! user vars
+              IF (cx_data_set(cx) .EQ. pdset_irrelevant) dset = pdset_uvars  ! user vars
               CALL BREAK_VARATTNAME( cmnd(istart:iend), dset, 
      .                    varname, attname, varid, do_err, status )
               CALL CD_GET_VAR_ATT_ID (dset, varid, attname, attid, 
diff --git a/fer/gnl/reset_ax_att.F b/fer/gnl/reset_ax_att.F
index e974fcb..dace462 100644
--- a/fer/gnl/reset_ax_att.F
+++ b/fer/gnl/reset_ax_att.F
@@ -79,10 +79,11 @@
       maxlen = 128
 
 c... loop over datasets
-c    see if name exists as an axis name.
+c    Dataset pdset_coordvars (value -2) is the pseudo-dataset containing 
+c    user-defined axes. See if name exists as an axis name.
 
-      DO 100 dset = -2, maxdsets
-         IF (dset .EQ. -1 .OR. dset .EQ. 0) GOTO 100
+      DO 100 dset = pdset_coordvars, maxdsets
+         IF (dset.EQ.pdset_uvars .OR. dset.EQ.pdset_irrelevant) GOTO 100
          
          IF (dset .GT. 0) THEN
             IF ( ds_name(dset) .EQ. char_init256) GOTO 100
diff --git a/fer/gnl/set_var.F b/fer/gnl/set_var.F
index 9e1bddd..2c8e0d0 100644
--- a/fer/gnl/set_var.F
+++ b/fer/gnl/set_var.F
@@ -83,6 +83,8 @@
 * V685 *acm*  3/13 For Ensemble aggregations, call the ds_type 'ENS'
 * V690 *sh* 1/14   Added SET VARIABLE/SIGMA=varname
 * 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'
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -114,7 +116,7 @@
 	CHARACTER	grid_name*64, title*128, units*128, newname*128,
      .                  is_nan*3, flag*10, typflag*10, varattname*512,
      .                  varname*128, attname*128, buf*2, newname_lc*128,
-     .			sigma_ref*128
+     .			layerz_ref*128
 
 * Initialize
 
@@ -130,7 +132,7 @@
 	title     = char_init128
 	units     = char_init64
 	grid_name = char_init16
-	sigma_ref = char_init128
+	layerz_ref= char_init128
 
 * note:  this routine manages 
 
@@ -200,6 +202,7 @@
 	   ncfile = (TM_HAS_STRING(ds_type(dset), 'CDF') .OR.
      .               TM_HAS_STRING(ds_type(dset), 'MC') .OR.
      .               TM_HAS_STRING(ds_type(dset), 'ENS') .OR.
+     .               TM_HAS_STRING(ds_type(dset), 'FCT') .OR.
      .               TM_HAS_STRING(ds_type(dset), 'GT')  )
 	   IF ( .NOT. ncfile ) GOTO 5700
 
@@ -220,6 +223,7 @@
 	   ncfile = (TM_HAS_STRING(ds_type(dset), 'CDF') .OR.
      .               TM_HAS_STRING(ds_type(dset), 'MC') .OR.
      .               TM_HAS_STRING(ds_type(dset), 'ENS') .OR.
+     .               TM_HAS_STRING(ds_type(dset), 'FCT') .OR.
      .               TM_HAS_STRING(ds_type(dset), 'GT')  )
 	   IF ( .NOT. ncfile ) GOTO 5800
 
@@ -291,16 +295,16 @@
 	   bad = real4_init
 	ENDIF
 
-* SET VAR/SIGMA=
-* creates an attribute __sigma_ref_ that contains the desired auxiliary variable name
-	loc = qual_given( slash_set_var_sigma )
+* SET VAR/LAYERZ=
+* creates an attribute __layerz_ref_ that contains the desired auxiliary variable name
+	loc = qual_given( slash_set_var_layerz )
 	IF ( loc .GT. 0 ) THEN
 	   have_mods = .TRUE.
 	   CALL EQUAL_STRING (cmnd_buff(qual_start(loc):qual_end(loc)),
-     .                        sigma_ref, status)
+     .                        layerz_ref, status)
            IF ( status .NE. ferr_ok ) RETURN
-	   IF (sigma_ref .EQ. ' ') GOTO 5550
-	   IF ( .NOT.TM_LEGAL_NAME(sigma_ref) ) GOTO 5560
+	   IF (layerz_ref .EQ. ' ') GOTO 5550
+	   IF ( .NOT.TM_LEGAL_NAME(layerz_ref) ) GOTO 5560
 	ENDIF
 
 * SET VAR/OUTTYPE= INTYPE, FLOAT, INT, SHORT
@@ -335,7 +339,7 @@
            IF (dset .EQ. unspecified_int4) THEN
 
 	      IF (cat .EQ. cat_user_var) THEN 
-	         dset = -1
+	         dset = pdset_uvars
 	      ELSE
 
                  CALL GET_NEW_CX( cx_last, cx_cmnd, .TRUE., status )
@@ -360,7 +364,7 @@
            CALL CD_GET_VAR_ID (dset, vname, varid, status)
 	   
            IF  (cat .EQ. cat_user_var) THEN 
-	      dset = -1
+	      dset = pdset_uvars
   	      CALL CD_GET_VAR_ID (dset, vname, varid, status)
            ENDIF
 
@@ -379,7 +383,7 @@
 
 * Apply the changes in Ferret structures, and in the linked-list structure.
 
-        IF (dset .EQ. unspecified_int4) dset = -1 ! user variable
+        IF (dset .EQ. unspecified_int4) dset = pdset_uvars ! user variable
         CALL CD_GET_VAR_ID (dset, vname, varid, status)
 
 
@@ -393,26 +397,26 @@
 	IF ( ez ) THEN
 	   IF ( have_mods ) THEN
 
-* The following block of code -- setting the sigma reference -- appears identically
+* The following block of code -- setting the layerz reference -- appears identically
 * in 3 places.  Similar duplication of code for the other attributes.
 * The reason is that the management of dset and varid is context dependent.
 * CD_GET_VAR_ID is for example called 3 times immediately preceding this block
 * Cleanup would be desirable: a single, reliable routine that returns varid;
 * called just once; and then factor out the duplicated code
-	      IF ( sigma_ref .NE. char_init128 ) THEN
-                 attlen = TM_LENSTR1(sigma_ref)
-                 attname = patnam_sigma
+	      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)
                  IF (attid .GT. 0) THEN
                     CALL CD_GET_VAR_ATT_INFO (dset, varid, attid, 
      .                attname, attype, attlen, attoutflag, status )
                     CALL CD_REPLACE_ATTR (dset, varid, attname, attype, attlen, 
-     .              sigma_ref, dummy, status)
+     .              layerz_ref, dummy, status)
                  ELSE
                     attype = NCCHAR
                     attoutflag = 1
                     CALL CD_PUT_NEW_ATTR (dset, varid, attname, attype, 
-     .                 attlen, attoutflag, sigma_ref, dummy, status )
+     .                 attlen, attoutflag, layerz_ref, dummy, status )
                  ENDIF
               ENDIF
 
@@ -497,20 +501,20 @@
               ENDIF
            ENDIF
 
-	   IF ( sigma_ref .NE. char_init128 ) THEN
-              attlen = TM_LENSTR1(sigma_ref)
-              attname = patnam_sigma
+	   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)
               IF (attid .GT. 0) THEN
                  CALL CD_GET_VAR_ATT_INFO (dset, varid, attid, 
      .             attname, attype, attlen, attoutflag, status )
                  CALL CD_REPLACE_ATTR (dset, varid, attname, attype, attlen, 
-     .           sigma_ref, dummy, status)
+     .           layerz_ref, dummy, status)
               ELSE
                  attype = NCCHAR
                  attoutflag = 1
                  CALL CD_PUT_NEW_ATTR (dset, varid, attname, attype, 
-     .              attlen, attoutflag, sigma_ref, dummy, status )
+     .              attlen, attoutflag, layerz_ref, dummy, status )
               ENDIF
 	      CALL PURGE_ALL_UVARS	 ! delete (possibly dependent) uvars
            ENDIF
@@ -538,7 +542,7 @@
      .                                  newname,
      .                                  LEN(newname))
 
-           dset = -1 ! user variables
+           dset = pdset_uvars ! user variables
            CALL CD_GET_VAR_ID (dset, vname, varid, status)
 
 	   IF ( units .NE. char_init16 ) THEN
@@ -579,20 +583,20 @@
               ENDIF
            ENDIF
 
-	   IF ( sigma_ref .NE. char_init128 ) THEN
-              attlen = TM_LENSTR1(sigma_ref)
-              attname = patnam_sigma
+	   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)
               IF (attid .GT. 0) THEN
                  CALL CD_GET_VAR_ATT_INFO (dset, varid, attid, 
      .             attname, attype, attlen, attoutflag, status )
                  CALL CD_REPLACE_ATTR (dset, varid, attname, attype, attlen, 
-     .           sigma_ref, dummy, status)
+     .           layerz_ref, dummy, status)
               ELSE
                  attype = NCCHAR
                  attoutflag = 1
                  CALL CD_PUT_NEW_ATTR (dset, varid, attname, attype, 
-     .              attlen, attoutflag, sigma_ref, dummy, status )
+     .              attlen, attoutflag, layerz_ref, dummy, status )
               ENDIF
 	      CALL PURGE_ALL_UVARS	 ! delete (possibly dependent) uvars
            ENDIF
diff --git a/fer/gnl/show_data.F b/fer/gnl/show_data.F
index c4bce01..023d5dd 100644
--- a/fer/gnl/show_data.F
+++ b/fer/gnl/show_data.F
@@ -40,6 +40,8 @@
 *                 various SHOW commnands will not list info for E,F dimensions.
 * V685 4/13 *acm* Ability to define ensemble with /HIDDEN
 * 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
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -66,7 +68,7 @@
      .		    slash_file,
      .		    slash_attr,
      .		    slash_xml
-	CHARACTER name*32, default*50, outstring*2048
+	CHARACTER default*60, outstring*2048
 
 	PARAMETER ( slash_brief    = 1 + 1,
      .		    slash_full     = 1 + 2,
@@ -106,8 +108,7 @@
 
 	only_1 = num_args .GT. 0
 	IF ( only_1 ) THEN
-	   name = cmnd_buff(arg_start(1):arg_end(1))
-	   dset = FIND_DSET_NUMBER( name )
+	   dset = FIND_DSET_NUMBER( cmnd_buff(arg_start(1):arg_end(1)) )
 	   IF ( dset .EQ. unspecified_int4 ) GOTO 5000
 	   un_hide = .TRUE.
 	ENDIF
@@ -142,7 +143,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 dataset'
+	      default = default(:len0)//'  Ferret-defined Ensemble aggregation'
+	      len0 = TM_LENSTR1( default )
+	   ENDIF
+	   IF ( TM_HAS_STRING(ds_type(iset), 'FCT') ) THEN
+	      default = default(:len0)//'  Ferret-defined 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 98663f7..53a6124 100644
--- a/fer/gnl/show_data_files.F
+++ b/fer/gnl/show_data_files.F
@@ -53,6 +53,7 @@
 *           *acm* 3/12 cleanup ifdefs and unnecessary include files
 * 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'
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -90,6 +91,7 @@
 * 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
diff --git a/fer/gnl/show_data_set_attrs.F b/fer/gnl/show_data_set_attrs.F
index 0b8f8d6..46ccff5 100644
--- a/fer/gnl/show_data_set_attrs.F
+++ b/fer/gnl/show_data_set_attrs.F
@@ -76,12 +76,12 @@
      .                  nvars, ngatts, recdim, iatt, attype, attlen,
      .                  slen,  llen, vlen, vtype, nvdims,
      .                  vdims(8),  nvatts, status, blen, i, len_attbuff,
-     .                  attoutflag, all_outflag, attid
-        REAL            vals(10)
+     .                  max_vals, attoutflag, all_outflag, attid
+        REAL            vals(1000)
 	CHARACTER	TM_FMT*14, varname*512, attname*128, 
-     .                  buff*14, attbuff*2048, oflag*1
+     .                  buff*14, attbuff*10240, oflag*1
         CHARACTER*6     typ(0:7)
-        PARAMETER       (len_attbuff = 2048)
+        PARAMETER       (len_attbuff = 10240, max_vals=1000)
         
 * See netcdf.h for the data types
 	DATA typ/'NaN',          ! NAT = 'Not A Type' (c.f. NaN)
@@ -133,6 +133,7 @@
      .              attype, attlen, attoutflag, status )
 
 	         blen = len_attbuff
+		 IF (attype .NE. NCCHAR) attlen = MIN(attlen, max_vals)
 	         got_it = NC_GET_ATTRIB (dset, varid, attname, 
      .                                .TRUE., varname, blen, attlen, 
      .                                attoutflag, attbuff, vals)
diff --git a/fer/gnl/show_data_set_vars.F b/fer/gnl/show_data_set_vars.F
index fcd88fe..cf6f2fb 100644
--- a/fer/gnl/show_data_set_vars.F
+++ b/fer/gnl/show_data_set_vars.F
@@ -76,6 +76,8 @@
 *                 various SHOW commnands will not list info for E,F dimensions.
 * v6.85  *acm* 4/13 Can show grid for variables in an ensemble aggregated dataset.
 * 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
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -164,7 +166,8 @@
 * GRID_FROM_NAME increments the use count for the grid, so call
 * DEALLO_DYN_GRID to restore the count where it should be.
 
-           IF (is_undetermined .AND. ds_type(dset).EQ.'ENS') THEN
+           IF (is_undetermined .AND. 
+     .         (ds_type(dset).EQ.'ENS' .OR. ds_type(dset).EQ.'FCT')) THEN
 	      igrid = GRID_FROM_NAME(ds_var_code(ivar), cx_last, status)
 	      IF (status .NE. ferr_ok) GOTO 5000
 	      CALL TM_DEALLO_DYN_GRID (igrid)  
@@ -357,7 +360,7 @@
 #endif
      .			 LOHI_STRING( lo,hi,i,grid,':',ax_dec_pt(i),dlen )
      .			 // '  '
-	               len = MIN( 64, len+4+dlen )  ! ??
+	               len = MIN( 128, len+4+dlen )
 	            ENDIF ! Skip time dim
 
 	         ENDIF
diff --git a/fer/gnl/show_data_set_vars_xml.F b/fer/gnl/show_data_set_vars_xml.F
index f1b0824..85e1da0 100644
--- a/fer/gnl/show_data_set_vars_xml.F
+++ b/fer/gnl/show_data_set_vars_xml.F
@@ -93,6 +93,8 @@
         LOGICAL   NC_GET_ATTRIB, got_it, coordvar, newatt, have_units,
      .            have_title, have_dims
 
+
+	CHARACTER TM_FMT*16
         CHARACTER show_str*128
         CHARACTER uvarname*150, attname*128, attbuff*2048, buff*128,
      .            outstring*2048, aname*128, atype*10
@@ -198,6 +200,13 @@ C Write statement that uses number 2075 when we change to using these.)
      .          attoutflag, attbuff, vals)
 
 * For double-prec Ferret, check whether we need more precision to write the value
+* If the _FillValue or missing_value are NaN on input, change them to Ferret's 
+* default missing value as Ferret does when writing data.
+
+	     show_str = TM_FMT(vals(1), 7,16,slen)
+	     IF (STR_SAME(show_str, 'NaN') .EQ. 0) THEN
+	       vals(1) = bad_val4
+	    ENDIF
 
 	     CALL FLOAT2STRING_FOR_XML (vals(1), attype, show_str, slen)
 
@@ -220,6 +229,11 @@ C Write statement that uses number 2075 when we change to using these.)
      .          .TRUE., uvarname, blen, attlen, 
      .          attoutflag, attbuff, vals)
 	     
+	     show_str = TM_FMT(vals(1), 7,16,slen)
+	     IF (STR_SAME(show_str, 'NaN') .EQ. 0) THEN
+	       vals(1) = bad_val4
+	    ENDIF
+
 	     CALL FLOAT2STRING_FOR_XML (vals(1), attype, show_str, slen)
 
              CALL ESCAPE_FOR_XML (show_str, outstring, slen)
diff --git a/fer/gnl/show_line.F b/fer/gnl/show_line.F
index 2481346..9e90840 100644
--- a/fer/gnl/show_line.F
+++ b/fer/gnl/show_line.F
@@ -50,6 +50,7 @@
 * V650  Write to show_lun which may be set to a file unit number rather than std out
 * 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
 
 	include 'tmap_dims.parm'
 	include 'xtm_grid.cmn_text'
@@ -119,7 +120,8 @@
 	IF ( brief ) RETURN
 
 * report /T0= for formatted time axis
-	IF ( line_direction(line) .EQ. 'TI' ) THEN
+	IF  ( line_direction(line) .EQ. 'TI' 
+     .	.OR.  line_direction(line) .EQ. 'FI' ) THEN
             IF (line_shift_origin(line)) THEN
                buff20 = '01-JAN-0001 00:00:00'
             ELSE
diff --git a/fer/gnl/show_line_coords.F b/fer/gnl/show_line_coords.F
index a83e20d..ff89e4c 100644
--- a/fer/gnl/show_line_coords.F
+++ b/fer/gnl/show_line_coords.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.
 * V683  *acm*10/12 Improve handling of F axes and info about the calendar of the grid.
+* V695  *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -129,7 +130,7 @@
 * cx_lo_ww was set without knowledge of the axis, so if this is a non-std calendar
 * need to reset according to the actual calendar type
 
-	   IF ( (idim.EQ.t_dim .OR. idim.EQ.f_dim) .AND. cx_calendar(cx) ) THEN
+	   IF ( (idim.EQ.t_dim .OR. idim.EQ.f_dim) .AND. cx_calendar(idim,cx) ) THEN
 
               axis = grid_line(idim, grid)
 	      IF (line_t0(axis) .EQ. char_init20) GOTO 110  ! Not a calendar ax (e.g. f axis)
@@ -168,7 +169,7 @@
  
 
 * reset cx_calendar now that cx_lo/hi_ww have been converted
-              cx_calendar(cx) = .FALSE.
+              cx_calendar(idim,cx) = .FALSE.
 	   ENDIF
  110	   CONTINUE
 	   lo = ISUBSCR_CX( cx_lo_ww(idim,cx),
diff --git a/fer/gnl/create_agg_dset.F b/fer/gnl/show_pytext_group.F
similarity index 51%
copy from fer/gnl/create_agg_dset.F
copy to fer/gnl/show_pytext_group.F
index 2de0c90..f6aa312 100644
--- a/fer/gnl/create_agg_dset.F
+++ b/fer/gnl/show_pytext_group.F
@@ -1,5 +1,4 @@
-	SUBROUTINE CREATE_AGG_DSET (agg_dset, dname, dtitle, 
-     .               nsets, agg_dim, iline, status)
+	SUBROUTINE SHOW_PYTEXT_GROUP (igrp)
 *
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -33,60 +32,75 @@
 *  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'
-
-      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 'ferret.parm'
         include 'xprog_state.cmn'
-	include 'xtm_grid.cmn_text'  
-	include 'errmsg.parm'
-	include 'netcdf.inc'
-	include 'xvariables.cmn'
-
-* calling argument declarations:
-	CHARACTER*(*)	dname, dtitle
-	INTEGER		agg_dset, nsets, agg_dim, iline, status
+	include 'xrisc.cmn'
+        include 'pyfonts.cmn'
 
-* local variable declarations:
-	INTEGER TM_LENSTR, TM_LENSTR1, ALLO_MANAGED_AXIS,
-     .		type, coordvar, varid, big_cx
-	REAL	bad_flag
+	INTEGER	igrp
 
-	CALL CD_INIT_AGG_DSET (agg_dset, dname, status)
+	INTEGER TM_LENSTR1, len, len0
+	REAL	v1, v2, v3
+	CHARACTER name*12
 
-	IF (status .NE. ferr_ok) GOTO 5300 
+* List the PyFerret text settings for a text group: TICS, TITLE, LOGO, HLAB, VLAB, CONTOUR, CBAR
 
-* Set the dataset type and title (can add other directions)
-	IF (agg_dim .EQ. e_dim ) ds_type(agg_dset) = 'ENS'
+	IF (ititl.LT.ititl .OR. igrp.GT.icbar) RETURN
+	len = TM_LENSTR1(pyf_group_names(igrp))
+	CALL SPLIT_LIST(pttmode_explct, show_lun,
+     .			' '//pyf_group_names(igrp)(:len), 0)
 
-	ds_name(agg_dset) = dname
-	ds_des_name(agg_dset) = dname
+c* ... Font
+	IF (pyf_fontname(igrp) .NE. pyfnt_fontname) THEN
+	   CALL SPLIT_LIST(pttmode_explct, show_lun,
+     .			'     /FONT='//pyf_fontname(igrp), 0)
+        ENDIF
+* ... Color
+	
+* Convert rgb back to % values
 
-	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))
+	IF ( pyf_red(igrp).NE.pyfnt_red .OR. pyf_grn(igrp).NE.pyfnt_grn
+     .       .OR. pyf_blu(igrp).NE.pyfnt_blu ) THEN
+	   v1 = pyf_red(igrp)*100.
+	   v2 = pyf_grn(igrp)*100.
+	   v3 = pyf_blu(igrp)*100.
+	   WRITE (risc_buff, 2201) v1, v2, v3
+ 2201	   FORMAT ('     /COLOR= (', 2(f4.1,','), f4.1,') (%RGB)')
+	   len = TM_LENSTR1(risc_buff)
+	   CALL GET_COLOR_NAME (v1, v2, v3, name, len0)
+	   IF (len0 .GT. 0) risc_buff = '     /COLOR="'//name(:len0)//'"'
+	   CALL SPLIT_LIST(pttmode_explct, show_lun, risc_buff, 0)
 	ENDIF
 
-* create the aggregate axis
+* ... Italic, Bold
 
-	CALL CREATE_AGG_AXIS (nsets, agg_dim, iline, status)
-	IF (status .NE. ferr_ok) GOTO 5300 
+	IF (pyf_italic(igrp) .NE. pyfnt_italic) THEN
+	   IF (pyf_italic(igrp) .EQ. 1) THEN
+	      CALL SPLIT_LIST(pttmode_explct, show_lun,
+     .			'     /ITALIC=ON', 0)
+	   ELSE
+	      CALL SPLIT_LIST(pttmode_explct, show_lun,
+     .			'     /ITALIC=OFF', 0)
+	   ENDIF
+	ENDIF
 
-	RETURN
+	IF (pyf_bold(igrp) .NE. pyfnt_bold) THEN
+	   IF (pyf_bold(igrp) .EQ. 1) THEN
+	      CALL SPLIT_LIST(pttmode_explct, show_lun,
+     .			'     /BOLD=ON', 0)
+	   ELSE
+	      CALL SPLIT_LIST(pttmode_explct, show_lun,
+     .			'     /BOLD=OFF', 0)
+	   ENDIF
+	ENDIF
 	
- 5000   RETURN	
- 5300   status = ferr_TMAP_error
-	RETURN
+	IF (pyf_isiz(igrp) .NE. pyfnt_isiz) THEN
+	   WRITE (risc_buff, 2202) pyf_isiz(igrp)
+ 2202	   FORMAT ('     /ISIZ=',i2)
+	   CALL SPLIT_LIST(pttmode_explct, show_lun,
+     .			risc_buff, 0)
+	ENDIF
 
+	RETURN
 	END
diff --git a/fer/gnl/translate_limit.F b/fer/gnl/translate_limit.F
index bfd4955..efbfce6 100644
--- a/fer/gnl/translate_limit.F
+++ b/fer/gnl/translate_limit.F
@@ -66,6 +66,7 @@
 *                         statements.  use an octal constant instead 
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 *       *acm* 4/12 6D Ferret: time axis may be in t or f direction.
+* V693+ *sh* 2/15 - added support for _DQ_ quotations
 
 * possible formats:
 * for subscript values ( subscript .EQ. .TRUE. ) :
@@ -125,6 +126,12 @@
 	   IF (string(i:i) .EQ. '"') THEN
 	      start_pos = i + 1
 	      GOTO 6
+	   ELSEIF ( string(i:i) .EQ. '_'
+     .	      .AND. i+3 .LT. len_rbuff ) THEN
+	      IF (string(i:i+3) .EQ. "_DQ_") THEN
+	         start_pos = i + 4
+	         GOTO 6
+	      ENDIF
 	   ENDIF
  4	CONTINUE
 	start_pos = 1
@@ -133,6 +140,12 @@
 	      IF (string(i:i) .EQ. '"') THEN
 	         end_pos = i - 1
 	         GOTO 9
+	      ELSEIF ( string(i:i) .EQ. '_'
+     .	      .AND. i+3 .LE. len_rbuff ) THEN
+	         IF (string(i:i+3) .EQ. "_DQ_") THEN
+	            end_pos = i - 1
+	            GOTO 9
+	         ENDIF
 	      ENDIF
  8	   CONTINUE
 	ENDIF
diff --git a/fer/gnl/var_stat.F b/fer/gnl/var_stat.F
index 31da1ee..dc4569e 100644
--- a/fer/gnl/var_stat.F
+++ b/fer/gnl/var_stat.F
@@ -71,6 +71,8 @@
 * 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.
 * V6.68  acm 3/14 ticket 2148: fix truncated ntot or nbad in stat listing
+* v6.931 acm 11/14 Delete ALL the stat* symbols that may be left over from 
+*                  a previous evaluation. STAT/BRIEF does not reset them all.
 
 	include 'tmap_dims.parm'
 	include 'errmsg.parm'
@@ -93,12 +95,13 @@
 * internal variable declarations:
 	INTEGER	TM_LENSTR1, CGRID_SIZE, GET_MAX_STRING_LEN,
      .		i, j, k, l, m, n, nbad, ngood, ntot, idim,
-     .		len_line, len_set_name, grid, slen, i1, i2, nok, listdims
+     .		len_line, len_set_name, grid, slen, i1, i2, nok, 
+     .		listdims, nfig
 	REAL	datum, bad, std_dev, large, small, mean, sumsq_dev, dev
-	REAL*8	sum, sum2, xmean, zmean, x, xdelta, variance_c
+	REAL*8	sum, sum2, xmean, zmean, x, xdelta, variance_c, diff
 
 	CHARACTER*255	VAR_TITLE, VAR_TITLE_MOD, vname_buff
-	CHARACTER	TM_FMT*12, LEFINT*16, AX_TITLE*32, CX_SIZE_STR*24,
+	CHARACTER	TM_FMT*20, LEFINT*20, AX_TITLE*32, CX_SIZE_STR*24,
      .			line_buff*130, title*32, bl13*13, symbuff*30
 	PARAMETER (bl13 = '             ' )
 
@@ -285,13 +288,27 @@
 	CALL SPLIT_LIST(pttmode_explct, lun,
      .			' # flagged as bad  data: '//rbuff(1),0)
 	IF ( ngood .GT. 0 ) THEN
+	   nfig = 0
            rbuff(1) = TM_FMT(small, sig_fig, 12, slen)
            rbuff(2) = TM_FMT(large, sig_fig, 12, slen)
+	   diff = (large-small)/MAX( ABS(large), ABS(small) )
+	   IF (diff.LT.0.01 .AND. ngood.GT.1) THEN
+	      nfig = 4
+              rbuff(1) = TM_FMT(small, sig_fig+nfig, 20, slen)
+              rbuff(2) = TM_FMT(large, sig_fig+nfig, 20, slen)
+	      diff = (large-small)/MAX( ABS(large), ABS(small) )
+	      IF (diff .LT. 1.e-7) THEN
+	        nfig = 16-sig_fig
+	        rbuff(1) = TM_FMT(small, sig_fig+nfig, 20, slen)
+	        rbuff(2) = TM_FMT(large, sig_fig+nfig, 20, slen)
+	      ENDIF
+	   ENDIF
+
            IF ( ABS(sum) .GE. 3.D35 ) THEN
               rbuff(3) = '**too big**'
 	      slen = 11
            ELSE
-              rbuff(3) = TM_FMT(mean , sig_fig, 12, slen)
+              rbuff(3) = TM_FMT(mean , sig_fig+nfig, 20, slen)
            ENDIF
 	   CALL SPLIT_LIST(pttmode_explct, lun,
      .			' Minimum value: '//rbuff(1), 0)
@@ -308,20 +325,43 @@
            rbuff(2) = 'bad'
            rbuff(3) = 'bad'
         ENDIF
+
+! First delete all the STAT* symbols that may be set
+! Leave none left over from a previous evaluation
+
+	symbuff = 'STAT_MIN'
+	CALL GETSYM( symbuff, title, i2, i1 )
+	IF ( i1 .EQ. 0 ) CALL DELSYM(symbuff,i1)
+
+	symbuff = 'STAT_MAX'
+	CALL GETSYM( symbuff, title, i2, i1 )
+	IF ( i1 .EQ. 0 ) CALL DELSYM(symbuff,i1)
+
+	symbuff = 'STAT_MEAN'
+	CALL GETSYM( symbuff, title, i2, i1 )
+	IF ( i1 .EQ. 0 ) CALL DELSYM(symbuff,i1)
+
+	symbuff = 'STAT_STD'
+	CALL GETSYM( symbuff, title, i2, i1 )
+	IF ( i1 .EQ. 0 ) CALL DELSYM(symbuff,i1)
+
+	symbuff = 'STAT_NGOOD'
+	CALL GETSYM( symbuff, title, i2, i1 )
+	IF ( i1 .EQ. 0 ) CALL DELSYM(symbuff,i1)
+
+	symbuff = 'STAT_NBAD'
+	CALL GETSYM( symbuff, title, i2, i1 )
+	IF ( i1 .EQ. 0 ) CALL DELSYM(symbuff,i1)
+
+
 	IF ( mr_type(mv) .NE. ptype_string ) THEN
            symbuff = 'STAT_MIN'
-	   CALL GETSYM( symbuff, title, i2, i1 )
-	   IF ( i1 .EQ. 0 ) CALL DELSYM(symbuff,i1)
            slen = TM_LENSTR1(rbuff(1))
       	   CALL PUTSYM( symbuff, rbuff(1), slen, i2)
            symbuff = 'STAT_MAX'
-	   CALL GETSYM( symbuff, title, i2, i1 )
-	   IF ( i1 .EQ. 0 ) CALL DELSYM(symbuff,i1)
            slen = TM_LENSTR1(rbuff(2))
       	   CALL PUTSYM( symbuff, rbuff(2), slen, i2)
            symbuff = 'STAT_MEAN'
-	   CALL GETSYM( symbuff, title, i2, i1 )
-	   IF ( i1 .EQ. 0 ) CALL DELSYM(symbuff,i1)
            slen = TM_LENSTR1(rbuff(3))
       	   CALL PUTSYM( symbuff, rbuff(3), slen, i2)
         ENDIF
@@ -339,8 +379,6 @@
 ! Define Ferret symbols with std 
 	   IF ( mr_type(mv) .NE. ptype_string ) THEN
               symbuff = 'STAT_STD'
-	      CALL GETSYM( symbuff, title, i2, i1 )
-	      IF ( i1 .EQ. 0 ) CALL DELSYM(symbuff,i1)
               slen = TM_LENSTR1(rbuff(1))
       	      CALL PUTSYM( symbuff, rbuff(1), slen, i2)
 
@@ -350,28 +388,19 @@
 	IF ( full .AND. ngood.LE.1 .AND.
      .        mr_type(mv) .NE. ptype_string) THEN
            symbuff = 'STAT_STD'
-           CALL GETSYM( symbuff, title, i2, i1 )
-           IF ( i1 .EQ. 0 ) CALL DELSYM(symbuff,i1)
            slen = 3
            CALL PUTSYM( symbuff, 'bad', slen, i2)
 	ENDIF
 
 ! Define Ferret symbols with ngood and nbad
 	IF ( full .AND. mr_type(mv) .NE. ptype_string ) THEN
-
            symbuff = 'STAT_NGOOD'
-           CALL GETSYM( symbuff, title, i2, i1 )
-           IF ( i1 .EQ. 0 ) CALL DELSYM(symbuff,i1)
-           datum = ngood
-           rbuff(1) = TM_FMT(datum , sig_fig, 12, slen)
+           rbuff(1) = LEFINT(ngood, slen)
            slen = TM_LENSTR1(rbuff(1))
            CALL PUTSYM( symbuff, rbuff(1), slen, i2)
 
            symbuff = 'STAT_NBAD'
-           CALL GETSYM( symbuff, title, i2, i1 )
-           IF ( i1 .EQ. 0 ) CALL DELSYM(symbuff,i1)
-           datum = nbad
-           rbuff(1) = TM_FMT(datum , sig_fig, 12, slen)
+           rbuff(1) = LEFINT(nbad, slen)
            slen = TM_LENSTR1(rbuff(1))
            CALL PUTSYM( symbuff, rbuff(1), slen, i2)
         ENDIF
diff --git a/fer/grdel/draw.c b/fer/grdel/draw.c
index 8eeaf8d..33b678a 100644
--- a/fer/grdel/draw.c
+++ b/fer/grdel/draw.c
@@ -9,45 +9,6 @@
 #include "pyferret.h"
 
 /*
- * Assigns the transformation values my, sx, sy, dx, and dy used
- * to convert user coordinate (userx, usery) to device coordinate
- * (devx, devy) using the formulae:
- *    devx = userx * sx + dx
- *    devy = (my - usery) * sy + dy
- */
-static void getTransformValues(double *my, double *sx, double *sy,
-                               double *dx, double *dy)
-{
-   float lftfrc, rgtfrc, btmfrc, topfrc;
-   float lftcrd, rgtcrd, btmcrd, topcrd;
-   float winwidth, winheight;
-   double devlft, devtop, devwidth, devheight;
-   double usrlft, usrtop, usrwidth, usrheight;
-
-   fgd_get_view_limits_(&lftfrc, &rgtfrc, &btmfrc, &topfrc,
-                        &lftcrd, &rgtcrd, &btmcrd, &topcrd);
-   fgd_get_window_size_(&winwidth, &winheight);
-
-   devlft     = (double) lftfrc * (double) winwidth;
-   devwidth   = (double) rgtfrc * (double) winwidth;
-   devwidth  -= devlft;
-   devtop     = (1.0 - (double) topfrc) * (double) winheight;
-   devheight  = (1.0 - (double) btmfrc) * (double) winheight;
-   devheight -= devtop;
-
-   usrlft = (double) lftcrd;
-   usrwidth = (double) rgtcrd - usrlft;
-   usrtop = 0.0;
-   usrheight = (double) topcrd - (double) btmcrd;
-
-   *my = (double) topcrd;
-   *sx = devwidth / usrwidth;
-   *sy = devheight / usrheight;
-   *dx = devlft - (*sx) * usrlft;
-   *dy = devtop - (*sy) * usrtop;
-}
-
-/*
  * Draws connected line segments.
  *
  * Arguments:
@@ -100,7 +61,7 @@ grdelBool grdelDrawMultiline(grdelType window, const float ptsx[],
     }
 
     /* Get the transform values for converting user to device coordinates */
-    getTransformValues(&my, &sx, &sy, &dx, &dy);
+    grdelGetTransformValues(&my, &sx, &sy, &dx, &dy);
 
     if ( bindings->cferbind != NULL ) {
         xvals = (double *) PyMem_Malloc(2 * numpts * sizeof(double));
@@ -252,7 +213,7 @@ grdelBool grdelDrawPoints(grdelType window, const float ptsx[],
     }
 
     /* Get the transform values for converting user to device coordinates */
-    getTransformValues(&my, &sx, &sy, &dx, &dy);
+    grdelGetTransformValues(&my, &sx, &sy, &dx, &dy);
 
     if ( bindings->cferbind != NULL ) {
         xvals = (double *) PyMem_Malloc(2 * numpts * sizeof(double));
@@ -420,7 +381,7 @@ grdelBool grdelDrawPolygon(grdelType window, const float ptsx[],
     }
 
     /* Get the transform values for converting user to device coordinates */
-    getTransformValues(&my, &sx, &sy, &dx, &dy);
+    grdelGetTransformValues(&my, &sx, &sy, &dx, &dy);
 
     if ( bindings->cferbind != NULL ) {
         xvals = (double *) PyMem_Malloc(2 * numpts * sizeof(double));
@@ -581,7 +542,7 @@ grdelBool grdelDrawRectangle(grdelType window, float left, float bottom,
         penobj = NULL;
 
     /* Get the transform values for converting user to device coordinates */
-    getTransformValues(&my, &sx, &sy, &dx, &dy);
+    grdelGetTransformValues(&my, &sx, &sy, &dx, &dy);
     trlft = (double) left * sx + dx;
     trrgt = (double) right * sx + dx;
     trtop = (my - (double) top) * sy + dy;
@@ -623,6 +584,99 @@ grdelBool grdelDrawRectangle(grdelType window, float left, float bottom,
     return 1;
 }
 
+
+/*
+ * Returns the size of given text if drawn with a given font.
+ * The width is such that continuing text should be positioned 
+ * at the start of this text plus this width.  The height will 
+ * always be the ascent plus descent for the font and is 
+ * independent of the text.
+ *
+ * Input Arguments:
+ *     window: Window to use
+ *     text: text string to use
+ *     textlen: actual length of the text string
+ *     font: font to use
+ * Output Arguments:
+ *     fltwidthptr: assigned the width of the text, in user 
+ *               coordinates, if drawn in the given font
+ *     fltheightptr: assigned the height of the text, in user 
+ *                coordinates, if drawn in the given font
+ *
+ * Returns success or failure.  If failure, grdelerrmsg contains
+ * an explanatory message.
+ */
+grdelBool grdelTextSize(grdelType window, const char *text, int textlen, 
+                        grdelType font, float *fltwidthptr, float *fltheightptr)
+{
+    const BindObj *bindings;
+    grdelType fontobj;
+    grdelBool success;
+    double width, height;
+    PyObject *result;
+    double my, sx, sy, dx, dy;
+
+#ifdef VERBOSEDEBUG
+    fprintf(debuglogfile, "grdelDrawText called: "
+            "window = %p, font = %p\n", window, font);
+    fflush(debuglogfile);
+#endif
+
+    bindings = grdelWindowVerify(window);
+    if ( bindings == NULL  ) {
+        strcpy(grdelerrmsg, "grdelTextSize: window argument is not "
+                            "a grdel Window");
+        return 0;
+    }
+    fontobj = grdelFontVerify(font, window);
+    if ( fontobj == NULL ) {
+        strcpy(grdelerrmsg, "grdelTextSize: font argument is not "
+                            "a valid grdel Font for the window");
+        return 0;
+    }
+
+    if ( bindings->cferbind != NULL ) {
+         success = bindings->cferbind->textSize(bindings->cferbind,
+                             text, textlen, fontobj, &width, &height);
+        if ( success == 0 ) {
+            /* grdelerrmsg already assigned */
+            return 0;
+        }
+    }
+    else if ( bindings->pyobject != NULL ) {
+        /* Call the textSize method of the bindings instance. */
+        result = PyObject_CallMethod(bindings->pyobject, "textSize",
+                          "s#O", text, textlen, (PyObject *) fontobj);
+        if ( result == NULL ) {
+            sprintf(grdelerrmsg, "grdelTextSize: Error when calling the Python "
+                    "binding's textSize method: %s", pyefcn_get_error());
+            return 0;
+        }
+        if ( ! PyArg_ParseTuple(result, "dd", &width, &height) ) {
+            Py_DECREF(result);
+            sprintf(grdelerrmsg, "grdelTextSize: Error when parsing the Python "
+                                 "binding's textSize return value: %s", pyefcn_get_error());
+            return 0;
+        }
+        Py_DECREF(result);
+    }
+    else {
+        strcpy(grdelerrmsg, "grdelTextSize: unexpected error, "
+                            "no bindings associated with this Window");
+        return 0;
+    }
+
+    /* Get the transform values for converting user to device coordinates */
+    grdelGetTransformValues(&my, &sx, &sy, &dx, &dy);
+
+    /* Convert the width and height back to user coordinates - just scaling, no offset */
+    *fltwidthptr = (float) (width / sx);
+    *fltheightptr = (float) (height / sy);
+
+    return 1;
+}
+
+
 /*
  * Draws text.
  *
@@ -630,10 +684,8 @@ grdelBool grdelDrawRectangle(grdelType window, float left, float bottom,
  *     window: Window with an active View to draw in
  *     text: text string to draw
  *     textlen: actual length of the text string
- *     startx: user X-coordinate of the beginning
- *              of the text baseline
- *     starty: user Y-coordinate of the beginning 
- *              of the text baseline
+ *     startx: user X-coordinate of the beginning of the text baseline 
+ *     starty: user Y-coordinate of the beginning of the text baseline
  *     font: font to use
  *     color: color to use (as a solid brush or pen)
  *     rotate: angle of the text baseline in degrees
@@ -680,7 +732,7 @@ grdelBool grdelDrawText(grdelType window, const char *text, int textlen,
     }
 
     /* Get the transform values for converting user to device coordinates */
-    getTransformValues(&my, &sx, &sy, &dx, &dy);
+    grdelGetTransformValues(&my, &sx, &sy, &dx, &dy);
     trstx = (double) startx * sx + dx;
     trsty = (my - (double) starty) * sy + dy;
 
@@ -707,7 +759,7 @@ grdelBool grdelDrawText(grdelType window, const char *text, int textlen,
         Py_DECREF(result);
     }
     else {
-        strcpy(grdelerrmsg, "grdeldrawText: unexpected error, "
+        strcpy(grdelerrmsg, "grdelDrawText: unexpected error, "
                             "no bindings associated with this Window");
         return 0;
     }
@@ -816,6 +868,36 @@ void fgddrawrect_(int *success, void **window, float *left, float *bottom,
 }
 
 /*
+ * Returns the size of given text if drawn with a given font.
+ * The width is such that continuing text should be positioned 
+ * at the text start plus this width.  The height will always 
+ * be the ascent plus descent for the font and is independent 
+ * of the text.
+ *
+ * Input Arguments:
+ *     window: Window to use
+ *     text: text string to use
+ *     textlen: actual length of the text string
+ *     font: font to use
+ *
+ * Output Arguments:
+ *     width: width of the text, in user coordinates, 
+ *            if drawn in the given font
+ *     height: height of the text, in user coordinates, 
+ *             if drawn in the given font
+ *     success: non-zero if successful; zero if an error occurred.
+ *              Use fgderrmsg_ to retrieve the error message.
+ */
+void fgdtextsize_(int *success, void **window, char *text, int *textlen,
+                     void **font, float *width, float *height)
+{
+    grdelBool result;
+
+    result = grdelTextSize(*window, text, *textlen, *font, width, height);
+    *success = result;
+}
+
+/*
  * Draws text.
  *
  * Input Arguments:
diff --git a/fer/grdel/ferdrawtext.F b/fer/grdel/ferdrawtext.F
new file mode 100644
index 0000000..0a91c3f
--- /dev/null
+++ b/fer/grdel/ferdrawtext.F
@@ -0,0 +1,107 @@
+C
+C Draws text in a window.
+C
+C  fontsize	In user coordinates
+C  redfrac
+C  greenfrac	RGB in percent
+C  bluefrac
+C  opaqfrac	opacity in percent
+C  startx	position in thousandths of an inch from bottom left
+C  starty
+C  rotate	rotation in degrees clockwise from horizontal
+C  italic 
+C  bold	lettering linestyle flags: 0=false, 1=true
+C  under
+
+
+        SUBROUTINE FERDRAWTEXT(text, fontname, fontsize, 
+     .    redfrac, greenfrac, bluefrac, opaqfrac,
+     .    startx, starty, rotate, 
+     .    italic, bold, under, success)
+
+        IMPLICIT NONE
+        INCLUDE 'ferret.parm'
+        INCLUDE 'tmap_dims.parm'
+        INCLUDE 'xprog_state.cmn'
+        INCLUDE 'fgrdel.cmn'
+
+        CHARACTER*(*) text, fontname
+        REAL*4 fontsize
+        REAL*4 redfrac, greenfrac, bluefrac, opaqfrac
+        REAL*4 startx, starty, rotate
+        INTEGER italic, bold, under
+        INTEGER success
+
+        INTEGER TM_LENSTR
+
+        CHARACTER*256 errmsg
+        INTEGER errmsglen
+        INTEGER mywindowid
+        REAL*8 mywindow
+        INTEGER fontnamelen
+        REAL*8 myfont
+        REAL*8 mycolor
+        INTEGER textlen
+
+C       Draw to the currently active window -
+        mywindowid = ACTIVEWINDOW
+C       Some sanity checks on the window ID and window
+        IF ( (mywindowid .LT. 1) .OR. 
+     .       (mywindowid .GT. MAXWINDOWOBJS) ) THEN
+            STOP 'FERDRAWTEXT: not an valid window ID'
+        ENDIF
+        mywindow = WINDOWOBJS(mywindowid)
+        IF ( mywindow .EQ. NULLOBJ ) THEN
+            STOP 'FERDRAWTEXT: not a valid window'
+        ENDIF
+
+C       Create the font to use for the string -
+        fontnamelen = TM_LENSTR(fontname)
+        CALL FGDFONT(myfont, mywindow, fontname, fontnamelen, 
+     .               fontsize, italic, bold, under)
+        IF ( myfont .EQ. NULLOBJ ) THEN
+            errmsg = ' '
+            CALL FGDERRMSG(errmsg, errmsglen)
+            CALL SPLIT_LIST(pttmode_help, err_lun, errmsg, errmsglen)
+            success = 0
+            RETURN
+        ENDIF
+
+C       Create a color for the text with red, green, blue fractions - 
+C       or could use one of the standard colors for the window; 
+C       e.g., colorobjs(2,activewindow)
+
+        CALL FGDCOLOR(mycolor, mywindow, 
+     .                redfrac, greenfrac, bluefrac, opaqfrac)
+        IF ( mycolor .EQ. NULLOBJ ) THEN
+            errmsg = ' '
+            CALL FGDERRMSG(errmsg, errmsglen)
+            CALL SPLIT_LIST(pttmode_help, err_lun, errmsg, errmsglen)
+            CALL FGDFONTDEL(success, myfont)
+            success = 0
+            RETURN
+        ENDIF
+ 
+C       Draw the text
+        textlen = TM_LENSTR(text)
+        CALL FGDDRAWTEXT(success, mywindow, text, textlen, 
+     .                   startx, starty, myfont, mycolor, rotate)
+        IF ( success .EQ. 0 ) THEN
+            errmsg = ' '
+            CALL FGDERRMSG(errmsg, errmsglen)
+            CALL SPLIT_LIST(pttmode_help, err_lun, errmsg, errmsglen)
+            CALL FGDCOLORDEL(success, myfont)
+            CALL FGDFONTDEL(success, myfont)
+            success = 0
+            RETURN
+        ENDIF
+ 
+C       Delete the color created above
+        CALL FGDCOLORDEL(success, mycolor)
+
+C       Delete the font created above
+        CALL FGDFONTDEL(success, myfont)
+
+        success = 1
+        RETURN
+        END
diff --git a/fer/grdel/fertextsize.F b/fer/grdel/fertextsize.F
new file mode 100644
index 0000000..2d5451c
--- /dev/null
+++ b/fer/grdel/fertextsize.F
@@ -0,0 +1,80 @@
+C
+C Returns the size of given text if drawn with a given font.
+C The width is such that continuing text should be positioned 
+C at the text start plus this width.  The height will always 
+C be the ascent plus descent for the font and is independent 
+C of the text.  The fontsize is in user coordinates.
+C
+C
+        SUBROUTINE FERTEXTSIZE(text, fontname, fontsize, 
+     .          italic, bold, under, retwidth, retheight, success)
+
+        IMPLICIT NONE
+        INCLUDE 'ferret.parm'
+        INCLUDE 'tmap_dims.parm'
+        INCLUDE 'xprog_state.cmn'
+        INCLUDE 'fgrdel.cmn'
+
+        CHARACTER*(*) text, fontname
+        REAL*4 fontsize
+        INTEGER italic, bold, under
+        REAL*4 retwidth, retheight
+        INTEGER success
+
+        INTEGER TM_LENSTR
+
+        CHARACTER*256 errmsg
+        INTEGER errmsglen
+        INTEGER mywindowid
+        REAL*8 mywindow
+        INTEGER fontnamelen
+        REAL*8 myfont
+        INTEGER textlen
+
+C       Use the currently active window -
+C       probably just leave this as-is
+        mywindowid = ACTIVEWINDOW
+C       Some sanity checks on the window ID and window
+        IF ( (mywindowid .LT. 1) .OR. 
+     .       (mywindowid .GT. MAXWINDOWOBJS) ) THEN
+            STOP 'FERTEXTSIZE: not an valid window ID'
+        ENDIF
+        mywindow = WINDOWOBJS(mywindowid)
+        IF ( mywindow .EQ. NULLOBJ ) THEN
+            STOP 'FERTEXTSIZE: not a valid window'
+        ENDIF
+
+C       Create a font to use for the string -
+C       No underline support is provided by Cairo,
+C       so under is ignored at this time
+        fontnamelen = TM_LENSTR(fontname)
+        CALL FGDFONT(myfont, mywindow, fontname, fontnamelen, 
+     .               fontsize, italic, bold, under)
+        IF ( myfont .EQ. NULLOBJ ) THEN
+            errmsg = ' '
+            CALL FGDERRMSG(errmsg, errmsglen)
+            CALL SPLIT_LIST(pttmode_help, err_lun, errmsg, errmsglen)
+            success = 0
+            RETURN
+        ENDIF
+
+C       Text to use
+        textlen = TM_LENSTR(text)
+C       Measure the text
+        CALL FGDTEXTSIZE(success, mywindow, text, textlen, 
+     .                   myfont, retwidth, retheight)
+        IF ( success .EQ. 0 ) THEN
+            errmsg = ' '
+            CALL FGDERRMSG(errmsg, errmsglen)
+            CALL SPLIT_LIST(pttmode_help, err_lun, errmsg, errmsglen)
+            CALL FGDFONTDEL(success, myfont)
+            success = 0
+            RETURN
+        ENDIF
+ 
+C       Delete the font created above
+        CALL FGDFONTDEL(success, myfont)
+
+        success = 1
+        RETURN
+        END
diff --git a/fer/grdel/fgd_engine_match.F b/fer/grdel/fgd_engine_match.F
index f0ed21b..08783cd 100644
--- a/fer/grdel/fgd_engine_match.F
+++ b/fer/grdel/fgd_engine_match.F
@@ -6,7 +6,7 @@
 *     windowid - window number to use
 *     engname - name (or partial name) of the engine;
 *               standard recognized names are Cairo, 
-*               PipedViewerPQ, or PipedImager 
+*               PipedViewerPQ, PipedImager, and NoDisplayPQ
 * Returns
 *     .TRUE. if the window uses the indicated engine; 
 *     otherwise .FALSE.
@@ -61,6 +61,13 @@
             RETURN
         ENDIF
 
+        idx = INDEX('NoDisplayPQ', engname(1:slen))
+        IF ( idx .EQ. 1 ) THEN
+            FGD_ENGINE_MATCH = 
+     .          enginename(windowid) .EQ. 'NoDisplayPQ'
+            RETURN
+        ENDIF
+
         IF ( slen .LE. 64 ) THEN
             FGD_ENGINE_MATCH = enginename(windowid) .EQ. engname
             RETURN
diff --git a/fer/grdel/fgd_gfa.F b/fer/grdel/fgd_gfa.F
index 00253c5..3cc5f59 100644
--- a/fer/grdel/fgd_gfa.F
+++ b/fer/grdel/fgd_gfa.F
@@ -15,10 +15,11 @@
         INCLUDE 'xprog_state.cmn'
         INCLUDE 'fgrdel.cmn'
 
-        INTEGER k, success, errmsglen
+        INTEGER k, success, errmsglen, stylen, cstylen, jstylen
+        CHARACTER*64 style, capstyle, joinstyle
         CHARACTER*2048 errmsg
-        REAL*8 tempbrush, fillbrush
-        REAL*4 left, bottom, right, top
+        REAL*8 brushcolorobj, tempbrush, fillbrush, outlinepen
+        REAL*4 left, bottom, right, top, linewidth
         LOGICAL rectdrawn;
 
 *       Sanity checks
@@ -37,6 +38,15 @@
             IF ( fillbrush .EQ. nullobj ) THEN
                 STOP 'FGD_GFA: null activebrush'
             ENDIF
+*           Get the color object used by this brush in case we need it
+            k = brushcolor(activebrush, activewindow)
+            IF ( (k .LT. 1) .OR. (k .GT. maxcolorobjs) ) THEN
+                STOP 'FGD_GFA: invalid brushcolor for active brush'
+            ENDIF
+            brushcolorobj = colorobjs(k,activewindow)
+            IF ( brushcolorobj .EQ. nullobj ) THEN
+                STOP 'FGD_GFA: null brushcolor for active brush'
+            ENDIF
             tempbrush = nullobj
         ELSE
 *           Create a temporary brush to use
@@ -44,13 +54,12 @@
      .           (lastbrushcolor .GT. maxcolorobjs) ) THEN
                 STOP 'FGD_GFA: invalid lastbrushcolor'
             ENDIF
-            IF ( colorobjs(lastbrushcolor, activewindow)
-     .           .EQ. nullobj ) THEN
+            brushcolorobj = colorobjs(lastbrushcolor, activewindow)
+            IF ( brushcolorobj .EQ. nullobj ) THEN
                 STOP 'FGD_GFA: null lastbrushcolor'
             ENDIF
             CALL FGDBRUSH(tempbrush, windowobjs(activewindow),
-     .                    colorobjs(lastbrushcolor, activewindow),
-     .                    lastbrushstyle, lastbstylen)
+     .                    brushcolorobj, lastbrushstyle, lastbstylen)
             IF ( tempbrush .EQ. nullobj ) THEN
                 errmsg = ' '
                 CALL FGDERRMSG(errmsg, errmsglen)
@@ -61,6 +70,23 @@
             fillbrush = tempbrush
         ENDIF
 
+        IF ( outlinewidth(activewindow) .GT. 0.0 ) THEN
+            linewidth = outlinewidth(activewindow) *
+     .                  thickfactor(activewindow)
+            style = "solid"
+            stylen = 5
+            capstyle = 'square'
+            cstylen = 6
+*           Use a miter join instead of a bevel join for this outline
+            joinstyle = 'miter'
+            jstylen = 5
+            CALL FGDPEN(outlinepen, windowobjs(activewindow),
+     .                  brushcolorobj, linewidth, style, stylen,
+     .                  capstyle, cstylen, joinstyle, jstylen)
+        ELSE
+            outlinepen = nullobj
+        ENDIF
+
 *       Quick check for a rectangle as specified by Ferret
 *       (Drawing rectangles much faster than generic polygons.)
         rectdrawn = .FALSE.
@@ -85,14 +111,14 @@
                 ENDIF
 *               Fill rectangle area (no outline)
                 CALL FGDDRAWRECT(success, windowobjs(activewindow),
-     .                  left, bottom, right, top, fillbrush, nullobj)
+     .                  left, bottom, right, top, fillbrush, outlinepen)
                 rectdrawn = .TRUE.
             ENDIF
         ENDIF
         IF ( .NOT. rectdrawn ) THEN
 *           Fill generic polygon area (no outline)
             CALL FGDDRAWPOLYGON(success, windowobjs(activewindow),
-     .                          ptsx, ptsy, npts, fillbrush, nullobj)
+     .                          ptsx, ptsy, npts, fillbrush, outlinepen)
         ENDIF
         IF ( success .EQ. 0 ) THEN
             errmsg = ' '
@@ -101,6 +127,17 @@
         ENDIF
         somethingdrawn = .TRUE.
 
+*       If an outline pen was created, delete it
+        IF ( outlinepen .NE. nullobj ) THEN
+            CALL FGDPENDEL(success, outlinepen)
+            IF ( success .EQ. 0 ) THEN
+                errmsg = ' '
+                CALL FGDERRMSG(errmsg, errmsglen)
+                CALL SPLIT_LIST(pttmode_help, err_lun,
+     .                          errmsg, errmsglen)
+            ENDIF
+        ENDIF
+
 *       If a temporary brush was created, delete it
         IF ( tempbrush .NE. nullobj ) THEN
             CALL FGDBRUSHDEL(success, tempbrush)
diff --git a/fer/grdel/fgd_gopwk.F b/fer/grdel/fgd_gopwk.F
index 2a15aa5..64c082d 100644
--- a/fer/grdel/fgd_gopwk.F
+++ b/fer/grdel/fgd_gopwk.F
@@ -27,7 +27,7 @@
         INTEGER TM_LENSTR
 
         INTEGER engnamelen, wintitlelen, showit, 
-     .          success, errmsglen, aaint
+     .          noalpha, success, errmsglen, aaint
         CHARACTER*2048 errmsg
         REAL*4 redf, greenf, bluef, opaquef
 
@@ -44,9 +44,11 @@
         engnamelen = TM_LENSTR(enginename(windowid))
         wintitlelen = TM_LENSTR(windowtitle)
         showit = 1
+*       ignoring alpha in colors ?
+        noalpha = 0
         CALL FGDWINCREATE(windowobjs(windowid),
      .                    enginename(windowid), engnamelen,
-     .                    windowtitle, wintitlelen, showit)
+     .                    windowtitle, wintitlelen, showit, noalpha)
         IF ( windowobjs(windowid) .EQ. nullobj ) THEN
             errmsg = ' '
             CALL FGDERRMSG(errmsg, errmsglen)
diff --git a/fer/grdel/fgd_set_engine.F b/fer/grdel/fgd_set_engine.F
index 897bd1b..88874f5 100644
--- a/fer/grdel/fgd_set_engine.F
+++ b/fer/grdel/fgd_set_engine.F
@@ -7,7 +7,8 @@
 *     newname - name (or partial name) of the engine;
 *               standard recognized names are Cairo, 
 *               CAIRO, PipedViewerPQ, PIPEDVIEWERPQ, 
-*               PipedImager, and PIPEDIMAGER
+*               PipedImager, PIPEDIMAGER, NoDisplayPQ,
+*               an NODISPLAYPQ
 *               Need all-uppercase for /ENGINE="..."
 *     forceit - change the engine name regardless of 
 *               no-display command-line options?
@@ -101,6 +102,17 @@
             RETURN
         ENDIF
 
+        idx = INDEX('NoDisplayPQ', newname(1:slen))
+        IF ( idx .NE. 1 ) THEN
+            idx = INDEX('NODISPLAYPQ', newname(1:slen))
+        ENDIF
+        IF ( idx .EQ. 1 ) THEN
+            enginename(windowid) = 'NoDisplayPQ'
+            antialias(windowid) = .TRUE.
+            sts = FERR_OK
+            RETURN
+        ENDIF
+
         IF ( slen .LE. 64 ) THEN
             warnmsg = 'Non-standard graphics engine "'
      .                // newname(1:slen) // '"'
diff --git a/fer/grdel/fgd_set_outline_width.F b/fer/grdel/fgd_set_outline_width.F
new file mode 100644
index 0000000..0f670be
--- /dev/null
+++ b/fer/grdel/fgd_set_outline_width.F
@@ -0,0 +1,30 @@
+*
+* Assigns the width of outlines for rectangles and other polygons
+* in the specified window
+*
+* Input Arguments:
+*     windowid - number of the window to use
+*     linewidth - width of outlines; can be zero for no outlines
+*
+        SUBROUTINE FGD_SET_OUTLINE_WIDTH(windowid, linewidth)
+
+        IMPLICIT NONE
+        INTEGER windowid
+        REAL*4 linewidth
+
+        INCLUDE 'fgrdel.cmn'
+
+        IF ( (windowid .LT. 1) .OR.
+     .       (windowid .GT. maxwindowobjs) ) THEN
+            STOP 'FGD_SET_OUTLINE_WIDTH: Invalid windowid value'
+        ENDIF
+        IF ( linewidth .LT. 0.0 ) THEN
+            STOP 'FGD_SET_OUTLINE_WIDTH: Invalid linewidth value'
+        ENDIF
+
+*       Record the outline width for this window
+        outlinewidth(windowid) = linewidth
+
+        RETURN
+        END
+
diff --git a/fer/grdel/fgd_set_window_dpi.F b/fer/grdel/fgd_set_window_dpi.F
new file mode 100644
index 0000000..bb0946c
--- /dev/null
+++ b/fer/grdel/fgd_set_window_dpi.F
@@ -0,0 +1,36 @@
+*
+*
+
+        SUBROUTINE FGD_SET_WINDOW_DPI(success, windowid, newdpi)
+
+        IMPLICIT NONE
+
+        INCLUDE 'ferret.parm'
+        INCLUDE 'tmap_dims.parm'
+        INCLUDE 'xprog_state.cmn'
+        INCLUDE 'fgrdel.cmn'
+
+        INTEGER success, windowid
+        REAL*4 newdpi
+
+        INTEGER errmsglen
+        CHARACTER*2048 errmsg
+
+*       Sanity checks
+        IF ( (windowid .LT. 1) .OR. 
+     .       (windowid .GT. maxwindowobjs) ) THEN
+            STOP 'FGD_SET_WINDOW_DPI: Invalid windowid value'
+        ENDIF
+        IF ( windowobjs(windowid) .EQ. nullobj ) THEN
+            STOP 'FGD_SET_WINDOW_DPI: null windowobj'
+        ENDIF
+
+        CALL FGDWINSETDPI(success, windowobjs(windowid), newdpi)
+        IF ( success .EQ. 0 ) THEN
+            errmsg = ' '
+            CALL FGDERRMSG(errmsg, errmsglen)
+            CALL SPLIT_LIST(pttmode_help, err_lun, errmsg, errmsglen)
+        ENDIF
+
+        RETURN
+        END
diff --git a/fer/grdel/font.c b/fer/grdel/font.c
index 9c1f41e..57a0459 100644
--- a/fer/grdel/font.c
+++ b/fer/grdel/font.c
@@ -5,6 +5,7 @@
 
 #include <Python.h> /* make sure Python.h is first */
 #include <string.h>
+#include <math.h>
 #include "grdel.h"
 #include "cferbind.h"
 #include "pyferret.h"
@@ -43,6 +44,7 @@ grdelType grdelFont(grdelType window, const char *familyname,
     PyObject *boldbool;
     PyObject *underlinedbool;
     GDFont *font;
+    double my, sx, sy, dx, dy, fs;
 
     bindings = grdelWindowVerify(window);
     if ( bindings == NULL ) {
@@ -57,11 +59,19 @@ grdelType grdelFont(grdelType window, const char *familyname,
         return NULL;
     }
 
+    grdelGetTransformValues(&my, &sx, &sy, &dx, &dy);
+    /* 
+     * The first value is just some unknown magic factor.
+     * 72.0 converts inches to points.
+     * sqrt(sx * sy) scales by the viewport size.
+     */
+    fs = 17.5 * 72.0 * sqrt(sx * sy) * (double) fontsize;
+
     font->id = grdelfontid;
     font->window = window;
     if ( bindings->cferbind != NULL ) {
         font->object = bindings->cferbind->createFont(bindings->cferbind,
-                                 familyname, familynamelen, (double) fontsize, 
+                                 familyname, familynamelen, fs, 
                                  italic, bold, underlined);
         if ( font->object == NULL ) {
             /* grdelerrmsg already assigned */
@@ -83,9 +93,8 @@ grdelType grdelFont(grdelType window, const char *familyname,
         else
             underlinedbool = Py_False;
         font->object = PyObject_CallMethod(bindings->pyobject, "createFont", 
-                                "s#dOOO", familyname, familynamelen,
-                                (double) fontsize, italicbool, boldbool,
-                                underlinedbool);
+                                "s#dOOO", familyname, familynamelen, fs,
+                                italicbool, boldbool, underlinedbool);
         if ( font->object == NULL ) {
             sprintf(grdelerrmsg, "grdelFont: error when calling the Python "
                     "binding's createFont method: %s", pyefcn_get_error());
@@ -202,7 +211,7 @@ grdelBool grdelFontDelete(grdelType font)
  *     familyname: name of the font family (e.g., "Helvetica", "Times");
  *                 an empty string uses the default font
  *     namelen: actual length of the font family name
- *     fontsize: desired size of the font View units
+ *     fontsize: desired size of the font in View units
  *     italic: use the italic version of the font? non-zero yes, zero no.
  *     bold: use the bold version of the font? non-zero yes, zero no.
  *     underlined: use the underlined version of the font? non-zero yes, zero no.
diff --git a/fer/grdel/getTransformValues.c b/fer/grdel/getTransformValues.c
new file mode 100644
index 0000000..db58d34
--- /dev/null
+++ b/fer/grdel/getTransformValues.c
@@ -0,0 +1,46 @@
+/*
+ * Drawing commands
+ */
+#include <Python.h> /* make sure Python.h is first */
+#include "grdel.h"
+#include "cferbind.h"
+
+/*
+ * Assigns the transformation values my, sx, sy, dx, and dy used
+ * to convert user coordinate (userx, usery) to device coordinate
+ * (devx, devy) using the formulae:
+ *    devx = userx * sx + dx
+ *    devy = (my - usery) * sy + dy
+ */
+void grdelGetTransformValues(double *my, double *sx, double *sy,
+                                         double *dx, double *dy)
+{
+   float lftfrc, rgtfrc, btmfrc, topfrc;
+   float lftcrd, rgtcrd, btmcrd, topcrd;
+   float winwidth, winheight;
+   double devlft, devtop, devwidth, devheight;
+   double usrlft, usrtop, usrwidth, usrheight;
+
+   fgd_get_view_limits_(&lftfrc, &rgtfrc, &btmfrc, &topfrc,
+                        &lftcrd, &rgtcrd, &btmcrd, &topcrd);
+   fgd_get_window_size_(&winwidth, &winheight);
+
+   devlft     = (double) lftfrc * (double) winwidth;
+   devwidth   = (double) rgtfrc * (double) winwidth;
+   devwidth  -= devlft;
+   devtop     = (1.0 - (double) topfrc) * (double) winheight;
+   devheight  = (1.0 - (double) btmfrc) * (double) winheight;
+   devheight -= devtop;
+
+   usrlft = (double) lftcrd;
+   usrwidth = (double) rgtcrd - usrlft;
+   usrtop = 0.0;
+   usrheight = (double) topcrd - (double) btmcrd;
+
+   *my = (double) topcrd;
+   *sx = devwidth / usrwidth;
+   *sy = devheight / usrheight;
+   *dx = devlft - (*sx) * usrlft;
+   *dy = devtop - (*sy) * usrtop;
+}
+
diff --git a/fer/grdel/grdel.h b/fer/grdel/grdel.h
index 4c05bec..ebbcbc6 100644
--- a/fer/grdel/grdel.h
+++ b/fer/grdel/grdel.h
@@ -86,7 +86,8 @@ void fgd_getanimate_(int *inanimation);
  */
 
 grdelType grdelWindowCreate(const char *engine, int enginelen,
-                     const char *title, int titlelen, grdelBool visible);
+                            const char *title, int titlelen, 
+                            grdelBool visible, grdelBool noalpha);
 const BindObj *grdelWindowVerify(grdelType window);
 grdelBool grdelWindowDelete(grdelType window);
 grdelBool grdelWindowClear(grdelType window, grdelType fillcolor);
@@ -112,7 +113,7 @@ grdelBool grdelWindowSetWidthFactor(grdelType window, float widthfactor);
  * Fortran interfaces for the Window functions.
  */
 void fgdwincreate_(void **window, char *engine, int *enginelen,
-                   char *title, int *titlelen, int *visible);
+                   char *title, int *titlelen, int *visible, int *noalpha);
 void fgdwindelete_(int *success, void **window);
 void fgdwinclear_(int *success, void **window, void **fillcolor);
 void fgdwinredraw_(int *success, void **window, void **fillcolor);
@@ -173,6 +174,9 @@ void fgdsegbegin_(int *success, void **window, int *segid);
 void fgdsegend_(int *success, void **window);
 void fgdsegdelete_(int *success, void **window, int *segid);
 
+void grdelGetTransformValues(double *my, double *sx, double *sy,
+                                         double *dx, double *dy);
+
 /*
  * All Color, Font, Pens, Brush, or Symbol objects can only be used
  * in the Window from which they were created.
diff --git a/fer/grdel/window.c b/fer/grdel/window.c
index ca72edc..b5d605d 100644
--- a/fer/grdel/window.c
+++ b/fer/grdel/window.c
@@ -87,16 +87,19 @@ void fgderrmsg_(char *errmsg, int *errmsglen)
  *     title: display title for the Window
  *     titlelen: actual length of the title
  *     visible: display Window on start-up?
+ *     noalpha: do not use the alpha channel (opacity) in colors
  *
  * Returns a pointer to the window object created.
  * If an error occurs, NULL is returned and
  * grdelerrmsg contains an explanatory message.
  */
 grdelType grdelWindowCreate(const char *engine, int enginelen,
-               const char *title, int titlelen, grdelBool visible)
+                            const char *title, int titlelen, 
+                            grdelBool visible, grdelBool noalpha)
 {
     GDWindow *window;
     PyObject *visiblebool;
+    PyObject *noalphabool;
 
     /* Allocate memory for this GDWindow */
     window = (GDWindow *) PyMem_Malloc(sizeof(GDWindow));
@@ -115,7 +118,7 @@ grdelType grdelWindowCreate(const char *engine, int enginelen,
      * This will fail if it is a Python-based engine.
      */
     window->bindings.cferbind = cferbind_createWindow(engine, enginelen,
-                                                      title, titlelen, visible);
+                                         title, titlelen, visible, noalpha);
     if ( window->bindings.cferbind != NULL ) {
         /* Success - engine found; done */
 #ifdef VERBOSEDEBUG
@@ -144,10 +147,14 @@ grdelType grdelWindowCreate(const char *engine, int enginelen,
         visiblebool = Py_True;
     else
         visiblebool = Py_False;
+    if ( noalpha )
+        noalphabool = Py_True;
+    else
+        noalphabool = Py_False;
     window->bindings.pyobject = 
             PyObject_CallMethod(pyferret_graphbind_module_pyobject, 
-                                "createWindow", "s#s#O", engine, enginelen,
-                                title, titlelen, visiblebool);
+                                "createWindow", "s#s#OO", engine, enginelen,
+                                title, titlelen, visiblebool, noalphabool);
     if ( window->bindings.pyobject == NULL ) {
         sprintf(grdelerrmsg, "grdelWindowCreate: error when calling createWindow "
                              "in pyferret.graphbind: %s", pyefcn_get_error());
@@ -950,6 +957,52 @@ grdelBool grdelWindowScreenInfo(grdelType window, float *dpix, float *dpiy,
     return 1;
 }
 
+
+/*
+ * Assign the window DPI.  
+ * Will only be successful if the window is not associated with a display.
+ *
+ * Input Arguments:
+ *     window: Window to use
+ *     newdpi: the number of dots per inch to assign
+ *
+ * Output Arguments:
+ *     success: one if successful, 
+ *              zero if an error occurred,
+ *              negative one if the window is associated with a display
+ */
+int  grdelWindowSetDpi(grdelType window, float newdpi)
+{
+    GDWindow *mywindow;
+
+#ifdef VERBOSEDEBUG
+    fprintf(debuglogfile, "grdelWindowSetDpi called: "
+            "window = %p, newdpi = %f\n", window, newdpi);
+    fflush(debuglogfile);
+#endif
+
+    if ( grdelWindowVerify(window) == NULL ) {
+        strcpy(grdelerrmsg, "grdelWindowSetDpi: "
+                            "window argument is not a grdel Window");
+        return 0;
+    }
+    mywindow = (GDWindow *) window;
+
+    if ( mywindow->bindings.pyobject != NULL ) {
+       /* anything with Python bindings has a display associated with it */
+       return -1;
+    }
+    if ( mywindow->bindings.cferbind == NULL ) {
+        strcpy(grdelerrmsg, "grdelWindowSetDpi: unexpected error, "
+                            "no bindings associated with this Window");
+        return 0;
+    }
+    /* (at this time) anything with only C bindings has no display associated with it */
+    mywindow->bindings.cferbind->setWindowDpi(mywindow->bindings.cferbind, (double) newdpi);
+    return 1;
+}
+
+
 /*
  * Set the scaling factor for pen widths, symbol sizes, and font sizes.
  *
@@ -1016,17 +1069,18 @@ grdelBool grdelWindowSetWidthFactor(grdelType window, float widthfactor)
  *     title: display title for the Window
  *     titlelen: actual length of the title
  *     visible: display Window on start-up? If zero, no; if non-zero, yes.
+ *     noalpha: do not use the alpha channel (opacity) in colors ?
  * Output Arguments:
  *     window: the window object created, or zero if failure.
  *             Use fgderrmsg_ to retreive the error message.
  */
 void fgdwincreate_(void **window, char *engine, int *enginelen,
-                   char *title, int *titlelen, int *visible)
+                   char *title, int *titlelen, int *visible, int *noalpha)
 {
     grdelType mywindow;
 
-    mywindow = grdelWindowCreate(engine, *enginelen,
-                                 title, *titlelen, *visible);
+    mywindow = grdelWindowCreate(engine, *enginelen, title, 
+                                 *titlelen, *visible, *noalpha);
     *window = mywindow;
 }
 
@@ -1276,6 +1330,28 @@ void fgdwinscreeninfo_(int *success, void **window, float *dpix, float *dpiy,
 
 
 /*
+ * Assign the window DPI.  
+ * Will only be successful if the window is not associated with a display.
+ *
+ * Input Arguments:
+ *     window: Window to use
+ *     newdpi: the number of dots per inch to assign
+ *
+ * Output Arguments:
+ *     success: one if successful, 
+ *              zero if an error occurred (use fgderrmsg_ to retrieve the error message),
+ *              negative one if the window is associated with a display
+ */
+void fgdwinsetdpi_(int *success, void **window, float *newdpi)
+{
+    int result;
+
+    result = grdelWindowSetDpi(*window, *newdpi);
+    *success = result;
+}
+
+
+/*
  * Assign the scaling factor for line widths, symbol sizes, and font sizes.
  *
  * Input Arguments:
diff --git a/fer/ino/cdf_prep_cache.F b/fer/ino/cdf_prep_cache.F
index 896b217..758203c 100644
--- a/fer/ino/cdf_prep_cache.F
+++ b/fer/ino/cdf_prep_cache.F
@@ -48,6 +48,7 @@
 *       *acm* 3/12 cleanup old VMS ifdef
 * 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'
 
         include 'tmap_errors.parm'
         include 'tmap_dims.parm'
@@ -67,7 +68,7 @@
 	CHARACTER TM_INQ_PATH*2048, filename*(*)
 
 * local variable declarations
-	LOGICAL		TM_HAS_STRING, fexist
+	LOGICAL		TM_HAS_STRING, fexist, ok_cache
 	INTEGER		TM_LENSTR1,
      .			qfile, dset, cx0, cx, ivar, idim, flen, dlen,
      .			iin, iout
@@ -82,10 +83,11 @@
         IF ( status .NE. ferr_ok ) GOTO 5000
 	dset = cx_data_set(cx_cmnd)
 	IF ( dset .EQ. unspecified_int4 ) GOTO 5100
-	IF ( ds_type(dset) .NE. 'CDF' )   GOTO 5200
-	IF ( ds_type(dset) .NE. 'ENS' )   GOTO 5200
-	IF ( .NOT.TM_HAS_STRING(ds_des_name(dset)(:8), 'http://') )
-     .					  GOTO 5200
+	ok_cache = ( TM_HAS_STRING(ds_type(dset),'CDF') .OR. 
+     .		     TM_HAS_STRING(ds_type(dset),'ENS') .OR. 
+     .		     TM_HAS_STRING(ds_type(dset),'FCT') .OR.
+     .               TM_HAS_STRING(ds_des_name(dset)(:8), 'http://') )
+        IF (.NOT. ok_cache) GOTO 5200
 
 * determine the directory to receive the cached file
         qfile = qual_given( slash_file )
diff --git a/fer/ino/find_dset_number.F b/fer/ino/find_dset_number.F
index 6d0b4f2..30e3e59 100644
--- a/fer/ino/find_dset_number.F
+++ b/fer/ino/find_dset_number.F
@@ -65,6 +65,7 @@
 * v604 *acm* 7/07 increase length of ds_name
 * V680 6/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
 * V685 *acm*  3/13 For Ensemble aggregations, call the ds_type 'ENS'
+* V695 *acm*  2/15 For Forecast aggregations, call the ds_type 'FCT'
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -156,7 +157,8 @@ c *kob* 4/97
 ** what about aggregate datasets?
 
 	      IF ( TM_HAS_STRING(ds_type(dset),'CDF')   .OR. 
-     .		   TM_HAS_STRING(ds_type(dset),'ENS') ) THEN
+     .		   TM_HAS_STRING(ds_type(dset),'ENS')   .OR. 
+     .		   TM_HAS_STRING(ds_type(dset),'FCT') ) THEN
 	         vax_code = STR_CASE_BLIND_COMPARE( ds_name(dset),
      .						    dname(1:short_len) )
 	         IF (  vax_code .EQ. vms_str_success
diff --git a/fer/ino/var_ss_lims.F b/fer/ino/var_ss_lims.F
index 84a5ebc..b469c52 100644
--- a/fer/ino/var_ss_lims.F
+++ b/fer/ino/var_ss_lims.F
@@ -88,9 +88,10 @@
 * ... end of 10/93 additions
 
 * cannot return answer under several conditions
-	is_file_var = cat .EQ. cat_file_var .OR. 
-     .                cat .EQ. cat_aggregate_var .OR.
-     .                cat .EQ. cat_pystat_var
+	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)
      .  .OR. dset .EQ. unspecified_int4
      .  .OR. line .EQ. mnormal
diff --git a/fer/mem/SOURCE_FILES b/fer/mem/SOURCE_FILES
index bcf45dd..7faaada 100644
--- a/fer/mem/SOURCE_FILES
+++ b/fer/mem/SOURCE_FILES
@@ -4,6 +4,7 @@ assign_mr_cx.F\
 assign_temp_var.F\
 assign_variable.F\
 cgrid_size_delta.F\
+create_full_range_context.F\
 create_mem_var.F\
 create_permutation.F\
 create_temp_mem_var.F\
@@ -19,6 +20,7 @@ delete_variable.F\
 erase_dset.F\
 fill_memory.F\
 find_mem_var.F\
+find_mem_var_incl_c_cache.F\
 find_mr_slot.F\
 find_var_name.F\
 free_memory.F\
diff --git a/fer/ctx/del_cx_dim.F b/fer/mem/create_full_range_context.F
similarity index 72%
copy from fer/ctx/del_cx_dim.F
copy to fer/mem/create_full_range_context.F
index d176ba6..c2ae558 100644
--- a/fer/ctx/del_cx_dim.F
+++ b/fer/mem/create_full_range_context.F
@@ -1,4 +1,4 @@
-	SUBROUTINE DEL_CX_DIM( idim, cx )
+	SUBROUTINE CREATE_FULL_RANGE_CONTEXT ( source, dest, status )
 
 *
 *
@@ -35,32 +35,48 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* eliminate all data specifying an axis in a context
+* 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
 *
-* revision 0.0 - 9/23/87
-* V200:  5/19/89 - reordered _ss dims
-* 9/97 *kob* - eliminate newly create cx_calendar
-*       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V695+ 5/15 *sh* 
+
+	IMPLICIT NONE
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
+	include 'errmsg.parm'
 	include 'xcontext.cmn'
 
 * calling argument declarations
-	INTEGER	cx, idim
+	INTEGER	source, dest, status
+
+* internal variable declarations
+	INTEGER CX_DIM_LEN_ZERO, idim, n
+
+* initialize
+	status = ferr_ok
 
-	cx_lo_ss    ( cx, idim ) = unspecified_int4
-	cx_hi_ss    ( cx, idim ) = unspecified_int4
-	cx_lo_ww    ( idim, cx ) = unspecified_val8
-	cx_hi_ww    ( idim, cx ) = unspecified_val8
-	cx_trans    ( idim, cx ) = trans_no_transform
-	cx_trans_arg( idim, cx ) = bad_val4
-	if (idim .EQ. t_dim) 
-     .      cx_calendar(cx) = .FALSE.
+	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
+	   ENDIF
+	ENDDO
 
 	RETURN
+
+* error exit
+ 5000	RETURN
 	END
diff --git a/fer/mem/delete_user_var_sub.F b/fer/mem/delete_user_var_sub.F
index cc0b022..2ca0401 100644
--- a/fer/mem/delete_user_var_sub.F
+++ b/fer/mem/delete_user_var_sub.F
@@ -65,6 +65,8 @@
 * V602 12/06 *acm* - When removeing var from the user-variables dataset in
 *                    linked-list structure, no need to check for  EX# expressions
 *        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
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -147,6 +149,11 @@
 * if this user variable is associated with any dynamic grids release them
 	CALL DEALLO_UVAR_GRIDS(uvar)
 
+* if there is a c cache of the full range variable, free it
+* note: this addition remained untested at the time it was entered
+	IF (uvar_c_cache_ptr(uvar) .NE. 0.0) CALL FREE_CACHED_FULL_ARRAY
+     .						(uvar_c_cache_ptr(uvar))
+
 * eliminate the named variable from the list of uvars
 *	uvar_num_items( uvar ) = uvar_deleted
         CALL deleted_list_modify(uvar_num_items_head,uvar,uvar_deleted)
@@ -159,7 +166,7 @@
            slen = TM_LENSTR1( uvar_name_code(uvar)  )
            CALL TM_FTOC_STRNG( uvar_name_code(uvar)(1:slen), fhol, flen )
 
-           dset_uvars = -1
+           dset_uvars = pdset_uvars
            CALL NCF_DELETE_VAR (dset_uvars, fhol )
         ENDIF
 
@@ -175,6 +182,11 @@
 	   rvar_uvar (uvar) = 0
 	   uvar_remote (uvar) = .FALSE.
 	ENDIF
-	      
+	
+* Reinitialize any aux_uvar settings 
+        DO 400 i = 1, nferdims
+ 400        uvar_aux_stat(uvar,i) = paux_stat_init
+
+      
 	RETURN
 	END
diff --git a/fer/mem/erase_dset.F b/fer/mem/erase_dset.F
index 88d4050..044ede8 100644
--- a/fer/mem/erase_dset.F
+++ b/fer/mem/erase_dset.F
@@ -49,12 +49,13 @@
 * V601  11/06 - Also need to delete LET/D= variables from the linked-
 *               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
 
         include 'tmap_dims.parm'
 	include 'ferret.parm'
 	include 'xvariables.cmn'
 	include 'xcontext.cmn'
-
+	include 'xdset_info.cmn_text'
 
 * calling argument declarations:
 	INTEGER dset
@@ -72,6 +73,14 @@
 * eliminate memory resident data
 	CALL PURGE_DSET( dset )
 
+* free any c-cached variables owned by this dataset
+	DO ii = 1, maxvars
+	   IF (ds_var_setnum(ii) .EQ. dset) THEN
+	      IF (ds_var_c_cache_ptr(ii).NE.0.0) CALL FREE_CACHED_FULL_ARRAY
+     .						(ds_var_c_cache_ptr(ii))
+	   ENDIF
+	ENDDO
+
 * delete LET-defined variables that belong to this data set
 	DO 100 ii = 1, max_uvar
 *	   IF (uvar_dset(ii) .EQ. dset) uvar_num_items(ii) =
@@ -87,7 +96,7 @@
               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 = -1
+                 dset_uvars = pdset_uvars
                  CALL NCF_DELETE_VAR (dset_uvars, fhol )
               ENDIF
 
diff --git a/fer/mem/find_mem_var.F b/fer/mem/find_mem_var.F
index 4e6aa35..2ab99da 100644
--- a/fer/mem/find_mem_var.F
+++ b/fer/mem/find_mem_var.F
@@ -1,4 +1,4 @@
-	SUBROUTINE FIND_MEM_VAR( cx, mr, by_value )
+	SUBROUTINE FIND_MEM_VAR( cx, mr, by_value, valid_search )
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -75,6 +75,7 @@
 * 2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
 * V685 4/13-3/14 *sh* support for auxiliary variables used in regridding
 * V692 7/14 *acm* ticket 2183: handle @WGT transform as for integrals
+* V695+ 5/15 *sh* added valid_search argument, to support c cache hits
 
 * (V510) How on cache hits on external functions (EFs) work:
 * uvar_given is used to encapsulate information about cache reuse for EF
@@ -112,14 +113,18 @@
 
 * calling argument declarations:
 	INTEGER cx, mr
-	LOGICAL by_value
+	LOGICAL by_value, valid_search
 
 * internal variable declarations:
 	LOGICAL has_trans, itsa_uvar,
      .          normal(nferdims), non_modulo(nferdims)
 	INTEGER HASH_CX, line,
      .		mv, defining_grid, idim, var
-        REAL*8  TM_WORLD, ww_hi_bound
+        REAL*8  TM_WORLD, ww_hi_bound, c_cache_ptr
+
+
+* initialize
+	valid_search = .TRUE.
 
 * in "STUPID" mode the program cannot find anything in memory
 *  (4/99) if mode_arg is 1 we are are using "weak_cache", so do not skip out
@@ -172,7 +177,7 @@
  100	mv = mv_flink( mv )
 	IF ( mv .LT. 0 ) THEN
 	   mr = mr_nonexist
-	   RETURN
+	   RETURN     ! not found in normal Ferret cache
 	ENDIF
 
 * right variable ?
@@ -359,5 +364,6 @@
 
 * failure exit
  5000	mr = mr_nonexist
+	valid_search = .FALSE.
 	RETURN
 	END
diff --git a/fer/doo/do_stddev.F b/fer/mem/find_mem_var_incl_c_cache.F
old mode 100755
new mode 100644
similarity index 55%
copy from fer/doo/do_stddev.F
copy to fer/mem/find_mem_var_incl_c_cache.F
index 0e4724d..158c0a4
--- a/fer/doo/do_stddev.F
+++ b/fer/mem/find_mem_var_incl_c_cache.F
@@ -1,10 +1,5 @@
-	INTEGER FUNCTION DO_STDDEV (	idim, arg,
-     .					com, com_mr, com_cx,
-     .					res, res_mr, res_cx,
-     .					box	)
+	SUBROUTINE FIND_MEM_VAR_INCL_C_CACHE( cx, mr, by_value, memory )
 
-*
-*
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
 *  Administration''s (NOAA) Pacific Marine Environmental Lab(PMEL),
@@ -38,43 +33,71 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* determine the variance of the given field along the indicated axis
+* try a traditional Ferret memory cache search.
+*  If it fails, as a last ditch, look to see if the full range variable
+* is available in c cache (normally used for CF auxiliary variables)
 
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
 * written for VAX computer under VMS operating system
 *
-* V230:  3/2/92
-*        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V695+ 5/15 *sh*
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
-	include	'ferret.parm'
-	include	'errmsg.parm'
-	include	'interp_stack.parm'
-	include	'xcontext.cmn'
-	include	'xprog_state.cmn'
+	include 'ferret.parm'
+	include 'errmsg.parm'
+	include 'xtm_grid.cmn_text'
+	external xgt_grid_data
+	include 'xvariables.cmn'
+	include 'xcontext.cmn'
+	include 'xprog_state.cmn'
+	include 'xdset_info.cmn_text'
 
 * calling argument declarations:
-	INTEGER	idim, com_mr, com_cx, res_mr, res_cx
-	REAL	arg, com(*), res(*), box(*)
+	INTEGER cx, mr
+	LOGICAL by_value
+	REAL    memory( mem_blk_size, max_mem_blks )
 
 * internal variable declarations:
-	LOGICAL stddev
-
-	stddev = .TRUE.
+	LOGICAL valid_search
+	INTEGER CGRID_SIZE, var, cat, npts, status
+        REAL*8  c_cache_ptr
 
-* diagnostic mode output: " doing --> VAR_NAME[x=lo:hi at TRN:n,D=#]"
-	IF ( mode_diagnostic ) 	CALL DIAG_OP
-     .				( 'doing', isact_class_trans, res_cx, idim )
+* 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
 
-	CALL DO_VAR_SUB( idim,
-     .			 cx_lo_ss(com_cx,idim), cx_hi_ss(com_cx,idim),
-     .			 com, com_mr, com_cx,
-     .			 res, res_mr, res_cx,
-     .			 box, stddev )
+* initialize
+	var = cx_variable(cx)
+	cat = cx_category(cx)
+* ... aggegated vars always map to file var of same cx_variable number
+	IF (cat .EQ. cat_agg_f_var) cat = cat_file_var
 
-	DO_STDDEV = ferr_ok
+* last ditch attempt -- is this variable available in c memory cache
+* (used to speed recall of CF auxiliary variables)
+* NOTE: error conditions are not properly trapped
+	IF ( cat .EQ. cat_file_var ) THEN
+	   c_cache_ptr = ds_var_c_cache_ptr(var)
+	ELSEIF ( cat .EQ. cat_user_var ) THEN
+	   c_cache_ptr =  uvar_c_cache_ptr(var) 
+	ELSE
+	   c_cache_ptr =  0.0
+	ENDIF
 
+	IF (c_cache_ptr .NE. 0.0) THEN
+	   CALL CREATE_FULL_RANGE_CONTEXT ( cx, cx_buff, status )
+	   IF (status .NE. ferr_ok) GOTO 5000
+	   CALL CREATE_MEM_VAR( cx_buff, mr, status )
+	   IF (status .NE. ferr_ok) GOTO 5000
+	   npts = CGRID_SIZE(cx_buff)
+	   CALL RECOVER_CACHED_FULL_ARRAY(memory(1,mr_blk1(mr)),
+     .				npts, c_cache_ptr)
+	   IF (mode_diagnostic) CALL DIAGNOSTIC_OUT('c-found',mr,point_to_mr)
+	   RETURN  ! YAHOO!  Made a last didch cache hit.
+	ENDIF
+	
+* failure exit
+ 5000	mr = mr_nonexist
 	RETURN
 	END
diff --git a/fer/mem/find_var_name.F b/fer/mem/find_var_name.F
index be6fa7d..9c3b54c 100644
--- a/fer/mem/find_var_name.F
+++ b/fer/mem/find_var_name.F
@@ -71,7 +71,11 @@
 * V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
 * V685 *acm*  3/13 For Ensemble aggregations, call the ds_type 'ENS'
 * V685+ *acm* 3/13 For Ensemble ds_type, check datset number before testing its type
-
+* v694 *acm* 12/14 Fix ticket 2050: case of variables in quotes
+*      *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'
+*   
         IMPLICIT NONE
         include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -306,6 +310,9 @@
  170    CONTINUE
 
 * check file variables from this data set
+* Quoted variable may have been saved in the data structure uppercased:
+* Look first with the spelling given, then if not found use case-blind search.
+*
 *	DO 200 ivar = 1, maxvars
 *	   IF ( single_dset .AND. ds_var_setnum( ivar ) .NE. dset ) GOTO 200
 *           len_mchars = TM_LENSTR(ds_var_code(ivar))
@@ -323,12 +330,41 @@
      .                                string_array_result(1),
      .                                max_uvar,
      .                                num_indices)
+* NOTE: (*sh* 12/2014):  The routine string_array_find_quoted includes a case-blind
+*     array scan if the test_name string has no enclosing qquotation marks.
+*     So are these next lines of code redundant/unnecessary?
+	IF (len_test.GT.0) THEN
+* ... case-blind search for name enclosed in "'"
+	   IF (num_indices.EQ.0 .AND. test_name(1:1).EQ."'") THEN
+!	      len_test = TM_LENSTR(test_name)    ! 12/14 *sh* is this needed?
+	      varname = test_name(2:len_test-1)
+	      CALL string_array_find_caseblind(ds_var_code_head,
+     .                                   varname,
+     .                                   len_test-2,
+     .                                   string_array_result(1),
+     .                                   max_uvar,
+     .                                   num_indices)
+* ... case-blind search for name enclosed in _SQ_
+	   ELSEIF (len_test.GT.8) THEN
+	      IF (num_indices.EQ.0 .AND. test_name(1:4).EQ.p_SQ_quote) THEN
+	         varname = test_name(5:len_test-4)
+	         CALL string_array_find_caseblind(ds_var_code_head,
+     .                                   varname,
+     .                                   len_test-8,
+     .                                   string_array_result(1),
+     .                                   max_uvar,
+     .                                   num_indices)
+	      ENDIF
+	   ENDIF
+	ENDIF
+
         DO 200 j = 1, num_indices
            ivar = string_array_result(j)
 	   IF ( single_dset .AND. ds_var_setnum( ivar ) .NE. dset ) GOTO 200
  	   category = cat_file_var
  	   IF (dset.NE.unspecified_int4) THEN
-	      IF (ds_type(dset) .EQ. 'ENS') category = cat_aggregate_var
+	      IF (ds_type(dset).EQ.'ENS') category = cat_agg_e_var
+	      IF (ds_type(dset).EQ.'FCT') category = cat_agg_f_var
  	   ENDIF
 	   variable = ivar
            test_name = buff
diff --git a/fer/mem/purge_mr_axis.F b/fer/mem/purge_mr_axis.F
index 69ac464..7f41141 100644
--- a/fer/mem/purge_mr_axis.F
+++ b/fer/mem/purge_mr_axis.F
@@ -51,6 +51,8 @@
 * V541 6/02 *acm*  call PACK_LINE_STORAGE to recover line_mem storage when irregular
 *                  axis is cancelled.
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* v695 4/15 *acm*  Fix ticket 2271: If the record axis was redefined, we need
+*                  to store that info in the record-axis storage
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -60,12 +62,14 @@
 	include	'tmap_errors.parm'
 	include 'xtm_grid.cmn_text'
 	external xgt_grid_data
+	include 'xdset_info.cmn_text'
+
 
 * calling argument declaration:
 	INTEGER	old_axis, new_axis, status
 
 * internal variable declarations:
-	INTEGER	TM_GET_LINENUM, grid, idim, num_protected_axes
+	INTEGER	TM_GET_LINENUM, grid, idim, num_protected_axes, iset
 	CHARACTER	I6*6
 
 * the lowest axes are protected
@@ -105,6 +109,11 @@
  250	CONTINUE
 	line_use_cnt(new_axis) = line_use_cnt(old_axis)
 
+* check for the axis in the list of record axes; replace the old with the new
+	DO 300 iset = 1, maxdsets
+	   IF (ds_time_axis(iset) .EQ. old_axis) ds_time_axis(iset) = new_axis
+ 300	CONTINUE
+
 * delete the old axis
 	IF ( .NOT.line_regular(old_axis) ) THEN
            CALL PACK_LINE_STORAGE(old_axis)
diff --git a/fer/mem/purge_mr_grid.F b/fer/mem/purge_mr_grid.F
index f99a03f..6c6cb7f 100644
--- a/fer/mem/purge_mr_grid.F
+++ b/fer/mem/purge_mr_grid.F
@@ -52,6 +52,7 @@
 * v540 *acm* 10/01  remove VMS include statements
 * 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
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -72,7 +73,8 @@
 	INTEGER	grid, status
 
 * internal variable declarations:
-	INTEGER	mr, ivar, dset, glen, done_dset
+	INTEGER	TM_LENSTR1,
+     .		mr, ivar, dset, glen, done_dset
 !	INTEGER	TM_LENSTR1, mr, ivar, cvar, dset, glen, done_dset
 
 * the lowest grids are protected
@@ -87,6 +89,7 @@
 	   IF ( dset .EQ. set_not_open ) GOTO 10
 	   IF ( ds_grid_number(ivar) .EQ. grid
      .	  .AND. dset .NE. done_dset ) THEN
+	      glen = TM_LENSTR1(grid_name(grid))
 	      CALL WARN('grid '//grid_name(grid)(:glen)//
      .		' used by data set '//ds_name(dset))
 	      CALL WARN
diff --git a/fer/mem/var_code.F b/fer/mem/var_code.F
index 648319a..80fc345 100644
--- a/fer/mem/var_code.F
+++ b/fer/mem/var_code.F
@@ -54,6 +54,7 @@
 *	 1/99 *sh8 ... and cat_string
 *        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
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -73,7 +74,8 @@
 
 	IF     ( category .EQ. cat_file_var 
      . .OR.	 category .EQ. cat_file_rev 
-     . .OR.	 category .EQ. cat_aggregate_var ) THEN
+     . .OR.	 category .EQ. cat_agg_e_var
+     . .OR.	 category .EQ. cat_agg_f_var ) THEN
 
 	   VAR_CODE = ds_var_code( variable )
 
@@ -117,6 +119,10 @@
 
 	   VAR_CODE = 'str'
 
+	ELSEIF ( category .EQ. cat_attrib_val ) THEN
+
+	   VAR_CODE = 'attr'
+
 	ELSE
 
 	   VAR_CODE = 'bad*'
diff --git a/fer/plt/SOURCE_FILES b/fer/plt/SOURCE_FILES
index 9e17734..9ff8410 100644
--- a/fer/plt/SOURCE_FILES
+++ b/fer/plt/SOURCE_FILES
@@ -6,6 +6,7 @@ axis_end_syms.F\
 axis_format.F\
 ax_on_off.F\
 box_label.F\
+cancel_pytext_group.F\
 cancel_window.F\
 check_graphics.F\
 choose_cx_ww.F\
@@ -28,6 +29,8 @@ equal_range_t.F\
 equal_thick.F\
 flow_set_up.F\
 get_axis_format.F\
+get_color_name.F\
+get_color_rgb.F\
 get_frame_size.F\
 get_view_size.F\
 get_window_pixels.F\
@@ -46,6 +49,7 @@ line_style.F\
 load_curvilinear.F\
 merged_whoi_date.F\
 parse_color_tuple.F\
+parse_pyfont_color.F\
 plot_set_up.F\
 polygon_set_up.F\
 pos_lab.F\
@@ -56,6 +60,7 @@ ppl_dash_restore.F\
 ppl_patset.F\
 ppl_shaset.F\
 ppl_time.F\
+put_annotation.F\
 put_cmnd_key.F\
 put_key.F\
 put_label.F\
@@ -65,10 +70,12 @@ save_ppl_values.F\
 seg_off.F\
 seg_on.F\
 send_pltype.F\
+set_annotation.F\
 set_ax_sizes.F\
 set_graticules.F\
 set_plot_size.F\
 set_ppl_values.F\
+set_pytext_group.F\
 set_text_sizes.F\
 set_viewport.F\
 set_vp_symbols.F\
diff --git a/fer/plt/axis_end_syms.F b/fer/plt/axis_end_syms.F
index 4842c71..a092bf2 100644
--- a/fer/plt/axis_end_syms.F
+++ b/fer/plt/axis_end_syms.F
@@ -55,11 +55,12 @@
 	CHARACTER*16  val_buff
 
 * Define symbols identifying axis limits
-	WRITE ( val_buff, '(1PG15.8)' ) first
+* This is enough precision to list seconds since 1900 (at least)
+	WRITE ( val_buff, '(1PG16.9)' ) first
 	CALL PPLCMD ( from, line, 0, 
      .		'SET '//plot_ax//'AXIS_MIN '//val_buff , 1, 1 )
 
-	WRITE ( val_buff, '(1PG15.7)' ) last
+	WRITE ( val_buff, '(1PG16.9)' ) last
 	CALL PPLCMD ( from, line, 0, 
      .		'SET '//plot_ax//'AXIS_MAX '//val_buff , 1, 1 )
 
diff --git a/fer/plt/axis_ends.F b/fer/plt/axis_ends.F
index c0556cc..4607dc5 100644
--- a/fer/plt/axis_ends.F
+++ b/fer/plt/axis_ends.F
@@ -54,7 +54,8 @@
 *                     character too short.  this only showed up under Linux
 *        *acm* 6/01 - add logical IS_LOG  for log axis
 * V580 *acm* 12/04 Fix bug 1129; send back correct value of delta if computed here
-* V68  *acm* 1/12  changes for double-precision ferret, single-precision pplus.
+* V68  *acm* 1/12 changes for double-precision ferret, single-precision pplus.
+* V695+ *sh* 4/15 format long longitude axes using a delta based upon 15 deg
 
 	include 'ferret.parm'
 	include 'plot_setup.parm'
@@ -70,12 +71,12 @@
 	REAL*8		first, last, delta
 
 * internal variable declarations:
-	LOGICAL		BKWD_AXIS
+	LOGICAL		BKWD_AXIS, GEOG_LABEL
 	CHARACTER	val_buff*45
 	INTEGER		axtp, status
 	REAL*4		x1, x2, uminr, umaxr, dint
-	REAL*8		firstl, lastl, epsilon, eps2
-	PARAMETER	(epsilon=1.e-35)
+	REAL*8		firstl, lastl, epsilon, eps2, span
+	PARAMETER	(epsilon=1.e-45)
 
 	STATUS = ferr_ok 
 
@@ -107,6 +108,7 @@
              IF (ABS(firstl - first) .GT. eps2) first = first + 1.
 	   ENDIF
        ENDIF
+       span = ABS(last-first)
 
 * Convert to single precision and reverse order if a depth plot on Y axis
 
@@ -130,8 +132,20 @@
 
 * use Denbo's PPLUS routine to calculate the tic interval, dint
 	IF ( delta .EQ. unspecified_val8 ) THEN
-	   CALL RANGE( x1, x2, 10, uminr, umaxr, dint )
-           delta = dint
+	   IF (dat_ax .EQ. x_dim
+     .   .AND. GEOG_LABEL(x_dim,grid)
+     .	 .AND. span .GT. 75.  ) THEN
+* ... use 15-degree delta for long longitude axes
+	      IF (span .GT. 180.) THEN
+	         delta = 30.
+	      ELSE
+	         delta = 15.
+	      ENDIF
+	      dint = delta
+	   ELSE
+	      CALL RANGE( x1, x2, 10, uminr, umaxr, dint )
+              delta = dint
+	   ENDIF
 	ELSE
 	   dint = delta
 	ENDIF
diff --git a/fer/plt/axis_format.F b/fer/plt/axis_format.F
index 690f640..b861784 100644
--- a/fer/plt/axis_format.F
+++ b/fer/plt/axis_format.F
@@ -1,6 +1,7 @@
 	SUBROUTINE AXIS_FORMAT( x_or_y, idim, grid, lo_val, hi_val,
      .				del_val, curvilinear, cx_curv,
-     .				its_calendar, tstyle, no_labels )
+     .				its_calendar, calendar_both, 
+     .				tstyle, no_labels, imposed_lab )
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -80,6 +81,10 @@
 *                  A time axis may be a T axis or F axis, so idim is 
 *                  now an arg to TSTEP_TO_SECS, TSTEP_TO_DATE
 * PyFr  *kms* 7/13 Use hxlab and hylab from PPL with PUT_LABEL for axis titles
+* V694  *acm* 1/15 Changes to allow two time axes on plot (F-T)
+* 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
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -92,15 +97,19 @@
 	include 'xplot_state.cmn'
         INCLUDE 'labcom_inc.decl'
         INCLUDE 'LABCOM.INC'    ! hxlab, hylab
+* needed to position the imposed labels
+	include 'axis_inc.decl'		! axis lengths
+        include 'AXIS.INC'              ! axis lengths
 * special equivalence needed only with risc compiler: bug fix
 	include 'xrisc.cmn'     ! for f77 bug
         CHARACTER rbuff(4)*14
         EQUIVALENCE ( rbuff, risc_buff )
 
 * calling argument declarations:
-	LOGICAL		its_calendar, curvilinear, no_labels
+	LOGICAL		its_calendar, calendar_both, curvilinear, no_labels
 	INTEGER		idim, grid, cx_curv
 	CHARACTER	x_or_y*1, tstyle*3
+	CHARACTER*(*)	imposed_lab
 	REAL*8		lo_val, hi_val, del_val
 
 * parameter definitions:
@@ -109,10 +118,10 @@
 
 * internal variable declarations:
 	LOGICAL		GEOG_LABEL, GEOG_VAR, use_nice, special
-	INTEGER		TM_LENSTR1, dlen, places, ndec, dummy
+	INTEGER		TM_LENSTR1, TM_LENSTR, dlen, places, ndec, dummy
 	CHARACTER	AX_TITLE*32, WHOI_DATE*14, VAR_TITLE*128,
      .			INTERNAL_WHOI_DATE*14,
-     .			fmt*4, buff*200
+     .			fmt*4, buff*200, tsetting*2
 	REAL		res_del, dt_min, time_unit, labelht
 	REAL*8		TSTEP_TO_SECS
 	INTEGER		n_res
@@ -174,14 +183,16 @@
 	      dt_min = time_unit / 60.
 
 * ... TAXIS command
+	      tsetting = 'ON'
+	      IF (calendar_both) tsetting = 'BO'
 	      IF ( x_or_y .EQ. 'Y' ) THEN
-	         WRITE ( ppl_buff, 3010 ) dt_min
+	         WRITE ( ppl_buff, 3010 ) dt_min, tsetting
 	      ELSE
-	         WRITE ( ppl_buff, 3012 ) dt_min
+	         WRITE ( ppl_buff, 3012 ) dt_min, tsetting
 	      ENDIF
 	      CALL PPLCMD ( from, line, 0, ppl_buff, 1, 1 )
- 3010	      FORMAT ('TAXIS/YAXIS ',G13.5,',ON')
- 3012	      FORMAT ('TAXIS ',G13.5,',ON')
+ 3010	      FORMAT ('TAXIS/YAXIS ',G13.5,',',A2)
+ 3012	      FORMAT ('TAXIS ',G13.5,',',A2)
 
 * ... TIME command (time axis limits)
               rbuff(1) = WHOI_DATE(grid, idim, lo_val )      ! f77 bug
@@ -196,8 +207,14 @@
 	      saved_dt_min = dt_min
 	      saved_t1_date =  INTERNAL_WHOI_DATE(grid, idim, 1.0D0 )
 * ... TXTYPE and TXLINT commands (time axis style)
+	      IF (no_labels) THEN
+	         buff = ' '
+	      ELSE
+	         buff = imposed_lab
+	      ENDIF	
 	      CALL TAXIS_STYLE(	x_or_y, TSTEP_TO_SECS( grid, idim, lo_val ),
-     .				TSTEP_TO_SECS( grid, idim, hi_val ), tstyle )
+     .				TSTEP_TO_SECS( grid, idim, hi_val ),
+     .				tstyle, buff )
 
 	   ELSEIF ( idim .EQ. x_dim .AND. use_nice) THEN
 * longitude format for axis tic labling
@@ -214,11 +231,16 @@
 
 * lat/long or x/y axis label
 	IF ( no_labels ) RETURN
-	IF ( curvilinear ) THEN
+        IF (curvilinear ) THEN
 	   buff = VAR_TITLE( cx_curv)
 	   dlen = TM_LENSTR1(buff)
 	ELSE
-	   buff = AX_TITLE( idim, grid, dlen )	! risc_buff as of 6/95
+	   IF (its_calendar.AND. TM_LENSTR(imposed_lab) .EQ.0) THEN ! skip label of TIME
+	      buff = ' '
+	      dlen = 1
+	   ELSE
+ 	      buff = AX_TITLE( idim, grid, dlen )	! risc_buff as of 6/95
+	   ENDIF
 	ENDIF
 	IF ( x_or_y .EQ. 'X' ) THEN
            labelht = hxlab
@@ -229,5 +251,6 @@
 	   CALL PUT_LABEL( ppl_ylab, dummy, dummy, dummy,
      .                     labelht, buff(:dlen), dummy, dummy )
 	ENDIF
+
 	RETURN
       END
diff --git a/fer/plt/box_label.F b/fer/plt/box_label.F
index 6ef25e0..51fa9c0 100644
--- a/fer/plt/box_label.F
+++ b/fer/plt/box_label.F
@@ -56,12 +56,14 @@
 *                    instead of creating multiple moveable labels. 
 * 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. 
 
         include 'tmap_dims.parm'
 	include	'ferret.parm'
 	include	'plot_setup.parm'
 	include 'xprog_state.cmn'
 	include 'xrisc.cmn'
+        include 'pyfonts.cmn'
 
 * calling argument declarations
 	INTEGER lab_type, justify, xaxrel, yaxrel, k, numlines
@@ -70,7 +72,7 @@
 
 * internal variable declarations
         INTEGER lnbeg(250), lnend(250)
-	INTEGER	TM_LENSTR1, slen, nfont, brk_pt, nex_brk_pt, 
+	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
@@ -82,6 +84,12 @@
 	ht = MIN( lab_ht, ysize )
 	slen = TM_LENSTR1( string )
 
+* blank string
+	IF (TM_LENSTR(string) .EQ. 0) THEN
+           slen = 1
+           GOTO 500
+	ENDIF
+
 * Choose the break character. If there are commas use them. If there
 * are any slashes, use that.  Else use underscore or dash.
 
@@ -110,23 +118,27 @@
 * select PLOT+ font
 
         nfont = 0
-
-	IF ( .NOT.mode_font_ascii ) THEN
-	   font = ' '
-	ELSEIF ( lab_type .EQ. ppl_title ) THEN
-	   font = '@AC'
-           nfont = 3
-	ELSE
-	   font = '@AS'
-           nfont = 3
-	ENDIF
+	font = ' '
+
+	IF (.NOT.pyfont) THEN
+	   IF ( .NOT.mode_font_ascii) THEN
+	      font = ' '
+	   ELSEIF ( lab_type .EQ. ppl_title ) THEN
+	      font = '@AC'
+              nfont = 3
+	   ELSE
+	      font = '@AS'
+              nfont = 3
+	   ENDIF
 
 * Let user select the font if they want
 
-        IF (string(1:1) .EQ. "@") THEN
-           font = ' '
-           nfont = 0
-        ENDIF
+           IF (string(1:1) .EQ. "@") THEN
+              font = ' '
+              nfont = 0
+           ENDIF
+
+	ENDIF  ! pyfont or Classic Hershey
 
         width = 0.
         rht = ht
@@ -167,7 +179,7 @@
 * it's too big - we will try to write it as 2 lines
 * ... break into pieces as close to halves as possible
 	las_frac = 999.0
- 100	IF ( .NOT.mode_font_ascii ) THEN
+ 100	IF ( .NOT.mode_font_ascii .OR. .NOT.pyfont) THEN
 	   rht = ht
 	   frac_width = DBLE(SYMWID(rht,brk_pt,string(:brk_pt) ))
 	ELSEIF ( lab_type .EQ. ppl_title ) THEN
diff --git a/fer/plt/cancel_pytext_group.F b/fer/plt/cancel_pytext_group.F
new file mode 100644
index 0000000..19c477a
--- /dev/null
+++ b/fer/plt/cancel_pytext_group.F
@@ -0,0 +1,176 @@
+	SUBROUTINE CANCEL_PYTEXT_GROUP (igrp)
+*
+*  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. 
+*
+
+* V695  *acm*  5/15 on canceling group settings, restore to the current global setting
+
+        include 'tmap_dims.parm'
+	include	'slash.parm'
+	include 'xprog_state.cmn'
+        include 'pyfonts.cmn'
+
+	INTEGER	igrp
+
+	INTEGER i
+	LOGICAL iall, is_set
+
+* Restore default settings
+
+* Should the logo pyf_set be set to .TRUE.? Should it be set to the overall text font, 
+* or its own text font?
+
+      IF (igrp .EQ. fnt_all) THEN
+        IF ( qual_given( slash_canc_text_all ) .GT. 0) iall = .TRUE.
+
+	IF (num_qualifiers .EQ. 0) iall = .TRUE.
+
+c* ... CANCEL TEXT/FONT
+	IF (iall .OR. qual_given( slash_canc_text_font ) .GT. 0) THEN
+           pyfnt_fontname = pyfnt_font_dflt
+	   
+           DO 1010 i = 1, ngp
+	      pyf_fontname(i) = pyf_font_dflt(i)
+ 1010      CONTINUE
+	ENDIF
+
+* ... CANCEL TEXT/COLOR
+*     Restore to black
+
+	IF (iall .OR. qual_given( slash_canc_text_color ) .GT. 0) THEN
+           pyfnt_red = 0.
+	   pyfnt_grn = 0.
+	   pyfnt_blu = 0.
+           DO 1020 i = 1, ngp
+	      pyf_red(i) = pyfnt_red
+	      pyf_grn(i) = pyfnt_grn
+	      pyf_blu(i) = pyfnt_blu
+ 1020      CONTINUE
+	ENDIF
+
+* ... CANCEL TEXT/ITALIC
+
+	IF (iall .OR. qual_given( slash_canc_text_italic ) .GT. 0) THEN
+           pyfnt_italic = 0
+           DO 1030 i = 1, ngp
+	      pyf_italic(i) = pyfnt_italic
+ 1030      CONTINUE
+	ENDIF
+
+* ... CANCEL TEXT/BOLD
+
+	IF (iall .OR. qual_given( slash_canc_text_bold) .GT. 0) THEN
+           pyfnt_bold = 0
+           DO 1040 i = 1, ngp
+	      pyf_bold(i) = pyfnt_bold
+ 1040      CONTINUE
+	ENDIF
+
+* ... CANCEL TEXT/ISIZ
+
+	IF (iall .OR. qual_given( slash_canc_text_isiz) .GT. 0) THEN
+           pyfnt_isiz = 0
+           DO 1050 i = 1, ngp
+	      pyf_isiz(i) = pyfnt_isiz
+ 1050      CONTINUE
+	ENDIF
+
+* ...   Mark all groups as unset
+
+	DO 1060 i = 1, ngp
+           pyf_set(i) = .FALSE.
+ 1060	CONTINUE
+
+
+* PyFont text groupings.  Restore group to the current global settings.
+* Compare with global settings. If they match the global settings, 
+* unset pyfer_set
+
+      ELSE
+
+	IF (num_qualifiers .EQ. 0) iall = .TRUE.
+      
+c* ... CANCEL TEXT/FONT
+	IF (qual_given( slash_canc_text_font ).GT.0 .OR. iall) THEN
+           pyf_fontname(igrp) = pyfnt_fontname
+	ENDIF
+
+* ... CANCEL TEXT/COLOR
+*     Restore to black
+
+	IF (qual_given( slash_canc_text_color ).GT.0 .OR. iall) THEN
+           pyf_red(igrp) = pyfnt_red
+           pyf_grn(igrp) = pyfnt_grn
+           pyf_blu(igrp) = pyfnt_blu
+	ENDIF
+
+* ... CANCEL TEXT/ITALIC
+
+	IF (qual_given( slash_canc_text_italic ).GT.0 .OR. iall) THEN
+           pyf_italic(igrp) = pyfnt_italic
+	ENDIF
+
+* ... CANCEL TEXT/BOLD
+
+	IF (qual_given( slash_canc_text_bold).GT.0 .OR. iall) THEN
+           pyf_bold(igrp) = pyfnt_bold
+	ENDIF
+
+* ... CANCEL TEXT/ISIZ
+
+	IF (qual_given( slash_canc_text_isiz).GT.0 .OR. iall) THEN
+           pyf_isiz(igrp) = pyfnt_isiz
+	ENDIF
+
+* Do all the group settings match the current gloabl ones?  If so 
+* set pyf_set accordingly
+
+	IF (iall) THEN
+	   pyf_set(igrp) = .FALSE.
+	ELSE
+	   is_set = .FALSE.
+	   IF (pyf_fontname(igrp) .NE. pyfnt_fontname) is_set = .TRUE.
+	   IF (pyf_red(igrp) .NE. pyfnt_red)  is_set = .TRUE.
+	   IF (pyf_grn(igrp) .NE. pyfnt_grn)  is_set = .TRUE.
+	   IF (pyf_blu(igrp) .NE. pyfnt_blu)  is_set = .TRUE.
+	   IF (pyf_italic(igrp) .NE. pyfnt_italic)  is_set = .TRUE.
+	   IF (pyf_bold(igrp) .NE. pyfnt_bold)  is_set = .TRUE.
+	   IF (pyf_isiz(igrp) .NE. pyfnt_isiz)  is_set = .TRUE.
+	   pyf_set(igrp) = is_set
+	ENDIF
+
+      ENDIF
+
+      RETURN
+      END
+      
\ No newline at end of file
diff --git a/fer/plt/choose_cx_ww.F b/fer/plt/choose_cx_ww.F
index 6ee1ceb..7d0838e 100644
--- a/fer/plt/choose_cx_ww.F
+++ b/fer/plt/choose_cx_ww.F
@@ -55,6 +55,7 @@
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 *       *acm* 4/12 6D Ferret: time axis may be in t or f direction. 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
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -118,7 +119,7 @@
 	      ww_low = cx_lo_ww( idim, exp_cx )
 	      ww_hiw = cx_hi_ww( idim, exp_cx )
 	      IF ( (idim.EQ.t_dim .OR. idim.EQ.f_dim) .AND. 
-     .             cx_calendar(exp_cx) ) THEN
+     .             cx_calendar(idim,exp_cx) ) THEN
 	         ww_low = SECS_TO_TSTEP( grid, idim, -ww_low )  
 	         ww_hiw = SECS_TO_TSTEP( grid, idim, -ww_hiw )  
 	      ENDIF                                     
diff --git a/fer/plt/disp_init.F b/fer/plt/disp_init.F
index 3032620..81fc72c 100644
--- a/fer/plt/disp_init.F
+++ b/fer/plt/disp_init.F
@@ -87,7 +87,8 @@
 * PyFr *kms*  7/13 Scale default lengths by pplscale; 
 *                  do not reset minor tic size (not scaled!)
 * 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
+* 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)
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -98,14 +99,15 @@
 	include 'xrevision.cmn'
         include 'axis_inc.decl'    ! with iaxset
         include 'AXIS.INC'
+        include 'pyfonts.cmn'
 
 * calling argument declarations:
 	LOGICAL no_labels
 	INTEGER ncx, cx_list(ncx)
 
 * internal variable declarations:
-	CHARACTER	TM_FMT*12, buffer*40, buffsym*30, show_str*12
-        INTEGER         idim, ier, nc, slen
+	CHARACTER	TM_FMT*12, LEFINT*4, buffer*40, buffsym*30, show_str*12
+        INTEGER         i, idim, ier, nc, slen
         REAL            logoht
 
 * open metafile for this new plot
@@ -136,6 +138,16 @@
            iaxset = 0
         ENDIF
 
+* Label numbers for the Ferret logo (if drawn) for pyFerret text settings
+	
+	DO i = 1, 3
+	   logolab(i) = 0
+	ENDDO
+
+* clear rotations from first 10 moveable labels
+	DO i = 1, 10
+	   CALL PPLCMD ( from, line, 0, 'RLABS '//LEFINT(i,slen) , 1, 1)
+	ENDDO
 
 * if the axis min and max symbols already exist then delete them
 
@@ -254,18 +266,21 @@
      .                     ppl_centered, logoht,
      .                     buffer(:len_program_name+len_progname_mod+11),
      .                     lab_loc_axlen_plus, lab_loc_axlen_plus )
+	   logolab(1) = nlabs_on
 * ... "NOAA/PMEL TMAP"
 	   CALL PUT_LABEL( ppl_movlab, 
      .                     0.0, 1.0*pplscale + 1.8*logoht,
      .                     ppl_centered, logoht,
      .                     'NOAA/PMEL TMAP',
      .                     lab_loc_axlen_plus, lab_loc_axlen_plus )
+	   logolab(2) = nlabs_on
 * ... "8-SEP-1988 11:05"
 	   CALL PUT_LABEL( ppl_movlab, 
      .                     0.0, 1.0*pplscale,
      .                     ppl_centered, logoht,
      .                     '''date'' ''time''',
      .                     lab_loc_axlen_plus, lab_loc_axlen_plus )
+	   logolab(3) = nlabs_on
         ENDIF ! mode_logo
 
 	RETURN
diff --git a/fer/plt/disp_labels.F b/fer/plt/disp_labels.F
index fb2d6f0..07f3724 100644
--- a/fer/plt/disp_labels.F
+++ b/fer/plt/disp_labels.F
@@ -73,6 +73,7 @@
 *                  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.
+* V6.95 *acm* 3/15 Changes for PyFerret fonts. 
 
 	include 'tmap_dims.parm'
 	include 'xdset_info.cmn_text'
@@ -192,7 +193,8 @@
 
 * ... title of data set
 	   CALL GET_DSET_TITLE( dset_num, line_buff, lablen )
-	   CALL BOX_LABEL( ppl_movlab-ppl_datitl, line_buff(:lablen),
+	   IF (TM_LENSTR(line_buff) .GT. 0) 
+     .	   CALL BOX_LABEL( ppl_movlab-ppl_datitl, line_buff(:lablen),
      .			   0.5, 0.3*pplscale, 
      .			   0.8*xlen, 1.5*dflt_letsize_label*textscale,
      .			   dflt_letsize_label*textscale, ppl_centered,
diff --git a/fer/plt/disp_prep.F b/fer/plt/disp_prep.F
index b54de28..d1b5f52 100644
--- a/fer/plt/disp_prep.F
+++ b/fer/plt/disp_prep.F
@@ -68,6 +68,10 @@
 * V68  *acm* 1/12  changes for double-precision ferret, single-precision pplus.
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 * V685+ 12/13    - *acm*  bounds checking; dont refer to parts of the string outside its bounds.
+* 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
+
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -90,8 +94,8 @@
 * internal variable declarations:
 	LOGICAL TM_DIGIT, lev_given, len_given,
      .		is_delta, is_std, is_mean, is_min, is_max, is_hist,
-     .          is_centered, is_openlev, is_cv, get_more,
-     .		has_std , has_mean, has_min, has_max
+     .          is_centered, is_openlev, is_int, is_cv, get_more,
+     .		has_std , has_mean, has_min, has_max, has_int
 	INTEGER	TM_LENSTR1,TM_LENSTR, lev_loc, len_loc, str_1, str_len, 
      .          ii, ilen, ier, ist, nc, set_default_levs
 	REAL	val
@@ -152,6 +156,9 @@
         contour_fewer = 1
         need_std = .FALSE.
 
+	
+        intlev = 0
+
 	IF ( lev_given    ) THEN
            contour_fewer = 0
            CALL EQUAL_STRING(  
@@ -192,10 +199,13 @@
 	         is_mean = .FALSE.
 	         is_min = .FALSE.
 	         is_max = .FALSE.
+	         is_int = .FALSE.
 	         is_hist = .FALSE.
 	         is_delta = .FALSE.
 	         is_cv = .FALSE.
 
+		 iautoc = 1
+
 	         val = bad_val4
 
 	         is_centered =  str_buff(str_len:str_len) .EQ. 'C'
@@ -237,6 +247,10 @@
 		    has_max = str_buff(str_len-2:str_len) .EQ. 'MAX'
 		 ENDIF
 
+		 has_int = .FALSE.
+		 IF (str_len .GE. 3) THEN
+		    has_int = str_buff(str_len-2:str_len) .EQ. 'INT'
+		 ENDIF
 
 	         IF ( str_len .GT. 0 ) THEN
 	            set_delta = str_buff(str_len:str_len) .EQ. 'D'
@@ -284,6 +298,13 @@
                        qual_end(lev_loc) = qual_end(lev_loc) - 3
                     ENDIF 
 
+                    IF (has_int) THEN
+                       is_int = .TRUE.
+		       intlev = 1
+                       str_len = str_len - 3
+                       qual_end(lev_loc) = qual_end(lev_loc) - 3
+		    ENDIF
+
                     IF (str_buff(str_len:str_len) .EQ. 'H') THEN  ! histogram
                        is_hist = .TRUE.
                        str_len = str_len - 1
@@ -343,6 +364,9 @@
 		       lev_min = val
 	            ELSEIF ( is_max) THEN
 		       lev_max = val
+	            ELSEIF ( is_int) THEN
+		       val = 0
+		       intlev = 1
 	            ELSEIF ( is_hist) THEN
 		       lev_hist = val
 		       need_histo = .TRUE.
@@ -353,8 +377,8 @@
 	            ELSEIF ( is_cv) THEN
 		       IF (val .NE. bad_val4) THEN
 		          nlev = val
+			  iautoc = 1
 		          IF (val.LE.0. .OR. val.GT.250.) GOTO 5150
-			  IF (.NOT. openlev) iautoc = 1
 		       ENDIF
 		    ELSE
 
@@ -389,11 +413,18 @@
 	            set_mean = .TRUE.
 	         ENDIF
 
+		 IF (is_int) THEN
+		    openlev = .FALSE.
+		    need_histo = .FALSE.
+		    IF (set_min) lev_min = FLOOR(lev_min)
+		    IF (set_max) lev_max = CEILING(lev_max)
+		 ENDIF
+
 * The processing always gets the data max/min.
 * Flag to indicate whether we need to get mean/std from the data.
 	         need_std = .FALSE.
 
-		 IF (OPENLEV .AND. 
+		 IF (openlev .AND. 
      .               ( LEV_STD.EQ.rbad_val4 .OR. LEV_MEAN.EQ.rbad_val4) )
      .              need_std = .TRUE.
 
diff --git a/fer/plt/disp_reset.F b/fer/plt/disp_reset.F
index b9f9ca9..d5a5104 100644
--- a/fer/plt/disp_reset.F
+++ b/fer/plt/disp_reset.F
@@ -52,6 +52,8 @@
 * V68  *acm* 1/12  changes for double-precision ferret, single-precision pplus.
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 * 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)
 
         IMPLICIT NONE
 
@@ -110,6 +112,7 @@ c	CALL PPLCMD ( from, line, 0, 'TXNMTC 0', 1, 1 )
 	CALL PPLCMD ( from, line, 0, 'AXLINT 2,2', 1, 1 )
 	CALL PPLCMD ( from, line, 0, 'CONPRE ', 1, 1 )
 	CALL PPLCMD ( from, line, 0, 'CONPST ', 1, 1 )
+	CALL PPLCMD ( from, line, 0, 'GAPLOC 0', 1, 1 )
 
 * remove viewports and clear window, restore axis sizes, update window
         CALL SET_VIEWPORT( mvp_dflt ) 
diff --git a/fer/plt/disp_set_up.F b/fer/plt/disp_set_up.F
index 69020c4..516c27e 100644
--- a/fer/plt/disp_set_up.F
+++ b/fer/plt/disp_set_up.F
@@ -157,6 +157,9 @@
 *                  return an error message. 
 * V686 *acm* 12/13 Symbokls AX_HORIZ and AX_VERT may be x,y,z,t,e,f  
 * V691  *acm*  5/14 Clean up temp memory used for computing histogram levels
+* V694  *acm*  1/15 Changes to allow two time axes on plot (F-T)
+* V695+ *sh*  3/15 if an FMRC dataset disambiguate T and F axes with labels
+* V695  *acm*  5/15 Ticket 2279: PyFerret don't redraw labels on an overlay
 
 C replace includes with those from plot_set_up, 
 C plus those starting w/ xbox_bounds:
@@ -189,6 +192,7 @@ C plus those starting w/ xbox_bounds:
 	include 'command.parm'
 	include 'xcommand.cmn'
 	include 'xpplus.cmn'
+        include 'pyfonts.cmn'
 
 
 *kob 1/97
@@ -209,11 +213,12 @@ C plus those starting w/ xbox_bounds:
      .                  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
+     .                  cal_name_2*32, err_string*128,
+     .			xtra_xlab*24, xtra_ylab*24
         CHARACTER*1     axdir(6)
 
-	LOGICAL		NO_GRID_RANGE, GEOG_LABEL, TM_FPEQ, 
-     .			user_title, time_axis,
+	LOGICAL		NO_GRID_RANGE, GEOG_LABEL, TM_FPEQ, ITS_FMRC,
+     .			user_title, time_axis, time_axis_dim1, timeax_both, 
      .			regrid_1, regrid_2, no_y_rng, edges_ok,
      .			REGULARLY_SPACED,
      .                  irregular
@@ -229,13 +234,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
+     .                  hblk1, mvh_temp, i
 	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
+	REAL*4		rw1lo, rw2lo, rbad
 
         DATA axdir / 'X', 'Y', 'Z', 'T', 'E', 'F' /
 
@@ -280,6 +285,7 @@ C plus those starting w/ xbox_bounds:
 	size2 = CX_DIM_LEN( dim2, ctx )
 	size  = size1 * size2
 
+
 * determine PLOT+ memory required 
 
         plot_mem_used = CGRID_SIZE( cx_list(1) ) + size1 + size2
@@ -310,7 +316,7 @@ C   set up memory for the flag grid
 * save axis pointers so PLOT+ can get box boundaries
 	bb_grid = grid
 
-* On a plot/set, the intervening commads may change the default grid.
+* On a plot/set, the intervening commands may change the default grid.
 * Increment the grid. It will be decremented at the end of xeq_pplus
 
 	bb_grid_inccount = 0
@@ -429,6 +435,25 @@ C   set up memory for the flag grid
 	size1 = hi1 - lo1 + 1
 	size2 = hi2 - lo2 + 1
 
+* define special axis labels to disambiguate T and F axes
+	xtra_xlab = ' '
+	xtra_ylab = ' '
+        IF ( ITS_FMRC(grid) ) THEN
+* ... add these labels only if the plot has two calendar axes
+	   IF ( GEOG_LABEL(t_dim,grid)
+     .	 .AND.  GEOG_LABEL(f_dim,grid)
+     .	 .AND.  (dim1.EQ.t_dim .OR. dim1.EQ.f_dim)
+     .	 .AND.  (dim2.EQ.t_dim .OR. dim2.EQ.f_dim) ) THEN
+	      IF (dim1 .EQ. t_dim) THEN
+	         xtra_xlab = 'Verification Time ==>'
+	         xtra_ylab = 'Initialization Time ==>'
+	      ELSE
+	         xtra_xlab = 'Initialization Time ==>'
+	         xtra_ylab = 'Verification Time ==>'
+	      ENDIF
+	   ENDIF
+	ENDIF
+
 * Define symbols AX_HORIZ and AX_VERT with the x,y,z,t direction 
 * of the axes as they will appear on the plot.
 
@@ -579,9 +604,15 @@ C   set up memory for the flag grid
               GOTO 5700
            ENDIF
 
+	   timeax_both = .FALSE.
 	   CALL AXIS_FORMAT( 'X', dim1, grid, xaxlo, xaxhi, delta,
-     .						curvilinear, cx_xpos,
-     .						time_axis,xstyle,no_labels)
+     .                       curvilinear, cx_xpos,
+     .                       time_axis,timeax_both,xstyle,
+     .			     no_labels, xtra_xlab)
+
+           time_axis_dim1 = time_axis
+
+* second axis
 
 	   time_axis = GEOG_LABEL( dim2, grid )  .AND. 
      .                  (dim2.EQ.t_dim .OR. dim2.EQ.f_dim)
@@ -642,9 +673,11 @@ C ACM added 8/2001 save cal id if vertical time axis
               last  = xaxhi
               GOTO 5700
            ENDIF 
+	   timeax_both = (time_axis .AND. time_axis_dim1) 
 	   CALL AXIS_FORMAT( 'Y', dim2, grid, yaxlo, yaxhi, delta,
-     .						curvilinear, cx_ypos,
-     .						time_axis,ystyle,no_labels)
+     .                       curvilinear, cx_ypos,
+     .                       time_axis,timeax_both,ystyle,
+     .			     no_labels, xtra_ylab)
 
 *   When not an overlay, set the axis type to log or reverse log
 	   IF (is_logx .OR. is_logy) THEN
@@ -696,14 +729,13 @@ C ACM added 8/2001 save cal id if vertical time axis
 * in common.  If the user set a std to use, store that.
 
        nsiz = size1* size2
+       rbad = bad_val4
        CALL compute_mnstd (memory(1, xblk1), bad_x, need_std, 
-     .    nsiz, status)
+     .    nsiz, rbad, status)
        IF (status .NE. ferr_ok) THEN
 * ... set up for automatic levels
 	   CALL PPLCMD ( from, line, 0, 'LEV,()', 1, 1 )
           CALL USE_LINEAR_LEVELS
-	  CALL WARN(
-     . 'Data too large to compute Std Dev. Using linear levels instead.')
        ENDIF
 
 * If histogram-based levels are requested, compute the 
@@ -740,7 +772,10 @@ C ACM added 8/2001 save cal id if vertical time axis
 	   CALL DELETE_VARIABLE( mvy_temp )
 	ENDIF
 	
-	IF ( no_labels ) RETURN
+	IF ( no_labels ) THEN
+	   CALL PPLCMD ( from, line, 0, 'LABS ', 1, 1 )
+	   RETURN
+	ENDIF
 
 ! ====================== LABELS ========================
 
@@ -756,6 +791,14 @@ C ACM added 8/2001 save cal id if vertical time axis
 	IF ( overlay ) THEN
 * ... cook up a key label for this variable only (or pair for VECTOR)
 *     If no valid data (no_x_rng) add this info to the label.
+
+* 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
+
 	   use_keys = .TRUE.
 	   IF ( .NOT.user_title ) THEN
 	      CALL OV_GRP_CX_DOC( cx_list, nmv, cx_xtra_doc )
diff --git a/fer/plt/equal_color.F b/fer/plt/equal_color.F
index d16265a..5e4334b 100644
--- a/fer/plt/equal_color.F
+++ b/fer/plt/equal_color.F
@@ -47,7 +47,8 @@
 * V520 6/00 *sh* - introduced "white" as color 19 (only thin available)
 *
 * 1/03 *kob* g77 port - requires use of risc_buff for concats
-*
+* V693+ *sh* 2/15 - added support for _DQ_ quotations
+
 * PyFr *kms*  6/13 - add support for (R,G,B) and (R,G,B,A)
 * 
 * PyFr *kms*  7/13 - add support for R,G,B and R,G,B,A (no parentheses);
@@ -110,8 +111,19 @@
 	   STOP '=_str'		! cannot occur
 
 * remove quotation marks
- 110	   IF ( string(strt:strt) .EQ. '"' ) strt = strt + 1
-	   IF ( string(slen:slen) .EQ. '"' ) slen = slen - 1
+ 110	   IF ( string(strt:strt) .EQ. '"'
+     .	  .AND. string(slen:slen) .EQ. '"' ) THEN
+	      strt = strt + 1
+	      slen = slen - 1
+	   ELSEIF (string(strt:strt) .EQ. '_'
+     .	     .AND. string(slen:slen) .EQ. '_' 
+     .	     .AND. slen-strt.GE.8            ) THEN
+	      IF (string(strt:strt+3) .EQ. '_DQ_'
+     .	    .AND. string(slen-3:slen) .EQ. '_DQ_' ) THEN
+	         strt = strt + 4
+	         slen = slen - 4
+	      ENDIF
+	   ENDIF
 
 	   IF ( strt .GT. slen ) THEN
 	      str = ' '
@@ -143,11 +155,11 @@
 *                Pen is thin with the color ID same as pen ID
                  CONTINUE
               ELSE IF ( icolor .LE. 2 * ncolors ) THEN
-*                Pen is medium thickness with color ID  1 - ncolors
+*                Pen is medium thickness with color ID - ncolors
                  icolor = icolor - ncolors
                  dfltthick = 2.0
               ELSE IF ( icolor .LE. 3 * ncolors ) THEN
-*                Pen is thick with color ID  1 - ncolors
+*                Pen is thick with color ID - 2 * ncolors
                  icolor = icolor - 2 * ncolors
                  dfltthick = 3.0
               ENDIF
diff --git a/fer/plt/equal_range.F b/fer/plt/equal_range.F
index 83c3e5b..9b1c605 100644
--- a/fer/plt/equal_range.F
+++ b/fer/plt/equal_range.F
@@ -52,6 +52,8 @@
 * V530 *acm* - send cal_id to TRANSLATE_LIMIT
 *       *acm* 3/12 cleanup ifdefs and unnecessary include files
 *       *acm* 4/12 6D Ferret: time axis may be in t or f direction.
+* V693+ *sh* 2/15 - added support for _DQ_ quotations
+*		    mixing double quote marks and _DQ_ may lead to a bad place
 
 * calling argument declarations
 	LOGICAL		formatted, range_rqd
@@ -60,7 +62,7 @@
 	CHARACTER*(*)	string
 
 * internal variable declarations
-	LOGICAL		has_delta, ldummy, not_by_ss, in_quote
+	LOGICAL		has_delta, ldummy, not_by_ss, in_quote, in_DQ
 	PARAMETER 	(not_by_ss =  .FALSE.)
 	INTEGER 	equal_pos, colon1, colon2, end2, slen, i
 	REAL*8		tmp
@@ -91,30 +93,45 @@
 * lo:hi:delta parsing and syntax checking
 	colon1 = 0
 	in_quote = .FALSE.
-	DO 100 i = equal_pos+1, SLEN
+	in_DQ    = .FALSE.
+	i = equal_pos
+	DO WHILE (i .LT. slen)
+	   i = i + 1
 	   IF (string(i:i) .EQ. '"') THEN
 	      in_quote = .NOT.in_quote
-	   ELSEIF (in_quote) THEN
+	   ELSEIF (string(i:i) .EQ. '_' .AND. i+3 .LE. slen ) THEN
+	      IF (string(i:i+3) .EQ. "_DQ_" ) THEN
+	         in_DQ = .NOT.in_DQ
+	         i = i + 3
+	      ENDIF
+	   ELSEIF (in_quote .OR. in_DQ) THEN
 	      CONTINUE	! skip text inside of quotation
 	   ELSEIF (string(i:i) .EQ. ':') THEN
 	      colon1 = i
 	      GOTO 110
 	   ENDIF
- 100	CONTINUE
-	IF ( in_quote ) GOTO 5000
+	ENDDO
+	IF ( in_quote .OR. in_DQ) GOTO 5000
 	IF (colon1 .EQ. 0 ) GOTO 5000
 
  110	colon2 = colon1
-	DO 200 i = colon1+1, slen
+	i = colon1
+	DO WHILE (i .LT. slen)
+	   i = i + 1
 	   IF (string(i:i) .EQ. '"') THEN
 	      in_quote = .NOT.in_quote
-	   ELSEIF (in_quote) THEN
+	   ELSEIF (string(i:i) .EQ. '_' .AND. i+3 .LE. slen ) THEN
+	      IF (string(i:i+3) .EQ. "_DQ_" ) THEN
+	         in_DQ = .NOT.in_DQ
+	         i = i + 3
+	      ENDIF
+	   ELSEIF (in_quote .OR. in_DQ) THEN
 	      CONTINUE	! skip text inside of quotation
 	   ELSEIF (string(i:i) .EQ. ':') THEN
 	      colon2 = i
 	      GOTO 210
 	   ENDIF
- 200	CONTINUE
+	ENDDO
 	IF ( in_quote ) GOTO 5000
  210	has_delta = colon2 .GT. colon1
 	IF ( has_delta ) THEN
diff --git a/fmt/src/tm_ww_axlims.F b/fer/plt/get_color_name.F
similarity index 70%
copy from fmt/src/tm_ww_axlims.F
copy to fer/plt/get_color_name.F
index f2b5a7f..6f37848 100644
--- a/fmt/src/tm_ww_axlims.F
+++ b/fer/plt/get_color_name.F
@@ -1,4 +1,4 @@
-	SUBROUTINE TM_WW_AXLIMS (axis, lo, hi)
+	SUBROUTINE GET_COLOR_NAME (rd,gr,bl, cname, len)
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -32,36 +32,25 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
+* Ansley Manke 4/2015 
 *
-* Return the lowest and highest points along the span of an axis
-* For a regular axis this will be 1/2 delta below/above the 1st/Nth coordinates
-* Modulo is ignored in this calculation
+* return the name of color of the default pen # that corresponds
+* to the given red, green, blue, only if they match the color setting.
 
-* V541 *sh* 2/02
+	INTEGER TM_LENSTR, len
+	CHARACTER*(*) cname
+	REAL	rd, gr, bl
 
-	include 'tmap_dims.parm'
-#include "gt_lib.parm"
-	include	'xtm_grid.cmn_text'
+	cname = ' '
+	IF (rd.EQ.    0. .AND. gr.EQ.    0. AND. bl.EQ.    0.) cname = 'black'
+	IF (rd.EQ.  100. .AND. gr.EQ.    0. AND. bl.EQ.    0.) cname = 'red'
+	IF (rd.EQ.    0. .AND. gr.EQ.  100. AND. bl.EQ.    0.) cname = 'green'
+	IF (rd.EQ.    0. .AND. gr.EQ.    0. AND. bl.EQ.  100.) cname = 'blue'
+	IF (rd.EQ.    0. .AND. gr.EQ.  100. AND. bl.EQ.  100.) cname = 'lightblue'
+	IF (rd.EQ.  100. .AND. gr.EQ.  100. AND. bl.EQ.    0.) cname = 'purple'
+	IF (rd.EQ.  100. .AND. gr.EQ.  100. AND. bl.EQ.  100.) cname = 'white'
 
-* calling argument declarations
-	INTEGER axis
-	REAL*8 lo, hi
+	len = TM_LENSTR(cname)
 
-* internal variable declarations
-	INTEGER	isub1, llen
-
-	IF ( axis .LT. 0 .OR. axis .GT. line_ceiling ) THEN
-	  lo = unspecified_val8
-	  hi = unspecified_val8
-	ELSEIF ( line_regular(axis) ) THEN
-	  lo = line_start(axis) - 0.5D0*line_delta(axis)
-	  hi = lo + line_dim(axis)*line_delta(axis)
-	ELSE
-	  isub1 = line_subsc1(axis)
-	  llen = line_dim(axis)
-	  hi = line_mem(isub1 + 2*llen)
-	  lo = line_mem(isub1 +   llen)
-	ENDIF
-
-	RETURN
 	END
+
diff --git a/fmt/src/tm_ww_ax_1_n.F b/fer/plt/get_color_rgb.F
similarity index 72%
copy from fmt/src/tm_ww_ax_1_n.F
copy to fer/plt/get_color_rgb.F
index 129235e..21176ae 100644
--- a/fmt/src/tm_ww_ax_1_n.F
+++ b/fer/plt/get_color_rgb.F
@@ -1,4 +1,4 @@
-	SUBROUTINE TM_WW_AX_1_N (axis, lo, hi)
+	SUBROUTINE GET_COLOR_RGB (icolor, v1,v2,v3, status)
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -32,35 +32,49 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
+* Ansley Manke 4/2015 
 *
-* Return the coordinates of the first and Nth coordinate points of an axis
-* Modulo is ignored in this calculation
+* return the name of color corresponding to the default pen # icolor
 
-* V541 *sh* 2/02
+* V6.95 *acm* 3/15 Changes for PyFerret fonts. 
 
-	include 'tmap_dims.parm'
-#include "gt_lib.parm"
-	include	'xtm_grid.cmn_text'
 
-* calling argument declarations
-	INTEGER axis
-	REAL*8 lo, hi
+	INTEGER icolor, status
+	REAL	v1, v2, v3
 
-* internal variable declarations
-	INTEGER	isub1, llen
+        include 'errmsg.parm'
 
-	IF ( axis .LT. 0 .OR. axis .GT. line_ceiling ) THEN
-	  lo = unspecified_val8
-	  hi = unspecified_val8
-	ELSEIF ( line_regular(axis) ) THEN
-	  lo = line_start(axis)
-	  hi = line_start(axis) + (line_dim(axis)-1)*line_delta(axis)
-	ELSE
-	  isub1 = line_subsc1(axis)
-	  llen = line_dim(axis)
-	  lo = line_mem(isub1)
-	  hi = line_mem(isub1 + llen - 1)
+! Default to black
+	v1 = 0.
+	v2 = 0.
+	v3 = 0.
+
+	IF (icolor .LT. 1  .OR. icolor.GT.7) GOTO 5100
+
+	IF (icolor .EQ. 2) v1 = 100.  ! red
+
+	IF (icolor .EQ. 3) v2 = 100.  ! green
+
+	IF (icolor .EQ. 4) v3 = 100.  ! blue
+
+	IF (icolor .EQ. 5) THEN       ! cyan
+	   v2 = 100.
+	   v3 = 100.
 	ENDIF
 
-	RETURN
+	IF (icolor .EQ. 6) THEN       ! purple
+	   v1 = 100.
+	   v3 = 100.
+	ENDIF
+
+	IF (icolor .EQ. 7) THEN      ! white
+	   v1 = 100.
+	   v2 = 100.
+	   v3 = 100.
+	ENDIF
+
+ 5000	RETURN
+ 5100	status = ferr_invalid_command
+	GOTO 5000 
 	END
+
diff --git a/fer/plt/itsa_modulo_curvi_axis.F b/fer/plt/itsa_modulo_curvi_axis.F
index 87e1912..0223b89 100644
--- a/fer/plt/itsa_modulo_curvi_axis.F
+++ b/fer/plt/itsa_modulo_curvi_axis.F
@@ -45,7 +45,8 @@
 *       V420: 04/97
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 * V687 *acm* 3/14  Ticket 2151: The coordinate variables may be in other dimensions
-*                  than XY, e.g. XZ or YZ for a sigma-coordinate vertical axis.
+*                  than XY, e.g. XZ or YZ for a layerz-coordinate vertical axis.
+* V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
diff --git a/fer/plt/key_loc.F b/fer/plt/key_loc.F
index 4233393..c488b96 100644
--- a/fer/plt/key_loc.F
+++ b/fer/plt/key_loc.F
@@ -53,6 +53,7 @@
 *                  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.
+* V695  *acm*  5/15 PyFerret, label for overlay was too close to the plot edge.
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -112,7 +113,7 @@ c	   ypos  = ovkey_yorigin - novkeys_on*ovkey_yspace
 	   ELSE
 * ... yes - it will fit at the lower left
 	      xsize  = dflt_ovkey_xspace*pplscale
-	      xpos   = dflt_ovkey_xorigin*pplscale
+	      xpos   = 0.95*dflt_ovkey_xorigin*pplscale
 	      lab_ht = dflt_ovkey_labht*textscale
 	   ENDIF
 	   novkeys_on = novkeys_on + numlines
diff --git a/fer/plt/merged_whoi_date.F b/fer/plt/merged_whoi_date.F
index cbcd544..356fb23 100644
--- a/fer/plt/merged_whoi_date.F
+++ b/fer/plt/merged_whoi_date.F
@@ -1,4 +1,4 @@
-	CHARACTER*14 FUNCTION MERGED_WHOI_DATE( cx_list, idim, ncx )
+	CHARACTER*14 FUNCTION MERGED_WHOI_DATE( cx_list, idim, ncx, dayflag )
 
 *
 *
@@ -45,7 +45,9 @@
 * V530:  1/01 *acm* cal_id for alternative calendar axis types
 *       *acm* 3/12 cleanup ifdefs and unnecessary include files
 *       *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
-*                  A time axis may be a T axis or F axis.
+*                  A time axis may be a T axis or F axis
+* 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.
 
 	include 'tmap_dims.parm'
 	include 'xtm_grid.cmn_text'
@@ -55,6 +57,7 @@
 
 * calling argument declarations
 	INTEGER	ncx, cx_list(ncx), idim
+	LOGICAL dayflag
 
 * internal variable declarations
 	INTEGER 	yr100, yr, mon, day, hr, mn, sec,
@@ -66,6 +69,8 @@
 * internal parameter declarations
 	REAL*8		yrofsecs
 	PARAMETER     ( yrofsecs = 60.*60.*24.*365. )
+	REAL*8		dayofsecs
+	PARAMETER     ( dayofsecs = 60.*60.*24. )
 
 * determne the earliest date to be plotted
 	DO 100 i = 1, ncx
@@ -83,7 +88,14 @@
           cal_id = TM_GET_CALENDAR_ID(line_cal_name(axis) )
 
 * arbitrarily subtract a year -- needed cuz PLOT* rounds down the "tmin" value
- 	  bcsecs = MAX( 0.0D0, bcsecs - yrofsecs )
+* OR, subtract a day when plotting short time ranges. This gives us
+* more precision to work with in time data (origin, scaling on the page).
+
+	  IF (dayflag) THEN
+	     bcsecs = MAX( 0.0D0, bcsecs - dayofsecs )
+	  ELSE
+	     bcsecs = MAX( 0.0D0, bcsecs - yrofsecs )
+	  ENDIF
 	  date = TM_SECS_TO_DATE(bcsecs, cal_id)
 
  100	CONTINUE
diff --git a/fer/plt/parse_pyfont_color.F b/fer/plt/parse_pyfont_color.F
new file mode 100644
index 0000000..dfcd8c3
--- /dev/null
+++ b/fer/plt/parse_pyfont_color.F
@@ -0,0 +1,118 @@
+	SUBROUTINE PARSE_PYFONT_COLOR (buff, red, grn, blu, status)
+
+
+	include 'tmap_dims.parm'
+	include 'ferret.parm'
+	include 'errmsg.parm'
+        include 'pyfonts.cmn'
+
+* Argument declarations 
+	CHARACTER*(*) buff
+	REAL*4	red, grn, blu
+	INTEGER status
+
+* Internal declarations 
+
+	LOGICAL TM_DIGIT, MATCH4
+	INTEGER TM_LENSTR1, TM_LENSTR, slen, s1, s2, icolor, nparm, 
+     .		num_it, it_start(3), it_end(3), ncolor_string, 
+     .		len_mchars, llen
+	REAL	v1, v2, v3
+	CHARACTER*20 errstrng
+
+	PARAMETER (ncolor_string = 7)
+	CHARACTER*12    colornames(ncolor_string)
+
+* internal data declarations
+	DATA colornames/'BLACK','RED','GREEN',
+     .		    'BLUE','LIGHTBLUE','PURPLE','WHITE'/
+
+	status = ferr_ok
+	v1 = 0.
+	v2 = 0.
+	v3 = 0.
+
+* Check for optional parentheses. 
+
+	slen = TM_LENSTR1(buff)
+	s1 = 1
+	s2 = slen
+	IF (buff(1:1) .EQ. '(' )THEN
+           s1 = 2
+           s2 = slen-1
+           IF ( buff(slen:slen) .NE. ')' ) GOTO 5420
+	ENDIF
+
+	icolor = -1
+	IF ( TM_DIGIT(buff(s1:s1) ) ) THEN 
+
+* Read % values, convert to pen number or fraction.
+	   nparm = 3
+	   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
+              nparm = 3 ! do nothing
+	   ELSE IF (status .NE. ferr_ok .OR.
+     .                num_it .LT. nparm) THEN
+
+* Single color number? convert to pen # (needs to go get this from pplus iline bundle)
+              IF (num_it .EQ. 1) THEN    ! single color-number?
+		 READ (buff(it_start(1):it_end(1)), *) v1
+	         icolor = v1
+              ELSE
+                 GOTO 5420
+              ENDIF
+	   ELSE
+
+* 3 values, % rgb
+              READ (buff(it_start(1):it_end(1)), *) v1
+              IF (v1 .LT. 0. .OR. v1 .GT. 100) GOTO 5430
+              red = v1/100.
+              READ (buff(it_start(2):it_end(2)), *) v2
+              IF (v2 .LT. 0. .OR. v2 .GT. 100) GOTO 5430
+              grn = v2/100.
+              READ (buff(it_start(3):it_end(3)), *) v3
+              IF (v3 .LT. 0. .OR. v3 .GT. 100) GOTO 5430
+              blu = v3/100.
+	   ENDIF
+
+	ELSE  ! not a digit. Is it a color name?
+
+* name, compare with set list of colors
+           llen = TM_LENSTR(buff(s1:s2))
+           DO 1810 icolor = 1, ncolor_string
+              len_mchars = TM_LENSTR(colornames(icolor)(:4))
+              IF ( MATCH4(buff(s1:s2), llen,
+     .                colornames(icolor),len_mchars ) ) GOTO 1820
+ 1810   CONTINUE
+           GOTO 5420   ! unknown color
+ 1820	   CONTINUE
+	ENDIF
+
+* A color number. Get the current definition of color number icolor
+	IF (icolor .GT. 0) THEN
+           CALL GET_COLOR_RGB (icolor, v1,v2,v3, status)
+           IF (status .NE. ferr_ok) GOTO 5420
+           red = v1/100.
+           grn = v2/100.
+           blu = v3/100.
+	ENDIF	   
+
+ 5000	RETURN
+
+5420	errstrng = 'SET TEXT'
+	slen = TM_LENSTR1(errstrng)
+	llen = TM_LENSTR1(buff)
+	CALL ERRMSG( ferr_syntax, status, 
+     .			buff(:llen)//pCR//
+     .			errstrng(:slen)//'/COLOR=(R,G,B) takes 3 arguments, '//
+     .			'or valid color name or number', *5000 )
+     
+5430	errstrng = 'SET TEXT'
+	slen = TM_LENSTR1(errstrng)
+	llen = TM_LENSTR1(buff)
+	CALL ERRMSG( ferr_out_of_range, status, 
+     .			buff(:llen)//pCR//
+     .			errstrng(:slen)//'/COLOR=(R,G,B) arguments must be between 0 and 100', 
+     .			*5000 )
+	END
diff --git a/fer/plt/plot_set_up.F b/fer/plt/plot_set_up.F
index 9220f5b..eaee8c9 100644
--- a/fer/plt/plot_set_up.F
+++ b/fer/plt/plot_set_up.F
@@ -2,7 +2,7 @@
      .				overlay, transpz, versus, no_labels,
      .				symbol, sym_size, color, color1, use_line,
      .				step_inc, do_dash, dashstyle,
-     .                          is_logx, is_logy, nokey,
+     .                          is_logx, is_logy, nokey, addgaps,
      .				all_1_dep, only_val, mv_list, cx_list, 
      .				nmv, indep_dat, dep_dat, status )
 
@@ -154,6 +154,16 @@
 * V691  *acm*  7/14 Fix ticket 2187: axis labels for PLOT/VS plots.
 * V693  *acm* 10/14 Fix 2122: Check for a valid axis if they've asked for a 
 *                   log axis before proceeding with vlimits or hlimits
+* V694  *acm*  1/15 Changes to allow two time axes on plot (F-T)
+* V695+ *sh*  3/15 if an FMRC dataset disambiguate T and F axes with labels
+* V695  *acm*  5/15 Ticket 2279: PyFerret don't redraw labels on an overlay
+* V694  *acm*  5/15 Fix ticket 2282: setting up axis for ribbon plots
+* v696  *acm*  6/15 PLOT/VS/GAPLOC to define seperate line segments on
+*                   PLOT/VS plots (LAS ticket 1597 and others)
+* V695  *acm* 9/15 send REAL*4 rbad to compare with lev_max, lev_min inside compute_mnstd
+* 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.
 
 	include 'tmap_dims.parm'
 	include 'xtm_grid.cmn_text'
@@ -173,10 +183,11 @@
 	include 'PPLDAT.INC'
         include 'switch_inc.decl'
         include 'SWITCH.INC'
+        include 'pyfonts.cmn'
 
 * calling argument declarations:
 	LOGICAL		overlay, transpz, versus, no_labels, use_line,
-     .			is_logx, is_logy, nokey, all_1_dep
+     .			is_logx, is_logy, nokey, all_1_dep, addgaps
 	INTEGER		symbol, color, color1, step_inc, do_dash,
      .			nmv, mv_list( nmv ), cx_list( nmv ), status
 	REAL		memory( mem_blk_size, max_mem_blks ), sym_size,
@@ -185,16 +196,16 @@
  
 * V500 *kob* 3/99- up VAR_CODE and VAR_UNITS to 64 chars
 * internal variable declarations:
-	LOGICAL		NO_LINE_RANGE, GEOG_LABEL, TM_HAS_STRING,
+	LOGICAL		NO_LINE_RANGE, GEOG_LABEL, TM_HAS_STRING, ITS_FMRC,
      .                  flip, time_axis,
      .			all_1_ind, formatted,
      .			indep_is_log, dep_is_log, use_nice,
-     .                  this_no_range(50), set_axis
+     .                  this_no_range(50), 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, 
      .			LEFT_REAL*16, TM_GET_CALENDAR_NAME*32, 
-     .			indep_ax*1, dep_ax*1, tstyle*3,
+     .			indep_ax*1, dep_ax*1, tstyle*3, xtra_lab*24,
      .			buff1*16, buff2*16, buff3*8, t1_date*14, tref*14,
      .                  cal_name*32, cal_name_new*32, val_buff*32, fmt*4
 
@@ -205,7 +216,7 @@
      .			slen2, slen3, tax, plot_mem_used, nload, i,
      .			pxlim, pylim, phlim, pvlim,pindeplim, pdeplim,
      .			dep_axtyp, indep_axtyp, the_taxis, ribbon_var, 
-     .			junits, iaxis, hblk1, mvh_temp
+     .			gap_var, junits, iaxis, hblk1, mvh_temp
 
 	INTEGER         TM_GET_CALENDAR_ID, cal_id_1, cal_id_2,
      .			cal_id_old, cal_id_new
@@ -213,9 +224,10 @@
 	CHARACTER*1     axdir(6), ax1
 
 	REAL		val1, dt_min, lo, hi, dep_len, 
-     .			ind_len, first, last, hlen
+     .			ind_len, first, last, hlen, hrs
 	REAL*8		TSTEP_TO_SECS, SECS_TO_TSTEP,
      .			ind_min, ind_max, dep_min, dep_max, delta, tmp
+	REAL*4 rbad
 
 * local parameter declarations:
 	LOGICAL		main, norm_labs, pnot_curv, range_rqd
@@ -251,6 +263,7 @@
 	mod_vs_x = .FALSE.
 	mod_vs_y = .FALSE.
         cx_x = cx_list(1)
+	xtra_lab = ' '
 
 * determine PLOT+ memory required
         plot_mem_used = 0
@@ -279,6 +292,16 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 	   npts = CX_DIM_LEN ( indep_dim, cx )
 	ENDIF
 
+* Mark the gap-variable, for PLOT/VS only
+	IF (versus .AND. addgaps) THEN
+	   IF (ribbon_plot) THEN
+	      gap_var = 4
+	   ELSE
+	      IF (num_uvars_in_cmnd .GT. 3) GOTO 5190
+	      gap_var = 3
+	   ENDIF
+	ENDIF
+
 * set flag indicating a 1D plot is on the screen
 	IF (.NOT.overlay) onedee_on = .TRUE.
 
@@ -335,6 +358,18 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 	   ENDIF 
 	ENDIF
 
+	   
+* do not re-draw the main label, logo, other labels from the underlay plot
+	IF (overlay) THEN
+	   nlabs_on = 0  
+	   CALL PPLCMD ( from, line, 0, 'LABS ', 1, 1 )	
+	   DO i = 1, 3
+	      logolab(i) = 0
+	   ENDDO
+	ENDIF
+
+	IF ( no_labels ) CALL PPLCMD ( from, line, 0, 'LABS ', 1, 1 )
+
 * * * * * * *    - - - INDEPENDENT AXIS DATA - - - * * * * * * * * *
 	IF ( versus ) THEN
 	   time_axis =	.FALSE.
@@ -347,7 +382,7 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
      .			    npts,
      .			    status	)
 	   IF ( status .NE. ferr_ok ) GOTO 5000
-	   var1 = 2	! since first var is independent axis
+	   var1 = 2		! since first var is independent axis
 	   ndv  = nmv - 1	! # of dependent variables
 	   use_keys = .FALSE.
 	   plot_title = FULL_VAR_TITLE( cx_list(1), slen )
@@ -478,6 +513,18 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 	   ENDIF
 
 	ELSE	! (not VERSUS)
+
+* define special axis labels to disambiguate T and F calendar axes
+           IF ( ITS_FMRC(grid1) ) THEN
+	      IF (GEOG_LABEL(indep_dim,grid1)) THEN
+	         IF     (indep_dim .EQ. t_dim) THEN
+	            xtra_lab = 'Verification Time ==>'
+	         ELSEIF (indep_dim .EQ. f_dim) THEN
+	            xtra_lab = 'Initialization Time ==>'
+	         ENDIF
+	      ENDIF
+	   ENDIF
+
 	   var1 = 1
 	   ndv  = nmv
 	   ito  = 0
@@ -537,10 +584,20 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 	ENDIF
  3005	FORMAT ( 'LIMITS ',G15.8,1X,A1,'EQ' )
 
+* Send info about gap var for PLOT/VS/GAPLOC
+
+	CALL PPLCMD ( from, line, 0, 'GAPLOC 0', 1, 1)
+	IF (addgaps) THEN
+	   ppl_buff = ' '
+	   WRITE ( ppl_buff, 3007 ) gap_var
+	   CALL PPLCMD ( from, line, 0, ppl_buff, 1, 1)
+	ENDIF
+ 3007	FORMAT ( 'GAPLOC ',I5 )
+
 * * * * * * *    - - - LOAD DATA - - - * * * * * * * * *
 * 11/95: determine T0 reference time for time axis
 	IF ( time_axis .AND. .NOT.overlay ) THEN
-	   tref = MERGED_WHOI_DATE( cx_list(var1), the_taxis, nmv )
+	   tref = MERGED_WHOI_DATE( cx_list(var1), the_taxis, nmv, .FALSE. )
 	ELSE
 	   tref = ' '		! overlays reuse previous tref
 	ENDIF
@@ -564,15 +621,6 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
      .				npts2,
      .				status	)
            iaxis = CGRID_AXIS(dep_dim,cx)
-	   
-	   IF (.NOT.overlay .AND. (ipl.EQ.var1 .AND. ribbon_plot)) THEN
-	      CALL MINMAX( dep_dat, npts, mr_bad_data(mv), lo, hi )
-	      dep_min = DBLE( lo )
-	      dep_max = DBLE( hi )
-	      delta = unspecified_val8
-	      CALL AXIS_ENDS(dep_ax,dep_dim,grid1,dep_min,dep_max,
-     .                      delta, dep_is_log, dep_axtyp, status)
-           ENDIF
  
 	   IF ( status .NE. ferr_ok ) GOTO 5000
 * ... replicate points to create a "step" plot if requested  (1/01)
@@ -599,7 +647,7 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 * Set up the dependent axis.
 
 	      set_axis = .TRUE.
-	      IF (ribbon_plot) set_axis = (ipl .EQ. var1)
+	      IF (ribbon_plot .OR. addgaps) set_axis = (ipl .EQ. var1)
               IF (versus .AND. set_axis .AND. .NOT.overlay) THEN
  	         CALL MINMAX( dep_dat, npts, mr_bad_data(mv), lo, hi )
 	         dep_min = DBLE( lo )
@@ -641,6 +689,14 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
      .                     TSTEP_TO_SECS(grid, the_taxis, DBLE(indep_dat(1)) ))
 	         ind_max = MAX( ind_max,
      .                     TSTEP_TO_SECS(grid, the_taxis, DBLE(indep_dat(nload)) ))
+
+* Plotting short time range? If so recompute tref     
+* axis length in hours from time since BC in seconds
+	         IF (.NOT.overlay) THEN
+	            hrs = ( ind_max - ind_min ) / 3600.
+		    IF (hrs.LT.24)
+     . 	            tref = MERGED_WHOI_DATE( cx_list(var1), the_taxis, nmv, .TRUE. )
+		 ENDIF
 	      ELSE
 	         ind_min = MIN( ind_min, DBLE(indep_dat(1)) )
 	         ind_max = MAX( ind_max, DBLE(indep_dat(nload)) )
@@ -656,6 +712,8 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 * needed for computing color levels. Results stored in PPLUS common.
 * If histogram-based levels are requested, compute the 
 * histogram bins.
+* send REAL*4 rbad to compare with lev_max, lev_min inside compute_mnstd
+
 
 	   IF (ribbon_plot .AND. ipl.EQ.ribbon_var) THEN
 
@@ -672,34 +730,36 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 * ... clean up temporary variable
                  CALL DELETE_VARIABLE( mvh_temp )
               ELSE
-                 CALL COMPUTE_MNSTD (dep_dat, mr_bad_data(mv), need_std, npts, status)
+	         rbad = bad_val4
+                 CALL COMPUTE_MNSTD (dep_dat, mr_bad_data(mv), need_std, npts, rbad, status)
               ENDIF
 
 	   ENDIF
 
 * ... check that there is a range of dependent data for PLOT+ auto-scaling
-* ... when all the variables are considered together
-        
-	this_no_range(ipl) = .FALSE.
-        IF (set_axis) this_no_range(ipl) = NO_LINE_RANGE( 
-     .       dep_dat, nload, mr_bad_data(mv), val1 )
-	all_1_dep = all_1_dep .AND. this_no_range(ipl)
-        IF (this_no_range(ipl) .AND. val1.NE.mr_bad_data(mv) )
+* ... when all the variables are considered together (but not the ribbon var)
+
+	   IF (addgaps .AND. ipl.EQ.gap_var) GOTO 199
+
+	   IF (.NOT.ribbon_plot .OR. (ribbon_plot .AND. ipl.LT.ribbon_var)) THEN
+	      this_no_range(ipl) = .FALSE.
+              IF (set_axis) this_no_range(ipl) = NO_LINE_RANGE( 
+     .          dep_dat, nload, mr_bad_data(mv), val1 )
+	      all_1_dep = all_1_dep .AND. this_no_range(ipl)
+              IF (this_no_range(ipl) .AND. val1.NE.mr_bad_data(mv) )
      .           this_no_range(ipl) = .FALSE. ! Keep the value for putting NO VALID on labels
-! 10/99	IF ( val1 .EQ. mr_bad_data(mv) ) CALL ERRMSG( ferr_no_range, status,
-!     .		'all data points are bad: '//VAR_CODE(mr_category(mv),
-!     .						      mr_variable(mv) ),*5000)
-	IF ( all_1_dep ) THEN
-	   IF ( only_val .EQ. bad_val4 ) THEN
-	      IF ( val1 .NE. mr_bad_data(mv) ) only_val = val1
-	   ELSE
-	      all_1_dep = all_1_dep .AND. only_val .EQ. val1
-	   ENDIF
-!	ELSE  ! commented out 10/93 - PLOT+ auto scaling used
-!	   CALL MINMAX( dep_dat, npts, mr_bad_data(mv), lo, hi )
-!	   IF ( lo .LT. dep_min ) dep_min = lo
-!	   IF ( hi .GT. dep_max ) dep_max = hi
-	ENDIF
+
+	      IF ( all_1_dep ) THEN
+	         IF ( only_val .EQ. bad_val4 ) THEN
+	            IF ( val1 .NE. mr_bad_data(mv) ) only_val = val1
+	         ELSE
+	           all_1_dep = all_1_dep .AND. only_val .EQ. val1
+	         ENDIF
+
+	      ENDIF
+	   ENDIF  ! checking range when not ribbon variable
+
+  199	   CONTINUE  ! checking range when not gap variable
 
 * pass the data to PLOT+
 
@@ -743,7 +803,7 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 	      ENDIF
 	   ENDIF
 
- ! put colorvar in the right place
+! put colorvar in the right place
 	   IF (ribbon_plot .AND. ipl.EQ.ribbon_var) THEN
 	      flip = .FALSE.
 	      IF (indep_dim .EQ. z_dim) THEN
@@ -752,6 +812,15 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 	      ENDIF
 	   ENDIF
 
+! put gap-var in the right place
+	   IF (ipl .EQ. gap_var) THEN
+	      flip = .FALSE.
+	      IF (indep_dim .EQ. z_dim) THEN
+	         WRITE ( ppl_buff, 3005 ) mr_bad_data( mv ), indep_ax
+	         CALL PPLCMD ( from, line, 0, ppl_buff, 1, 1 )
+	      ENDIF
+	   ENDIF
+
 	   IF ( flip ) THEN
 	      CALL PPLLDX_envelope(0,dep_dat,indep_dat,nload,
      .                             t1_date, tref, dt_min, plot_mem_used)
@@ -819,7 +888,7 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 	      IF ( time_axis ) THEN
 	         IF ( pindeplim .GT. 0 ) CALL PPL_TIME( ind_min,ind_max,
      .                                    cal_id_1)
-	         CALL TAXIS_STYLE( indep_ax, ind_min, ind_max, tstyle )
+	         CALL TAXIS_STYLE( indep_ax, ind_min, ind_max, tstyle, xtra_lab )
 * (6/99) Note: The time axis extrema symbols are only approximately correct
 *		since PLOT+ rounds out the time ranges ...
 	         CALL AXIS_END_SYMS( indep_ax,
@@ -834,11 +903,13 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
                     last  = ind_max
                     GOTO 5170
                  ENDIF
-
+	
+	         timeax_both = .FALSE.
 	         CALL AXIS_FORMAT( indep_ax, indep_dim, grid1,
      .				   ind_min, ind_max, delta,
      .				   pnot_curv, 0,
-     .				   time_axis, tstyle, no_labels )
+     .				   time_axis, timeax_both, tstyle,
+     .                             no_labels, xtra_lab )
 	      ENDIF
 	   ENDIF
 * ... dependent axis scaling
@@ -997,4 +1068,7 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
      . 'One-point independent axis: Requires a '//
      .  '/HLIMIT or /VLIMIT specification', *5000 )
 
+ 5190	CALL ERRMSG( ferr_syntax, status,
+     . 'PLOT/VS/GAPLOC only for a single dependent variable', *5000 )
+
 	END
diff --git a/fer/plt/polygon_set_up.F b/fer/plt/polygon_set_up.F
index 5a37449..f95971a 100644
--- a/fer/plt/polygon_set_up.F
+++ b/fer/plt/polygon_set_up.F
@@ -132,6 +132,8 @@
 *                  argument for all-color line plot
 * 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
 
 	include 'tmap_dims.parm'
 	include 'xtm_grid.cmn_text'
@@ -158,6 +160,7 @@
         include 'PLTL.INC'
 	include 'vector_inc.decl' ! with TRANSPZ
         include 'VECTOR.INC'
+        include 'pyfonts.cmn'
 
 
 * calling argument declarations:
@@ -203,13 +206,13 @@
 
 	REAL*8		vmin, vmax, delta, ind_min, ind_max, dep_min,
      .			dep_max
+	REAL*4		rbad
 
 * local parameter declarations:
 	LOGICAL		range_rqd
 	PARAMETER     ( range_rqd = .TRUE. )
 	PARAMETER     ( epsilon = 1.E-35 )
 
-
 * signal that plot set-up has begun
 	IF ( mode_diagnostic ) CALL SPLIT_LIST(pttmode_ops, ttout_lun,
      .				'setting up polygons', 19)
@@ -758,9 +761,16 @@ c	   IF ( npoly         .GE. NPOLYGON   ) GOTO 5160
 
 * If needed for the levels setting, compute data mean and std, store
 * in common.  If the user set a std to use, store that.
+* send  REAL*4 rbad to compare with lev_max, lev_min inside compute_mnstd
 
+       rbad = bad_val4
        CALL compute_mnstd (x_dat, mr_bad_data(mr_color), need_std, 
-     .    ncolor, status)
+     .    ncolor, rbad, status)
+       IF (status .NE. ferr_ok) THEN
+* ... set up for automatic levels
+	   CALL PPLCMD ( from, line, 0, 'LEV,()', 1, 1 )
+          CALL USE_LINEAR_LEVELS
+       ENDIF
 
 * If histogram-based levels are requested, compute the 
 * histogram bins.
@@ -1108,7 +1118,10 @@ c	   IF ( npoly         .GE. NPOLYGON   ) GOTO 5160
 	ELSE
 	ENDIF
 
-	IF ( no_labels ) RETURN
+	IF ( no_labels ) THEN
+	   CALL PPLCMD ( from, line, 0, 'LABS ', 1, 1 )
+	   RETURN
+	ENDIF
 
 * * * * * * *    - - - LABELS - - -   * * * * * * * * *
 * if we are starting from a blank screen each axis is labelled with the units
@@ -1117,6 +1130,14 @@ c	   IF ( npoly         .GE. NPOLYGON   ) GOTO 5160
 * by the /TITLE qualifier) and it is placed in a key for overlays or as a
 * title for a fresh plot.
 	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 )	
+	   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(
diff --git a/fer/gnl/create_agg_dset.F b/fer/plt/put_annotation.F
similarity index 54%
copy from fer/gnl/create_agg_dset.F
copy to fer/plt/put_annotation.F
index 2de0c90..ee6f4b2 100644
--- a/fer/gnl/create_agg_dset.F
+++ b/fer/plt/put_annotation.F
@@ -1,6 +1,7 @@
-	SUBROUTINE CREATE_AGG_DSET (agg_dset, dname, dtitle, 
-     .               nsets, agg_dim, iline, status)
-*
+	SUBROUTINE PUT_ANNOTATION (user, nouser, norm, xloc, yloc,
+     .          halign, angle, size, nlab, labtxt, 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,60 +34,64 @@
 *  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'
+* Make calls to PPLUS to set up the size angle and label for the DEFINE ANNOTATION 
+* command. If the user has not set a label number, increment the count that is in 
+* place for other moveable labels added by Ferret.
 
-      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 'netcdf.inc'
-	include 'xvariables.cmn'
+	include 'tmap_dims.parm'
+	include 'plot_setup.parm'
+	include 'xplot_setup.cmn'
 
-* calling argument declarations:
-	CHARACTER*(*)	dname, dtitle
-	INTEGER		agg_dset, nsets, agg_dim, iline, status
+	LOGICAL user, norm, nouser
+	INTEGER	nlab, status
+	REAL	xloc, yloc, halign, angle, size
+	CHARACTER*(*) labtxt
 
 * local variable declarations:
-	INTEGER TM_LENSTR, TM_LENSTR1, ALLO_MANAGED_AXIS,
-     .		type, coordvar, varid, big_cx
-	REAL	bad_flag
+	INTEGER TM_LENSTR1, rlen, nchar
+	CHARACTER TM_FMT*14, buff*20
+	
+* Count of (PLOT+ movable labels) or use the nlab given by the user
+	IF (nlab .EQ. 0) THEN
+ 	   nlabs_on = nlabs_on + 1
+	   nlab = nlabs_on
+	ENDIF
 
-	CALL CD_INIT_AGG_DSET (agg_dset, dname, status)
+* Send label size to pplus
+	WRITE ( ppl_buff, 3000 ) nlab, size
+	CALL PPLCMD ( from, line, 0, ppl_buff, 1, 1 )
 
-	IF (status .NE. ferr_ok) GOTO 5300 
+* Send rotation angle to pplus
+	IF (angle .NE. 0.) THEN
+	   WRITE ( ppl_buff, 3100 ) nlab, angle
+	   CALL PPLCMD ( from, line, 0, ppl_buff, 1, 1 )
+	ENDIF
 
-* Set the dataset type and title (can add other directions)
-	IF (agg_dim .EQ. e_dim ) ds_type(agg_dset) = 'ENS'
+* Send LABS command with qualifier, position, justify setting, and label
 
-	ds_name(agg_dset) = dname
-	ds_des_name(agg_dset) = dname
+	WRITE ( ppl_buff, 3200 ) nlab
+	IF (user) WRITE ( ppl_buff, 3300 ) nlab
+	rlen = TM_LENSTR1(ppl_buff)
 
-	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
+	ppl_buff = ppl_buff(:rlen)//','//TM_FMT(xloc, 14, 16, nchar)
+	rlen = TM_LENSTR1(ppl_buff)
+
+	ppl_buff = ppl_buff(:rlen)//','//TM_FMT(yloc, 14, 16, nchar)
+	rlen = TM_LENSTR1(ppl_buff)
 
-* create the aggregate axis
+	ppl_buff = ppl_buff(:rlen)//','//TM_FMT(halign, 14, 16, nchar)
+	rlen = TM_LENSTR1(ppl_buff)
 
-	CALL CREATE_AGG_AXIS (nsets, agg_dim, iline, status)
-	IF (status .NE. ferr_ok) GOTO 5300 
+	ppl_buff = ppl_buff(:rlen)//', '//labtxt
+	rlen = TM_LENSTR1(ppl_buff)
+
+	CALL PPLCMD ( from, line, 0, ppl_buff(:rlen), 1, 1 )
 
 	RETURN
 	
- 5000   RETURN	
- 5300   status = ferr_TMAP_error
-	RETURN
+ 3000	FORMAT('HLABS ',I3,1X,F6.3 )
+ 3100	FORMAT ('RLABS ',I4, ',', F8.3)
+ 3200	FORMAT('LABS/NOUSER ', I3)
+ 3300	FORMAT('LABS/USER ', I3)
 
-	END
+	END
\ No newline at end of file
diff --git a/fer/plt/put_label.F b/fer/plt/put_label.F
index fb5a181..c914670 100644
--- a/fer/plt/put_label.F
+++ b/fer/plt/put_label.F
@@ -77,6 +77,7 @@
 *                 (SNGL must have a double-precision or complex argument)
 * V68  *acm* 5/12  Dont write the font to xlab, ylab if they are blank strings.
 * V686 *acm* 12 13 set up the label symbols LABNUM_E and LABNUM_F
+* V6.95 *acm* 3/15 Changes for PyFerret fonts. 
 
 	include 'tmap_dims.parm'
 	include 'plot_setup.parm'
@@ -86,6 +87,7 @@
 	include 'axis_inc.decl'	! axis lengths
 	include 'AXIS.INC'		! axis lengths
 	include 'xrisc.cmn'		! to fix RISC FORTRAN bug
+        include 'pyfonts.cmn'
 
 * PLOT+ parameter fom PPLV11INC:PARAMPL5.DAT
 	INTEGER		nlabs
@@ -121,7 +123,6 @@
      .	     labname(ppl_dodsurl)/'DODS'/,
      .	     labname(ppl_calendar)/'CALEND'/
 
-
 * if label has single tic marks double them so PLOT+ doesnt interpret symbols
 	IF ( INDEX(string,"'date'") .GT. 0 ) THEN
 * ... hack to let PLOT+ date time symbols be evaluated (using single tics)
@@ -169,6 +170,8 @@
 	   font = '@AS'
 	ENDIF
 
+	IF (pyfont) font = ' '
+
 * Let user select the font if they want
 
         IF (string(1:1) .EQ. "@") THEN
diff --git a/fer/plt/set_annotation.F b/fer/plt/set_annotation.F
new file mode 100644
index 0000000..c9ec7c1
--- /dev/null
+++ b/fer/plt/set_annotation.F
@@ -0,0 +1,333 @@
+	SUBROUTINE SET_ANNOTATION (user, nouser, norm, xloc, yloc,
+     .        halign, angle, size, status)
+
+*  This software was developed by the Thermal Modeling and Analysis
+*  Project(TMAP) of the National Oceanographic and Atmospheric
+*  Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+*  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. 
+*
+* Parse qualifiers for ANNOTATE and DEFINE ANNOTATION command, converting
+* locations to the correct ones for /USER, /NOUSER, or /NORMalized specification.
+
+	include 'tmap_dims.parm'
+	include	'ferret.parm'
+	include 'errmsg.parm'
+	include 'slash.parm'
+	include 'xplot_state.cmn'
+	include 'xcontext.cmn'
+	include 'xvariables.cmn'
+	include 'xprog_state.cmn'
+	include 'plot_setup.parm'
+	include 'xplot_setup.cmn'
+
+	LOGICAL user, norm, nouser
+	INTEGER	status
+	REAL	xloc, yloc, halign, angle, size
+
+* local variable declarations:
+
+	INTEGER	TM_LENSTR1,
+     .		loc, rlen, item, itype, nchar, ierr
+	REAL	val, xpos, ypos, valign, deg_to_rad, cos_ang, sin_ang, 
+     .		a_dx, a_dy, hloc, xaxlen, yaxlen, rev, xrev, yrev, 
+     .		xaxmin, xaxmax, yaxmin, yaxmax, xscale, yscale
+
+	CHARACTER buff*20, symbuff*30
+
+* plotting must already be turned on
+
+	IF ( .NOT.pplus_started ) GOTO 5100
+
+* initialize (size initialized in the calling routine)
+
+	xpos = 0.
+	ypos = 0.
+	valign = -1.
+	halign = -1.
+	angle = 0.
+	status = ferr_ok
+
+* Get settings
+
+* /USER /NOUSER or /NORM. Default is /USER
+	user   = qual_given( slash_annotate_user )  .GT. 0
+	nouser = qual_given( slash_annotate_nouser) .GT. 0
+	norm   = qual_given( slash_annotate_norm  ) .GT. 0
+
+	itype = 0
+	IF (user) itype = itype+1
+	IF (nouser) itype = itype+1
+	IF (norm) itype = itype+1
+	IF (itype .EQ. 0) user = .TRUE.
+	IF (itype .GT. 1) GOTO 5200
+
+* ... ANNOTATE/HALIGN=float
+	loc = qual_given( slash_annotate_halign )
+	IF ( loc .GT. 0  ) THEN
+	   CALL EQUAL_VAL( cmnd_buff(qual_start(loc):qual_end(loc)),
+     .			      val, status )
+	   buff = 'HALIGN'
+	   IF ( status .NE. ferr_ok ) GOTO 5000
+	   IF ( val .NE. unspecified_val4 ) halign = val
+	ENDIF
+
+* valign and halign will modify the location settings if /NORM
+* ... ANNOTATE/VALIGN=float
+
+	loc = qual_given( slash_annotate_valign )
+	IF ( loc .GT. 0  ) THEN
+	   CALL EQUAL_VAL( cmnd_buff(qual_start(loc):qual_end(loc)),
+     .			      val, status )
+	   buff = 'VALIGN'
+	   IF ( status .NE. ferr_ok ) GOTO 5000
+	   IF ( val .NE. unspecified_val4 ) valign = val
+	ENDIF
+
+* ... ANNOTATE/XPOS=float
+	
+	loc = qual_given( slash_annotate_xpos )
+	IF ( loc .GT. 0  ) THEN
+	   CALL EQUAL_VAL( cmnd_buff(qual_start(loc):qual_end(loc)),
+     .			      val, status )
+	   buff = 'XPOS'
+	   IF ( status .NE. ferr_ok ) GOTO 5000
+	   IF ( val .NE. unspecified_val4 ) xpos = val
+	ELSE
+	   GOTO 5300
+	ENDIF
+
+* ... ANNOTATE/YPOS=float
+	loc = qual_given( slash_annotate_ypos )
+	IF ( loc .GT. 0  ) THEN
+	   CALL EQUAL_VAL( cmnd_buff(qual_start(loc):qual_end(loc)),
+     .			      val, status )
+	   buff = 'YPOS'
+	   IF ( status .NE. ferr_ok ) GOTO 5000
+	   IF ( val .NE. unspecified_val4 ) ypos = val
+	ELSE
+	   GOTO 5300
+	ENDIF
+
+* ... ANNOTATE/ANGLE=float
+
+	angle = 0.
+	loc = qual_given( slash_annotate_angle )
+	IF ( loc .GT. 0  ) THEN
+	   CALL EQUAL_VAL( cmnd_buff(qual_start(loc):qual_end(loc)),
+     .			      val, status )
+	   buff = 'ANGLE'
+	   IF ( status .NE. ferr_ok ) GOTO 5000
+	   IF ( val .NE. unspecified_val4 ) angle = val
+	ENDIF
+
+* ... ANNOTATE/SIZE=float
+	loc = qual_given( slash_annotate_size )
+	IF ( loc .GT. 0  ) THEN
+	   CALL EQUAL_VAL( cmnd_buff(qual_start(loc):qual_end(loc)),
+     .			      val, status )
+	   buff = 'SIZE'
+	   IF ( status .NE. ferr_ok ) GOTO 5000
+	   IF ( val .NE. unspecified_val4 ) size = val
+	ENDIF
+
+* Compute arguments to send to the PPL %LABEL command
+
+* .../USER
+	IF (user) THEN
+
+* Get axis scaling.  For line plots and PLOT/SET the AXIS_MIN
+* and AXIS_MAX symbols may not be set.
+
+	   symbuff = 'XAXIS_MIN'
+	   CALL GETSYM( symbuff, buff, nchar, ierr)
+	   IF (nchar.EQ.0 .OR. ierr.EQ.1)  THEN
+	      symbuff = 'PPL$YMIN1'
+	      CALL GETSYM( symbuff, buff, nchar, ierr)
+	      IF (nchar.EQ.0 .OR. ierr.EQ.1) GOTO 5400
+	   ENDIF
+	   READ(buff,*) xaxmin
+
+	   symbuff = 'XAXIS_MAX'
+	   CALL GETSYM( symbuff, buff, nchar, ierr)
+	   IF (nchar.EQ.0 .OR. ierr.EQ.1)  THEN
+	      symbuff = 'PPL$XMAX1'
+	      CALL GETSYM( symbuff, buff, nchar, ierr)
+	      IF (nchar.EQ.0 .OR. ierr.EQ.1) GOTO 5400
+	   ENDIF
+	   READ(buff,*) xaxmax
+	   
+	   symbuff = 'PPL$XLEN'
+	   CALL GETSYM( symbuff, buff, nchar, ierr)
+	   IF (nchar.EQ.0 .OR. ierr.EQ.1) GOTO 5400
+	   READ(buff,*) xaxlen
+
+	   symbuff = 'YAXIS_MIN'
+	   CALL GETSYM( symbuff, buff, nchar, ierr)
+	   IF (nchar.EQ.0 .OR. ierr.EQ.1) THEN
+	      symbuff = 'PPL$YMIN1'
+	      CALL GETSYM( symbuff, buff, nchar, ierr)
+	      IF (nchar.EQ.0 .OR. ierr.EQ.1) GOTO 5400
+	   ENDIF
+	   READ(buff,*) yaxmin
+
+	   symbuff = 'YAXIS_MAX'
+	   CALL GETSYM( symbuff, buff, nchar, ierr)
+	   IF (nchar.EQ.0 .OR. ierr.EQ.1) THEN
+	      symbuff = 'PPL$YMAX1'
+	      CALL GETSYM( symbuff, buff, nchar, ierr)
+	      IF (nchar.EQ.0 .OR. ierr.EQ.1) GOTO 5400
+	   ENDIF
+	   READ(buff,*) yaxmax
+	   
+	   symbuff = 'PPL$YLEN'
+	   CALL GETSYM( symbuff, buff, nchar, ierr)
+	   IF (nchar.EQ.0 .OR. ierr.EQ.1) GOTO 5400
+	   READ(buff,*) yaxlen
+
+* is the axis reversed?
+
+c	   symbuff = 'XAXIS_REVERSED'
+c	   CALL GETSYM( symbuff, buff, nchar, ierr)
+c	   IF (nchar.EQ.0 .OR. ierr.EQ.1) GOTO 5400
+c	   READ(buff,*) rev
+c	   IF (rev.EQ.0) xrev =  1
+c	   IF (rev.EQ.1) xrev = -1
+
+c	   symbuff = 'YAXIS_REVERSED'
+c	   CALL GETSYM( symbuff, buff, nchar, ierr)
+c	   IF (nchar.EQ.0 .OR. ierr.EQ.1) GOTO 5400
+c	   READ(buff,*) rev
+c	   IF (rev.EQ.0) yrev =  1
+c	   IF (rev.EQ.1) yrev = -1
+
+	   xrev = 1
+	   yrev = 1
+	   xscale = xrev*xaxlen/(xaxmax-xaxmin)
+	   yscale = yrev*yaxlen/(yaxmax-yaxmin)
+
+	   IF (halign .LE. -1) THEN
+	      hloc = -1.
+	   ELSEIF (halign .GE. 1) THEN
+	      hloc = 1.
+	   ELSE
+	      hloc = 0.
+	   ENDIF
+
+	   deg_to_rad = 0.017453292
+	   cos_ang = cos(angle*deg_to_rad)
+	   sin_ang = sin(angle*deg_to_rad)
+	   a_dx = ((hloc-halign)/2 * cos_ang + (1+valign)/2 * sin_ang) * size / xscale
+	   a_dy = ((hloc-halign)/2 * sin_ang - (1+valign)/2 * cos_ang) * size / yscale
+
+	   xloc = xpos + a_dx
+	   yloc = ypos + a_dy
+
+	   buff = 'USER'
+	ENDIF
+
+* .../NOUSER
+	IF (nouser) THEN
+	   
+	   IF (halign .LE. -1) THEN
+	      hloc = -1.
+	   ELSEIF (halign .GE. 1) THEN
+	      hloc = 1.
+	   ELSE
+	      hloc = 0.
+	   ENDIF
+
+	   deg_to_rad = 0.017453292
+	   cos_ang = cos(angle*deg_to_rad)
+	   sin_ang = sin(angle*deg_to_rad)
+	   a_dx = ((hloc-halign)/2 * cos_ang + (1+valign)/2 * sin_ang) * size
+	   a_dy = ((hloc-halign)/2 * sin_ang - (1+valign)/2 * cos_ang) * size
+
+	   xloc = xpos + a_dx
+	   yloc = ypos + a_dy
+
+	   buff = 'NOUSER'
+	ENDIF
+
+* .../NORM
+	IF (norm) THEN
+
+* Get axis lengths. 
+	   symbuff = 'PPL$XLEN'
+	   CALL GETSYM( symbuff, buff, nchar, ierr)
+	   IF (nchar.EQ.0 .OR. ierr.EQ.1) GOTO 5400
+	   READ(buff,*) xaxlen
+	   
+	   symbuff = 'PPL$YLEN'
+	   CALL GETSYM( symbuff, buff, nchar, ierr)
+	   IF (nchar.EQ.0 .OR. ierr.EQ.1) GOTO 5400
+	   READ(buff,*) yaxlen
+	   
+	   IF (halign .LE. -1) THEN
+	      hloc = -1.
+	   ELSEIF (halign .GE. 1) THEN
+	      hloc = 1.
+	   ELSE
+	      hloc = 0.
+	   ENDIF
+
+	   deg_to_rad = 0.017453292
+	   cos_ang = cos(angle*deg_to_rad)
+	   sin_ang = sin(angle*deg_to_rad)
+	   a_dx = ((hloc-halign)/2 * cos_ang + (1+valign)/2 * sin_ang) * size
+	   a_dy = ((hloc-halign)/2 * sin_ang - (1+valign)/2 * cos_ang) * size
+
+	   xloc = xpos*xaxlen + a_dx
+	   yloc = ypos*yaxlen + a_dy
+
+	ENDIF
+
+	IF (halign .LE. -1) THEN
+	   halign = -1.
+	ELSEIF (halign .GE. 1) THEN
+	   halign = 1.
+	ELSE
+	   halign = 0.
+	ENDIF
+
+ 5000	RETURN
+
+ 5100   CALL ERRMSG (ferr_invalid_command, status, 
+     .          'ANNOTATE: Plotting has not been started', *5000)
+     
+ 5200	CALL ERRMSG( ferr_invalid_command, status,
+     .		'Specify only one of /USER /NOUSER /NORM', *5000 )
+
+ 5300	CALL ERRMSG( ferr_invalid_command, status,
+     .		'/XPOS and /YPOS are required for ANNOTATE', *5000 )
+
+ 5400   CALL ERRMSG (ferr_invalid_command, status, 
+     .          'Could not get axis lengths for label positioning', *5000)
+
+	END
diff --git a/fer/plt/set_pytext_group.F b/fer/plt/set_pytext_group.F
new file mode 100644
index 0000000..31f6c0f
--- /dev/null
+++ b/fer/plt/set_pytext_group.F
@@ -0,0 +1,212 @@
+	SUBROUTINE SET_PYTEXT_GROUP (igrp, buff1, 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. 
+*
+        include 'tmap_dims.parm'
+        include 'ferret.parm'
+        include 'errmsg.parm'
+	include	'slash.parm'
+	include 'xprog_state.cmn'
+        include 'pyfonts.cmn'
+
+	INTEGER	igrp, status
+	CHARACTER*(*) buff1 
+
+	INTEGER TM_LENSTR1, STR_SAME, llen, slen, ii, loc
+	REAL	val_buf
+	CHARACTER arg*24, errstrng*20
+
+* Settings for all text
+
+      IF (igrp .EQ. fnt_all) THEN
+
+c* ... SET TEXT/FONT
+	IF ( qual_given( slash_set_text_font ) .GT. 0 ) THEN
+           loc = qual_given( slash_set_text_font )
+	   IF ( loc.GT. 0 ) THEN
+              CALL EQUAL_STR_LC( cmnd_buff(qual_start(loc):qual_end(loc)),
+     .			      buff1, status )
+              IF ( status .NE. ferr_ok ) RETURN
+	      IF ( buff1 .EQ. ' ' ) GOTO 5440
+	      pyfnt_fontname = buff1
+	   ENDIF
+	ENDIF
+
+* ... SET TEXT/COLOR
+*     % rgb or color names black,red,green,blue,lightblue,purple,white or color #
+
+	IF ( qual_given( slash_set_text_color ) .GT. 0 ) THEN
+	   loc= qual_given( slash_set_text_color )
+	
+	   CALL EQUAL_STR_LC( cmnd_buff(qual_start(loc):qual_end(loc)),
+     .                        buff1, status )
+           IF ( status .NE. ferr_ok ) GOTO 5100
+	   CALL PARSE_PYFONT_COLOR (buff1, pyfnt_red, 
+     .         pyfnt_grn, pyfnt_blu, status)
+           IF ( status .NE. ferr_ok ) GOTO 5100
+	ENDIF 
+
+* ... SET TEXT/ITALIC
+	IF ( qual_given( slash_set_text_italic ) .GT. 0 ) THEN	
+	   pyfnt_italic = 1
+	ENDIF
+
+* ... SET TEXT/BOLD
+	IF ( qual_given( slash_set_text_bold ) .GT. 0 ) THEN	
+	   pyfnt_bold = 1
+	ENDIF
+
+* ... SET TEXT/ISIZ
+	IF ( qual_given( slash_set_text_isiz ) .GT. 0 ) THEN	
+           loc = qual_given(slash_set_text_isiz)
+
+*       Get the isize value
+           CALL EQUAL_VAL( cmnd_buff(qual_start(loc):qual_end(loc)),
+     .                     val_buf, status )
+           IF ( status .NE. ferr_ok ) GOTO 5450
+	   
+           ii = INT(val_buf)
+           IF (ii.LT.-4 .OR. ii.GT.4) GOTO 5460
+           pyfnt_isiz = ii
+	ENDIF
+
+* Set the group settings to the default values and unset pyf_set
+* Then the groups will follow the global setting.
+
+	DO 1000 ii = 1, ngp
+	   pyf_italic(ii) = 0
+	   pyf_bold(ii) = 0
+	   pyf_isiz(ii) = 0
+	   pyf_red(ii) = 0
+	   pyf_grn(ii) = 0
+	   pyf_blu(ii) = 0
+	   pyf_fontname(ii) = pyf_font_dflt(ii)
+	   pyf_set(ii) = .FALSE.
+ 1000	CONTINUE
+
+      ELSE  ! group settings
+
+* If there were not previous settings on this group, first apply the
+* current global settings to this group
+
+	IF (.NOT. pyf_set(igrp)) THEN
+	   pyf_italic(igrp) = pyfnt_italic
+	   pyf_bold(igrp) = pyfnt_bold
+	   pyf_isiz(igrp) = pyfnt_isiz
+	   pyf_red(igrp) = pyfnt_red
+	   pyf_grn(igrp) = pyfnt_grn
+	   pyf_blu(igrp) = pyfnt_blu
+	   pyf_fontname(igrp) = pyfnt_fontname
+	ENDIF
+	
+* Read arguments for /COLOR=, /FONT=, and /ISIZE=
+
+c* ... SET TEXT/FONT
+	IF ( qual_given( slash_set_text_font ) .GT. 0 ) THEN
+           loc= qual_given( slash_set_text_font )
+	   IF ( loc.GT. 0 ) THEN
+              CALL EQUAL_STR_LC( cmnd_buff(qual_start(loc):qual_end(loc)),
+     .			      buff1, status )
+              IF ( status .NE. ferr_ok ) RETURN
+	      IF ( buff1 .EQ. ' ' ) GOTO 5440
+	      pyf_fontname(igrp) = buff1
+	   ENDIF
+	ENDIF
+
+* ... SET TEXT/COLOR
+*     % rgb or color names black,red,green,blue,lightblue,purple,white or color #
+
+	IF ( qual_given( slash_set_text_color ) .GT. 0 ) THEN
+	   loc= qual_given( slash_set_text_color )
+	
+	   CALL EQUAL_STR_LC( cmnd_buff(qual_start(loc):qual_end(loc)),
+     .                        buff1, status )
+           IF ( status .NE. ferr_ok ) GOTO 5100
+	   CALL PARSE_PYFONT_COLOR (buff1, pyf_red(igrp), 
+     .         pyf_grn(igrp), pyf_blu(igrp), status)
+           IF ( status .NE. ferr_ok ) GOTO 5100
+	ENDIF 
+
+
+* ... SET TEXT/ITALIC
+	IF ( qual_given( slash_set_text_italic ) .GT. 0 ) THEN	
+	   pyf_italic(igrp) = 1
+	ENDIF
+
+* ... SET TEXT/BOLD
+	IF ( qual_given( slash_set_text_bold ) .GT. 0 ) THEN	
+	   pyf_bold(igrp) = 1
+	ENDIF
+
+* ... SET TEXT/ISIZ
+	IF ( qual_given( slash_set_text_isiz ) .GT. 0 ) THEN	
+           loc = qual_given(slash_set_text_isiz)
+
+*       Get the isize value
+           CALL EQUAL_VAL( cmnd_buff(qual_start(loc):qual_end(loc)),
+     .                     val_buf, status )
+           IF ( status .NE. ferr_ok ) GOTO 5450
+	   
+           ii = INT(val_buf)
+           IF (ii.LT.-4 .OR. ii.GT.4) GOTO 5460
+           pyf_isiz(igrp) = ii
+	ENDIF
+
+         pyf_set(igrp) = .TRUE.
+
+      ENDIF  ! group vs global settings
+	
+ 5000 CONTINUE
+ 
+      RETURN
+
+* If there were errors, cancel any settings made above
+ 5100	CALL CANCEL_PYTEXT_GROUP (igrp)
+	pyf_set(igrp) = .FALSE.
+	RETURN
+
+ 5440   CALL ERRMSG( ferr_invalid_command, status,
+     .			'SET TEXT/FONT=what? See Unix system fonts ', *5000 )
+ 5450   errstrng = 'SET TEXT'
+	slen = TM_LENSTR1(errstrng)
+        llen = TM_LENSTR1(buff1)
+	CALL ERRMSG( ferr_invalid_command, status,
+     .			errstrng(:slen)//'=what? ', *5100 )
+ 5460   errstrng = 'SET TEXT'
+	slen = TM_LENSTR1(errstrng)
+        llen = TM_LENSTR1(buff1)
+	CALL ERRMSG( ferr_out_of_range, status, 
+     .                  buff1(:llen)//pCR//errstrng//
+     .			' argument must be between -4 and 4', 
+     .			*5100 )
+	END
diff --git a/fer/plt/set_window.F b/fer/plt/set_window.F
index 4481c67..af3f695 100644
--- a/fer/plt/set_window.F
+++ b/fer/plt/set_window.F
@@ -96,6 +96,7 @@
 * PyFr  *kms*  7/13 Call SET_PPL_VALUES to set scaled lengths and label sizes;
 *                   set physical_chg to .TRUE. if START_PPLUS called or 
 *                   if the engine changes
+* V69x *sh* 21/1/15 clarify data type of arguments sent to QUERY_DISPLAY_SIZE
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -117,23 +118,22 @@
         include 'fgrdel.cmn'            ! with windowdpix and windowdpiy
 
 * calling argument declarations:
-	INTEGER	status
+       INTEGER status
 
 * internal variable declarations:
-	LOGICAL TM_DIGIT, MATCH4, FGD_ENGINE_MATCH, 
-     .		physical_chg, relocate, chg_window, axis_ref
-	INTEGER TM_LENSTR1, ier, id, itype, imeter, irx, iry, 
-     .          wn, n, qp, ivp, colon_pos, slen, tlen, i, s1, 
-     .          idone, bkgcolor, xpixels, ypixels
-	REAL	dmaxx, dmaxy, xln, yln, xmn, xmx, ymn, ymx,
-     .		scale, xstretch, ystretch, aspect, ref_len,
-     .          xsc, ysc
-	REAL*4  rzero, rone, fcty, fctx, 
-     .          xwlo, ywlo, xwhi, ywhi, dfltthick,
-     .          redfrac, grnfrac, bluefrac, opaqfrac,
-     .          xinches, yinches, sc
-	CHARACTER	UPPER_CASE*1, GKS_X_CONID*16, warnmsg*80,
-     .			arg1*1, buffer*24, xwind_id*80, short_buff*24
+	   LOGICAL TM_DIGIT, MATCH4, FGD_ENGINE_MATCH, 
+     .         physical_chg, relocate, chg_window, axis_ref
+       INTEGER TM_LENSTR1, ier, id, itype, imeter, irx, iry, 
+     .         wn, n, qp, ivp, colon_pos, slen, tlen, i, s1, 
+     .         bkgcolor, xpixels, ypixels
+	   REAL    xln, yln, xmn, xmx, ymn, ymx, scl, 
+     .         xstretch, ystretch, aspect, ref_len, xsc, ysc
+	   REAL*4  rzero, rone, fcty, fctx, 
+     .         xwlo, ywlo, xwhi, ywhi, dfltthick,
+     .         redfrac, grnfrac, bluefrac, opaqfrac,
+     .         xinches, yinches, sc, owd
+       CHARACTER UPPER_CASE*1, GKS_X_CONID*16, warnmsg*80,
+     .         arg1*1, buffer*24, xwind_id*80, short_buff*24
 
 * local parameter declarations:
 	INTEGER slash_new,
@@ -146,7 +146,8 @@
      .          slash_color,
      .          slash_opacity,
      .          slash_thicken,
-     .          slash_textprom
+     .          slash_textprom,
+     .          slash_outline
 	PARAMETER ( slash_new      =  1+1,
      .              slash_clear    =  4+1,
      .              slash_title    =  5+1,
@@ -157,7 +158,8 @@
      .              slash_color    = 10+1,
      .              slash_opacity  = 11+1,
      .              slash_thicken  = 12+1,
-     .              slash_textprom = 17+1 )
+     .              slash_textprom = 17+1,
+     .              slash_outline  = 18+1 )
 
 	rzero = 0.0
 	rone = 1.0
@@ -440,10 +442,10 @@ c 75        CONTINUE
         qp = qual_given(slash_thicken)
         IF ( qp .GT. 0 ) THEN
             CALL EQUAL_VAL(cmnd_buff(qual_start(qp):qual_end(qp)), 
-     .                     scale, status)
+     .                     scl, status)
             IF ( status .NE. ferr_ok ) RETURN
-            IF ( scale .LE. 0.0 ) GOTO 5070
-            dfltthick = scale
+            IF ( scl .LE. 0.0 ) GOTO 5070
+            dfltthick = scl
             CALL FGD_SET_THICK_FACTOR(n, dfltthick)
         ENDIF
 
@@ -451,14 +453,25 @@ c 75        CONTINUE
         qp = qual_given(slash_textprom)
         IF ( qp .GT. 0 ) THEN
             CALL EQUAL_VAL(cmnd_buff(qual_start(qp):qual_end(qp)), 
-     .                     scale, status)
+     .                     scl, status)
             IF ( status .NE. ferr_ok ) RETURN
-            IF ( scale .LE. 0.0 ) GOTO 5090
+            IF ( scl .LE. 0.0 ) GOTO 5090
 *           Note: scale text by this factor as well as by pplscale
-            CALL SET_TEXT_SIZES(n, scale)
+            CALL SET_TEXT_SIZES(n, scl)
         ENDIF
 
-* background color is always color zero
+* set polygon/rectangle outline width?
+        qp = qual_given(slash_outline)
+        IF ( qp .GT. 0 ) THEN
+            CALL EQUAL_VAL(cmnd_buff(qual_start(qp):qual_end(qp)), 
+     .                     scl, status)
+            IF ( status .NE. ferr_ok ) RETURN
+            IF ( scl .LT. 0.0 ) GOTO 5100
+            owd = scl
+            CALL FGD_SET_OUTLINE_WIDTH(n, owd)
+        ENDIF
+
+* background color will always use color number zero
         bkgcolor = 0
 * background color specified?
         qp = qual_given(slash_color)
@@ -473,10 +486,10 @@ c 75        CONTINUE
         qp = qual_given(slash_opacity)
         IF ( qp .GT. 0 ) THEN
             CALL EQUAL_VAL(cmnd_buff(qual_start(qp):qual_end(qp)), 
-     .                     scale, status)
+     .                     scl, status)
             IF ( status .NE. ferr_ok ) RETURN
-            IF ( (scale .LT. 0.0) .OR. (scale .GT. 100.0) ) GOTO 5080
-            opaqfrac = scale / 100.0
+            IF ( (scl .LT. 0.0) .OR. (scl .GT. 100.0) ) GOTO 5080
+            opaqfrac = scl / 100.0
 *           create a temporary color with the new opacity for the active window
             CALL DUP_COLOR_SET_OPACITY(n, bkgcolor, opaqfrac)
         ENDIF
@@ -511,5 +524,8 @@ c 75        CONTINUE
  5090   CALL ERRMSG( ferr_out_of_range, status, 
      .          'Invalid text prominence specification; '//
      .          'a positive number must be given', *5000)
+ 5100   CALL ERRMSG( ferr_out_of_range, status, 
+     .          'Invalid outline width specification; '//
+     .          'a non-negative number must be given', *5000)
 	END
 
diff --git a/fer/plt/taxis_style.F b/fer/plt/taxis_style.F
index d3aa86b..102114f 100644
--- a/fer/plt/taxis_style.F
+++ b/fer/plt/taxis_style.F
@@ -1,4 +1,4 @@
-	SUBROUTINE TAXIS_STYLE( x_or_y, lo_bc, hi_bc, tstyle )
+	SUBROUTINE TAXIS_STYLE( x_or_y, lo_bc, hi_bc, tstyle, imposed_lab )
 
 *
 *
@@ -55,16 +55,20 @@
 * V66    7/10 *kms* - undiscovered bug fixed: 'TXTYPE_SETTING' was used 
 *                     directly instead of buff30 in call to GETSYM
 * V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
-
+* V695+ *sh*  3/15 Added argument "imposed_lab" to disambiguate F and T axes
+* V695  *acm*  9/15 Changes for hour:min labeling on time axes
 
 	include 'ferret.parm'
 	include 'plot_setup.parm'
+	include 'tmap_dims.parm'
+	include 'xplot_setup.cmn'
         include 'axis_inc.decl'	! with axis lengths
         include 'AXIS.INC'      ! with axis lengths	
 
 
 * calling argument declarations:
 	CHARACTER	x_or_y*1, tstyle*3
+	CHARACTER*(*)	imposed_lab
 	REAL*8		lo_bc, hi_bc
 
 * parameter definitions:
@@ -77,7 +81,7 @@
 	LOGICAL		climatology, its_x
 	INTEGER		TM_LENSTR1, itax, hi_int, slen, i1, i2
 	CHARACTER	ppl_cmnd*128, tstyle_long*10, buff30*30, buff*10
-	REAL		hrs, hrsper8, axlen
+	REAL		hrs, hrsper8, axlen, labsize
 
 * time axis style table
 	INTEGER		tax_loint( pmax_tax ),	! PPL TXLINT lo,...
@@ -85,9 +89,9 @@
 	REAL		tax_hours( pmax_tax )	! bounds: range-->style
 	CHARACTER*10	tax_style( pmax_tax )	! PPL TXTYPE value
 
-	DATA	tax_hours(1)	/   24.	/,	! 0-24 hour long axis
-     .		tax_style(1)	/ 'DAY'	/,
-     .		tax_loint(1)	/    1	/,
+	DATA	tax_hours(1)	/   12.	/,	! < 24 hour long axis with partial days, see label 510 for HR type
+     .		tax_style(1)	/  'HR'/,
+     .		tax_loint(1)	/    3	/,
      .		tax_hiint(1)	/    1	/
 	DATA	tax_hours(2)	/  144.	/,	! 24 hour to 6 day long axis
      .		tax_style(2)	/ 'DAY'	/,
@@ -178,8 +182,11 @@
  500	CONTINUE	         
 	itax = pmax_tax
 
+
 * TXTYPE and TXLINT commands (time axis style)
  510	tstyle_long = tax_style( itax )
+	IF (hrs .LE. 12) 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 )
 
@@ -214,5 +221,31 @@
 !	   ENDIF
 !	ENDIF
 
+* special "imposed" labels (used to disambiguate T and F axes)
+	IF (imposed_lab .NE. ' ') THEN
+	   slen = TM_LENSTR1(imposed_lab)
+       labsize = dflt_letsize_label * textscale
+	   IF ( its_x ) THEN
+* ... lower left corner along the horizontal page edge
+              CALL PUT_LABEL( ppl_movlab, 
+     .                        0.5-xorg, labsize-yorg,
+     .                        ppl_left_just, labsize,
+     .                        '@AS'//imposed_lab(:slen),
+     .                        lab_loc_absolute, lab_loc_absolute )
+	   ELSE
+* ... lower left corner, rotated along the vertical page edge
+              CALL PUT_LABEL( ppl_movlab,
+     .                        2*labsize-xorg, 0.5-yorg,
+     .                        ppl_left_just, labsize,
+     .                        '@AS'//imposed_lab(:slen),
+     .                        lab_loc_absolute, lab_loc_absolute )
+
+* ... rotate it
+	      WRITE ( buff30, 3100 )	nlabs_on
+ 3100	      FORMAT ('RLABS ',I4, ',90')
+	      CALL PPLCMD ( from, line, 0, buff30, 1, 1 )
+	   ENDIF
+	ENDIF
+
 	RETURN
 	END
diff --git a/fer/plt/trim_axis_ends.F b/fer/plt/trim_axis_ends.F
index ba8612b..dfda2c0 100644
--- a/fer/plt/trim_axis_ends.F
+++ b/fer/plt/trim_axis_ends.F
@@ -45,6 +45,7 @@
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 *       *acm* 4/12 6D Ferret: time axis may be in t or f direction. 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
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -105,7 +106,8 @@
 * 8/97 *kob* - check cx_calender for a date time rather than ww_low
 	      ww_low = cx_lo_ww( idim, exp_cx )
 	      ww_hiw = cx_hi_ww( idim, exp_cx )
-	      IF ( (idim.EQ.t_dim .OR. idim.EQ.f_dim) .AND. cx_calendar(exp_cx) ) THEN
+	      IF ( (idim.EQ.t_dim .OR. idim.EQ.f_dim) .AND. 
+     .              cx_calendar(idim,exp_cx) ) THEN
 	         ww_low = SECS_TO_TSTEP( grid, idim, -ww_low )  
 	         ww_hiw = SECS_TO_TSTEP( grid, idim, -ww_hiw )  
 	      ENDIF                                     
diff --git a/fer/plt/window_size_from_opts.F b/fer/plt/window_size_from_opts.F
index 1795163..036c74a 100644
--- a/fer/plt/window_size_from_opts.F
+++ b/fer/plt/window_size_from_opts.F
@@ -82,7 +82,7 @@
      .            xinches_gvn, yinches_gvn
         INTEGER   qp, colon_pos, dspunit, imaxx, imaxy
         REAL      val, aspect, xtmp, ytmp
-        REAL*4    dmaxx, dmaxy
+        REAL*4    dmaxx, dmaxy, newdpi
         CHARACTER buffer*80, numbuff*24, asp_ref*1
 
 *       No size changes during animation
@@ -124,10 +124,6 @@
         xpixels = -1
         ypixels = -1
 
-*       make sure we have the correct dpi's for this window
-        CALL FGD_GQDSP(windid, istat, dspunit,
-     .                 dmaxx, dmaxy, imaxx, imaxy)
-
 *       Default to edges for the aspect
         asp_ref = 'E'
         IF ( aspect_gvn ) THEN
@@ -277,12 +273,27 @@
            val = dflt_imgscale
         ENDIF
 
+*       make sure we have the correct dpi's for this window
+        CALL FGD_GQDSP(windid, istat, dspunit,
+     .                 dmaxx, dmaxy, imaxx, imaxy)
+
         IF ( .NOT. (xpixels_gvn .OR. ypixels_gvn) ) THEN
 *          Pixel size not specified; use the (possibly default) 
 *          page size at the window DPI, and scale by any /size value
            xpixels = NINT(windowdpix(windid) * xinches * SQRT(val))
            ypixels = NINT(windowdpiy(windid) * yinches * SQRT(val))
            IF ( (xpixels .LT. 128) .OR. (ypixels .LT. 128) ) GOTO 5090
+        ELSE
+*          If there is no display (cairo) associated with this window, 
+*          set the window DPI from these values.  If there is a display
+*          associated with this window, this call does nothing and 
+*          negative one is returned in istat.
+           newdpi = DBLE(xpixels) / DBLE(xinches)
+           CALL FGD_SET_WINDOW_DPI(istat, windid, newdpi)
+           IF ( istat .GT. 0 ) THEN
+               windowdpix(windid) = newdpi
+               windowdpiy(windid) = newdpi
+           ENDIF
         ENDIF
 
 * successful completion
diff --git a/fer/pyf/get_data_array_time_coords.F b/fer/pyf/get_data_array_time_coords.F
index cd6f86f..e2b69e7 100644
--- a/fer/pyf/get_data_array_time_coords.F
+++ b/fer/pyf/get_data_array_time_coords.F
@@ -100,7 +100,7 @@
       ENDIF
       DO 100 k = ss_low,ss_high
           worldsecs = TM_WORLD(k, grid, axnum, box_middle)
-          CALL TSTEP_TO_DATE_OLD(grid, worldsecs, 6, timestr)
+          CALL TSTEP_TO_DATE(grid, axnum, worldsecs, 6, timestr)
 *         Try to read as DD-MTH-YYYY HH:MM:SS
 *         If fails, try another format
           READ(timestr, FMT=110, ERR=20) day, monthstr, year,
diff --git a/fer/rpn/alg_break_up.F b/fer/rpn/alg_break_up.F
index ce279ed..0c28d1a 100644
--- a/fer/rpn/alg_break_up.F
+++ b/fer/rpn/alg_break_up.F
@@ -57,6 +57,10 @@
 *                    change next_stat(10,4) to 4 -- 
 * V685:  7/13  *acm* Bug 2084. If a string starts with . and is not numeric, make an atom.
 *                    It'll generally be an error.
+* V693+ 12/14 *sh* allow _QD_ and _SQ_ for quotation alternatives 
+*                 Filled in state=13 (interpreting exponent) DATA inits 
+*	          Hoping I did so correctly ...
+* v694  6/15  *acm* fixes for 2296 -- quotes and curly braces {"{a}"}
 
 	include	'ferret.parm'
 	include 'errmsg.parm'
@@ -71,9 +75,11 @@
      .			requires_closure(num_state),
      .                      have_exp_digits
 	INTEGER		ALG_CLASS, TM_LENSTR1,
-     .			tlen, p, state, last_state, class,
+     .			tlen, p, state, last_state, last_last_state, class,
      .			i, next_state(num_class,num_state),
-     .			brkt_nest_level, pn
+     .			brkt_nest_level, pn, 
+     .			curly_brace_nest, q_in_curly_brace
+
 
 * possible states of lexical analysis
 *	S1 - looking for start of atom
@@ -89,6 +95,10 @@
 *	S11- ignoring characters inside {}
 *	S12- inside of double quote pair
 *	S13- interpreting exponent, found exponential value
+*	S14- interpreting "_" as a possible quote signal
+*	S15- inside of _DQ_ (alt double quote) pair
+*	S16- inside of _SQ_ (alt single quote) pair
+
 
 *	-1 ==> Syntax Error
 *	-2 ==> Illegal Character
@@ -97,7 +107,7 @@
 * classes of characters
 *	C1 - + -
 *	C2 - digits
-*	C3 - letters _ _
+*	C3 - letters
 *	C4 - [
 *	C5 - ]
 *	C6 - * / ^ , (
@@ -109,34 +119,43 @@
 *	C12- {
 *	C13- }
 *	C14- "
-*	C15- all others
+*	C15- _
+*	C16- all others
 
 *	... CHARACTER CLASS: next_state(class, last_state) ...
-*             C1 C2 C3 C4 C5 C6 C7 C8 C9 C10C11C12C13C14C15
+*              C1 C2 C3 C4 C5 C6 C7 C8 C9 C10C11C12C13C14C15C16
 	DATA (next_state(i,1),i=1,num_class)
-     .        / 2, 3, 4,-1,-1, 5, 5, 1, 4,  3,10,11,-1,12,-2/
+     .        / 2, 3, 4,-1,-1, 5, 5, 1, 4,  3,10,11,-1,12,14,-2/
 	DATA (next_state(i,2),i=1,num_class)
-     .        / 7, 3, 7, 7, 7, 7, 7, 7, 7,  3, 7, 7, 7, 7,-2/
+     .        / 7, 3, 7, 7, 7, 7, 7, 7, 7,  3, 7, 7, 7, 7,14,-2/
 	DATA (next_state(i,3),i=1,num_class)
-     .        / 7, 3,3,-1,-1, 7, 7, 7, 8,  3, 7,-1,-1, 7,-2/
+     .        / 7, 3, 3,-1,-1, 7, 7, 7, 8,  3, 7,-1,-1, 7,14,-2/
 	DATA (next_state(i,4),i=1,num_class)
-     .        / 7, 4, 4, 6,-1, 7, 7, 7, 4, 4, 7,-1,-1, 7,-2/
+     .        / 7, 4, 4, 6,-1, 7, 7, 7, 4,  4, 7,-1,-1, 7,14,-2/
 	DATA (next_state(i,5),i=1,num_class)
-     .        /-9,-9,-9,-9,-9,-9,-9,-9,-9, -9,-9,-9,-9,-9,-2/
+     .        /-9,-9,-9,-9,-9,-9,-9,-9,-9, -9,-9,-9,-9,-9,14,-2/
 	DATA (next_state(i,6),i=1,num_class)
-     .        / 6, 6, 6, 9, 5, 6, 6, 6, 6,  6, 6, 6, 6, 6, 6/
+     .        / 6, 6, 6, 9, 5, 6, 6, 6, 6,  6, 6, 6, 6, 6,14, 6/
 	DATA (next_state(i,7),i=1,num_class)
-     .        /-9,-9,-9,-9,-9,-9,-9,-9,-9, -9,-9,-9,-9,-9,-2/
+     .        /-9,-9,-9,-9,-9,-9,-9,-9,-9, -9,-9,-9,-9,-9,14,-2/
 	DATA (next_state(i,8),i=1,num_class)
-     .        / 8, 13, 7, 7, 7, 7, 7, 7, 7,  7, 7, 7, 7, 7,-2/
+     .        / 8,13, 7, 7, 7, 7, 7, 7, 7,  7, 7, 7, 7, 7,14,-2/
 	DATA (next_state(i,9),i=1,num_class)
-     .        / 9, 9, 9, 9, 9, 9, 9, 9, 9,  9, 9, 9, 9, 9, 9/
+     .        / 9, 9, 9, 9, 9, 9, 9, 9, 9,  9, 9, 9, 9, 9, 9, 9/
 	DATA (next_state(i,10),i=1,num_class)
-     .        / 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10/
+     .        /10,10,10,10,10,10,10,10,10, 10,10,10,10,10,10,10/
 	DATA (next_state(i,11),i=1,num_class)
-     .        /11,11,11,11,11,11,11,11,11, 11,11,11, 5,11,11/
+     .        /11,11,11,11,11,11,11,11,11, 11,11,11, 5,11,11,11/
 	DATA (next_state(i,12),i=1,num_class)
-     .        / 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12/
+     .        /12,12,12,12,12,12,12,12,12, 12,12,12,12,12,12,12/
+	DATA (next_state(i,13),i=1,num_class)
+     .        /-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1/
+	DATA (next_state(i,14),i=1,num_class)
+     .        /14,14,14,14,14,14,14,14,14, 14,14,14,14,14,14,14/
+	DATA (next_state(i,15),i=1,num_class)
+     .        /15,15,15,15,15,15,15,15,15, 15,15,15,15,15,14,15/
+	DATA (next_state(i,16),i=1,num_class)
+     .        /16,16,16,16,16,16,16,16,16, 16,16,16,16,16,14,16/
 
 
 * which states are not valid on exit (e.g. unclosed braces)
@@ -152,6 +171,9 @@
 	DATA requires_closure(10)/.TRUE. / !S10- inside of single quote pair
 	DATA requires_closure(11)/.TRUE. / !S11- ignoring characters inside {}
 	DATA requires_closure(12)/.TRUE. / !S12- inside of double quote pair
+	DATA requires_closure(13)/.FALSE./ !S13- interpreting exponent
+	DATA requires_closure(14)/.TRUE. / !S14- inside of _QD_ quote pair
+	DATA requires_closure(15)/.TRUE. / !S15- inside of _SQ_ quote pair
 
 * initialize
 *    "was_operand" flags the character of the previous atom to distinguish the
@@ -160,10 +182,13 @@
 	natom = 0
 	p = 0
 	state = 1
+	last_state = 1
 	was_operand = .FALSE.
 	atom_open = .FALSE.
         have_exp_digits = .FALSE.
 	brkt_nest_level = 0
+	curly_brace_nest = 0
+	q_in_curly_brace = 0
 
 * advance to next character
  5	p = p + 1
@@ -177,11 +202,13 @@
 	ENDIF
 	   
 * check next character
- 10	last_state = state
+ 10	last_last_state = last_state  ! so "_" can morph to a letter
+	last_state = state
 	class = ALG_CLASS( text(p:p) )
 
 * determine lexical analysis state to determine next action
  50	state = next_state( class, last_state )
+
 	IF ( state .EQ. -2 ) GOTO 5100
 	IF ( state .EQ. -1 ) GOTO 5200
 	IF ( state .EQ. -9 ) GOTO 5900
@@ -228,9 +255,14 @@
            ENDIF
 	ENDIF
 
+* Curly braces inside quotes inside curly braces
+* Hack to work around the case in ticket 2296
+
+	IF (class.EQ.13 .AND. state.EQ.5 .AND. curly_brace_nest.GT.0) state = 11
+
 * take appropriate action
-*		S1  S2  S3  S4  S5  S6  S7  S8   S9  S10 S11 S12 S13
-	GOTO (9999,100,100,100,500,100,700,100, 900,1000,100,1100,1300)
+*		S1  S2  S3  S4  S5  S6  S7  S8   S9  S10 S11  S12  S13  S14 S15  S16
+	GOTO (9999,100,100,100,500,100,700,100, 900,1000,1100,1200,1300,1400,100,100)
      .								state
 
 * continue to next character
@@ -239,6 +271,11 @@
 * flag the last character of an atom - begin search for next atom
  500	at_end(natom) = p
 	state = 1
+	
+* reset - previous atoms may have had a quote not a pair of quotes inside curly braces
+	curly_brace_nest = 0
+	q_in_curly_brace = 0
+
 	atom_open = .FALSE.
 	GOTO 5
 	
@@ -278,12 +315,30 @@
 	ENDIF
 	GOTO 5
 
+* Curly braces inside quotes inside curly braces
+* Hack to work around the case in ticket 2296
+ 1100	IF (class .EQ. 14 .AND. q_in_curly_brace.EQ.0) ! quote inside curly braces
+     .    q_in_curly_brace = q_in_curly_brace + 1
+
+	IF (class.EQ.12 .AND. q_in_curly_brace.GT.0)   ! further curly brace start found
+     .    curly_brace_nest = curly_brace_nest + 1
+
+	IF (class.EQ.13 .AND. curly_brace_nest.GT.0) THEN  !  curly brace end found
+	   curly_brace_nest = curly_brace_nest - 1
+	   state = 11
+	ENDIF
+	GOTO 5
+
 * double-quoted strings (mod 1/99)
 * this probably violates the theoretical underpinnings of the finite state
 * engine but ... what the heck, it's an easy hack
 * stay in this state until the matching \" is found
 * Note: this crude code cannot deal with nested quotations or escaped quotes
- 1100	IF (class .EQ. 14) THEN		! quote found
+ 1200	IF (class .EQ. 14) THEN		! quote found
+           IF (last_state .EQ. 11 .AND. q_in_curly_brace.GT.0) THEN
+	      state = 11
+	      q_in_curly_brace = q_in_curly_brace - 1
+	   ENDIF
 	   IF (last_state .EQ. 12) THEN      
 	      GOTO 500                 ! closing quote found
 *       ... note that we may still be interpreting names like 'X'[stuff]
@@ -299,6 +354,45 @@
  1300	state = 3
 	GOTO 5
 
+* "_" underscore -- possible indicator of _DQ_ or _SQ_ 
+ 1400	IF ( p .GT. tlen-3 ) THEN
+	   GOTO 1410                ! cant be _DQ_ or _SQ_
+	ELSEIF (text(p:p+3) .EQ. p_DQ_quote) THEN
+	   IF (atom_open. AND. p.EQ.at_start(natom)) THEN
+* ... start of _DQ_ enclosed string
+	      p = p+3
+	      state = 15
+	      GOTO 5
+	   ELSEIF (last_state .EQ. 15) THEN
+* ... this is a closing quote.  We have been inside of _DQ_ enclosed string
+	      p = p+3
+	      GOTO 500
+	   ELSE
+* ... the characters "_DQ_", but not start or end of string
+	      GOTO 1410
+	   ENDIF
+	ELSEIF (text(p:p+3) .EQ. p_SQ_quote) THEN
+	   IF (atom_open. AND. at_start(natom) .EQ. p) THEN
+* ... start of _SQ_ enclosed string
+	      p = p+3
+	      state = 16
+	      GOTO 5
+	   ELSEIF (last_state .EQ. 16) THEN
+* ... this is a closing quote.  We have been inside of _SQ_ enclosed string
+	      p = p+3
+	      state = 4 ! we may have _SQ_X_SQ_[stuff]
+	      GOTO 5
+	   ELSE
+* ... the characters "_SQ_", but not start or end of string
+	      GOTO 1410
+	   ENDIF
+	ENDIF
+
+* ...  go back and try again, treating this underscore like any other letter
+ 1410	   last_state = last_last_state  ! needed?  playing it safe ...
+	   class = 3  ! a letter
+	   GOTO 50
+
 
 * error exits
  5000	status = ferr_syntax
diff --git a/fer/rpn/alg_class.F b/fer/rpn/alg_class.F
index c5d8881..fc8ce32 100644
--- a/fer/rpn/alg_class.F
+++ b/fer/rpn/alg_class.F
@@ -53,6 +53,7 @@
 * 2/03 *kob* - g77 port - g77 won't allow intrinsic functions in PARAMETER
 *                         statements.  use an octal constant instead 
 *       *acm* 3/12 cleanup ifdefs and unnecessary include files
+* 12/14 *sh* "_" is a separate character class needed for _DQ_ and _SQ_
 
 	include	'ferret.parm'
 
@@ -70,7 +71,7 @@
 * classes of characters
 *	C1 - + -
 *	C2 - digits
-*	C3 - letters _ _
+*	C3 - letters
 *	C4 - [
 *	C5 - ]
 *	C6 - * / ^ , (
@@ -82,6 +83,7 @@
 *	C12- {
 *	C13- }
 *	C14- "
+*	C15- _
 *	C15- all others
 
 	IF     ( ctr.EQ.'+' .OR.  ctr.EQ.'-' ) THEN
@@ -91,8 +93,7 @@
 	ELSEIF ( ctr.EQ.'E' .OR.  ctr.EQ.'e' ) THEN
 	   ALG_CLASS = 9
 	ELSEIF ( ( ctr.GE.'A' .AND. ctr.LE.'Z' )
-     .	    .OR. ( ctr.GE.'a' .AND. ctr.LE.'z' )
-     .	    .OR. ( ctr.EQ.'_'  .OR. ctr.EQ.'_' )	) THEN
+     .	    .OR. ( ctr.GE.'a' .AND. ctr.LE.'z' ) ) THEN
 	   ALG_CLASS = 3
 	ELSEIF ( ctr.EQ.'[' ) THEN
 	   ALG_CLASS = 4
@@ -115,8 +116,10 @@
 	   ALG_CLASS = 13
 	ELSEIF ( ctr.EQ.'"' ) THEN
 	   ALG_CLASS = 14
-	ELSE
+	ELSEIF ( ctr.EQ.'_' ) THEN
 	   ALG_CLASS = 15
+	ELSE
+	   ALG_CLASS = 16
 	ENDIF
 
 	RETURN
diff --git a/fer/rpn/alg_id.F b/fer/rpn/alg_id.F
index ba5c136..780d456 100644
--- a/fer/rpn/alg_id.F
+++ b/fer/rpn/alg_id.F
@@ -65,6 +65,7 @@
 *		   zero as valid. 
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 * V685+ 12/13 *acm*  bounds checking: tm_digit needs more care in the argument sent in.
+* V693+ 12/14 *sh* allow _QD_ and _SQ_ for quotation alternatives 
 
         include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -80,7 +81,7 @@
 	CHARACTER*(*)	text
 
 * internal variable declarations:
-	LOGICAL		TM_DIGIT, TM_LEGAL_NAME, is_digit
+	LOGICAL		TM_DIGIT, TM_LEGAL_NAME, is_digit, single_quoted
 	INTEGER		STR_MATCH, GCF_FIND_FCN, TM_LENSTR1,
      .			imatch, i, i2, j, brac_pos, aend,
      .			num_indices, dot, new_nat, first, second, slen
@@ -202,6 +203,19 @@
 	      GOTO 100
 	   ENDIF
 
+* string in _DQ_ style double quotes? 
+	  IF (at_end(i)-at_start(i)+1 .GE. 8) THEN
+	     IF ( text(at_start(i):at_start(i)+3).EQ.p_DQ_quote
+     .	    .AND. text(at_end(i)-3:at_end  (i)  ).EQ.p_DQ_quote ) THEN
+	         at_type(i) = alg_string
+!*   ... trim string to have only a simple enclosing "_"
+!	         at_start(i) = at_start(i) + 3  
+!	         at_end  (i) = at_end  (i) - 3
+	         at_id(i)   = unspecified_int4
+	         GOTO 100
+	      ENDIF
+	   ENDIF
+
 * attribute value variable.attname (will check later whether the
 * variable is in a netCDF dataset and whether the attribute exists)
 
@@ -243,6 +257,14 @@ c     .          at_end(i) - at_start(i)+1 ) THEN
               IF (first .GT. 0 .AND. second .GT. 0 .AND. 
      .            dot .GT. first .AND. dot .LT. second) GOTO 99
 
+* identical logic to the previous check, but now looking for _SQ_-enclosed name
+              first = INDEX(varname, p_SQ_quote)
+              second = 0
+              IF (slen .GT. 4) second = INDEX(varname(5:at_end(i)), p_SQ_quote )
+              
+              IF (first .GT. 0 .AND. second .GT. 0 .AND. 
+     .            dot .GT. first .AND. dot .LT. second) GOTO 99
+
 * Otherwise this is a varname.attname  
               at_type(i) = alg_attrib_val
 	      at_id(i)   = unspecified_int4
@@ -277,8 +299,11 @@ c     .          at_end(i) - at_start(i)+1 ) THEN
 	   ENDIF
 
 * cant identify it - we will call it an variable for now
-  99	   IF (text(at_start(i):at_start(i)) .NE. "'" ) THEN
-* (7/98) only check name if it is not in quotation marks
+* check for legal name not enclosed in quotation marks or _SQ_
+ 99	   single_quoted = text(at_start(i):at_start(i)) .EQ. "'"
+	   IF (.NOT.single_quoted .AND. at_end(i)-at_start(i).GE.7)
+     .         single_quoted = text(at_start(i):at_start(i)+3) .EQ. p_SQ_quote
+	   IF (.NOT.single_quoted) THEN
 	     IF ( .NOT.TM_LEGAL_NAME(text(at_start(i):aend)) ) GOTO 5100
 	   ENDIF
 	   at_type(i) = alg_variable
diff --git a/fer/rpn/break_varattname.F b/fer/rpn/break_varattname.F
index 62b68e4..1c0814f 100644
--- a/fer/rpn/break_varattname.F
+++ b/fer/rpn/break_varattname.F
@@ -83,7 +83,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.
 
         tlen = TM_LENSTR(text)
 
@@ -225,9 +225,9 @@
 * which just depends on that data set
 
         IF (status  .NE. ferr_ok) THEN
-           dset = -1
+           dset = pdset_uvars
            CALL CD_GET_VAR_ID (dset, varname, varid, status)
-           IF (status .EQ. ferr_ok) dset = -1
+           IF (status .EQ. ferr_ok) dset = pdset_uvars
         ENDIF
 
         IF (status .NE. ferr_ok .AND. 
diff --git a/fer/rpn/break_varname.F b/fer/rpn/break_varname.F
index d8de0f9..63e5d14 100644
--- a/fer/rpn/break_varname.F
+++ b/fer/rpn/break_varname.F
@@ -48,6 +48,7 @@
 *                 it may  be a user var(as in break_varattname, where the bug
 *                 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
 
         include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -139,6 +140,7 @@
            dset_try = -1
            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
         ENDIF
 
 
diff --git a/fer/rpn/init_uvar.F b/fer/rpn/init_uvar.F
index 6768e1e..65ca93f 100644
--- a/fer/rpn/init_uvar.F
+++ b/fer/rpn/init_uvar.F
@@ -93,6 +93,8 @@
 *                  use when writing out user-defined variables when MODE UPCASE_OUTPUT 
 *                  is cancelled.
 *       *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
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'	
@@ -206,6 +208,14 @@
 * ...(10/99)also treat sst[y=5s:5n:1] as a "complex" argument (has impl grid)
 	      istart = at_start (gc_arg_start)
 	      iend   = at_end   (gc_arg_start)
+
+	      IF ( at_type(gc_arg_start) .EQ. alg_attrib_val) THEN
+* ... make a varname.attname argument into a separate child variable
+	         child_start = gc_arg_start
+	         child_end = iat - 1
+	         GOTO 800
+              ENDIF
+
 	      IF ( (at_type(gc_arg_start) .EQ. alg_child_var)
      .	     .OR.  ( (iat .EQ. gc_arg_start+1)
      .         .AND. (at_type(gc_arg_start) .NE. alg_constant)
diff --git a/fer/rpn/init_uvar_sub.F b/fer/rpn/init_uvar_sub.F
index 944b51e..6a7029d 100644
--- a/fer/rpn/init_uvar_sub.F
+++ b/fer/rpn/init_uvar_sub.F
@@ -63,7 +63,7 @@
 * 1/03 *kob* g77 port - requires use of risc_buff for concats
 *            bug fix - reference to uvar_text was missing uvar reference 
 * V600  4/06 *acm* - additional declarations found by Solaris compiler     
-* V601 11/06 *acm* - add user variables always to dataset -1. Previously
+* V601 11/06 *acm* - add user variables always to dataset pdset_uvars. Previously
 *                    variables defined with LET/D= were added to that dataset.
 * V602  2/07 *acm* Fix bug 1492, changing attributes of coordinate variables 
 * V62   2/09 *acm* Pass the original upper/lowercase spelling of user-defined variable
@@ -74,6 +74,8 @@
 * V671 7/11  *acm* Ticket 1868 IFV - masking expressions with ifValid, treating 
 *		   zero as valid. 
 *       *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
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'	
@@ -99,9 +101,11 @@
 	CHARACTER	err_string*255, c*1, attname*128
 
 * internal parameter declarations
-	INTEGER		p_single_quote, p_double_quote
+	INTEGER		p_single_quote, p_double_quote, p__DQ_, p__SQ_
 	PARAMETER     ( p_single_quote = 1,
-     .			p_double_quote = 2 )
+     .			p_double_quote = 2,
+     .			p__DQ_         = 3,
+     .			p__SQ_         = 4 )
 
 * kob 9/30/98 This needed for 7/7/98 code addition
 #ifdef FORTRAN_90
@@ -136,7 +140,9 @@
 	uvar_text(uvar) = ' '
 	i2 = 0
 	inquote = .FALSE.
-	DO 100 i = txstart, txend
+	i = txstart - 1
+	DO WHILE (i .LT. txend)
+	   i = i + 1
 	   i2 = i2 + 1
 	   c = text(i:i)
 	   IF ( c .EQ. "'" ) THEN
@@ -155,6 +161,31 @@
 		inquote = .TRUE.
 	        quote_type = p_double_quote
 	      ENDIF
+	   ELSEIF ( txend-txstart .GT. 7 .AND. i.LE.txend-3 ) THEN 
+	      iat = 1
+	      IF (text(i:i+3) .EQ. p_DQ_quote) THEN 
+* ... found "_DQ_" -- start or end of string?
+	        IF (inquote) THEN
+	          IF (quote_type.EQ.p__DQ_) inquote = .FALSE.
+	        ELSE
+		  inquote = .TRUE.
+	          quote_type = p__DQ_
+	        ENDIF
+	        uvar_text(uvar)(i2:i2+2) = text(i:i+2)
+	        i  = i  + 3
+	        i2 = i2 + 3
+	      ELSEIF (text(i:i+3) .EQ. p_SQ_quote) THEN 
+* ... found "_SQ_" -- start or end of string?
+	        IF (inquote) THEN
+	          IF (quote_type.EQ.p__SQ_) inquote = .FALSE.
+	        ELSE
+		  inquote = .TRUE.
+	          quote_type = p__SQ_
+	        ENDIF
+	        uvar_text(uvar)(i2:i2+2) = text(i:i+2)
+	        i  = i  + 3
+	        i2 = i2 + 3
+	      ENDIF
 	   ENDIF
 	   IF ( inquote .OR. (c .LT. 'a' .OR. c .GT. 'z' ) ) THEN
 	      uvar_text(uvar)(i2:i2) = c   ! preserve case
@@ -174,7 +205,7 @@
 # endif
 #endif
 	   ENDIF
- 100	CONTINUE
+	ENDDO
 * (7/98) end of quote-sensitive case changing loop
 
 c* copy title, units, dset, and missing flag into buffers
@@ -193,7 +224,7 @@ c* copy title, units, dset, and missing flag into buffers
        type = 0
        coordvar = 0
        IF (name(1:3) .NE. 'EX#' .AND. .NOT.child) THEN
-          dset_to_add = -1  ! user-variable dataset.
+          dset_to_add = pdset_uvars  ! user-variable dataset.
 
           err_string = title  ! save the value and restore below
           IF (TM_LENSTR(title) .LT. 1) title = uvar_text(uvar)
diff --git a/fer/special/ferret_dispatch.F b/fer/special/ferret_dispatch.F
index 6a03daf..1c95fd7 100644
--- a/fer/special/ferret_dispatch.F
+++ b/fer/special/ferret_dispatch.F
@@ -117,7 +117,8 @@
 * V664 *kms* 8/10 Add second alternate return from XEQ_EXIT to exit the dispatch
 *                 loop but just re-enter the loop if not under pyferret
 *       *acm* 3/12 removing use USER command
-*V685 *acm* 11/13 Issue an ERROR not a NOTE if USER command is tried.
+* V685 *acm* 11/13 Issue an ERROR not a NOTE if USER command is tried.
+* V695 *acm*  6/16 New ANNOTATE command.
 
 	include 'tmap_dims.parm'
 	include 'xalt_messages.cmn_text'
@@ -196,7 +197,7 @@ c	DO 2 i = 1, 200
 
 	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 ) cmnd_num
+     .          210,220,230,240,250,260,270,280 ) cmnd_num
 
  10	CALL XEQ_SET( memory, reconfig )
 	IF ( reconfig .NE. 0 ) GOTO 400
@@ -254,6 +255,8 @@ c	DO 2 i = 1, 200
 	GOTO 300
  270	CALL XEQ_POLYGON( memory )
 	GOTO 300
+ 280	CALL XEQ_ANNOTATE
+	GOTO 300
 
 * finished a single command
  300	gui_action = factn_no_action	! default
diff --git a/fer/stk/SOURCE_FILES b/fer/stk/SOURCE_FILES
index ffeb4e0..060104d 100644
--- a/fer/stk/SOURCE_FILES
+++ b/fer/stk/SOURCE_FILES
@@ -1,6 +1,8 @@
 SRCS_F = \
 aux_regrid_lims.F\
 aux_regrid_lims_1d.F\
+aux_regrid_lims_1d_t.F\
+aux_regrid_lims_2d_tf.F\
 bad_edges.F\
 bad_edges_sub.F\
 bad_ptr_edges_sub.F\
diff --git a/fer/stk/aux_regrid_lims.F b/fer/stk/aux_regrid_lims.F
index 5356716..42311f6 100644
--- a/fer/stk/aux_regrid_lims.F
+++ b/fer/stk/aux_regrid_lims.F
@@ -49,27 +49,56 @@
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
 
-*V685 4/13 *sh*
+*V685  4/13 *sh*
+*V689+ 3/15 *sh* added T-axis F-T orthoganalization
+*      5/15 *sh* generalize to allow 1D aux vars on all axes
 
-	IMPLICIT NONE
+	include 'tmap_dims.parm'
+	include 'implicit.parm'
+	include	'ferret.parm'
 	include	'errmsg.parm'
+	include	'xcontext.cmn'
+	include	'xvariables.cmn'
 
 * calling argument declarations:
 	INTEGER	src_cx, axis, dst_cx, naxis, axis_list(*), status,
      .		mr1, cx1, mr2, cx2, mr3, cx3 
         REAL*8  aux1(*), aux2(*), aux3(*)
 
+* internal variable declarations
+	INTEGER	axis1, axis2
+
 
 * this is just a dispatch routine that fans out to routines
 * based upon the number of dimensions in the regridding
-
+	axis1 = axis_list(1)
+	axis2 = axis_list(2)
 	IF ( naxis .EQ. 1 ) THEN
-	   CALL AUX_REGRID_LIMS_1D( dst_cx, src_cx, axis_list, naxis,
-     .			            aux1, mr1, cx1, status )
+	   IF ( axis1 .EQ. t_dim
+     .    .AND. cx_regrid_trans(axis1,dst_cx) .EQ. pauxrgrd_fmrc) THEN
+	      CALL AUX_REGRID_LIMS_1D_T( dst_cx, src_cx, axis1, naxis,
+     .			                 aux1, mr1, cx1, status )
+	   ELSE
+	      CALL AUX_REGRID_LIMS_1D( dst_cx, src_cx, axis1,
+     .				 mr_lo_ss(mr1,axis1), mr_hi_ss(mr1,axis1),
+     .			         aux1, mr1, cx1, status )
+	   ENDIF
 	   IF (status .NE. ferr_ok) GOTO 5000
+
+	ELSEIF (naxis .EQ. 2) THEN
+	   IF ( axis1.EQ.t_dim .AND. axis2.EQ.f_dim) THEN
+	      CALL AUX_REGRID_LIMS_2D_TF( dst_cx, src_cx, axis_list, naxis,
+     .			                 aux1, mr1, cx1, status )
+	   ELSE
+	      CALL ERRMSG(ferr_too_many_args, status,
+     .		'only 1D auxiliary variable regridding available at this time',
+     .		 *5000 )
+	   ENDIF
+
 	ELSE
-* TEMPORARY: insert routine to get 2D curvilinear index bounds here 
-	   CALL ERRMSG(ferr_internal, status, 'aux_regrid_lims', *5000 )
+	      CALL ERRMSG(ferr_too_many_args, status,
+     .		'only 1D auxiliary variable regridding available at this time',
+     .		 *5000 )
 	ENDIF
 
 * success
@@ -78,4 +107,7 @@
 
 * error exit
  5000	RETURN
+! 5100	CALL ERRMSG( ferr_invalid_command, status,
+!     .     '1-dim auxiliary variable regrid allowed'//
+!     .	   ' on Z and T axes only', *5000)
 	END
diff --git a/fer/stk/aux_regrid_lims_1d.F b/fer/stk/aux_regrid_lims_1d.F
index 9340576..747cbb7 100644
--- a/fer/stk/aux_regrid_lims_1d.F
+++ b/fer/stk/aux_regrid_lims_1d.F
@@ -1,5 +1,6 @@
-	SUBROUTINE AUX_REGRID_LIMS_1D( dst_cx, src_cx, axis_list, naxis,
-     .			               aux1, mr1, cx1, status )
+	SUBROUTINE AUX_REGRID_LIMS_1D( dst_cx, src_cx,
+     .				       the_axis, axloss, axhiss,
+     .			               aux, aux_mr, aux_cx, status )
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -46,7 +47,7 @@
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
 
-*V690 3/13-1/14 *sh*
+*v695+ 3/15 *sh* from AUX_REGRID_LIMS_1D_Z
 
 	IMPLICIT NONE
 
@@ -59,23 +60,37 @@
 	include	'xmem_subsc.cmn'
 
 * calling argument declarations:
-	INTEGER	src_cx, axis, dst_cx, naxis, axis_list(naxis), status,
-     .		mr1, cx1, mr2, cx2, mr3, cx3 
-        REAL*8  aux1(m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
-     .               m1lot:m1hit,m1loe:m1hie,m1lof:m1hif )
+	INTEGER	src_cx, axis, dst_cx, the_axis, axloss, axhiss, status,
+     .		aux_mr, aux_cx
+        REAL*8  aux(m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
+     .              m1lot:m1hit,m1loe:m1hie,m1lof:m1hif )
+	REAL*8 line(axloss:axhiss)
 
 * internal variable declarations:
-	LOGICAL increasing, increasing_here, looking_for_first
+	LOGICAL increasing, looking_for_first
 	INTEGER	KNOWN_GRID, 
      .		idim, src_grid, i, j, k, l, m, n, trans,
-     .		kdstmin, kdstmax, kkmin, kkmax, klo, khi, kdel
+     .		kdstmin, kdstmax, ss, ssmin, ssmax, klo, khi, kdel,
+     .		ss_lo(nferdims), ss_hi(nferdims), n_incr, n_decr
 	REAL*8  TM_WORLD, axmax, axmin, v, v1, bad_aux
 
 * initialize
-	bad_aux = mr_bad_data( mr1 )
+	bad_aux = mr_bad_data( aux_mr )
+	trans = cx_regrid_trans(the_axis,src_cx)
+
+* capture the data range and modify the target axis to a single point
+	DO idim = 1, nferdims
+	  ss_lo(idim) = cx_lo_ss(aux_cx, idim)
+	  ss_hi(idim) = cx_hi_ss(aux_cx, idim)
+	ENDDO
+	axloss = ss_lo(the_axis)
+	axhiss = ss_hi(the_axis)
+* ... a dummy loop on the designated axis
+	ss_lo(the_axis) = 1
+	ss_hi(the_axis) = 1
 
 * insert source grid (the defining grid for this variable)
-* TEMPORARY -- ?move this block of code to AUX_VAR_REGRID when 2D curv is added?
+* XXXX TEMPORARY -- ?move this block of code to AUX_VAR_REGRID when 2D curv is added?
 	src_grid = KNOWN_GRID( cx_data_set(src_cx),
      .			       cx_category(src_cx),
      .			       cx_variable(src_cx)  )
@@ -83,78 +98,75 @@
 	cx_unstand_grid( src_cx ) = .FALSE.
 	is_phase( isp )   = prgrd_from_source
 	cx_naux( src_cx ) = 0
-        DO 100 idim = 1, nferdims
+        DO idim = 1, nferdims
            cx_aux_var  (idim, src_cx) = unspecified_int4
            cx_aux_cat  (idim, src_cx) = unspecified_int4
            cx_aux_stat (idim, src_cx) = paux_stat_na
- 100    CONTINUE
-	trans = cx_regrid_trans(z_dim,src_cx)    !  TEMPORARY: z_dim HARD CODED!!!
+	ENDDO
 
-* increasing or decreasing? determine by finding and examining
-* the first two valid values encountered in any column of the indicated axis
-        DO 110 n = cx_lo_s6(cx1), cx_hi_s6(cx1)
-        DO 110 m = cx_lo_s5(cx1), cx_hi_s5(cx1)
-        DO 110 l = cx_lo_s4(cx1), cx_hi_s4(cx1)
-        DO 110 j = cx_lo_s2(cx1), cx_hi_s2(cx1)
-        DO 110 i = cx_lo_s1(cx1), cx_hi_s1(cx1)
-	   looking_for_first = .TRUE.
-           DO 105 k = cx_lo_s3(cx1), cx_hi_s3(cx1)
-	      v = aux1(i,j,k,l,m,n)
-	      IF (v .EQ. bad_aux) THEN
-	         GO TO 105
-	      ELSEIF (looking_for_first) THEN
-	         v1 = v
-	         looking_for_first = .FALSE.
-	      ELSE
-	         increasing = v .GT. v1
-	         GOTO 112
-	      ENDIF
- 105	   CONTINUE
- 110	CONTINUE
-* ... no line of this data had 2 valid values!  But continue anyway
+* Weak test to determine increasing or decreasing by finding the first column
+* that has a clear order.   NOTE:  This test can give wrong answers on
+* pathological fields with differing order columns
+	
+	DO 110 n = ss_lo(6),ss_hi(6)
+	DO 110 m = ss_lo(5),ss_hi(5)
+	DO 110 l = ss_lo(4),ss_hi(4)
+	DO 110 k = ss_lo(3),ss_hi(3)
+	DO 110 j = ss_lo(2),ss_hi(2)
+	DO 110 i = ss_lo(1),ss_hi(1)
 
-* make sure that the auxiliary variable is monotonic
-* note:  missing values in the array are allowed, but only at the edges
-*        If a missing value is encountered in the body of the auxiliary var
-*        regridding will not proceed beyong that subscript in the regrid line
- 112	DO 120 n = cx_lo_s6(cx1), cx_hi_s6(cx1)
-        DO 120 m = cx_lo_s5(cx1), cx_hi_s5(cx1)
-        DO 120 l = cx_lo_s4(cx1), cx_hi_s4(cx1)
-        DO 120 j = cx_lo_s2(cx1), cx_hi_s2(cx1)
-        DO 120 i = cx_lo_s1(cx1), cx_hi_s1(cx1)
+* ... get a column of data
+	   CALL EXTRACT_ARG1_LINE( aux, the_axis, axloss, axhiss,
+     .				   i, j, k, l, m, n, line )
+
+	   n_incr = 0
+	   n_decr = 0
 	   looking_for_first = .TRUE.
-           DO 115 k = cx_lo_s3(cx1), cx_hi_s3(cx1)
-	      v = aux1(i,j,k,l,m,n)
+           DO ss = axloss, axhiss
+	      v = line(ss)
 	      IF (v .EQ. bad_aux) THEN
-	         IF (looking_for_first) GOTO 115
+	         GO TO 110
 	      ELSEIF (looking_for_first) THEN
 	         v1 = v
 	         looking_for_first = .FALSE.
 	      ELSE
-	         increasing_here = v .GT. v1
-	         IF (increasing .NEQV. increasing_here) GOTO 5100  ! not monot.
+	         IF (v .GT. v1) THEN
+	            n_incr = n_incr + 1
+	         ELSE
+	            n_decr = n_decr + 1
+	         ENDIF
 	         v1 = v
 	      ENDIF
- 115	   CONTINUE
- 120	CONTINUE
+	   ENDDO
+
+* ... is there a clear ordering to this column of auxilinary coordinates?
+	   IF ((n_incr.GE.1 .OR. n_decr.GE.1)
+     .   .AND. (n_incr .NE. n_decr          )  ) THEN
+	    increasing = n_incr .GE. n_decr  
+	    GOTO 130
+	   ENDIF
 
+ 110	CONTINUE
 
 ***** determine the minimal index limits needed to do the regrid *****
 * SINGLE AXIS CODE ONLY (GET_CONTEXT_MODS setup to dis-allow multiple args for now)
 * ... what are the desired world coordinate limts?
- 130	idim    = axis_list(1)	! since this is 1D regridding
-	kdstmin = cx_lo_ss ( dst_cx, idim )
-	kdstmax = cx_hi_ss ( dst_cx, idim )
-	IF (trans .EQ. pauxrgrd_linear 
-     . .OR. trans .EQ. unspecified_int4  ) THEN
-* ... linear interp requires source data below/above target grid point coordinate
+ 130	kdstmin = cx_lo_ss ( dst_cx, the_axis )
+	kdstmax = cx_hi_ss ( dst_cx, the_axis )
+	IF (cx_aux_stat(the_axis,dst_cx) .EQ. paux_stat_false_1pt_regrid) THEN
+* ... false 1pt regridding (no target axis ... just a single point value)
+	   axmin = cx_lo_ww(the_axis, dst_cx)
+	   axmax = cx_hi_ww(the_axis, dst_cx)
+	ELSEIF (trans .EQ. pauxrgrd_linear 
+     .     .OR. trans .EQ. unspecified_int4  ) THEN
+* ... linear interp requires source data below/above target grid point coord
 * ... trans.EQ.unspec is for 3-argument plotting
-	   axmin   = TM_WORLD(kdstmin, cx_grid(dst_cx), idim, box_middle)
-	   axmax   = TM_WORLD(kdstmax, cx_grid(dst_cx), idim, box_middle)
+	   axmin   = TM_WORLD(kdstmin, cx_grid(dst_cx), the_axis, box_middle)
+	   axmax   = TM_WORLD(kdstmax, cx_grid(dst_cx), the_axis, box_middle)
 	ELSEIF (trans .EQ. pauxrgrd_pwlave ) THEN
 * ... averaging over cell requires source data over entire cell (larger region)
-	   axmin   = TM_WORLD(kdstmin, cx_grid(dst_cx), idim, box_lo_lim)
-	   axmax   = TM_WORLD(kdstmax, cx_grid(dst_cx), idim, box_hi_lim)
+	   axmin   = TM_WORLD(kdstmin, cx_grid(dst_cx), the_axis, box_lo_lim)
+	   axmax   = TM_WORLD(kdstmax, cx_grid(dst_cx), the_axis, box_hi_lim)
 	ELSE
 	   CALL ERRMSG( ferr_internal, status, 'unkwn rgrd trans', *5000)
 	ENDIF
@@ -162,87 +174,90 @@
 * reverse the direction of traversing the array for decreasing-ordered data
 * for a decreasing aux array min>max, lo>hi at this stage
 	IF (increasing) THEN
-	   klo   = cx_lo_s3(cx1)
-	   khi   = cx_hi_s3(cx1)
+	   klo   = cx_lo_ss(aux_cx,the_axis)
+	   khi   = cx_hi_ss(aux_cx,the_axis)
 	   kdel  = 1
 	ELSE
-	   khi  = cx_lo_s3(cx1)
-	   klo  = cx_hi_s3(cx1)
+	   khi  = cx_lo_ss(aux_cx,the_axis)
+	   klo  = cx_hi_ss(aux_cx,the_axis)
 	   kdel = -1
 	ENDIF
-	kkmin = khi
-	kkmax = klo 
+	ssmin = khi
+	ssmax = klo 
 
 * find the smallest index range in the aux array that contains all of the aux
 * values lying within the axmin to axmax value range on the destination axis 
-* ==> CODE ONLY WORKS FOR Z AXIS               AT THIS STAGE !!!
+	DO 290 n = ss_lo(6),ss_hi(6)
+	DO 290 m = ss_lo(5),ss_hi(5)
+	DO 290 l = ss_lo(4),ss_hi(4)
+	DO 290 k = ss_lo(3),ss_hi(3)
+	DO 290 j = ss_lo(2),ss_hi(2)
+	DO 290 i = ss_lo(1),ss_hi(1)
 
-        DO 290 n = cx_lo_s6(cx1), cx_hi_s6(cx1)
-        DO 290 m = cx_lo_s5(cx1), cx_hi_s5(cx1)
-        DO 290 l = cx_lo_s4(cx1), cx_hi_s4(cx1)
-        DO 290 j = cx_lo_s2(cx1), cx_hi_s2(cx1)
-        DO 290 i = cx_lo_s1(cx1), cx_hi_s1(cx1)
+* get a column of data
+	   CALL EXTRACT_ARG1_LINE( aux, the_axis, axloss, axhiss,
+     .				   i, j, k, l, m, n, line )
 
 * ... search from low values to high for the upper index limit 
-           DO 210 k = klo, khi, kdel
-	      v = aux1(i,j,k,l,m,n)
+           DO ss = klo, khi, kdel
+	      v = line(ss)
 	      IF ( v .EQ. bad_aux ) THEN
-	         GOTO 210
+	         CYCLE
 	      ELSEIF (v .LT. axmax) THEN
 	         IF ( increasing ) THEN
-	            IF (kkmax .LT. k) kkmax = k
+	            IF (ssmax .LT. ss) ssmax = ss
 	         ELSE
-	            IF (kkmax .GT. k) kkmax = k
+	            IF (ssmax .GT. ss) ssmax = ss
 	         ENDIF
 	      ELSE
-	         GOTO 220
+	         EXIT
 	      ENDIF
- 210       CONTINUE
+	   ENDDO
 
 * ... search from high values to low for the lower index limit 
- 220	   DO 230 k = khi, klo, -1*kdel
-	      v = aux1(i,j,k,l,m,n)
+	   DO ss = khi, klo, -1*kdel
+	      v = line(ss)
 	      IF ( v .EQ. bad_aux ) THEN
-	         GOTO 230
+	         CYCLE
 	      ELSEIF (v .GT. axmin) THEN
 	         IF (increasing) THEN
-	            IF (kkmin .GT. k) kkmin = k
+	            IF (ssmin .GT. ss) ssmin = ss
 	         ELSE
-	            IF (kkmin .LT. k) kkmin = k
+	            IF (ssmin .LT. ss) ssmin = ss
 	         ENDIF
 	      ELSE
 	         GOTO 290
 	      ENDIF
- 230	   CONTINUE
+	   ENDDO
 
  290    CONTINUE
 
 * for decreasing-ordered aux array swap the lo/hi limits just found
 	IF (.NOT.increasing) THEN
-	   k     = kkmin
-	   kkmin = kkmax
-	   kkmax = k
+	   ss    = ssmin
+	   ssmin = ssmax
+	   ssmax = ss
 	ENDIF
 
 * round out, so that regridding interpolations will be possible at the edges
 * (the value tests above were based on strict inequality so we always do this) 
-	IF (kkmin .GT. cx_lo_ss(cx1,idim) ) kkmin = kkmin - 1
-	IF (kkmax .LT. cx_hi_ss(cx1,idim) ) kkmax = kkmax + 1
+	IF (ssmin .GT. cx_lo_ss(aux_cx,the_axis) ) ssmin = ssmin - 1
+	IF (ssmax .LT. cx_hi_ss(aux_cx,the_axis) ) ssmax = ssmax + 1
 
-        cx_lo_ss ( src_cx, idim )  = kkmin
-        cx_hi_ss ( src_cx, idim )  = kkmax
-        cx_by_ss ( idim, src_cx )  = .TRUE.
+        cx_lo_ss ( src_cx, the_axis )  = ssmin
+        cx_hi_ss ( src_cx, the_axis )  = ssmax
+        cx_by_ss ( the_axis, src_cx )  = .TRUE.
 
-        cx_lo_ww ( idim, src_cx )  = unspecified_val8
-        cx_hi_ww ( idim, src_cx )  = unspecified_val8
-        cx_delta ( idim, src_cx )  = unspecified_val8
-        cx_trans ( idim, src_cx )  = trans_no_transform
-        cx_trans_arg(idim,src_cx)  = bad_val4
-        cx_given( idim, src_cx )  = .FALSE.
-        cx_regrid_trans(idim,src_cx) = unspecified_int4 
-        cx_formatted( idim )   = .FALSE.
+        cx_lo_ww ( the_axis, src_cx )  = unspecified_val8
+        cx_hi_ww ( the_axis, src_cx )  = unspecified_val8
+        cx_delta ( the_axis, src_cx )  = unspecified_val8
+        cx_trans ( the_axis, src_cx )  = trans_no_transform
+        cx_trans_arg(the_axis,src_cx)  = bad_val4
+        cx_given( the_axis, src_cx )  = .FALSE.
+        cx_regrid_trans(the_axis,src_cx) = unspecified_int4 
+        cx_formatted( the_axis )   = .FALSE.
 
-	CALL FLESH_OUT_AXIS( idim, src_cx, status )
+	CALL FLESH_OUT_AXIS( the_axis, src_cx, status )
 	IF ( status .NE. ferr_ok ) GOTO 5000
 
 * success
@@ -251,9 +266,7 @@
 
 * error exit
  5000	RETURN
- 5100   CALL ERRMSG( ferr_invalid_command, status,
-     .		'auxiliary regridding coordinates are not monotonic', *5000)
- 5200   CALL ERRMSG( ferr_invalid_command, status,
-     .		'auxiliary regridding coordinate field includes '//
-     .		'missing value(s)', *5000)
+! 5100   CALL ERRMSG( ferr_invalid_command, status,
+!     .		'auxiliary regridding coordinates are too disordered'
+!     .          //pCR//'Need 2:1 ratio ordered:disordered', *5000)
 	END
diff --git a/fer/stk/aux_regrid_lims_1d_t.F b/fer/stk/aux_regrid_lims_1d_t.F
new file mode 100644
index 0000000..3dc0473
--- /dev/null
+++ b/fer/stk/aux_regrid_lims_1d_t.F
@@ -0,0 +1,333 @@
+	SUBROUTINE AUX_REGRID_LIMS_1D_T( dst_cx, src_cx, axis_list, naxis,
+     .			                 aux1, mr1, cx1, 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 handles the special case of forecast model  aggregations
+* It determines the range of souce data on the T axis that is needed to
+* regrid (reorganize) the 2D time array into a 1D time
+* (orthogonal F and T axes) form
+
+* In generic terms, the descript of the routine is this:
+* Given a context describing data to be regridded to a destination grid
+* create the description of the needed source data in the source context
+* Use the auxiliary variables to determine the index range of data needed
+
+* The 2D time field is the auxiliary regrid control variable. It contains
+* times that are partially duplicated from one forecat index to the next
+* The orthoganalization process removes the duplication by shifting the start
+* time index of each successive forcast, so that all forecasts lie on the
+* same-single time axis
+
+* When called the source context should be a copy of the destination context 
+
+* programmer - steve hankin
+* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
+
+*v695+ 3/15 *sh* patterned after AUX_REGRID_LIMS_1D_Z
+
+	IMPLICIT NONE
+
+	include 'tmap_dims.parm'
+	include 'implicit.parm'
+	include	'ferret.parm'
+	include	'errmsg.parm'
+	include	'xcontext.cmn'
+	include	'xvariables.cmn'
+	include	'xmem_subsc.cmn'
+	include 'xtm_grid.cmn_text'    ! to sanity check T axis
+
+
+* calling argument declarations:
+	INTEGER	src_cx, axis, dst_cx, naxis, axis_list(naxis), status,
+     .		mr1, cx1, mr2, cx2, mr3, cx3
+        REAL*8  aux1(m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
+     .               m1lot:m1hit,m1loe:m1hie,m1lof:m1hif )
+
+* internal variable declarations:
+	INTEGER	KNOWN_GRID, CGRID_AXIS,
+     .		idim, src_grid, i, j, k, l, m, n, trans,
+     .		ndim, dim(nferdims), t_axis,
+     .		ldstmin, ldstmax, llmin, llmax, llo, lhi, ldel,
+     .		nlo, nhi, nmin, nmax, looking_for_first
+	REAL*8  TM_WORLD, axmax, axmin, bad_aux, t, t1, delta,
+     .		tdstrt, tdend, tstepmin, tstepmax
+
+* initialize
+	bad_aux = mr_bad_data( mr1 )
+!	idim     = axis_list(1)
+	llo      = cx_lo_s4(cx1)   ! 2d time array limit - should always be 1
+	lhi      = cx_hi_s4(cx1)   ! should always be N
+	nlo      = cx_lo_s6(cx1)   ! lowest forecast index - specified by user
+	nhi      = cx_hi_s6(cx1)   ! highest forecast index - specified by user
+	i        = cx_lo_s1(cx1)   ! fixed index since aux field is 2d
+	j        = cx_lo_s2(cx1)
+	k        = cx_lo_s3(cx1)
+	m        = cx_lo_s5(cx1)
+	tstepmin = aux1(i,j,k,llo,m,nlo) ! low-left corner of 2d time array
+	tstepmax = aux1(i,j,k,lhi,m,nhi) ! upper right
+	tdstrt   = TM_WORLD(cx_lo_s4(dst_cx), cx_grid(dst_cx),
+     .			  t_dim, box_middle) ! 'd' for destination start time
+	tdend    = TM_WORLD(cx_hi_s4(dst_cx), cx_grid(dst_cx),
+     .			  t_dim, box_middle)
+	llmin  = llo	! initial default
+	llmax  = lhi
+	nmin   = nlo
+	nmax   = nhi 		
+
+* insert source grid (the defining grid for this variable)
+* XXXX TEMPORARY -- ?move this block of code to AUX_VAR_REGRID when 2D curv is added?
+	src_grid = KNOWN_GRID( cx_data_set(src_cx),
+     .			       cx_category(src_cx),
+     .			       cx_variable(src_cx)  )
+	cx_grid( src_cx ) = src_grid
+	cx_unstand_grid( src_cx ) = .FALSE.
+	is_phase( isp )   = prgrd_from_source
+	cx_naux( src_cx ) = 0
+        DO 100 idim = 1, nferdims
+           cx_aux_var  (idim, src_cx) = unspecified_int4
+           cx_aux_cat  (idim, src_cx) = unspecified_int4
+           cx_aux_stat (idim, src_cx) = paux_stat_na
+ 100    CONTINUE
+
+* to support monthly times, the target axis may be irregular
+!* sanity check the target T axis
+!	t_axis = CGRID_AXIS(t_dim,dst_cx)
+!	IF (.NOT. line_regular(t_axis)) GOTO 5050
+!	IF (lhi .GT. llo) THEN
+!	   IF ( line_delta(t_axis)
+!     .	   .NE.(aux1(i,j,k,llo+1,m,nlo)-aux1(i,j,k,llo,m,nlo))) GOTO 5060
+!	ENDIF
+
+* ideally we should check that the units of the 2D time field are the same as the units of the
+* 1D time axis, but since typically Ferret code is creating the 1d time, we'll allow laziness
+
+* this routine only for t_dim -- index-based remapping of time locations
+	trans = cx_regrid_trans(t_dim,src_cx)
+	IF (trans .NE. pauxrgrd_fmrc) 
+     .	  CALL ERRMSG( ferr_internal, status, 'unkwn rgrd trans', *5000)
+
+* make sure that the auxiliary variable is monotonic spaced
+*	The 2D time array can never theoretically be non-monotonic
+*       but FT aggregations are new and unreliable
+	DO n = nlo, nhi
+	   looking_for_first = 0
+           DO l = llo, lhi
+	      t = aux1(i,j,k,l,m,n)
+	      IF (t .EQ. bad_aux) THEN
+	         GOTO 5150
+	      ELSEIF (looking_for_first.EQ.0) THEN
+	         t1 = t
+	         looking_for_first = 1
+	      ELSE
+	         IF (looking_for_first.EQ.1) THEN
+!	            delta = t-t1
+!	            IF (delta .LT. 0.0) GOTO 5100
+	            IF (t .LE. t1) GOTO 5100
+	            looking_for_first = 2
+                 ENDIF
+!	         IF (delta .NE. (t-t1)) GOTO 5100
+	         t1 = t
+	      ENDIF
+	   ENDDO
+	ENDDO
+
+* the relationship between the time steps in the 2D aux time field (cx1)
+* and the same times in the destination field looks something
+* like this over 3 forecast cycles
+
+*   **     2d aux times    **	      ** orthoganalized T-F field **
+*								115
+*                       		               1013	114
+*                       		        1012   1012	113
+*                       		        1011   1011	112
+*                       		       >1010   1010	111
+*                       		        1009   1009	110
+*   18     1008   1012   1016		 1008   1008   1008	109
+*   17     1007   1011   1015		 1007   1007		108
+*   16     1006  >1010   1014		 1006   1006		107
+*   15     1005   1009   1013		 1005  >1005		106
+*   14     1004   1008   1012		 1004   1004		105
+*   13     1003   1007   1011		 1003			104
+*   12     1002   1006   1010		 1002			103
+*   11     1001  >1005   1009		 1001			102
+*   10     1000   1004   1008		 1000			101
+*    |								  |
+* l in src_cx						    l in dst_cx 
+
+* say that the requested time range is T=1005:1010
+* The lowest L index of source data needed is the index at which the START time
+*    is first encountered as we loop down the forecasts searching lo to hi
+* The highest L index of source data needed is the index at which the END  time
+*    is first encountered as we loop up   the forecasts searching hi to lo
+
+
+* This commented out block of code increases efficiency by requesting only
+* only the F-range that contains data relevant to the requested T-range.
+* However, doing so causes the regrid operation to alter the N range.
+* Since this is a 1D T regrid operation, "var[GT(time2d)=t1d]", it is not
+* appropriate to alter the F range.  The efficiency loss effects only a minor
+* situation in which for whatever reason the user has requested N-indices of
+* pure missing data.
+!* bail out if the requested min exceeds the available range or similar max
+!	IF (tdstrt .GT. tstepmax
+!     .  .OR. tdend .LT. tstepmin ) THEN
+!* ... no regridding is possible - result will be a field of missing data
+!* ... provide a nominal data region that is not trouble to get
+!	   llmax = llmin  ! request a single point region only of source data
+!	   nmax  = nmin
+!	   GOTO 500
+!	ENDIF
+!
+!* determine the minimal forecast index range (i.e. with relevant timesteps)
+!	DO n = nlo, nhi
+!	   t  = aux1(i,j,k,llo,m,n)
+!	   t1 = aux1(i,j,k,lhi,m,n)
+!	   IF (t1 .GE. tdstrt
+!     .   .AND. t  .LE. tdend  ) THEN
+!* ... found first forecast with relevant time steps
+!	      nmin = n
+!	      EXIT
+!	   ENDIF
+!	ENDDO
+!	DO n = nhi, nlo, -1
+!	   t  = aux1(i,j,k,llo,m,n)
+!	   t1 = aux1(i,j,k,lhi,m,n)
+!	   IF (t1 .GE. tdstrt
+!     .   .AND. t  .LE. tdend  ) THEN
+!* ... found last forecast with relevant time steps
+!	      nmax = n
+!	      EXIT
+!	   ENDIF
+!	ENDDO
+!	IF (nmin .GT. nmax) nmax = nmin
+
+
+***** determine the minimal src time index range needed to do the regrid *****
+
+* find the lowest index of source data that needs to be requested
+	IF (tdstrt .LT. tstepmin) THEN
+	   CONTINUE	   ! keep llmin
+	ELSE
+* ... search aux times from low values to high n index for the start time
+	   n = nmax + 1
+	   DO WHILE (n > nmin)
+              n = n - 1           ! loop *down* F indices
+	      DO l = llo, lhi     ! loop *up*   T indices
+	         t = aux1(i,j,k,l,m,n)
+	         IF (t .GT. tdstrt) THEN
+	            EXIT    ! continue search at next lower forcast
+	         ELSEIF (t .EQ. tdstrt) THEN
+	            llmin = l
+	            n = nlo  ! signal termination of F loop 
+	            EXIT
+	         ENDIF
+	      ENDDO
+	   ENDDO
+	ENDIF
+
+* find the highest index of source data that needs to be requested
+	IF (tdend .GT. tstepmax) THEN
+	   CONTINUE	   ! keep llmax
+	ELSE
+
+* ... search aux times from high values to low for the end time
+	   n = nmin-1
+	   DO WHILE (n < nmax)
+	      n = n + 1            ! loop *up*   F indices
+	      DO l = lhi, llo, -1  ! loop *down* T indices
+	         t = aux1(i,j,k,l,m,n)
+	         IF (t .LT. tdend) THEN
+	            EXIT    ! continue search at next higher forcast
+	         ELSEIF (t .EQ. tdend) THEN
+	            llmax = l
+	            n = nhi ! signal termination of F loop
+	            EXIT 
+	         ENDIF
+	      ENDDO
+	   ENDDO
+	ENDIF
+
+* apply the T limits that have been determined
+ 500	idim = t_dim
+	IF (llmin .GT. llmax) llmax = llmin  ! may not be needed?
+	cx_lo_ss ( src_cx, idim )  = llmin
+        cx_hi_ss ( src_cx, idim )  = llmax
+        cx_by_ss ( idim, src_cx )  = .TRUE.
+
+        cx_lo_ww ( idim, src_cx )  = unspecified_val8
+        cx_hi_ww ( idim, src_cx )  = unspecified_val8
+        cx_delta ( idim, src_cx )  = unspecified_val8
+        cx_trans ( idim, src_cx )  = trans_no_transform
+        cx_trans_arg(idim,src_cx)  = bad_val4
+        cx_given( idim, src_cx )  = .FALSE.
+        cx_regrid_trans(idim,src_cx) = unspecified_int4 
+        cx_formatted( idim )   = .FALSE.
+
+	CALL FLESH_OUT_AXIS( idim, src_cx, status )
+	IF ( status .NE. ferr_ok ) GOTO 5000
+
+* apply the F limits that have been determined
+	idim = f_dim
+	cx_lo_ss ( src_cx, idim )  = nmin
+        cx_hi_ss ( src_cx, idim )  = nmax
+        cx_by_ss ( idim, src_cx )  = .TRUE.
+
+        cx_lo_ww ( idim, src_cx )  = unspecified_val8
+        cx_hi_ww ( idim, src_cx )  = unspecified_val8
+        cx_delta ( idim, src_cx )  = unspecified_val8
+        cx_trans ( idim, src_cx )  = trans_no_transform
+        cx_trans_arg(idim,src_cx)  = bad_val4
+        cx_given( idim, src_cx )  = .FALSE.
+        cx_regrid_trans(idim,src_cx) = unspecified_int4 
+        cx_formatted( idim )   = .FALSE.
+
+	CALL FLESH_OUT_AXIS( idim, src_cx, status )
+	IF ( status .NE. ferr_ok ) GOTO 5000
+
+* success
+        status = ferr_ok
+	RETURN
+
+* error exit
+ 5000	RETURN
+! 5050   CALL ERRMSG( ferr_invalid_command, status,
+!     .		'target 1D time axis is not regular', *5000)
+! 5060   CALL ERRMSG( ferr_invalid_command, status,
+!     .		'delta T of target 1D time axis doesnt match the data', *5000)
+ 5100   CALL ERRMSG( ferr_invalid_command, status,
+     .		'2D T-F times are not strictly increasing on T', *5000)
+ 5150   CALL ERRMSG( ferr_invalid_command, status,
+     .		'2D T-F times include missing value', *5000)
+	END
diff --git a/fer/stk/aux_regrid_lims_2d_tf.F b/fer/stk/aux_regrid_lims_2d_tf.F
new file mode 100644
index 0000000..454b8f7
--- /dev/null
+++ b/fer/stk/aux_regrid_lims_2d_tf.F
@@ -0,0 +1,318 @@
+	SUBROUTINE AUX_REGRID_LIMS_2D_TF( dst_cx, src_cx, axis_list, naxis,
+     .			                 aux1, mr1, cx1, 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 handles the special case of forecast model aggregations
+* It determines the range of souce data on the F and T axes in the 2D time
+* form that is needed to create calendar-time x lag-forecast form
+
+* In generic terms, the descript of the routine is this:
+* Given a context describing data to be regridded to a destination grid
+* create the description of the needed source data in the source context
+* Use the auxiliary variables to determine the index range of data needed
+
+* The 2D time field is the auxiliary regrid control variable. It contains
+* times that are partially duplicated from one forecat index to the next
+* The orthoganalization process removes the duplication by shifting the start
+* time index of each successive forcast, so that all forecasts lie on the
+* same-single time axis
+
+* When called the source context should be a copy of the destination context 
+* This routine is almost a copy of AUX_REGRID_LIMS_1D_T.  The difference is
+* that the user cannot limit the N range of source data needed through the /N 
+* or /F qualifier.  Instead this code determines the N range needed to fullfill
+* the requested time range
+
+* programmer - steve hankin
+* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
+
+*v695+ 3/15 *sh* almost a copy of AUX_REGRID_LIMS_1D_T
+
+	IMPLICIT NONE
+
+	include 'tmap_dims.parm'
+	include 'implicit.parm'
+	include	'ferret.parm'
+	include	'errmsg.parm'
+	include	'xcontext.cmn'
+	include	'xvariables.cmn'
+	include	'xmem_subsc.cmn'
+	include 'xtm_grid.cmn_text'   ! for line_delta and line_regular
+
+* calling argument declarations:
+	INTEGER	src_cx, dst_cx, naxis, axis_list(naxis), status,
+     .		mr1, cx1, mr2, cx2, mr3, cx3 
+        REAL*8  aux1(m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
+     .               m1lot:m1hit,m1loe:m1hie,m1lof:m1hif )
+
+* internal variable declarations:
+	INTEGER	KNOWN_GRID, CGRID_AXIS,
+     .		idim, src_grid, i, j, k, l, m, n, trans,
+     .		ndim, dim(nferdims), looking_for_first,
+     .		ldstmin, ldstmax, llmin, llmax, llo, lhi, ldel,
+     .		nlo, nhi, nmin, nmax, axis
+	REAL*8  TM_WORLD, axmax, axmin, bad_aux, t, t1, steps,
+     .		tdstrt, tdend, tstepmin, tstepmax
+!, f_delta, t_delta
+
+* initialize
+	bad_aux = mr_bad_data( mr1 )
+!	idim     = axis_list(1)
+	llo      = cx_lo_s4(cx1)   ! 2d time array limit - should always be 1
+	lhi      = cx_hi_s4(cx1)   ! should always be N
+	nlo      = m1lof	   ! should always be 1
+	nhi      = m1hif	   ! should always be dimension size of F
+	i        = cx_lo_s1(cx1)   ! fixed index since aux field is 2d
+	j        = cx_lo_s2(cx1)
+	k        = cx_lo_s3(cx1)
+	m        = cx_lo_s5(cx1)
+	tstepmin = aux1(i,j,k,llo,m,nlo) ! low-left corner of 2d time array
+	tstepmax = aux1(i,j,k,lhi,m,nhi) ! upper right
+	tdstrt   = TM_WORLD(cx_lo_s4(dst_cx), cx_grid(dst_cx),
+     .			  t_dim, box_middle) ! 'd' for destination start time
+	tdend    = TM_WORLD(cx_hi_s4(dst_cx), cx_grid(dst_cx),
+     .			  t_dim, box_middle)
+	llmin  = llo	! initial default
+	llmax  = lhi
+	nmin   = nlo
+	nmax   = nhi 		
+
+* insert source grid (the defining grid for this variable)
+* XXXX TEMPORARY -- ?move this block of code to AUX_VAR_REGRID when 2D curv is added?
+	src_grid = KNOWN_GRID( cx_data_set(src_cx),
+     .			       cx_category(src_cx),
+     .			       cx_variable(src_cx)  )
+	cx_grid( src_cx ) = src_grid
+	cx_unstand_grid( src_cx ) = .FALSE.
+	is_phase( isp )   = prgrd_from_source
+	cx_naux( src_cx ) = 0
+        DO 100 idim = 1, nferdims
+           cx_aux_var  (idim, src_cx) = unspecified_int4
+           cx_aux_cat  (idim, src_cx) = unspecified_int4
+           cx_aux_stat (idim, src_cx) = paux_stat_na
+ 100    CONTINUE
+
+* commented out these checks for regular time steps, because of monthly axes
+!* sanity check the target T axis
+!	axis = CGRID_AXIS(t_dim,dst_cx)
+!	IF (.NOT. line_regular(axis)) GOTO 5050
+!	IF (lhi .GT. llo) THEN
+!	   IF (line_delta(axis)
+!     .	   .NE.(aux1(i,j,k,llo+1,m,nlo)-aux1(i,j,k,llo,m,nlo))) GOTO 5055
+!	ENDIF
+!
+* sanity check the target F axis
+	axis = CGRID_AXIS(f_dim,dst_cx)
+	IF (.NOT. line_regular(axis)) GOTO 5060
+!	IF (nhi .GT. nlo) THEN
+!	   f_delta = line_delta(axis)
+!	   IF ( f_delta
+!     .	   .NE.(aux1(i,j,k,llo,m,nlo+1)-aux1(i,j,k,llo,m,nlo))) GOTO 5065
+!	ENDIF
+
+
+* ideally we should check that the units of the 2D time field are the same as the units of the
+* 1D time axis, but since typically Ferret code is creating the 1d time, we'll allow laziness
+
+* this routine only for t_dim -- index-based remapping of time locations
+	trans = cx_regrid_trans(t_dim,src_cx)
+	IF (trans .NE. pauxrgrd_fmrc) 
+     .	  CALL ERRMSG( ferr_internal, status, 'unkwn rgrd trans', *5000)
+
+* make sure that the auxiliary variable is monotonic
+* (not regularly spaced cuz we havvvvvvvvvve to support monthly data)
+*	The 2D time array can never theoretically be non-monotonic
+*       FT aggregations are new and unreliable
+	DO n = nlo, nhi
+	   looking_for_first = 0
+           DO l = llo, lhi
+	      t = aux1(i,j,k,l,m,n)
+	      IF (t .EQ. bad_aux) THEN
+	         GOTO 5150
+	      ELSEIF (looking_for_first .EQ. 0) THEN
+	         t1 = t
+	         looking_for_first = 1
+	      ELSE
+	         IF (looking_for_first .EQ. 1) THEN
+!	            t_delta = t-t1
+!	            IF (t_delta .LE.0.0) GOTO 5100
+	            IF (t .LE. t1) GOTO 5100
+	         ENDIF
+!	         IF ((t-t1) .NE. t_delta) GOTO 5100  ! need not be regular
+	         t1 = t
+	      ENDIF
+	   ENDDO
+	ENDDO
+
+!* the delta in F must be an integer multiple of the delta in T
+!	steps = f_delta / t_delta
+!	IF (steps .NE. INT(steps)) GOTO 5200
+
+* the relationship between the time steps in the 2D aux time field (cx1)
+* and the same times in the destination field looks something
+* like this
+
+*          **  2d aux times    **  ==>   ** cal-T x lag-F field **
+
+*   12  1011(0)   1015(1)   1019(2)        1019(2) 1019(3) 1019(4)     20
+*   11  1010(0)   1014(1)   1018(2)        1018(2) 1018(3) 1018(4)     19
+*   10  1009(0)   1013(1)   1017(2)        1017(2) 1017(3) 1017(4)     18
+*    9  1008(0)   1012(1)   1016(2)        1016(2) 1016(3) 1016(4)     17
+*    8  1007(0)   1011(1)   1015(2)        1015(1) 1015(2) 1015(3)     16
+*    7  1006(0)  >1010(1)   1014(2)        1014(1) 1014(2) 1014(3)     15
+*    6  1005(0)   1009(1)   1013(2)        1013(1) 1013(2) 1013(3)     14
+*    5  1004(0)   1008(1)   1012(2)        1012(1) 1012(2) 1012(3)     13
+*    4  1003(0)   1007(1)   1011(2)        1011(0) 1011(1) 1011(2)     12
+*    3  1002(0)   1006(1)   1010(2)        1010(0) 1010(1) 1010(2)     11
+*    2  1001(0)  >1005(1)   1009(2)        1009(0) 1009(1) 1009(2)     10
+*    1  1000(0)   1004(1)   1008(2)        1008(0) 1008(1) 1008(2)      9
+*    ^                                                                  ^
+*    |                                                                  |
+* l in src_cx                                                     l in dst_cx 
+
+* say that the requested time range is T=1005:1010 (marked above)
+* The lowest L index of source data needed is the index at which the START time
+*    is first encountered as we loop down the forecasts searching lo to hi
+* The highest L index of source data needed is the index at which the END  time
+*    is first encountered as we loop up   the forecasts searching hi to lo
+
+*************************************************************************
+*!!! >>> EFFICIENCY NOTE  <<< !!!
+* In some important situations this is a very inefficient way to appproach
+* the FT re-organization that is performed here. The most important example
+* is when the user requests the "best time series" -- i.e. N=1 only, which
+* gives a time series of the initial time steps of the model following each
+* initialization.  In that case the efficient approach is to individually
+* request the sequence of time series fragments and concatenate them.
+* (Visualize how to obtain first column of the right hand block above)
+* Instead this code requests the full 2D block of data.  Inefficient!
+*************************************************************************
+
+* bail out if the requested min exceeds the available range or similar max
+	IF (tdstrt .GT. tstepmax
+     .  .OR. tdend .LT. tstepmin ) THEN
+* ... no regridding is possible - result will be a field of missing data
+* ... provide a nominal data region that is not trouble to get
+	   llmax = llmin  ! request a single point region only of source data
+	   nmax  = nmin
+	   GOTO 500
+	ENDIF
+
+* determine the minimal forecast index range (i.e. with relevant timesteps)
+	DO n = nlo, nhi
+	   t  = aux1(i,j,k,llo,m,n)
+	   t1 = aux1(i,j,k,lhi,m,n)
+	   IF (t1 .GE. tdstrt
+     .   .AND. t  .LE. tdend  ) THEN
+* ... found first forecast with relevant time steps
+	      nmin = n
+	      EXIT
+	   ENDIF
+	ENDDO
+	DO n = nhi, nlo, -1
+	   t  = aux1(i,j,k,llo,m,n)
+	   t1 = aux1(i,j,k,lhi,m,n)
+	   IF (t1 .GE. tdstrt
+     .   .AND. t  .LE. tdend  ) THEN
+* ... found last forecast with relevant time steps
+	      nmax = n
+	      EXIT
+	   ENDIF
+	ENDDO
+	IF (nmin .GT. nmax) nmax = nmin
+
+* always request the full source time range (entire forecasts)
+	llmin = cx_lo_s4(cx1)
+	llmax = cx_hi_s4(cx1)
+
+* apply the T limits that have been determined
+ 500	idim = t_dim
+	IF (llmin .GT. llmax) llmax = llmin  ! may not be needed?
+	cx_lo_ss ( src_cx, idim )  = llmin
+        cx_hi_ss ( src_cx, idim )  = llmax
+        cx_by_ss ( idim, src_cx )  = .TRUE.
+
+        cx_lo_ww ( idim, src_cx )  = unspecified_val8
+        cx_hi_ww ( idim, src_cx )  = unspecified_val8
+        cx_delta ( idim, src_cx )  = unspecified_val8
+        cx_trans ( idim, src_cx )  = trans_no_transform
+        cx_trans_arg(idim,src_cx)  = bad_val4
+        cx_given( idim, src_cx )  = .FALSE.
+        cx_regrid_trans(idim,src_cx) = unspecified_int4 
+        cx_formatted( idim )   = .FALSE.
+
+	CALL FLESH_OUT_AXIS( idim, src_cx, status )
+	IF ( status .NE. ferr_ok ) GOTO 5000
+
+* apply the F limits that have been determined
+	idim = f_dim
+	cx_lo_ss ( src_cx, idim )  = nmin
+        cx_hi_ss ( src_cx, idim )  = nmax
+        cx_by_ss ( idim, src_cx )  = .TRUE.
+
+        cx_lo_ww ( idim, src_cx )  = unspecified_val8
+        cx_hi_ww ( idim, src_cx )  = unspecified_val8
+        cx_delta ( idim, src_cx )  = unspecified_val8
+        cx_trans ( idim, src_cx )  = trans_no_transform
+        cx_trans_arg(idim,src_cx)  = bad_val4
+        cx_given( idim, src_cx )  = .FALSE.
+        cx_regrid_trans(idim,src_cx) = unspecified_int4 
+        cx_formatted( idim )   = .FALSE.
+
+	CALL FLESH_OUT_AXIS( idim, src_cx, status )
+	IF ( status .NE. ferr_ok ) GOTO 5000
+
+* success
+        status = ferr_ok
+	RETURN
+
+* error exit
+ 5000	RETURN
+! 5050   CALL ERRMSG( ferr_invalid_command, status,
+!     .		'target 1D time axis is not regular', *5000)
+! 5055	CALL ERRMSG( ferr_invalid_command, status,
+!     .		'delta T of target 1D time axis doesnt match the data', *5000)
+ 5060   CALL ERRMSG( ferr_invalid_command, status,
+     .		'target forecast lag time axis is not regular', *5000)
+! 5065	CALL ERRMSG( ferr_invalid_command, status,
+!     .		'delta T of forecast lag axis doesnt match the data', *5000)
+ 5100   CALL ERRMSG( ferr_invalid_command, status,
+     .		'2D T-F times are not strictly increasing on T and F', *5000)
+ 5150   CALL ERRMSG( ferr_invalid_command, status,
+     .		'2D T-F times include missing value', *5000)
+! 5200   CALL ERRMSG( ferr_invalid_command, status,
+!     .		'Lag axis of F axis is not an integer number of time steps',
+!     .		*5000)
+	END
diff --git a/fer/stk/const_var_context.F b/fer/stk/const_var_context.F
index 8d43f8e..78ae441 100644
--- a/fer/stk/const_var_context.F
+++ b/fer/stk/const_var_context.F
@@ -16,6 +16,7 @@
 * V530:  8/00 *sh* - allow constant arrays of strings
 * V533:  7/01 *sh* - allow single quoted strings
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V693+ *sh* 2/15 - added support for quotation with _DQ_ and _SQ_
 
 	include	'tmap_dims.parm'
 	include	'ferret.parm'
@@ -41,8 +42,10 @@
 	cx_grid    ( const_cx ) = mgrid_xabstract
 
 * identify a constant array of strings by the presence of a quotation mark
-	IF ( INDEX(text,'"') .GT. 0
-     .	.OR. INDEX(text,"'") .GT. 0 ) THEN
+	IF ( INDEX(text,'"')    .GT. 0
+     .	.OR. INDEX(text,"'")    .GT. 0 
+     .	.OR. INDEX(text,"_DQ_") .GT. 0 
+     .	.OR. INDEX(text,"_SQ_") .GT. 0 ) THEN
 	   cx_type(const_cx) = ptype_string
 	ELSE
 	   cx_type(const_cx) = ptype_float
diff --git a/fer/stk/get_axis_speed.F b/fer/stk/get_axis_speed.F
index 264bea0..1f12cc6 100644
--- a/fer/stk/get_axis_speed.F
+++ b/fer/stk/get_axis_speed.F
@@ -53,6 +53,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
 * V685 *acm*  3/13 For Ensemble aggregations, call the ds_type 'ENS'
+* V695 *acm*  2/15 For Forecast aggregations, call the ds_type 'FCT'
 
 * calling argument declarations:
 	INTEGER	dset
@@ -73,7 +74,8 @@
 
 * netCDF
 	IF( ds_type(dset) .EQ. 'CDF' .OR. 
-     .      ds_type(dset) .EQ. 'ENS') THEN
+     .      ds_type(dset) .EQ. 'ENS'.OR. 
+     .      ds_type(dset) .EQ. 'FCT') THEN
 * ... "record" axis is slowest (stored in ds_time_axis)
 * ... locate it in a grid to see what role it plays
            IF (ds_time_axis(dset) .EQ. unspecified_int4) RETURN
diff --git a/fer/stk/get_prot_cmnd_data.F b/fer/stk/get_prot_cmnd_data.F
index 7838817..9ea3d44 100644
--- a/fer/stk/get_prot_cmnd_data.F
+++ b/fer/stk/get_prot_cmnd_data.F
@@ -91,6 +91,8 @@
 * V600 *acm* 3/06  fixing bugs 439&1390, new arg to get_new_cx.
 * V690 *sh* 12/13  manage auto-curvilinear mode
 *	           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
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -129,7 +131,7 @@
 
 * consolidate arguments broken up by command parser back into a single arg
 * ... correct mis-handling of surrounding quotation marks
-	CALL ALL_1_ARG
+	CALL ALL_1_ARG_EXPR
 
 * * * * BREAK FULL EXPRESSION INTO SUB_EXPRESSIONS * * *
 * ... and store them in the uvar list names as "EX#n"
diff --git a/fer/stk/interp_stack.F b/fer/stk/interp_stack.F
index 7c93dc0..50ae574 100644
--- a/fer/stk/interp_stack.F
+++ b/fer/stk/interp_stack.F
@@ -97,6 +97,12 @@
 *       *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 9/13-2/14 *sh* add support for aux var regridding: temp[gz(depth)=zax]
+* V694 3/15 *acm* Fix ticket 2241: as for modulo replications, don't do the
+*                 creation of virtual "void" point on subspan modulo axes for 
+*                 user-variables that have compressed result.
+* 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
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -135,7 +141,8 @@
      .			DO_NEAREST_DIST_ABOVE, DO_NEAREST_DIST_BELOW,
      .			DO_NEAREST_INDEX_ABOVE,DO_NEAREST_INDEX_BELOW,
      .			DO_EVENT, DO_SMTH_MEDIAN, DO_SMTH_MIN, DO_SMTH_MAX,
-     .			DO_STDDEV, DO_AVG_WGT, DO_4D_AVE_WGT  
+     .			DO_STDDEV, DO_AVG_WGT, DO_4D_AVE_WGT, DO_SMTH_BOX_P,
+     .			DO_4D_STD
 
 * calling arguments:
 * in	isp_base	- stack level at which to begin calculations
@@ -306,7 +313,7 @@
         CALL COMPLETE_MISSING_LIMITS( cx )
 
 * check in memory to see if we already have the data 
-	CALL FIND_MEM_VAR( cx, mr, search_by_value )
+	CALL FIND_MEM_VAR_INCL_C_CACHE( cx, mr, search_by_value, memory )
 	IF ( mr .GT. mr_nonexist ) THEN
 * ... yes - already in memory
 	   is_mr( isp ) = mr
@@ -377,6 +384,13 @@
 	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)
@@ -386,12 +400,6 @@
 	  ENDIF
  255	CONTINUE
 
-* ... strip off need to gather aggregate components together ?
- 	IF ( cat .EQ. cat_aggregate_var ) THEN
-	   CALL IS_STRIP( isact_class_aggregate_gather, e_dim, *10, status )
-	   GOTO 5000
-	ENDIF
-
 * ... strip off need for regridding data ?
  260	IF ( cx_unstand_grid( cx ) ) THEN
 	   CALL IS_STRIP( isact_class_regrid, no_dim, *10, status )
@@ -406,6 +414,18 @@
 	   GOTO 5000
 	ENDIF
 
+* ... strip off need to gather aggregate components together ?
+* do this *after* all xforms and regridding, so those operations are performed
+* on the aggregated result
+ 	IF ( cat .EQ. cat_agg_e_var ) THEN
+	   CALL IS_STRIP( isact_class_aggregate_gather, e_dim, *10, status )
+	   GOTO 5000
+	ENDIF
+ 	IF ( cat .EQ. cat_agg_f_var ) THEN
+	   CALL IS_STRIP( isact_class_aggregate_gather, f_dim, *10, status )
+	   GOTO 5000
+	ENDIF
+
 * ... reduce algebraic expression to its components ?
 
 	IF ( cat .EQ. cat_user_var	) THEN
@@ -445,7 +465,8 @@
  300	      CONTINUE
 	      IF ( look_again ) THEN
 * ...         check again in memory - maybe we already have it after all
-	         CALL FIND_MEM_VAR( cx, mr, search_by_value )
+	         CALL FIND_MEM_VAR_INCL_C_CACHE( cx, mr,
+     .						search_by_value, memory )
 	         IF ( mr .GT. mr_nonexist ) THEN
 * ...            yes - already in memory ... worth the trouble
 	            is_mr( isp ) = mr
@@ -580,6 +601,8 @@ c	   GOTO 5000
 	      CALL IS_TRANS( memory, DO_SHIFT, *2500, status )
 	   ELSEIF ( act .EQ. isact_smth_box		) THEN
 	      CALL IS_TRANS( memory, DO_SMTH_BOX, *2500, status )
+	   ELSEIF ( act .EQ. isact_smth_box_p		) THEN
+	      CALL IS_TRANS( memory, DO_SMTH_BOX_P, *2500, status )
 	   ELSEIF ( act .EQ. isact_smth_binml		) THEN
 	      CALL IS_TRANS( memory, DO_SMTH_BINML, *2500, status )
 	   ELSEIF ( act .EQ. isact_smth_hanng		) THEN
@@ -643,6 +666,8 @@ c	   GOTO 5000
 	      CALL IS_TRANS( memory, DO_4D_NBD, *2500, status )
 	   ELSEIF ( act .EQ. isact_4d_sum		) THEN	! 11/10
 	      CALL IS_TRANS( memory, DO_4D_SUM, *2500, status )
+	   ELSEIF ( act .EQ. isact_std_4d		) THEN
+	      CALL IS_TRANS( memory, DO_4D_STD, *2500, status )
 	   ELSEIF ( act .EQ. isact_nrst_dist_abv	) THEN	! 9/97
 	      CALL IS_TRANS( memory, DO_NEAREST_DIST_ABOVE, *2500, status )
 	   ELSEIF ( act .EQ. isact_nrst_dist_blw	) THEN	! 9/97
diff --git a/fer/stk/is_aggregate_gather.F b/fer/stk/is_aggregate_gather.F
index e3bae72..5181755 100644
--- a/fer/stk/is_aggregate_gather.F
+++ b/fer/stk/is_aggregate_gather.F
@@ -43,6 +43,7 @@
 *
 * 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
 
 	include	'tmap_dims.parm'
 	include	'ferret.parm'
@@ -65,14 +66,14 @@
 *	 isp	<--	current stack level (for gathering )
 
 * internal variable declarations:
-	LOGICAL	NC_GET_ATTRIB, attoutflag, got_it
-	INTEGER NCF_GET_ATTR_FROM_ID,
+	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, idim, top, imemb, memb_dset, len, igrid, iline,
-     .		varid, attlen, maxlen, fer_uvar, nv, is_phas_keep
+     .		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
-	CHARACTER*10 buff
+	CHARACTER*128 VAR_CODE, vname, buff
 
 * --- end of introductory code ---
 
@@ -84,20 +85,20 @@
 	res_cx     = is_cx( res_isp )
 	com_cx     = is_cx( com_isp )
 	dflt_cx	   = is_big_cx( res_isp )
-	idim       = is_axis( res_isp )
+	agg_dim    = is_axis( res_isp )
 	frag	   = is_sum ( res_isp )
 	cx_bad_pre = cx_bad_data(com_cx)
 
 * diagnostic mode output: " doing aggregate gather VAR_NAME[x=lo:hi at TRN:n,D=#]"
-* Put in the M index value just for this output
+* Put in the agg- index value just for this output
 
 	IF ( mode_diagnostic ) THEN
-	   cx_lo_ss( com_cx,idim ) = is_phase(isp)
-	   cx_hi_ss( com_cx,idim ) = is_phase(isp)
+	   cx_lo_ss( com_cx,agg_dim ) = is_phase(isp)
+	   cx_hi_ss( com_cx,agg_dim ) = is_phase(isp)
 	   CALL DIAG_OP
-     .				( 'doing',isact_class_aggregate_gather, com_cx, idim )
-	   cx_lo_ss( com_cx,idim ) = unspecified_int4
-	   cx_hi_ss( com_cx,idim ) = unspecified_int4
+     .				( '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
@@ -107,7 +108,7 @@
 * ... (since all else may be altered during evaluation if its a user var)
 	   CALL TRANSFER_CONTEXT( com_cx, res_cx )
 
-	   CALL TRANSFER_AXIS( idim, dflt_cx, res_cx )
+	   CALL 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)
@@ -120,7 +121,7 @@
 
 * copy data just received into the result
 	is_phas_keep = is_phase(isp)
-	CALL COPY_AGG_INTO( memory(1,mr_blk1(com_mr)), com_mr, com_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_phase(isp) )
 
 * ... remove the component protection that signaled we needed it here
@@ -139,19 +140,51 @@
 * no - 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 e-direction to be unspecified
+* Set limits on agg-direction to be unspecified
  
-	cx_lo_ss( com_cx,idim ) = unspecified_int4
-	cx_hi_ss( com_cx,idim ) = unspecified_int4
-	cx_by_ss( idim,com_cx) = .TRUE.
+	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...
 
 	imemb = is_phase(res_isp)
 
 	vname = VAR_CODE (cat_file_var, cx_variable(com_cx))
-	CALL CD_GET_AGG_VAR_INFO (cx_data_set(com_cx), vname, imemb, 
+        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
 
 * 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 
@@ -188,7 +221,7 @@
 	   ENDIF
 
 
-	   CALL FLESH_OUT_AXIS( idim, com_cx, status )
+	   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
@@ -197,14 +230,14 @@
            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,
-     .          memory(1,mr_blk1(res_mr)), res_mr, is_phas_keep )
+     .          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)
+	
+	ENDIF  ! pseudo-variable, not in member datasets.
 
 * 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 26c4b52..28a7a0a 100644
--- a/fer/stk/is_aggregate_grid.F
+++ b/fer/stk/is_aggregate_grid.F
@@ -91,7 +91,9 @@
 
 * initialize
 
-	agg_dim = e_dim
+	IF (ds_type(dset) .EQ. 'ENS') agg_dim = e_dim
+	IF (ds_type(dset) .EQ. 'FCT') agg_dim = f_dim
+
 	test_grid = unspecified_int4
 
 	agg_dset = dset
@@ -124,7 +126,7 @@
 
 	DO 90 imemb = 1, agg_len
 
-* See if the previous two members have matching grids (except for ensemble direction)
+* See if the previous two members have matching grids (except for aggretage direction)
 	   IF (test_grid.NE.unspecified_int4 .AND. test_grid.NE.this_grid) THEN
 	      DO 80 idim = 1, nferdims
 	         IF ( (idim .NE. agg_dim) .AND. 
@@ -225,7 +227,8 @@
 
 	cx_grid(agg_cx) = gnum
 	cx_data_set(agg_cx) = agg_dset
-	cx_category(agg_cx) = cat_aggregate_var
+	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_dset( uvar ) = dset
diff --git a/fer/stk/is_algebra.F b/fer/stk/is_algebra.F
index 557278c..e6dc77a 100644
--- a/fer/stk/is_algebra.F
+++ b/fer/stk/is_algebra.F
@@ -95,6 +95,11 @@
 * V671 7/11  *acm* Ticket 1868 IFV - masking expressions with ifValid, treating 
 *		   zero as valid. 
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* 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.
+* V694  5/15 *acm* Fix ticket 2291. When merging, handle variables from attribute
+*                  as temp variables.
 
 	include 'tmap_dims.parm'
 #include "netcdf.inc"
@@ -130,6 +135,7 @@
      .          nvdims, vdims(8), nvatts, nv, iatt, all_outflag, dot,
      .          attid, slen
         REAL    counter_const, val
+*                  
 
 	CHARACTER TM_FMT*150, name*150, attname*128, aname*128, buff*10
 
@@ -521,7 +527,7 @@
         IF (dot .GT. 0) name = uvar_text(uvar)(1:dot-1)
         CALL FIND_VAR_NAME(pdset_irrelevant, name, cat, ivar)
         IF (  ivar .NE. munknown_var_name .AND.
-     .        cat .EQ. cat_user_var) dset = -1
+     .        cat .EQ. cat_user_var) dset = pdset_uvars
 
         IF (dset .NE. unspecified_int4 .AND. 
      .      dset .NE. pdset_irrelevant) THEN
@@ -678,16 +684,7 @@
                  ELSE IF (STR_SAME(attname, 'dimnames') .EQ. 0 ) THEN
                     cx_type(hi_cx) = ptype_string
 
-
-* Count number of coordinate variables. (file may list more dimensions than
-* coordinates, e.g. a dimension for the grid definition, which is not a coord.)
-                    nv = 0
-                    DO 770 ivar = 1, nvars
-                       CALL CD_GET_VAR_INFO (dset, ivar, name, vartype,
-     .                     nvdims, vdims, nvatts, coordvar, all_outflag, 
-     .                     status)
-                       IF (coordvar) nv = nv + 1
- 770                CONTINUE
+		    nv = ndims
 
                     IF (reset_ss) THEN
                        cx_lo_ss(hi_cx, x_dim) = 1
@@ -763,7 +760,7 @@
 	IF ( status .NE. ferr_ok ) RETURN
 	is_cx ( isp ) = hi_cx
 	is_obj( isp ) = lo_isp	! claimed by this level
-	IF ( cx_category(hi_cx) .EQ. cat_user_var ) THEN
+	IF ( cx_category(hi_cx) .EQ. cat_attrib_val ) THEN
 * ... special action if this component variable is user-defined (uvar)
 	   is_uvar( isp ) = cx_variable( hi_cx )
 	ENDIF
@@ -858,7 +855,10 @@
 * ... to be deleted as soon as used (e.g. "LIST X")
 * implicit uvars that are single variables (e.g. "LIST U") need their "in-use"
 * flags removed (otherwise done when they're used as operands)
-	IF ( mr_category( hi_mr ) .EQ. cat_temp_var ) THEN
+* (ticket 2291) Handle variables from attribute information the same way.
+
+	IF ( mr_category( hi_mr ) .EQ. cat_temp_var .OR.
+     .	     mr_category(hi_mr) .EQ. cat_attrib_val) THEN
 * ... result of algebraic computation
 * ... if user set the missing value flag make sure it is used
 	   IF ( cx_bad_data(big_cx) .NE. mr_bad_data(hi_mr) ) THEN
@@ -867,15 +867,16 @@
      .			                  memory(1,mr_blk1(hi_mr)), size,
      .                                    cx_bad_data(big_cx)  )
 	   ENDIF
+
+c Tentative fix for ticket 2234
+	   cx_type(big_cx) = cx_type(hi_cx)
 	   CALL RE_ASSIGN_VARIABLE( hi_mr, big_cx )
+
 	   CALL PASS_AMBIG_LIMS( lo_cx, hi_mr, status )
 	   IF ( status .NE. ferr_ok ) GOTO 5000
 !	ELSEIF (mr_category(hi_mr) .EQ. cat_string) THEN
 !! ... string variables not yet implemented 1/99 *sh*
 !	   GOTO 5100
-        ELSEIF  (mr_category(hi_mr) .EQ. cat_attrib_val) THEN  ! like the final ELSE below
-           CALL MR_NOT_IN_USE(hi_mr)
-	   CALL TRANSFER_CONTEXT( big_cx, lo_cx )
 	ELSEIF ( EXPLICIT_UVAR(uvar) ) THEN
 * ... result of a simple definition like DEFINE VARIABLE UAVE=U[K=@AVE]
 *	or DEFINE VARIABLE NEW=X
@@ -917,6 +918,7 @@
      .			               memory(1,mr_blk1(new_mr)), size,
      .                                  cx_bad_data(lo_cx)  )
 	      mr_bad_data(new_mr) = cx_bad_data(lo_cx)
+
 	   ELSE
 	      new_mr = is_mr(lo_isp)
 	      size = MGRID_SIZE( new_mr )
@@ -927,10 +929,6 @@
 
 * pop off context for the last component received and "big" (merged) context
 
-* This diag condition not true when constructing the data with DEFINE DATA/AGG
-c	IF ( big_cx .NE. cx_stack_ptr-1
-c     .	.OR. big_cx .NE. lo_cx+1 ) WRITE (6, *) 'is_alg_2' ! temp diag
-
 	cx_stack_ptr = cx_stack_ptr - 2
 	RETURN 2
 
diff --git a/fer/stk/is_attrib_val.F b/fer/stk/is_attrib_val.F
index 07234d5..83c85ae 100644
--- a/fer/stk/is_attrib_val.F
+++ b/fer/stk/is_attrib_val.F
@@ -46,8 +46,13 @@
 * V600 8/18/05
 * V600  4/06 *acm* - additional declarations found by Solaris compiler
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* 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.
  
         include 'tmap_dims.parm'
+#       include "tmap_dset.parm"
+        include 'xdset_info.cmn_text'
 #include "netcdf.inc"
 	include	'ferret.parm'
 	include	'errmsg.parm'
@@ -69,9 +74,9 @@
      .		mr, cx, size, uvar, n, dset, 
      .          varid, attype, attlen, ndims, nvars, 
      .          ngatts, recdim, ivar, vartype, nvdims,
-     .          vdims(8), iatt, nvatts, idim, nd, vd, na,
+     .          vdims(8), dsdims(200), iatt, nvatts, idim, nd, vd, na,
      .          attoutflag, all_outflag, xdim, i1, i2, slen,
-     .          i, indx, nv, dot, cat, attid
+     .          i, indx, nv, dot, cat, attid, npts, dimid, nddims
 
 * --- end of introductory code ---
 * initialize
@@ -86,9 +91,15 @@
 
         IF (i2 .LT. i1) GOTO 5100
         
-        IF (dset .LT. -1 .OR. (.NOT.cx_dset_gvn(cx) )) 
+        IF (dset .LT. pdset_uvars .OR. (.NOT.cx_dset_gvn(cx) )) 
      .      dset = cx_data_set( is_cx(isp-1) )
 
+        CALL CD_GET_DS_INFO (dset, nddims, nvars, ngatts, 
+     .               recdim, status)
+        DO 100 idim = 1, nddims
+	   dsdims(idim) = idim
+ 100	CONTINUE
+
 * reserve and catalog space for the result
 
 	CALL CREATE_TEMP_MEM_VAR( cx, mr, status )
@@ -108,7 +119,7 @@
         IF (dot .GT. 0) varname = uvar_text(uvar)(1:dot-1)
         CALL FIND_VAR_NAME(pdset_irrelevant, varname, cat, ivar)
         IF (  ivar .NE. munknown_var_name .AND.
-     .         cat .EQ. cat_user_var) dset = -1
+     .         cat .EQ. cat_user_var) dset = pdset_uvars
 
 * do_err: issue error message if attrib does not exist on varname.attname
         do_err = .TRUE. 
@@ -147,28 +158,31 @@
               got_it = .TRUE.
  
            ELSE IF (STR_SAME(attname, 'dimnames') .EQ. 0 ) THEN
+	   
 
-* Get and store the coordinate variable names.
+* Get and store the dimension names.
 
               n = i2 - i1 + 1
 	      CALL INIT_C_STRING_ARRAY( n,
      .				     memory(1,mr_blk1(mr)),
      .				     mr_c_pointer(mr)    )
+                IF (ds_type(dset) .NE. 'CDF') GOTO 5200
+
+* All the dimensions from the dataset
+
               n = 0
               nv = 0
-              DO 220 i = 1, nvars  
+              nvdims = nddims
+	      
+              DO 220 idim = 1, nvdims
                  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
+		 CALL CD_GET_DS_DIMS (dset, dsdims(idim), name, npts, status)
+		 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
  220          CONTINUE
               got_it = .TRUE.
 
@@ -191,6 +205,8 @@
               got_it = .TRUE.
 
            ELSE IF (STR_SAME(attname, 'ndims') .EQ. 0 ) THEN
+              IF (ds_type(dset) .NE. 'CDF') GOTO 5200
+
               memory( 1, mr_blk1(mr)) = ndims
               got_it = .TRUE.
 
@@ -295,16 +311,20 @@
                 got_it = .TRUE.
 
              ELSE IF (STR_SAME(attname, 'dimnames') .EQ. 0 ) THEN
+
+* Get the datset dimension names - not all dimensions are a coordinate variable.
+
                 IF (nvdims .GT. 0) THEN
 
 	           CALL INIT_C_STRING_ARRAY( nvdims,
      .				     memory(1,mr_blk1(mr)),
      .				     mr_c_pointer(mr)    )
+                IF (ds_type(dset) .NE. 'CDF') GOTO 5200
+
                    n = 0
                    DO 700 idim = i1, i2
-                      CALL CD_GET_VAR_INFO (dset, vdims(idim), dname, 
-     .                   vartype, nd, vd, na, coordvar, all_outflag, 
-     .                   status)
+		      CALL CD_GET_DS_DIMS (dset, dsdims(vdims(idim)), 
+     .				     dname, npts, status)
                       slen = TM_LENSTR1(dname)
                       CALL STORE_STRING(dname(1:slen), mr, n, status)
                       n = n + 1
@@ -313,10 +333,13 @@
                 got_it = .TRUE.
 
              ELSE IF (STR_SAME(attname, 'ndims') .EQ. 0 ) THEN
+                IF (ds_type(dset) .NE. 'CDF') GOTO 5200
+
                 memory( 1, mr_blk1(mr)) = nvdims
                 got_it = .TRUE.
 
              ELSE IF (STR_SAME(attname, 'nctype') .EQ. 0 ) THEN
+
                 memory( 1, mr_blk1(mr)) = vartype
                 got_it = .TRUE.
 
@@ -390,5 +413,8 @@
  5100   status = ferr_out_of_range
         err_string = "invalid dataset attribute index"
         CALL ERRMSG( status, status, err_string, *5000 )
+ 5200   status = ferr_invalid_command
+        err_string = "implemented only for netCDF/OPeNDAP datasets"
+        CALL ERRMSG( status, status, err_string, *5000 )
 	END	
 
diff --git a/fer/stk/is_auxvar_regrid.F b/fer/stk/is_auxvar_regrid.F
index b4e7870..ad60fa2 100644
--- a/fer/stk/is_auxvar_regrid.F
+++ b/fer/stk/is_auxvar_regrid.F
@@ -50,6 +50,7 @@
 *
 * revision 0.0 - 9/2013 based upon IS_REGRID
 * for Ferret v685+
+* v695+ *sh* 3/15 - support for TF (FMRC) regridding added
 
 	IMPLICIT NONE
 
@@ -76,10 +77,13 @@
      .		aux_mr_list(nferdims), mr1, mr2, mr3,
      .		aux_cx_list(nferdims), cx1, cx2, cx3,
      .		isp_ptr, axis_list(nferdims),
-     .		dst_cx, src_cx, com_cx, dst_mr, src_mr, frame_bottom, impl_grid,
-     .		slen, s1, sn, naux, ptr
+     .		dst_cx, src_cx, com_cx, dst_mr, src_mr, frame_bottom, 
+     .		impl_grid, slen, s1, sn, naux, ptr
 	CHARACTER*128 VAR_CODE, src_name, com_name
 
+!* temporary cuz totalview doesn't see equiv vars
+!	INTEGER im1, im2, im3, ic1, ic2, ic3 
+
         EQUIVALENCE
      .          ( aux_mr_list(1), mr1 ),
      .          ( aux_mr_list(2), mr2 ),
@@ -124,7 +128,7 @@
 	   lo_isp   = is_obj(isp)    ! the isp level of the regrid operation
 	ENDIF
 	lo_cx    = is_cx(lo_isp)
-	naxis    = cx_naux( lo_cx )
+	naux    = cx_naux( lo_cx )
 	IF (cx_type(lo_cx) .EQ. ptype_string) GOTO 5010
 
 * set pointers to the auxiliary variables
@@ -134,23 +138,50 @@
 	   aux_mr_list(i) = dummy_mr
 	   aux_cx_list(i) = unspecified_int4 
  5	CONTINUE
+!**************
+!* remove these lines
+!	im1 = mr1
+!	im2 = mr2
+!	im3 = mr3
+!	ic1 = cx1
+!	ic2 = cx2
+!	ic3 = cx3
+!**************
         i = 0
-        DO 10 idim = 1, nferdims
+        DO idim = 1, nferdims
            IF (cx_aux_var(idim,lo_cx) .NE. unspecified_int4) THEN
               i = i + 1
               isp_ptr = lo_isp + i 
               axis_list(i) = idim
-              aux_mr_list(i) = is_mr(isp_ptr)  ! see equivs
-              aux_cx_list(i) = is_cx(isp_ptr)  ! see equivs
+	      IF (idim .EQ. f_dim
+     .	    .AND. cx_aux_var(t_dim,lo_cx) .NE. unspecified_int4) THEN
+* ... note that with TF regridding there are 2 dimensions with cx_aux_var but
+*     only one auxiliary variable, TIME2D, so both axes point to same aux var
+                 aux_mr_list(i) = aux_mr_list(1)
+                 aux_cx_list(i) = aux_cx_list(1)	         
+	      ELSE
+                 aux_mr_list(i) = is_mr(isp_ptr)  ! see equivs
+                 aux_cx_list(i) = is_cx(isp_ptr)  ! see equivs
+	      ENDIF
           ENDIF
- 10    CONTINUE
-* naxis should equal i at this point, but no need to confirm
-
-* sanity check
-        IF (naxis.GT.1) CALL ERRMSG(ferr_prog_limit, status,
-     .                       'for now only 1 aux var supported', *5000)
-*!        IF (naxis.GT.3) CALL ERRMSG(ferr_prog_limit, status,
-*!     .                       'more than 3 auxiliary regrid vars', *5000)
+	ENDDO
+!**************
+!* remove these lines
+!	im1 = mr1
+!	im2 = mr2
+!	im3 = mr3
+!	ic1 = cx1
+!	ic2 = cx2
+!	ic3 = cx3
+!**************
+* ... TF-regridding (FMRC) introduces the idea that the number of axes being
+*     regridded (T&F) may differ from the number of aux variables (time2d)
+	naxis = i
+
+* sanity checks
+!        IF ( naux.GT.1 )
+!     .		CALL ERRMSG(ferr_prog_limit, status,
+!     .		'for now TF is the only 2 aux var regrid supported', *5000)
 
 	IF ( is_phase(lo_isp) .EQ. isphase_get_aux_var ) THEN 
 
@@ -160,20 +191,30 @@
 * put isp up one so that the component just received stays on the stack
 	   isp = isp + 1
 
-	   IF (is_sum(lo_isp) .LT. naxis ) THEN
+	   IF (is_sum(lo_isp) .LT. naux ) THEN
 *  *** SET UP TO GET THE NEXT AUXILIARY VARIABLE ***
 	      is_sum(lo_isp) = is_sum(lo_isp) + 1  ! the next auxvar
 	      CALL GET_AUX_VAR_CONTEXT( lo_cx, hi_cx, is_sum(lo_isp),
      .					status )
 	      IF ( status .NE. ferr_ok ) GOTO 5000
-	      is_axis(lo_isp) = AUX_AXIS_FROM_ARG(lo_cx, is_sum(lo_isp))
+	      is_axis(lo_isp) = AUX_AXIS_FROM_ARG(lo_cx, is_sum(lo_isp) )
 
 	   ELSE
 * *** SET UP TO GET THE SOURCE DATA ***
 	      is_phase(lo_isp) = isphase_get_source_var
 
 * set up 4D array limits as unsubscripted variables in COMMON
-              CALL NON_ARRAY_SUBSC( aux_mr_list, naxis )
+              CALL NON_ARRAY_SUBSC( aux_mr_list, naux )
+
+!**************
+!* remove these lines
+!	im1 = mr1
+!	im2 = mr2
+!	im3 = mr3
+!	ic1 = cx1
+!	ic2 = cx2
+!	ic3 = cx3
+!**************
 
 * create the context for the source data needed to perform the regrid
               CALL AUX_REGRID_LIMS( lo_cx, hi_cx, axis_list, naxis,
@@ -302,8 +343,9 @@
 	   cx_impl_grid   ( cx_buff ) = cx_impl_grid   ( dst_cx )
 	   cx_naux        ( cx_buff ) = cx_naux        ( dst_cx )
            DO 310 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_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
 	   CALL TRANSFER_CONTEXT( cx_buff, dst_cx )  ! (nervous. is it ok to clobber this?)
 
diff --git a/fer/stk/is_const_var.F b/fer/stk/is_const_var.F
index 86610f2..258830d 100644
--- a/fer/stk/is_const_var.F
+++ b/fer/stk/is_const_var.F
@@ -9,6 +9,7 @@
 * V530:  8/00 *sh* - allow lists of strings
 * V533:  7/01 *sh* - allow single quoted strings
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V693+ *sh* 2/15 - support for _DQ_ and _SQ_ as quotation indicators
  
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -50,8 +51,10 @@
 	start = uvar_item_start( item, uvar )
 	end   = uvar_item_end  ( item, uvar )
 
-	IF ( INDEX(uvar_text(uvar)(start:end), '"') .GT. 0
-     .	.OR. INDEX(uvar_text(uvar)(start:end), "'") .GT. 0 ) THEN
+	IF ( INDEX(uvar_text(uvar)(start:end), '"')    .GT. 0
+     .	.OR. INDEX(uvar_text(uvar)(start:end), "'")    .GT. 0
+     .	.OR. INDEX(uvar_text(uvar)(start:end), "_DQ_") .GT. 0
+     .	.OR. INDEX(uvar_text(uvar)(start:end), "_SQ_") .GT. 0 ) THEN
 * ... set up FORTRAN-independent pointer
 	   CALL INIT_C_STRING_ARRAY( size,
      .				     memory(1,mr_blk1(mr)),
diff --git a/fer/stk/is_counter_var.F b/fer/stk/is_counter_var.F
index 0a5dd9b..07380fc 100644
--- a/fer/stk/is_counter_var.F
+++ b/fer/stk/is_counter_var.F
@@ -42,6 +42,7 @@
 *       *acm* 4/12 6D Ferret: time axis may be in t or f direction.
 * V683  *acm*10/12 Improve handling of F axes and info about the calendar of the grid.
 * V69+  *acm*10/14 Bug 2200: assign mr subscripts correctly
+* V695  *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -90,8 +91,8 @@
 
 	cx_trans    ( idim, cx ) = trans_no_transform
 	cx_trans_arg( idim, cx ) = bad_val4
-	if (idim .EQ. t_dim ) 
-     .      cx_calendar(cx) = .FALSE.
+	if (idim .EQ. t_dim .OR. idim .EQ. f_dim) 
+     .      cx_calendar(idim,cx) = .FALSE.
 
 
 * diagnostic output
diff --git a/fer/stk/is_dependencies.F b/fer/stk/is_dependencies.F
index f570f48..44291db 100644
--- a/fer/stk/is_dependencies.F
+++ b/fer/stk/is_dependencies.F
@@ -45,7 +45,10 @@
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
 *
 * V690 9/13 *sh*  -- with provisions for aux variables tested and refined
-* V693 10/14*acm* -- Fix tickets 2201, 2215
+* V693+ 12/14 *sh* - repair improper handling of dynamic grids
+*       later same month: tweak the repair to fix bug #2225
+*	and always report TWO (or more) dependency lines when regridding occurs
+* V695+ 2/15 *sh* - report target of regrid even if auxvar is involved 
 
 * calling argument declarations:
 	INTEGER	status
@@ -164,7 +167,7 @@
 	   IF ( status .NE. ferr_ok ) GOTO 5000
 	   memb_cx = cx_stack_ptr
 	   CALL TRANSFER_CONTEXT(lo_cx, memb_cx)
-	   varcode = VAR_CODE(cat_aggregate_var, var)
+	   varcode = VAR_CODE(cx_category(hi_cx), var)
 	   CALL CD_GET_AGG_VAR_INFO (agg_dset, varcode, imemb, 
      .            fer_uvar, memb_dset, memb_grid, iline, nv, status)
 	   cx_category(memb_cx) = fer_uvar
@@ -241,15 +244,16 @@
      .				hi_cx,
      .				var_status )
 
-* Ticket 2201:
-* get_var_context increments line_use_cnt, and defines a grid.  Store
-* the uvar_grid so that the axes may be canceled later.  
-* Ticket 2115: If it's a grid as defined in get_context where we've 
-* encoded the start/end limits of the uvar name into the grid (see 
-* get_context_mods) do not store that grid number.
-
-        IF (cx_category(hi_cx) .EQ. cat_user_var) THEN
-	   IF (cx_grid(hi_cx) .GE. unspecified_int4) uvar_grid(uvar,dset) = cx_grid(hi_cx)  
+* some house-keeping if a regridding dependency was detected
+	IF ( cx_unstand_grid(hi_cx)
+     . .AND. dependency_tree_mode ) THEN 
+	  DO i = 1, cx_vtree_regrid_ntarget
+	    IF (cx_vtree_unknown_grid(i)) THEN
+* ... point to character position of "[]" relative to full uvar_text
+	      cx_vtree_var_or_start(i) = cx_vtree_var_or_start(i) + start - 1
+	      cx_vtree_cat_or_end  (i) = cx_vtree_cat_or_end  (i) + start - 1
+	    ENDIF
+	  ENDDO
 	ENDIF
 
 * have we returned here after reporting auxvar dependencies?
@@ -265,6 +269,10 @@
 	IF ( var_status .NE. ferr_unknown_auxvar ) THEN
 	   CALL REPORT_DEPENDENCY( hi_cx, isp, uvar, item,
      .				   work, var_status, desist )
+* ... a special lines to report regridding dependency
+	   IF (cx_unstand_grid(hi_cx) )
+     .	   CALL REPORT_DEPENDENCY( hi_cx, isp+1, uvar, item,
+     .				   work, pcx_vtree_regrid_report, desist )
 	ENDIF
 
 * if the variable used auxiliary variables for regridding set up new isp
@@ -300,7 +308,8 @@
 * if the variable is an aggregation from multiple datasets set up new isp
 * level and report the ensemble members 
 	ELSEIF  ( .NOT.desist
-     .	    .AND. cx_category(hi_cx) .EQ. cat_aggregate_var ) THEN
+     .	    .AND. (cx_category(hi_cx) .EQ. cat_agg_e_var .OR. 
+     .	           cx_category(hi_cx) .EQ. cat_agg_f_var) ) THEN
 	   CALL PUSH_INTERP_STACK( isp, status )
 	   IF ( status .NE. ferr_ok ) RETURN
 	   is_phase( isp ) = 0
@@ -333,6 +342,21 @@
 	
 * clean up: release context and isp stack space
  1000	CONTINUE
+! this is in effect a precautionary "assert"
+	IF (cx_has_impl_grid(cx_stack_ptr)) THEN
+	   CALL WARN('crptn_is_dependencies')
+           CALL DEALLO_GRID(i)
+	ENDIF
+! commented out (removed) 12/31 in favor of related code in GET_VAR_CONTEXT
+!* ... if a dynamic grid was created for this variable release it
+!*     Note that this fix is not fully understood.  In IS_DEPENDENCIES
+!*     we don't actually care about grid allocations and use counts, however
+!*     dynamic grids get created by GET_VAR_CONTEXT, etc. so we have to clean up
+!	IF ( cx_has_impl_grid(cx_stack_ptr)
+!     . .AND. cx_grid(cx_stack_ptr).NE. unspecified_int4 ) THEN
+!	   CALL DEALLO_DYN_GRID(cx_grid(cx_stack_ptr))
+!	   cx_has_impl_grid(cx_stack_ptr) = .FALSE.
+!	ENDIF
 	cx_stack_ptr = cx_stack_ptr - 1
 	isp = isp - 1
 
diff --git a/fer/stk/is_do_gc_fcn.F b/fer/stk/is_do_gc_fcn.F
index 6149c4a..7285bd4 100644
--- a/fer/stk/is_do_gc_fcn.F
+++ b/fer/stk/is_do_gc_fcn.F
@@ -58,6 +58,7 @@
 * V68   3/12 *KMS/ACM* see 6D branch: working on string bugs. Remove overloading
 *                   of argument/return-type variable and predimensional (data size)
 *                   array parameter (pointer size to one in double-precision Ferret).
+* V694  *acm* 1214 Fixing ticket 2220: varname.attname in a function argument
 
         IMPLICIT NONE
 	include 'tmap_dims.parm'
@@ -71,7 +72,7 @@
 	include	'xtext_info.cmn'
 	include	'xfr_grid.cmn'	! w/ mgrid_abstract
 	include 'xgrid_chg_fcns.cmn'
-	include 'xrisc_buff.cmn'
+	include 'xrisc_buff.cmn' 
 
 * calling arguments
 	INTEGER		uvar, lo_isp, status
@@ -87,7 +88,7 @@
      .          typ1, typ2, typ3, typ4, typ5, typ6, typ7, typ8, typ9,
      .          typr, pdim1, pdim2, pdim3, pdim4, pdim5, pdim6, pdim7,
      .          pdim8, pdim9, pdimr, frame_bottom, com_cx, res_mr,
-     .          itype, arg_first_mismatch, slen
+     .          itype, arg_first_mismatch, slen, iset
         CHARACTER*40 TM_FMT, alt_name
 
 * convenience equivalences
@@ -229,7 +230,10 @@
            ELSE
               STOP 'IS_DO_GC_FCN typr is neither pfcn_rtn_string nor pfcn_rtn_float'
            ENDIF
-           uvar_data_type(uvar, cx_data_set(res_cx)) = cx_type(res_cx) 
+
+           iset = cx_data_set(res_cx)
+           IF (iset .EQ. unspecified_int4) iset = pdset_irrelevant
+           uvar_data_type(uvar, iset) = cx_type(res_cx) 
         ENDIF
 
 * need to fill in those axes that the function "imposes"
diff --git a/fer/stk/is_do_op.F b/fer/stk/is_do_op.F
index 0d9a9ac..0275af1 100644
--- a/fer/stk/is_do_op.F
+++ b/fer/stk/is_do_op.F
@@ -79,6 +79,9 @@
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 * V68  3/12  *acm* The string operations EQ, NE, LT, etc return a float-type result.
 *                  Reset mr_type; it has already been set to string elsewhere.
+* V694 5/14  *acm* Ticket 2234: Issue an error instead of returning missing results on 
+*                  inappropriate use of string arguments in numeric expressions or mixed
+*                  string/numeric expressions with logic operators. See bn_strings.jnl
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -242,13 +245,19 @@
      .     .OR. (op_num.GT.offset_logic_struc)   )
 
 * perform the operation
-	IF (.NOT.arg_types_matched
-     .	  .OR. (arg_type.EQ.ptype_string .AND. numerical_op) ) THEN 
-* ... inappropriate use of string arguments
-          CALL FILL_MEMORY ( memory, mr_blk1 (res_mr),
+
+	IF (.NOT.arg_types_matched ) THEN 
+* ... allow mix of float and string arguments (lets us use symbols as numbers)
+	    CALL FILL_MEMORY ( memory, mr_blk1 (res_mr),
      .                       mr_nblks(res_mr),
      .                       mr_bad_data(res_mr) )
 
+	ELSEIF ( arg_type.EQ.ptype_string .AND. numerical_op ) THEN 
+* ... inappropriate use of string arguments
+* Issue an error instead of returning missing results on 
+* inappropriate use of string arguments
+	    GOTO 5200
+
 	ELSEIF (arg_type.EQ.ptype_string) THEN
 	  IF (op_num .EQ. 1 ) THEN  ! "+"
 	    CALL STRING_CONCATENATE
@@ -340,6 +349,8 @@
 
 * error exit
  5000	RETURN
-! 5100	CALL ERRMSG( ferr_invalid_command, status,
-!     .		'cannot use a string as an argument to: '//alg_text, *5000 )
+ 5100	CALL ERRMSG( ferr_invalid_command, status,
+     .		'cannot use a string as an argument to: '//alg_text, *5000 )
+ 5200	CALL ERRMSG( ferr_invalid_command, status,
+     .		'cannot use strings in numerical expression', *5000 )
 	END
diff --git a/fer/stk/is_grid_mode.F b/fer/stk/is_grid_mode.F
index bb26e3e..4f51836 100644
--- a/fer/stk/is_grid_mode.F
+++ b/fer/stk/is_grid_mode.F
@@ -47,6 +47,7 @@
 * V510: *sh* 4/00 - initialize the grid that is allocated to 
 * V600  4/06 *acm* - misspelled variable found by Solaris compiler
 *       *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V695  *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
 
 * calling argument declarations:
 	INTEGER	status
@@ -75,8 +76,8 @@
 	  cx_lo_ww(idim,cx) = unspecified_val8
 	  cx_hi_ww(idim,cx) = unspecified_val8
 	  cx_delta(idim,cx) = unspecified_val8
+          cx_calendar(idim,cx) = .FALSE.
  100	CONTINUE
-        cx_calendar(cx) = .FALSE.
         cx_cal_id(cx) = unspecified_int4
 
 * diagnostic alert
diff --git a/fer/stk/is_pseudo.F b/fer/stk/is_pseudo.F
index 5c696e1..e9529fa 100644
--- a/fer/stk/is_pseudo.F
+++ b/fer/stk/is_pseudo.F
@@ -86,7 +86,7 @@
 
 * Get the direction of the pseudo-variable.
 
-	idim = MOD( cx_variable(cx)-1, 6 ) + 1
+	idim = MOD( cx_variable(cx)-1, nferdims ) + 1
 
 	CALL MAKE_PSEUDO_VAR( cx, idim, memory(1, mr_blk1(mr)), mr,
      .			      mr_lo_ss(mr,idim), mr_hi_ss(mr,idim) )
diff --git a/fer/stk/is_regrid.F b/fer/stk/is_regrid.F
index 46cab66..f979b4b 100644
--- a/fer/stk/is_regrid.F
+++ b/fer/stk/is_regrid.F
@@ -85,6 +85,7 @@
 *       *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
 * 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
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -315,6 +316,13 @@ c     .    .AND. cx_has_impl_grid(dst_cx)
      .			memory(1,mr_blk1(src_mr)), src_mr,
      .			memory(1,mr_blk1(dst_mr)), dst_mr,
      .			memory(1, blk1), wk_size+1, 2*wk_size )
+	ELSEIF ( rgrd_trans .EQ. prgrd_bin
+     .	 .OR.    rgrd_trans .EQ. prgrd_nbin ) THEN
+	   CALL DO_BIN_REGRID( cx_valid, axis, rgrd_trans,
+     .			memory(1,mr_blk1(src_mr)), src_mr,
+     .			memory(1,mr_blk1(dst_mr)), dst_mr,
+     .			memory(1, blk1), src_cx, dst_cx,
+     .                  wk_size+1 )
 * modulo regridding
 	ELSE
 	   IF ( itsa_string ) GOTO 5010
diff --git a/fer/stk/is_string.F b/fer/stk/is_string.F
index 54a77ed..346e532 100644
--- a/fer/stk/is_string.F
+++ b/fer/stk/is_string.F
@@ -8,6 +8,7 @@
 * V500:  1/99 - based on IS_CONST_VAR
 * V530:  8/00 *sh* - support for string arrays -- use dynamic memory alloc
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V693+ *sh* 12/14 support for _DQ_ and _SQ_ string delimiters
 
 	include	'tmap_dims.parm'
 	include	'ferret.parm'
@@ -52,8 +53,20 @@
 * determine the string to be stored
 	uvar = cx_variable(cx)/1000
 	item = cx_variable(cx) - 1000*uvar
-	start = uvar_item_start( item, uvar ) + 1  ! +1 skip quote
-	end   = uvar_item_end  ( item, uvar ) - 1  ! -1 skip quote
+	start = uvar_item_start( item, uvar )
+	end   = uvar_item_end  ( item, uvar )
+
+* trim off surrounding quotation marks
+	IF (uvar_text(uvar)(start:start) .EQ. '"'
+     . .OR. uvar_text(uvar)(start:start) .EQ. "'" ) THEN
+! trim off single or double quotes
+	  start = start + 1
+	  end = end - 1
+	ELSEIF (end-start .GT. 7) THEN  ! should always be true if here
+! trim off "_DQ_" or "_SQ_"
+	  start = start + 4
+	  end = end - 4
+	ENDIF
 
 * save the string in dynamic memory
 	CALL STORE_STRING(uvar_text(uvar)(start:end),
diff --git a/fer/stk/is_strip.F b/fer/stk/is_strip.F
index ba13cde..7f50aec 100644
--- a/fer/stk/is_strip.F
+++ b/fer/stk/is_strip.F
@@ -90,10 +90,13 @@
 
 * internal variable declarations:
 	LOGICAL	ITSA_MODULO_REGRID, TM_ITS_SUBSPAN_MODULO, NC_GET_ATTRIB,
-     .		itsa_uvar, modulo_dest_regrid, allatonce, attoutflag, got_it
+     .		NC_GET_ATTRIB_STRING, ITSA_MODULO_AXIS,
+     .		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,
+     .		AUX_AXIS_FROM_ARG, CGRID_AXIS, POTENT_SIZE, 
      .		ISUBSCR_CX, TM_AXES_REVERSED, CGRID_SIZE, MODULO_PARITY,
+     .		STR_SAME, TM_LENSTR1,
      .		nrev, reversed(nferdims), idel,
      .		trans, grid, dset, lo_off, hi_off, aclass,
      .		lo_cx, hi_cx, big_cx, lo_isp, i, axis,
@@ -104,7 +107,8 @@
 	REAL	ax_frac, vbad
 	REAL*8	TM_WORLD, ww_given, ww_nrst
 	CHARACTER*128 VAR_CODE, vname
-	CHARACTER*10 buff
+	CHARACTER*128 buff
+
 
 * --- end of introductory code ---
 * initiailize - ! temp:always called at bottom of stack frame for transform
@@ -139,19 +143,13 @@
 * cancel result pointer to indicate no result yet
 	   is_mr( lo_isp ) = unspecified_int4
 
-* Set up context (hi_cx) to get the first requested aggregate member of M
+* Set up context (hi_cx) to get the first requested aggregate member
 
 	   is_sum( lo_isp ) = cx_hi_ss(lo_cx, idim)
 	   is_phase( lo_isp ) = cx_lo_ss(lo_cx, idim)
 
 	   CALL TRANSFER_CONTEXT( big_cx, hi_cx )
 
-* Set limits on e-direction to be unspecified
- 
-	   cx_lo_ss( hi_cx,e_dim ) = unspecified_int4
-	   cx_hi_ss( hi_cx,e_dim ) = unspecified_int4
-	   cx_by_ss( e_dim,hi_cx) = .TRUE.
-
 * Set the grid to the grid of the first aggregate component...
 	   imemb = is_phase( lo_isp )
 
@@ -159,34 +157,85 @@
 	   CALL CD_GET_AGG_VAR_INFO (dset, vname, imemb, fer_uvar, 
      .                memb_dset, igrid, iline, nv, status)
 
+	   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
+
+* 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
+	      ENDIF
+	   ELSE
+
+* 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
+	      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 CD_GET_VAR_ID (memb_dset, vname, varid, status)
-	      maxlen = 1
-	      got_it = NC_GET_ATTRIB( memb_dset, varid, 'missing_value',
+	         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
 
-	      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
+	         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
-	   ENDIF
-	   is_uvar(lo_isp) = cx_variable(hi_cx)
+	      is_uvar(lo_isp) = cx_variable(hi_cx)
+
+	   ENDIF  ! member datset
 
 	ELSEIF ( aclass .EQ. isact_class_trans) THEN
 
@@ -201,12 +250,25 @@
      .	 .AND.  trans .NE. trans_interpolate ) GOTO 200   ! 2/90
 
 * possibly need different limits for component than for result
+
 	   IF ( grid .NE. unspecified_int4 ) THEN
 	      IF ( trans .LT. trans_compress_code ) THEN
 	         CALL OFFSET_SS( axis, lo_cx, lo_off, hi_off, status )
 		 IF ( status .NE. ferr_ok ) GOTO 5000
 	         cx_lo_ss(hi_cx,axis) = cx_lo_ss(hi_cx,axis) + lo_off
 	         cx_hi_ss(hi_cx,axis) = cx_hi_ss(hi_cx,axis) + hi_off
+
+* Ticket 2301: If the requested region is at the end of an axis, so the offset
+* takes the high subscript below the axis start or the low subscript above the
+* axis end, definition, move the index limit(s) to the axis end. 
+* (similar change in is_trans)
+		 
+		 IF  ( .NOT. ITSA_MODULO_AXIS(hi_cx, idim) ) THEN
+		    IF (cx_hi_ss(hi_cx,axis) .LT.1) cx_hi_ss(hi_cx,axis) = 1
+		    IF (cx_lo_ss(hi_cx,axis) .GT. CAXIS_LEN(axis,hi_cx)) 
+     .                cx_lo_ss(hi_cx,axis) = CAXIS_LEN(axis,hi_cx)
+		 ENDIF
+
 	         cx_by_ss(axis,hi_cx) = .TRUE.
 	         CALL CONFINE_AXIS( axis, hi_cx, status )
 	         IF ( status .NE. ferr_ok ) GOTO 5000
diff --git a/fer/stk/is_trans.F b/fer/stk/is_trans.F
index 3426fd7..8e11b75 100644
--- a/fer/stk/is_trans.F
+++ b/fer/stk/is_trans.F
@@ -87,6 +87,7 @@
 	include	'xvariables.cmn'
 	include	'xtext_info.cmn'
 	include	'xalgebra.cmn'
+	include	'xfr_grid.cmn'
 
 * calling argument declarations:
 	INTEGER	status
@@ -98,8 +99,8 @@
 
 * internal variable declarations:
 * ... "res"="result" , "com"="component"
-	LOGICAL	ITSA_FILL_TRANS, its_4d, string_bad_good, string_com
-	INTEGER CX_DIM_LEN, MGRID_SIZE_DELTA, DO_4D_STRING_TRANS,
+	LOGICAL	ITSA_FILL_TRANS, ITSA_MODULO_AXIS, its_4d, string_bad_good, string_com
+	INTEGER CX_DIM_LEN, MGRID_SIZE_DELTA, DO_4D_STRING_TRANS, CAXIS_LEN,
      .		slen, cx_valid,
      .		res_isp, com_isp, res_cx, com_cx, com_mr, res_mr, idim,
      .		trans, grid, lo_off, hi_off, ss_lo, ss_hi, wksiz, wkblk,
@@ -182,6 +183,17 @@
 		DO 300 i = 1, ndim
 	   idim = axes(i)
 * ... if the requested region was unknown use the component region
+
+* ... abstract grid ignore a set region that may be in the res_cx.
+
+	   IF ( cx_lo_ss(res_cx,idim).EQ.unspecified_int4
+     .	   .AND.cx_lo_ww(idim,res_cx).NE.unspecified_val8 ) THEN
+	      IF (cx_grid(com_cx) .GE. mgrid_abstract .AND. cx_grid(com_cx) .LE. mgrid_fabstract ) THEN  
+	         cx_lo_ss( res_cx, idim ) = cx_lo_ss(com_cx,idim)
+	         cx_hi_ss( res_cx, idim ) = cx_hi_ss(com_cx,idim)
+              ENDIF
+	   ENDIF
+
 	   IF ( cx_lo_ss(res_cx,idim).EQ.unspecified_int4
      .	   .AND.cx_lo_ww(idim,res_cx).EQ.unspecified_val8 ) THEN
 * 11/95 - FLESH_OUT_AXIS cannot be trusted to flesh this out.
@@ -278,8 +290,23 @@
 * Note (8/92): when the requested limites are unknown the com_cx will be
 *              full-width along idim so subtracting the offset limits leaves
 *              cx_valid as beyond the possible range but no known crash results
+
 	   cx_lo_ss( cx_valid, idim ) = cx_lo_ss( com_cx, idim ) - lo_off
 	   cx_hi_ss( cx_valid, idim ) = cx_hi_ss( com_cx, idim ) - hi_off
+
+* Ticket 2301: If the requested region is at the end of an axis, so the offset
+* takes the high subscript below the axis start or the low subscript above the
+* axis end, move the index limit(s) to the axis end. 
+* (similar change in is_strip)
+* Ticket 2314, tweak this logic
+
+	   IF  ( .NOT. ITSA_MODULO_AXIS(com_cx, idim) ) THEN
+	      cx_lo_ss( cx_valid, idim ) = MAX(1,cx_lo_ss( cx_valid, idim ))
+	      cx_hi_ss( cx_valid, idim ) = MAX(1,cx_hi_ss( cx_valid, idim ))
+	      cx_lo_ss( cx_valid, idim ) = MIN(CAXIS_LEN(idim,com_cx), cx_lo_ss( cx_valid, idim ))
+	      cx_hi_ss( cx_valid, idim ) = MIN(CAXIS_LEN(idim,com_cx), cx_hi_ss( cx_valid, idim ))
+	   ENDIF 
+
 	   IF ( cx_lo_ss(cx_valid,idim) .GT. cx_hi_ss(cx_valid,idim) ) THEN
 * ... insufficient component data to compute anything
 	      IF ( mr_type(res_mr) .EQ. ptype_string ) THEN
diff --git a/fer/stk/is_uvar_grid.F b/fer/stk/is_uvar_grid.F
index d431c12..8d59366 100644
--- a/fer/stk/is_uvar_grid.F
+++ b/fer/stk/is_uvar_grid.F
@@ -106,6 +106,8 @@
 *                   non-ferr_ok to exit properly from the command.
 *       *acm* 3/12  Add E and F dimensions (use nferdims in tmap_dims.parm)
 * 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 
 
 * calling argument declarations:
 	INTEGER	status
@@ -114,9 +116,9 @@
 * exit #2 is to signal that the grid has been obtained and stored in uvar_grid
 
 * internal variable declarations:
-	LOGICAL	ITSA_GCVAR, its_dynamic, its_gc, need_another_pass,
+	LOGICAL	ITSA_GCVAR, ITSA_CONST_VAR, its_dynamic, its_gc, need_another_pass,
      .		saved_ifthen_type, do_err, agg_has_uvar, ok_remote,
-     .		getting_aux_var
+     .		getting_aux_var, its_const_var
 	INTEGER KNOWN_GRID, STR_SAME,
      .		TM_LENSTR1, GCF_PARENT_UVAR, GCF_PARENT_CHAR, 
      .		NCF_GET_AGG_COUNT, iaux,
@@ -160,8 +162,8 @@
 	dset   = cx_data_set( lo_cx )
 	nitem  = uvar_num_items( uvar )
 	its_gc = ITSA_GCVAR(uvar)
-	its_gc = ITSA_GCVAR(uvar)
 	has_uvar_gc = has_uvar_gc .OR. its_gc  ! for repl_exprns fixing bug 1523
+	is_uvar_const = ITSA_CONST_VAR(uvar)   ! for repl_exprns fixing bug 2213
 * ... initialization to support 2/99 pass-2 changes
 	pass_number = 1
 ! 4/99
@@ -308,13 +310,16 @@
 
 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_aggregate_var  ) THEN
+
+	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, cat_aggregate_var, var )
+
+	   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
@@ -394,10 +399,6 @@ C lo and hi of the ensemble axis if so, and get all the grids.
      .                            attname, varid, do_err, status )
 	IF ( status .NE. ferr_ok ) GOTO 5000
 
-        uvar_text(uvar) = name
-	uvar_item_start( item, uvar ) = 1
-	uvar_item_end  ( item, uvar ) = len_name
-
 * Get attribute type and length
         
 * See if it is a pseudo-attribute attnames, ndims, etc.
diff --git a/fer/stk/known_grid.F b/fer/stk/known_grid.F
index db78df2..62b0b23 100644
--- a/fer/stk/known_grid.F
+++ b/fer/stk/known_grid.F
@@ -68,7 +68,7 @@
 
 	   KNOWN_GRID = ds_grid_number( variable )
 
-	ELSEIF ( category .EQ. cat_aggregate_var ) THEN
+	ELSEIF ( category.EQ.cat_agg_e_var .OR. category.EQ.cat_agg_f_var ) THEN
 
 	   KNOWN_GRID = ds_grid_number( variable )
 	   IF (ds_grid_number( variable ) .EQ. int4_init) 
diff --git a/fer/stk/offset_ss.F b/fer/stk/offset_ss.F
index 4946d49..191f1a7 100644
--- a/fer/stk/offset_ss.F
+++ b/fer/stk/offset_ss.F
@@ -174,7 +174,11 @@
      .
      .       offset_lo  	( trans_4d_avg_wgt )	/  0  /,
      .	     offset_hi  	( trans_4d_avg_wgt )	/  0  /,
-     .	     offset_supplied	( trans_4d_avg_wgt )	/ .FALSE. /
+     .	     offset_supplied	( trans_4d_avg_wgt )	/ .FALSE. /,
+     .
+     .	     offset_lo   	( trans_smth_box_p )	/ -1  /,
+     .	     offset_hi   	( trans_smth_box_p )	/ +1  /,
+     .	     offset_supplied	( trans_smth_box_p )	/ .TRUE. /
 
 * --- end of introductory code ---
 * initiailize
@@ -186,6 +190,7 @@
 * offset given explicitly by user (eg @SHF:-1)
 	   ioff = INT( arg )
 	   IF ( trans .EQ. trans_smth_box
+     .	  . OR. trans .EQ. trans_smth_box_p
      .	  . OR. trans .EQ. trans_smth_binml
      .	  . OR. trans .EQ. trans_smth_hanng
      .	  . OR. trans .EQ. trans_smth_max
diff --git a/fer/stk/pass_ambig_lims.F b/fer/stk/pass_ambig_lims.F
index 7d18981..a93730f 100644
--- a/fer/stk/pass_ambig_lims.F
+++ b/fer/stk/pass_ambig_lims.F
@@ -93,6 +93,7 @@
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 *       *acm* 4/12 6D Ferret: time axis may be in t or f direction.
 * V683  *acm*10/12 Improve handling of F axes and info about the calendar of the grid.
+* V695  *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
 
         include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -180,8 +181,8 @@
 	      cx_lo_ww(idim,cx) = unspecified_val8
 	      cx_hi_ww(idim,cx) = unspecified_val8
 * 9/97 *kob* cx_calendar must reflect these changes as well	  
-	      IF (idim .EQ. t_dim) 
-     .                cx_calendar(cx) = .FALSE.
+	      IF (idim .EQ. t_dim .OR. idim .EQ. f_dim) 
+     .                cx_calendar(idim,cx) = .FALSE.
 
 * context limits unspecified but untransformed data limits available anyway
 	   ELSEIF ( cx_lo_ss(cx,idim) .EQ. unspecified_int4 ) THEN
diff --git a/fer/stk/push_interp_stack.F b/fer/stk/push_interp_stack.F
index dd9255e..7d7a7a8 100644
--- a/fer/stk/push_interp_stack.F
+++ b/fer/stk/push_interp_stack.F
@@ -44,7 +44,8 @@
 *
 * revision 0.0 - 2/19/87
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
-* v690 2/2014 *sh* stack max limited to max_usable_intrp to fit aux frames at top
+* v690  2/2014 *sh* stack max limited to max_usable_intrp to fit aux frames at top
+* v698+ 6/2015 *sh* is_sum changed from REAL to INTEGER
  
         include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -76,7 +77,7 @@
 	is_phase    ( isp ) = unspecified_int4
 	is_axis     ( isp ) = unspecified_int4
 	is_mr       ( isp ) = unspecified_int4
-	is_sum      ( isp ) = -777.
+	is_sum      ( isp ) = -777
 
 	RETURN
 	END
diff --git a/fer/stk/rcvd_regrid.F b/fer/stk/rcvd_regrid.F
index 4f863e2..3b667f5 100644
--- a/fer/stk/rcvd_regrid.F
+++ b/fer/stk/rcvd_regrid.F
@@ -76,6 +76,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. Note the input 
 *                  argument "axis" in this routine is a dimension, 1, 2, ... 
+* V696 *acm* 11/15 Added @BIN and @NBIN regridding transforms
 
 * calling argument declarations:
 	INTEGER	src_cx, dst_cx, axis, work, ok_min, ok_max, status
@@ -135,6 +136,7 @@
 * for "window"ing   we need source area   containing  the destination area
 * for exact match   we need source points aligning w/ the destination points
 * for nrst match    do as for averaging
+* for binning       do as for averaging
 	IF ( rgrd_trans .EQ. prgrd_linear_interp
      .      .OR. rgrd_trans .EQ. prgrd_xy_lin ) THEN
 	   dst_where_loest = box_middle
@@ -154,7 +156,9 @@
      .      .OR. rgrd_trans .EQ. prgrd_sum
      .      .OR. rgrd_trans .EQ. prgrd_good_pt
      .	    .OR. rgrd_trans .EQ. prgrd_average
-     .	    .OR. rgrd_trans .EQ. prgrd_nearest ) THEN
+     .	    .OR. rgrd_trans .EQ. prgrd_nearest
+     .	    .OR. rgrd_trans .EQ. prgrd_bin
+     .	    .OR. rgrd_trans .EQ. prgrd_nbin ) THEN
 	   dst_where_loest = box_lo_lim
 	   dst_where_hiest = box_hi_lim
 	   src_where_loest = box_lo_lim
diff --git a/fer/stk/rqst_regrid.F b/fer/stk/rqst_regrid.F
index d8129cc..a691a10 100644
--- a/fer/stk/rqst_regrid.F
+++ b/fer/stk/rqst_regrid.F
@@ -72,6 +72,8 @@
 *       *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. Note the input 
 *                  argument "axis" in this routine is a dimension, 1, 2, ... 
+* V695  *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
+* V696 *acm* 11/15 Added @BIN and @NBIN regridding transforms
 
 	include 'tmap_dims.parm'
 	include	'xtm_grid.cmn_text'
@@ -165,7 +167,9 @@
      .      .OR. rgrd_trans .EQ. prgrd_variance
      .      .OR. rgrd_trans .EQ. prgrd_sum
      .      .OR. rgrd_trans .EQ. prgrd_good_pt
-     .      .OR. rgrd_trans .EQ. prgrd_average ) THEN
+     .      .OR. rgrd_trans .EQ. prgrd_average
+     .      .OR. rgrd_trans .EQ. prgrd_bin
+     .      .OR. rgrd_trans .EQ. prgrd_nbin ) THEN
 	   where_loest = box_lo_lim
 	   where_hiest = box_hi_lim
 	ELSEIF ( rgrd_trans .EQ. prgrd_associate ) THEN
@@ -334,7 +338,7 @@
 	cx_given( axis, src_cx )	= .FALSE.
 * 9/97 *kob* - cx_calendar needs to also reflect these changes
 	IF (axis .eq. t_dim .OR. axis .eq. f_dim) THEN
-           cx_calendar(src_cx) = .FALSE.
+           cx_calendar(axis,src_cx) = .FALSE.
            cx_cal_id(src_cx) = unspecified_int4
         ENDIF
 
diff --git a/fer/utl/SOURCE_FILES b/fer/utl/SOURCE_FILES
index b760df6..74f1412 100644
--- a/fer/utl/SOURCE_FILES
+++ b/fer/utl/SOURCE_FILES
@@ -3,6 +3,7 @@ add_2_grids.F\
 add_2_grids_sub.F\
 add_c_2_grid.F\
 adjust_copy_limits.F\
+all_1_arg_expr.F\
 allo_grid.F\
 allo_managed_axis.F\
 allo_managed_grid.F\
@@ -53,10 +54,13 @@ display_dependency_sub.F\
 extract_dp_line.F\
 extract_dp_line2.F\
 extract_line.F\
+extract_arg1_line.F\
+extract_arg4_line.F\
 extract_line_sub.F\
 extract_z_line.F\
 field_minmax.F\
 field_minmax_sub.F\
+full_scan_indices.F\
 gcf_arg_type.F\
 gcf_child_var_name.F\
 gcf_find_fcn.F\
@@ -73,6 +77,7 @@ gcf_parent_char.F\
 gcf_parent_uvar.F\
 gcf_rtn_type.F\
 geog_var.F\
+get_abstract_line.F\
 get_ave_lims.F\
 get_dependency_status.F\
 get_max_string_len.F\
@@ -90,7 +95,6 @@ grid_subscript_extremes_no_mod.F\
 grid_world_extremes.F\
 heap2.F\
 heap2_v.F\
-hunt_indices.F\
 hunt_r4.F\
 igrid.F\
 inherit_attrs.F\
@@ -98,6 +102,9 @@ invalid_r8_to_i4.F\
 is_template.F\
 isubscr_cx.F\
 isubscript.F\
+its_fmrc.F\
+itsa_1lineif.F\
+itsa_const_var.F\
 itsa_fill_trans.F\
 itsa_gcvar.F\
 itsa_modulo_axis.F\
@@ -125,6 +132,7 @@ parse_string_list.F\
 permute.F\
 permute_ptr_sub.F\
 permute_sub.F\
+put_arg5_line.F\
 region_number.F\
 regularly_spaced.F\
 report_aux_dependency.F\
diff --git a/fer/gnl/all_1_arg.F b/fer/utl/all_1_arg_expr.F
similarity index 72%
copy from fer/gnl/all_1_arg.F
copy to fer/utl/all_1_arg_expr.F
index 254c833..831b43f 100644
--- a/fer/gnl/all_1_arg.F
+++ b/fer/utl/all_1_arg_expr.F
@@ -1,4 +1,4 @@
-	SUBROUTINE ALL_1_ARG
+	SUBROUTINE ALL_1_ARG_EXPR
 
 *
 *
@@ -36,17 +36,17 @@
 *
 *
 * treat all the arguments identified by PARSE_COMMAND as a single argument
-* example cases that this has to address:
-*	message "hello world" 
-*	message "hello" "world"
-*	message " "hello" "world" "     - unclear what to do ...
+
+* This routine is a clone of ALL_1_ARG, but altered so that if there are
+* overall surrounding quotation marks, they *are* passed on, so
+*	yes? LIST "myvar"
+* is seen as the string "myvar", rather than the value of the variable myvar
 
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
 * written for VAX computer under VMS operating system
 
-* V300: 4/22/93
-*       *acm* 3/12 cleanup ifdefs and unnecessary include files
+* V694: 2/2/2015
 
 * calling argument declarations:
 
@@ -58,23 +58,32 @@
 	include 'xprog_state.cmn'
 
 * reset the command common to look like a single big argument
+* unlike ALL_1_ARG, do this even if there is only a single arg
+	IF (num_args .EQ. 0) RETURN
 
-	IF ( num_args .GT. 1 ) THEN
-
-	   arg_end(1) = arg_end(num_args)
+	arg_end(1) = arg_end(num_args)
+	num_args = 1
 
-* protect against lost " from start of:  message "hello" "world"
-	   i = arg_start(1) - 1
-	   IF ( cmnd_buff(i:i) .EQ. '"' ) arg_start(1) = i
+* protect against lost " from start 
+	i = arg_start(1) - 1
+	IF ( cmnd_buff(i:i) .EQ. '"' ) arg_start(1) = i
 
-* protect against lost " from end of:  message "hello" "world"
-	   i = arg_end(1) + 1
-	   IF ( i .LE. len_cmnd ) THEN
-	      IF ( cmnd_buff(i:i) .EQ. '"' ) arg_end(1) = i
-	   ENDIF
+* protect against lost " from end
+	i = arg_end(1) + 1
+	IF ( i .LE. len_cmnd ) THEN
+	   IF ( cmnd_buff(i:i) .EQ. '"' ) arg_end(1) = i
+	ENDIF
 
-	   num_args = 1
+* protect against lost _DQ_ from start
+	i = arg_start(1) - 4
+	IF (i .GE. 1) THEN
+	   IF ( cmnd_buff(i:i+3) .EQ. '_DQ_' ) arg_start(1) = i
+	ENDIF
 
+* protect against lost _DQ_ from end
+	i = arg_end(1) + 4
+	IF ( i .LE. len_cmnd ) THEN
+	   IF ( cmnd_buff(i-3:i) .EQ. '_DQ_' ) arg_end(1) = i
 	ENDIF
 
 	RETURN
diff --git a/fer/utl/calendar_axis.F b/fer/utl/calendar_axis.F
index 087f1ef..eb6d067 100644
--- a/fer/utl/calendar_axis.F
+++ b/fer/utl/calendar_axis.F
@@ -72,7 +72,7 @@
 	IF (istat .NE. ferr_ok) GO TO 4000
 
 	prev_cal_id = cx_cal_id(cx)
-	IF (prev_cal_id .NE. cal_id) THEN
+	IF (prev_cal_id.NE.cal_id .AND. prev_cal_id.NE.unspecified_int4) THEN
 	   CALL reset_secs_from_bc (-cx_lo_ww(idim,cx), 
      .		     new_lo_ww, prev_cal_id, cal_id, istat)
 
diff --git a/fer/utl/confine_axis.F b/fer/utl/confine_axis.F
index cf88464..00fb501 100644
--- a/fer/utl/confine_axis.F
+++ b/fer/utl/confine_axis.F
@@ -76,7 +76,7 @@
 *      *acm*  4/12 6D Ferret: time axis may be in t or f direction.
 * V680 *acm*  612  6D Ferret: Pull the calendar correction into a separate routine.
 * V683  *acm*10/12 Improve handling of F axes and info about the calendar of the grid.
-
+* V695  *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
 
 	include 'tmap_dims.parm'
 	include	'xtm_grid.cmn_text'
@@ -124,17 +124,6 @@
 * axis for this dimension
 	axis = grid_line( idim, grid )
 
-! 11/95: increased restrictions that limits must be within valid bounds
-!        even redundant limits must be fleshed out since they may be used at
-!	 higher levels to "reconcile" results
-!* check for special actions needed on user-defined variables
-!* ( e.g. how to handle U[K=5] - U[K=1:10] or PI=3.1415)
-!	IF ( cat .EQ. cat_user_var ) THEN
-!	   lim_redundant = uvar_given( idim, var ) .LE. uvlim_gvn_xact
-!	ELSE
-!	   lim_redundant = .FALSE.
-!	ENDIF
-
 * check for internal error left over from old TMAP library
 	IF ( axis .EQ. munknown ) THEN
 	   status = ferr_grid_definition
@@ -179,18 +168,15 @@
 *11/04 *acm* reset time step only if axis is a different calendar than 
 *            the calendar originally used to compute world coordinates
 
-	   IF ( (idim .EQ. t_dim .OR. idim .EQ. f_dim) .AND.cx_calendar(cx) ) THEN
+	   IF ( (idim .EQ. t_dim .OR. idim .EQ. f_dim) .AND.cx_calendar(idim,cx) ) THEN
 
 	      CALL CALENDAR_AXIS (idim, grid, cx, istat)
 	      IF (istat .NE. 2) THEN
 	         IF (istat .EQ. -1) GOTO 5000
-	         IF (idim .EQ. t_dim .AND. grid_line(f_dim,grid) .NE. mnormal)THEN
-	            CALL CALENDAR_AXIS(f_dim, grid, cx, istat)
-     	            IF (istat .EQ. -1) GOTO 5000
-	         ENDIF
+
 	      ENDIF
 
-	      cx_calendar(cx) = .FALSE. 
+	      cx_calendar(idim,cx) = .FALSE. 
 
            ENDIF
 * ... confine values to the limits of the defining grid
@@ -200,12 +186,6 @@
 * ... check for error in limits and possibly remove transformation
 	   IF ( lo_ww .GT. hi_ww ) THEN
 	      GOTO 5010
-! commented out 11/95 -- allow user's "@ITP" to pass through
-!	   ELSEIF ( lo_ww .EQ. hi_ww
-!     .	      .AND. cx_trans(idim,cx) .EQ. trans_interpolate ) THEN
-!! ... B4 8/92 was: .AND. cx_trans(idim,cx) .GT. trans_compress_code ) THEN
-!* ... remove transformation if irrevelent
-!	      cx_trans( idim, cx ) = trans_no_transform
 	   ENDIF
 * ... success
 	   cx_lo_ww( idim, cx ) = lo_ww
diff --git a/fer/utl/copy_agg_into.F b/fer/utl/copy_agg_into.F
index 484c209..db392ea 100644
--- a/fer/utl/copy_agg_into.F
+++ b/fer/utl/copy_agg_into.F
@@ -1,4 +1,4 @@
-	SUBROUTINE COPY_AGG_INTO ( src, msrc, cxs, dst, mdst, mloc )
+	SUBROUTINE COPY_AGG_INTO ( src, msrc, cxs, agg_dim, dst, mdst, aloc )
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -35,14 +35,15 @@
 *
 * copy data from source grid into dstination grid using limits of source
 * context (i.e. destination grid is ASSUMED) big enough to hold data.
-* The source grid does not have an ensemble axis (dimension 5) but the
-* destination axis does.  Copy the ensemble member into e-axis location 
-* pointed to by index mloc.
+* The source grid does not have an ensemble/forecast axis (dimension 5 or 6) 
+* but the destination axis does. Copy the aggregation member into the e- or 
+* f-axis location pointed to by index aloc.
 *
 * programmer - Ansley Manke
 * NOAA/PMEL, Seattle, WA - Thermal Modeling and Analysis Program
 *
 * V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
+* V695 2/15 *acm* 6D add aggregation in forecast direction
 *
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -50,7 +51,7 @@
 	include	'xvariables.cmn'
 
 * calling argument declarations:
-	INTEGER msrc, cxs, mdst, dcx, mloc
+	INTEGER msrc, cxs, mdst, dcx, aloc, agg_dim
 	REAL    src( * ), dst( * )
 
 * internal variable declarations
@@ -96,7 +97,7 @@
 	ENDDO
 
 	IF (mr_type(msrc) .EQ. ptype_string ) THEN
-	   CALL COPY_AGG_PTR_INTO_SUB( mloc, cxlo, cxhi,
+	   CALL COPY_AGG_PTR_INTO_SUB( aloc, cxlo, cxhi, agg_dim,
      .			    src, smlo(1), smhi(1),
      .				 smlo(2), smhi(2),
      .				 smlo(3), smhi(3),
@@ -110,7 +111,7 @@
      .				 dmlo(5), dmhi(5),
      .				 dmlo(6), dmhi(6) )
 	ELSE
-	   CALL COPY_AGG_INTO_SUB( mloc, cxlo, cxhi,
+	   CALL COPY_AGG_INTO_SUB( aloc, cxlo, cxhi, agg_dim,
      .			    src, smlo(1), smhi(1),
      .				 smlo(2), smhi(2),
      .				 smlo(3), smhi(3),
diff --git a/fer/utl/copy_agg_into_sub.F b/fer/utl/copy_agg_into_sub.F
index 47d61c9..6f7441d 100644
--- a/fer/utl/copy_agg_into_sub.F
+++ b/fer/utl/copy_agg_into_sub.F
@@ -1,4 +1,4 @@
-	SUBROUTINE COPY_AGG_INTO_SUB( mloc, cxlo, cxhi,
+	SUBROUTINE COPY_AGG_INTO_SUB( aloc, cxlo, cxhi, agg_dim,
      .          src, slox, shix, sloy, shiy, sloz, shiz, 
      .          slot, shit, sloe, shie, slof, shif,
      .          dst, dlox, dhix, dloy, dhiy, dloz, dhiz, 
@@ -43,15 +43,18 @@
 * copy data from source grid into dstination grid using limits of source
 * context (i.e. dstination grid is ASSUMED) big enough to hold data.
 * Copy the ensemble member into e-axis location pointed to
-* by index mloc.
+* by index aloc.
 *
 * programmer - Ansley Manke
 * NOAA/PMEL, Seattle, WA - Thermal Modeling and Analysis Program
 *
 * V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
+* V695 2/15 *acm* 6D add aggregation in forecast direction
 *
+	include 'ferret.parm'
+
 * calling argument declarations:
-	INTEGER mloc, cxlo(*), cxhi(*),
+	INTEGER aloc, cxlo(*), cxhi(*),  agg_dim,
      .		slox, shix, sloy, shiy, sloz, shiz, 
      .          slot, shit, sloe, shie, slof, shif, 
      .          dlox, dhix, dloy, dhiy, dloz, dhiz, 
@@ -67,20 +70,39 @@
 
 * --- end of introductory code ---
 
-	m = cxlo(5)
-        DO 100 n = cxlo(6), cxhi(6)
-	DO 100 l = cxlo(4), cxhi(4)
-	DO 100 k = cxlo(3), cxhi(3)
-	DO 100 j = cxlo(2), cxhi(2)
-	DO 100 i = cxlo(1), cxhi(1)
+	IF (agg_dim .EQ. e_dim) THEN
+	   m = cxlo(e_dim)
+           DO 100 n = cxlo(6), cxhi(6)
+	   DO 100 l = cxlo(4), cxhi(4)
+	   DO 100 k = cxlo(3), cxhi(3)
+	   DO 100 j = cxlo(2), cxhi(2)
+	   DO 100 i = cxlo(1), cxhi(1)
+
+	      IF (src(i,j,k,l,m,n) .NE. bad_src) THEN
+	         dst(i,j,k,l,aloc,n) = src(i,j,k,l,m,n)
+	      ELSE
+	         dst(i,j,k,l,aloc,n) = bad_dst
+	      ENDIF
+
+ 100	   CONTINUE
+	ENDIF
+	
+	IF (agg_dim .EQ. f_dim) THEN
+	   n = cxlo(f_dim)
+           DO 200 m = cxlo(5), cxhi(5)
+	   DO 200 l = cxlo(4), cxhi(4)
+	   DO 200 k = cxlo(3), cxhi(3)
+	   DO 200 j = cxlo(2), cxhi(2)
+	   DO 200 i = cxlo(1), cxhi(1)
 
-	   IF (src(i,j,k,l,m,n) .NE. bad_src) THEN
-	      dst(i,j,k,l,mloc,n) = src(i,j,k,l,m,n)
-	   ELSE
-	      dst(i,j,k,l,mloc,n) = bad_dst
-	   ENDIF
+	      IF (src(i,j,k,l,m,n) .NE. bad_src) THEN
+	         dst(i,j,k,l,m,aloc) = src(i,j,k,l,m,n)
+	      ELSE
+	         dst(i,j,k,l,m,aloc) = bad_dst
+	      ENDIF
 
- 100	CONTINUE
+ 200	   CONTINUE
+	ENDIF
 
 	RETURN
 	END 
diff --git a/fer/utl/copy_agg_ptr_into_sub.F b/fer/utl/copy_agg_ptr_into_sub.F
index 7969df5..1897819 100644
--- a/fer/utl/copy_agg_ptr_into_sub.F
+++ b/fer/utl/copy_agg_ptr_into_sub.F
@@ -1,4 +1,4 @@
-	SUBROUTINE COPY_AGG_PTR_INTO_SUB( mloc, cxlo, cxhi,
+	SUBROUTINE COPY_AGG_PTR_INTO_SUB( aloc, cxlo, cxhi, agg_dim,
      .		src, slox, shix, sloy, shiy, sloz, shiz, 
      .		slot, shit, sloe, shie, slof, shif,
      .		dst, dlox, dhix, dloy, dhiy, dloz, dhiz, 
@@ -39,16 +39,19 @@
 *
 * copy data from source grid into dstination grid using limits of source
 * context (i.e. destination grid is ASSUMED) big enough to hold data
-* Copy the aggregate member into e-axis location pointed to
-* by index mloc.
+* Copy the aggregate member into Aggregate-axis location pointed to
+* by index aloc.
 *
 * programmer - Ansley Manke
 * NOAA/PMEL, Seattle, WA - Thermal Modeling and Analysis Program
 *
 * V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
+* V695 2/15 *acm* 6D add aggregation in forecast direction
 *
+	include 'ferret.parm'
+
 * calling argument declarations:
-	INTEGER mloc, cxlo(*), cxhi(*),
+	INTEGER aloc, cxlo(*), cxhi(*), agg_dim,
      .		slox, shix, sloy, shiy, sloz, shiz, 
      .		slot, shit, sloe, shie, slof, shif,
      .		dlox, dhix, dloy, dhiy, dloz, dhiz, 
@@ -61,16 +64,31 @@
 
 * --- end of introductory code ---
 
-	m = cxlo(5)
-        DO 100 n = cxlo(6), cxhi(6)
-	DO 100 l = cxlo(4), cxhi(4)
-	DO 100 k = cxlo(3), cxhi(3)
-	DO 100 j = cxlo(2), cxhi(2)
-	DO 100 i = cxlo(1), cxhi(1)
+	IF (agg_dim .EQ. e_dim) THEN
+	   m = cxlo(agg_dim)
+           DO 100 n = cxlo(6), cxhi(6)
+	   DO 100 l = cxlo(4), cxhi(4)
+	   DO 100 k = cxlo(3), cxhi(3)
+	   DO 100 j = cxlo(2), cxhi(2)
+	   DO 100 i = cxlo(1), cxhi(1)
+
+	      CALL COPY_C_STRING( src(i,j,k,l,m,n), dst(i,j,k,l,aloc,n) )
+
+ 100	   CONTINUE
+	ENDIF
+
+	IF (agg_dim .EQ. f_dim) THEN
+	   n = cxlo(agg_dim)
+           DO 200 m = cxlo(5), cxhi(5)
+	   DO 200 l = cxlo(4), cxhi(4)
+	   DO 200 k = cxlo(3), cxhi(3)
+	   DO 200 j = cxlo(2), cxhi(2)
+	   DO 200 i = cxlo(1), cxhi(1)
 
-	   CALL COPY_C_STRING( src(i,j,k,l,m,n), dst(i,j,k,l,mloc,n) )
+	      CALL COPY_C_STRING( src(i,j,k,l,m,n), dst(i,j,k,l,m,aloc) )
 
- 100	CONTINUE
+ 200	   CONTINUE
+	ENDIF
 
 	RETURN
 	END 
diff --git a/fer/utl/count_number_list.F b/fer/utl/count_number_list.F
index f9182d2..3e3ef95 100644
--- a/fer/utl/count_number_list.F
+++ b/fer/utl/count_number_list.F
@@ -44,13 +44,16 @@
 * V530:  7/01 *sh* - allow single quoted strings
 * V540:  9/01 *sh* - change "SYSTEM:" to "SPAWN:"
 *       *acm* 3/12   add disclaimer
+* V693+ *sh* 2/15 - add support for _DQ_ and _SQ_ quotations
 
 * calling argument declarations
 	INTEGER		n
 	CHARACTER*(*)	string
 
 * internal variable declarations
-	LOGICAL		in_quote, doub_quote, no_chars_yet
+	LOGICAL		in_quote, no_chars_yet,
+     .			doub_quote, sing_quote, DQ_quote, SQ_quote,
+     .			doub_atom,  sing_atom,  DQ_atom,  SQ_atom
 	INTEGER 	TM_LENSTR1, STR_CASE_BLIND_COMPARE,
      .			i, start, slen, vax_code
 	CHARACTER*1	c
@@ -68,6 +71,10 @@
 	slen = TM_LENSTR1( string )
 	start = 1
 	no_chars_yet = .TRUE.
+	doub_quote = .FALSE.
+	sing_quote = .FALSE.
+	DQ_quote   = .FALSE.
+	SQ_quote   = .FALSE.
 
 * trim around the enclosing "{}" brackets
 	IF ( string(slen:slen) .EQ. '}' ) slen = slen - 1
@@ -80,26 +87,50 @@
 	i = start - 1
  100	i = i + 1
 	   c = string(i:i)
+
+* ... identify quotation atoms
+	   doub_atom = c.EQ.'"'
+	   sing_atom = c.EQ."'"
+	   IF (i+3 .LE. slen) THEN
+	      DQ_atom = string(i:i+3) .EQ. "_DQ_"
+	      SQ_atom = string(i:i+3) .EQ. "_SQ_"
+	   ELSE
+	      DQ_atom = .FALSE.
+	      SQ_atom = .FALSE.
+	   ENDIF
+
 	   IF (in_quote) THEN
 
 #ifdef NO_DOUBLE_ESCAPE_SLASH
-              IF (c .EQ. '\') THEN
+              IF (c .EQ. '\') THEN  ! ' char for emacs
 #else
               IF (c .EQ. '\\') THEN
 #endif
 	         i = i + 1   ! skip processing of next character 
-	      ELSEIF  (     doub_quote .AND. c.EQ.'"'
-     .	          .OR. .NOT.doub_quote .AND. c.EQ."'" ) THEN
-	         in_quote = .FALSE.
+	      ELSEIF  (     doub_quote .AND. doub_atom
+     .	               .OR. sing_quote .AND. sing_atom 
+     .	               .OR. DQ_quote   .AND. DQ_atom 
+     .	               .OR. SQ_quote   .AND. SQ_atom ) THEN
+	         in_quote   = .FALSE.
+	         doub_quote = .FALSE.
+	         sing_quote = .FALSE.
+	         DQ_quote   = .FALSE.
+	         SQ_quote   = .FALSE.
 	      ELSE
 	         CONTINUE   ! skip over anything inside of quotations
 	      ENDIF
-	   ELSEIF (c .EQ. '"') THEN
-	      in_quote = .TRUE.
+	   ELSEIF (doub_atom) THEN
+	      in_quote   = .TRUE.
 	      doub_quote = .TRUE.
-	   ELSEIF (c .EQ. "'") THEN
-	      in_quote = .TRUE.
-	      doub_quote = .FALSE.
+	   ELSEIF (sing_atom) THEN
+	      in_quote   = .TRUE.
+	      sing_quote = .TRUE.
+	   ELSEIF (DQ_atom  ) THEN
+	      in_quote   = .TRUE.
+	      DQ_quote   = .TRUE.
+	   ELSEIF (SQ_atom  ) THEN
+	      in_quote   = .TRUE.
+	      SQ_quote   = .TRUE.
 	   ELSEIF (c .EQ. ',') THEN
 	      n = n+1
 	   ELSEIF (c.EQ.'s' .OR. c.EQ.'S' ) THEN
diff --git a/fer/utl/decrement_plot_grid.F b/fer/utl/decrement_plot_grid.F
old mode 100755
new mode 100644
diff --git a/fer/utl/display_dependency_sub.F b/fer/utl/display_dependency_sub.F
index dd9b79d..457b383 100644
--- a/fer/utl/display_dependency_sub.F
+++ b/fer/utl/display_dependency_sub.F
@@ -41,7 +41,9 @@
 * written for VAX computer under VMS operating system
 
 * V685  *sh* 11/13 
-* V690  *sh* 11/13 - minor adjustments to support auxiliary regridding variables 
+* 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
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -128,7 +130,7 @@
 
 * initialize this record
 	      tree_level = level(rec)
-	      var  = var_or_start(rec)
+ 	      var  = var_or_start(rec)
 	      cat  = cat_or_end  (rec)
 	      dset = dataset(rec)
 	      uvar = parent_uv(rec)
@@ -142,10 +144,16 @@
 	      IF ( tell_dset ) THEN
 	         dsetname = '[d='
 	         dsetname(4:) = GET_UNIQUE_DSET_NAME( dset )
-	         dnamlen = TM_LENSTR1(dsetname)
+	         dnamlen = TM_LENSTR1(dsetname) + 1
 	         dsetname(dnamlen:dnamlen) = ']'
 	      ENDIF
 
+* document regridding dependencies as special, prefixed by "regrid to "
+	      IF ( item .EQ. pcx_vtree_regrid_report ) THEN
+	         line_buff(blanks+1:) = 'regrid to '
+	         blanks = blanks + 10
+	      ENDIF
+
 * document this variable
 	      IF ( flag(rec) .EQ. df_unknown_var ) THEN
 	         istart = uvar_item_start(item, uvar)
@@ -157,7 +165,7 @@
 	            llen = llen + dnamlen
 	         ENDIF
 	         line_buff(llen+1:) =
-     .			' ??                           <== UNKNOWN VARIABLE ******'
+     .			' ??			<== UNKNOWN VARIABLE ******'
 	      ELSEIF ( flag(rec) .EQ. df_unknown_dataset ) THEN
 	         istart = uvar_item_start(item, uvar)
 	         iend   = uvar_item_end  (item, uvar)
@@ -168,17 +176,23 @@
 	            llen = llen + dnamlen
 	         ENDIF
 	         line_buff(llen+1:) = 
-     .			' ??                           <== UNKNOWN DATASET ******'
+     .			' ??			<== UNKNOWN DATASET ******'
 	      ELSEIF ( flag(rec) .EQ. df_unknown_grid ) THEN
-	         istart = uvar_item_start(item, uvar)
-	         iend   = uvar_item_end  (item, uvar)
+	         IF ( item .EQ. pcx_vtree_regrid_report ) THEN
+	            istart = var
+	            iend   = cat
+	         ELSE
+	            istart = uvar_item_start(item, uvar)
+	            iend   = uvar_item_end  (item, uvar)
+	         ENDIF
 	         line_buff(blanks+1:) = uvar_text(uvar)(istart:iend)
 	         llen = (iend-istart+1) + blanks
 	         IF (tell_dset) THEN
 	            line_buff(llen+1:) = dsetname
 	            llen = llen + dnamlen
 	         ENDIF
-	         line_buff(llen+1:) = '   (unknown grid)'
+	         line_buff(llen+1:) =
+     .			' ??		<== UNKNOWN GRID ******'
 	      ELSEIF ( flag(rec) .EQ. df_syntax_error ) THEN
 	         istart = uvar_item_start(item, uvar)
 	         iend   = uvar_item_end  (item, uvar)
@@ -224,7 +238,7 @@
 	            llen = llen + dnamlen
 	         ENDIF
 	         line_buff(llen+1:) = ' = ' //uvar_text(var)
-	      ELSEIF (cat .EQ. cat_aggregate_var ) THEN
+	      ELSEIF (cat .EQ. cat_agg_e_var .OR. cat .EQ. cat_agg_f_var) THEN
 	         IF (.NOT. dependency_tree_show_uvars) GOTO 500
 	         line_buff(blanks+1:) = VAR_CODE(cat, var)
 	         llen = TM_LENSTR1(line_buff)
@@ -285,6 +299,14 @@
 	   valid_var = flag(rec) .EQ. df_valid_var 
      .	          .OR. flag(rec) .EQ. df_valid_aux_var 
 
+	   IF ( item .EQ. pcx_vtree_regrid_report ) THEN
+* ... special prefix for regridding lines
+	      line_buff = 'regrid to '
+	      llen = 10
+	   ELSE
+	      llen = 0
+	   ENDIF
+
 * format one record
 	   IF     ( valid_var
      .	 .AND.      cat       .EQ. cat_user_var       ) THEN
@@ -304,7 +326,7 @@
      .           .AND. cat_or_end  (i) .EQ. cat_or_end  (rec)
 	         IF (dup) GOTO 2100
  2050	      CONTINUE
-	      line_buff = VAR_CODE(cat,var)		! valid file variable
+	      line_buff(llen+1:) = VAR_CODE(cat,var)	! valid file variable
 	      llen = TM_LENSTR1(line_buff)
 	      dsetname = '[d='
 	      dsetname(4:) = GET_UNIQUE_DSET_NAME( dset )
@@ -314,23 +336,33 @@
 	   ELSEIF ( flag(rec) .EQ. df_unknown_var ) THEN
 	      istart = uvar_item_start(item, uvar)
 	      iend   = uvar_item_end  (item, uvar)
-	      line_buff = uvar_text(uvar)(istart:iend)//'  (unknown variable)'
+	      line_buff = '*unknown variable: '//
+     .			uvar_text(uvar)(istart:iend)
 	   ELSEIF ( flag(rec) .EQ. df_unknown_dataset ) THEN
 	      istart = uvar_item_start(item, uvar)
 	      iend   = uvar_item_end  (item, uvar)
-	      line_buff = uvar_text(uvar)(istart:iend)//'  (unknown dataset)'
+	      line_buff = '*unknown dataset: '//
+     .			uvar_text(uvar)(istart:iend)
 	   ELSEIF ( flag(rec) .EQ. df_unknown_grid ) THEN
-	      istart = uvar_item_start(item, uvar)
-	      iend   = uvar_item_end  (item, uvar)
-	      line_buff = uvar_text(uvar)(istart:iend)//'  (unknown grid)'
+	      IF ( item .EQ. pcx_vtree_regrid_report ) THEN
+	         istart = var
+	         iend   = cat
+	      ELSE
+	         istart = uvar_item_start(item, uvar)
+	         iend   = uvar_item_end  (item, uvar)
+	      ENDIF
+	      line_buff = '*unknown grid: '//
+     .			uvar_text(uvar)(istart:iend)
 	   ELSEIF ( flag(rec) .EQ. df_syntax_error ) THEN
 	      istart = uvar_item_start(item, uvar)
 	      iend   = uvar_item_end  (item, uvar)
-	      line_buff = uvar_text(uvar)(istart:iend)//'   *** WARNING: SYNTAX ERROR'
+	      line_buff = '   *WARNING: syntax error: '//
+     .			uvar_text(uvar)(istart:iend)
 	   ELSEIF ( flag(rec) .EQ. df_unknown_auxvar ) THEN
 	      istart = uvar_item_start(item, uvar) + var - 1
 	      iend   = uvar_item_start(item, uvar) + cat - 1
-	      line_buff = uvar_text(uvar)(istart:iend)//'  (unknown auxiliary variable)'
+	      line_buff = '*unknown auxiliary variable: '//
+     .			uvar_text(uvar)(istart:iend)
 	   ENDIF
 
 	   CALL SPLIT_LIST( pttmode_explct, show_lun, '   '//line_buff, 0)
diff --git a/fer/utl/extract_dp_line.F b/fer/utl/extract_arg1_line.F
similarity index 66%
copy from fer/utl/extract_dp_line.F
copy to fer/utl/extract_arg1_line.F
index aa41198..50f74bf 100644
--- a/fer/utl/extract_dp_line.F
+++ b/fer/utl/extract_arg1_line.F
@@ -1,7 +1,6 @@
-	SUBROUTINE EXTRACT_DP_LINE( cx, grid_data, dp_line, idim, nout )
+	SUBROUTINE EXTRACT_ARG1_LINE( src, axis, axmin, axmax,
+     .				      i, j, k, l, m, n, 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),
@@ -35,44 +34,55 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* extract a single line of data from a memory variable grid along axis idim
-* no error checking is done
+* extract a single line of data along requested axis from a memory variable
+* Note that whatever the axis orientation, the corresponging index position
+* from the i,j,k,l,m,n arguments is irrelevant
 
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
 * written for VAX computer under VMS operating system
 *
-* V200:  9/20/89 - 4D symmetrical
-*       *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V698+ *sh* 5/15
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
-	include 'errmsg.parm'
-	include 'xvariables.cmn'
-	include 'xcontext.cmn'
-	include 'xmem_subsc.cmn'
+	include	'xmem_subsc.cmn'
 
 * calling argument declarations:
-	INTEGER	cx, mv, idim, nout
-	REAL grid_data( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,m1lot:m1hit,m1loe:m1hie,m1lof:m1hif )
-	REAL*8	dp_line(nout)
+	INTEGER	axis, axmin, axmax, i, j, k, l, m, n
+        REAL    src(m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
+     .              m1lot:m1hit,m1loe:m1hie,m1lof:m1hif )
+	REAL    line(axmin:axmax)
 
 * internal variable declarations:
-	INTEGER	iout, i, j, k, l, m, n
+	INTEGER	ss
 
 * extract the line
-	iout = 0
-	DO 200 n = cx_lo_s6(cx), cx_hi_s6(cx)
-	DO 200 m = cx_lo_s5(cx), cx_hi_s5(cx)
-	DO 200 l = cx_lo_s4(cx), cx_hi_s4(cx)
-	DO 200 k = cx_lo_s3(cx), cx_hi_s3(cx)
-	DO 200 j = cx_lo_s2(cx), cx_hi_s2(cx)
-	DO 200 i = cx_lo_s1(cx), cx_hi_s1(cx)
-
-	   iout = iout + 1
-	   dp_line( iout ) = grid_data( i,j,k,l,m,n )
-
- 200	CONTINUE
+	IF (axis .EQ. x_dim) THEN
+	   DO ss = axmin, axmax
+	      line(ss) = src(ss, j, k, l, m, n)
+	   ENDDO
+	ELSEIF (axis .EQ. y_dim) THEN
+	   DO ss = axmin, axmax
+	      line(ss) = src(i, ss, k, l, m, n)
+	   ENDDO
+	ELSEIF (axis .EQ. z_dim) THEN
+	   DO ss = axmin, axmax
+	      line(ss) = src(i, j, ss, l, m, n)
+	   ENDDO
+	ELSEIF (axis .EQ. t_dim) THEN
+	   DO ss = axmin, axmax
+	      line(ss) = src(i, j, k, ss, m, n)
+	   ENDDO
+	ELSEIF (axis .EQ. e_dim) THEN
+	   DO ss = axmin, axmax
+	      line(ss) = src(i, j, k, l, ss, n)
+	   ENDDO
+	ELSE    ! f_dim
+	   DO ss = axmin, axmax
+	      line(ss) = src(i, j, k, l, m, ss)
+	   ENDDO
+	ENDIF
 
 	RETURN
 	END
diff --git a/fer/utl/extract_dp_line.F b/fer/utl/extract_arg4_line.F
similarity index 66%
copy from fer/utl/extract_dp_line.F
copy to fer/utl/extract_arg4_line.F
index aa41198..d00cd88 100644
--- a/fer/utl/extract_dp_line.F
+++ b/fer/utl/extract_arg4_line.F
@@ -1,7 +1,6 @@
-	SUBROUTINE EXTRACT_DP_LINE( cx, grid_data, dp_line, idim, nout )
+	SUBROUTINE EXTRACT_ARG4_LINE( src, axis, axmin, axmax,
+     .				      i, j, k, l, m, n, 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),
@@ -35,44 +34,55 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* extract a single line of data from a memory variable grid along axis idim
-* no error checking is done
+* extract a single line of data along requested axis from a memory variable
+* Note that whatever the axis orientation, the corresponging index position
+* from the i,j,k,l,m,n arguments is irrelevant
 
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
 * written for VAX computer under VMS operating system
 *
-* V200:  9/20/89 - 4D symmetrical
-*       *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V698+ *sh* 5/15
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
-	include 'errmsg.parm'
-	include 'xvariables.cmn'
-	include 'xcontext.cmn'
-	include 'xmem_subsc.cmn'
+	include	'xmem_subsc.cmn'
 
 * calling argument declarations:
-	INTEGER	cx, mv, idim, nout
-	REAL grid_data( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,m1lot:m1hit,m1loe:m1hie,m1lof:m1hif )
-	REAL*8	dp_line(nout)
+	INTEGER	axis, axmin, axmax, i, j, k, l, m, n
+        REAL    src(m4lox:m4hix,m4loy:m4hiy,m4loz:m4hiz,
+     .              m4lot:m4hit,m4loe:m4hie,m4lof:m4hif )
+	REAL    line(axmin:axmax)
 
 * internal variable declarations:
-	INTEGER	iout, i, j, k, l, m, n
+	INTEGER	ss
 
 * extract the line
-	iout = 0
-	DO 200 n = cx_lo_s6(cx), cx_hi_s6(cx)
-	DO 200 m = cx_lo_s5(cx), cx_hi_s5(cx)
-	DO 200 l = cx_lo_s4(cx), cx_hi_s4(cx)
-	DO 200 k = cx_lo_s3(cx), cx_hi_s3(cx)
-	DO 200 j = cx_lo_s2(cx), cx_hi_s2(cx)
-	DO 200 i = cx_lo_s1(cx), cx_hi_s1(cx)
-
-	   iout = iout + 1
-	   dp_line( iout ) = grid_data( i,j,k,l,m,n )
-
- 200	CONTINUE
+	IF (axis .EQ. x_dim) THEN
+	   DO ss = axmin, axmax
+	      line(ss) = src(ss, j, k, l, m, n)
+	   ENDDO
+	ELSEIF (axis .EQ. y_dim) THEN
+	   DO ss = axmin, axmax
+	      line(ss) = src(i, ss, k, l, m, n)
+	   ENDDO
+	ELSEIF (axis .EQ. z_dim) THEN
+	   DO ss = axmin, axmax
+	      line(ss) = src(i, j, ss, l, m, n)
+	   ENDDO
+	ELSEIF (axis .EQ. t_dim) THEN
+	   DO ss = axmin, axmax
+	      line(ss) = src(i, j, k, ss, m, n)
+	   ENDDO
+	ELSEIF (axis .EQ. e_dim) THEN
+	   DO ss = axmin, axmax
+	      line(ss) = src(i, j, k, l, ss, n)
+	   ENDDO
+	ELSE    ! f_dim
+	   DO ss = axmin, axmax
+	      line(ss) = src(i, j, k, l, m, ss)
+	   ENDDO
+	ENDIF
 
 	RETURN
 	END
diff --git a/fer/utl/extract_dp_line.F b/fer/utl/extract_dp_line.F
index aa41198..d4436ca 100644
--- a/fer/utl/extract_dp_line.F
+++ b/fer/utl/extract_dp_line.F
@@ -45,6 +45,9 @@
 * V200:  9/20/89 - 4D symmetrical
 *       *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
 
+* 5/15 NOTE: the newer routine EXTRACT_ARG1_LINE can probably replace this
+*      and is more appropriately sensitive to argument idim
+
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
 	include 'errmsg.parm'
diff --git a/fer/utl/extract_dp_line2.F b/fer/utl/extract_dp_line2.F
index a20d9d9..bbcc019 100644
--- a/fer/utl/extract_dp_line2.F
+++ b/fer/utl/extract_dp_line2.F
@@ -45,6 +45,10 @@
 * V570 - reading 2nd line for bounds on a DEFINE AXIS/BOUNDS
 *       *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
 
+* 5/15 NOTE: the newer routine EXTRACT_ARG2_LINE can probably replace this
+*      and is more appropriately sensitive to argument idim
+
+
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
 	include 'errmsg.parm'
diff --git a/fer/utl/full_scan_indices.F b/fer/utl/full_scan_indices.F
new file mode 100644
index 0000000..bf9ef6f
--- /dev/null
+++ b/fer/utl/full_scan_indices.F
@@ -0,0 +1,142 @@
+	SUBROUTINE FULL_SCAN_INDICES (src, ksmin, ksmax,
+     .				 ks_start, ks_end,
+     .				 bad_src, targ,
+     .				 indices, coefs, kdmin, kdmax,
+     .				 ascnd, has_valid )
+
+*
+*
+*  This software was developed by the Thermal Modeling and Analysis
+*  Project(TMAP) of the National Oceanographic and Atmospheric
+*  Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+*  hereafter referred to as NOAA/PMEL/TMAP.
+*
+*  Access and use of this software shall impose the following
+*  obligations and understandings on the user. The user is granted the
+*  right, without any fee or cost, to use, copy, modify, alter, enhance
+*  and distribute this software, and any derivative works thereof, and
+*  its supporting documentation for any purpose whatsoever, provided
+*  that this entire notice appears in all copies of the software,
+*  derivative works and supporting documentation.  Further, the user
+*  agrees to credit NOAA/PMEL/TMAP in any publications that result from
+*  the use of this software or in any product that includes this
+*  software. The names TMAP, NOAA and/or PMEL, however, may not be used
+*  in any advertising or publicity to endorse or promote any products
+*  or commercial entity unless specific written permission is obtained
+*  from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+*  is not obligated to provide the user with any support, consulting,
+*  training or assistance of any kind with regard to the use, operation
+*  and performance of this software nor to provide the user with any
+*  updates, revisions, new versions or "bug fixes".
+*
+*  THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+*  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+*  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+*  ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+*  INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+*  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+*  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
+*
+*
+*	Routine to determine nearest neighbor index (lower index)
+*	on GRID1 for points on GRID2.
+
+*       Code is a delta on HUNT_INDICES.  That routine assumes src array
+*       is sorted, so it can use a binary search.  This routine uses a
+*       full scan to find nearest indices, and then continues the scan to make
+*       sure the result is not multiple-valued (a result of non-monotonic src)
+
+*       Note that the TARG array is always ascending
+
+* variable naming:
+*	's' refers to the source array -- the incoming list of values
+*	'd' refers to the destination arrays -- the outgoing indices and coefs
+*	min/max refer to the dimensioned limits of arrays
+*	_ok refers to to limits within which the arrays contain valid values
+
+
+* V698 *sh* 5/15 derived from Ferret source routine HUNT_INDICES
+
+	include 'ferret.parm'
+
+* calling argument declarations
+	LOGICAL	ascnd, has_valid
+	INTEGER	ksmin, ksmax, ks_start, ks_end, kdmin, kdmax,
+     .		indices(kdmin:kdmax)
+	REAL	src(ksmin:ksmax),
+     .			targ(kdmin:kdmax), coefs(kdmin:kdmax),
+     .			bad_src
+
+* internal variable declarations
+	INTEGER	ks, kd, slo, shi, sincr, nfound, ksfound, ksprev
+	REAL	vt, v0, v1
+
+********************************************
+* initialize
+	has_valid = .FALSE.
+	ksfound = ks_start    ! any valid index may go with coef=bad_val4
+
+* initialize loop direction
+	IF (ascnd) THEN
+	  sincr = 1
+	  slo   = ks_start
+	  shi   = ks_end
+	ELSE
+	  sincr = -1
+	  slo   = ks_end
+	  shi   = ks_start
+	ENDIF
+
+* outer loop - target axis points
+	DO kd = kdmin, kdmax
+
+* inner loop - a column of non-monotonic (semi-ordered) auxiliary coordinates
+	   vt = targ(kd)
+	   nfound = 0
+	   v0 = src(slo)
+	   DO ks = slo, shi, sincr
+
+	      IF (ks .NE. slo) v0 = v1   ! preceding test point
+	      v1 = src(ks)               ! new test point
+
+* does our target exactly match this src value?
+	      IF (vt .EQ. v1) THEN
+	         ksfound = ks
+	         nfound = nfound + 1
+	         CYCLE
+	      ENDIF
+
+* does our target value lie between two valid src values? 
+	      IF (v0 .NE. bad_src
+     .      .AND. v1 .NE. bad_src ) THEN
+* ... target lies between if sign of diff product is non-negative  
+	         IF ( ((vt-v0)*(v1-vt)) .GT. 0.0) THEN
+	            ksfound = ks
+	            nfound = nfound + 1
+	         ENDIF
+	      ENDIF
+	   ENDDO
+
+* save result
+	   indices(kd) = ksfound
+	   coefs(kd) = bad_val4
+
+	   IF (nfound .EQ. 1) THEN
+	      ksprev = ksfound-sincr
+	      IF (vt .EQ. src(ksfound) ) THEN
+!	         indices(kd) = ksfound
+	         coefs(kd) = 1.0
+	         has_valid = .TRUE.
+	      ELSEIF (src(ksfound) .GT. src(ksprev) ) THEN ! only ordered ok
+	         indices(kd) = ksprev
+	         coefs(kd) = (src(ksfound)-vt) / (src(ksfound)-src(ksprev))
+	         has_valid = .TRUE.
+	      ENDIF
+	   ENDIF
+	
+	ENDDO     ! end outer loop      
+
+	RETURN
+	END
+
diff --git a/fer/utl/gcf_impose_arg_lim_dflts.F b/fer/utl/gcf_impose_arg_lim_dflts.F
index 58cdae5..392654e 100644
--- a/fer/utl/gcf_impose_arg_lim_dflts.F
+++ b/fer/utl/gcf_impose_arg_lim_dflts.F
@@ -124,8 +124,8 @@
 	      cx_cal_id(cx_out)          = unspecified_int4
 !	      cx_trans (idim,cx_out)     = trans_no_transform
 !	      cx_trans_arg(idim,cx_out)  = bad_val4  
-	      IF (idim .EQ. t_dim) 
-     .                cx_calendar(cx_out) = .FALSE.
+	      IF (idim .EQ. t_dim .OR. idim .EQ. f_dim) 
+     .                cx_calendar(idim,cx_out) = .FALSE.
 
 	   ELSEIF (lo_off(idim).NE.0 .OR. hi_off(idim).NE.0) THEN
 * pass along the axis limits 
diff --git a/fer/utl/decrement_plot_grid.F b/fer/utl/get_abstract_line.F
old mode 100755
new mode 100644
similarity index 84%
copy from fer/utl/decrement_plot_grid.F
copy to fer/utl/get_abstract_line.F
index aa6c503..7aab070
--- a/fer/utl/decrement_plot_grid.F
+++ b/fer/utl/get_abstract_line.F
@@ -1,6 +1,7 @@
-	SUBROUTINE DECREMENT_PLOT_GRID
+	INTEGER FUNCTION GET_ABSTRACT_LINE(idim) 
 
 *
+*
 *  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,19 +34,20 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-
-* Ansley Manke NOAA/PMEL/TMAP 2/10/2014
 *
-*      Decrement the grid use count which was bumped up, saving the grid used
-*      in a SHADE/SET, FILL/SET, CONTOUR/SET or WIRE/SET command. See ticket 883.
+* return the abstract axis in the given direction
+
+* V694 
+        include 'tmap_dims.parm'
+        include 'xtm_grid.cmn_text'
+	include 'xfr_grid.cmn'	! w/ mgrid_abstract
 
-	include 'xbox_bounds.cmn'
+* calling argument declarations
+	INTEGER	idim
 
-	INTEGER grid
+* Get the axis
 
-	grid = bb_grid
-	IF (bb_grid_inccount .GT. 0) CALL TM_DEALLO_DYN_GRID (grid)
-	bb_grid_inccount = 0
+	GET_ABSTRACT_LINE = grid_line( idim, mgrid_abstract )
 
 	RETURN
 	END
diff --git a/fer/utl/hunt_indices.F b/fer/utl/hunt_indices.F
deleted file mode 100644
index df6494f..0000000
--- a/fer/utl/hunt_indices.F
+++ /dev/null
@@ -1,217 +0,0 @@
-	SUBROUTINE HUNT_INDICES (src, ksmin, ksmax,
-     .				 bad_src, targ,
-     .				 indices, coefs, kdmin, kdmax,
-     .				 kdlo_ok, kdhi_ok, ascnd )
-
-*
-*
-*  This software was developed by the Thermal Modeling and Analysis
-*  Project(TMAP) of the National Oceanographic and Atmospheric
-*  Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
-*  hereafter referred to as NOAA/PMEL/TMAP.
-*
-*  Access and use of this software shall impose the following
-*  obligations and understandings on the user. The user is granted the
-*  right, without any fee or cost, to use, copy, modify, alter, enhance
-*  and distribute this software, and any derivative works thereof, and
-*  its supporting documentation for any purpose whatsoever, provided
-*  that this entire notice appears in all copies of the software,
-*  derivative works and supporting documentation.  Further, the user
-*  agrees to credit NOAA/PMEL/TMAP in any publications that result from
-*  the use of this software or in any product that includes this
-*  software. The names TMAP, NOAA and/or PMEL, however, may not be used
-*  in any advertising or publicity to endorse or promote any products
-*  or commercial entity unless specific written permission is obtained
-*  from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
-*  is not obligated to provide the user with any support, consulting,
-*  training or assistance of any kind with regard to the use, operation
-*  and performance of this software nor to provide the user with any
-*  updates, revisions, new versions or "bug fixes".
-*
-*  THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
-*  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-*  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-*  ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
-*  INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-*  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
-*  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
-*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
-*
-*
-*	Routine to determine nearest neighbor index (lower index)
-*	on GRID1 for points on GRID2.
-
-*	Taken from Numerical Recipes, Chapter 3, Section "Search With
-*	Correlated Values"
-
-*       Note that the SRC array may be either ascending or descending order
-*       but the TARG array is always ascending
-
-* variable naming:
-*	's' refers to the source array -- the incoming list of values
-*	'd' refers to the destination arrays -- the outgoing indices and coefs
-*	min/max refer to the dimensioned limits of arrays
-*	_ok refers to to limits within which the arrays contain valid values
-
-* V690 *sh* 12/13 - derived from Ferret source routine HUNT_R4
-*             compute an entire array of indices and coefficient (frac)
-*             in a single call.  If exact match, insist on frac=1.0 case.
-*             IF reversed (.not.ascnd) return the index and coef for the
-*	      lower *coordinate value* point, not the lower index as before
-
-	include 'ferret.parm'
-
-	integer		ksmin, ksmax, kdmin, kdmax, indices(kdmin:kdmax),
-     .			kslo_ok,kshi_ok,ndx_lo,ndx_mid,ndx_hi,inc, k,
-     .			kdlo_ok, kdhi_ok
-
-	real		src(ksmin:ksmax),
-     .			targ(kdmin:kdmax), coefs(kdmin:kdmax),
-     .			bad_src, frac
-
-	logical		find_1st_ok, ascnd
-
-*******************************************************************************
-* initialize
-	kdlo_ok = kdmin
-	kdhi_ok = kdmax
-
-*       FIND A CONTIGUOUS BLOCK OF VALID VALUES IN THE src ARRAY
-	find_1st_ok = .TRUE.  ! here refers to the input values src
-	DO 50 k = ksmin, ksmax
-* ... skip invalid values at start of line
-	   IF ( find_1st_ok ) THEN
-	      IF (src(k) .EQ. bad_src) GOTO 50
-	      find_1st_ok = .FALSE.
-	      kslo_ok = k
-* ... terminate if invalid point encountered after valid points
-	   ELSEIF ( src(k) .EQ. bad_src ) THEN
-	      kshi_ok = k-1
-	      GOTO 60
-	   ENDIF
- 50	CONTINUE
-	IF (find_1st_ok) THEN
-	   kdlo_ok = unspecified_int4    !  no input values to hunt among
-	   kdhi_ok = unspecified_int4
-	   RETURN
-	ELSE
-	   kshi_ok = ksmax
-	ENDIF
-
-*       DEGENERATE CASE? (ONLY A SINGLE POINT TO 'hunt' AMONG)
- 60	IF (kshi_ok .EQ. kslo_ok) THEN
-	   DO 100 k = kdmin, kdmax
-	      indices(k) = kslo_ok
-	      IF (targ(k) .eq. src(kslo_ok)) THEN
-	         coefs  (k) = 1.0
-	         kdlo_ok = k
-	         kdhi_ok = k
-	      ELSE
-	         coefs  (k) = bad_val4
-	      ENDIF
- 100	   CONTINUE
-	   RETURN
-	ENDIF
-
-*	TRUE IF ASCENDING GRID COORDINATES, FALSE OTHERWISE
-	ascnd = src(kshi_ok) .gt. src(kslo_ok)
-
-* set initial guess for index from array src
-	ndx_lo = kslo_ok
-	find_1st_ok = .TRUE.  ! now refers to the output coefs
-
-	DO 1000 k = kdmin, kdmax
-
-! this should never happen, givin the initialization value
-!*	IF INITIAL GUESS IS NO GOOD, GO IMMEDIATELY TO BISECTION
-!	    if (ndx_lo .lt. kslo_ok .or. ndx_lo .gt. kshi_ok) then
-!	       ndx_lo = kslo_ok - 1
-!	       ndx_hi = kshi_ok + 1
-!	       goto 3
-!	    end if
- 
- 	    inc = 1
-
-*	QUICKLY GET A GOOD ESTIMATE FOR LOCATION IN GRID1
-	   if (targ(k) .ge. src(ndx_lo) .eqv. ascnd) then
-*	   HUNT UP FOR PLACEMENT IN GRID
-1	      ndx_hi = ndx_lo + inc
-	      
-	      if (ndx_hi .gt. kshi_ok) then 
-*	      HUNT OVER -- OFF HIGH END OF GRID
-	         ndx_hi = kshi_ok + 1
-	      else if (targ(k) .gt. src(ndx_hi) .eqv. ascnd) then
-	         ndx_lo = ndx_hi
-	         inc    = inc + inc
-	         goto 1
-	      end if
-	   else
-*	   HUNT DOWN FOR PLACEMENT
-	      ndx_hi = ndx_lo
-2	      ndx_lo = ndx_hi - inc
-
-	      if (ndx_lo .lt. kslo_ok) then
-*	      FALL OFF LOW END OF GRID -- HUNT IS OVER
-	         ndx_lo = kslo_ok - 1
-	      else if (targ(k) .lt. src(ndx_lo) .eqv. ascnd) then
-	         ndx_hi = ndx_lo
-	         inc = inc + inc
-	         goto 2
-	      end if	
-	   end if
-
-*	USE BISECTION TO DETERMINE EXACT LOCATION IN GRID
-3	   IF (ndx_hi - ndx_lo .eq. 1) THEN
-
-* return result -- including interpolation fraction
-
-	      IF (ndx_lo.GE.kslo_ok .AND. ndx_lo.LT.kshi_ok) THEN
-	         IF (targ(k) .EQ. src(ndx_lo)) THEN
-	            frac = 1.0
-	         ELSEIF (targ(k) .EQ. src(ndx_hi)) THEN
-	            ndx_lo = ndx_hi		! 11/13 addition
-	            frac = 1.0
-	         ELSEIF (.NOT.ascnd) THEN	! 12/13 adtn - reverse-ordered
-	            frac = (src(ndx_lo)-targ(k)) / (src(ndx_lo)-src(ndx_hi))
-	            ndx_lo = ndx_hi		! hi index is lo position
-	         ELSE
-	            frac = (src(ndx_hi)-targ(k)) / (src(ndx_hi)-src(ndx_lo))
-	         ENDIF
-	         find_1st_ok = .FALSE.
-	      ELSE    
-	         frac = bad_val4
-* ... the "ok" limits can include only valid coefficient values
-	         IF (find_1st_ok) THEN
-	            kdlo_ok = k + 1
-	         ELSE
-	            IF (k .LE. kdhi_ok) kdhi_ok = k - 1
-	         ENDIF
-	      ENDIF
-
-* store the result just found
-	      indices(k) = ndx_lo
-	      coefs(k) = frac
-
-	      GOTO 900
-	   ENDIF
-
-	   ndx_mid = (ndx_hi + ndx_lo)/2
-	   if (targ(k) .gt. src(ndx_mid) .eqv. ascnd) then
-	      ndx_lo = ndx_mid
-	   else
-	      ndx_hi = ndx_mid
-	   end if
-   
-   	   goto 3
-
-* prepare for next hunt
- 900	   IF     (ndx_lo .LT. kslo_ok) THEN
-	      ndx_lo = kslo_ok
-	   ELSEIF (ndx_lo .GT. kshi_ok) THEN
-	      ndx_lo = kshi_ok
-	   ENDIF
-
- 1000	CONTINUE
-
-	RETURN
-	end
diff --git a/fer/utl/inherit_attrs.F b/fer/utl/inherit_attrs.F
index 8174281..a06b9e1 100644
--- a/fer/utl/inherit_attrs.F
+++ b/fer/utl/inherit_attrs.F
@@ -98,7 +98,7 @@
       IF (dset1 .EQ. pdset_irrelevant) dset1 = cx_data_set(cx_last) 
 
       cat = cx_category(cx)
-      IF (cat .EQ. cat_user_var) dset1 = -1
+      IF (cat .EQ. cat_user_var) dset1 = pdset_uvars
 
       CALL GET_NEW_CX( cx_last, cx_cmnd, .TRUE., status )
       IF ( status .NE. ferr_ok ) GOTO 5000
@@ -113,7 +113,7 @@
       IF (dset2 .EQ. pdset_irrelevant) dset2 = cx_data_set(cx_last) 
 
       cat = cx_category(cx)
-      IF (cat .EQ. cat_user_var) dset2 = -1
+      IF (cat .EQ. cat_user_var) dset2 = pdset_uvars
 
 * Get varid for each variable.
       CALL CD_GET_VAR_ID (dset1, varname1, varid1, status)
diff --git a/fer/utl/isubscr_cx.F b/fer/utl/isubscr_cx.F
index 4fd7f64..f86e76f 100644
--- a/fer/utl/isubscr_cx.F
+++ b/fer/utl/isubscr_cx.F
@@ -59,6 +59,7 @@
 *                   of the grid cell, precicision could cause the wrong index 
 *                   to be returned.
 * V683  *acm*10/12 Improve handling of F axes and info about the calendar of the grid.
+* V695  *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
 
 	include 'tmap_dims.parm'
 #      include "tmap_dset.parm"
@@ -99,7 +100,7 @@
 	ENDIF
 
 * time expressed as seconds since BC ?
-	calendar = (idim .EQ. t_dim .OR. idim .EQ. f_dim) .AND. cx_calendar(cx) 
+	calendar = (idim .EQ. t_dim .OR. idim .EQ. f_dim) .AND. cx_calendar(idim,cx) 
 	IF (idim.EQ.f_dim .AND. (line_t0(axis) .EQ. char_init20)) calendar = .FALSE.
 
 	IF ( calendar ) THEN
diff --git a/fmt/src/tm_ww_ax_1_n.F b/fer/utl/its_fmrc.F
similarity index 74%
copy from fmt/src/tm_ww_ax_1_n.F
copy to fer/utl/its_fmrc.F
index 129235e..e9daace 100644
--- a/fmt/src/tm_ww_ax_1_n.F
+++ b/fer/utl/its_fmrc.F
@@ -1,4 +1,4 @@
-	SUBROUTINE TM_WW_AX_1_N (axis, lo, hi)
+	LOGICAL FUNCTION ITS_FMRC( grid )
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -33,34 +33,37 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* Return the coordinates of the first and Nth coordinate points of an axis
-* Modulo is ignored in this calculation
+* is the grid indicative of an FMRC variable
+* True if both the T and F axes exist and have units of time 
 
-* V541 *sh* 2/02
 
-	include 'tmap_dims.parm'
-#include "gt_lib.parm"
-	include	'xtm_grid.cmn_text'
+
+* V695+ *sh* 4/15
 
 * calling argument declarations
-	INTEGER axis
-	REAL*8 lo, hi
+	INTEGER	grid
 
 * internal variable declarations
-	INTEGER	isub1, llen
+	INTEGER tline, fline
+* none
+
+	include	'tmap_dims.parm'
+	include 'ferret.parm'
+	include 'xtm_grid.cmn_text'
+	
+
+	tline = grid_line(t_dim, grid)
+	fline = grid_line(f_dim, grid)
 
-	IF ( axis .LT. 0 .OR. axis .GT. line_ceiling ) THEN
-	  lo = unspecified_val8
-	  hi = unspecified_val8
-	ELSEIF ( line_regular(axis) ) THEN
-	  lo = line_start(axis)
-	  hi = line_start(axis) + (line_dim(axis)-1)*line_delta(axis)
-	ELSE
-	  isub1 = line_subsc1(axis)
-	  llen = line_dim(axis)
-	  lo = line_mem(isub1)
-	  hi = line_mem(isub1 + llen - 1)
-	ENDIF
+	ITS_FMRC =
+     .	     tline .NE. mnormal
+     . .AND. fline .NE. mnormal
+     . .AND. line_name(tline) .NE. 'ABSTRACT'
+     . .AND. line_name(fline) .NE. 'ABSTRACT'
+     . .AND. line_unit_code(tline) .LT. 0
+     . .AND. line_unit_code(fline) .LT. 0
+     . .AND. line_direction(tline)(1:1) .EQ. 'T'
+     . .AND. line_direction(fline)(1:1) .EQ. 'F'
 
 	RETURN
 	END
diff --git a/fer/ctx/del_cx_dim.F b/fer/utl/itsa_1lineif.F
similarity index 65%
copy from fer/ctx/del_cx_dim.F
copy to fer/utl/itsa_1lineif.F
index d176ba6..4336268 100644
--- a/fer/ctx/del_cx_dim.F
+++ b/fer/utl/itsa_1lineif.F
@@ -1,4 +1,4 @@
-	SUBROUTINE DEL_CX_DIM( idim, cx )
+	LOGICAL FUNCTION ITSA_1LINEIF( cmnd, slen )
 
 *
 *
@@ -35,32 +35,52 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* eliminate all data specifying an axis in a context
+* determine whether the given command string is a one-line IF command of the
+* form
+*      IF 0_or_1 THEN command_which_include_ELSE [ENDIF optional]
 
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 - 9/23/87
-* V200:  5/19/89 - reordered _ss dims
-* 9/97 *kob* - eliminate newly create cx_calendar
-*       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 
-	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'xcontext.cmn'
+* V693+  *sh* 12/14  (borrowing code from PROCESS_IF.F
 
 * calling argument declarations
-	INTEGER	cx, idim
+	CHARACTER*(*) cmnd
+	INTEGER	slen
+
+* local variable declarations
+	INTEGER i, pos_then
+
+        CHARACTER*1     tab
+#ifdef NO_INTRINSIC_IN_PARAMETER
+	PARAMETER     ( tab = o'011' )
+#else
+	PARAMETER     ( tab = CHAR(9))
+#endif
+
+
+* NOTE: this code **ASSUMES*
+*  1) that the starting characters of the command string are "IF "
+*  2) that there is no bang-comment string
+*  3) that the string is already up-cased
 
-	cx_lo_ss    ( cx, idim ) = unspecified_int4
-	cx_hi_ss    ( cx, idim ) = unspecified_int4
-	cx_lo_ww    ( idim, cx ) = unspecified_val8
-	cx_hi_ww    ( idim, cx ) = unspecified_val8
-	cx_trans    ( idim, cx ) = trans_no_transform
-	cx_trans_arg( idim, cx ) = bad_val4
-	if (idim .EQ. t_dim) 
-     .      cx_calendar(cx) = .FALSE.
 
+* the test is simply that the command contains "THEN" and there is further
+* text found after it
+
+	pos_then = INDEX(cmnd(:slen), 'THEN')
+	IF ( pos_then .GT. 0 ) THEN
+	   DO i = pos_then+4, slen
+              IF (cmnd(i:i).NE. ' ' .AND. cmnd(i:i).NE. tab) GOTO 100
+	   ENDDO
+* ... no characters found after THEN -- this is not a one-liner
+	ENDIF
+
+	ITSA_1LINEIF = .FALSE.
 	RETURN
+
+* we found a "THEN" and we also found more text after it
+ 100	ITSA_1LINEIF = .TRUE.
+	RETURN
+
 	END
diff --git a/fer/utl/decrement_plot_grid.F b/fer/utl/itsa_const_var.F
old mode 100755
new mode 100644
similarity index 81%
copy from fer/utl/decrement_plot_grid.F
copy to fer/utl/itsa_const_var.F
index aa6c503..eba1a0b
--- a/fer/utl/decrement_plot_grid.F
+++ b/fer/utl/itsa_const_var.F
@@ -1,6 +1,7 @@
-	SUBROUTINE DECREMENT_PLOT_GRID
+	LOGICAL FUNCTION ITSA_CONST_VAR( uvar )
 
 *
+*
 *  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,19 +34,26 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-
-* Ansley Manke NOAA/PMEL/TMAP 2/10/2014
 *
-*      Decrement the grid use count which was bumped up, saving the grid used
-*      in a SHADE/SET, FILL/SET, CONTOUR/SET or WIRE/SET command. See ticket 883.
+* is the indicated variable a constant-variable?
+
+* V695 acm 6/15
+
+* calling argument declarations
+	INTEGER	uvar
+
+* internal variable declarations
+
+	include	'tmap_dims.parm'
+	include 'ferret.parm'
+	include 'xvariables.cmn'
 
-	include 'xbox_bounds.cmn'
 
-	INTEGER grid
+* in reverse Polish order the final item of a constant variable will
+*  be a constant variable
 
-	grid = bb_grid
-	IF (bb_grid_inccount .GT. 0) CALL TM_DEALLO_DYN_GRID (grid)
-	bb_grid_inccount = 0
+	ITSA_CONST_VAR = uvar_item_type( uvar_num_items(uvar), uvar )
+     .		.EQ. alg_const_var
 
 	RETURN
 	END
diff --git a/fer/utl/match4.F b/fer/utl/match4.F
index e37a075..80794c7 100644
--- a/fer/utl/match4.F
+++ b/fer/utl/match4.F
@@ -47,11 +47,14 @@
 * V5.80 *acm* 7/6/04 If either string is a single blank character, then
 *                    len_to_test = 0 and MATCH4 was set true for all values 
 *                    of the other string.  Check for lengths of zero.
+* V6.96 *acm* 11/18/15 Declare model_string as *(*) to fix run-time error Ubuntu: Fortran runtime error: 
+*                     Actual string length is shorter than the declared one for dummy argument 'model_string' (2/4)
+
 
 	INTEGER		TM_LENSTR, len_model, len_test, len_to_test, i
 
 	CHARACTER*1	UPPER_CASE
-	CHARACTER*4	model_string
+	CHARACTER*(*)	model_string
 	CHARACTER*(*)	test_string
         LOGICAL         result
 
diff --git a/fer/utl/match_quoted_name.F b/fer/utl/match_quoted_name.F
index 5bcabc8..a0adbec 100644
--- a/fer/utl/match_quoted_name.F
+++ b/fer/utl/match_quoted_name.F
@@ -51,6 +51,7 @@
 *              before calling this function, make sure
 *              len_test = TM_LENSTR(test_string)
 *              len_model_chars = TM_LENSTR(model_string)
+* 2/15 *sh* added support for _SQ_
 
 * calling argument declarations:
 	CHARACTER*(*)	model_string
@@ -59,7 +60,7 @@
         INTEGER         len_model_chars
 
 * internal variable declarations:
-	LOGICAL         is_quoted
+	LOGICAL         is_quoted, is_SQ
 	INTEGER		len_model, i, len_test1
         LOGICAL         result
 
@@ -75,15 +76,30 @@
            len_test1 = len_test
         ENDIF
 
+* _SQ_ as a possible substitute for "'"
+	is_SQ = .FALSE.
+	IF  ( test_string(1:1) .EQ. "_"
+     .  .AND. len_test .GE. 8           ) THEN
+	   is_SQ = test_string(1:4) .EQ. "_SQ_" 
+	   IF (is_SQ) is_quoted = test_string(len_test-3:len_test)
+     .				      .EQ. "_SQ_"
+	   IF (is_SQ) len_test1 = len_test - 8
+	ENDIF
+
 * test string cannot be shorter than model or longer than fully terminated model
-	IF (   len_test1        .LT. len_model_chars
+	IF (   len_test1       .LT. len_model_chars
      .	 .OR.( len_model_chars .LT. len_model		! fully terminated ?
      .	 .AND. len_test1       .GT. len_model_chars )	) GOTO 200
 
 
 	IF (is_quoted) THEN
-	   IF (model_string(1:len_model_chars) .NE. test_string(2:len_model_chars+1)) GOTO 200
+	   IF (model_string(1:len_model_chars)
+     .	  .NE. test_string (2:len_model_chars+1)) GOTO 200
+	ELSEIF (is_SQ) THEN
+	   IF (model_string(1:len_model_chars)
+     .	  .NE. test_string (5:len_model_chars+4)) GOTO 200
 	ELSE
+! sic - "tm_match_captial_name" is found in file tm_match_capital_name.c
            CALL tm_match_captial_name(test_string, model_string, 
      .          len_model_chars, result)
            IF(.NOT.result) GOTO 200	   
diff --git a/fer/utl/parse_string_list.F b/fer/utl/parse_string_list.F
index 3970bd1..ce2c559 100644
--- a/fer/utl/parse_string_list.F
+++ b/fer/utl/parse_string_list.F
@@ -46,13 +46,16 @@
 *                         statements.  use an octal constant instead 
 * 2/07 *acm* - fix bug 1488; if the last item is a missing string, save that.
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* 2/15 *sh* added support for _DQ_ and _SQ_
 
 * calling argument declarations
 	INTEGER		cx, mr, status
 	CHARACTER*(*)	string
 
 * internal variable declarations
-	LOGICAL		stored, in_quote, doub_quote, do_system_cmnd
+	LOGICAL		stored, in_quote, do_system_cmnd,
+     .			doub_atom,  sing_atom,  DQ_atom,  SQ_atom,
+     .			doub_quote, sing_quote, DQ_quote, SQ_quote
 	INTEGER 	TM_LENSTR1, STR_CASE_BLIND_COMPARE,
      .			i, n, nnew, spos, slen, str_start, vax_code, istat
 	CHARACTER	c*1
@@ -93,21 +96,35 @@
 	IF ( spos .GE. slen ) GOTO 5000
 
 * loop through the text counting commas
-* (poor man's FORTRAN DO-WHILE loop)
 	i = spos - 1
- 100	i = i + 1
+	DO WHILE ( i .LT. slen )
+	   i = i + 1 
 	   c = string(i:i)
+
+* ... identify quotation atoms
+	   doub_atom = c.EQ.'"'
+	   sing_atom = c.EQ."'"
+	   IF (i+3 .LE. slen) THEN
+	      DQ_atom = string(i:i+3) .EQ. "_DQ_"
+	      SQ_atom = string(i:i+3) .EQ. "_SQ_"
+	   ELSE
+	      DQ_atom = .FALSE.
+	      SQ_atom = .FALSE.
+	   ENDIF
+
 	   IF (in_quote) THEN
+* ... possibly escape the next character
 #ifdef NO_DOUBLE_ESCAPE_SLASH
-              IF (c .EQ. '\') THEN
+              IF (c .EQ. '\') THEN  ! ' sing quote char for emacs sanity
 #else
               IF (c .EQ. '\\') THEN
 #endif
 	         i = i + 1   ! skip processing of next character 
-	      ELSEIF  (c .EQ. '"' .AND. doub_quote
-     .		 .OR.  c .EQ. "'" .AND. .NOT.doub_quote ) THEN
-* ... end of quotated string -- save the string
-	         in_quote = .FALSE.
+	      ELSEIF  (doub_atom .AND. doub_quote
+     .	         .OR.  sing_atom .AND. sing_quote 
+     .	         .OR.  DQ_atom   .AND. DQ_quote 
+     .	         .OR.  SQ_atom   .AND. SQ_quote ) THEN
+* ... close of paired-quote string -- save the string
 	         IF (str_start .LT. i) THEN
 	            IF ( do_system_cmnd ) THEN
 	               CALL STORE_SYS_STRINGS(string(str_start:i-1),
@@ -123,14 +140,23 @@
 	         IF (status .NE. ferr_ok) GOTO 5000
 	         stored = .TRUE.
 	         do_system_cmnd = .FALSE.
-	      ELSE
-	         CONTINUE   ! skip over anything inside of quotations
+	         in_quote = .FALSE.
+	         IF (DQ_atom .OR. SQ_atom) i = i + 3
 	      ENDIF
-	   ELSEIF (c.EQ.'"' .OR. c.EQ."'") THEN
+
+	   ELSEIF (doub_atom.OR.sing_atom.OR.DQ_atom.OR.SQ_atom) THEN
+*  ... opening a paired-quote string
+	      doub_quote = doub_atom
+	      sing_quote = sing_atom
+	      DQ_quote   = DQ_atom
+	      SQ_quote   = SQ_atom
 	      IF (stored) GOTO 5000
 	      in_quote = .TRUE.
-	      doub_quote = c.EQ.'"'
-	      str_start = i + 1
+	      IF (DQ_quote .OR. SQ_quote ) THEN
+	         str_start = i + 4
+	      ELSE
+	         str_start = i + 1
+	      ENDIF
 	   ELSEIF (c .EQ. ',') THEN
 	      IF (.NOT.stored) THEN
 	        CALL SAVE_C_STRING(0,0,mr_c_pointer(mr),n-1,istat) ! NULL
@@ -151,7 +177,7 @@
 	      IF (c .NE. ' '
      .	    .AND. c .NE. tab ) GOTO 5000
 	   ENDIF
-	IF ( i .LT. slen ) GOTO 100
+	ENDDO
 	IF (in_quote) GOTO 5000
 
 * success
diff --git a/fer/utl/extract_dp_line.F b/fer/utl/put_arg5_line.F
similarity index 62%
copy from fer/utl/extract_dp_line.F
copy to fer/utl/put_arg5_line.F
index aa41198..b276206 100644
--- a/fer/utl/extract_dp_line.F
+++ b/fer/utl/put_arg5_line.F
@@ -1,7 +1,6 @@
-	SUBROUTINE EXTRACT_DP_LINE( cx, grid_data, dp_line, idim, nout )
+	SUBROUTINE PUT_ARG5_LINE( src, axis, axmin, axmax, offset,
+     .				  i, j, k, l, m, n, 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),
@@ -35,44 +34,57 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* extract a single line of data from a memory variable grid along axis idim
-* no error checking is done
+* put a single line of data along designateded axis into a memory variable
+* Note that whatever the axis orientation, the corresponging index position
+* from the i,j,k,l,m,n arguments is irrelevant
+* The offset arg is a hack to allow the index limits on thesrc and line to
+* be offset from one another by a constant 
 
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
 * written for VAX computer under VMS operating system
 *
-* V200:  9/20/89 - 4D symmetrical
-*       *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V698+ *sh* 5/15 -- derived from EXTRACT_ARG1_LINE
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
-	include 'errmsg.parm'
-	include 'xvariables.cmn'
-	include 'xcontext.cmn'
-	include 'xmem_subsc.cmn'
+	include	'xmem_subsc.cmn'
 
 * calling argument declarations:
-	INTEGER	cx, mv, idim, nout
-	REAL grid_data( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,m1lot:m1hit,m1loe:m1hie,m1lof:m1hif )
-	REAL*8	dp_line(nout)
+	INTEGER	axis, axmin, axmax, offset, i, j, k, l, m, n
+        REAL    src(m5lox:m5hix,m5loy:m5hiy,m5loz:m5hiz,
+     .              m5lot:m5hit,m5loe:m5hie,m5lof:m5hif )
+	REAL    line(axmin:axmax)
 
 * internal variable declarations:
-	INTEGER	iout, i, j, k, l, m, n
+	INTEGER	ss
 
 * extract the line
-	iout = 0
-	DO 200 n = cx_lo_s6(cx), cx_hi_s6(cx)
-	DO 200 m = cx_lo_s5(cx), cx_hi_s5(cx)
-	DO 200 l = cx_lo_s4(cx), cx_hi_s4(cx)
-	DO 200 k = cx_lo_s3(cx), cx_hi_s3(cx)
-	DO 200 j = cx_lo_s2(cx), cx_hi_s2(cx)
-	DO 200 i = cx_lo_s1(cx), cx_hi_s1(cx)
-
-	   iout = iout + 1
-	   dp_line( iout ) = grid_data( i,j,k,l,m,n )
-
- 200	CONTINUE
+	IF (axis .EQ. x_dim) THEN
+	   DO ss = axmin, axmax
+	      src(ss-offset, j, k, l, m, n) = line(ss)
+	   ENDDO
+	ELSEIF (axis .EQ. y_dim) THEN
+	   DO ss = axmin, axmax
+	      src(i, ss-offset, k, l, m, n) = line(ss)
+	   ENDDO
+	ELSEIF (axis .EQ. z_dim) THEN
+	   DO ss = axmin, axmax
+	      src(i, j, ss-offset, l, m, n) = line(ss)
+	   ENDDO
+	ELSEIF (axis .EQ. t_dim) THEN
+	   DO ss = axmin, axmax
+	      src(i, j, k, ss-offset, m, n) = line(ss)
+	   ENDDO
+	ELSEIF (axis .EQ. e_dim) THEN
+	   DO ss = axmin, axmax
+	      src(i, j, k, l, ss-offset, n) = line(ss)
+	   ENDDO
+	ELSE    ! f_dim
+	   DO ss = axmin, axmax
+	      src(i, j, k, l, m, ss-offset) = line(ss)
+	   ENDDO
+	ENDIF
 
 	RETURN
 	END
diff --git a/fer/utl/report_dependency.F b/fer/utl/report_dependency.F
index a59d937..bf96edd 100644
--- a/fer/utl/report_dependency.F
+++ b/fer/utl/report_dependency.F
@@ -140,7 +140,8 @@
 	   ENDIF
 	   line_buff(llen+1:) = ' = ' //uvar_text(var)
 	ELSEIF (cat .EQ. cat_file_var
-     .	   .OR. cat .EQ. cat_aggregate_var ) THEN
+     .	   .OR. cat .EQ. cat_agg_e_var 
+     .	   .OR. cat .EQ. cat_agg_f_var ) THEN
 	   line_buff(blanks+1:) = VAR_CODE(cat, var)
 	   llen = TM_LENSTR1(line_buff)
 	   IF (tell_dset) THEN
diff --git a/fer/utl/set_auto_curvi_modes.F b/fer/utl/set_auto_curvi_modes.F
index d40ae54..f00f920 100644
--- a/fer/utl/set_auto_curvi_modes.F
+++ b/fer/utl/set_auto_curvi_modes.F
@@ -38,6 +38,7 @@
 * process /CURVILINEAR qualifiers from all commands
 
 * *sh* 12/13
+* V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
 
 	include	'tmap_dims.parm'
 	include	'ferret.parm'
@@ -58,15 +59,15 @@
      .		  .OR. (  (cmnd_num .EQ. cmnd_list)
      .	             .AND. qual_given(slash_list_curvi).GT.0 )
 
-	mode_auto_sigma_last = mode_auto_sigma
-	mode_auto_sigma = mode_state(pmode_sigma,1)
+	mode_auto_layerz_last = mode_auto_layerz
+	mode_auto_layerz = mode_state(pmode_layerz,1)
      .		  .OR. (  (cmnd_num .EQ. cmnd_list)
-     .	             .AND. qual_given(slash_list_sigma).GT.0 )
+     .	             .AND. qual_given(slash_list_layerz).GT.0 )
 
 
 	auto_auxvar_changed =
-     .	     mode_auto_curvi .NEQV. mode_auto_curvi_last
-     . .OR.  mode_auto_sigma .NEQV. mode_auto_sigma_last
+     .	     mode_auto_curvi  .NEQV. mode_auto_curvi_last
+     . .OR.  mode_auto_layerz .NEQV. mode_auto_layerz_last
 
 
 	RETURN
diff --git a/fer/utl/store_dependency.F b/fer/utl/store_dependency.F
index 1add054..af5ed43 100644
--- a/fer/utl/store_dependency.F
+++ b/fer/utl/store_dependency.F
@@ -48,10 +48,12 @@
 * V685  *sh* 10/13 
 * V690  *sh* 11/13 - fixed problem in aux regridding variable dependencies
 *                    by adding a new calling arg
+* V693+ *sh* 1/21/15 - store regridding dependency lines
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
 	include 'errmsg.parm'
+	include 'gfdl_vms.parm'  ! for vms_str_success
 	include 'xcontext.cmn'
 	include 'xvariables.cmn'
 	include 'xdependency_tree.cmn'
@@ -81,30 +83,48 @@
 
 
 * internal variable declarations:
-	LOGICAL	known_var, dup, in_target_defn, direct_parentage, aux_broken_chain
+	LOGICAL	known_var, dup, in_target_defn, direct_parentage,
+     .		aux_broken_chain
 	INTEGER	var, cat, dset, df_flag, row, current_lev, i,
-     .		this_flag
+     .		this_flag, nrg
+	INTEGER STR_CASE_BLIND_COMPARE, vax_code
 
 * initialize
 	cat    = cx_category(cx)
 	var    = cx_variable(cx)
 	dset   = cx_data_set(cx)
-	IF (dset .EQ. unspecified_int4) dset = pdset_irrelevant
 	desist = .FALSE.
 	known_var = cx_status .EQ. ferr_ok
+     .         .OR. cx_status .EQ. pcx_vtree_regrid_report
 !     .	      .OR.  cx_status .EQ. ferr_unknown_auxvar  ! ???
 
+* set up regrid target reports
+	IF ( cx_status .EQ. pcx_vtree_regrid_report ) THEN
+	  IF (cx_vtree_regrid_ntarget .EQ. 0 ) RETURN  ! ?for SST[G=SST] case?
+	  nrg = 1
+	ENDIF
+
 * increment pointer to the next item to be stored
-	row = dependency_nrows + 1
+ 10	row = dependency_nrows + 1
 	dependency_nrows = row
 
-* store the things that are always valid
-	next (row) = 0		! for clean housekeeping, not used
-	level(row) = tree_lev
-	dataset (row) = dset
-
 * determine flag to save
-	IF (     cx_status .EQ. ferr_unknown_variable ) THEN
+	IF ( cx_status .EQ. pcx_vtree_regrid_report ) THEN
+* ... special treatment for regridding report (12/14)
+*     cx_vtree_unknown_grid tells if this is an unknown target error report
+*     if its an error then cx_vtree_var_or_start / _cat_or_end hold "[]" posn
+*     if not an error then cx_vtree_var_or_start / _cat_or_end hold
+*         var & cat        if the regrid points to a target variable
+*     or  unspecified_int4 if the regrid points to a named grid or axis
+*     we do not report named grid or axis regridding.  Not a dependency.
+*     Multiple target regrid variables get recorded in cx_vtree_regrid_ntarget
+	   dset = cx_vtree_regrid_dset(nrg)
+	   IF ( cx_vtree_unknown_grid(nrg)      ) THEN
+	      this_flag = df_unknown_grid
+	   ELSE
+	      this_flag = df_valid_var
+	   ENDIF
+	ELSEIF ( cx_status .EQ. ferr_unknown_variable ) THEN
 	   this_flag = df_unknown_var
 	ELSEIF ( cx_status .EQ. ferr_unknown_data_set ) THEN
 	   this_flag = df_unknown_dataset
@@ -119,8 +139,14 @@
 	ELSE
 	   this_flag = df_valid_var
 	ENDIF
-	flag(row) = this_flag
 	 
+* store the things that are always valid
+	IF (dset .EQ. unspecified_int4) dset = pdset_irrelevant
+	next (row) = 0		! for clean housekeeping, not used
+	level(row) = tree_lev
+	dataset (row) = dset
+	flag(row) = this_flag
+
 * store things differently depending upon whether variable is known
 	IF ( cx_status .EQ. ferr_unknown_auxvar ) THEN
 	   var_or_start(row) = uvar_item_start(item, uvar)
@@ -129,6 +155,11 @@
      .					  + cat - 1
 	   parent_uv   (row) = uvar
 	   uv_item     (row) = item
+	ELSEIF ( cx_status .EQ. pcx_vtree_regrid_report ) THEN
+	   var_or_start(row) = cx_vtree_var_or_start(nrg)
+	   cat_or_end  (row) = cx_vtree_cat_or_end(nrg)
+	   parent_uv   (row) = uvar
+	   uv_item     (row) = pcx_vtree_regrid_report
 	ELSEIF ( cx_status .NE. ferr_ok ) THEN
 	   var_or_start(row) = uvar_item_start(item, uvar)
 	   cat_or_end  (row) = uvar_item_end  (item, uvar)
@@ -178,10 +209,23 @@
 * ...  flag cannot be used in the dup test because it gets reset for df_defined_earlier
 *      since parent_uv is set to unspecified_int4 only for df_valid_var it serves
 *      as a signal that the flag had been valid before it was reset to defined_earlier
-	      dup =   parent_uv(i)    .EQ. parent_uv(row)
-     .          .AND. dataset(i)      .EQ. dataset(row)
-     .		.AND. var_or_start(i) .EQ. var_or_start(row)
-     .		.AND. cat_or_end  (i) .EQ. cat_or_end  (row)
+	      IF ( cx_status .EQ. pcx_vtree_regrid_report 
+     .	     .AND. flag(row) .EQ. df_unknown_grid         ) THEN
+* ... ugly case of duplicate unknown grid target: "myvar[gx=mybad,gy=mybad]"
+	        dup =   parent_uv(i)    .EQ. parent_uv(row)
+     .		  .AND. flag(i)         .EQ. flag(row) 
+	        IF (dup) THEN
+	           vax_code = STR_CASE_BLIND_COMPARE(
+     .			uvar_text(uvar)(var_or_start( i ):cat_or_end( i )),
+     .			uvar_text(uvar)(var_or_start(row):cat_or_end(row)) )
+	           dup = vax_code .EQ. vms_str_success
+	        ENDIF
+	      ELSE
+	        dup =   parent_uv(i)    .EQ. parent_uv(row)
+     .            .AND. dataset(i)      .EQ. dataset(row)
+     .		  .AND. var_or_start(i) .EQ. var_or_start(row)
+     .		  .AND. cat_or_end  (i) .EQ. cat_or_end  (row)
+	      ENDIF
 	      IF (dup) THEN
 * ... found a twin -- do not report it
 	         desist = .TRUE.
@@ -250,5 +294,12 @@
 	   dependency_status_rec = row
 	ENDIF
 
+* if more regridding dependencies to report, loop back
+	IF  ( cx_status .EQ. pcx_vtree_regrid_report 
+     .	.AND. nrg .LT. cx_vtree_regrid_ntarget        ) THEN
+	   nrg = nrg + 1
+	   GOTO 10
+	ENDIF
+
 	RETURN
 	END
diff --git a/fmt/src/tm_note.F b/fer/utl/sys_ls.F
similarity index 69%
copy from fmt/src/tm_note.F
copy to fer/utl/sys_ls.F
index 638c9e6..5f39dca 100644
--- a/fmt/src/tm_note.F
+++ b/fer/utl/sys_ls.F
@@ -1,7 +1,5 @@
-	SUBROUTINE TM_NOTE ( string, lunit )
+	SUBROUTINE SYS_LS( cmnd_text, sysout_ptr, nlines, 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,45 +31,48 @@
 *  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. 
-*
-*
-* display a warning message to the operator
 
+
+* Execute an "ls -1" shell command and return the resulting strings
+
+* programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
 
-* revision 0.0 2/92 for TMAP library (from FERRET rouitine "WARN")
-* *sh* 2/28/95 - allow message to be sent to alternative location
-* *js* 12.12.97- changed to use tm_split_list
-* 1/03 - *kob* g77 port - Need to use risc_buff for arbitrary concatenations
+* V695+:  5/15 *sh*  - based upon store_sys_strings.F
 
+	include	'tmap_dims.parm'
+	include	'xrisc.cmn'
 
 * calling argument declarations:
-        INTEGER lunit
-	CHARACTER*(*)	string
+	INTEGER	nlines, status
+	REAL*8	 sysout_ptr
+	CHARACTER*(*) cmnd_text, ls_out
 
 * internal variable declarations:
-	INTEGER		TM_LENSTR1, slen
+	INTEGER	istat
 
-#ifdef unix
-	include 'xalt_messages.cmn_text'
-	include 'xrisc_buff.cmn'
-#else
-	INCLUDE 'TMAP_FORMAT:XALT_MESSAGES.CMN'
-#endif
+	CALL WARN('Unix ls NEEDS SECURITY CHECKS')
 
-* string length
-	slen = TM_LENSTR1( string )
+* create the ls command as a null-terminated C string
+	CALL TM_FTOC_STRNG ('ls -1 '//cmnd_text,
+     .			    risc_buff, size_rbuff )
 
-* do it
-	IF ( alt_messages ) THEN
-	   CALL TM_ALTERNATE_NOTE( string, lunit )
+* execute the shell command
+	CALL GET_SYS_CMND(sysout_ptr, nlines, risc_buff, istat)
+	IF (istat .NE. 0) THEN
+	   CALL ERRMSG(ferr_insuff_memory, status,
+     .			'dynamic memory for string', *5000)
 	ELSE
-c	   WRITE ( lunit, 3000 ) string(:slen)
-c 3000	   FORMAT ( ' *** NOTE: ',A )
-	   risc_buff = string
-	   call tm_split_message(lunit, ' *** NOTE: '//risc_buff)
+	   status = ferr_ok
 	ENDIF
 
-	RETURN
-	END
+
+* transfer the strings into this mr (and free the pointer)
+XXX	CALL XFER_C_PTRS(sysout_ptr,0,0,mr_c_pointer(mr),1,pos-1,nlines)
+	
+
+* success
+	status = ferr_ok
+
+ 5000	RETURN
+	END	
diff --git a/fer/utl/tdest_world_init.F b/fer/utl/tdest_world_init.F
index ce51592..fcf9d55 100644
--- a/fer/utl/tdest_world_init.F
+++ b/fer/utl/tdest_world_init.F
@@ -47,8 +47,9 @@
 * V530: *acm* 12/00 alternative calendar types; cal_id
 *             return source and dest cal_ids for get_linear_coef
 * V673: *acm*  2/12 see ticket 1915. All computations of these factors need 
-*             to be done in DOUBLE prcision.
+*             to be done in DOUBLE precision.
 *       *acm* 4/12 6D Ferret: time axis may be in t or f direction. 
+* V695+ *sh* 5/15 calendar factor adjustments only if src/dst calendars differ
 
 	include 'tmap_dims.parm'
 	include 'xtm_grid.cmn_text'
@@ -108,16 +109,20 @@
 	at0dst = SECS_FROM_BC( line_t0(dst_line), dst_cal_id, status )
 	IF ( status .NE. ferr_ok ) RETURN
 
-        IF (dst_cal_id .NE. 1) THEN
-           factor = CAL_FACTR (dst_cal_id)
-	   udst = udst* factor
-	   at0dst = at0dst* factor
-	ENDIF
-
-        IF (src_cal_id .NE. 1) THEN
-	   factor = CAL_FACTR (src_cal_id)
-	   usrc = usrc* factor
-	   at0src = at0src* factor
+	IF (dst_cal_id .NE. src_cal_id) THEN
+* ... make non-Gregorian calendar adjustments only if calendars differ
+*     to avoid small roundoff issues
+           IF (dst_cal_id .NE. 1) THEN
+              factor = CAL_FACTR (dst_cal_id)
+	      udst = udst* factor
+	      at0dst = at0dst* factor
+	   ENDIF
+
+           IF (src_cal_id .NE. 1) THEN
+	      factor = CAL_FACTR (src_cal_id)
+	      usrc = usrc* factor
+	      at0src = at0src* factor
+	   ENDIF
 	ENDIF
 
 * determine the slope and intercept to be used in TDST_WORLD regridding
diff --git a/fer/utl/transfer_axis.F b/fer/utl/transfer_axis.F
index 91ef2dc..88f6e19 100644
--- a/fer/utl/transfer_axis.F
+++ b/fer/utl/transfer_axis.F
@@ -43,13 +43,14 @@
 * written for VAX computer under VMS operating system
 *
 * V200:  5/31/89 - extracted from TRANSFER_CONTEXT
-* $Id: transfer_axis.F 15054 2012-10-22 20:21:29Z ksmith $ 
+* $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
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 *       *acm* 4/12 6D Ferret: time axis may be in t or f direction.
 * V683  *acm*10/12 Improve handling of F axes and info about the calendar of the grid.
+* V695  *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -66,8 +67,8 @@
 	cx_given ( idim, dest )   = cx_given ( idim, source )
 	cx_trans_arg(idim, dest)  = cx_trans_arg(idim, source)
 * 8/97 *kob* 	
-	IF (idim .EQ. t_dim) THEN
-           cx_calendar(dest) = cx_calendar(source)
+	IF (idim .EQ. t_dim .OR. idim .EQ. f_dim) THEN
+           cx_calendar(idim,dest) = cx_calendar(idim,source)
            cx_cal_id(dest) = cx_cal_id(source)
         ENDIF
 
diff --git a/fer/utl/update_attributes.F b/fer/utl/update_attributes.F
index 280e349..aaeede4 100644
--- a/fer/utl/update_attributes.F
+++ b/fer/utl/update_attributes.F
@@ -70,7 +70,7 @@
       CHARACTER*128 vname, buff
 
       varid = cd_varid(uvar)
-      IF (dset .EQ. -1) varid = uvar
+      IF (dset .EQ. pdset_uvars) varid = uvar
 
 * get the vital statistics for this variable
 
@@ -106,7 +106,7 @@
 
 * For user variable update these in uvar_title, etc.
 
-       ELSE IF (dset .EQ. -1) THEN
+       ELSE IF (dset .EQ. pdset_uvars) THEN
          maxlen = 128
          got_it = NC_GET_ATTRIB( dset, varid, 'long_name',
      .                     .NOT.do_warn, vname(:vlen), maxlen, attlen, 
diff --git a/fer/xeq/SOURCE_FILES b/fer/xeq/SOURCE_FILES
index 1419a17..097fe20 100644
--- a/fer/xeq/SOURCE_FILES
+++ b/fer/xeq/SOURCE_FILES
@@ -1,4 +1,5 @@
 SRCS_F = \
+xeq_annotate.F\
 xeq_cancel.F\
 xeq_contour.F\
 xeq_define.F\
diff --git a/fer/xeq/xeq_else.F b/fer/xeq/xeq_annotate.F
similarity index 55%
copy from fer/xeq/xeq_else.F
copy to fer/xeq/xeq_annotate.F
index b26d33f..0e3d2f9 100644
--- a/fer/xeq/xeq_else.F
+++ b/fer/xeq/xeq_annotate.F
@@ -1,4 +1,4 @@
-	SUBROUTINE XEQ_ELSE
+	SUBROUTINE XEQ_ANNOTATE
 
 *
 *
@@ -35,50 +35,83 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* Process the ELSE in a multi-line IF compound statement
+* Put an annotation (moveable label) onto an existing plot
 
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
+* programmer - Ansley Manke
+* NOAA/PMEL, Seattle, WA - TMAP/SDIG 
 *
-* V420:  4/96
-*       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* revision 0.0 - 4/6/2015
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
 	include 'errmsg.parm'
+	include 'slash.parm'
+	include 'xplot_state.cmn'
+	include 'xcontext.cmn'
+	include 'xvariables.cmn'
 	include 'xprog_state.cmn'
+	include 'plot_setup.parm'
+	include 'xplot_setup.cmn'
+	
+* local variable declarations:
+	LOGICAL user, norm, nouser
+	INTEGER	TM_LENSTR1,
+     .		rlen, item, nchar, status
+	REAL	xloc, yloc, halign, angle, size
+
+	CHARACTER TM_FMT*16, buff*20, labtxt*2048
 
-* local variable declarations
-	INTEGER	status
+* initialize 
 
-* initial sanity checks
-	IF ( .NOT.if_conditional ) GOTO 5010
+	size = 0.2
 
-* check that something was given to "if" on
-	IF ( num_args .GE. 1 ) GOTO 5100
+* Get the text
+	IF (num_items .NE. 1) GOTO 5500
+	item = 1
+	labtxt = cmnd_buff(item_start(item):item_end(item))
 
-* is this the end of the clause that has been executing?
-	IF ( if_doing(ifstk) .EQ. pif_doing_clause ) THEN
-	   if_doing(ifstk) = pif_skip_to_endif
+* Get settings
 
-* or the start of the clause to execute
-	ELSEIF ( if_doing(ifstk) .EQ. pif_skip_to_clause ) THEN
-	   if_doing(ifstk) = pif_doing_clause
+	CALL SET_ANNOTATION (user, nouser, norm, xloc, yloc, halign, 
+     .         angle, size, status)
+	IF (status .NE. ferr_ok) GOTO 5000
 
-* anything else is an internal error
+	IF (nouser .OR. norm) THEN
+	   buff = 'NOUSER'
 	ELSE
-	   GOTO 5200
+	   buff = 'USER'
 	ENDIF
 
-	RETURN
-	
-* error exit
-* ... control stack pointer, CSP, corrected in GFD_ERROR_HANDLER
+* Create the %LABEL command
+
+	ppl_buff = '%LABEL/'//buff
+	rlen = TM_LENSTR1(ppl_buff)
+
+	ppl_buff = ppl_buff(:rlen)//' '//TM_FMT(xloc, 12, 16, nchar)
+	rlen = TM_LENSTR1(ppl_buff)
+
+	ppl_buff = ppl_buff(:rlen)//','//TM_FMT(yloc, 12, 16, nchar)
+	rlen = TM_LENSTR1(ppl_buff)
+
+	ppl_buff = ppl_buff(:rlen)//','//TM_FMT(halign, 12, 16, nchar)
+	rlen = TM_LENSTR1(ppl_buff)
+
+	ppl_buff = ppl_buff(:rlen)//','//TM_FMT(angle, 12, 16, nchar)
+	rlen = TM_LENSTR1(ppl_buff)
+
+	ppl_buff = ppl_buff(:rlen)//','//TM_FMT(size, 12, 16, nchar)
+	rlen = TM_LENSTR1(ppl_buff)
+
+	ppl_buff = ppl_buff(:rlen)//', '//labtxt
+	rlen = TM_LENSTR1(ppl_buff)
+
+* ... pass a the command to PPLUS
+
+c	print *, ppl_buff(:rlen)
+	CALL PPLCMD (' ',' ',0,ppl_buff(:rlen),1,1)
+
  5000	RETURN
- 5010	CALL ERRMSG( ferr_invalid_command, status,
-     .		'ELSE can only be used between IF and ENDIF', *5000)
- 5100	CALL ERRMSG( ferr_syntax, status,
-     .		'ELSE statement stands alone. Continue on next line"'//
-     .			pCR//cmnd_buff(:len_cmnd), *5000 )
- 5200	CALL ERRMSG( ferr_internal, status, 'IF-ELSE', *5000)
+ 5500	CALL ERRMSG( ferr_invalid_command, status,
+     .		'ANNOTATE command missing text for the annotation', *5000 )
+
 	END
diff --git a/fer/xeq/xeq_cancel.F b/fer/xeq/xeq_cancel.F
index 74607b8..ad0d242 100644
--- a/fer/xeq/xeq_cancel.F
+++ b/fer/xeq/xeq_cancel.F
@@ -142,7 +142,10 @@
 * V685 *acm*  4/13 Changes for ensemble datasets, correctly handle flag for hiding 
 *                  ensemble members 
 * V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
-* V690 *sh* 1/14 add CAN VAR/SIGMA
+* V690 *sh* 1/14 add CAN VAR/LAYERZ
+* 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
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -172,6 +175,7 @@
 	include	'SWITCH.INC'	! with deflts
         include 'LUNITS.INC'          ! with lttout
         include 'lunits_inc.decl'
+        include 'pyfonts.cmn'
 
 * calling argument declarations:
 	REAL	memory( mem_blk_size, max_mem_blks )
@@ -197,7 +201,7 @@
      .                  redir_cancel_stdout, redir_cancel_stderr
 
 	CHARACTER	arg*4, buff*512, argsym*120, varname*512,
-     .                  attname*128, show_str*12, buff2*3, DUMMY*512
+     .                  attname*128, show_str*512, buff2*3, DUMMY*512
 
 * local parameter declarations:
 	INTEGER		slash_del_temp, slash_del_perm
@@ -216,7 +220,7 @@
 
 * select subcommand
 	GOTO ( 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000,
-     .        1100,1200,1300,1400,1500,1600,1700, 1800, 1900 ) 
+     .        1100,1200,1300,1400,1500,1600,1700, 1800, 1900, 2000 ) 
      .       subcmnd_num
 
 * CANCEL '    '
@@ -391,7 +395,7 @@
 * 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') 
+	      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. 
@@ -471,8 +475,8 @@
 		    mode_arg( mode,1 ) = num_linecolors
 		    mode_state( mode,1 ) = .TRUE.
 
-                    WRITE (show_str, 2000) mode_arg(pmode_linecolors, 1)
- 2000               FORMAT (I3)
+                    WRITE (show_str, 880) mode_arg(pmode_linecolors, 1)
+ 880               FORMAT (I3)
                     IF (no_plot_yet) THEN
                        CALL START_PPLUS(.FALSE.)
                        CALL PPLCMD (from, line, 0, 
@@ -552,9 +556,9 @@
 	   iset = unspecified_int4
 	ENDIF
 
-* /SIGMA
-	IF (qual_given(slash_canc_var_sigma) .GT. 0) THEN 
-	   IF (slash_all) CALL TM_NOTE('/ALL ignored when /SIGMA is specified.',
+* /LAYERZ
+	IF (qual_given(slash_canc_var_layerz) .GT. 0) THEN 
+	   IF (slash_all) CALL TM_NOTE('/ALL ignored when /LAYERZ is specified.',
      .				        err_lun)
 	   IF (num_args .EQ. 0) GOTO 5010
 	   DO item = 1, num_args
@@ -568,12 +572,15 @@
 * ... not sure ... how are LET/D vars found?
 	      IF (category .EQ. cat_user_var) dset = -1  ! signals a uvar ??
 	      CALL CD_GET_VAR_ID (dset, buff, varid, status)
-              CALL CD_DELETE_ATTRIBUTE (dset, varid, patnam_sigma, status )
+              CALL CD_DELETE_ATTRIBUTE (dset, varid, patnam_layerz, status )
 	      CALL PURGE_ALL_UVARS
 	   ENDDO
 	   RETURN
 	ENDIF
 
+* /NOERROR
+	report_error = qual_given(slash_canc_var_noerr) .LE. 0
+
 * /ALL
 	IF ( slash_all
      .	.OR. (num_items.EQ.0 .AND. iset.NE.unspecified_int4) ) THEN
@@ -611,8 +618,13 @@
 	         CALL PARSE_NAM_DSET( buff, cx_last, iset,
      .			     category, variable, mod_cx, status )
 	         IF ( status .NE. ferr_ok ) RETURN
-	         IF ( variable .EQ. munknown_var_name ) GOTO 5110
-	         IF ( category .NE. cat_user_var ) GOTO 5120
+		 IF (report_error) THEN
+	            IF ( variable .EQ. munknown_var_name ) GOTO 5110
+	            IF ( category .NE. cat_user_var ) GOTO 5120
+		 ELSE
+	            IF ( variable .EQ. munknown_var_name .OR. 
+     .			 category .NE. cat_user_var ) GOTO 1120
+		 ENDIF
 	         CALL PURGE_ALL_UVARS
 		 CALL DELETE_USER_VAR(variable)         ! 7/97
 	      ENDIF
@@ -1191,6 +1203,50 @@ c	ENDIF
  1920      CONTINUE
         ENDIF
         RETURN
+	
+* CANCEL TEXT
+*      /FONT /BOLD /ITALIC /COLOR /ISIZ
+ 2000   CONTINUE
+
+* No arguments, or argument ALL, cancel the global and group settings
+* Look for argument ALL
+
+	i1 = 0
+	IF (num_items .GT. 0) THEN
+	   DO 2010 item = 1, num_items
+	      buff2 = cmnd_buff(item_start(item):item_end(item))
+	      IF ( STR_SAME( buff2(1:3), "ALL") .EQ. 0) i1 = 1
+ 2010	   CONTINUE
+	ENDIF
+
+	IF (num_items.EQ.0 .OR. i1.GT.0) THEN 
+	   igroup = fnt_all
+	   CALL CANCEL_PYTEXT_GROUP (fnt_all)
+	ELSE
+
+* CANCEL TEXT with argument(s) cancel settings on individual text groups
+
+	   DO 2040 item = 1, num_items
+
+	      arg = cmnd_buff(item_start(item):item_end(item))
+	      len_test = TM_LENSTR(arg)
+
+	      DO 2030 i = 1, ngp
+                 len_mchars = TM_LENSTR(pyf_group_names(i)(:4))
+	         IF ( MATCH4( arg, len_test,
+     .               pyf_group_names( i ),len_mchars) ) 
+     .              CALL CANCEL_PYTEXT_GROUP (i)
+ 2030	      CONTINUE
+
+ 2040	   CONTINUE
+
+ 	ENDIF  ! CANCEL TEXT arguments
+
+* Flag for PyFont vs Hershey fonts
+
+	pyfont = (STR_SAME(pyfnt_fontname, 'Hershey') .NE. 0 )
+
+	RETURN
 
 
 * error exits
diff --git a/fer/xeq/xeq_contour.F b/fer/xeq/xeq_contour.F
index 8694af8..f53aee1 100644
--- a/fer/xeq/xeq_contour.F
+++ b/fer/xeq/xeq_contour.F
@@ -121,6 +121,8 @@
 *                   use scaled label heights and spacings instead of 
 *                   hard-coded values.
 * 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
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -184,10 +186,12 @@
 	fill      = qual_given( slash_cont_fill      ).GT.0
 	noaxes    = qual_given( slash_noaxes         ).GT.0
 	axes      = qual_given( slash_cont_axes      ).GT.0
+
         IF (overlay) THEN
 	   noaxes = .FALSE.
 	   axes = .FALSE.
 	ENDIF
+
 	is_logh   = .FALSE.
 	is_logv   = .FALSE.
         sp        = qual_given( slash_cont_spectrum  )
diff --git a/fer/xeq/xeq_define.F b/fer/xeq/xeq_define.F
index 78e26f7..86a21b7 100644
--- a/fer/xeq/xeq_define.F
+++ b/fer/xeq/xeq_define.F
@@ -225,6 +225,13 @@
 * V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
 * V687 *acm*  1/14 Fixing ticket 2135; grid_use_cnt on DEFINE DATA/AGG datasets
 * V690 *sh*   1/14 Formatting improvement to DEFINE ATTRIB error message
+* V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
+*                  prevent IF, ELIF, ELSE, and ENDIF from being aliased
+* V695  *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
+* V695+  *sh* 4/15 error msgs from INIT_AGGREGATE_SET already given.  Remove.
+* 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
 
 	include	'tmap_errors.parm'
 #	include	"tmap_dset.parm"
@@ -249,6 +256,8 @@
         include 'netcdf.inc'
         include 'gkscm1_inc.decl'
         include 'GKSCM1.INC' ! wsid
+        include 'xrisc.cmn'
+
 
 * local parameter declarations:
 	INTEGER	    slash_dflt,
@@ -289,7 +298,8 @@
      .              slash_def_agg_quiet,
      .              slash_def_agg_e,
      .              slash_def_agg_f,
-     .              slash_def_agg_hide
+     .              slash_def_agg_hide,
+     .              slash_def_annot_nlab
 
 	LOGICAL	    explct_defn
 	PARAMETER ( slash_dflt   = 1 + 12,
@@ -331,6 +341,7 @@
      .              slash_def_agg_title = 1 + 7,
      .              slash_def_agg_quiet = 1 + 8,
      .              slash_def_agg_hide  = 1 + 9,
+     .              slash_def_annot_nlab = 10,		! must be slash_annotate_siz+1
      .		    explct_defn  = .FALSE. )
 
 * calling argument declarations:
@@ -340,10 +351,12 @@
 	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,
      .            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, agg_e,
-     .            letdset, its_remote, agg_hide, def_att_quiet, purge_all
+     .            new_att, new_att_modulo, got_it, orient_t, agg_quiet,
+     .            letdset, its_remote, agg_hide, def_att_quiet, purge_all,
+     .            user, norm, nouser
 	INTEGER   REGION_NUMBER, GRID_FROM_NAME, VIEWPORT_NUMBER, STR_UPCASE,
      .		  CX_DIM_LEN, ALIAS_ID, EFCN_SCAN,
      .		  TM_GET_LINENUM, TM_LENSTR1,
@@ -362,10 +375,10 @@
      .            prev_cal_id, j, num_indices, varid, attype_spec,
      .            attoutflag, attlen, coordvar, 
      .            dset_to_add, dir, type, attype, attid, ibuff, i0,  
-     .            agg_dim, ivar
+     .            agg_dim, ivar, item,nlab
 
 	REAL	  rbuff, bad_flag, yeardays, 
-     .            val, dummy, val_buf
+     .            val, dummy, val_buf, xloc, yloc, halign, angle, size
 
 	REAL*4	  r4_unspec, scale, xlovp, ylovp,  xhivp, yhivp,
      .            xoei,  yoei,   xcei,  ycei
@@ -374,13 +387,13 @@
      .            micro_adj, axwwlen, rmod_len, secsperyear, small, 
      .            new_att_modulo_len, madj
 	CHARACTER TM_FMT*16, 
-     .            reg_name*24, buff1*128, buff2*128, buff3*128, 
+     .            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
+     .            ustring*128, reserved_flow_name(3)*4
 
         CHARACTER*1 tab
 #ifdef NO_INTRINSIC_IN_PARAMETER
@@ -391,13 +404,15 @@
 
 	DATA	  basic_orients / 'WE','SN','UD','TI','E','F' /,
      .		  replmsg/'Replacing definition of '/
+        DATA      reserved_flow_name / 'ELIF','ELSE','ENDI' /
+
 * statement function - value between 0 and 1
 	REAL x, vx, vy
 	LOGICAL OUTSIDE_0_1
 	OUTSIDE_0_1( x ) = x.LT.0.0 .OR. x.GT.1.0
 
 * select subcommand
-	GOTO ( 100,200,300,400,500,600,700,800,900,1000,1100 ) subcmnd_num
+	GOTO ( 100,200,300,400,500,600,700,800,900,1000,1100,1200 ) subcmnd_num
 
 * DEFINE  '    ' - (no action)
 * arrival at this point usually means an illegal subcommand was given
@@ -729,12 +744,12 @@
 * if this name is used as the target of an aux (curvilinear) coordinate var
 * (re)defining it may invalidate cached results
         CALL GET_FVARS_LIST_BY_ATTNAME_AND_VAL
-     .	  (patnam_sigma, buff1, max_uvar,
+     .	  (patnam_layerz, buff1, max_uvar,
      .     string_array_result, deleted_list_result, num_indices)
         purge_all = purge_all .OR. (num_indices .GT. 0)
         IF (.NOT.purge_all) THEN
            CALL GET_UVARS_LIST_BY_ATTNAME_AND_VAL
-     .	        (patnam_sigma, buff1, max_uvar,
+     .	        (patnam_layerz, buff1, max_uvar,
      .           string_array_result, deleted_list_result, num_indices)
            purge_all = purge_all .OR. (num_indices .GT. 0)
         ENDIF
@@ -786,9 +801,8 @@
 	   IF ( pos .GT. 0 ) THEN
 
 * consolidate arguments broken up by command parser back into a single arg
-
               IF (cmnd_buff(pos:pos) .EQ. '{') THEN
-                 CALL all_1_arg
+                 CALL ALL_1_ARG
 	         num_args = 1	 ! used by GET_CMND_DATA
               ENDIF
 	      arg_start(1) = pos ! skip over "name ="
@@ -869,7 +883,7 @@ c	IF ( .NOT.TM_LEGAL_NAME( buff3 ) ) GOTO 5100
 * if orientation is unclear then assume it is X
 	IF ( orient .EQ. unspecified_int4 ) THEN
 	   CALL WARN (
-     .	     "Orientation not specified via /X,/Y,/Z,/T,/E, or /F. X assumed.")
+     .	     "Orientation not specified via /X,/Y,/Z,.... X assumed.")
 	   orient = x_dim
 	ENDIF
 	orient_t = orient.EQ.t_dim .OR. orient.EQ.f_dim
@@ -901,14 +915,14 @@ c	IF ( .NOT.TM_LEGAL_NAME( buff3 ) ) GOTO 5100
 	ELSEIF ( orient_t
 * 8/97 *kob* use cx_calender to check if time is date rather than time step
      .  .AND.  (     qual_given(slash_T0) .GT. 0
-     .		.OR. cx_calendar(mods_cx))) THEN
+     .		.OR. cx_calendar(orient,mods_cx))) THEN
 	   buff1 = 'HOURS'
 	ELSE
 	   buff1 = 'NONE'
 	ENDIF
 
 * is it a calendar axis definition?
-	its_calendar =  orient_t .AND. cx_calendar(mods_cx)
+	its_calendar =  orient_t .AND. cx_calendar(orient,mods_cx)
 
 * *acm* other calendar names* /CALENDAR = GREGORIAN, NOLEAP, JULIAN, 360_DAY, ALL_LEAP
 *       Gregorian is the default, also may be called STANDARD.
@@ -924,9 +938,9 @@ c	IF ( .NOT.TM_LEGAL_NAME( buff3 ) ) GOTO 5100
      .			      cal_name, status )
 	   IF ( status .NE. ferr_ok ) RETURN
            new_att_calendar = cal_name
-	ELSEIF ( orient .EQ. t_dim  .AND.  
+	ELSEIF ( orient_t  .AND.  
      .         ( qual_given(slash_T0) .GT. 0  .OR. 
-     .           cx_calendar(mods_cx)) ) THEN
+     .           cx_calendar(orient,mods_cx)) ) THEN
 	   cal_name = 'GREGORIAN'
 	ENDIF
 
@@ -1257,7 +1271,7 @@ C /units=months  is 1/12 of the length of the year
 * Check that bounds enclose points, and that they are contiguous
 	         line_subsc1 ( iline ) = frst_pt
                  line_dim    ( iline ) = npoints
-                 IF (.NOT. TM_CHECK_BNDS (iline, n2, buff3) ) GO TO 5750
+                 IF (.NOT. TM_CHECK_BNDS (iline, n2, .TRUE., buff3) ) GO TO 5750
 
               ELSE
 
@@ -1556,7 +1570,7 @@ C /units=months  is 1/12 of the length of the year
 
 * add newly defined axis to the user-variable dset of the linked-list strucure
            
-           dset_to_add = -2  ! user-defined coordinate variable dataset.
+           dset_to_add = pdset_coordvars  ! user-defined coordinate variable dataset.
 
            err_string = buff3
            type = NCDOUBLE
@@ -1876,6 +1890,29 @@ C /units=months  is 1/12 of the length of the year
 	IF ( pos .EQ. 0 ) GOTO 5400
 	IF ( .NOT.TM_LEGAL_NAME(buff1) ) GOTO 5410
 
+* determine the name of the command being aliased
+        DO i1 =  pos, arg_end(num_args)
+           IF (cmnd_buff(i1:i1) .EQ. ' '
+     .    .OR. cmnd_buff(i1:i1) .EQ. tab ) THEN
+              i2 = i1 - 1   ! last char of command being aliased
+              GOTO 705
+           ENDIF
+        ENDDO
+        i2 = arg_end(num_args)
+
+* prevent IF, ELIF, ELSE and ENDIF from being aliased, as this would mess
+* up flow control in PROCESS_IF and elsewhere
+* ... special test for IF command, cuz 1-line IFs are OK to alias 
+ 705    IF ( MATCH4(cmnd_buff(pos:i2),i2-pos+1,'IF',2) ) THEN
+           i1 = STR_UPCASE (risc_buff, cmnd_buff)
+           IF (.NOT.ITSA_1LINEIF(risc_buff(pos:arg_end(num_args)),
+     .                           arg_end(num_args)-pos+1)) GOTO 5200
+        ENDIF
+        DO i1 = 1, 3
+           IF (MATCH4(cmnd_buff(pos:i2),i2-pos+1,
+     .                reserved_flow_name(i1),4   )) GOTO 5200
+        ENDDO
+
 * find a slot to save this alias
         i1 = ALIAS_ID( buff1 )
         IF ( i1 .EQ. unspecified_int4 ) THEN
@@ -1985,7 +2022,8 @@ C /units=months  is 1/12 of the length of the year
 !! ?? get dataset from varname.attname
 * ... evaluate the context without computing the expression to get the dataset
 
-        buff = cmnd_buff(item_start(1):item_end(1)) ! same as buff1?
+	item = 1
+        buff = cmnd_buff(item_start(item):item_end(item)) ! same as buff1?
 
 	CALL GET_NEW_CX( cx_last, cx_cmnd, .TRUE., status )
         IF ( status .NE. ferr_ok ) GOTO 5000
@@ -1994,7 +2032,7 @@ C /units=months  is 1/12 of the length of the year
            dset = cx_data_set(cx_cmnd)   ! initial value to try; will return dset
            CALL ISIT_COORD_VAR ( buff, dset, varname, coordvar, status )
            IF ( status .NE. ferr_ok ) THEN 
-              dset = -2  ! a user-defined axis (coordinate variable)
+              dset = pdset_coordvars  ! a user-defined axis (coordinate variable)
               CALL ISIT_COORD_VAR ( buff, dset, varname, 
      .              coordvar, status )
               IF ( status .NE. ferr_ok ) THEN
@@ -2026,7 +2064,7 @@ C /units=months  is 1/12 of the length of the year
            CALL FIND_VAR_NAME(pdset_irrelevant, varname, cat, var)
            IF (  var .NE. munknown_var_name .AND.
      .           cat .EQ. cat_user_var) THEN
-              dset = -1
+              dset = pdset_uvars
            ELSE
               dset = cx_data_set(cx_cmnd) 
            ENDIF
@@ -2192,10 +2230,12 @@ C /units=months  is 1/12 of the length of the year
 	   IF ( status .NE. ferr_ok ) RETURN
 	ENDIF
 
-* Is there a /E ? (later other directions)
-* This is NOT YET passed around to routines that need it.
-        agg_e = qual_given( slash_def_agg_e ) .GT. 0
-	IF (agg_e) agg_dim = 5
+* Is there a /E ?
+	agg_dim = e_dim
+	IF (qual_given( slash_def_agg_e ) .GT. 0) agg_dim = e_dim
+
+* Is there a /F 
+	IF (qual_given( slash_def_agg_f ) .GT. 0) agg_dim = f_dim
 
 * define data/hide
 
@@ -2210,19 +2250,64 @@ C /units=months  is 1/12 of the length of the year
 	IF ( .NOT.TM_LEGAL_NAME_OP(buff1) ) GOTO 5430
         IF ( TM_LENSTR1(buff1) .GT. 128 ) GOTO 5410
 
-	CALL INIT_AGGREGATE_DSET (buff1, buff2, dset, agg_quiet, agg_hide, status)
+	CALL INIT_AGGREGATE_DSET (buff1, buff2, dset, agg_quiet, agg_hide, 
+     .    agg_dim, status)
 
-	IF (status .NE. ferr_ok) GOTO 6110
+	IF (status .NE. ferr_ok) GOTO 5000
 
 * Make this the current dataset
 	cx_data_set( cx_last ) =  dset
 
 	RETURN
+
+
+**************************************************************************
+* DEFINE ANNOTATION /USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB label_text
+* qualifiers in the same order as ANNOTATE/USER/...
+*
+* Find label text
+
+1200	IF ( num_args .LT. 1 ) GOTO 6200
+
+	item = 1
+	buff1 = cmnd_buff(item_start(item):item_end(item))
+
+* ...DEFINE ANNOTATION/NLAB 
+c ?? if nlab=0, use next avail slot?
+	iqual = qual_given( slash_def_annot_nlab )
+	IF ( iqual .GT. 0  ) THEN
+	   CALL EQUAL_VAL( cmnd_buff(qual_start(iqual):qual_end(iqual)),
+     .			      val, status )
+	   buff2 = 'NLAB'
+	   IF ( status .NE. ferr_ok ) GOTO 6300
+	   IF ( val.EQ.unspecified_val4 .OR. val.LT.0) GOTO 6300
+	   nlab = INT(val)
+	ELSE
+	   nlab = 0
+	ENDIF
+
+* initialize 
+
+	size = 0.12
+
+* Get settings
+
+	CALL SET_ANNOTATION (user, nouser, norm, xloc, yloc, halign, 
+     .         angle, size, status)
+        IF (status .NE. ferr_ok) GOTO 5000 
+
+	CALL PUT_ANNOTATION (user, nouser, norm, xloc, yloc, halign, 
+     .         angle, size, nlab, buff1, status)
+        IF (status .NE. ferr_ok) GOTO 5000 
+
+	RETURN
 **************************************************************************
 
 * error exit
  5000	RETURN
  5100 	CALL ERRMSG( ferr_syntax,status,'illegal name: '//buff3,*5000 )
+ 5200 	CALL ERRMSG( ferr_invalid_command ,status,
+     .          'cannot alias IF, ELIF, ELSE and ENDIF',*5000 )
  5300	CALL ERRMSG( ferr_invalid_command, status,
      .		'DEFINE what name?', *5000 )
  5305	CALL ERRMSG( ferr_TMAP_error, status, ' ', *5000 )
@@ -2266,7 +2351,7 @@ C /units=months  is 1/12 of the length of the year
      .		'unrepairable repeated axis coords', *5000 )
  5570	buff1 = TM_FMT(FLOAT(i1-frst_pt+1), 14, 16, slen)
 	CALL ERRMSG( ferr_grid_definition, status,
-     .		'data for DEFINE AXIS/FROM_VARIABLE is not monotonic at index '
+     .		'data for DEFINE AXIS/FROM_VARIABLE is not monotonically increasing at index '
      .		//buff1(:slen), *5000 )
  5580	CALL ERRMSG( ferr_grid_definition, status,
      .		'data for DEFINE AXIS/FROM_VARIABLE is ambiguous', *5000 )
@@ -2374,7 +2459,13 @@ C /units=months  is 1/12 of the length of the year
  6100 CALL ERRMSG(ferr_syntax, status, 
      .    'DEFINE DATA valid only with /AGGREGATE: ', *5000)
 
- 6110 CALL ERRMSG(ferr_aggregate_error, status, 
-     .    'Aggregate dataset not defined', *5000)
+! 6110 CALL ERRMSG(ferr_aggregate_error, status, 
+!     .    'Aggregate dataset not defined', *5000)
+
+ 6200	CALL ERRMSG( ferr_invalid_command, status,
+     .		'No text given for DEFINE ANNOTATION', *5000 )
+
+ 6300	CALL ERRMSG( ferr_invalid_command, status,
+     .		'/NLAB missing or invalid value', *5000 )
 
 	END
diff --git a/fer/xeq/xeq_elif.F b/fer/xeq/xeq_elif.F
index 9b75250..dae1a8e 100644
--- a/fer/xeq/xeq_elif.F
+++ b/fer/xeq/xeq_elif.F
@@ -44,6 +44,7 @@
 * V420:  4/96
 *       *acm* 3/12 cleanup ifdefs and unnecessary include files
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V693+ *sh* 12/14 Simplified blocks skipped by IF using ifstk_skipping
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -65,6 +66,7 @@
 * is this the end of the clause that has been executing?
 	IF ( if_doing(ifstk) .EQ. pif_doing_clause ) THEN
 	   if_doing(ifstk) = pif_skip_to_endif
+	   ifstk_skipping = 0   ! skipping is controlled by this IF-nest level
 	   RETURN
 	ENDIF
 
diff --git a/fer/xeq/xeq_else.F b/fer/xeq/xeq_else.F
index b26d33f..85c52f8 100644
--- a/fer/xeq/xeq_else.F
+++ b/fer/xeq/xeq_else.F
@@ -42,6 +42,7 @@
 *
 * V420:  4/96
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V693+ *sh* 12/14 Simplified blocks skipped by IF using ifstk_skipping
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -60,6 +61,7 @@
 * is this the end of the clause that has been executing?
 	IF ( if_doing(ifstk) .EQ. pif_doing_clause ) THEN
 	   if_doing(ifstk) = pif_skip_to_endif
+	   ifstk_skipping = 0   ! skipping is controlled by this IF-nest level
 
 * or the start of the clause to execute
 	ELSEIF ( if_doing(ifstk) .EQ. pif_skip_to_clause ) THEN
diff --git a/fer/xeq/xeq_exit.F b/fer/xeq/xeq_exit.F
index d07b15b..95277ff 100644
--- a/fer/xeq/xeq_exit.F
+++ b/fer/xeq/xeq_exit.F
@@ -71,6 +71,8 @@
 * V664  *kms*  8/10 - Add EXIT/TOPYTHON and second alternate return to exit the 
 *                     ferret_dispatch loop but just re-enter the loop if not under pyferret
 * V685+ 12/13    - *acm*  bounds checking; dont refer to cs_cmnd_num(csp) if csp = 0
+* V694 *acm*  12/14   Fix ticket 2221. When in -script mode exit/prompt should just exit
+*                     all the way out of Ferret.
 
         include 'tmap_dims.parm'
 	include 'command.parm'
@@ -88,6 +90,15 @@
 	IF ( num_args .GT. 0 ) CALL ERRMSG( ferr_invalid_subcmnd, 
      .			status, cmnd_buff(arg_start(1):len_cmnd), *5000 )
 
+* When in -script mode exit-to-prompt should just exit. (ticket 2221).
+
+	IF ( qual_given(slash_exit_prompt) .GT. 0) THEN
+	   IF (its_script) THEN
+	      qual_given(slash_exit_prompt) = 0
+  	      qual_given(slash_exit_program) = 1
+	   ENDIF
+	ENDIF
+
 	IF (qual_given(slash_exit_cycle) .GT. 0) THEN
 * Skip to end of current repeat loop
 	   pop=0
diff --git a/fer/xeq/xeq_frame.F b/fer/xeq/xeq_frame.F
index 2c0bf23..f7d79f2 100644
--- a/fer/xeq/xeq_frame.F
+++ b/fer/xeq/xeq_frame.F
@@ -63,6 +63,8 @@
 * PyFr  *kms*  7/13 Add /XPIXELS, /YPIXELS, /XINCHES, /YINCHES to FRAME
 * PyFr  *kms*  8/13 Add /ANNOTATE to FRAME; declare memory argument 
 *                   now needed for SAVE_FRAME
+* The following changes were not applied to PyFerret:
+* V6.95 *acm* 4/15 Haven't used HDF images for a long time: require GIF only.
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
diff --git a/fer/xeq/xeq_if.F b/fer/xeq/xeq_if.F
index f4a1578..9a4e404 100644
--- a/fer/xeq/xeq_if.F
+++ b/fer/xeq/xeq_if.F
@@ -55,6 +55,11 @@
 * V500:  6/99 - bug fix for final quote in IF 1  THEN SAY "I is too big" ENDIF
 *       *acm* 3/12 cleanup ifdefs and unnecessary include files
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V693+ *sh* 12/14 1- init ifstk_skipping to count nested IFs while skipping
+*                  2- screen for ELIF used in a single line syntax
+*	           3- on error csp drop must occur before call to ERRMSG
+*	           4- improved error message for "IF some expression THEN ..."
+* V695+ *sh* 2/15 - added support for _DQ_
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -71,7 +76,7 @@
 	INTEGER	STR_CASE_BLIND_COMPARE, STR_UPCASE,
      .		vax_code, if_type, iarg,
      .		true_clause_start, true_clause_end, false_clause_start,
-     .		false_clause_end, status, csp1, tmp_stat, end
+     .		false_clause_end, status, csp1, tmp_stat, iend
 
 * 6/96: Are we really going to process this IF or merely register that
 * a (skipped) IF clause has been opened?
@@ -91,6 +96,7 @@
 	         ifstk = ifstk + 1
 	         if_doing(ifstk) = pif_skip_to_endif
 	         if_cs(ifstk) = if_cs(ifstk-1)
+	         ifstk_skipping = 0     ! counts nested IFs while skipping
 	      ENDIF
 	      RETURN
 	   ENDIF
@@ -105,10 +111,17 @@
 	IF ( status .NE. ferr_ok ) GOTO 5000
 
 * whether single line or multi the second argument should be "THEN"
-	vax_code = STR_CASE_BLIND_COMPARE(
-     .				cmnd_buff(arg_start(2):arg_end(2)),
+* a common user error is to use arithmetic expression for the conditional
+* without grave accents.  In this case the THEN exists, but is not argument 2
+	DO iarg = 2, num_args
+	   vax_code = STR_CASE_BLIND_COMPARE(
+     .				cmnd_buff(arg_start(iarg):arg_end(iarg)),
      .				'THEN' )
-	IF (vax_code .NE. vms_str_success) GOTO 5200
+	   IF (vax_code .EQ. vms_str_success) GOTO 100
+	ENDDO
+* ... no THEN was provided
+	GOTO 5200
+ 100	IF (iarg .GT. 2) GOTO 5210
 
 * determine the nature of the IF clause -- single line or multi
 	IF ( num_args .GT. 2 ) THEN
@@ -128,7 +141,7 @@
 * pattern: *** IF condition THEN true_clause ELSE false_clause (ENDIF) ***
 	   true_clause_start = 3
 * try to find "ELSE"
-	   DO 100 iarg = 3, num_args
+	   DO iarg = 3, num_args
 	      IF (cs_text(csp)(arg_start(iarg):arg_end(iarg))
      .						.EQ. 'ELSE' ) THEN
 		 has_false_clause   = .TRUE.
@@ -136,14 +149,29 @@
 	         false_clause_start = iarg + 1		         
 	         GOTO 200
 	      ENDIF
- 100	   CONTINUE
+	   ENDDO
 	   has_false_clause = .FALSE.
 
+* check for ELIF used in a single line syntax -- trap as a syntax error
+* (just out of laziness.  In 15 years no one has asked for this.)
+ 200	   DO iarg = 3, num_args
+	      IF (cs_text(csp)(arg_start(iarg):arg_end(iarg))
+     .						.EQ. 'ELIF' ) THEN
+	         CALL STACK_PTR_DN( csp, 0, tmp_stat )
+	         GOTO 5250
+	      ENDIF
+	   ENDDO
+
 * is there an implicit or an explicit "ENDIF"?
- 200	   DO 300 iarg = num_args, 3, -1
+	   DO 300 iarg = num_args, 3, -1
 	      IF (cs_text(csp)(arg_start(iarg):arg_end(iarg))
-     .						.EQ. 'ENDIF' ) THEN
-	         IF (iarg .NE. num_args ) GOTO 5300
+     .						.EQ. 'ENDIF' 
+     .	     .OR. cs_text(csp)(arg_start(iarg):arg_end(iarg))
+     .						.EQ. 'ENDI'   ) THEN
+	         IF (iarg .NE. num_args ) THEN
+	            CALL STACK_PTR_DN( csp, 0, tmp_stat )
+	            GOTO 5300
+	         ENDIF
 	         IF (has_false_clause) THEN
 	            false_clause_end = num_args - 1
 	         ELSE
@@ -164,22 +192,28 @@
 * ... 6/99 bug fix (hack) -- final quotation mark missed in
 *	IF 1 THEN SAY "I is too big" ENDIF
 *     because arg_start/arg_end are pre-trimmed wrt enclosing quotes
-	      end =  arg_end(true_clause_end)
-	      IF (end .LT. len_cmnd) THEN
-	         IF (cmnd_buff(end+1:end+1).EQ.'"') end = end + 1
+	      iend =  arg_end(true_clause_end)
+	      IF     (iend+1 .LE. len_cmnd) THEN
+	         IF (cmnd_buff(iend+1:iend+1).EQ.'"') iend = iend + 1
+	         IF (iend+4 .LE. len_cmnd) THEN
+	            IF (cmnd_buff(iend+1:iend+4).EQ.'_DQ_') iend = iend + 4
+	         ENDIF
 	      ENDIF
 	      cs_text(csp) = cmnd_buff(arg_start(true_clause_start):
-     .				       end)
+     .				       iend)
 	   ELSEIF ( has_false_clause ) THEN
 * ... 6/99 bug fix (hack) -- final quotation mark missed in
 *	IF 1 THEN SAY "I is too big" ENDIF
 *     because arg_start/arg_end are pre-trimmed wrt enclosing quotes
-	      end =  arg_end(false_clause_end)
-	      IF (end .LT. len_cmnd) THEN
-	         IF (cmnd_buff(end+1:end+1).EQ.'"') end = end + 1
+	      iend =  arg_end(false_clause_end)
+	      IF    (iend+1 .LE. len_cmnd) THEN
+	         IF (cmnd_buff(iend+1:iend+1).EQ.'"'   ) iend = iend + 1
+	         IF (iend+4 .LE. len_cmnd) THEN
+	            IF (cmnd_buff(iend+1:iend+4).EQ.'_DQ_') iend = iend + 4
+	         ENDIF
 	      ENDIF
 	      cs_text(csp) = cmnd_buff(arg_start(false_clause_start):
-     .				       end)
+     .				       iend)
 	   ELSE
 * ... false condition and no ELSE clause
 	      CALL STACK_PTR_DN( csp, 0, tmp_stat )
@@ -219,14 +253,18 @@
 	
 * error exit
 * ... control stack pointer, CSP, corrected in GFD_ERROR_HANDLER
- 4999	CALL STACK_PTR_DN( csp, 0, tmp_stat )
  5000	RETURN
  5100	CALL ERRMSG( ferr_syntax, status, 'IF what ?', *5000)
-* ... need to pop stack for errors below here
  5200	CALL ERRMSG( ferr_syntax, status, 'IF without THEN'//
-     .			pCR//cmnd_buff(:len_cmnd), *4999 )
+     .			pCR//cmnd_buff(:len_cmnd), *5000 )
+ 5210	CALL ERRMSG( ferr_syntax, status,
+     .	'"IF condition THEN" requires a simple 0 or 1 (or True or False)'//
+     .			pCR//cmnd_buff(:len_cmnd), *5000 )
+ 5250	CALL ERRMSG( ferr_syntax, status,
+     .			'ELIF cannot be used in single line IF'//
+     .			pCR//cmnd_buff(:len_cmnd), *5000 )
  5300	CALL ERRMSG( ferr_syntax, status, 'Trash after ENDIF'//
-     .			pCR//cmnd_buff(:len_cmnd), *4999 )
+     .			pCR//cmnd_buff(:len_cmnd), *5000 )
  5400	CALL ERRMSG( ferr_invalid_command, status, 'IFs nested too deep',
      .							*5000 )
 	END
diff --git a/fer/xeq/xeq_list.F b/fer/xeq/xeq_list.F
index 7b84980..e21f878 100644
--- a/fer/xeq/xeq_list.F
+++ b/fer/xeq/xeq_list.F
@@ -149,6 +149,7 @@
 * V685 *acm*  6/13 new qualifier SAVE/NOBOUNDS
 * V685 *acm*  6/13 Dont add SAVE/NOCOORDS
 * V690 *sh*   1/14 Automated 3-argument auxiliary (curvilinear) plotting
+* V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
 
 	include 'tmap_dims.parm'
         include 'tmap_errors.parm'
@@ -350,7 +351,7 @@ c     .		 .AND. .NOT.do_comma_del
 	   IF ( ITS_AUTO_CURVI(i,curvi_axes) ) THEN
 * TEMPORARY: need to ensure that 'coordinates' attributes are written to point
 *	     variables to their auxiliary variables
-*	     For uvars there may be no __SigmaRef_. Just uvar_aux_cat/var 
+*	     For uvars there may be no __LayerzRef_. Just uvar_aux_cat/var 
 	      DO idim = 1, nferdims
 	         IF (curvi_axes(idim)) THEN
 	            inext = inext + 1
@@ -658,7 +659,7 @@ c	   IF (.NOT.permute) CALL GET_CX_DIMS(cx,ndim, perm )
      .                    list_at_eof, cdf_recax, nvars2list,
      .			  mr_perm, my_cx, buff, head_enh,
      .			  pcdf_mode_normal, clobber, edges_flag, do_bounds,
-     .                    keepax_flag, out_type, status )
+     .                    keepax_flag, out_type, quiet, status )
 
 	ELSEIF( all_at_once ) THEN
 	   CALL LIST_MULTI( memory, mr_perm, my_cx, heading, perm,
diff --git a/fer/xeq/xeq_plot.F b/fer/xeq/xeq_plot.F
index 2483d95..483cbca 100644
--- a/fer/xeq/xeq_plot.F
+++ b/fer/xeq/xeq_plot.F
@@ -106,9 +106,13 @@
 * http://www.pmel.noaa.gov/maillists/tmap/ferret_users/fu_2013/msg00536.html
 
 * V6.92 *acm* 6/14 New color /key options: any of /key=horizontal,centerlabel
+* V6.94 *acm* 2/15 Ticket 2231: New /key option for multiple plot lines: /key=titles
+* 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.
 
 	include 'tmap_dims.parm'
-	include	'ferret.parm'
+	include 'ferret.parm'
 	include 'errmsg.parm'
 	include 'plot_setup.parm'
 	include 'slash.parm'
@@ -130,7 +134,7 @@
         include 'GKSCM1.INC'    ! wsid
         include 'cont_inc.decl' ! with iautoc and nlev
         include 'CONT.INC'
-	
+
 * calling argument declarations:
 	REAL	memory( mem_blk_size, max_mem_blks )
 
@@ -139,7 +143,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
+     .			changed_key, do_key, spectrum, addgaps
 	INTEGER		TM_LENSTR1, TM_LENSTR, STR_UPCASE, STR_SAME,
      .                  symbol, icolor, ipen, icolor1, ipen1, status,
      .			loc, limit, slen, thick, step_inc,
@@ -147,7 +151,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
+     .                  loch, locv, nvs
 	REAL		val, sym_size, dashstyle(4), only_val
         REAL*4          thickness, opacity
 	CHARACTER	LEFINT*4, buff*128
@@ -188,10 +192,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
+
         IF (overlay) THEN
 	   noaxes = .FALSE.
 	   axes = .FALSE.
 	ENDIF
+
 	is_logh   = qual_given( slash_is_logh        ).GT.0
 	is_logv   = qual_given( slash_is_logv        ).GT.0
 
@@ -270,7 +276,7 @@ CC       => Set values here instead.
 	   CALL EQUAL_COLOR( cmnd_buff(qual_start(loc):qual_end(loc)),
      .                       icolor, thickness, status )
            IF ( status .NE. ferr_ok ) GOTO 5000
-           s1 = INDEX( cmnd_buff(qual_start(loc):qual_end(loc)), '=' )	   
+           s1 = INDEX( cmnd_buff(qual_start(loc):qual_end(loc)), '=' )
            IF ( s1 .EQ. 0 ) THEN
 	      icolor = icolor1
 	      icolor1 = 2
@@ -321,7 +327,7 @@ CC       => Set values here instead.
      .			      val, status )	! syntax check
 	   IF ( status .NE. ferr_ok ) GOTO 5000
 	   IF ( val .NE. unspecified_val4 ) THEN
-              limit = 3*mode_arg(pmode_linecolors,1)
+          limit = 3*mode_arg(pmode_linecolors,1)
 	      ipen = NINT( val )	! user-specified line style
 	      IF ( ipen .LT. 1 .OR. ipen .GT. limit ) GOTO 5200
               IF ( opacity .GE. 0.0 )
@@ -334,19 +340,41 @@ CC       => Set values here instead.
      .							symbol = qual_off
 	ENDIF
 
-* ... PLOT/RIBBON  for multi-colored "ribbon" line 
-*     3-agument plot/vs/lev xpts, ypts, var
+* ... /KEY[=title]  for control over labeling the multi-line legend
 
-	ribbon_plot = .FALSE.
-	loc = qual_given( slash_plot_ribbon )
-	IF ( loc .GT. 0  ) THEN
-c	   IF (.NOT.versus)  GOTO 5470
+	loc = qual_given( slash_plot_key )
+
+	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
+	      IF ( TM_HAS_STRING(buff, 'TIT') ) use_keys = .FALSE.
+	   ENDIF
+	ENDIF
+	
+* PLOT/RIBBON for multi-colored "ribbon" line
+	ribbon_plot = qual_given(slash_plot_ribbon) .GT. 0
+
+* A "gaps" variable specifies the end of line segments to draw.
+* Implemented only for PLOT/VS/RIBBON
+	addgaps   = qual_given( slash_plot_gap       ).GT.0
+	IF (addgaps .AND. .NOT.ribbon_plot) GOTO 5600
+
+*     3-argument plot/vs/lev xpts, ypts, var
+*     or 4-argument plot/vs/lev xpts, ypts, var, gap
+
+	IF ( ribbon_plot  ) THEN
 
 	   IF (versus) THEN
-	      IF (num_uvars_in_cmnd .LT. 3) GOTO 5480
-	      IF (num_uvars_in_cmnd .GT. 3)
-     .         CALL WARN (
-     .         'PLOT/RIBBON/VS uses just 3 variables. Ignoring extra variables.')
+	      nvs = 3
+	      IF (addgaps) nvs = 4
+	      IF (num_uvars_in_cmnd .LT. nvs) GOTO 5480
+	      IF (num_uvars_in_cmnd .GT. nvs) THEN
+	         buff = 'PLOT/RIBBON/VS uses just 3 variables. Ignoring extra variables.'
+		 IF (addgaps) buff = 'PLOT/RIBBON/VS/GAPLOC uses 4 variables. Ignoring extra variables.'
+		 CALL WARN (buff)
+	      ENDIF
            ELSE
 	      IF (num_uvars_in_cmnd .LT. 2) GOTO 5480
 	      IF (num_uvars_in_cmnd .GT. 2)
@@ -378,6 +406,11 @@ c	   IF (.NOT.versus)  GOTO 5470
 	   ribbon_plot = .TRUE.
 	ENDIF
 
+* A "gaps" variable specifies the end of line segments to draw for PLOT/VS/RIBBON.
+* Issue notes for cases not already handled.
+
+	IF (addgaps .AND. .NOT.versus ) GOTO 5600
+
 * Style: fast for one-color per point, default is to interpolate
 * colors between points
 
@@ -448,34 +481,34 @@ c	   IF (.NOT.versus)  GOTO 5470
 	   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[=continuous,horizontal,centerlabel] ?
+*     /KEY=title is a legal option, but ignored for ribbon plot.
               loc = qual_given( slash_plot_key )
-
               IF ( loc .GT. 0) THEN
-		 CALL EQUAL_STRING( cmnd_buff(qual_start(loc):qual_end(loc)),
+                 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 )
-                 ENDIF
-	         IF ( TM_HAS_STRING(buff, 'CEN') ) THEN
-                    changed_key = .TRUE.
-                    CALL PPLCMD (from, line, 0, 'S_KEY 2', 1, 1 )
-                 ENDIF
-	         IF ( TM_HAS_STRING(buff, 'HOR') ) THEN
-                    changed_key = .TRUE.
-                    CALL PPLCMD (from, line, 0, 'S_KEY 3', 1, 1 )
-                 ENDIF
-                 IF (.NOT. changed_key) GOTO 5520
+                 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 )
+                    ENDIF
+                    IF ( TM_HAS_STRING(buff, 'CEN') ) THEN
+                       changed_key = .TRUE.
+                       CALL PPLCMD (from, line, 0, 'S_KEY 2', 1, 1 )
+                    ENDIF
+                    IF ( TM_HAS_STRING(buff, 'HOR') ) THEN
+                       changed_key = .TRUE.
+                       CALL PPLCMD (from, line, 0, 'S_KEY 3', 1, 1 )
+                    ENDIF
+                    IF ( TM_HAS_STRING(buff, 'TIT') ) THEN  
+                       changed_key = .TRUE.
+                       use_keys = .FALSE.
+                    ENDIF
+                    IF (.NOT. changed_key) GOTO 5520
                  ENDIF
               ENDIF
-
            ELSE
               CALL PPLCMD ( from, line, 0, 'SHAKEY 0,1', 1, 1 )
            ENDIF
@@ -491,19 +524,18 @@ c	   IF (.NOT.versus)  GOTO 5470
      .                        buff, status )
            IF ( status .NE. ferr_ok ) GOTO 5000
 	   IF ( buff(1:3) .EQ. 'CON' ) THEN
-	      step_inc = 2	    
+	      step_inc = 2
 	   ELSEIF ( buff(1:3) .EQ. ' ' ) THEN
 	      step_inc = 3
 	   ELSE
 	      GOTO 5220
 	   ENDIF
-	ENDIF	   
+	ENDIF
 
 * ... PLOT/DASH=(dn1,up1,dn2,up2)
 *     3/02 No reason we can't do PLOT/VS/DASH 
 
 	loc = qual_given( slash_plot_dash )
-c	IF ( loc .GT. 0  .AND. .NOT.versus ) THEN
 	IF ( loc .GT. 0 ) THEN
 	   CALL EQUAL_STR_LC( cmnd_buff(qual_start(loc):qual_end(loc)),
      .                        buff, status )
@@ -543,7 +575,7 @@ c	IF ( loc .GT. 0  .AND. .NOT.versus ) THEN
               ENDIF
            ENDIF
               
-	ENDIF	   
+	ENDIF
 
 
 * ... PLOT/hgrat[=dash or line, color=, JF[=] ] default is line
@@ -584,7 +616,8 @@ c	IF ( loc .GT. 0  .AND. .NOT.versus ) THEN
      .				dashstyle,
      .				is_logh, 
      .				is_logv,
-     .                          nokey,
+     .				nokey, 
+     .				addgaps,
      .				no_range,
      .				only_val,
      .				is_mr,
@@ -752,17 +785,24 @@ c        IF ( axes .or. noaxes ) CALL PPL_AXES_RESTORE
  5450	CALL ERRMSG( ferr_out_of_range, status, 
      .		cmnd_buff(qual_start(loc):qual_end(loc))//pCR//
      .		'AXES arguments must be 0 or 1', *1000 )
+ 5460	CALL ERRMSG( ferr_out_of_range, status, 
+     .		cmnd_buff(qual_start(loc):qual_end(loc))//pCR//
+     .		'/COLOR=WHITE only available with /THICK=1', *1000 )
  5470	CALL ERRMSG( ferr_syntax, status, 
      .		cmnd_buff(qual_start(loc):qual_end(loc))//pCR//
      .	'Ribbon plot PLOT/LEVELS valid only with /VS', *1000 )
- 5480	IF (versus) THEN
+ 5480	IF (versus .AND. addgaps .AND. ribbon_plot) THEN
            CALL ERRMSG( ferr_syntax, status, 
-     .		cmnd_buff(qual_start(loc):qual_end(loc))//pCR//
-     .	   'PLOT/VS/LEVELS ribbon plot needs 3 arguments', *1000 )
+     .	   'PLOT/VS/RIBBON/GAPLOC plot needs 4 arguments', *1000 )
+        ELSEIF (versus .AND. addgaps) THEN
+           CALL ERRMSG( ferr_syntax, status,
+     .     'PLOT/VS/GAPLOC implemented only for RIBBON plots', *1000)
+        ELSEIF (versus) THEN
+           CALL ERRMSG(ferr_syntax, status,
+     .     'PLOT/VS/RIBBON plot needs 3 arguments', *1000 )
 	ELSE
            CALL ERRMSG( ferr_syntax, status, 
-     .		cmnd_buff(qual_start(loc):qual_end(loc))//pCR//
-     .	   'PLOT/LEVELS ribbon plot needs 2 arguments', *1000 )
+     .	   'RIBBON plot needs 2 arguments', *1000 )
 	ENDIF
  5490	CALL ERRMSG( ferr_syntax, status, 
      .		cmnd_buff(qual_start(loc):qual_end(loc))//pCR//
@@ -770,6 +810,9 @@ c        IF ( axes .or. noaxes ) CALL PPL_AXES_RESTORE
  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 )
+ 5600	CALL ERRMSG( ferr_syntax, status, 
+     .	'PLOT/GAPLOC applies only to PLOT/VS/RIBBON', *1000 )
+
  5510	CALL ERRMSG( ferr_syntax, status, 
      .		cmnd_buff(qual_start(loc):qual_end(loc))//pCR//
      .	'/COLOR must have an argument for PLOT/OVERLAY', *1000 )
diff --git a/fer/xeq/xeq_polygon.F b/fer/xeq/xeq_polygon.F
index 770a9d4..0fecfd2 100644
--- a/fer/xeq/xeq_polygon.F
+++ b/fer/xeq/xeq_polygon.F
@@ -72,6 +72,9 @@
 *                  returns a pen ID from a color ID and a thickness.
 * PyFr  *kms* 7/13 Added /OPACITY
 * V6.92 *acm* 6/14 New color /key options: any of /key=horizontal,centerlabel
+* 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
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -151,10 +154,12 @@ CC       => Set values here instead.
 	set_up	  = qual_given( slash_shad_set_up    ).GT.0
 	noaxes    = qual_given( slash_noaxes         ).GT.0
 	axes      = qual_given( slash_polygon_axes   ).GT.0
+
         IF (overlay) THEN
 	   noaxes = .FALSE.
 	   axes = .FALSE.
 	ENDIF
+
 	coord_ax  = qual_given( slash_polygon_coord  )		! integer
 	is_logh   = qual_given( slash_is_logh        ).GT.0
 	is_logv   = qual_given( slash_is_logv        ).GT.0 
diff --git a/fer/xeq/xeq_repeat.F b/fer/xeq/xeq_repeat.F
index be4e6f2..4c09034 100644
--- a/fer/xeq/xeq_repeat.F
+++ b/fer/xeq/xeq_repeat.F
@@ -62,6 +62,8 @@
 * V57  6/04 *acm* - clean up declarations
 *       *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
 *       *acm* 4/12 6D Ferret: time axis may be in t or f direction.
+* V695  *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
+*                  Likewise cs_calendar_f for the F information in the command stack
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -352,11 +354,12 @@
 * 12/97 *kob* set new logical cs_is_calendar now as well
 	   by_date = ( idim .EQ. t_dim .OR. idim .EQ. f_dim )
      .	   .AND. ( .NOT.cx_by_ss(idim,limits_cx) )
-     .	   .AND. ( cx_calendar(limits_cx) )
+     .	   .AND. ( cx_calendar(idim,limits_cx) )
 * ... delta value in hours: hours-->seconds (to add to secs from BC)
 	   IF ( by_date ) THEN
                cs_delta(csp1) =  -3600. * cs_delta(csp1)
-	       cs_is_calendar(csp1) = .TRUE.
+	       IF ( idim .EQ. t_dim) cs_is_calendar_t(csp1) = .TRUE.
+	       IF ( idim .EQ. f_dim) cs_is_calendar_f(csp1) = .TRUE.
                cs_cal_id(csp1) = 1
 	   ENDIF
 
diff --git a/fer/xeq/xeq_set.F b/fer/xeq/xeq_set.F
index d83acde..705bdf1 100644
--- a/fer/xeq/xeq_set.F
+++ b/fer/xeq/xeq_set.F
@@ -184,6 +184,9 @@
 * V685 *acm*  7/13 Added FILE/FORMAT=descriptor
 * V686 *acm*  1/14 Fix ticket 2126: set axis was messing up line_name storage
 * V687 *acm*  3/14 New SET AXIS/NAME=
+* 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/
 
 	include 'tmap_dims.parm'
 	include 'tmap_errors.parm'
@@ -222,6 +225,8 @@
         include 'calendar.decl'
         include 'calendar.cmn'
         include 'netcdf.inc'    ! with NCCHAR
+        include 'pyfonts.cmn'
+
       
 * calling argument declarations:
 	INTEGER	reconfig
@@ -242,10 +247,11 @@
      .                  offset, attid, attype, attoutflag, attlen, i1, 
      .                  dset, istat, cache_size, cache_nelems, 
      .                  cache_preemption, numpts, redir_file_lun, 
-     .                  iline, iset
+     .                  iline, iset, s1, s2, nparm, num_it,
+     .                  it_start(3), it_end(3), igrp
         REAL*8          TM_WW_AXLEN, axwwlen, new_att_modulo_len
         REAL*8          delta, dlo, dhi, firstval, lastval
-	REAL		val_buf, cache_size_mb
+	REAL		val_buf, cache_size_mb, v1
 	CHARACTER	TM_FMT*12, title*1024, subtitle*64, arg*24,
      .			buff1*512, buff2*512, data_form*3, show_str*12,
      .                  varname*512, attname*128, new_att_calendar*10, 
@@ -263,6 +269,7 @@
      .                  redir_journal, redir_append, redir_clobber, 
      .                  fexist, use_strict, is_nc, have_outtype, set_att_quiet
 
+
 * local parameter declarations:
 	INTEGER		slash_set_last
 	PARAMETER     ( slash_set_last = 1 )
@@ -275,7 +282,7 @@
 
 * select subcommand
 	GOTO ( 100,200,300,400,500,600,700,800,900,1000,
-     .        1100,1200,1300,1400,1500,1600,1700 ) subcmnd_num
+     .        1100,1200,1300,1400,1500,1600,1700,1800 ) subcmnd_num
 
 * SET '    ' 
 * arrival at this point usually means an illegal subcommand was given
@@ -1010,7 +1017,7 @@ c *kob* 4/97
 
 * Replace the name in the linked-list structure.
 
-          iset = -2  ! stored info on user-defined axes
+          iset = pdset_coordvars  ! stored info on user-defined axes
           CALL CD_GET_VAR_ID (iset, line_name(axis), varid, status )
 	  IF (varid .GT. 0) CALL CD_RENAME_VAR(iset, varid, buff1, status)
 
@@ -1235,7 +1242,8 @@ c *kob* 4/97
 
 * jli: is there a function to get the line orientation idim ?
 
-            igrd=0
+           igrd=0
+	   idim = 0
  6300      CALL TM_NEXT_DYN_GRID( igrd, *6399)
               DO 6301 i=1, nferdims
                  IF ( grid_line(i, igrd) .EQ. axis ) THEN
@@ -1245,6 +1253,12 @@ c *kob* 4/97
            GOTO 6300
  6399      CONTINUE
 
+           IF (idim .EQ. 0) THEN
+	      CALL WARN(
+     .       'Axis not found in defined grids. Stride not applied')
+              RETURN
+           ENDIF
+
 * ...   Check that this native axis is used only for variables from 
 *       netCDF datasets                                                (II.3)  
 
@@ -1257,7 +1271,8 @@ c *kob* 4/97
                  DO 6010 i = 1, maxvars
                     IF (ds_grid_number(i) .EQ. igrd) THEN 
 		       is_nc = (ds_type(ds_var_setnum(i)).EQ.'CDF') .OR.
-     .                         (ds_type(ds_var_setnum(i)).EQ.'ENS')
+     .                         (ds_type(ds_var_setnum(i)).EQ.'ENS') .OR.
+     .                         (ds_type(ds_var_setnum(i)).EQ.'FCT')
                        IF (.NOT. is_nc)  
      .                   GOTO 6088
                     ENDIF
@@ -1389,7 +1404,7 @@ c *kob* 4/97
 * ... SET ATT/LIKE=var1 var2
       loc = qual_given( slash_set_attr_like ) 
       IF ( loc .GT. 0 ) THEN
-	 CALL EQUAL_STRING( cmnd_buff(qual_start(loc):qual_end(loc)),
+	 CALL EQUAL_STR_LC ( cmnd_buff(qual_start(loc):qual_end(loc)),
      .			      buff2, status )
          CALL INHERIT_ATTRS (buff2, buff1, status)
 
@@ -1490,7 +1505,7 @@ c *kob* 4/97
      .            varname, coordvar, status )
      
            IF ( status .NE. ferr_ok ) THEN 
-              dset_num = -2  ! a user-defined axis (coordinate variable)
+              dset_num = pdset_coordvars  ! a user-defined axis (coordinate variable)
               CALL ISIT_COORD_VAR ( buff1, dset_num, varname, 
      .              coordvar, status )
               IF ( status .NE. ferr_ok ) THEN
@@ -1511,7 +1526,7 @@ c *kob* 4/97
            CALL FIND_VAR_NAME(pdset_irrelevant, varname, cat, ivar)
            IF (  ivar .NE. munknown_var_name .AND.
      .           cat .EQ. cat_user_var) THEN
-              dset_num = -1
+              dset_num = pdset_uvars
            ENDIF
     
            IF (dset_num .EQ. pdset_irrelevant .OR. 
@@ -1531,7 +1546,7 @@ c *kob* 4/97
            cx = cx_last
         ENDIF
 
-        IF (dset_num .EQ. unspecified_int4) dset_num = -1 ! user variables
+        IF (dset_num .EQ. unspecified_int4) dset_num = pdset_uvars ! user variables
 
 * change an existing attribute output flag and/or value of the attr
 
@@ -1926,6 +1941,44 @@ c *kob* 4/97
         mode_metafile = .TRUE.
         RETURN
 
+	
+* SET TEXT /FONT /COLOR /ITALIC /BOLD /ISIZ  GROUP
+
+ 1800   CONTINUE
+
+	IF (num_items .EQ. 0) THEN 
+	   igroup = fnt_all
+	   CALL SET_PYTEXT_GROUP (fnt_all, buff1, status)
+
+	ELSE
+
+	   DO 1820 item = 1, num_items
+
+	      buff2 = cmnd_buff(item_start(item):item_end(item))
+
+	      len_test = TM_LENSTR(buff2)
+	      DO 1810 igrp = 1, ngp
+                 len_mchars = TM_LENSTR(pyf_group_names(igrp)(:4))
+	         IF ( MATCH4( buff2, len_test,
+     .               pyf_group_names( igrp ),len_mchars) ) 
+     .              CALL SET_PYTEXT_GROUP (igrp, buff1, status)
+		 IF ( STR_SAME( buff2(1:3), "ALL") .EQ. 0)
+     .              CALL SET_PYTEXT_GROUP (fnt_all, buff1, status)
+
+ 1810	      CONTINUE
+ 1820	   CONTINUE
+
+ 	ENDIF  ! SET TEXT arguments
+
+*  SET TEXT with no qualifiers is an error
+	IF (num_qualifiers .EQ. 0) THEN
+	   GOTO 5470
+	ENDIF
+
+* Set logical flag
+	pyfont = (STR_SAME(pyfnt_fontname, 'Hershey') .NE. 0 )
+	RETURN
+
 * error exits
  5000	RETURN
  5010	CALL ERRMSG( ferr_syntax, status,
@@ -1964,6 +2017,8 @@ c *kob* 4/97
  5320	CALL ERRMSG( ferr_invalid_command, status,
      .			'delta value not permitted on SET REGION'//
      .			pCR//'check '//ww_dim_name(idim)//' axis', *5000 )
+ 5470   CALL ERRMSG( ferr_invalid_command, status,
+     .			'SET TEXT what? /FONT/COLOR/BOLD/ITALIC/ISIZ', *5000 )
  5700	CALL ERRMSG( ferr_invalid_command, status,
      .			'qualifier(s) valid only with SET DATA/EZ command',
      .			*5000 )
@@ -1971,7 +2026,7 @@ c *kob* 4/97
      .		     'illegal qualifier or argument'//pCR//cmnd_buff(:len_cmnd),
      .			*5000 )
  5720	CALL ERRMSG( ferr_invalid_command, status,
-     .		     '/ORDER must be permutation of XYZT (with minus signs)'//
+     .		     '/ORDER must be permutation of XYZTEF (with minus signs)'//
      .			pCR//cmnd_buff(:len_cmnd), *5000 )
  5800	CALL ERRMSG( ferr_syntax, status,
      .		     'To reconfigure use SET MEMORY/SIZE=megawords'
@@ -2090,7 +2145,7 @@ c *kob* 4/97
  6810	CALL ERRMSG( ferr_invalid_command, status,
      .		'Unrecognized option/'//
      .          cmnd_buff(qual_start(i):qual_end(i)) //pCR//
-     .		' Valid options are /OUTTYPE=DOUBLE,FLOAT,INT,SHORT,or BYTE', *1000 )
+     .		' Valid options are /OUTTYPE=DOUBLE,FLOAT,INT,SHORT,or BYTE', *5000 )
      
  6900	CALL ERRMSG( ferr_unknown_arg, status,
      .'Can SET AXIS/OUTTYPE=INPUT, DOUBLE, FLOAT, INT, SHORT, BYTE, or NONE',
diff --git a/fer/xeq/xeq_shade.F b/fer/xeq/xeq_shade.F
index 30acf87..f6d7691 100644
--- a/fer/xeq/xeq_shade.F
+++ b/fer/xeq/xeq_shade.F
@@ -105,6 +105,9 @@
 * PyFr  *kms*  6/13 Added /OPACITY
 * PyFr  *kms*  7/13 Scale default lettering sizes by textscale
 * V6.92 *acm* 6/14 New color /key options: any of /key=horizontal,centerlabel
+* 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
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -163,10 +166,12 @@
 	set_up	  = qual_given( slash_shad_set_up    ).GT.0
 	noaxes    = qual_given( slash_noaxes         ).GT.0
 	axes      = qual_given( slash_shad_axes      ).GT.0
+
         IF (overlay) THEN
 	   noaxes = .FALSE.
 	   axes = .FALSE.
 	ENDIF
+
 	is_logh   = .FALSE.
 	is_logv   = .FALSE.
         spectrum  = sp .GT. 0 
diff --git a/fer/xeq/xeq_show.F b/fer/xeq/xeq_show.F
index 27f8c29..c9ce966 100644
--- a/fer/xeq/xeq_show.F
+++ b/fer/xeq/xeq_show.F
@@ -183,10 +183,15 @@
 * V685 *sh*  9/13 Added SHOW VARIABLE/TREE  (a.k.a. /DEPENDENCIES)
 * V690 *sh* 12/13 Added SHOW TRANSFORMS of auxiliary variable regridding
 * V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
-* V690 *sh* 1/14 Add SHOW VAR/SIGMA
+* V690 *sh* 1/14 Add SHOW VAR/LAYERZ (formerly /SIGMA)
 * V691+*acm* 8/14 Fix ticket 2188: SHOW MEMORY should say memory words are 8 bytes.
 * V691+ 8/14 *acm* Fix ticket 2194: SHOW with /OUTFILE and not /XML. 
 * V69+ *acm*  9/14 Ticket 1758. Memory request uses number of blocks not words
+* V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
+*        2/15 *sh* attempted but rejected hack to deal with left-over dset=-1
+* 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
 
         IMPLICIT NONE
 
@@ -219,6 +224,7 @@
         include 'EF_Util.cmn'
         include 'netcdf.inc'
         INCLUDE 'fgrdel.cmn'
+        include 'pyfonts.cmn'
 
 * local parameter declarations:
 	LOGICAL	    brief
@@ -291,14 +297,15 @@
      .          base_cx, base_isp, grid_blocks
         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
+	REAL	xtemp, ytemp, attvals(100), cache_mb, cache_n, cache_p, rsize,
+     .		v1, v2, v3
 	CHARACTER EXPR_NAME*8, TM_FMT*12, VAR_CODE*128,
      .		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
-   
+
 * 10/01 *kob* had to change decl of axesOrCorner for picky f95
         CHARACTER*6 axesOrCorner(2)
 
@@ -320,6 +327,7 @@
 * initialize
 	show_lun = ttout_lun
 	sxml = .FALSE.
+!        IF (dset .EQ. -1) dset = unspecified_int4   ! 2/15: avoid left over -1
 
 * command given with /ALL ?
 	risc_buff = ' '
@@ -336,7 +344,7 @@
 * select subcommand
 	GOTO ( 100, 200, 300, 400, 500, 600, 700, 800, 900,1000,
      .        1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,
-     .	      2100,2200 )
+     .	      2100,2200,2300 )
      .								subcmnd_num
 
 * SHOW '    ' - (no action)
@@ -375,6 +383,9 @@
               ELSEIF ( enginename(i) .EQ. 'PipedImager' ) THEN
                  qualstr = ' DRAFT'
                  dispstr = 'YES'
+              ELSEIF ( enginename(i) .EQ. 'NoDisplayPQ' ) THEN
+                 qualstr = '  HIGH'
+                 dispstr = ' NO'
               ELSE
                  qualstr = 'CUSTOM'
                  dispstr = ' ? '
@@ -676,6 +687,7 @@ c     .           (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
 
 * SHOW DATA_SET
  700 	CALL SHOW_DATA(dset, status) 
+  
         IF (status .NE. ferr_ok) GOTO 5000
 	IF ( dset .EQ. unspecified_int4 ) GOTO 5071
 
@@ -786,15 +798,15 @@ c     .           (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
 	   ENDIF
 	ENDIF
 
-* ... SHOW VARIABLE/SIGMA varname [,varname2, ...]
-	IF (qual_given(slash_show_var_sigma) .GT. 0) THEN
+* ... SHOW VARIABLE/LAYERZ varname [,varname2, ...]
+	IF (qual_given(slash_show_var_layerz) .GT. 0) THEN
 	   IF (slash_all .OR. num_args.EQ.0) THEN
-*    ... get list of varIDs of all variables that have __SigmaRef_ attribute
+*    ... get list of varIDs of all variables that have __LayerzRef_ attribute
               CALL GET_FVARS_LIST_BY_ATTNAME_AND_VAL
-     .            (patnam_sigma, unspecified_name4, max_uvar,
+     .            (patnam_layerz, unspecified_name4, max_uvar,
      .             arr_buff, saved_index_list, num_indices)
               CALL GET_UVARS_LIST_BY_ATTNAME_AND_VAL
-     .	          (patnam_sigma, unspecified_name4, max_uvar-num_indices,
+     .	          (patnam_layerz, unspecified_name4, max_uvar-num_indices,
      .             arr_buff(num_indices+1),
      .             saved_index_list(num_indices+1), n )
               num_indices = num_indices + n
@@ -814,22 +826,22 @@ c     .           (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
                     arg = varname
                     GOTO 5100    ! unknown variable
                  ENDIF
-* get the variable ID in the linked list  (user vars stored under dset=-1?)
+* get the variable ID in the linked list  (user vars stored under dset=pdset_uvars?)
 	         IF (cat .EQ. cat_user_var) THEN
-                    rqst_dset = -1  ! signals a uvar in linked list calls?
+                    rqst_dset = pdset_uvars  
                  ELSE
                     rqst_dset = dset
                  ENDIF
-* NOTE: if dset=-1 signals uvar, it would seem that we'll see a bug if
+* 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
            ENDIF
-* loop through the requested variables displaying sigma info
+* loop through the requested variables displaying layerz info
            DO i1 = 1, num_indices
-* get the attribute value of '__SigmaRef_' (patnam_sigma)
+* get the attribute value of '__LayerzRef_' (patnam_layerz)
               varid = arr_buff(i1)
               dset  = saved_index_list(i1)
               maxlen = size_rbuff
@@ -837,49 +849,49 @@ c     .           (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
      .                              nvdims, vdims, nvatts, coordvar, 
      .                              all_outflag, status)
               len = TM_LENSTR1(varname)
-              got_it = NC_GET_ATTRIB ( dset, varid, patnam_sigma,
+              got_it = NC_GET_ATTRIB ( dset, varid, patnam_layerz,
      .                                 .TRUE., varname, maxlen,
      .                                 attlen, attoutflag, risc_buff,
      .                                 attvals )
               IF (.NOT.got_it) THEN
 * ... we only arrive here if request was for named vars: SH VAR/SIG a, b, c
-* ... no explicit sigma reference defined for this variable
+* ... no explicit layerz reference defined for this variable
                  show_str =
-     .         '  No variable holds vertical (sigma) coordinates of '
+     .         '  No variable holds vertical (layerz) coordinates of '
      .                // varname(:len)
 
-* look for inherited sigma dependencies 
+* look for inherited layerz dependencies 
 	         dset = unspecified_int4    ! to be determined during parse
 	         CALL PARSE_NAM_DSET( varname, cx_last, dset,
      .			              cat, var, mods_cx, status )
                  IF (cat .EQ. cat_user_var) THEN
-* ... trigger grid-getting, which also gets sigma associations
+* ... trigger grid-getting, which also gets layerz associations
 	           grid = GRID_FROM_NAME
      .                    (cmnd_buff(item_start(i1):item_end(i1)),
      .			  cx_last, status )
                    IF (uvar_aux_stat(var, z_dim).EQ.paux_stat_conflict) THEN
                       show_str = '   Components in the definition of ' // 
      .                  varname(:len) //
-     .                  ' have conflicting SIGMA references'
+     .                  ' have conflicting LAYERZ references'
                    ELSEIF (uvar_aux_stat(var,z_dim).EQ.paux_stat_passed
      .                .OR. uvar_aux_stat(var,z_dim).EQ.paux_stat_needed) THEN
                       risc_buff = VAR_CODE(uvar_aux_cat(var,z_dim,dset),
      .                                     uvar_aux_var(var,z_dim,dset))
                       attlen = TM_LENSTR1(risc_buff)
                       show_str = '  ' // risc_buff(:attlen) //
-     .                  ' holds the vertical (sigma) coordinates of ' //
+     .                  ' holds the vertical (layerz) coordinates of ' //
      .                  varname(:len)
                    ELSEIF (uvar_aux_stat(var,z_dim).EQ.paux_stat_used) THEN
                       show_str = '  The definition of ' // 
      .                  varname(:len) //
      .                  ' contains explicit regrids of'//
-     .                  ' its SIGMA coordinates'
+     .                  ' its LAYERZ coordinates'
                    ENDIF 
                  ENDIF
               ELSE
-* ... show the explicit __sigma_ref_ attribute value
+* ... show the explicit __layerz_ref_ attribute value
                 show_str = '  ' // risc_buff(:attlen) //
-     .         ' holds the designated vertical (sigma) coordinates of ' //
+     .         ' holds the designated vertical (layerz) coordinates of ' //
      .          varname(:len)
               ENDIF
 	      CALL SPLIT_LIST(pttmode_explct, show_lun, show_str, 0)
@@ -1390,11 +1402,16 @@ c     .           (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
                     CALL SHOW_GRID_XML(show_lun, grid, unspecified_int4 )
                  ELSE
 	            WRITE ( risc_buff, 4210 ) grid_name( grid )
-		    IF (dset.NE.unspecified_int4 .AND. dset.NE.pdset_irrelevant) THEN
+		    IF (dset.NE.unspecified_int4 .AND. dset.NE.pdset_irrelevant
+     .		       .AND. dset.NE.pdset_uvars .AND. dset.NE.pdset_coordvars) THEN
 	            IF ( TM_HAS_STRING(ds_type(dset), 'ENS') ) THEN
 		       dlen = TM_LENSTR1(grid_name(grid) )
 		       WRITE ( risc_buff, 4211) grid_name(grid)(:dlen)
 		    ENDIF
+	            IF ( TM_HAS_STRING(ds_type(dset), 'FCT') ) THEN
+		       dlen = TM_LENSTR1(grid_name(grid) )
+		       WRITE ( risc_buff, 4212) grid_name(grid)(:dlen)
+		    ENDIF
 		    ENDIF
 	            CALL SPLIT_LIST(pttmode_explct, show_lun, risc_buff, 0)
 
@@ -1406,6 +1423,7 @@ c     .           (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
  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')
 
 	ELSEIF( qual_given(slash_grid_dyn) .GT. 0 ) THEN
 	   CALL SHOW_DYN_GRIDS(mods_cx)
@@ -1677,7 +1695,7 @@ c     .           (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
      .              varname, coordvar, status )
 
               IF ( status .NE. ferr_ok ) THEN 
-                 dset = -2  ! a user-defined axis (coordinate variable)
+                 dset = pdset_coordvars  ! a user-defined axis (coordinate variable)
                  CALL ISIT_COORD_VAR ( show_str, dset, 
      .              varname, coordvar, status )
                     IF ( status .NE. ferr_ok ) THEN
@@ -1711,7 +1729,7 @@ c     .           (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
            IF (dot .GT. 0) varname = show_str(1:dot-1)
            CALL FIND_VAR_NAME(dset, varname, cat, var)
            IF (  var .NE. munknown_var_name .AND.
-     .           cat .EQ. cat_user_var) dset = -1
+     .           cat .EQ. cat_user_var) dset = pdset_uvars
 
 * Or use command context to get data set
 
@@ -1763,10 +1781,10 @@ c     .           (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
 
               IF (.NOT. sxml) THEN
                  IF (dset .NE. dset_last ) THEN
-                    IF (dset .EQ. -1) THEN
+                    IF (dset .EQ. pdset_uvars) THEN
                        risc_buff = 
      .                   '     attributes for user-defined variables'
-                    ELSE IF (dset .EQ. -2) THEN
+                    ELSE IF (dset .EQ. pdset_coordvars) THEN
                        risc_buff = 
      .                   '     attributes for coordinate axis'
                     ELSE
@@ -2028,19 +2046,85 @@ c     .                               sbrief, sdetail, i2)
 	ENDIF
 	IF ( limited_show ) RETURN
 
-* SHOW QUERIES
+* SHOW TEXT 
  2200   CONTINUE
-	DO 2210 i = 1, max_queries
+	IF (.NOT.pyfont) THEN
+	   CALL SPLIT_LIST(pttmode_explct, show_lun,
+     .			'Hershey fonts as in classic Ferret ', 0)
+
+	ELSE
+	CALL SPLIT_LIST(pttmode_explct, show_lun,
+     .			'default ', 0)
+
+c* ... Font
+	CALL SPLIT_LIST(pttmode_explct, show_lun,
+     .			'     /FONT='//pyfnt_fontname, 0)
+* ... Color
+	
+* Convert rgb back to % values
+	v1 = pyfnt_red*100.
+	v2 = pyfnt_grn*100.
+	v3 = pyfnt_blu*100.
+	WRITE (risc_buff, 2201) v1, v2, v3
+ 2201	FORMAT ('     /COLOR= (', 2(f4.1,','), f4.1,') (%RGB)')
+
+	len = TM_LENSTR1(risc_buff)
+	CALL GET_COLOR_NAME (v1, v2, v3, name, len0)
+	IF (len0 .GT. 0) risc_buff = '     /COLOR="'//name(:len0)//'"'
+	CALL SPLIT_LIST(pttmode_explct, show_lun, risc_buff, 0)
+
+* ... Italic, Bold
+	IF (pyfnt_italic .EQ. 1) THEN
+	   CALL SPLIT_LIST(pttmode_explct, show_lun,
+     .			'     /ITALIC=ON', 0)
+
+	ELSE
+	   CALL SPLIT_LIST(pttmode_explct, show_lun,
+     .			'     /ITALIC=OFF', 0)
+
+	ENDIF
+
+	IF (pyfnt_bold .EQ. 1) THEN
+	   CALL SPLIT_LIST(pttmode_explct, show_lun,
+     .			'     /BOLD=ON', 0)
+
+	ELSE
+	   CALL SPLIT_LIST(pttmode_explct, show_lun,
+     .			'     /BOLD=OFF', 0)
+        ENDIF
+
+	WRITE (risc_buff, 2202) pyfnt_isiz
+ 2202	FORMAT ('     /ISIZ=',i2)
+	CALL SPLIT_LIST(pttmode_explct, show_lun,
+     .			risc_buff, 0)
+
+* Text groups: TITLE LOGO, etc. List settings for any that are
+* different from the overall defaults.
+
+        DO 2210 i1 = ititl, icbar
+	    IF (pyf_set(i1)) THEN
+	       CALL SHOW_PYTEXT_GROUP(i1)
+	    ENDIF
+ 2210	CONTINUE
+
+	ENDIF  ! classic-Hershey or not
+
+	IF ( limited_show ) RETURN
+
+* SHOW QUERIES
+ 2300   CONTINUE
+	DO 2310 i = 1, max_queries
 	   IF ( queries(i) .NE. unspecified_name4 )CALL SPLIT_LIST
      .			(pttmode_explct, show_lun, queries(i), 0)
- 2210	CONTINUE
+ 2310	CONTINUE
 	IF ( limited_show ) RETURN
 
 
 * error exit
  5050   CALL RELEASE_WORK_SPC
  5000	RETURN
- 5071	CALL ERRMSG( ferr_unknown_data_set, status,
+ 5071	name = cmnd_buff(arg_start(1):arg_end(1))
+	CALL ERRMSG( ferr_unknown_data_set, status,
      .			name(:TM_LENSTR1(name)), *5000 )
  5072	CALL ERRMSG( ferr_invalid_command, status,
      .         'dataset not found for varname.attname '//
diff --git a/fer/xeq/xeq_vector.F b/fer/xeq/xeq_vector.F
index 056b7c1..186d94c 100644
--- a/fer/xeq/xeq_vector.F
+++ b/fer/xeq/xeq_vector.F
@@ -108,7 +108,9 @@
 *                   returns a pen ID from a color ID and a thickness.
 * PyFr  *kms*  6/13 Added /OPACITY
 * PyFr  *kms*  7/13 Scale default lettering sizes by textscale
-
+* 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
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -126,7 +128,7 @@
 	include 'xrisc.cmn'          ! 12/94 SPLIT_LIST buffer
         include 'gkscm1_inc.decl'
         include 'GKSCM1.INC'    ! wsid
-
+        include 'xrevision.cmn'
 
 * calling argument declarations:
 	REAL	memory( mem_blk_size, max_mem_blks )
@@ -175,10 +177,12 @@
 	set_up	  = qual_given( slash_shad_set_up    ).GT.0
 	noaxes    = qual_given( slash_noaxes         ).GT.0
 	axes      = qual_given( slash_vect_axes      ).GT.0
+
         IF (overlay) THEN
 	   noaxes = .FALSE.
 	   axes = .FALSE.
 	ENDIF
+
 	flows     = qual_given( slash_vect_flowline  ).GT.0
 	is_logh   = .FALSE.  ! Not valid quals
 	is_logv   = .FALSE.  ! for vector
diff --git a/fmt/cmn/xdset_info.cmn_text b/fmt/cmn/xdset_info.cmn_text
index aa5ea92..b808de3 100644
--- a/fmt/cmn/xdset_info.cmn_text
+++ b/fmt/cmn/xdset_info.cmn_text
@@ -24,11 +24,14 @@
 * V68  *acm* 1/12 Real variables should be declared REAL (conversion to double prec.)
 * V674 2/12 *acm* 6D Ferret: use nferdims rather than 4 for dimension indexing
 *                 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)
 
 	COMMON/XDSET_INFO/
      .		ds_1step(maxdsets),ds_lastep(maxdsets),
      .		ds_delstep(maxdsets),
      .		ds_file_info_ptr(maxdsets),
+     .		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),
@@ -57,11 +60,11 @@
      .          ds_var_scale(maxvars), ds_var_off(maxvars),
      .		ds_bad_flag(maxvars),ds_ordering(nferdims,maxvars),
      .		ds_grid_start(nferdims,maxvars),ds_grid_end(nferdims,maxvars),
-     .	 	ds_var_type(maxvars),
+     .	 	ds_var_type(maxvars), 
      .		ds_precision(maxvars),
 **************************************************************************
      .		ds_aux_set_num(maxvars), ds_var_scaleit(maxvars),
-     .          is_mc,
+     .          ds_its_aux_coord(maxvars), is_mc,
 **************************************************************************
      .		min_ds_tstart,max_ds_tend,ds_tdelta,
 **************************************************************************
@@ -118,7 +121,7 @@
 	CHARACTER*2048	ds_name
 	CHARACTER*2048	ds_des_name
 	INTEGER*4	ds_open,ds_basic_axes,ds_time_axis
-	LOGICAL		ds_regsteps, ds_var_scaleit, is_mc, 
+	LOGICAL		ds_regsteps, ds_var_scaleit, ds_its_aux_coord, is_mc, 
      .			ds_accepts_remote, ds_hide
 	REAL*8		ds_1step,ds_lastep,ds_delstep,
      .			ds_file_info_ptr
@@ -129,3 +132,4 @@
 	INTEGER*4	ds_ndataperrec,ds_nrecpervar,ds_nrecb4var,
      .			ds_var_setnum
 	INTEGER*2	ds_npospervar
+	REAL*8		ds_var_c_cache_ptr
diff --git a/fmt/cmn/xrisc_buff.cmn b/fmt/cmn/xrisc_buff.cmn
index cb9bf8b..64c00c0 100644
--- a/fmt/cmn/xrisc_buff.cmn
+++ b/fmt/cmn/xrisc_buff.cmn
@@ -3,10 +3,12 @@
 * character string concatenations ("//")
 * this common declares a buffer with a fixed length string in which to copy
 * the CHAR*(*) string
+* 1/2015 Increase size of rbuff
+
+* ***  Note that there is also a risc_buff defined in fer/common/xrisc.cmn ***
 
 	INTEGER     size_rbuff
-*	PARAMETER ( size_rbuff = 256 )
-	PARAMETER ( size_rbuff = 2048 )  ! Increased ferret 6.01 8/2006
+	PARAMETER ( size_rbuff = 10240)
 
 	COMMON/ XRISC_BUFF / len_rbuff, risc_buff
 	CHARACTER  risc_buff*(size_rbuff)
diff --git a/fmt/cmn/xtm_grid.cmn_text b/fmt/cmn/xtm_grid.cmn_text
index 896a08b..408b4e3 100644
--- a/fmt/cmn/xtm_grid.cmn_text
+++ b/fmt/cmn/xtm_grid.cmn_text
@@ -30,6 +30,9 @@
 *                  for use on output of user-defined variables when MODE UPCASE_OUTPUT is cancelled.
 * V64  10/09 *acm* longer string length for grid_name
 * v685  3/13 *acm* new line_write for writing axes to xml
+* 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. New flag 
+*                 line_dim_only marking axes that are defined from a dimension only
 
 	CHARACTER*128	grid_filename
 	CHARACTER*20	line_t0
@@ -44,8 +47,8 @@
      .			line_class, line_free_ptr, max_line_used,
      .                  pline_mem_init, line_offset, line_dattype
 	LOGICAL		grid_out_prod, line_regular, line_modulo, line_reversed,
-!     .			line_has_edges, line_keep_flag,
-     .			line_keep_flag, line_shift_origin, line_fixname, line_write
+     .			line_keep_flag, line_shift_origin, line_fixname, line_write,
+     .			line_dim_only
 	REAL		line_tunit, grid_rotation
 	REAL*8		line_start, line_delta, line_mem, line_modulo_len
 
@@ -78,6 +81,7 @@
      .			line_fixname    ( 0:line_ceiling ),
      .			line_shift_origin( 0:line_ceiling ),
      .			line_write      ( 0:line_ceiling ),
+     .			line_dim_only   ( 0:line_ceiling ),
      .			line_free_ptr,
      .			max_line_used,
      .			line_cal_name  ( 0:line_ceiling ),
diff --git a/fmt/src/NCF_Util.c b/fmt/src/NCF_Util.c
index 3e146a8..b47545b 100644
--- a/fmt/src/NCF_Util.c
+++ b/fmt/src/NCF_Util.c
@@ -36,55 +36,59 @@
 */
 
 /* NCF_Util.c
- *
- * Ansley Manke
- * Ferret V600 April 26, 2005
- * V5600 *acm* fix declarations of fillc and my_len as required by solaris compiler
- *
- * This file contains all the utility functions which Ferret
- * needs in order to do attribute handling. Based on code for EF's.
- * calls are made to nc_ routines from netcdf library.
- *
- *
- * *acm   9/06 v600 - add stdlib.h wherever there is stdio.h for altix build
- * *acm  10/06 v601 - Fix by Remik for bug 1455, altix. For string attributes,
- *                    allocate one more than the att.len, presumably for the null
- *                    terminator for the string. Also double check the string length
- *                    that is returned from the call to nc_inq_att, and make sure
- *                    we allocate the correct amount of memory for the string.
- *
- * *acm  11/06 v601 - ncf_delete_var_att didnt reset the attribute id's.  Fix this.
- *
- * *acm  11/06 v601 - new routine ncf_add_var_num_att_dp
- * *acm  11/06 v601 - new routine ncf_repl_var_att_dp
- * *acm  11/06 v601 - in ncf_init_other_dset, set the name of the global attribute
- *                    to history, and define its attribute type and outflag.
- * *acm  11/06 v601 - new routine ncf_rename_var, for fix of bug 1471
- * *acm  11/06 v601 - in ncf_delete_var_att, renumber the attid for the remaining attributes.
- * *acm* 12/06 v602 - new attribute assigned to coordinate vars on input, orig_file_axname
- * *acm*  2/07 V602 - Fix bug 1492, changing attributes of coordinate variables; use pseudo-dataset
- *                       of user-defined axes to keep track of attributes.
- * *acm* 10 07      - Patches for memory-leak fixes from Remiz Ziemlinski
- * *acm* 10/07      - Further fixes by Remik, initializing att.vals, att.string to NULL,
- *                      set var.ndims = 0 in ncf_init_other_dset
- * *acm*  3/08      - Fix bug 1534; needed to initialize attribute output flag for
- *                    the bounds attribute on coordinate axes.
- * *acm*  1/09      - If adding a new global attribute, also increment ngatts.
- * *acm*  1/09      - Fix bug 1620; In ncf_add_var, which is used when defining user
- *                    variables, and also for reading in EZ datasets, I had the default
- *                    attribute type for missing_value attribute set to NC_DOUBLE. There's no
- *                    reason for this as these variables are always single precision.
- * *acm*  5/09      - Fix bug 1664. For user variables, varid matches the uvar from Ferret.
- *                    therefore it may be larger than nc_ptr->nvars
- * *acm*  3/11      - Fix bug 1825. Routine ncf_get_var_seq no longer called
- * *acm*  1/12      - Ferret 6.8 ifdef double_p for double-precision ferret, see the
- *                    definition of macro DFTYPE in ferretmacros.h.
- * *acm*  5/12 V6.8 - Additions for creating aggregate datasets
- * *acm*  8/13	      Fix bug 2089. Mark the scale_factor and add_offset attributes  
- *                    to-be-output when writing variables.
- * *acm*  8/13        Fix bug 2091. If a string variable has the same name as a dimension,
- *                    DO NOT mark it as an axis.
- */
+*
+* Ansley Manke
+* Ferret V600 April 26, 2005
+* V5600 *acm* fix declarations of fillc and my_len as required by solaris compiler
+*
+* This file contains all the utility functions which Ferret
+* needs in order to do attribute handling. Based on code for EF's.
+* calls are made to nc_ routines from netcdf library.
+*
+*
+* *acm   9/06 v600 - add stdlib.h wherever there is stdio.h for altix build
+* *acm  10/06 v601 - Fix by Remik for bug 1455, altix. For string attributes,
+*                    allocate one more than the att.len, presumably for the null
+*                    terminator for the string. Also double check the string length
+*                    that is returned from the call to nc_inq_att, and make sure
+*                    we allocate the correct amount of memory for the string.
+*
+* *acm  11/06 v601 - ncf_delete_var_att didnt reset the attribute id's.  Fix this.
+*
+* *acm  11/06 v601 - new routine ncf_add_var_num_att_dp
+* *acm  11/06 v601 - new routine ncf_repl_var_att_dp
+* *acm  11/06 v601 - in ncf_init_other_dset, set the name of the global attribute
+*                    to history, and define its attribute type and outflag.
+* *acm  11/06 v601 - new routine ncf_rename_var, for fix of bug 1471
+* *acm  11/06 v601 - in ncf_delete_var_att, renumber the attid for the remaining attributes.
+* *acm* 12/06 v602 - new attribute assigned to coordinate vars on input, orig_file_axname
+* *acm*  2/07 V602 - Fix bug 1492, changing attributes of coordinate variables; use pseudo-dataset
+*                       of user-defined axes to keep track of attributes.
+* *acm* 10 07      - Patches for memory-leak fixes from Remiz Ziemlinski
+* *acm* 10/07      - Further fixes by Remik, initializing att.vals, att.string to NULL,
+*                      set var.ndims = 0 in ncf_init_other_dset
+* *acm*  3/08      - Fix bug 1534; needed to initialize attribute output flag for
+*                    the bounds attribute on coordinate axes.
+* *acm*  1/09      - If adding a new global attribute, also increment ngatts.
+* *acm*  1/09      - Fix bug 1620; In ncf_add_var, which is used when defining user
+*                    variables, and also for reading in EZ datasets, I had the default
+*                    attribute type for missing_value attribute set to NC_DOUBLE. There's no
+*                    reason for this as these variables are always single precision.
+* *acm*  5/09      - Fix bug 1664. For user variables, varid matches the uvar from Ferret.
+*                    therefore it may be larger than nc_ptr->nvars
+* *acm*  3/11      - Fix bug 1825. Routine ncf_get_var_seq no longer called
+* *acm*  1/12      - Ferret 6.8 ifdef double_p for double-precision ferret, see the
+*                    definition of macro DFTYPE in ferretmacros.h.
+* *acm*  5/12 V6.8 - Additions for creating aggregate datasets
+* *acm*  8/13	      Fix bug 2089. Mark the scale_factor and add_offset attributes  
+*                    to-be-output when writing variables.
+* *acm*  8/13        Fix bug 2091. If a string variable has the same name as a dimension,
+*                    DO NOT mark it as an axis.
+* *acm*  v694 1/15   For ticket 2227: if a dimension from a nc file is not also a 
+*                    1-D coordinate var, don't write the axis Ferret creates. Do report
+*                    in dimnames outputs the dimension names as used by Ferret e.g. a
+*                    renamed axis TIME -> TIME1
+*/
 
 #include <Python.h> /* make sure Python.h is first */
 #include "ferretmacros.h"
@@ -162,6 +166,8 @@ int  FORTRAN(ncf_add_var_num_att_dp)( int *, int *, char *, int *, int *, int *,
 int  FORTRAN(ncf_add_var_str_att)( int *, int *, char *, int *, int *, int *, char *);
 
 int  FORTRAN(ncf_rename_var)( int *, int *, char *);
+int  FORTRAN(ncf_rename_dim)( int *, int *, char *);
+
 int  FORTRAN(ncf_repl_var_att)( int *, int *, char *, int *, int *, DFTYPE *, char *);
 int  FORTRAN(ncf_repl_var_att_dp)( int *, int *, char *, int *, int *, double *, char *);
 int  FORTRAN(ncf_set_att_flag)( int *, int *, char *, int *);
@@ -1150,6 +1156,8 @@ int FORTRAN(ncf_add_dset)(int *ncid, int *setnum, char name[], char path[])
 			if (nc_status != NC_NOERR) return nc_status;
 			strcpy (nc.dims[i].name, fdims.name);
 			nc.dims[i].size = fdims.size;
+/*			strcpy (nc.dimname[i], fdims.name);
+			nc.dimsize = fdims.size; */
 		}
 	}
 	
@@ -1273,7 +1281,8 @@ int FORTRAN(ncf_add_dset)(int *ncid, int *setnum, char name[], char path[])
 				if (var.type == NC_CHAR) var.outtype = NC_CHAR;
 				var.outtype = var.type;  /* ?? */
 				
-				/* is this a coordinate variable? If not a string, set the flag.
+				/* Is this a coordinate variable? If not a string, set the flag.
+				/* A multi-dimensional variable that shares a dimension name is not a coord. var.
 				 */
 				if (nc.ndims > 0) {
 					var.is_axis = FALSE;
@@ -1282,6 +1291,7 @@ int FORTRAN(ncf_add_dset)(int *ncid, int *setnum, char name[], char path[])
 					while (i < nc.ndims && var.is_axis == FALSE) {
 						if  (strcasecmp(var.name, nc.dims[i].name) == 0) var.is_axis = TRUE;
 						if  (var.type == NC_CHAR) var.is_axis = FALSE;
+						if  (var.ndims > 1) var.is_axis = FALSE;
 						i = i + 1;
 					}
 				}
@@ -2403,6 +2413,36 @@ int  FORTRAN(ncf_rename_var)( int *dset, int *varid, char newvarname[])
   return return_val;
 }
 
+
+/* ----
+ * Find a dimension in the datset using dataset ID
+ * Replace the dimension name with the new one passed in.
+ */
+
+int  FORTRAN(ncf_rename_dim)( int *dset, int *dimid, char newdimname[])
+
+{
+  ncdset *nc_ptr=NULL;
+  int status=LIST_OK;
+  int return_val;
+	
+   /*
+   * Get the dataset pointer.  
+   */
+  return_val = ATOM_NOT_FOUND;  
+  if ( (nc_ptr = ncf_ptr_from_dset(dset)) == NULL ) return return_val;
+
+  /* Insert the new name. */
+  
+  strcpy (nc_ptr->dims[*dimid-1].name, newdimname);
+
+/* just return for now. */
+  return_val = FERR_OK;
+  return return_val;
+}
+
+
+
 /* ----
  * Find an attribute based on its variable ID and dataset ID
  * Replace the type, length, and/or value(s).
diff --git a/fmt/src/SOURCE_FILES b/fmt/src/SOURCE_FILES
index 641aa8e..198892e 100644
--- a/fmt/src/SOURCE_FILES
+++ b/fmt/src/SOURCE_FILES
@@ -1,4 +1,5 @@
 SRCS_F = \
+cd_1d_line_from_2d.F\
 cd_abort_grids.F\
 cd_add_coord_var.F\
 cd_add_agg_var_info.F\
@@ -27,6 +28,7 @@ cd_get_attval.F\
 cd_get_attvalc.F\
 cd_get_attval_l.F\
 cd_get_bounds.F\
+cd_get_calendar_name.F\
 cd_get_chunk_cache.F\
 cd_get_dim_id.F\
 cd_get_ds_dims.F\
@@ -52,6 +54,8 @@ cd_isit_another_dset.F\
 cd_isit_epic.F\
 cd_isit_recdim.F\
 cd_load_dset_attrs.F\
+cd_make_fmrc_axes.F\
+cd_make_fmrc_fcal_axis.F\
 cd_make_var.F\
 cd_ncclose.F\
 cd_ncopen.F\
@@ -73,9 +77,11 @@ cd_rd_ymd_arr.F\
 cd_read.F\
 cd_read_remote.F\
 cd_rec_synch.F\
+cd_rename_dim.F\
 cd_rename_var.F\
 cd_replace_attr.F\
 cd_replace_attr_dp.F\
+cd_scan_aux_coords.F\
 cd_scan_vars.F\
 cd_set_att_axdir.F\
 cd_set_att_flag.F\
diff --git a/fmt/src/tm_make_basic_axis.F b/fmt/src/cd_1d_line_from_2d.F
similarity index 52%
copy from fmt/src/tm_make_basic_axis.F
copy to fmt/src/cd_1d_line_from_2d.F
index d077ec2..2544d79 100644
--- a/fmt/src/tm_make_basic_axis.F
+++ b/fmt/src/cd_1d_line_from_2d.F
@@ -1,13 +1,11 @@
-	SUBROUTINE TM_MAKE_BASIC_AXIS( name, start,
-     .                                 delta, npts, iaxis, status )
+	SUBROUTINE CD_1D_LINE_FROM_2D (dset, cdfid, varid, vname,
+     .			axcalt, axlagf, 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
@@ -35,69 +33,74 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-*
-* Create a very basic 1 to n axis with no frills
 
-* Programmer Steve Hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
+* 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
 
-* revision 0.0 - 2/92
-* V510 *sh* 3/00 - convert to dynamic grids and axes for netCDF files
-* 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
-
-* argument definitions:
-*       name      - name for axis
-*       start     - starting value
-*	delta     - delta value
-*       npts      - number of points
-*       iaxis     - returned axis pointer in TMAP common
-*	status	  - return status
+* V695+ *acm* and *sh*
 
 * include files
+        include 'netcdf.inc'
 	include 'tmap_errors.parm'
+#include "gt_lib.parm"
 	include 'tmap_dims.parm'
 #include "tmap_dset.parm"
-#include "gt_lib.parm"
-	include 'xdset_info.cmn_text'
-	external xdset_info_data
+
 	include 'xtm_grid.cmn_text'
 	external xgt_grid_data
 
 
-* argument declarations
-	INTEGER	 npts, iaxis, status
-        REAL*8   start, delta
-        CHARACTER*(*) name
-
-* local variable declarations:
-      INTEGER STR_UPCASE,
-     .        istat
-
-* allocate a temporary slot for the axis
-	CALL TM_ALLO_TMP_LINE(iaxis, status)
-	IF (status .NE. merr_ok) GOTO 5900
-
-* build axis
-      istat = STR_UPCASE( line_name(iaxis), name )
-      line_name_orig(iaxis) = name
-      line_dim( iaxis)      = npts
-      line_start(iaxis)     = start
-      line_delta(iaxis)     = delta
-      line_regular(iaxis)   = .TRUE.
-      line_units(iaxis)     = ' '
-      line_unit_code(iaxis) = 0
-      line_modulo(iaxis)    = .FALSE.
-      line_modulo_len(iaxis)= 0.0D0
-      line_t0(iaxis)        = char_init20
-      line_shift_origin(iaxis) = .FALSE.
-      line_tunit(iaxis)     = real4_init
-      line_direction(iaxis) = 'NA'
+* calling argument declarations
+	INTEGER dset, cdfid, varid, axcalt, axlagf, status
+	CHARACTER*(*) vname
+
+* internal variable declarations
+	LOGICAL coordvar, has_edges
+	INTEGER cdfstat, i, outflag, nvatts, vartype,
+     .		start(nferdims),count(nferdims), zero(nferdims),
+     .		npts, nT, nF, npts_cdf, vdims(8), nvdim
+	CHARACTER  TM_STRING*13, buff*256
+
+
+* start out by getting an overview of the 2D time variable
+	CALL CD_GET_VAR_INFO (dset, varid, vname, vartype, 
+     .            nvdim, vdims, nvatts, coordvar, outflag, status)
+
+* Read the 2d time coordinate array from the netCDF dataset
+* Save it at the start of available line storage memory
+
+	npts = 1
+	DO i = 1, nvdim
+	   CALL CD_GET_DS_DIMS (dset, vdims(i), buff, npts_cdf, status)
+	   start(i) = 1
+	   count(i) = npts_cdf
+	   zero(i) = 0
+	   npts = npts* npts_cdf
+	ENDDO
+	nT = count(1)   ! number of time steps per forecast
+	nF = count(2)   ! number of forecasts in collection
+
+	IF ((next_line_mem_pos+ npts+1).GT.maxlinestore) GOTO 5300
+	CALL CD_READ_SUB(cdfid, varid, nvdim, start, count, zero, zero, 
+     .			 line_mem(next_line_mem_pos), 0, 0, cdfstat)
+	IF ( cdfstat .NE. NF_NOERR ) GOTO 5000
+
+* make the axes needed by the FMRC dataset
+	has_edges = .FALSE.
+	CALL CD_MAKE_FMRC_AXES (dset, has_edges, varid, vname, vartype,
+     .			    npts, nT, nF, axcalt, axlagf, status)
+	IF (status .NE. merr_ok) GOTO 5000
 
 * successful completion
-      status = merr_ok
+        status = merr_ok
+	RETURN
 
- 5900 RETURN
+* error exit
+ 5000	RETURN
+ 5300	CALL TM_ERRMSG (merr_linstorlim, status, 'CD_1D_LINE_FROM_2D',
+     .                  no_descfile, no_stepfile,
+     .                  'MAX='//TM_STRING(DBLE(maxlinestore)),
+     .                  no_errstring, *5000)
 
 	END
diff --git a/fmt/src/cd_add_var.F b/fmt/src/cd_add_var.F
index 7ed9cc1..1e4fc25 100644
--- a/fmt/src/cd_add_var.F
+++ b/fmt/src/cd_add_var.F
@@ -34,8 +34,9 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* Add a variable to the linked list structure.  dset = -1 will be the 
-* pseudo-dset containing attribute info for user variables.
+* Add a variable to the linked list structure.  dset = -1 (pdset_uvars
+* in ferret.parm) will be the pseudo-dset containing attribute info for 
+* user variables.
 
 * Programmer Ansley Manke
 * NOAA/PMEL, Seattle, WA - TMAP
diff --git a/fmt/src/cd_clean_grids.F b/fmt/src/cd_clean_grids.F
index 6768434..40920dd 100644
--- a/fmt/src/cd_clean_grids.F
+++ b/fmt/src/cd_clean_grids.F
@@ -65,6 +65,8 @@
 * V65  *acm* 1/10  Change all netcdf2-style calls and parameter names to 
 *                  netcdf3-style calls, which are also consistent with netcdf4.
 * 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
 
 * argument definitions:
 *       dset    - pointer to TMAP data set
@@ -95,16 +97,18 @@
 
 * local variable declarations:
       LOGICAL TM_SAME_GRID_DEF, 
-     .        dup_name, dup_guts
+     .        dup_name, dup_guts, coordvar
       INTEGER TM_GET_LINEMATCH,  TM_GET_LINENUM, TM_GET_GRIDNUM, 
      .        TM_LENSTR1, STR_SAME,
      .        igrid, iaxis, count, idim, i_dup, ivar,
      .        npts, istat,  reused(max_lines:line_ceiling),
-     .        varid, attid, attype, attlen, attoutflag, len 
+     .        varid, attid, attype, attlen, attoutflag, len,
+     .        vartype, nvdims, nvatts, outflag, dimid
 * upped vname to 64 - also removed the *24 from the CHARACTER
 * upped vname to 128 
       CHARACTER vname*128, buff*128, attname*128
-      REAL dummy
+      REAL dummy, vdims(8)
+	
 
 ***** AXES ******
 * check for duplicate name / guts of axes
@@ -195,11 +199,17 @@
 * attribute of the coordinate variable in the linked-list attribute structure,
 * and change the axis name itself.
 
+*** Here if the name is a dimension not a coordinate variable in the original
+*** dataset, we want to do a CD_RENAME_DIM, so that we rename in the dset structure 
+*** the dimension but not (for example) the 2-D variable with the same name.
+
  301	iaxis = 0		! to get start of linked list
  400	CALL TM_NEXT_TMP_LINE( iaxis, *402)
           vname = line_name(iaxis)
           len = TM_LENSTR1(vname)
           CALL CD_GET_VAR_ID (dset, vname, varid, status)
+          CALL CD_GET_VAR_INFO (dset, varid, vname, vartype, 
+     .            nvdims, vdims, nvatts, coordvar, outflag, status)
 
 	  IF ( reused(iaxis) .NE. unspecified_int4 ) THEN
 	    line_name(iaxis) = char_init16   ! destroy new duplicate defn
@@ -209,7 +219,10 @@
 
             IF (status .EQ. merr_ok .AND. 
      .          STR_SAME(vname, buff) .NE. 0) THEN
-               CALL CD_RENAME_VAR (dset, varid, buff, status)
+
+               CALL CD_GET_DIM_ID (dset, vname, dimid)
+               CALL CD_RENAME_DIM (dset, dimid, buff, status)
+               IF (nvdims.EQ.1) CALL CD_RENAME_VAR (dset, varid, buff, status)
                
 * Replace or add the orig_file_axname attribute
                attname = 'orig_file_axname'
@@ -232,7 +245,10 @@
 
             IF (status .EQ. merr_ok .AND. 
      .          STR_SAME(vname, buff) .NE. 0) THEN
-               CALL CD_RENAME_VAR (dset, varid, buff, status)
+
+               CALL CD_GET_DIM_ID (dset, vname, dimid)
+               CALL CD_RENAME_DIM (dset, dimid, buff, status)
+               IF (nvdims.EQ.1) CALL CD_RENAME_VAR (dset, varid, buff, status)
 
 * Replace or add the orig_file_axname attribute
                attname = 'orig_file_axname'
diff --git a/fmt/src/cd_dim_only.F b/fmt/src/cd_dim_only.F
old mode 100755
new mode 100644
diff --git a/fmt/src/cd_get_1_axis.F b/fmt/src/cd_get_1_axis.F
index 9402482..cd2dec5 100644
--- a/fmt/src/cd_get_1_axis.F
+++ b/fmt/src/cd_get_1_axis.F
@@ -178,9 +178,11 @@
 * V685 *acm* 11/13 REALLY make the check for axis length in single precision when the
 *                  coordinate variable came in as a single-precision variable.
 * V6.87 4/14 *acm* ticket 2146: if invalid bounds, make the bounds a dependent variale.
-* V691  4/41 *acm* Ticket 2170: bub with invalid bounds when point-spacing=true attribute.
+* V691  4/15 *acm* Ticket 2170: bub with invalid bounds when point-spacing=true attribute.
 * Ticket 2172: If the axis is actually too long, reset the modulo flags
 * 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)
 
 * argument definitions:
 *       cdfid    - netCDF id number for already opened CDF file  (to go away with new attr. hanling)
@@ -232,17 +234,17 @@
      .        got_mod, mod_tf, setmodfalse, ok_cal, ok,
      .        got_edges, got_bnds, coordvar, its_irregular, 
      .        do_scale, do_offset, scale_is_dp, 
-     .        has_repeated, misordered
+     .        has_repeated, misordered, is_double
 
       INTEGER TM_UNIT_ID, TM_LENSTR1,TM_GET_CALENDAR_ID,      
-     .        STR_CASE_BLIND_COMPARE, STR_UPCASE, 
+     .        STR_CASE_BLIND_COMPARE, STR_UPCASE, STR_SAME,
      .        soft_err, 
      .        ipt1, ipte, vartype, vback, npts, vlen, cdfstat, istat,
      .        nvdims, vdims(8), nvatts, i, units, npts_cdf, elen, 
      .        edgid, spacing_atlen, epic_t2var, since_T0,
-     .        cal_id, year, month, day, hour, minute, second, slen, nc,
+     .        cal_id, year, month, day, hour, minute, second, slen,
      .        blen, bndid, startpts(2), numpts(2), next_line_storage,
-     .        d1s, d1e, d2s, d2e, len_cal, attoutflag, maxlen,
+     .        d1s, d1e, d2s, d2e, attoutflag, maxlen,
      .        all_outflag, dir, attlen, itop, irev, attype, iatt, ibx1,
      .        i1, i2, i3, i0
 
@@ -256,7 +258,6 @@
      .        spacing_attr*14, bname*128
       CHARACTER*13 TM_STRING
       CHARACTER*1 axis_dir
-      CHARACTER*50 allcals
       CHARACTER*3 dbuf
       CHARACTER*2 dcode
 
@@ -411,6 +412,14 @@
      .                       do_warn, vname(:vlen), maxlen,
      .                       attlen, attoutflag, ename, val)
 
+* Cannot have both "edges" and "bounds" atrtributes
+      IF ( got_bnds .AND. got_edges )THEN
+         CALL TM_NOTE(
+     .     'Axis has both edges and bounds attributes: '//
+     .      vname(:vlen)//' - edges definition ignored', tt )
+         GOTO 500
+      ENDIF
+
 * We will be checking bounds or edges. Read the coords too
 * in case we are going to mark the axis as irregular.
 
@@ -442,35 +451,14 @@
      .                        vname(:vlen), maxlen, attlen, attoutflag, 
      .                        buff, val)
       IF (got_it) then
-         istat = STR_UPCASE (buff, buff)
-
-         IF (buff(1:3) .EQ. '360') buff = '360_DAY' 
-         IF (buff .EQ. 'STANDARD') buff = 'GREGORIAN' 
-         IF (buff .EQ. 'PROLEPTIC_GREGORIAN') buff = 'GREGORIAN' 
-         IF (buff(1:6) .EQ. 'COMMON') buff = 'NOLEAP' 
-         IF (buff(1:3) .EQ. '365') buff = 'NOLEAP' 
-         IF (buff(1:3) .EQ. '366') buff = 'ALL_LEAP' 
-
-         ok_cal = .FALSE.
-         nc = 1
-         allcals = ' '
-
-         DO 100 i = 1, mxcals
-  111       FORMAT (a9,' ')
-            slen = TM_LENSTR1( allowed_calendars(i)(1:9) )
-            write (allcals(nc:nc+9), 111) allowed_calendars(i)
-            nc = nc + 10
-
-            IF (buff(1:3) .EQ. allowed_calendars(i)(1:3) ) THEN
-               ok_cal = .TRUE.
-               line_cal_name(iaxis) = allowed_calendars(i)
-            ENDIF
-  100    CONTINUE
-         IF (.NOT. ok_cal) THEN
+         CALL CD_GET_CALENDAR_NAME(buff, ok_cal)
+
+         IF (ok_cal) THEN
+	    line_cal_name(iaxis) = buff
+	 ELSE
             slen = TM_LENSTR1(buff)
             CALL TM_NOTE('calendar attribute on axis "'//vupcase(:vlen)//
      .                '" is not recognized: '//buff(1:slen), tt)
-            CALL TM_NOTE('Valid calendars are '//allcals, tt)
             CALL TM_NOTE(
      .             'A dummy axis of subscripts will be used', tt)
             GOTO 1000
@@ -484,6 +472,7 @@
       got_it = NC_GET_ATTRIB( dset, ivar, 'units', do_warn,
      .                        vname(:vlen), maxlen, attlen, attoutflag, 
      .                        buff, val)
+      IF (STR_SAME (buff(1:4), 'none') .EQ. 0) buff = ' ' ! units = 'none'
       since_T0 = MAX( INDEX(buff,'since'), INDEX(buff,'SINCE') )
       yyyymmdd_time = buff(1:15) .EQ. 'yyyymmddhhmmss'
 
@@ -674,6 +663,8 @@ c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error
         IF (line_direction(iaxis).EQ."TI" .OR.
      .      line_direction(iaxis).EQ."TT" ) line_regular(iaxis) = .TRUE.
         got_bnds = .FALSE.
+	got_edges = .FALSE.
+	its_irregular = .FALSE.
       ENDIF
 
 * get the axis coordinates - none, regular, or irregular
@@ -927,7 +918,10 @@ c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error
 * See if double-precision coordinates are regularly-spaced
 	epsilon = 0.
 	depsilon = 0.
-        IF (vartype .EQ. ncdouble) THEN
+	
+	is_double = vartype .EQ. ncdouble
+
+        IF (is_double) THEN
            dlast_coord = line_mem(ipte)
            dfirs_coord = line_mem(ipt1)
            dfirst_delta = line_mem(ipt1+1) - line_mem(ipt1)
@@ -1039,20 +1033,6 @@ c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error
 
 * the attribute "edges=name" may point to a list of box boundaries
       IF ( .NOT.got_edges ) GOTO 500
-      IF ( line_regular(iaxis) ) THEN
-         CALL TM_NOTE(
-     .           'Evenly spaced axis has edges definition: '//
-     .           vname(:vlen)//' - ignored', tt )
-         GOTO 500
-      ENDIF
-
-* Cannot have both "edges" and "bounds" atrtributes
-      IF ( got_bnds )THEN
-         CALL TM_NOTE(
-     .     'Axis has both edges and bounds attributes: '//
-     .      vname(:vlen)//' - edges definition ignored', tt )
-         GOTO 500
-      ENDIF
 
       CALL TM_CHECK_EDGES_ATTRIB (cdfid, iaxis, vname, vlen, ename, 
      .        edgid, status)
@@ -1073,7 +1053,7 @@ c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error
         IF ( status .NE. merr_ok ) GOTO 1000    ! 3/99 soft error
 
 * if the coordinates were reversed then the box edges must be, too
-         IF ( reversed(iaxis) .AND.  npts .GT. 1) THEN
+        IF ( reversed(iaxis) .AND.  npts .GT. 1) THEN
 	    itop = (ipt1+npts)+npts/2-1
 	    irev = ipt1 + 2*npts
             DO 450 i=ipt1+npts,itop
@@ -1083,17 +1063,42 @@ c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error
 	       irev = irev - 1
  450        CONTINUE
 
-         ENDIF
-
-* check to see that each data point is contained inside its box
+        ENDIF
+	 
         IF (.NOT.TM_CHECK_BOX_LOC(iaxis)) THEN
-           CALL TM_NOTE('Error in Edges "'//ename(:elen)//
+              CALL TM_NOTE('Error in Edges "'//ename(:elen)//
      .         '"or edges do not enclose point on axis '//
      .         vname(:vlen), tt)
-           CALL TM_NOTE('Substituting coordinate midpoints', tt)
-           CALL TM_IRREGAX_MID( next_line_mem_pos,
+              CALL TM_NOTE('Substituting coordinate midpoints', tt)
+              CALL TM_IRREGAX_MID( next_line_mem_pos,
      .                          line_dim   (iaxis) )
-           bad_bndsid = edgid
+              bad_bndsid = edgid
+        ELSE 
+
+* check to see that each data point is contained inside its box.
+* See if they're centered after all.
+
+           IF (TM_CHECK_BNDS_CENTERED(iaxis, is_double)) THEN
+* It's actually regular - save it as such
+              IF (.NOT. line_regular(iaxis)) THEN
+                 line_regular(iaxis) = .TRUE.
+                 line_start  (iaxis) = line_mem(ipt1)
+                 IF (npts .GT. 1) THEN
+                    line_delta  (iaxis) = 
+     .                (line_mem(ipte)-line_mem(ipt1))/DBLE(npts-1)
+                 ELSE
+   	         ibx1 = ipt1 + npts
+                    line_delta(iaxis) = line_mem(ibx1+1)-line_mem(ibx1)
+                 ENDIF
+                 line_subsc1 (iaxis) = unspecified_int4
+                 last_coord = line_start(iaxis) + 
+     .                DBLE(npts-1)*line_delta(iaxis)
+                 firs_coord = line_start(iaxis)
+              ENDIF
+           ELSE
+              line_regular(iaxis) = .FALSE.
+           ENDIF
+
         ENDIF
 
 ****************************************************************************
@@ -1159,7 +1164,7 @@ c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error
 * and if the bounds are contiguous, warning user if not. Change
 * the storage from N*2 bounds to N+1 edges.    
 
-        IF (.NOT. TM_CHECK_BNDS(iaxis, 2*npts, vname) ) THEN  
+        IF (.NOT. TM_CHECK_BNDS(iaxis, 2*npts, is_double, vname) ) THEN  
 
            CALL TM_NOTE('Error in bounds "'//bname(:blen)//
      .         '" or bounds do not enclose point on axis '//
@@ -1176,7 +1181,7 @@ c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error
 * If there is one point, use upper and lower bound as given in the file 
 * to determine line_delta.
 
-           IF (TM_CHECK_BNDS_CENTERED(iaxis)) THEN
+           IF (TM_CHECK_BNDS_CENTERED(iaxis, is_double)) THEN
 * It's actually regular - save it as such
               IF (.NOT. line_regular(iaxis)) THEN
                  line_regular(iaxis) = .TRUE.
@@ -1279,7 +1284,7 @@ c           secsperyear = cals_yeardays(cal_id)* 24*60*60
         IF (line_modulo(iaxis).AND.line_modulo_len(iaxis).NE.0.D0) THEN
            IF (line_modulo_len(iaxis) .LT. axwwlen) THEN
 c             line_modulo_len(iaxis) = 0.0D0
-             IF (vartype .EQ. ncdouble) THEN
+             IF (is_double) THEN
                 ok = TM_DFPEQ(axwwlen, line_modulo_len(iaxis)) 
              ELSE
 	        lm_len = line_modulo_len(iaxis)
diff --git a/fmt/src/cd_get_1_dep_var.F b/fmt/src/cd_get_1_dep_var.F
index 87c23fe..5e5d4c8 100644
--- a/fmt/src/cd_get_1_dep_var.F
+++ b/fmt/src/cd_get_1_dep_var.F
@@ -64,6 +64,9 @@
 * v67   2/11 *acm* Do the notes about no missing/fillvalue for each variable,
 *             when in diagnostic mode. So move that back to cd_get_1_dep_var.
 * V674 2/12 *acm* 6D Ferret: use nferdims rather than 4 for dimension indexing
+* V6931 12/14 *acm* Fix ticket 2223: switch_nan needs to use the Ferret
+*		    missing-value flag.
+* V695 4/15 *sh* added support for CF auxiliary coordinate variables
 
 * argument definitions:
 *       dset    - pointer to TMAP data set
@@ -155,6 +158,7 @@
           cd_scale_factor(ivtm) = 1.0
           cd_add_offset(ivtm)   = 0.0
           cd_scaled(ivtm)       = .FALSE.
+	  ds_its_aux_coord(ivtm) = .FALSE.
 	  DO 160 idim = 1, nferdims
              ds_grid_start(idim,ivtm)= unspecified_int4
              ds_grid_end  (idim,ivtm)= unspecified_int4
@@ -313,7 +317,7 @@ c        ENDIF
 * if neither missing flag nor _FillValue was defined, use NaN.
              IF ( .NOT.got_missing .AND. .NOT.got_bad) THEN
                 CALL SET_NAN (ds_missing_flag(ivtm))
-		CALL SWITCH_NAN(ds_bad_flag(ivtm), 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(
      .'No missing_value or _FillValue attribute. Using NaN for variable: ' 
      . //vname(:vlen)) 
@@ -321,7 +325,7 @@ c        ENDIF
              ENDIF
 
 *  *kob* call SWITCH_NAN to make sure if NaN exisits, its in ds_missing_flag
-	     CALL SWITCH_NAN(ds_bad_flag(ivtm), ds_missing_flag(ivtm))
+	     CALL SWITCH_NAN(ds_bad_flag(ivtm), ds_missing_flag(ivtm), bad_r4)
 
 * see what special FERRET attributes can be read: axis ordering and
 * sub-hyperslab bounds
diff --git a/fmt/src/tm_deallo_dyn_grid.F b/fmt/src/cd_get_calendar_name.F
old mode 100644
new mode 100755
similarity index 59%
copy from fmt/src/tm_deallo_dyn_grid.F
copy to fmt/src/cd_get_calendar_name.F
index 69a152f..6af224c
--- a/fmt/src/tm_deallo_dyn_grid.F
+++ b/fmt/src/cd_get_calendar_name.F
@@ -1,12 +1,10 @@
-	SUBROUTINE TM_deallo_dyn_grid( grid )
+	SUBROUTINE CD_GET_CALENDAR_NAME (calname, ok_cal)
 
-*
-*
 *  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
@@ -35,46 +33,54 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* Deallocate a grid from the dynamic grid area (above max_grids)
+* 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.
 
-* Steve Hankin  NOAA/PMEL/TMAP
+* Include files
+        include 'calendar.decl'
+        include 'calendar.cmn'
+        include 'errmsg.parm'
+        include 'xio.cmn_text'
 
-* 9/13/95 for Ferret version 4.2
-* V510 *sh* 4/00 - remove actual deallocation of grid to tm_deallo_dyn_grid_sub
-*		 - this routine can now be called for static grids, too
-*		 - deallocate lines only for dynamic grids, since static grids
-*		   do not get deleted when their use count falls to zero
-* V674 2/12 *acm* 6D Ferret: use nferdims rather than 4 for dimension indexing
+* Argument declarations
+	LOGICAL ok_cal
+	CHARACTER*(*) calname
 
-* Include files
-	include 'tmap_dims.parm'
-#include "tmap_dset.parm"
-#include "gt_lib.parm"
-	include 'tmap_errors.parm'
-	include 'xtm_grid.cmn_text'
-		include 'xio.cmn_text'
+* Internal variables
+	INTEGER STR_UPCASE, TM_LENSTR1, i, istat, ncal, slen
+	CHARACTER*50 allcals
 
-* Argument definitions
-	INTEGER grid
+	INTEGER tt  ! nice short name
+	EQUIVALENCE (tt,lunit_errors)
 
-* Local definitions
-	INTEGER idim
+	istat = STR_UPCASE (calname, calname)
 
-* deallocate the grid, itself
-	CALL TM_DEALLO_DYN_GRID_SUB(grid)
+	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' 
 
-* if the grid was actually removed, then also deallocate the axes that it used
-	IF ( grid .GT. max_grids
-     . .AND. grid_use_cnt(grid) .EQ. 0 ) THEN
+	ok_cal = .FALSE.
+	ncal = 1
+	allcals = ' '
 
-*release claim to any dynamic lines this may use
-	   DO 100 idim = 1, nferdims
-	      CALL TM_DEALLO_DYN_LINE( grid_line(idim,grid))
- 100	   CONTINUE
+	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
 
-	ENDIF
+	   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)
 
-* successful completion
+  120	CONTINUE
 	RETURN
-
 	END
diff --git a/fmt/src/cd_get_generic_bounds.F b/fmt/src/cd_get_generic_bounds.F
index 1865060..ccd70c7 100644
--- a/fmt/src/cd_get_generic_bounds.F
+++ b/fmt/src/cd_get_generic_bounds.F
@@ -58,6 +58,8 @@
 * V68  *acm* 1/12  ifdef double_p for double-precision ferret.
 * V674 2/12 *acm* 6D Ferret: use nferdims rather than 4 for dimension indexing
 * 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
 
 * argument definitions:
 *	cdfid   - id of currently open CDF file
@@ -144,6 +146,14 @@
 #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
+	          cdflo(idim) = 1
+	          cdfhi(idim) = npts
+	          GOTO 100
+	      ENDIF
+
 * ... time axis as a record axis will be synchronized in another routine
 	      IF ( idim .EQ. tmrecdim ) THEN
 	          cdflo(idim) = 1
diff --git a/fmt/src/cd_get_line_direction.F b/fmt/src/cd_get_line_direction.F
index 894a710..395b10a 100644
--- a/fmt/src/cd_get_line_direction.F
+++ b/fmt/src/cd_get_line_direction.F
@@ -38,6 +38,8 @@
 *  V683 ACM 9/2012
 *
 *  V692 ACM 7/2014 A cf_role attribute indicates the E direction.
+*  V694 ACM 2/2015 Ensemble axis may have a standard-name attribute "realization"
+*  V694 ACM 4/2015 Fix ticket 2260: set X axis when standard_name is "longitude"
 *
 *      include files: 
       
@@ -397,6 +399,7 @@ c     .   .OR. TM_HAS_STRING(linunits, 'degreesS') ! But this matches all degree
 * Basic standard names
 * Look for time, longitude, latitude, depth and height names.
 * Forecast time axes have a standard-name attribute "forecast_reference_time"
+* Ensemble axis may have a standard-name attribute "realization"
 
       maxlen = bufflen
       got_it = NC_GET_ATTRIB( dset, ivar, 'standard_name', do_warn, 
@@ -409,7 +412,7 @@ c     .   .OR. TM_HAS_STRING(linunits, 'degreesS') ! But this matches all degree
             line_direction(iaxis) = 'TI'
          ENDIF 
          IF (STR_CASE_BLIND_COMPARE(
-     .      'longitude',buff(:0))          .EQ.str_eq .OR. 
+     .      'longitude',buff(:9))          .EQ.str_eq .OR. 
      .      STR_CASE_BLIND_COMPARE(
      .      'grid_longitude',buff(:19))    .EQ.str_eq) THEN
             line_direction(iaxis) = 'WE'
@@ -437,6 +440,11 @@ c     .   .OR. TM_HAS_STRING(linunits, 'degreesS') ! But this matches all degree
      .                                     .EQ.str_eq) THEN
             line_direction(iaxis) = 'FI'
          ENDIF 
+         IF (STR_CASE_BLIND_COMPARE(
+     .      'realization',buff(:24))
+     .                                     .EQ.str_eq) THEN
+            line_direction(iaxis) = 'EE'
+         ENDIF 
       ENDIF
 
 
diff --git a/fmt/src/cd_get_var_att_id.F b/fmt/src/cd_get_var_att_id.F
index 4e25e97..2735c0f 100644
--- a/fmt/src/cd_get_var_att_id.F
+++ b/fmt/src/cd_get_var_att_id.F
@@ -117,7 +117,8 @@
          status = NCF_GET_VAR_ATTR_ID(dset_num, varid, fhol, attid)
       ENDIF
       
-      dset = dset_num  ! if changed above, then dset=-1 is correct
+      dset = dset_num  ! if changed above, then dset=-1 (which is
+                       ! pdset_uvars in ferret.parm) is correct
 
  5000 RETURN
       END
diff --git a/fmt/src/cd_get_var_id.F b/fmt/src/cd_get_var_id.F
index 4da2935..1f39df5 100644
--- a/fmt/src/cd_get_var_id.F
+++ b/fmt/src/cd_get_var_id.F
@@ -46,6 +46,7 @@
 *                 an endless loop (isit_coord_var calls cd_get_var_id).
 * 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
 
 * include files
 #include "gt_lib.parm"
@@ -137,9 +138,17 @@
          status = NCF_GET_VAR_ID_CASE(dset_num, varid, fhol)
       ELSE
          CALL TM_FTOC_STRNG( buff(1:slen), fhol, flen )
-         status = NCF_GET_VAR_ID(dset_num, varid, fhol)
+         status = NCF_GET_VAR_ID(dset_num, varid, fhol) 
       ENDIF
+      IF (status .NE. merr_ok) GOTO 5000
       dset = dset_num
 
+* If the name is just a dot, it is the fake global-attributes variable
+
+      IF (slen.EQ.1 .AND. buff(1:1) .EQ. ".") THEN
+         varid = 0
+	 status = merr_ok
+      ENDIF
+
  5000 RETURN
       END
diff --git a/fmt/src/cd_get_var_info.F b/fmt/src/cd_get_var_info.F
index ab104e5..211222e 100644
--- a/fmt/src/cd_get_var_info.F
+++ b/fmt/src/cd_get_var_info.F
@@ -75,9 +75,6 @@
       IF (dset .EQ. unspecified_int4) RETURN
       IF (ivar .LT. 0) RETURN
 
-      slen = TM_LENSTR1( vname )
-      CALL TM_FTOC_STRNG( vname(1:slen), fhol, flen )
-
       dset_num = dset
       cdfstat = NCF_INQ_VAR(dset_num, ivar, fhol, slen, vartype, 
      .            nvdims, nvatts, coordvar, outflag, rev)
diff --git a/fmt/src/cd_init_dset.F b/fmt/src/cd_init_dset.F
index bd1b7f1..5f170e0 100644
--- a/fmt/src/cd_init_dset.F
+++ b/fmt/src/cd_init_dset.F
@@ -58,16 +58,16 @@
 * V510 *sh* 3/00 - added tregular argument
 *	    3/00 - convert to using dynamic grids and axes
 * 4/03 *acm* - Use STR_SAME to compare strings
-* V600 *acm* 6/05 - Attribute control. Get information from linked-list structure.
+* V600 *acm* 6/05 - Attribute control-get information from linked-list struct
 * V601 *acm* 6/06 - Fix bug 1459: when closing a stepfile that may be open,
-*                   reset the sf_lunit flag for cd_stepfile(dset), not for dset.
+*                   reset sf_lunit flag for cd_stepfile(dset), not for dset.
 * V65  *acm* 1/10  Change all netcdf2-style calls and parameter names to 
 *                  netcdf3-style calls, which are also consistent with netcdf4.
 * V65  *acm* 1/10  Add #ifdef usingDODSf2cUnderscore, for 32-bit linux build
 *                  linked with OPeNDAP library.
-* V68  *acm* 1/12- added use_strict argument for ticket 1910: micro-adjusting on 
-*                  repeated coordinates in netCDF/OPeDNAP datasets
-
+* 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
 
 * include files
 #include "gt_lib.parm"
@@ -141,6 +141,10 @@
       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 )
+      IF ( status .NE. merr_ok ) GOTO 5900
+
 * set use counts and clean up temporary grids and axes
       CALL TM_GARB_COL_GRIDS (dset)
 
diff --git a/fmt/src/cd_make_fmrc_axes.F b/fmt/src/cd_make_fmrc_axes.F
new file mode 100644
index 0000000..1ae5a9d
--- /dev/null
+++ b/fmt/src/cd_make_fmrc_axes.F
@@ -0,0 +1,369 @@
+	SUBROUTINE CD_MAKE_FMRC_AXES (dset, has_edges, varid, vname, vartype,
+     .			    npts, nT, nF, axcalt, axlagf, 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 synthesizes the T axis calendar time and F axis lead time
+* axes that are needed to support FMRC visualization and analysis
+* it uses the 2d time array stored in line_mem, and optionally an array of
+* time edge positions stored just behind it
+
+* V695+ *acm* and *sh*
+
+* include files
+        include 'netcdf.inc'
+	include 'tmap_errors.parm'
+#include "gt_lib.parm"
+	include 'tmap_dims.parm'
+#include "tmap_dset.parm"
+	include 'xdset_info.cmn_text'
+
+	include 'xtm_grid.cmn_text'
+	external xgt_grid_data
+	include 'xbuild_grids.cmn'
+
+	external xdset_info_data
+        include 'xdset_info.cd_equiv'
+        include 'xio.cmn_text'
+        include 'xunits.cmn_text'
+        external xunits_data
+        include 'calendar.decl'
+        include 'calendar.cmn'
+
+* calling argument declarations
+	LOGICAL	has_edges
+	INTEGER dset, varid, vartype, nT, nF, npts, axcalt, axlagf, status
+	CHARACTER*(*) vname
+
+
+* internal variable declarations
+	INTEGER bufflen
+	PARAMETER (bufflen = 256)
+	CHARACTER TM_STRING*13, buff*256, dbuf*3, vupcase*128, pCR*1
+
+	LOGICAL TM_DFPEQ_TOL, TM_FPEQ_EPS, NC_GET_ATTRIB, 
+     .		coordvar, got_it, do_warn, ok_cal, yyyymmdd_time, got_torg
+	INTEGER STR_UPCASE, TM_LENSTR1, TM_GET_CALENDAR_ID, TM_UNIT_ID,
+     .		TM_FIND_LIKE_DYN_LINE,
+     .          i, l, n,  nvdim, vdims(8), nvatts, npts2d,
+     .		npts_cdf, ipt1, ipte, iptn, iptnp1,
+     .		outflag, next_line_storage, pre_exist,
+     .		start(nferdims),count(nferdims), zero(nferdims),
+     .          maxlen, attlen, attoutflag, cal_id, since_T0, slen, vlen, 
+     .          units, istat, nlag, nleadtimes
+	REAL val, epsilon_23, t0NextForecast
+	REAL*8 depsilon_46, depsilon, dlast_coord, dfirs_coord,
+     .       dfirst_delta, ddelta, avg_lag
+
+        INTEGER tt  ! nice short name
+        EQUIVALENCE (tt,lunit_errors)
+
+
+!* start out by getting an overview of the 2D time variable
+!	CALL CD_GET_VAR_INFO (dset, varid, vname, vartype, 
+!     .            nvdim, vdims, nvatts, coordvar, outflag, status)
+
+* initialize things
+	next_line_storage = next_line_mem_pos
+	do_warn = .FALSE.
+	pCR = CHAR(15)
+	ipt1 = next_line_mem_pos
+	ipte = ipt1 + npts - 1
+	npts2d = npts  ! save it
+
+*********  FIRST THE 1D CALENDAR TIME AXIS OF THE FMRC  *************
+* Define new axis
+
+	CALL TM_ALLO_TMP_LINE (axcalt, status)
+
+
+* Get units, calendar, origin
+
+* Get the calendar name.
+
+      line_cal_name(axcalt) = 'GREGORIAN'   ! default
+      maxlen = bufflen
+      got_it = NC_GET_ATTRIB( dset, varid, 'calendar', do_warn,
+     .                        vname(:vlen), maxlen, attlen, attoutflag, 
+     .                        buff, val)
+      IF (got_it) then
+         CALL CD_GET_CALENDAR_NAME(buff, ok_cal)
+         IF (ok_cal) THEN
+	    line_cal_name(axcalt) = buff
+	 ELSe
+            slen = TM_LENSTR1(buff)
+            CALL TM_NOTE('calendar attribute for 2D Time variable "'//
+     .               vname(:vlen)//'" is not recognized: '//buff(1:slen), tt)
+            CALL TM_NOTE('Assuming Gregorian calendar', tt)
+         ENDIF
+      ENDIF
+      cal_id = TM_GET_CALENDAR_ID (line_cal_name(axcalt))
+
+* optional units for axis (may contain "tunits since T0_date" 2/95)
+      line_units(axcalt) = ' '   ! default
+      maxlen = bufflen
+      got_it = NC_GET_ATTRIB( dset, varid, 'units', do_warn,
+     .                        vname(:vlen), maxlen, attlen, attoutflag, 
+     .                        buff, val)
+      since_T0 = MAX( INDEX(buff,'since'), INDEX(buff,'SINCE') )
+      yyyymmdd_time = buff(1:15) .EQ. 'yyyymmddhhmmss'
+
+      IF ( since_T0 .GT. 2 ) THEN
+         line_units(axcalt) = buff(:since_T0-1)  ! just the "tunits" part 
+
+         istat = STR_UPCASE( dbuf, buff(1:3) )
+
+         slen = TM_LENSTR1(buff)
+         IF ( slen .GT. since_T0 + 5) THEN
+
+            got_torg = .TRUE.
+            CALL TM_DATE_REFORMAT(buff(since_T0+6:),pdate_numslashnum,
+     .                            cal_id, line_t0(axcalt), 
+     .                            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".
+
+c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error 
+
+            IF ( status .NE. merr_ok ) THEN   
+               line_units(axcalt) = buff(1:slen)
+               got_torg = .FALSE.
+               since_t0 = 0
+               status = merr_ok
+            ENDIF
+         ELSE
+            since_t0 = 0        ! flag that no T0 was present
+         ENDIF
+      ELSEIF ( yyyymmdd_time ) THEN
+         line_units(axcalt) = 'days'
+         line_t0(axcalt) = ' ' ! to be determined when coords are read
+         got_torg = .TRUE.
+      ELSE
+         IF (got_it) line_units(axcalt) = buff
+         got_torg = .FALSE.
+      ENDIF
+
+* ... decode the units
+
+      units = TM_UNIT_ID( line_units(axcalt) )
+
+* Named calendar with unit=year gets length of year in that calendar.
+
+      IF (units .EQ. -6 .OR. units .EQ. -10) THEN
+         IF (cal_id .EQ. d360) units = -9
+         IF (cal_id .EQ. julian) units = -12
+	 IF (cal_id .EQ. noleap) units = -11
+	 IF (cal_id .EQ. all_leap) units = -8
+      ENDIF
+
+* Named calendar with unit=month gets length of month in that calendar.
+
+      IF (units .EQ. -5) THEN
+         IF (cal_id .EQ. d360) units = -14
+         IF (cal_id .EQ. julian) units = -15
+	 IF (cal_id .EQ. noleap) units = -13
+      ENDIF
+
+      line_unit_code(axcalt) = units
+      IF  ( units.EQ.0 .AND. line_units(axcalt) .NE. ' ' ) THEN
+         CALL TM_NOTE('Units on axis "'//vname(:vlen)//
+     .                '" are not recognized: '//line_units(axcalt), tt)
+         CALL TM_NOTE('They will not be convertible:', tt)
+      ENDIF
+      IF ( units .GE. 0 ) THEN
+         line_tunit(axcalt) = real4_init
+      ELSE
+         line_tunit(axcalt) = un_convert(line_unit_code(axcalt))
+      ENDIF
+
+* The units must describe calendar time 
+
+      ! check that this has mapped to the right TF orientation
+      IF (line_tunit(axcalt) .NE. real4_init) THEN
+         line_direction(axcalt) = 'TI'
+      ELSE
+         GOTO 5400
+      ENDIF
+
+
+* save some values needed for the forecast lead time axis
+* average lag time (lag is constant except in case of monthly forecasts)
+* and how many lag time steps before the subsequent forecast begins?
+	avg_lag = (line_mem(ipt1+nT*(nF-1))-line_mem(ipt1))
+     .	        / (nF-1)
+	t0NextForecast = line_mem(ipt1+nT)
+	DO nlag = 1, nT-1
+	   IF (line_mem(ipt1+nlag) .EQ. t0NextForecast) GOTO 200
+	ENDDO
+	CALL TM_NOTE('Corrupted FMRC time array'//pCR//
+     .		     'Time values dont match between forecasts', lunit_errors)
+
+* Extract the unique values from the 2d array into a 1d "best time series" line
+* the length of the forecasts is nT
+* the number of forecasts is nF
+* create the 1D array by traveling along each forecast and pulling out points
+* until we reach the value of the first time step in the next forecast
+ 200	npts  = 0
+	iptn = ipt1                ! start of forecast n
+	DO n = 1, nF         ! n index loops over forecasts
+	   iptnp1 = iptn + nT
+	   l = 0                   ! zero-based l index over input time axis
+	   IF (iptnp1 .LT. ipte) THEN
+*   .. copy early time step values from this forecast into 1D axis
+ 	      DO WHILE (line_mem(iptn+l) .LT. line_mem(iptnp1))
+	         line_mem(ipt1+npts) = line_mem(iptn+l)
+	         IF (has_edges)  line_mem(ipt1+npts+npts2d) =
+     .			         line_mem(iptn+l+npts2d)
+	         npts  = npts + 1
+	         l = l + 1
+	      ENDDO
+	   ELSE
+*   .. copy all time step values from the final forecast into the 1D axis
+	      DO l = 0, nT-1
+	         line_mem(ipt1+npts) = line_mem(iptn+l)
+	         IF (has_edges)  line_mem(ipt1+npts+npts2d) =
+     .			         line_mem(iptn+l+npts2d)
+	         npts  = npts + 1
+	      ENDDO
+	   ENDIF
+	   iptn = iptnp1
+	ENDDO
+
+* now that the length of the 1D time axis is known, shift the edge bounds
+* coordinates into their proper spot at the end of the coordinates
+	IF (has_edges) THEN
+	   DO i = 0, npts-1
+	      line_mem(ipt1+npts+i) = line_mem(ipt1+npts2d+i)
+	   ENDDO
+	   line_mem(ipt1+2*npts) = line_mem(ipt1+2*npts2d)
+        ENDIF
+
+* ... until proven otherwise, this will look like an irregular axis
+        line_subsc1(axcalt) = next_line_mem_pos
+	line_dim(axcalt) = npts
+	ipte = ipt1 + npts-1
+	
+* from cd_get_1_axis.
+* check for regular spacing according to the data type of incoming data.
+* the variables (depsilon, etc) are in double precision. The tolerance
+* chec, in TM_FPEQ_EPS is done to an equivalent single precision tol.
+
+	IF (vartype .EQ. ncdouble) THEN
+	   dlast_coord = line_mem(ipte)
+           dfirs_coord = line_mem(ipt1)
+           dfirst_delta = line_mem(ipt1+1) - line_mem(ipt1)
+           depsilon = depsilon_46 * 2.*(ABS(line_mem(ipt1)) / dfirst_delta )
+
+	   DO 340 i = ipt1+2, ipte	
+	      ddelta = line_mem(i) - line_mem(i-1)
+	      IF (.NOT. TM_DFPEQ_TOL(dfirst_delta, ddelta, depsilon) ) GOTO 380
+  340	   CONTINUE
+	ELSE
+           dlast_coord = line_mem(ipte)
+           dfirs_coord = line_mem(ipt1)
+           dfirst_delta = line_mem(ipt1+1) - line_mem(ipt1)
+           depsilon = epsilon_23 * 2.*(ABS(line_mem(ipt1)) / dfirst_delta )
+
+           DO 360 i=ipt1+2,ipte
+              ddelta = line_mem(i) - line_mem(i-1)
+              IF (.NOT. TM_FPEQ_EPS(depsilon, dfirst_delta, ddelta) ) GOTO 380
+  360      CONTINUE
+	ENDIF
+
+* It's regular - save it as such
+	line_regular(axcalt) = .TRUE.
+	line_start  (axcalt) = line_mem(ipt1)
+	line_delta  (axcalt) = 
+     .              (line_mem(ipte)-line_mem(ipt1))/DBLE(npts-1)
+	line_subsc1 (axcalt) = unspecified_int4
+
+	GOTO 390
+
+*  Irregular
+  380	line_regular(axcalt) = .FALSE.
+	IF ((next_line_mem_pos+2*npts+1).GT.maxlinestore) GOTO 5300
+	IF (.NOT.has_edges) CALL TM_IRREGAX_MID( ipt1, npts )
+	
+
+ 390	CONTINUE
+ 
+* 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_T', buff )
+	line_name(axcalt) = buff
+	line_name_orig(axcalt) = buff
+        IF ( .NOT.line_regular(axcalt) ) THEN
+           next_line_mem_pos =  next_line_storage + 2*npts+1 
+        ENDIF
+	line_dattype(axcalt) = nf_double
+
+*********  NOW FINALLY THE FORECAST LEAD TIME AXIS OF THE FMRC  *************
+* lead times are only meaningful where runs overlap
+* each forecast run contains nT time steps
+* each forecast run lags the preceding by nlag time steps
+* when the nT/nlag ration exceeds integer, there is a partial lead
+* 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,
+     .			nleadtimes, axlagf, status )
+
+* inherit time units from the calendar time axis just created
+	line_unit_code(axlagf) = line_unit_code(axcalt)
+	line_units(axlagf)     = un_name(line_unit_code(axlagf))
+	line_direction(axlagf) = 'FF'
+	line_dattype(axlagf)   = nf_double
+	line_dim_only(axlagf)  = .FALSE.    ! ?? why ??
+
+* successful completion
+        status = merr_ok
+
+ 5000	RETURN
+
+
+ 5300	CALL TM_ERRMSG (merr_linstorlim, status, 'CD_1D_LINE_FROM_2D',
+     .                  no_descfile, no_stepfile,
+     .                  'MAX='//TM_STRING(DBLE(maxlinestore)),
+     .                  no_errstring, *5000)
+
+ 5400	CALL TM_ERRMSG (merr_notimeinfo, status, 'CD_1D_LINE_FROM_2D',
+     .                  no_descfile, no_stepfile,
+     .                  'unrecognizable time encoding',
+     .                  no_errstring, *5000)
+
+	RETURN
+	END
diff --git a/fmt/src/cd_make_fmrc_fcal_axis.F b/fmt/src/cd_make_fmrc_fcal_axis.F
new file mode 100644
index 0000000..28cb90a
--- /dev/null
+++ b/fmt/src/cd_make_fmrc_fcal_axis.F
@@ -0,0 +1,152 @@
+	SUBROUTINE CD_MAKE_FMRC_FCAL_AXIS (dset, ens_ax, nF, axcalt, status)
+
+*  This software was developed by the Thermal Modeling and Analysis
+*  Project(TMAP) of the National Oceanographic and Atmospheric
+*  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 synthesizes the F forecast initialization calendar axis,
+* using initialization times stored temporarily in line_mem
+* it does so by modifying the generic ensemble axis, "ens_ax"
+* patterning after time axis info in axcalt
+
+* V695+ *sh*
+
+* include files
+        include 'netcdf.inc'
+	include 'tmap_errors.parm'
+#include "gt_lib.parm"
+	include 'tmap_dims.parm'
+#include "tmap_dset.parm"
+	include 'xdset_info.cmn_text'
+
+	include 'xtm_grid.cmn_text'
+	external xgt_grid_data
+	include 'xbuild_grids.cmn'
+
+	external xdset_info_data
+        include 'xdset_info.cd_equiv'
+        include 'xio.cmn_text'
+        include 'xunits.cmn_text'
+        external xunits_data
+        include 'calendar.decl'
+        include 'calendar.cmn'
+
+* calling argument declarations
+	INTEGER dset, ens_ax, nF, axcalt, status
+
+* internal variable declarations
+	INTEGER bufflen
+	PARAMETER (bufflen = 256)
+	CHARACTER TM_STRING*13, buff*256, dbuf*3, vupcase*128, pCR*1
+
+	LOGICAL TM_DFPEQ_TOL, TM_FPEQ_EPS, NC_GET_ATTRIB, 
+     .		coordvar, got_it, do_warn, ok_cal, yyyymmdd_time, got_torg
+	INTEGER STR_UPCASE, TM_LENSTR1, TM_GET_CALENDAR_ID, TM_UNIT_ID,
+     .		TM_FIND_LIKE_DYN_LINE,
+     .          i, l, n,  nvdim, vdims(8), nvatts, 
+     .		npts_cdf, ipt1, ipte, iptn, iptnp1,
+     .		outflag, next_line_storage, pre_exist,
+     .		start(nferdims),count(nferdims), zero(nferdims),
+     .          maxlen, attlen, attoutflag, cal_id, since_T0, slen, vlen, 
+     .          units, istat, nlag, noverlap, nleadtimes
+	REAL val, epsilon_23, t0NextForecast
+	REAL*8 depsilon_46, depsilon, dlast_coord, dfirs_coord,
+     .       dfirst_delta, ddelta, avg_lag
+
+        INTEGER tt  ! nice short name
+        EQUIVALENCE (tt,lunit_errors)
+
+
+* initialize things
+	ipt1 = next_line_mem_pos
+	ipte = ipt1 + nF - 1
+
+* from cd_get_1_axis.
+* check for regular spacing according to the data type of incoming data.
+* the variables (depsilon, etc) are in double precision. The tolerance
+* chec, in TM_FPEQ_EPS is done to an equivalent single precision tol.
+
+	dlast_coord = line_mem(ipte)
+        dfirs_coord = line_mem(ipt1)
+        dfirst_delta = line_mem(ipt1+1) - line_mem(ipt1)
+        depsilon = depsilon_46 * 2.*(ABS(line_mem(ipt1)) / dfirst_delta )
+
+	DO i = ipt1+2, ipte	
+	   ddelta = line_mem(i) - line_mem(i-1)
+	   IF (.NOT. TM_DFPEQ_TOL(dfirst_delta, ddelta, depsilon) ) GOTO 100
+	ENDDO
+
+* It's regular - save it as such
+!	line_regular(ens_ax) = .TRUE.		! already set
+	line_start  (ens_ax) = line_mem(ipt1)
+	line_delta  (ens_ax) = 
+     .              (line_mem(ipte)-line_mem(ipt1))/DBLE(nF-1)
+!	line_subsc1 (ens_ax) = unspecified_int4  ! already set
+	GOTO 200
+
+*  Irregular
+ 100	line_regular(ens_ax) = .FALSE.
+	line_subsc1(ens_ax)  = next_line_mem_pos
+	IF ((next_line_mem_pos+2*nF+1).GT.maxlinestore) GOTO 5300
+!	CALL TM_IRREGAX_MID( ipt1, nF )  -- not needed.  have real edges
+        next_line_mem_pos =  next_line_mem_pos + 2*nF + 1
+	
+ 200	CONTINUE
+ 
+* inherit units from the calendar time axis just created
+	line_unit_code(ens_ax) = line_unit_code(axcalt)
+	line_units(ens_ax)     = line_units(axcalt)  
+	line_tunit(ens_ax)     = un_convert(line_unit_code(ens_ax))
+
+	line_t0(ens_ax)        = line_t0(axcalt)  
+	line_direction(ens_ax) = 'FI'
+
+* 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 )
+	line_dattype(ens_ax) = nf_double
+	line_name_orig(ens_ax) = buff
+	i = STR_UPCASE( line_name(ens_ax), line_name_orig(ens_ax))
+
+* successful completion
+        status = merr_ok
+
+ 5000	RETURN
+
+
+ 5300	CALL TM_ERRMSG (merr_linstorlim, status, 'CD_1D_LINE_FROM_2D',
+     .                  no_descfile, no_stepfile,
+     .                  'MAX='//TM_STRING(DBLE(maxlinestore)),
+     .                  no_errstring, *5000)
+
+	RETURN
+	END
diff --git a/fmt/src/cd_transfer_attribute.F b/fmt/src/cd_rename_dim.F
similarity index 68%
copy from fmt/src/cd_transfer_attribute.F
copy to fmt/src/cd_rename_dim.F
index 4e55ed2..a2dac32 100644
--- a/fmt/src/cd_transfer_attribute.F
+++ b/fmt/src/cd_rename_dim.F
@@ -1,5 +1,5 @@
-      SUBROUTINE CD_TRANSFER_ATTRIBUTE (dset1, varid1, iatt, 
-     .        dset2, varid2, status )
+      SUBROUTINE CD_RENAME_DIM (dset, dimid, newname, status)
+
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -34,29 +34,46 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* Access the linked list structure for netcdf variable information: 
-* Transfer attribute iatt from variable 1 in dataset 1 to variable 2 in
-* dataset 2
+* Read the linked list structure for netcdf dimension information: 
+* given dset and dimension id, replace name of dimension with new name.
 
 * Programmer Ansley Manke
 * NOAA/PMEL, Seattle, WA - TMAP
 
-* V600 10/05 *acm* Attribute control.
-* V602  2/07 *acm* Fix bug 1492, changing attributes of coordinate variables 
+* V694 1/15  
+
+* include files
+#include "gt_lib.parm"
+      INCLUDE "tmap_errors.parm"
 
 * Argument declarations
 
-      INTEGER NCF_TRANSFER_ATT,
-     .        dset1, varid1, iatt, dset2, varid2, 
-     .        dset_num_1, dset_num_2, status
+      CHARACTER*(*) newname
+      INTEGER dset, dimid, status
+
+* Internal declarations
+
+      INCLUDE 'netcdf.inc'
+
+      INTEGER TM_LENSTR1, NCF_RENAME_DIM,
+     .        slen, flen, dset_num
+      PARAMETER (flen=512)      ! size of variable name string
+
+#ifdef sun
+      BYTE      fhol(flen)      ! c-type Hollerith string buffer
+#else
+      INTEGER*1 fhol(flen)      ! c-type Hollerith string buffer
+#endif 
+
+      status = atom_not_found
+
+      dset_num = dset
+      IF (dset_num .LT. -2) dset_num = -2
+
+      slen = TM_LENSTR1( newname )
+      CALL TM_FTOC_STRNG( newname(1:slen), fhol, flen )
 
+      status = NCF_RENAME_DIM(dset_num, dimid, fhol)
       
-      dset_num_1 = dset1
-      IF (dset_num_1 .LT. -2) dset_num_1 = -2
-      dset_num_2 = dset2
-      IF (dset_num_2 .LT. -2) dset_num_2 = -2
-      status = NCF_TRANSFER_ATT(dset_num_1, varid1, iatt,
-     .   dset_num_2, varid2)
-
-      RETURN
+ 5000 RETURN
       END
diff --git a/fmt/src/cd_scan_aux_coords.F b/fmt/src/cd_scan_aux_coords.F
new file mode 100644
index 0000000..e3952fb
--- /dev/null
+++ b/fmt/src/cd_scan_aux_coords.F
@@ -0,0 +1,173 @@
+	SUBROUTINE CD_SCAN_AUX_COORDS (dset, cdfid, 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. 
+*
+*
+* Finds 'coordinates' attributes on variables and sets up linkages to handle
+* CF auxiliary coordinates
+
+* Programmer Steve Hankin
+* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
+
+* revision 0.0 - 4/15
+
+* argument definitions:
+*       dset        - TMAP data set pointer
+*	cdfid       - netCDF open ID (should no longer be needed!!)
+*	status	    - return status
+
+* include files
+
+        include 'netcdf.inc'
+	include 'tmap_errors.parm'
+	include 'tmap_dims.parm'
+#include "tmap_dset.parm"
+#include "gt_lib.parm"
+        include 'xbuild_grids.cmn'
+	include 'xdset_info.cmn_text'
+	external xdset_info_data
+	include 'xtm_grid.cmn_text'
+	        include 'xdset_info.cd_equiv'
+
+* argument declarations
+	INTEGER	 dset, cdfid, status
+
+
+* local parameter definitions:
+	LOGICAL	    do_warn
+	INTEGER     str_eq, max_names
+	PARAMETER (str_eq = 0)
+	PARAMETER (do_warn = .TRUE.)
+	PARAMETER (max_names = 30)   ! 30 allows very weird CF files
+
+
+* local variable declarations:
+	LOGICAL NC_GET_ATTRIB, got_it, coordvar
+
+	INTEGER TM_LENSTR1, STR_CASE_BLIND_COMPARE, 
+     .		i, tmvar, ivar, num_names, nvdim, all_outflag,
+     .		maxlen, attlen, attoutflag, tmp, cdf_stat, nvatts,
+     .		axcalt, axlagf, istat, vartyp, vlen, vdims(8)
+	CHARACTER aux_coord_names*500, coord_name(max_names)*128,
+     .		  vname*128, name*16
+	REAL vals  ! potential numerical attributes
+
+!* move do_warn assignment to paramater for linux *kob*
+!     .        got_it, do_warn
+!      PARAMETER (do_warn = .TRUE.)
+!      INTEGER STR_CASE_BLIND_COMPARE,
+!     .        igrid, iaxis, istat, tmvar, ivar, ndim, idim,
+!      REAL    tmp
+!      CHARACTER*16 gname
+!* variables for final (unnecessary?) check
+!      CHARACTER TM_STRING*13, vname*128, buff*128
+!      INTEGER TM_LENSTR1,
+!     .         nvdim, nvatts, dim, npts, vlen
+!
+!      CHARACTER*1     dimnam(nferdims)
+!      DATA dimnam/'I', 'J', 'K', 'L', 'M', 'N'/
+
+* loop through each variable in this TMAP data set
+* if it has a "coordinates" attribute then associate it with that variable
+* and flag that variable as an auxiliary coordinate
+
+        DO tmvar = 1,maxvars
+           IF ( ds_var_setnum(tmvar) .NE. dset ) CYCLE
+           ivar = cd_varid(tmvar)
+
+           CALL CD_GET_VAR_INFO (dset, ivar, vname, vartyp, nvdim, vdims,
+     .                 nvatts, coordvar, all_outflag, istat)
+	   vlen = TM_LENSTR1(vname)
+
+* THIS BOCK OF CODE WAS STARTED ONLY QUICKLY
+* POSTPONED IT UNTIL LATER TO GET JUST THE 2D TIME FMRC FUNCTIONALITY
+!* does it point explicitly to auxiliary coordinate  ?
+!           maxlen = 240  
+!           got_it = NC_GET_ATTRIB( dset, ivar, 'coordinates',
+!     .                         .NOT.do_warn, ' ', maxlen, attlen,
+!     .                         attoutflag, aux_coord_names, tmp )  
+!           IF ( got_it ) THEN
+!* parse the list of white-space-separated auxiliary variable names
+!	      CALL TM_PARSE_STRING(aux_coord_names,max_names,
+!     .				   coord_names,num_names)
+!* ... this is a poorly formatted notice, but may never be issued
+!	      IF (num_names .GT. max_names) CALL WARN(
+!     .		 'netCDF coordinates attribute on variable '//
+!     .		  ds_var_code(tmvar)//'has too many names')
+!	      i = 1
+!	      DO i=1, attlen
+!	        IF (
+!XXXXX  --INTERRUPTED AT EARLY STAGE OF WRITING THIS CODE
+!for each variable that possess a coordinates attribute
+!	- loop through the coordinate variables listed
+!	- identify the orientation of each
+!        - put Ferret attributes onto the parent variable pointing to
+!              larerz target, time2d target, etc.
+!        - set ds_its_aux_coord on the target variable
+!          ENDIF
+!after the loop, if an aux variable was targetted as the 2dtime variable
+!then create TF_CAL_T and TF_LAG_F axes (move this logic from CD_SCAN_VARS) 
+
+* !! TEMPORARILY!!! identify the 2d time variable from the attribute
+* _ CoordinateAxisType
+*  Eventually we will recognize it from an assemblage of facts.
+*   o other variables point to it as a coordinate
+*   o it is 2d in the tf plane
+
+	   IF ( STR_CASE_BLIND_COMPARE(vname(:vlen), 'time').EQ.str_eq 
+     .    .AND. nvdim .EQ. 2 ) THEN  
+              maxlen = 16  
+              got_it = NC_GET_ATTRIB( dset, ivar, '_CoordinateAxisType',
+     .                            do_warn, vname(:vlen), maxlen, attlen,
+     .                            attoutflag, name, vals ) 
+              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)
+	      ENDIF
+	   ENDIF
+	ENDDO
+
+*               ... Now set a global attribute for this dataset with the
+*                   new axis name
+* TBD
+
+* successful completion
+ 	status = merr_ok
+        RETURN
+
+* error exit
+ 5900   RETURN
+	END
diff --git a/fmt/src/cd_scan_vars.F b/fmt/src/cd_scan_vars.F
index 55d008a..9ecf6ed 100644
--- a/fmt/src/cd_scan_vars.F
+++ b/fmt/src/cd_scan_vars.F
@@ -95,7 +95,9 @@
 * V68  *acm* 1/12- added use_strict argument for ticket 1910: micro-adjusting on 
 *                  repeated coordinates in netCDF/OPeDNAP datasets
 * V6.74 3/12 *acm* cleanup ifdefs and unnecessary include files
-* V6.87 4/14 *acm* ticket 2146: if invalid bounds, make the bounds a dependent variale.
+* V6.87 4/14 *acm* ticket 2146: if invalid bounds, make bounds a depend. var
+* V695+ 4/15 *sh* support for auxiliary vars (coordinates attributes)
+
 
 * argument definitions:
 *       dset    - pointer to TMAP data set
@@ -145,10 +147,11 @@
      .        istat, npts, epic_t2,
      .        nbvar, ivar, len_test, len_mchars, 
      .        attype, attlen, attoutflag, maxlen, iatt, 
-     .        varid, all_outflag, dset_num, attid, bad_bndsid
+     .        varid, all_outflag, dset_num, attid, bad_bndsid,
+     .	      axcalt, axlagf
 
       REAL vals  ! potential numerical attributes
-      CHARACTER*128 aname
+      CHARACTER*128 aname, line1d
 
 * ?? how many bounds variables (bname) might there be ??
 
@@ -303,7 +306,7 @@
 *   * * * loop through all variables in the net CDF file * * *
 
 * classify each as a coordinate variable (axis) or as a dependent
-* variable. If a coordinate variable then TRY to interpret it,
+* variable. If a 1-D coordinate variable then TRY to interpret it,
 * (in cd_get_1_axis) but if it proves to be invalid, then process
 * it, instead, as a dependent variable
 	las_pos  = 1    ! reduces redundant search for space
@@ -425,6 +428,41 @@
 	      bad_bndsid = 0
 	   ENDIF
 
+! DELETE THIS BLOCK OF CODE
+!* 2D time coordinate variable for FMRC dataset?  If so, synthesize a 1D
+!* time axis for the colection
+!* **TBD**   TEMPORARY CODE
+!*    In the thredds and grib aggregation the 2d Time var has this attrib:
+!*    time2d._CoordinateAxisType = Time 
+!* Finding this _CoordinateAxisType attributewill do as a temporary
+!* place-holder, though it is inconsistent with the CF standard.
+!* The correct clue that we need to
+!* create a 1D time axis is the presence of a 'coordinates' attribute on a data
+!* variable pointing to this 2d time array.  That logic may best be located
+!* whever the coordinates attributes and auxiliary variable relationships
+!* are being analyzed (CD_GET_PARENT_GRIDS, CD_ASSOC_GRIDS or something TBD)
+!* We should also check that it is indeed 2d **TBD**
+!	   IF ( STR_CASE_BLIND_COMPARE(vname(:vlen), 'time').EQ.str_eq 
+!     .	  .AND. nvdim .EQ. 2 ) THEN  
+!              maxlen = 16  
+!              got_it = NC_GET_ATTRIB( dset, ivcd, '_CoordinateAxisType',
+!     .                            do_warn, vname(:vlen), maxlen, attlen,
+!     .                            attoutflag, name, vals ) 
+!              IF ( got_it
+!     .       .AND. STR_CASE_BLIND_COMPARE(name, 'Time').EQ.str_eq ) THEN
+!	         CALL CD_1D_LINE_FROM_2D (dset, cdfid,
+!     .					  ivcd, vname, axcalt, axlagf, status)
+!	      ENDIF
+!	   ENDIF
+!
+!* Now set a global attribute for this dataset with the new axis name
+!* TBD
+!*************
+!*************
+!*************
+!*************
+!*************
+
 * EPIC KLUDGE: if an EPIC file has an invalid "TIME" axis we want, not only
 * "TIME" as a dependent variable, but also "TIME2"
 	   IF ( its_epic .AND. vname(:vlen).EQ.'time' ) THEN
diff --git a/fmt/src/cd_transfer_attribute.F b/fmt/src/cd_transfer_attribute.F
index 4e55ed2..daee9d4 100644
--- a/fmt/src/cd_transfer_attribute.F
+++ b/fmt/src/cd_transfer_attribute.F
@@ -52,9 +52,7 @@
 
       
       dset_num_1 = dset1
-      IF (dset_num_1 .LT. -2) dset_num_1 = -2
       dset_num_2 = dset2
-      IF (dset_num_2 .LT. -2) dset_num_2 = -2
       status = NCF_TRANSFER_ATT(dset_num_1, varid1, iatt,
      .   dset_num_2, varid2)
 
diff --git a/fmt/src/cd_write_attrib.F b/fmt/src/cd_write_attrib.F
index 3cd2645..22ad13a 100644
--- a/fmt/src/cd_write_attrib.F
+++ b/fmt/src/cd_write_attrib.F
@@ -85,16 +85,20 @@
 
 * local variable declarations:
       INTEGER TM_LENSTR1, 
-     .        vlen, alen, slen, cdfstat, varid, attype, attlen, len_app
-      CHARACTER buff*2048
+     .        vlen, alen, slen, tlen, cdfstat, varid, attype, attlen, 
+     .        len_app, bufflen
+      CHARACTER buff*10240
 
       INTEGER tt  ! nice short name
       EQUIVALENCE (tt,lunit_errors)
 
+      bufflen = 10240
+
 * initialize
       vlen = TM_LENSTR1( vname )
       alen = TM_LENSTR1( att )
       slen = LEN( string )
+      tlen = TM_LENSTR1(string)
       attype = 0 
       attlen = 0 
       cdfstat = NF_NOERR
@@ -120,18 +124,18 @@
 
       IF ( cdfstat .EQ. NF_NOERR ) THEN
          IF ( attype.NE.NF_BYTE .AND. attype.NE.NF_CHAR ) GOTO 5200
-         IF ( attlen+slen .GT. 2048 .AND. append ) THEN
+         IF ( attlen+tlen .GT. bufflen .AND. append ) THEN
             buff = att
             CALL TM_NOTE( 'CDF attribute '//buff(:alen)//
      .           ' is too long', tt )
-            IF ( attlen .GT. 2046 ) THEN
+            IF ( attlen .GT. bufflen ) THEN
                CALL TM_NOTE( 'no text could be appended', tt )
                GOTO 1000
             ELSE
                CALL TM_NOTE( 'it may be truncated', tt )
             ENDIF
          ENDIF
-         IF ( attlen .GT. 2048 .AND. (.NOT.append) ) THEN
+         IF ( attlen .GT. bufflen .AND. (.NOT.append) ) THEN
             buff = att
             CALL TM_NOTE( 'CDF attribute '//buff(:alen)//
      .           ' is too long', tt )
@@ -158,7 +162,7 @@
          ENDIF
             
          risc_buff = string
-         len_app = 2048 - attlen - 1
+         len_app = bufflen - attlen - 1
 #ifdef usingDODSf2cUnderscore
          IF (len_app .GT. 0) THEN
             cdfstat = NF_PUT_ATT_TEXT_(cdfid, varid, att(:alen),
diff --git a/fmt/src/cd_write_axis.F b/fmt/src/cd_write_axis.F
index 63eb378..0b42b3c 100644
--- a/fmt/src/cd_write_axis.F
+++ b/fmt/src/cd_write_axis.F
@@ -107,6 +107,8 @@
 *                 creating and writing axis bounds.
 * V69+ 7/14 *acm* Ticket 1863: When output-flag was reset on an attribute, wasn't being applied
 *                 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
 
 
 * argument definitions:
@@ -186,7 +188,7 @@
       dim_only = .FALSE.
 
       name = CD_AXIS_NAME( dset_num, grid, idim, nlen )
-      IF (keepax_flag .EQ. 1)  name = CD_AXIS_OUTNAME( dset_num, grid, idim, nlen )
+      IF (keepax_flag .EQ. 1) name = CD_AXIS_OUTNAME( dset_num, grid, idim, nlen )
       name_in = name
       
       name_from_grid = .FALSE.
@@ -221,7 +223,10 @@
 * If not mode upcase_output, then keep the incoming case. 
       ELSE 
          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 = CD_AXIS_OUTNAME( dset_num, grid, idim, llen )
+
 	 IF (STR_SAME(name, name_in) .EQ. 0) THEN 
 	    name = name_in
 	    nlen = llen
@@ -388,6 +393,12 @@
 
       IF ( cdfstat .NE. NF_NOERR ) GOTO 5200
 
+* 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.
+
+      IF (line_dim_only(iaxis)) GOTO 1000
+
 * create the coordinate variable (12/92 -> double precision)
 #ifdef usingDODSf2cUnderscore
       cdfstat = NF_DEF_VAR_(cdfid, name(:nlen), outtype, 1, dimid, axid)
diff --git a/fmt/src/cd_write_var.F b/fmt/src/cd_write_var.F
index 8669a24..46a7608 100644
--- a/fmt/src/cd_write_var.F
+++ b/fmt/src/cd_write_var.F
@@ -1,6 +1,6 @@
 	SUBROUTINE CD_WRITE_VAR ( memory, cdfid, dset, vname, grid, lo,
      .                            hi, dat, edges_flag, do_bounds, 
-     .                            scalefac, addoff, bad, mode_upcase_output, 
+     .                            mode_upcase_output, 
      .                            keepax_flag, status )
 
 *  This software was developed by the Thermal Modeling and Analysis
@@ -77,6 +77,8 @@
 * V69+ 7/14 *acm* Further fix to 1750. Ticket 2182: Keep case of axis name consistent when
 *                 creating and writing axis bounds.
 * V69+ *acm*  9/14 Ticket 1758. Memory request uses number of blocks not words
+* V694 *acm*  3/15 Ticket 2240. Get scale, offset, and bad per variable from the dataset 
+*                  being written.
 
 * argument definitions:
 *     cdfid   - netCDF id number for already opened CDF file
@@ -111,8 +113,7 @@
       INTEGER cdfid, dset, grid, lo(nferdims), hi(nferdims), 
      .        edges_flag, do_bounds, keepax_flag, status
       CHARACTER*(*) vname
-      REAL dat(*), bad
-      REAL*8 scalefac, addoff
+      REAL dat(*)
       REAL memory( mem_blk_size, max_mem_blks )
 
 * local variable declarations:
@@ -124,17 +125,20 @@
      .        hilim, i100, i, j, k, l, m, n, recaxvar, lorec, hirec, rectyp,
      .	      vartyp, nvdim, vdims(8), nvatts, bndstart(2), bndcount(2),
      .        mblk1, nblks, npts, savecount, llen, grid_blocks
-      LOGICAL CD_GET_BOUNDS, TM_ABSTRACT_AXIS, TM_DFPEQ, 
-     .        got_it, scaled, writebounds
+      LOGICAL CD_GET_BOUNDS, TM_ABSTRACT_AXIS, TM_DFPEQ, CD_GET_ATTVAL,
+     .        got_it, scaled, writebounds, do_warn
       CHARACTER*13 TM_STRING
       CHARACTER*1  dimnam(nferdims)
       DATA  	   dimnam/'I','J','K','L','M','N'/
       CHARACTER*128 vbuff     ! needed because of fussy f772.1 DEC compiler
       REAL   r_scale, r_offset, scaled_bad
+      
+      REAL   bad
+      REAL*8 scalefac, addoff
       REAL*8 r100_8(200)
       REAL*8 TM_WORLD
       
-      INTEGER bndid, nlen, elen, reset
+      INTEGER bndid, nlen, elen, reset, numvals, nv 
       CHARACTER name*128, buff*128, CD_AXIS_OUTNAME*128, CD_AXIS_NAME*128
 
       REAL*4 r100_4(200)
@@ -167,6 +171,22 @@ c      EQUIVALENCE (r100_8, r100_4)
      .             vdims, nvatts)
 #endif
 
+* Get values for scalefac, addoff and bad-flag set in cdf_list for this variable
+
+      scalefac = 1.
+      addoff = 0.
+      numvals = 1
+      do_warn = .FALSE.
+      got_it = CD_GET_ATTVAL ( cdfid, varid, "scale_factor",
+     .                        do_warn, vname,
+     .                        scalefac, numvals, nv )
+      got_it = CD_GET_ATTVAL ( cdfid, varid, "add_offset",
+     .                        do_warn, vname,
+     .                        addoff, numvals, nv )
+      got_it = CD_GET_ATTVAL ( cdfid, varid, "_FillValue",
+     .                        do_warn, vname,
+     .                        bad, numvals, nv )
+
 * enter data mode so data can be read and written
 * (CD_GET_GENERIC_BOUNDS needs to read coordinate values)
       CALL CD_SET_MODE(cdfid, pcd_mode_data, status)
@@ -479,6 +499,9 @@ c      EQUIVALENCE (r100_8, r100_4)
 * To write scaled data, scale all of it by ferretdat(1./inscale) - (inoff/inscale)
 * the scaling to be used is sent into this routine.
 
+      scaled = .FALSE.
+      r_offset = 0.
+      r_scale = 1.
 
       IF ( .NOT. TM_DFPEQ(scalefac, 1.D0) .OR. 
      .     .NOT. TM_DFPEQ(addoff, 0.D0) ) THEN
@@ -496,6 +519,7 @@ c      EQUIVALENCE (r100_8, r100_4)
       ENDIF
 
 * write the slab
+
       CALL CD_WRITE_VAR_SUB( cdfid, varid, vartyp, dims, start, count, 
      .	vdims(1), dat, cdfstat )
 
diff --git a/fmt/src/ez_init_dset.F b/fmt/src/ez_init_dset.F
index f75a2e1..1d7d3f4 100644
--- a/fmt/src/ez_init_dset.F
+++ b/fmt/src/ez_init_dset.F
@@ -78,6 +78,8 @@
 * *kob* explicit definitions not allowed on decl line in linux...
 *       moved it to parameter line 10/96
 * V674 2/12 *acm* 6D Ferret: use nferdims rather than 4 for dimension indexing
+* V694 1/15 *acm* variable coordvar should be a logical not an integer
+
 
 	CHARACTER*4	ez_rev
 	CHARACTER*1	tab
@@ -118,14 +120,14 @@
 
 *
 * Local definitions
-        LOGICAL         TM_LEGAL_NAME, vars_gvn, its_delimited
+        LOGICAL         TM_LEGAL_NAME, vars_gvn, its_delimited, coordvar
 	CHARACTER*24	type_names(maxezvars)
 	CHARACTER*128	var_names(maxezvars)
 	INTEGER*4	TM_LENSTR1, STR_SAME,
      .			set_cnt, bpos, epos, ncnt, var_pos, num_names,
      .			nvar, jcnt, stp_cnt, nstp, field_type(maxezvars),
      .			num_types, i, j, name_limit, idummy(maxezvars),
-     .			l1, l2, ivar, vartype, coordvar, varid
+     .			l1, l2, ivar, vartype, varid
 	CHARACTER	TM_STRING*13, TM_LEFINT*4, buff*48, 
      .			line_buff*2048
 
@@ -421,7 +423,7 @@
 * and its variables
 
         CALL CD_STORE_DSET (dset, status)
-        coordvar = 0
+        coordvar = .FALSE.
         varid = 0
 
         DO 200 ivar = 1, maxvars
diff --git a/fmt/src/ez_permuted_index.F b/fmt/src/ez_permuted_index.F
index a5f9801..0aebdb4 100644
--- a/fmt/src/ez_permuted_index.F
+++ b/fmt/src/ez_permuted_index.F
@@ -35,15 +35,16 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* work routine for EZ_READ when /ORDER is not the default X-Y-Z-T
-* Determine the single-dimensioned array index equivalent to the 4D
-* (i,j,k,l) of the "next" word to be stored
+* work routine for EZ_READ when /ORDER is not the default X-Y-Z-T-E-F
+* Determine the single-dimensioned array index equivalent to the 6D
+* (i,j,k,l,m,n) of the "next" word to be stored
 
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Thermal Modeling and Analysis Program
 
 * revision 0.00 -  3/4/94 *sh*
 * V6.74 3/12 *acm* cleanup ifdefs and unnecessary include files
+* V694 11/14 *acm* Ticket 2217: permuted ASCII reading in 6D
 
 * calling arguments:
 * None - all indexing is done in COMMON to maximize speed (and because
@@ -56,18 +57,22 @@
         include 'xez_order.cmn_text'
 
 * convenience equivalences
-	INTEGER	nx, ny, nz,
-     .		 i,  j,  k,  l,
-     .		o1, o2, o3, o4
-	EQUIVALENCE (eznn(1),nx), (eznn(2),ny), (eznn(3),nz),
-     .		    (ezii(1),i),(ezii(2),j),(ezii(3),k),(ezii(4),l),
+	INTEGER	nx, ny, nz, nt, ne, nf,
+     .		 i,  j,  k,  l, m, n,
+     .		o1, o2, o3, o4, o5, o6
+	EQUIVALENCE (eznn(1),nx), (eznn(2),ny), (eznn(3),nz), 
+     .		    (eznn(4),nt), (eznn(5),ne),
+     .		    (ezii(1),i),(ezii(2),j),(ezii(3),k),
+     .		    (ezii(4),l),(ezii(5),m),(ezii(6),n),
      .		    (ezorder(1),o1), (ezorder(2),o2), 
-     .		    (ezorder(3),o3), (ezorder(4),o4) 
+     .		    (ezorder(3),o3), (ezorder(4),o4), 
+     .		    (ezorder(5),o5), (ezorder(6),o6) 
 
 
 * local variable definitions:
 
-* increment all 4 subscripts in appropriate permutation
+* increment all nferdims subscripts in appropriate permutation
+
 	ezii(o1) = ezii(o1) + 1
 	IF ( ezii(o1) .GE. eznn(o1) ) THEN
 	   ezii(o1) = 0
@@ -78,12 +83,28 @@
 	      IF ( ezii(o3) .GE. eznn(o3) ) THEN
 	         ezii(o3) = 0
 	         ezii(o4) = ezii(o4) + 1
+
+
+	         IF ( ezii(o4) .GE. eznn(o4) ) THEN
+	            ezii(o4) = 0
+	            ezii(o5) = ezii(o5) + 1
+
+		    
+	            IF ( ezii(o5) .GE. eznn(o5) ) THEN
+	               ezii(o5) = 0
+	               ezii(o6) = ezii(o6) + 1
+	            ENDIF
+
+	         ENDIF
+
 	      ENDIF
 	   ENDIF
 	ENDIF
 
 * compute the 1D index
-	EZ_PERMUTED_INDEX = ( nx*(ny*(nz*l + k) + j) + i ) + 1
+
+	EZ_PERMUTED_INDEX = 
+     .     ( nx*(ny*(nz*(nt*(ne*n + m) + l) + k) + j) + i ) + 1
 
 	RETURN
 
diff --git a/fmt/src/ez_read.F b/fmt/src/ez_read.F
index 94c5a96..7d9892b 100644
--- a/fmt/src/ez_read.F
+++ b/fmt/src/ez_read.F
@@ -77,6 +77,7 @@
 * v604 *acm* 7/07 increase length of ds_name, ds_des_name
 * V68  *acm* 1/12 The variables should be declared REAL (conversion to double prec.)
 * V68  *acm* 1/12  ifdef double_p for double-precision ferret.
+* V694 11/14 *acm* Ticket 2217: permuted ASCII reading in 6D
 
 * Arguments:
 *	dset	- data set number
@@ -179,7 +180,7 @@
 
 * is the input permuted?
 	permuted = .FALSE.
-	DO 110 i = 1, 4
+	DO 110 i = 1, nferdims
 	   IF ( ds_ordering(i,vfirst) .NE. i ) permuted = .TRUE.
  110	CONTINUE
 !	permuted = .TRUE.   ! debug statement
diff --git a/fmt/src/nc_get_attrib.F b/fmt/src/nc_get_attrib.F
index 3bfa6bf..447db41 100644
--- a/fmt/src/nc_get_attrib.F
+++ b/fmt/src/nc_get_attrib.F
@@ -61,6 +61,7 @@
 *      *kms*  7/13 Increased the size of errmsg to match the increased size 
 *                  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.
 
 * argument definitions:
 *	dset	 - dataset number
@@ -94,27 +95,20 @@
      .        lena, lenb, attype, status, i, dset_num, attid
       CHARACTER*128 aname
       INTEGER errmsglen
-      PARAMETER (errmsglen = 2048)
+      PARAMETER (errmsglen = 1024)
       CHARACTER*(errmsglen) errmsg
 
       INTEGER tt  ! nice short name
       EQUIVALENCE (tt,lunit_errors)
 
       INTEGER slen, flen
-      PARAMETER (flen=size_rbuff)        ! size of attribute string
+      PARAMETER (flen=10240)        ! size of attribute string
 #ifdef sun
       BYTE      fhol(flen), ghol(flen)      ! c-type Hollerith string buffer
 #else
       INTEGER*1 fhol(flen), ghol(flen)     ! c-type Hollerith string buffer
 #endif 
 
-       IF ( maxlen .GT. errmsglen ) THEN
-*         programming error; thus the STOP
-          WRITE(*,*) 'maxlen = ', maxlen, 
-     .               '; errmsglen = ', errmsglen
-          STOP 'errmsg not large enough in NC_GET_ATTRIB'
-       ENDIF
-
        NC_GET_ATTRIB = .FALSE.
        IF (dset .EQ. unspecified_int4) RETURN
        IF (varid .LT. 0) RETURN
@@ -178,6 +172,8 @@
 * warning exit
 
  5000 lenb = TM_LENSTR1( string )
+      lenb = MIN(lenb, maxlen)
+      lenb = MIN(lenb, 128)
  
       lena = TM_LENSTR1( attrib )
       errmsg = string(:lenb)//'"'//attrib(:lena)//
@@ -185,16 +181,16 @@
       lenb = TM_LENSTR1( errmsg )
       IF ( do_warn ) CALL TM_NOTE( errmsg(:lenb), tt )
       IF ( do_warn .AND. too_long ) THEN
-         IF (maxlen .GE. 3) WRITE (errmsg, 1000) maxlen
-         IF (maxlen .LT. 3) WRITE (errmsg, 1001) maxlen
-1000     FORMAT ('exceeds expected length. Maximum characters: ',I4, ' ')
-1001     FORMAT ('exceeds expected length. Maximum characters: ',I2, ' ')
+         IF (maxlen .GE. 3) WRITE (errmsg, 1000) maxlen, attlen
+         IF (maxlen .LT. 3) WRITE (errmsg, 1001) maxlen, attlen
+1000     FORMAT ('exceeds expected length. Maximum characters: ',I4, ' Length is', I8)
+1001     FORMAT ('exceeds expected length. Maximum characters: ',I2, ' Length is', I8)
          lenb = TM_LENSTR1( errmsg )
          CALL TM_NOTE( errmsg(:lenb), tt )
          WRITE (errmsg, 1010) maxlen
 1010     FORMAT ('--TRUNCATED TO LENGTH ',I4, '--')
          lenb = TM_LENSTR1( errmsg )
-	 CALL TM_CTOF_STRNG( fhol, errmsg(lenb+2:maxlen), (maxlen-lenb))
+	 CALL TM_CTOF_STRNG( fhol, errmsg(lenb+2:errmsglen), (errmsglen-lenb))
 	 attlen = maxlen
       ENDIF
       RETURN
diff --git a/fmt/src/nc_get_attrib_string.F b/fmt/src/nc_get_attrib_string.F
index 51cb0e4..48f8551 100644
--- a/fmt/src/nc_get_attrib_string.F
+++ b/fmt/src/nc_get_attrib_string.F
@@ -85,13 +85,14 @@
       LOGICAL too_long
       INTEGER TM_LENSTR1, NCF_GET_VAR_ATTR,
      .        lena, lenb, attype, status, i, dset_num, attid
-      CHARACTER*128 aname, buff
+      CHARACTER*128 aname
+      CHARACTER*500 buff
 
       INTEGER tt  ! nice short name
       EQUIVALENCE (tt,lunit_errors)
 
       INTEGER slen, flen
-      PARAMETER (flen=size_rbuff)        ! size of attribute string
+      PARAMETER (flen=10240)        ! size of attribute string
 #ifdef sun
       BYTE      fhol(flen), ghol(flen)      ! c-type Hollerith string buffer
 #else
@@ -160,17 +161,20 @@
 * warning exit
 
  5000 lenb = TM_LENSTR1( string )
+      lenb = MIN(lenb, maxlen)
+      lenb = MIN(lenb, 128)
  
       lena = TM_LENSTR1( attrib )
+
       buff = string(:lenb)//'"'//attrib(:lena)//
      .             '" in netCDF variable: '//vname
       lenb = TM_LENSTR1( buff )
       IF ( do_warn ) CALL TM_NOTE( buff(:lenb), tt )
       IF ( do_warn .AND. too_long ) THEN
-         IF (maxlen .GE. 3) WRITE (buff, 1000) maxlen
-         IF (maxlen .LT. 3) WRITE (buff, 1001) maxlen
-1000     FORMAT ('exceeds expected length. Maximum characters: ',I4, ' ')
-1001     FORMAT ('exceeds expected length. Maximum characters: ',I2, ' ')
+         IF (maxlen .GE. 3) WRITE (buff, 1000) maxlen, attlen
+         IF (maxlen .LT. 3) WRITE (buff, 1001) maxlen, attlen
+1000     FORMAT ('exceeds expected length. Maximum characters: ',I4, ' Length is', I8)
+1001     FORMAT ('exceeds expected length. Maximum characters: ',I2, ' Length is', I8)
          lenb = TM_LENSTR1( buff )
          CALL TM_NOTE( buff(:lenb), tt )
          WRITE (buff, 1010) maxlen
diff --git a/fmt/src/string_array_find_quoted.c b/fmt/src/string_array_find_quoted.c
index 68ff4d6..e2415c1 100644
--- a/fmt/src/string_array_find_quoted.c
+++ b/fmt/src/string_array_find_quoted.c
@@ -40,6 +40,7 @@
                 if the test name is not quoted, then the test name can
                 be case blind, but the model name should be upper-case.
     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>
@@ -59,7 +60,8 @@ void string_array_find_quoted_(  double *string_array_header,
    SA_Head * head;
    List_Node *bucket, *p;
    char * model_string;
-   int match=0, is_quoted=0;
+   int match=0, quote_offset=0;
+   const char *_SQ_ = "_SQ_";
 
 FILE *fp;
    
@@ -70,20 +72,33 @@ FILE *fp;
  
       tm_get_strlen_(&true_test_len, test_len, test_string);
  
+/* "'" encloses the string? */
       if(test_string[0]=='\''
           &&test_string[true_test_len-1]=='\''
-	  &&true_test_len>=2){
-	 is_quoted = 1;
+	  &&true_test_len>=2) {
+	 quote_offset = 1;
          true_test_len -= 2; 
       }
-
-      if(is_quoted == 1){
-         hash_value = string_array_hash(test_string+1, true_test_len, 0, array_size);
-      }
-      else {
-         hash_value = string_array_hash(test_string, true_test_len, 0, array_size);
+/* "_SQ_" encloses the string? */
+      else if(test_string[0]=='_'
+          &&test_string[true_test_len-1]=='_'
+	  &&true_test_len>=8) {
+	match = 1;
+	for( i=0; i<3; i++){
+	  if(   test_string[                i]!=_SQ_[i]
+	     || test_string[true_test_len-4+i]!=_SQ_[i]){
+	    match = 0;
+	    break;
+	  }
+	}
+	if (match ==1) {
+	  quote_offset = 4;
+	  true_test_len -= 8;
+	}
       }
 
+      hash_value = string_array_hash(test_string+quote_offset, true_test_len, 0, array_size);
+
       if(true_test_len ==0){
 	 result_array_size1 = 5;
       }
@@ -98,11 +113,11 @@ FILE *fp;
           match = 0;
 	  model_string=&(head->string_array[(p->index-1)*string_size]);
           string_array_get_strlen_(string_array_header, &(p->index), &true_model_len);
-          if(is_quoted == 1) {
+          if(quote_offset >= 1) {
 	      if(true_model_len == true_test_len){
 		  match = 1;
 	          for( i=0; i<true_model_len; i++){
-		      if(test_string[i+1]!=model_string[i]){
+		      if(test_string[i+quote_offset]!=model_string[i]){
 		         match = 0;
                          break;
 		      }
diff --git a/fmt/src/tm_allo_tmp_line.F b/fmt/src/tm_allo_tmp_line.F
index 9a3ea2b..2adee33 100644
--- a/fmt/src/tm_allo_tmp_line.F
+++ b/fmt/src/tm_allo_tmp_line.F
@@ -40,6 +40,8 @@
 
 * 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
 
 * Include files
 	include 'tmap_dims.parm'
@@ -71,6 +73,7 @@
         line_dim(line)       = int4_init
 
 	line_subsc1(line)    = int4_init
+	line_dim_only(line)  = .FALSE.
 
 	RETURN
 	END
diff --git a/fmt/src/tm_check_bnds.F b/fmt/src/tm_check_bnds.F
index ff1f260..86b98e3 100644
--- a/fmt/src/tm_check_bnds.F
+++ b/fmt/src/tm_check_bnds.F
@@ -1,4 +1,4 @@
-	LOGICAL FUNCTION TM_CHECK_BNDS (nline, nb, vname)
+	LOGICAL FUNCTION TM_CHECK_BNDS (nline, nb, doubletype, vname)
 
 *
 *  This software was developed by the Thermal Modeling and Analysis
@@ -46,6 +46,9 @@
 * V65  *acm*  2/10 Test for overlapping bounds
 * V66  *kms*  7/10 Initialize return value to .TRUE. (uninitialized bug for
 *                  N+1 bounds) and no need to check for gaps for N+1 bounds
+* V694  5/15 *acm* Match precision for bounds checks (as is done for coords).
+* V696 10/15 *acm* Ticket 2321: Fix logic when detecting coords that match grid bounds
+
 
         INCLUDE 'xio.cmn_text'
 	INCLUDE 'tmap_dims.parm'
@@ -54,16 +57,25 @@
 	EXTERNAL xgt_grid_data
 
 * Arguments
+	LOGICAL doubletype
 	INTEGER nline, nb
         CHARACTER*(*) vname
 
 * Internal definitions
-        LOGICAL TM_FPEQ, TM_DFPEQ, equal_ends, overlapping
+        LOGICAL TM_FPEQ_EPS, TM_DFPEQ_TOL, equal, equal_ends, overlapping
 	INTEGER TM_LENSTR1, npts, ipt1, ibx1, i, ngap, vlen, status,
      .          nothing
         REAL*8 pt, del, bhi, blo
+	
+	REAL epsilon_23, epsilon
+	REAL*8 depsilon_46, depsilon, first_delta
         REAL blast
         CHARACTER TM_STRING*13, vbuff*128
+	
+        epsilon_23 =  2.**(-23) 
+        depsilon_46 =  2.**(-46) 
+        epsilon_23 =  2.**(-22) 
+        depsilon_46 =  2.**(-45) 
 
 	ipt1 = line_subsc1(nline)
 	npts = line_dim(nline)
@@ -76,7 +88,11 @@
         overlapping = .FALSE.
 
         IF (nb .EQ. 2*npts) THEN
-
+	
+	   first_delta = line_mem(ipt1+1) - line_mem(ipt1)
+           depsilon = depsilon_46 * 2.*(ABS(line_mem(ipt1)) / first_delta )
+           epsilon = epsilon_23 * 2.*(ABS(line_mem(ipt1)) / first_delta )
+	   
            IF (line_regular(nline)) THEN
 
               pt = line_start(nline)
@@ -85,15 +101,17 @@
                  blo = line_mem(ibx1+2*i)
                  bhi = line_mem(ibx1+2*i+1)
 	        IF ( (pt .LT. blo) .OR.  (pt .GT. bhi) ) THEN
-		
-                   IF (TM_DFPEQ(pt,blo) .OR. TM_DFPEQ(pt,bhi) ) THEN
-                      nothing = 0
-                   ELSE
-                      TM_CHECK_BNDS = .FALSE.
+		   IF (doubletype) THEN
+                      equal = TM_DFPEQ_TOL(pt,blo,depsilon) .OR. TM_DFPEQ_TOL(pt,bhi,depsilon) 
+		   ELSE
+                      equal = TM_FPEQ_EPS(epsilon,pt,blo) .OR. TM_FPEQ_EPS(epsilon,pt,bhi)
+		   ENDIF
+		   IF (.NOT. equal) THEN
+		      TM_CHECK_BNDS = .FALSE.
+                     RETURN
 		   ENDIF
-                   RETURN
                 ENDIF
-	        pt = line_start(nline) + FLOAT(i+1)* del
+	        pt = line_start(nline) + DBLE(i+1)* del
 
   100           CONTINUE
 
@@ -106,16 +124,24 @@
                 bhi = line_mem(ibx1+2*i+1)
 	        IF ( (pt .LT. blo) .OR.  (pt .GT. bhi) ) THEN
 		
-                   IF (TM_DFPEQ(pt,blo) .OR. TM_DFPEQ(pt,bhi) ) THEN
-                      nothing = 0
-                   ELSE
-                      TM_CHECK_BNDS = .FALSE.
+		   IF (doubletype) THEN
+                      equal = TM_DFPEQ_TOL(pt,blo,depsilon) .OR. TM_DFPEQ_TOL(pt,bhi,depsilon)
+		   ELSE
+                      equal = TM_FPEQ_EPS(epsilon,pt,blo) .OR. TM_FPEQ_EPS(epsilon,pt,bhi)
+		   ENDIF
+		   IF (.NOT. equal) THEN
+		      TM_CHECK_BNDS = .FALSE.
+                     RETURN
 		   ENDIF
 
                    RETURN
 	        ENDIF
                 IF (i .GE. 1) THEN
-		   equal_ends = TM_FPEQ(blast, REAL(blo))
+		   IF (doubletype) THEN
+  		      equal_ends = TM_DFPEQ_TOL(blast, REAL(blo), depsilon)
+		   ELSE
+  		      equal_ends = TM_FPEQ_EPS(epsilon, blast, REAL(blo))
+	           ENDIF
 		   IF (.NOT.equal_ends .AND. blo.LT.blast) THEN 
 		      overlapping = .TRUE.
 		      GOTO 330
@@ -171,11 +197,20 @@
              DO 400 i = 0, npts-1
                 blo = line_mem(ibx1+i)
                 bhi = line_mem(ibx1+i+1)
+
 	        IF ( (pt .LT. blo) .OR.  (pt .GT. bhi) ) THEN
-                   IF (TM_DFPEQ(pt,blo) .OR. TM_DFPEQ(pt,bhi) ) THEN
-                      nothing = 0
-                   ELSE
-                      TM_CHECK_BNDS = .FALSE.
+		   IF (doubletype) THEN
+                      IF (TM_DFPEQ_TOL(pt,blo,depsilon) .OR. TM_DFPEQ_TOL(pt,bhi,depsilon) ) THEN
+                         nothing = 0
+                      ELSE
+                         TM_CHECK_BNDS = .FALSE.
+		      ENDIF
+		   ELSE
+                      IF (TM_FPEQ_EPS(epsilon,pt,blo) .OR. TM_FPEQ_EPS(epsilon,pt,bhi) ) THEN
+                         nothing = 0
+                      ELSE
+                         TM_CHECK_BNDS = .FALSE.
+		      ENDIF
 		   ENDIF
                    RETURN
 	        ENDIF
@@ -190,10 +225,18 @@
                 blo = line_mem(ibx1+i)
                 bhi = line_mem(ibx1+i+1)
 	        IF ( (pt .LT. blo) .OR.  (pt .GT. bhi) ) THEN
-                   IF (TM_DFPEQ(pt,blo) .OR. TM_DFPEQ(pt,bhi) ) THEN
-                      nothing = 0
-                   ELSE
-                      TM_CHECK_BNDS = .FALSE.
+		   IF (doubletype) THEN
+                      IF (TM_DFPEQ_TOL(pt,blo,depsilon) .OR. TM_DFPEQ_TOL(pt,bhi,depsilon) ) THEN
+                         nothing = 0
+                      ELSE
+                         TM_CHECK_BNDS = .FALSE.
+		      ENDIF
+		   ELSE
+                      IF (TM_FPEQ_EPS(epsilon,pt,blo) .OR. TM_FPEQ_EPS(epsilon,pt,bhi) ) THEN
+                         nothing = 0
+                      ELSE
+                         TM_CHECK_BNDS = .FALSE.
+		      ENDIF
 		   ENDIF
                    RETURN
 	        ENDIF
diff --git a/fmt/src/tm_check_bnds_centered.F b/fmt/src/tm_check_bnds_centered.F
index 37ab8b5..422c5eb 100644
--- a/fmt/src/tm_check_bnds_centered.F
+++ b/fmt/src/tm_check_bnds_centered.F
@@ -1,4 +1,4 @@
-	LOGICAL FUNCTION TM_CHECK_BNDS_CENTERED (nline)
+	LOGICAL FUNCTION TM_CHECK_BNDS_CENTERED (nline, doubletype)
 *
 *
 *  This software was developed by the Thermal Modeling and Analysis
@@ -41,24 +41,32 @@
 *                  whether the coordinates are centered in the bound boxes, and 
 *                  whether the boxes are equal sized.
 * V601 *acm* 9/19  Fix bug 1434; check bounds for regularly-spaced axes 
+* V694  5/15 *acm* Match precision for bounds checks (as is done for coords).
 
 	include 'tmap_dims.parm'
 	include 'xtm_grid.cmn_text'
 	external xgt_grid_data
 
 * Argument declaration
+	LOGICAL doubletype
 	INTEGER nline
 
 * Local variable declarations
-        LOGICAL TM_FPEQ
+        LOGICAL TM_FPEQ_EPS, TM_DFPEQ_TOL, equal
 	INTEGER ipt1, npts, ibx1, i
         REAL diff_hi, diff_lo, diff_last
         REAL pt, del
+	REAL epsilon_23, epsilon
+	REAL*8 depsilon_46, depsilon, first_delta
 
 	ipt1 = line_subsc1(nline)
 	npts = line_dim(nline)
 	ibx1 = ipt1 + npts
 
+	first_delta = line_mem(ipt1+1) - line_mem(ipt1)
+	depsilon = depsilon_46 * 2.*(ABS(line_mem(ipt1)) / first_delta )
+	epsilon = epsilon_23 * 2.*(ABS(line_mem(ipt1)) / first_delta )
+
         IF (line_regular(nline)) THEN
            pt = line_start(nline)
            del = line_delta(nline) 
@@ -67,7 +75,13 @@
              diff_hi = line_mem(ibx1+i+1) - pt
              diff_lo = pt - line_mem(ibx1+i)
 
-	     IF ( .NOT. TM_FPEQ(diff_lo, diff_hi) ) THEN
+	     IF (doubletype) THEN
+	       equal = TM_DFPEQ_TOL(diff_lo, diff_hi, depsilon)
+	     ELSE
+	       equal = TM_FPEQ_EPS(epsilon, diff_lo, diff_hi) 
+	     ENDIF
+
+	     IF ( .NOT. equal ) THEN
 	        TM_CHECK_BNDS_CENTERED = .FALSE.
 	        RETURN
 	     ENDIF
@@ -89,7 +103,12 @@
              diff_hi = line_mem(ibx1+i+1) - line_mem(ipt1+i)
              diff_lo = line_mem(ipt1+i)- line_mem(ibx1+i)
 
-	     IF ( .NOT. TM_FPEQ(diff_lo, diff_hi) ) THEN
+	     IF (doubletype) THEN
+	       equal = TM_DFPEQ_TOL(diff_lo, diff_hi, depsilon)
+	     ELSE
+	       equal = TM_FPEQ_EPS(epsilon, diff_lo, diff_hi) 
+	     ENDIF
+	     IF ( .NOT. equal ) THEN
 	        TM_CHECK_BNDS_CENTERED = .FALSE.
 	        RETURN
 	     ENDIF
diff --git a/fmt/src/tm_deallo_dyn_grid.F b/fmt/src/tm_deallo_dyn_grid.F
index 69a152f..e52c531 100644
--- a/fmt/src/tm_deallo_dyn_grid.F
+++ b/fmt/src/tm_deallo_dyn_grid.F
@@ -64,8 +64,10 @@
 	CALL TM_DEALLO_DYN_GRID_SUB(grid)
 
 * if the grid was actually removed, then also deallocate the axes that it used
-	IF ( grid .GT. max_grids
-     . .AND. grid_use_cnt(grid) .EQ. 0 ) THEN
+* Check first that the grid number is in range
+
+	IF ( grid .GT. max_grids) THEN
+        IF ( grid_use_cnt(grid) .EQ. 0 ) THEN
 
 *release claim to any dynamic lines this may use
 	   DO 100 idim = 1, nferdims
@@ -73,6 +75,7 @@
  100	   CONTINUE
 
 	ENDIF
+	ENDIF
 
 * successful completion
 	RETURN
diff --git a/fmt/src/tm_fmt.F b/fmt/src/tm_fmt.F
index 20430cc..e9b47a4 100644
--- a/fmt/src/tm_fmt.F
+++ b/fmt/src/tm_fmt.F
@@ -79,9 +79,9 @@
 	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
+     .			iloop, width, prec_digits
 	REAL		aval, l10
-	CHARACTER*10	fmt, outstring*25, strend*25
+	CHARACTER*10	fmt, dummy_fmt, outstring*25, strend*25
 
 * local parameters:
 	INTEGER		TM_CHECK_NAN, TM_CHECK_INF, TM_LENSTR1, 
@@ -103,9 +103,11 @@
 	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), max_len )
+	slen = MIN( 18, max_len )
 	slen = MAX( 1, slen )
 
 * If the value is NaN, set the string here
@@ -170,7 +172,7 @@
 * the extra length and add it back later.
 
         sig_full = MAX( sig_min, MIN( sig_max, slen-waste ) )
-	need_adjust = 0
+
         IF (sig_full .GT. max_int_len) THEN
 	  need_adjust = sig_full - max_int_len
 	ENDIF
@@ -316,6 +318,34 @@
 
 	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)
+	      strend = outstring(ind+1:str_len)
+	      outstring = outstring(1:ind-1)//strend
+	      ind = INDEX(outstring, '0E')
+	   ENDDO
+	ENDIF
+
 	str_len = TM_LENSTR1( outstring )
 	IF (INDEX(outstring, '0E') .GT. 0) THEN
 	   ind = INDEX(outstring, '0E')
diff --git a/fmt/src/tm_init_dset.F b/fmt/src/tm_init_dset.F
index d9c3f22..e58f3bf 100644
--- a/fmt/src/tm_init_dset.F
+++ b/fmt/src/tm_init_dset.F
@@ -108,6 +108,7 @@
 * V686 1/14 *acm* Fix ticket 2129: A bug in the fix to 2128.
 * 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
 
 * arguments:
 *	dset_name	- filename of DESCRIPTOR file (input)
@@ -558,7 +559,7 @@
 
  5600	CALL TM_ERRMSG (merr_notsupport, status, 'TM_INIT_DSET',
      .			dset_num, no_stepfile,
-     .			'Dataset type not supported for double-precision Ferret'
+     .		'Dataset type not supported for double-precision Ferret '
      .			//dset_name,
      .			no_errstring, *9900)
 
diff --git a/fmt/src/tm_loc_string.F b/fmt/src/tm_loc_string.F
index 31f1d56..86eb9a2 100644
--- a/fmt/src/tm_loc_string.F
+++ b/fmt/src/tm_loc_string.F
@@ -49,12 +49,14 @@
 
 * local variable declarations
 	INTEGER	STR_UPCASE, TM_LENSTR1,
-     .		vms_stat, sublen, strlen, i, loc
-	CHARACTER*512	up_string, up_sub, newstring
+     .		vms_stat, sublen, strlen, i, loc, maxstr
+	
+	PARAMETER (maxstr = 2048)
+	CHARACTER*(maxstr)	up_string, up_sub, newstring
 
 * length of substring
-	sublen = TM_LENSTR1( substring )
-	strlen = TM_LENSTR1( string )
+	sublen = MIN(maxstr, TM_LENSTR1( substring ))
+	strlen = MIN(maxstr, TM_LENSTR1( string ))
 
         IF (ioc .LT. 1) ioc = 1
 
diff --git a/fmt/src/tm_make_basic_axis.F b/fmt/src/tm_make_basic_axis.F
index d077ec2..8cd186d 100644
--- a/fmt/src/tm_make_basic_axis.F
+++ b/fmt/src/tm_make_basic_axis.F
@@ -46,6 +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
+ 
 
 * argument definitions:
 *       name      - name for axis
@@ -94,6 +97,7 @@
       line_shift_origin(iaxis) = .FALSE.
       line_tunit(iaxis)     = real4_init
       line_direction(iaxis) = 'NA'
+      line_dim_only(iaxis)   = .TRUE.
 
 * successful completion
       status = merr_ok
diff --git a/fmt/src/tm_note.F b/fmt/src/tm_note.F
index 638c9e6..dbbf172 100644
--- a/fmt/src/tm_note.F
+++ b/fmt/src/tm_note.F
@@ -44,7 +44,13 @@
 * *sh* 2/28/95 - allow message to be sent to alternative location
 * *js* 12.12.97- changed to use tm_split_list
 * 1/03 - *kob* g77 port - Need to use risc_buff for arbitrary concatenations
-
+* 12/13 *sh* - enhancement to support multi-line outputs in one call by
+*	embedding pCR characters into string as line separators
+*       Note that the Ferret stack of output calls could use some cleanup since
+*	Ferret lib routines call TMAP_FORMAT lib TM_SPLIT_MESSAGE which in turn
+*	calls back into Ferret lib to SPLIT_LIST
+*	WRITE_MULTI is a Ferret lib routine that has the functionality we need.
+*	But it calls TM_SPLIT_MESSAGE. By calling it here we add to the mess 
 
 * calling argument declarations:
         INTEGER lunit
@@ -70,7 +76,7 @@
 c	   WRITE ( lunit, 3000 ) string(:slen)
 c 3000	   FORMAT ( ' *** NOTE: ',A )
 	   risc_buff = string
-	   call tm_split_message(lunit, ' *** NOTE: '//risc_buff)
+	   CALL WRITE_MULTI(lunit, ' *** NOTE: '//risc_buff)
 	ENDIF
 
 	RETURN
diff --git a/fmt/src/tm_switch_nan.c b/fmt/src/tm_switch_nan.c
index e3c75e8..efbb8c9 100644
--- a/fmt/src/tm_switch_nan.c
+++ b/fmt/src/tm_switch_nan.c
@@ -47,19 +47,22 @@
 
 /* *kob* - 2/18/99 */
 /* *acm*  1/12      - Ferret 6.8 ifdef double_p for double-precision ferret, see the
-*					 definition of macro DFTYPE in ferretmacros.h.
+/*					 definition of macro DFTYPE in ferretmacros.h.
+/* *acm* V6931 12/14 Fix ticket 2223: need to use the Ferret missing-value flag
+/*					 which is now passed in as an argument.
 */
 
-void FORTRAN(switch_nan)(bad, missing)
+void FORTRAN(switch_nan)(bad, missing, bad_val)
      DFTYPE *bad;
      DFTYPE *missing;
+     DFTYPE *bad_val;
 {
   if (isnan(*bad) || isnan(*missing))
     { 
       if (isnan(*bad)) 
 	{
 	  *missing = *bad;
-	  *bad = bad_val4;
+	  *bad = *bad_val;
 	}
     }
 }
diff --git a/fmt/src/tm_ww_ax_1_n.F b/fmt/src/tm_ww_ax_1_n.F
index 129235e..5e5d69f 100644
--- a/fmt/src/tm_ww_ax_1_n.F
+++ b/fmt/src/tm_ww_ax_1_n.F
@@ -47,7 +47,7 @@
 	REAL*8 lo, hi
 
 * internal variable declarations
-	INTEGER	isub1, llen
+	INTEGER	isub1, llen, iiaxis
 
 	IF ( axis .LT. 0 .OR. axis .GT. line_ceiling ) THEN
 	  lo = unspecified_val8
@@ -56,8 +56,10 @@
 	  lo = line_start(axis)
 	  hi = line_start(axis) + (line_dim(axis)-1)*line_delta(axis)
 	ELSE
-	  isub1 = line_subsc1(axis)
-	  llen = line_dim(axis)
+	  iiaxis = axis
+	  IF (line_parent(axis) .NE. 0) iiaxis = line_parent(axis)
+	  isub1 = line_subsc1(iiaxis)
+	  llen = line_dim(iiaxis)
 	  lo = line_mem(isub1)
 	  hi = line_mem(isub1 + llen - 1)
 	ENDIF
diff --git a/fmt/src/tm_ww_axlims.F b/fmt/src/tm_ww_axlims.F
index f2b5a7f..8c73210 100644
--- a/fmt/src/tm_ww_axlims.F
+++ b/fmt/src/tm_ww_axlims.F
@@ -48,7 +48,7 @@
 	REAL*8 lo, hi
 
 * internal variable declarations
-	INTEGER	isub1, llen
+	INTEGER	isub1, llen, iiaxis
 
 	IF ( axis .LT. 0 .OR. axis .GT. line_ceiling ) THEN
 	  lo = unspecified_val8
@@ -57,8 +57,10 @@
 	  lo = line_start(axis) - 0.5D0*line_delta(axis)
 	  hi = lo + line_dim(axis)*line_delta(axis)
 	ELSE
-	  isub1 = line_subsc1(axis)
-	  llen = line_dim(axis)
+	  iiaxis = axis
+	  IF (line_parent(axis) .NE. 0) iiaxis = line_parent(axis)
+	  isub1 = line_subsc1(iiaxis)
+	  llen = line_dim(iiaxis)
 	  hi = line_mem(isub1 + 2*llen)
 	  lo = line_mem(isub1 +   llen)
 	ENDIF
diff --git a/fmt/src/xdset_info_data.F b/fmt/src/xdset_info_data.F
index 34da8f2..8f587bd 100644
--- a/fmt/src/xdset_info_data.F
+++ b/fmt/src/xdset_info_data.F
@@ -65,6 +65,7 @@
 * v552 *acm*  4/03 Initialize ds_var_off, ds_var_scale, ds_var_scaleit
 * 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
 
 #include "tmap_dset.parm"		
 	include 'tmap_dims.parm'		! parameter definitions
@@ -144,5 +145,6 @@
 	DATA	ds_var_off		/maxvars*0.0/
 	DATA	ds_var_scale		/maxvars*1.0/
 	DATA	ds_var_scaleit		/maxvars*.FALSE./
+	DATA	ds_var_c_cache_ptr	/maxvars*0.0/
 
 	END
diff --git a/jnls/go/focean.jnl b/jnls/go/focean.jnl
index 68b9a41..b6090e1 100644
--- a/jnls/go/focean.jnl
+++ b/jnls/go/focean.jnl
@@ -5,6 +5,8 @@
 ! 	 10/93 - updated for Ferret V3.01
 ! 	 2/94  - added [basemap]
 ! 	 11/94 - added transparent overlays and "detail" control
+! 	  3/15 - add region improvements as in fland. Make the default
+!                dataset etopo20.
 
 ! Description: Plot or overlay an area-filled map of the oceans
 
@@ -44,11 +46,15 @@ query/ignore $4%not_required|detailed|solid|all> <4th argument of GO basemap may
 
 set data/save
 
-set data etopo$1"60"
+def sym xlo_hack ($xaxis_min%0%)
+def sym xhi_hack ($xaxis_max%360%)
+def sym map_reg = [$5%x=($xlo_hack):($xhi_hack)%]
 
-shade/nolab/nokey/lev=$4"(-10000,0,10000)|detailed>(-200,0,50)(-1000,-200,100)(-10000,0,1000)|solid>(-10000,0,10000)|all>(-200,200,50)(-1000,1000,200)(-8000,8000,1000)"/pal=$2"gray"$3"/overlay|basemap> |*>/overlay" $3"rose|transparent>if mod(i+j,2) eq 0 then rose|*>rose"
 
+set data etopo$1"20"
 
-cancel data etopo$1"60"
+shade/nolab/nokey/lev=$4"(-10000,0,10000)|detailed>(-200,0,50)(-1000,-200,100)(-10000,0,1000)|solid>(-10000,0,10000)|all>(-200,200,50)(-1000,1000,200)(-8000,8000,1000)"/pal=$2"gray"$3"/overlay|basemap> |*>/overlay" $3"rose($map_reg)|transparent>if mod(i+j,2) eq 0 then rose($map_reg)|*>rose($map_reg)"
+
+cancel data etopo$1"20"
 set data/restore
 set mode/last verify
diff --git a/jnls/go/mp_grid.jnl b/jnls/go/mp_grid.jnl
index dfea95e..229147b 100644
--- a/jnls/go/mp_grid.jnl
+++ b/jnls/go/mp_grid.jnl
@@ -23,6 +23,7 @@ define symbol mp_grid_variable = $1
 
 let mp_x = x[g=($mp_grid_variable)]
 let mp_y = y[g=($mp_grid_variable)]
+set grid ($mp_grid_variable)
 
 !++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++!
 set mode/last verify
diff --git a/jnls/go/mp_land.jnl b/jnls/go/mp_land.jnl
index 279d916..159d628 100644
--- a/jnls/go/mp_land.jnl
+++ b/jnls/go/mp_land.jnl
@@ -32,6 +32,8 @@
 !  2) use  GO line_samples    to view the first 6 pen numbers
 !       Higher pen numbers cycle with thicker lines (max 18)
 !  3) For more control over basemaps use "GO basemap"
+! 
+! ACM 4/15 Fix ticket 2256: modulo replications for continents if argument 1 is not given
 
 ! test argument before performing any actions
 query/ignore $1%1|black|red|green|blue|thick|0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|N|<GO mp_land [pen or "N"] ["basemap"] [pen] [pen] with pen = 0(back), 1(fore), thick, 2-18 or a color%
@@ -103,7 +105,6 @@ $1"ppl plot|N>QUERY/IGNORE stuff |*>ppl plot"$2"/overlay|basemap> |*>/overlay"
 
 
 ! Draw any lines outside 0 to 360
-IF ($1"0|*>1") THEN
 
 IF `landi_addx NE 0` THEN 
   set grid continent_lon
@@ -130,8 +131,6 @@ IF `landi_subx NE 0` THEN
   $1"ppl plot|N>QUERY/IGNORE stuff |*>ppl plot"$2"/overlay|basemap> |*>/overlay"
 ENDIF
 
-ENDIF  ! lines outside 0 to 360
-
 ! **** now the optional country borders
 set grid COUNTRY_LON
 let/quiet mp_lambda = if (COUNTRY_LON ge mp_xmin and COUNTRY_LON le mp_xmax and COUNTRY_LAT ge mp_ymin and COUNTRY_LAT le mp_ymax) then (COUNTRY_LON * deg2rad)
diff --git a/palettes/QQC_V3_by_level.spk b/palettes/QQC_V3_by_level.spk
new file mode 100644
index 0000000..144ce84
--- /dev/null
+++ b/palettes/QQC_V3_by_level.spk
@@ -0,0 +1,16 @@
+RGB_Mapping By_Level
+ 
+! Level    Red  Green   Blue
+
+   1     0    0  100  ! blue		A
+   2     0   60   30  ! green		B
+   3   100   90    0  ! yellow		C
+   4   100    0    0  ! bright red	D
+   5    73   64   45  ! tan             E  Experimental
+   6    70    0  100  ! purple		F
+   7    80   90   10  ! light green     N New 
+   8    100  70  100  ! pink		Q Conflicting
+   9     0  100  100  ! cyan		U Updated
+  10   100   70    0  ! orange		S Suspended
+  11    20   20   20  ! Dk Gray		X Excluded
+
diff --git a/palettes/blue_gold.spk b/palettes/blue_gold.spk
new file mode 100755
index 0000000..e7a9410
--- /dev/null
+++ b/palettes/blue_gold.spk
@@ -0,0 +1,9 @@
+! blue-gold color palette; good for color-impaired viewers
+     0     3    11    34
+     5    10    20    57
+    12    13    36    65
+    40    11    56    75
+    45    25    71    76
+    80    99    95    60
+    90    99    80     1
+   100    67    46     8 
diff --git a/palettes/blue_green_gold.spk b/palettes/blue_green_gold.spk
new file mode 100644
index 0000000..09a242f
--- /dev/null
+++ b/palettes/blue_green_gold.spk
@@ -0,0 +1,10 @@
+! Reverse of Yellow-Green_blue spectrum from Colorbrewer
+! Sequential spectrum: friendly to colorblind, b/w printers, all displays
+     0     3    11    34
+    14    10    20    57
+    28    13    36    65
+    42    11    56    75
+    56    25    71    76
+    70    99    95    60
+    85    99    80     1
+   100    67    46     8   !55    32     4
diff --git a/palettes/blue_purple_orange.spk b/palettes/blue_purple_orange.spk
new file mode 100644
index 0000000..fa8d5a0
--- /dev/null
+++ b/palettes/blue_purple_orange.spk
@@ -0,0 +1,12 @@
+! Blue to Orange, 12 steps
+! http://geography.uoregon.edu/datagraphics/color_scales.htm
+     0.0     0.0    16.7   100.0
+     9.1    10.0    40.0   100.0
+    18.2    20.0    60.0   100.0
+    27.3    40.0    80.0   100.0
+    50.0    60 0 100
+    63.6   79.7    29.7     0.8
+    72.7    90.0    50.0    40.0
+    81.8   100.0    60.0    20.0
+    90.9   100.0    40.0    10.0
+   100.0   100.0    16.7     0.0
diff --git a/palettes/bluegrayscale.spk b/palettes/bluegrayscale.spk
new file mode 100644
index 0000000..ad1e0d6
--- /dev/null
+++ b/palettes/bluegrayscale.spk
@@ -0,0 +1,3 @@
+    0.0   25.0   35.0   47.0
+  100.0   87.0   93.5   95.0
+
diff --git a/palettes/coralreefwatch_dhw_value_white.spk b/palettes/coralreefwatch_dhw_value_white.spk
new file mode 100644
index 0000000..4a6f7a4
--- /dev/null
+++ b/palettes/coralreefwatch_dhw_value_white.spk
@@ -0,0 +1,20 @@
+RGB_Mapping By_value
+ 0.5    98.0   98.0   98.0
+ 1.0    39.2   39.2  100.0
+ 2.5    39.2   39.2   78.4
+ 3.5    39.2   39.2   58.8
+ 4.5     0.0   54.9    0.0
+ 5.5    58.8   66.7    0.0
+ 6.5    78.4   78.4    0.0
+ 7.5    58.8   78.4    0.0
+ 8.5    78.4  100.0   47.1
+ 9.5   100.0  100.0    0.0
+10.5   100.0   78.4    0.0
+11.5   100.0   62.7    0.0
+12.5   100.0   49.0    0.0
+13.5    78.4   19.6   39.2
+14.5    68.6   19.6   29.4
+15.5    58.8    0.0   58.8
+16.5    78.4    0.0   78.4
+17      75.0   75.0   75.0
+  
\ No newline at end of file
diff --git a/palettes/green_soft.spk b/palettes/green_soft.spk
new file mode 100644
index 0000000..05d323e
--- /dev/null
+++ b/palettes/green_soft.spk
@@ -0,0 +1,12 @@
+  0   74  60  48
+100   74  60  48
+
+!  66  75  68  ! greyish
+!  56  75  68  ! blueish, darker
+!  66  75  48  ! yellowish
+!  61  80  48  ! brighter
+!  90 100  65  ! pale bright
+!  77  95  89  ! pale mint
+!  82  92  89  ! pale mint
+! 77.7    91.4    89.5  ! bluey, pale
+! 58   71    69
diff --git a/palettes/inverse_medium_rainbow.spk b/palettes/inverse_medium_rainbow.spk
new file mode 100644
index 0000000..343016e
--- /dev/null
+++ b/palettes/inverse_medium_rainbow.spk
@@ -0,0 +1,10 @@
+! Another rainbow palette, reversed
+     0.0    60.0     0.0     0.0  ! dark red
+     9.1   100.0     0.0     0.0  ! red
+    27.3   100.0    80.0    40.0  ! light orange-yellow
+    36.4   100.0    93.3    20.0  ! yellow
+    50.0     0.0    70.0   20.0   ! spring green
+    63.6    20.0    93.3   100.0  ! light sky blue
+    75.0    40.0    80.0  100.0   ! darker sky blue
+    90.9    10.0    40.0   100.0  ! royal blue
+   100.0    80.0     0.0   100.0  ! violet
diff --git a/palettes/koppen.spk b/palettes/koppen.spk
new file mode 100644
index 0000000..5f2af54
--- /dev/null
+++ b/palettes/koppen.spk
@@ -0,0 +1,18 @@
+RGB_Mapping By_Value
+
+! Level      Red  Green  Blue
+
+1            55     0     55
+2            75     0     75
+3            95     0     95 
+4            90    40     40
+5            90    30     30
+6            60    90     60
+7             5    80      5
+8             0    60      0
+9             0    50      0
+10            0    40      0
+11           20    20     80
+12           60    60     90
+13           50    50     50
+14           95    95     95
diff --git a/palettes/lightgray_bottom0.spk b/palettes/lightgray_bottom0.spk
new file mode 100644
index 0000000..4eb4cdd
--- /dev/null
+++ b/palettes/lightgray_bottom0.spk
@@ -0,0 +1,16 @@
+! palette suited to data with low significance at low values  
+! *sh* 2/00
+
+RGB_Mapping Percent
+
+! Lev  R    G    B
+0      95.  98.  98.
+24     50. 100. 100.
+45     30.  30. 100.
+56     20.  20.  50.
+67     10.  60.  10.
+78     50. 100.  50.
+89    100. 100.   0.
+100   100.    0.  0.
+
+
diff --git a/palettes/medium_rainbow.spk b/palettes/medium_rainbow.spk
new file mode 100644
index 0000000..3385e7d
--- /dev/null
+++ b/palettes/medium_rainbow.spk
@@ -0,0 +1,10 @@
+! Another rainbow palette
+     0.0    80.0     0.0   100.0  ! violet
+     9.1    10.0    40.0   100.0  ! royal blue
+    27.3    40.0    80.0  100.0   ! darker sky blue
+    36.4    20.0    93.3   100.0  ! light sky blue
+    50.0     0.0    70.0   20.0   ! spring green
+    63.6   100.0    93.3   20.0   ! yellow
+    75.0   100.0    80.0    40.0  ! light orange-yellow
+    90.9   100.0     0.0     0.0  ! red
+   100.0    60.0     0.0     0.0  ! dark red
diff --git a/palettes/woce2.spk b/palettes/woce2.spk
new file mode 100644
index 0000000..fc1fd4b
--- /dev/null
+++ b/palettes/woce2.spk
@@ -0,0 +1,7 @@
+RGB_Mapping By_value
+ 
+! Level  Red  Green  Blue
+      2    0    20  100  !  blue  ! 20.0  93.0  100.0 ! turquoise
+      3   99    60   16  !  yellow-orange
+      4    0     0    0  !  black
+
diff --git a/platform_specific.mk.i386-linux b/platform_specific.mk.i386-linux
index d026ff9..ebfa267 100644
--- a/platform_specific.mk.i386-linux
+++ b/platform_specific.mk.i386-linux
@@ -23,6 +23,14 @@ else
 	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
@@ -38,12 +46,14 @@ endif
 			  -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 \
 			  $(CAIRO_INCLUDE) \
+			  $(PIXMAN_INCLUDE) \
 			  -I/usr/include/pango-1.0 \
 			  -I/usr/include/glib-2.0 \
 			  -I/usr/lib/glib-2.0/include \
diff --git a/platform_specific.mk.i386-linux-gnu b/platform_specific.mk.i386-linux-gnu
index 614d8a0..97bd2b4 100644
--- a/platform_specific.mk.i386-linux-gnu
+++ b/platform_specific.mk.i386-linux-gnu
@@ -23,6 +23,14 @@ else
 	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
@@ -38,12 +46,14 @@ endif
 			  -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 \
 			  $(CAIRO_INCLUDE) \
+			  $(PIXMAN_INCLUDE) \
 			  -I/usr/include/pango-1.0 \
 			  -I/usr/include/glib-2.0 \
 			  -I/usr/lib/i386-linux-gnu/glib-2.0/include \
diff --git a/platform_specific.mk.intel-mac b/platform_specific.mk.intel-mac
index 8d06d0f..e1682e9 100644
--- a/platform_specific.mk.intel-mac
+++ b/platform_specific.mk.intel-mac
@@ -10,7 +10,8 @@
 # which should have been included prior to this include.
 #
 
-	CAIRO_LIBDIR	=
+	CAIRO_LIBDIR =
+	PIXMAN_LIBDIR =
 	HDF5_LIBDIR	=
 	NETCDF4_LIBDIR	= $(NETCDF4_DIR)/lib
 
diff --git a/platform_specific.mk.x86_64-linux b/platform_specific.mk.x86_64-linux
index 0c5ee85..d1ddca9 100644
--- a/platform_specific.mk.x86_64-linux
+++ b/platform_specific.mk.x86_64-linux
@@ -25,6 +25,15 @@ else
 	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_LIBDIR	= $(PIXMAN_DIR)/lib64
+	PIXMAN_INCLUDE	= -I$(PIXMAN_DIR)/include
+endif
+
 ifeq ($(strip $(HDF5_DIR)),)
 	HDF5_LIBDIR	=
 else
@@ -42,12 +51,14 @@ endif
 			  -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 \
 			  $(CAIRO_INCLUDE) \
+			  $(PIXMAN_INCLUDE) \
 			  -I/usr/include/pango-1.0 \
 			  -I/usr/include/glib-2.0 \
 			  -I/usr/lib64/glib-2.0/include \
diff --git a/platform_specific.mk.x86_64-linux-gnu b/platform_specific.mk.x86_64-linux-gnu
index fb315ed..c4a3e7f 100644
--- a/platform_specific.mk.x86_64-linux-gnu
+++ b/platform_specific.mk.x86_64-linux-gnu
@@ -25,6 +25,15 @@ else
 	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_LIBDIR	= $(PIXMAN_DIR)/lib64
+	PIXMAN_INCLUDE	= -I$(PIXMAN_DIR)/include
+endif
+
 ifeq ($(strip $(HDF5_DIR)),)
 	HDF5_LIBDIR	=
 else
@@ -42,12 +51,14 @@ endif
 			  -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 \
 			  $(CAIRO_INCLUDE) \
+			  $(PIXMAN_INCLUDE) \
 			  -I/usr/include/pango-1.0 \
 			  -I/usr/include/glib-2.0 \
 			  -I/usr/lib/x86_64-linux-gnu/glib-2.0/include \
diff --git a/ppl/complot/SOURCE_FILES b/ppl/complot/SOURCE_FILES
index bedcb1a..ffb9f2a 100644
--- a/ppl/complot/SOURCE_FILES
+++ b/ppl/complot/SOURCE_FILES
@@ -50,8 +50,11 @@ range_dm.F\
 rangel.F\
 rotate.F\
 scale3.F\
+special_sym_code.F\
 symbel.F\
+symbel_hershey.F\
 symbol.F\
+symwid.F\
 tabmv.F\
 teklun.F\
 teknme.F\
diff --git a/ppl/complot/gksmv.F b/ppl/complot/gksmv.F
index f23c464..9f8ff27 100644
--- a/ppl/complot/gksmv.F
+++ b/ppl/complot/gksmv.F
@@ -47,6 +47,12 @@ c	construct device dependent plotting code
 c
 c v6.61 ACM 4/2010 Fix bug 1396 - dots between dashes on some displays.
 c                  Do not make a call to GPL on "move with the pen up".      
+C
+C v6.93 KMS 11/2014 Rename IPT, X, and Y in GKPLOT to ipline, xpline, 
+C                   and ypline, and move to a common block so that it 
+C                   does not depend on local variables being static 
+C                   (similar to what was done in gksmv_makedot.F).  
+C                   Increase the maximum back up to 10000.
 
 	include 'pltcom_dat.decl'
 	include 'PLTCOM.DAT'
@@ -73,29 +79,23 @@ c                  Do not make a call to GPL on "move with the pen up".
             call moveabs2(xn,yn)
         endif
 #else
-*	*jd* 1.9.90  Max was 10,000
-	integer	max
-	parameter (max=100)
-*	*jd* 1.9.90
-
-	DIMENSION X(max),Y(max)
-
-	DATA IPT/0/
+       INCLUDE 'gkplot.cmn'
+       DATA ipline/0/
 
-	IF(IP.EQ.0)THEN
-	    CALL DOIT(IPT,X,Y)
-	    IPT=1
-	ELSE
-	    IPT=IPT+1
-	    IF(IPT.GT.max)THEN
-		CALL DOIT(max,X,Y)
-		IPT=2
-		X(1)=X(max)
-		Y(1)=Y(max)
-	    ENDIF
-	ENDIF
-	X(IPT)=XN
-	Y(IPT)=YN
+       IF ( IP .EQ. 0 ) THEN
+           CALL DOIT(ipline,xpline,ypline)
+           ipline=1
+       ELSE
+           ipline=ipline+1
+           IF ( ipline .GT. maxpline ) THEN
+              CALL DOIT(maxpline,xpline,ypline)
+              ipline=2
+              xpline(1) = xpline(maxpline)
+              ypline(1) = ypline(maxpline)
+           ENDIF
+       ENDIF
+       xpline(ipline) = XN
+       ypline(ipline) = YN
 #endif
 	RETURN
 	ENTRY PPLGFLUSH
@@ -103,8 +103,8 @@ c                  Do not make a call to GPL on "move with the pen up".
         return
         end
 #else
-	CALL DOIT(IPT,X,Y)
-	IPT=0
+	CALL DOIT(ipline,xpline,ypline)
+	ipline=0
 	RETURN
 	END
 	SUBROUTINE DOIT(IPT,X,Y)
diff --git a/ppl/complot/special_sym_code.F b/ppl/complot/special_sym_code.F
new file mode 100644
index 0000000..b8844b5
--- /dev/null
+++ b/ppl/complot/special_sym_code.F
@@ -0,0 +1,278 @@
+	SUBROUTINE SPECIAL_SYM_CODE (text, decicode)
+
+C for any of a long list of text names used in html for special symbols, return
+C the decimal code. We will use this to make the UAF8 unicode for special characters
+C in the PyFerret fonts
+
+C Simplisitic implelentation - better to have the info in a file which could be 
+C updated?
+
+	CHARACTER*(*)	text
+	INTEGER		decicode
+
+C Initialize
+	decicode = -1
+
+	IF (text .EQ. 'bksp') decicode =       8
+
+C Math Greek and Symbols
+	IF (text .EQ. 'fnof') decicode =       402
+	IF (text .EQ. 'Alpha') decicode =      913
+	IF (text .EQ. 'Beta') decicode =       914
+	IF (text .EQ. 'Gamma') decicode =      915
+	IF (text .EQ. 'Delta') decicode =      916
+	IF (text .EQ. 'Epsilon') decicode =    917
+	IF (text .EQ. 'Zeta') decicode =       918
+	IF (text .EQ. 'Eta') decicode =        919
+	IF (text .EQ. 'Theta') decicode =      920
+	IF (text .EQ. 'Iota') decicode =       921
+	IF (text .EQ. 'Kappa') decicode =      922
+	IF (text .EQ. 'Lambda') decicode =     923
+	IF (text .EQ. 'Mu') decicode =         924
+	IF (text .EQ. 'Nu') decicode =         925
+	IF (text .EQ. 'Xi') decicode =         926
+	IF (text .EQ. 'Omicron') decicode =    927
+	IF (text .EQ. 'Pi') decicode =         928
+	IF (text .EQ. 'Rho') decicode =        929
+	IF (text .EQ. 'Sigma') decicode =      931
+	IF (text .EQ. 'Tau') decicode =        932
+	IF (text .EQ. 'Upsilon') decicode =    933
+	IF (text .EQ. 'Phi') decicode =        934
+	IF (text .EQ. 'Chi') decicode =        935
+	IF (text .EQ. 'Psi') decicode =        936
+	IF (text .EQ. 'Omega') decicode =      937
+	IF (text .EQ. 'alpha') decicode =      945
+	IF (text .EQ. 'beta') decicode =       946
+	IF (text .EQ. 'gamma') decicode =      947
+	IF (text .EQ. 'delta') decicode =      948
+	IF (text .EQ. 'epsilon') decicode =    949
+	IF (text .EQ. 'zeta') decicode =       950
+	IF (text .EQ. 'eta') decicode =        951
+	IF (text .EQ. 'theta') decicode =      952
+	IF (text .EQ. 'iota') decicode =       953
+	IF (text .EQ. 'kappa') decicode =      954
+	IF (text .EQ. 'lambda') decicode =     955
+	IF (text .EQ. 'mu') decicode =         956
+	IF (text .EQ. 'nu') decicode =         957
+	IF (text .EQ. 'xi') decicode =         958
+	IF (text .EQ. 'omicron') decicode =    959
+	IF (text .EQ. 'pi') decicode =         960
+	IF (text .EQ. 'rho') decicode =        961
+	IF (text .EQ. 'sigmaf') decicode =     962
+	IF (text .EQ. 'sigma') decicode =      963
+	IF (text .EQ. 'tau') decicode =        964
+	IF (text .EQ. 'upsilon') decicode =    965
+	IF (text .EQ. 'phi') decicode =        966
+	IF (text .EQ. 'chi') decicode =        967
+	IF (text .EQ. 'psi') decicode =        968
+	IF (text .EQ. 'omega') decicode =      969
+	IF (text .EQ. 'thetasym') decicode =   977
+	IF (text .EQ. 'upsih') decicode =      978
+	IF (text .EQ. 'piv') decicode =        982
+	IF (text .EQ. 'bull') decicode =      8226
+	IF (text .EQ. 'hellip') decicode =    8230
+	IF (text .EQ. 'prime') decicode =     8242
+	IF (text .EQ. 'Prime') decicode =     8243
+	IF (text .EQ. 'oline') decicode =     8254
+	IF (text .EQ. 'frasl') decicode =     8260
+	IF (text .EQ. 'weierp') decicode =    8472
+	IF (text .EQ. 'image') decicode =     8465
+	IF (text .EQ. 'real') decicode =      8476
+	IF (text .EQ. 'trade') decicode =     8482
+	IF (text .EQ. 'alefsym') decicode =   8501
+	IF (text .EQ. 'larr') decicode =      8592
+	IF (text .EQ. 'uarr') decicode =      8593
+	IF (text .EQ. 'rarr') decicode =      8594
+	IF (text .EQ. 'darr') decicode =      8595
+	IF (text .EQ. 'harr') decicode =      8596
+	IF (text .EQ. 'crarr') decicode =     8629
+	IF (text .EQ. 'lArr') decicode =      8656
+	IF (text .EQ. 'uArr') decicode =      8657
+	IF (text .EQ. 'rArr') decicode =      8658
+	IF (text .EQ. 'dArr') decicode =      8659
+	IF (text .EQ. 'hArr') decicode =      8660
+	IF (text .EQ. 'forall') decicode =    8704
+	IF (text .EQ. 'part') decicode =      8706
+	IF (text .EQ. 'exist') decicode =     8707
+	IF (text .EQ. 'empty') decicode =     8709
+	IF (text .EQ. 'nabla') decicode =     8711
+	IF (text .EQ. 'isin') decicode =      8712
+	IF (text .EQ. 'notin') decicode =     8713
+	IF (text .EQ. 'ni') decicode =        8715
+	IF (text .EQ. 'prod') decicode =      8719
+	IF (text .EQ. 'sum') decicode =       8721
+	IF (text .EQ. 'minus') decicode =     8722
+	IF (text .EQ. 'lowast') decicode =    8727
+	IF (text .EQ. 'radic') decicode =     8730
+	IF (text .EQ. 'prop') decicode =      8733
+	IF (text .EQ. 'infin') decicode =     8734
+	IF (text .EQ. 'ang') decicode =       8736
+	IF (text .EQ. 'and') decicode =       8743
+	IF (text .EQ. 'or') decicode =        8744
+	IF (text .EQ. 'cap') decicode =       8745
+	IF (text .EQ. 'cup') decicode =       8746
+	IF (text .EQ. 'int') decicode =       8747
+	IF (text .EQ. 'there4') decicode =    8756
+	IF (text .EQ. 'sim') decicode =       8764
+	IF (text .EQ. 'cong') decicode =      8773
+	IF (text .EQ. 'asymp') decicode =     8776
+	IF (text .EQ. 'ne') decicode =        8800
+	IF (text .EQ. 'equiv') decicode =     8801
+	IF (text .EQ. 'le') decicode =        8804
+	IF (text .EQ. 'ge') decicode =        8805
+	IF (text .EQ. 'sub') decicode =       8834
+	IF (text .EQ. 'sup') decicode =       8835
+	IF (text .EQ. 'nsub') decicode =      8836
+	IF (text .EQ. 'sube') decicode =      8838
+	IF (text .EQ. 'supe') decicode =      8839
+	IF (text .EQ. 'oplus') decicode =     8853
+	IF (text .EQ. 'otimes') decicode =    8855
+	IF (text .EQ. 'perp') decicode =      8869
+	IF (text .EQ. 'sdot') decicode =      8901
+	IF (text .EQ. 'lceil') decicode =     8968
+	IF (text .EQ. 'rceil') decicode =     8969
+	IF (text .EQ. 'lfloor') decicode =    8970
+	IF (text .EQ. 'rfloor') decicode =    8971
+	IF (text .EQ. 'lang') decicode =      9001
+	IF (text .EQ. 'rang') decicode =      9002
+	IF (text .EQ. 'loz') decicode =       9674
+	IF (text .EQ. 'spades') decicode =    9824
+	IF (text .EQ. 'clubs') decicode =     9827
+	IF (text .EQ. 'hearts') decicode =    9829
+	IF (text .EQ. 'diams') decicode =     9830
+
+C Special characters
+	IF (text .EQ. 'nbsp') decicode =    160
+	IF (text .EQ. 'iexcl') decicode =   161
+	IF (text .EQ. 'cent') decicode =    162
+	IF (text .EQ. 'pound') decicode =   163
+	IF (text .EQ. 'curren') decicode =  164
+	IF (text .EQ. 'yen') decicode =     165
+	IF (text .EQ. 'brvbar') decicode =  166
+	IF (text .EQ. 'sect') decicode =    167
+	IF (text .EQ. 'uml') decicode =     168
+	IF (text .EQ. 'copy') decicode =    169
+	IF (text .EQ. 'ordf') decicode =    170
+	IF (text .EQ. 'laquo') decicode =   171
+	IF (text .EQ. 'not') decicode =     172
+	IF (text .EQ. 'shy') decicode =     173
+	IF (text .EQ. 'reg') decicode =     174
+	IF (text .EQ. 'macr') decicode =    175
+	IF (text .EQ. 'deg') decicode =     176
+	IF (text .EQ. 'plusmn') decicode =  177
+	IF (text .EQ. 'sup2') decicode =    178
+	IF (text .EQ. 'sup3') decicode =    179
+	IF (text .EQ. 'acute') decicode =   180
+	IF (text .EQ. 'micro') decicode =   181
+	IF (text .EQ. 'para') decicode =    182
+	IF (text .EQ. 'middot') decicode =  183
+	IF (text .EQ. 'cedil') decicode =   184
+	IF (text .EQ. 'sup1') decicode =    185
+	IF (text .EQ. 'ordm') decicode =    186
+	IF (text .EQ. 'raquo') decicode =   187
+	IF (text .EQ. 'frac14') decicode =  188
+	IF (text .EQ. 'frac12') decicode =  189
+	IF (text .EQ. 'frac34') decicode =  190
+	IF (text .EQ. 'iquest') decicode =  191
+	IF (text .EQ. 'Agrave') decicode =  192
+	IF (text .EQ. 'Aacute') decicode =  193
+	IF (text .EQ. 'Acirc') decicode =   194
+	IF (text .EQ. 'Atilde') decicode =  195
+	IF (text .EQ. 'Auml') decicode =    196
+	IF (text .EQ. 'Aring') decicode =   197
+	IF (text .EQ. 'AElig') decicode =   198
+	IF (text .EQ. 'Ccedil') decicode =  199
+	IF (text .EQ. 'Egrave') decicode =  200
+	IF (text .EQ. 'Eacute') decicode =  201
+	IF (text .EQ. 'Ecirc') decicode =   202
+	IF (text .EQ. 'Euml') decicode =    203
+	IF (text .EQ. 'Igrave') decicode =  204
+	IF (text .EQ. 'Iacute') decicode =  205
+	IF (text .EQ. 'Icirc') decicode =   206
+	IF (text .EQ. 'Iuml') decicode =    207
+	IF (text .EQ. 'ETH') decicode =     208
+	IF (text .EQ. 'Ntilde') decicode =  209
+	IF (text .EQ. 'Ograve') decicode =  210
+	IF (text .EQ. 'Oacute') decicode =  211
+	IF (text .EQ. 'Ocirc') decicode =   212
+	IF (text .EQ. 'Otilde') decicode =  213
+	IF (text .EQ. 'Ouml') decicode =    214
+	IF (text .EQ. 'times') decicode =   215
+	IF (text .EQ. 'Oslash') decicode =  216
+	IF (text .EQ. 'Ugrave') decicode =  217
+	IF (text .EQ. 'Uacute') decicode =  218
+	IF (text .EQ. 'Ucirc') decicode =   219
+	IF (text .EQ. 'Uuml') decicode =    220
+	IF (text .EQ. 'Yacute') decicode =  221
+	IF (text .EQ. 'THORN') decicode =   222
+	IF (text .EQ. 'szlig') decicode =   223
+	IF (text .EQ. 'agrave') decicode =  224
+	IF (text .EQ. 'aacute') decicode =  225
+	IF (text .EQ. 'acirc') decicode =   226
+	IF (text .EQ. 'atilde') decicode =  227
+	IF (text .EQ. 'auml') decicode =    228
+	IF (text .EQ. 'aring') decicode =   229
+	IF (text .EQ. 'aelig') decicode =   230
+	IF (text .EQ. 'ccedil') decicode =  231
+	IF (text .EQ. 'egrave') decicode =  232
+	IF (text .EQ. 'eacute') decicode =  233
+	IF (text .EQ. 'ecirc') decicode =   234
+	IF (text .EQ. 'euml') decicode =    235
+	IF (text .EQ. 'igrave') decicode =  236
+	IF (text .EQ. 'iacute') decicode =  237
+	IF (text .EQ. 'icirc') decicode =   238
+	IF (text .EQ. 'iuml') decicode =    239
+	IF (text .EQ. 'eth') decicode =     240
+	IF (text .EQ. 'ntilde') decicode =  241
+	IF (text .EQ. 'ograve') decicode =  242
+	IF (text .EQ. 'oacute') decicode =  243
+	IF (text .EQ. 'ocirc') decicode =   244
+	IF (text .EQ. 'otilde') decicode =  245
+	IF (text .EQ. 'ouml') decicode =    246
+	IF (text .EQ. 'divide') decicode =  247
+	IF (text .EQ. 'oslash') decicode =  248
+	IF (text .EQ. 'ugrave') decicode =  249
+	IF (text .EQ. 'uacute') decicode =  250
+	IF (text .EQ. 'ucirc') decicode =   251
+	IF (text .EQ. 'uuml') decicode =    252
+	IF (text .EQ. 'yacute') decicode =  253
+	IF (text .EQ. 'thorn') decicode =   254
+	IF (text .EQ. 'yuml') decicode =    255
+
+C markup-significant and internationalization
+	IF (text .EQ. 'quot') decicode =      34
+	IF (text .EQ. 'amp') decicode =       38
+	IF (text .EQ. 'lt') decicode =        60
+	IF (text .EQ. 'gt') decicode =        62
+	IF (text .EQ. 'OElig') decicode =    338
+	IF (text .EQ. 'oelig') decicode =    339
+	IF (text .EQ. 'Scaron') decicode =   352
+	IF (text .EQ. 'scaron') decicode =   353
+	IF (text .EQ. 'Yuml') decicode =     376
+	IF (text .EQ. 'circ') decicode =     710
+	IF (text .EQ. 'tilde') decicode =    732
+	IF (text .EQ. 'ensp') decicode =    8194
+	IF (text .EQ. 'emsp') decicode =    8195
+	IF (text .EQ. 'thinsp') decicode =  8201
+	IF (text .EQ. 'zwnj') decicode =    8204
+	IF (text .EQ. 'zwj') decicode =     8205
+	IF (text .EQ. 'lrm') decicode =     8206
+	IF (text .EQ. 'rlm') decicode =     8207
+	IF (text .EQ. 'ndash') decicode =   8211
+	IF (text .EQ. 'mdash') decicode =   8212
+	IF (text .EQ. 'lsquo') decicode =   8216
+	IF (text .EQ. 'rsquo') decicode =   8217
+	IF (text .EQ. 'sbquo') decicode =   8218
+	IF (text .EQ. 'ldquo') decicode =   8220
+	IF (text .EQ. 'rdquo') decicode =   8221
+	IF (text .EQ. 'bdquo') decicode =   8222
+	IF (text .EQ. 'dagger') decicode =  8224
+	IF (text .EQ. 'Dagger') decicode =  8225
+	IF (text .EQ. 'permil') decicode =  8240
+	IF (text .EQ. 'lsaquo') decicode =  8249
+	IF (text .EQ. 'rsaquo') decicode =  8250
+	IF (text .EQ. 'euro') decicode =    8364
+
+	RETURN
+	END
+
diff --git a/ppl/complot/symbel.F b/ppl/complot/symbel.F
index 933186a..d918899 100644
--- a/ppl/complot/symbel.F
+++ b/ppl/complot/symbel.F
@@ -1,17 +1,4 @@
  	SUBROUTINE SYMBEL(X,Y,DEGRES,HEIGHT,NCHAR,STRING)
-C** 
-C**    @(#)symbel.tplate.F	1.1    3/10/88
-C**
-C**
-C***********************************************************************
-C**
-C**                 PLOT+ Scientific Graphics System
-C**
-C***********************************************************************
-C**
-C**
-C       Mod *JD* 3.19.91 for unix -- use environment variable PLOTFONTS
-C       *jd* 7.92 variable IF renamed to KIF for MAC
 *
 *
 *  This software was developed by the Thermal Modeling and Analysis
@@ -46,32 +33,8 @@ C       *jd* 7.92 variable IF renamed to KIF for MAC
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-*
-*       *jd* 11.94 
-*       Modification uses TM_NUMBER to determine if "value" is a number rather
-*       than the ERR= branch of a READ which fails on AIX/xlf
-
-*	Mod *jd* 11.30.95 to fix ragged symbols to to precision loss
-*
-*       Mod *kob* 1.28.97 - Reorganization of the original code to remove
-*			    an illegal (f90) fortran forward reference into
-*			    the middle of a do loop.  This change was 
-*		            necessary to get this routine to compile on linux
-*			    and also to fix a plotting bug with the new 
-*			    solaris version (v4.0) of f77.  This change has 
-*			    occurred in the middle of releasing v4.45 of 
-*		  	    Ferret to the world.  Aix, Sgi, HP, OSF and SunOs
-*			    have already been released, and this change is
-*		            not a part of them.  This change is needed
-*			    to release linux and more importantly solaris.
-C *kob* 04/07/96 passed in character strings had to be declared 
-C                with "*(*)" for the linux port 
-C *ACM* 6/02   When there is a period or decimal point in the text, make
-C              a GKS dot there too, so it'll show up in small labels.
-C *acm* 7/02   Take out the MARKER calls that made dots. This caused trouble 
-C              when making encapsulated postscript from postscript.  
-C *acm* 10/14  Ticket 2203: on the 64-bit machines, the \\ for backspace
-C              should be \ .
+* V6.95 *acm* 3/15 Changes for PyFerret fonts. 
+*                  SYMBEL_HERSHEY does Hershey fonts.
 C
 C	CALL SYMBEL(X,Y,DEGRES,HEIGHT,NCHAR,STRING)
 C
@@ -88,525 +51,358 @@ C        NCHAR  - NUMBER OF CHARACTERS TO BE DRAWN.
 C        STRING - ARRAY CONTAINING THE DISPLAY CODES OF THE
 C                 CHARACTERS TO BE DRAWN.
 C
-	DIMENSION SX(12000),SY(12000),ASCII(127,4),BASE(4),RAST(4)
-	INTEGER	  nsxsy
-        PARAMETER ( nsxsy = 12000 )
-	DIMENSION DTYPE(35),DLEN(35),IOFF(4),IFLEN(4),ITYPE(4)
-C
-	LOGICAL SYMROT,READIR,DOPLOT,COLRF
-c	CHARACTER PLTFIL*80
-	CHARACTER ICOM*2,ICHR*1,STRING*(*),DNME(35)*2,DNUM(35)*2
-	CHARACTER DNAME(35)*80,KIF(4)*2,IFN(4)*2
-	CHARACTER*1 KSUB,KSUPER,KBKSP,KCALL,PENS(16)
-
-        REAL XBASE, YBASE
-        INTEGER IPT
-#ifdef unix
-	INTEGER*2 SX,SY
-
-        integer       dirlen
-        character*255 fontdir
-#else
-	byte sx,sy
-#endif
-	INTEGER*2 ICNT,IBASE,IRAST
-*added for linux port
-	INTEGER*4 IBASE4,IRAST4
-	INTEGER*2 ASCII
-	INTEGER*2 DTYPE,DLEN,IOFF,IFLEN,ITYPE
-	INTEGER COLOLD
-	LOGICAL ASCFNT
-	CHARACTER*265 err_msg
-	INTEGER status
 
-C
-C
-	INCLUDE 'PLTCOM.DAT'
-        INCLUDE 'errmsg.parm'
+* for Cairo fonts. Other font arguments are stored in common pyfonts.cmn:
 
-C
-	DATA DNUM,DNME/35*'@@',35*'@@'/
-#ifdef unix
-	DATA KSUB,KSUPER,KBKSP,KCALL/'_','^','\\','@'/
-#else
-	DATA KSUB,KSUPER,KBKSP,KCALL/'_','^','\','@'/
-#endif
-	DATA KIF,IFN/'SR','SG','@@','@@','01','12','@@','@@'/
-	DATA PENS/'1','2','3','4','5','6','7','8','9','A',
-     *	'B','C','D','E','F','G'/
-	DATA READIR/.FALSE./
+* Calling arguments
+	CHARACTER	STRING*(*)
+	REAL		X,Y,DEGRES,HEIGHT
+	INTEGER		NCHAR
 
-        LOGICAL TM_NUMBER                ! ** TMAP mod 11/94 **
+* Local declarations
+	LOGICAL		TM_HAS_STRING
+	INTEGER		STR_SAME, TM_LENSTR, STR_UPCASE
+	REAL		fontsiz, rotate, stx, sty, swid, shgt, xu, yu
+     .			stx_pos, sty_pos, symcos, symsin
+	INTEGER		ia, slen, ic, sub, sup, seb, sep, ss, se, flen, glen
+	CHARACTER	buff1*512, buff2*512, buffs*512, upbuff*512
+	INTEGER		codepoint, utf8strlen
+	CHARACTER	utf8str*4, nstring*8, fontname*64, codeword*10
+	REAL*4		red, grn, blu, fac
+	INTEGER		igr, bold, italic, isiz, inote
 
-* Mod to specify external references for SCALE and RANGE * Linux *kob* 1.97
-        external scale, size
+	CHARACTER*265 err_msg
+	CHARACTER*512 buff
+	INTEGER status
 
-* Initialize 
+	INCLUDE 'PLTCOM.DAT'
+	INCLUDE 'pyfonts.cmn'
+        INCLUDE 'errmsg.parm'
 
-        ICHR = ' '
+* If font is "Hershey", continue with old-school PPLUS Hershey fonts.
 
-C
-C	DEFINE THE SCALE FACTOR TO BE THE AMOUNT OF MAGNIFICATION
-C	REQUIRED TO CONVERT THE CHARACTERS IN THE CHARACTER DEFI-
-C	NITION TABLE TO THE SIZE SPECIFIED BY THE USER.
-C
-        CALL INQSCL(XSCL,YSCL,ABIAS,BBIAS,XLO,YLO) ! Bug fix? 11.95
-        CALL SCALE(XSCL,YSCL,ABIAS,BBIAS,0.,0.)
-
-	COLRF=.FALSE.
-C	IF(.NOT.READIR)GOTO 2020
-
-* kob 1/97 - old 2020 code region now contained w/in if-then below.
-	IF(.NOT.READIR) THEN
-#ifdef unix
-C *JD* Mod below fix for unix  -- use environment variable 3.19.91	
-	   call getenv ('PLOTFONTS',fontdir)
-       	   dirlen = lnblk (fontdir,255)
-
-C *kob* 1/02 - cygwin 1.3.x requires "\" for unix directory accesses
-#ifdef __CYGWIN__
-	   OPEN(LUSY,FILE=fontdir(:dirlen)//'\fondat.dat',
-     *	        STATUS='OLD')
-#else
-	   OPEN(LUSY,FILE=fontdir(:dirlen)//'/fondat.dat',
-     *	        STATUS='OLD',ERR=5000)
-#endif
-
-#else
-	   open(lusy,file='plotfonts:fondat.dat',readonly,
-     *	       status='old',err=5000)
-#endif
-C
-C	FILE EXISTS
-C
-	   READ(LUSY,983,END=1009)(DNUM(IJ),DNME(IJ),DTYPE(IJ),
-     *	   DLEN(IJ),DNAME(IJ),IJ=1,35)
-#ifdef unix
-C Mod here from A to A9 for read of DNAME *JD* 3.8.91
-C983	   FORMAT(1X,2A2,I2,I5,A)
-983	   FORMAT(1X,2A2,I2,I5,A9)
-#else
-983	   format(1x,2a2,i2,i5,a30)
-#endif
-1009	   NFNT=IJ-1
-    	   CLOSE(LUSY)
-C
-C	READ DEFAULT FONT
-C
-	   IOFF(1)=0
-	   II=1
-	   ID=1
-	   READIR = .TRUE.			
-	   call SETFONT(fontdir,dirlen,dname,ifont,ii,kif,dnme,
-     .               ifn,dnum,itype,dtype,iflen, dlen,ioff,
-     .               icnt,ascii,base,rast,iadd,
-     .		     sx,sy,id)
+	If (.NOT.pyfont) THEN
+	   CALL SYMBEL_HERSHEY(X,Y,DEGRES,HEIGHT,NCHAR,STRING)
+	   GOTO 3000
 	ENDIF
 
-2000	SYMSC = HEIGHT * FACTOR / 21.0
-C
-C	ROTATE THE CHARACTER STRING.
-C
-	IF(DEGRES .NE. 0.0)GO TO 10
-C
-C	RESET THE CHARACTER ROTATION FLAG.
-C
-	SYMROT = .FALSE.
-	GO TO 20
-C
-C	SET THE CHARACTER ROTATION FLAG.
-C
-10	SYMROT = .TRUE.
-C
-C	CONVERT THE ROTATION TO RADIANS.
-C
-	TEMP = 0.01745329251994 * DEGRES
-C
-C	COMPUTE THE SINE AND COSINE.
-C
-	SYMSIN = SIN(TEMP)
-	SYMCOS = COS(TEMP)
-C
-C	SET VECTORS MODE.
-C
-20	PMODE = VECTOR
-C
-C	START AT THE LOWER LEFT-HAND CORNER OF THE FIRST CHARACTER.
-C
-	IF(NCHAR .EQ. 0) GOTO 300 	! Mod 11.30, was RETURN
-	XTEMP = (X - XLO) * XSCALE	! was X * XSCALE
-	YTEMP = (Y - YLO) * YSCALE	! was Y * YSCALE
-	PENF = .FALSE.
-	DOPLOT=NCHAR.GT.0
-	IF(DOPLOT)CALL XYZPLT
-C
-C	INITIALIZE CONTROL VARIABLES.
-C
-	XORG = XTEMP
-	YORG = YTEMP
-	XREF = 0.0
-	YREF = 0.0
-	CHARSC = 1.0
-	WIDTH = 0.0
-	SLANT = 0.0
-	IFONT = 1
-	ASCFNT=ITYPE(1).EQ.-1
-	SYMWID=0.0
-	NCH=IABS(NCHAR)
-C
-C	DRAW THE CHARACTERS IN THE STRING ONE BY ONE.
-C
-	JJ=0
-	DO 170 I=1,NCH
-	JJ=JJ+1
-	IF(JJ.GT.NCH)GOTO 180
-	ICHR = STRING(JJ:JJ)
-C
-C	CHECK FOR A CONTROL CHARACTER.
-C
-	IF(ICHAR(ICHR) .EQ.27)THEN
-	    ASCFNT=.FALSE.
-	    GOTO 170
-	ENDIF
-	IF(ICHAR(ICHR) .EQ. 0)GOTO 180
-#ifdef unix
-	IF(.NOT.ASCFNT.AND.(ICHR.EQ.'@'.OR.
-     *		(ICHR.GE.'\\'.AND.ICHR.LE.'_')))GOTO 80
-#else
-	IF(.NOT.ASCFNT.AND.(ICHR.EQ.'@'.OR.
-     *		(ICHR.GE.'\'.AND.ICHR.LE.'_')))GOTO 80
-#endif
-
-* Some compliers store '\\' as a single character, others see it
-* as '\'.  
-
-	IF (KBKSP.NE.'\\') THEN
-	   IF(.NOT.ASCFNT.AND.(ICHR.EQ.'@'.OR.
-     *		(ICHR.GE.'\'.AND.ICHR.LE.'_')))GOTO 80
-	ENDIF 
-C
-C	CALCULATE POINTER
-C
-	IF(ITYPE(IFONT).LE.0)THEN
-C	    CHARACTER FONT
-	    ICODE = ASCII(ICHAR(ICHR),IFONT)
-	ELSE
-C	    SYMBOL FONT
-	    ICOM = STRING(JJ:JJ+1)
-	    JJ=JJ+1
-	    READ(ICOM,999,IOSTAT=ISTAT)II
-999	    FORMAT(I2)
-	    IF(ISTAT.EQ.0)THEN
-	    	ICODE = ASCII(II,IFONT)
-	    ELSE
-	        ICODE = 1
-	    ENDIF
-	ENDIF
-	IPOINT = ICODE+IOFF(IFONT)
-	IPT = 0
-
-	XMN=SX(IPOINT)
-	XMX=SY(IPOINT)
-	IF(XMN.GT.50.)XMN=XMN-100.
-	IF(XMX.GT.50.)XMX=XMX-100.
-	WIDTH=(XMX-XMN)*CHARSC*RAST(IFONT)
-	SYMWID=SYMWID+WIDTH
-	IF(.NOT.DOPLOT)GOTO 70
-	IPOINT=IPOINT+1
-	IF (IPOINT .GT. NSXSY) GOTO 70
-	PENF = .FALSE.
-C
-C	DRAW THE CHARACTER
-C
- 30	CONTINUE
-	IX=SX(IPOINT)
-	IY=SY(IPOINT)
-	IF(IX.GT.50)IX=IX-100
-	IF(IY.GT.50)IY=IY-100
-	IY=-IY
-	IPOINT=IPOINT+1
-	IF (IPOINT .GT. NSXSY) GOTO 70
-        IPT = IPT + 1
-C
-C	CHECK FOR A CONTROL BYTE.
-C
-	IF(IX .EQ. 50)GO TO 60
-C
-C	CALCULATE THE NEW PEN COORDINATES RELATIVE TO THE LOWER
-C	LEFT-HAND CORNER OF THE FIRST CHARACTER.
-C
-	XY=FLOAT(IY)-BASE(IFONT)
-	XX=FLOAT(IX)-XMN+XY*SLANT
-	XSYM =XREF+XX*CHARSC*RAST(IFONT)
-	YSYM =YREF+XY*CHARSC*RAST(IFONT)
-C
-C	SCALE AND ROTATE THE NEW COORDINATES.
-C
-	IF(SYMROT)GO TO 40
-
-	XTEMP = XSYM * SYMSC + XORG
-	YTEMP = YSYM * SYMSC + YORG
-	GO TO 50
-40	XTEMP = (XSYM * SYMCOS - YSYM * SYMSIN) * SYMSC + XORG
-	YTEMP = (XSYM * SYMSIN + YSYM * SYMCOS) * SYMSC + YORG
-50	CONTINUE
-
-* for decimal points, find the average x and Y location; will
-* plot a point at this location.
-C  xxx  
-C  xxx  Dont do this: it causes trouble with encapsulated postscript.
-C  xxx  and anyway, it was to correct trouble with the postscript translation
-C  xxx  for one printer...
-C  xxx
-C  xxx        IF (ICHR .EQ. '.') THEN
-C  xxx           IF (IPT .EQ. 1) THEN
-C  xxx             XBASE = 0.
-C  xxx             YBASE = 0.
-C  xxx           ENDIF
-C  xxx           XBASE = XBASE + XTEMP
-C  xxx           YBASE = YBASE + YTEMP
-C  xxx        ENDIF
+	IF (NCHAR .EQ. 0) RETURN
+	rotate = degres
+	IF (degres .NE. 0) rotate = -1.* degres
 
-C
-C	MOVE THE PEN TO THE NEW COORDINATES.
-C
+	slen = TM_LENSTR(string)
+	buff = string(:slen)
 
-        CALL XYZPLT
+* Specific font settings for the text group (if we're doing the logo, tic-marks, etc.)
 
-	PENF = .TRUE.
-	GO TO 30
-C
-C	CHECK FOR THE END OF THE CHARACTER.
-C
-60	IF(IY .EQ. -50)GO TO 70
-	PENF = .FALSE.
-	GO TO 30
-
-70	CONTINUE
-
-C  End of character
-C xxx If it was a decimal point, draw a tiny dot at its center.  
-C  xxx
-C  xxx        IF (ICHR .EQ. '.' .AND. IPT .GT. 1) THEN
-C  xxx           XBASE = XBASE/ FLOAT(IPT-1)
-C  xxx           YBASE = YBASE/ FLOAT(IPT-1)
-C  xxx           XBASE = XBASE/ XSCALE
-C  xxx           YBASE = YBASE/ YSCALE
-C  xxx           call marker (1)              ! could call with 7 for bigger dot.
-C  xxx           CALL PLOT(XBASE, YBASE, 0, 0)
-C  xxx           CALL MARK(99)
-C  xxx           call marker (1)
-C  xxx        ENDIF
-C
-C	ADJUST THE REFERENCE POSITION TO TAKE INTO ACCOUNT THE
-C	CHARACTER THAT WAS JUST DRAWN.
-C
+	igr = igroup
+	CALL GET_PYFONT_SETTINGS(igr, fontname, red, grn, blu, 
+     .			italic, bold, isiz)
 
-        XREF = XREF + WIDTH
-	IF(CHARSC .EQ. 1.0)GO TO 169
-C	XREF = XREF - 16.*(1.-CHARSC)*RAST(IFONT)
-	YREF = 0.0
-	CHARSC = 1.0
-	GO TO 169
-C
-C	PROCESS CONTROL CHARACTERS.
-C
-80	IF(ICHR .NE. KSUB)GO TO 150
-	CHARSC = 0.75
-C	XREF = XREF + 16.*(1.-CHARSC)*RAST(IFONT)
-	YREF=-11.*CHARSC*RAST(IFONT)
-	GO TO 169
-150	IF(ICHR .NE. KSUPER)GO TO 160
-	CHARSC = 0.75
-C	XREF = XREF + 16.*(1.-CHARSC)*RAST(IFONT)
-	YREF=21.-11.*CHARSC*RAST(IFONT)
-	GO TO 169
-160	IF(ICHR .NE. KBKSP)GO TO 310
-	SYMWID=SYMWID-WIDTH
-	XREF = XREF - WIDTH
-	WIDTH = 0.0
-	GOTO 169
-310	IF(ICHR.NE.KCALL)GOTO 169
-C
-C	UNPACK COMMAND
-C
-	ICOM = STRING(JJ+1:JJ+2)
-	JJ=JJ+2
-C
-C	PROCESS COMMAND
-C
-	CALL UPPER(ICOM,2)
-	IF(ICOM.EQ.'CL')THEN
-C
-C	    CLEAR ALL FONTS FROM THE BUFFERS
-C
-	    DO 1002 II=1,4
-	    IOFF(II)=12000
-	    IFLEN(II)=0
-	    KIF(II)='@@'
-	    IFN(II)='@@'
-	    ITYPE(II)=0
-	    BASE(II)=-9.
-1002	    RAST(II)=1.
-	    IOFF(1)=0
-	    GOTO 169
-        ELSE IF(ICOM(1:1).EQ.'C')THEN
-C
-C           LOOK FOR EXTENDED COLOR COMMAND OF THE FORM
-C           @Cnnn WHERE nnn IS A 3 DIGIT NUMBER
-C
-            IF(.NOT.COLRF)COLOLD=COLOUR
-            COLRF=.TRUE.
-C
-C           SEE IF THE FIRST CHARACTER IS A NUMBER
-C
-            DO 2050 K=1,9
-                IF(ICOM(2:2).EQ.PENS(K))GOTO 2051
-2050        CONTINUE
-C
-C           NO NUMBER FOUND - MUST BE A FONT CHANGE COMMAND
-C
-            IF(ICOM(2:2).NE.'0')GOTO 2010
-2051        JJ=JJ+2
-C
-C           GET THE 3 DIGIT NUMBER
-C
-#ifdef AIX_XLF
-            IF ( .NOT.TM_NUMBER(STRING(JJ-2:JJ)) ) GOTO 169  
-!** TMAP mod 11/94 **
-#endif
-            READ(STRING(JJ-2:JJ),'(I3)',ERR=169)K
-            IF(.NOT.DOPLOT)GOTO 169
-            CALL COLOR(K)
-	ELSE IF(ICOM(1:1).EQ.'P')THEN
-C
-C	    CHANGE PEN/COLOR
-C
-	    IF(.NOT.DOPLOT)GOTO 169
-	    IF(.NOT.COLRF)COLOLD=COLOUR
-	    COLRF=.TRUE.
-	    DO 2030 K=1,16
-	    IF(ICOM(2:2).EQ.PENS(K))GOTO 2031
-2030	    CONTINUE
-	    IF(ICOM(2:2).NE.'0')GOTO 2010
-	    K=1
-2031	    CALL COLOR(K)
-	    GOTO 169
-	ELSE IF(ICOM(1:1).EQ.'Z')THEN
-	    DO 2040 K=1,16
-	    IF(ICOM(2:2).EQ.PENS(K))GOTO 2041
-2040	    CONTINUE
-	    IF(ICOM(2:2).NE.'0')GOTO 2010
-	    K=0
-2041	    SLANT=SIN(K*0.08726646)
-	    GOTO 169
-	ENDIF
-C	SEARCH FOR FONT BY NAME THEN BY NUMBER
-2010	DO 1003 K=1,4
-	IF(ICOM.EQ.KIF(K).OR.ICOM.EQ.IFN(K))GOTO 302
-1003	CONTINUE
-C	NOT FOUND SEARCH MAIN DIRECTORY
-	DO 1004 ID=1,NFNT
-	IF(ICOM.EQ.DNME(ID).OR.ICOM.EQ.DNUM(ID))GOTO 1001
-1004	CONTINUE
-C	FONT NOT FOUND USE LAST FONT
-	GOTO 169
-1001	ILEN=DLEN(ID)
-C
-C	FIND WHERE FONT WILL FIT
-C
-	DO 1005 II=4,1,-1
-	IF(ILEN+IOFF(II).LE.12000) THEN
-* *kob* 1/97 setfont call takes place of branch to old 1010
-	    call SETFONT(fontdir,dirlen,dname,ifont,ii,kif,dnme,
-     .               ifn,dnum,itype,dtype,iflen, dlen,ioff,
-     .               icnt,ascii,base,rast,iadd,
-     .		     sx,sy,id)
-	    goto 169
+C Set font size in from the height 
+        fontsiz = height
+
+	IF (isiz .NE. 0) THEN
+	   fac = FLOAT(ABS(isiz))
+	   fac = MIN(4., fac)
+	   if (isiz .LT. 0) fontsiz = fontsiz* (1.-fac*0.1)
+	   if (isiz .GT. 0) fontsiz = fontsiz* (1.+fac*0.1)
+	   fac = (1.-fac*0.2)
+	   fac = (1.+fac*0.2)
 	ENDIF
-1005	CONTINUE
-C
-C	ERROR IF NO ROOM ANYWHERE!
-C
-	GOTO 169
-c1006	IF(.NOT.NEWFIL)THEN
-c	    INQUIRE(UNIT=LUHP,NAME=PLTFIL)
-c	    CLOSE(LUHP)
-c	ENDIF
-
-
-
-c	IF(.NOT.NEWFIL)THEN
-c	    IF(PTYPE.EQ.0 .OR. PTYPE.EQ.2 .OR. PTYPE.EQ.4)THEN
-c		OPEN(LUHP,FILE=PLTFIL,FORM='UNFORMATTED',STATUS='OLD',
-c     *		ACCESS='APPEND')
-c	    ELSE
-c		OPEN(LUHP,FILE=PLTFIL,STATUS='OLD',ACCESS='APPEND')
-c	    ENDIF
-c	ENDIF
-C
-C	DONE
-C
-C	IF(READIR)GOTO 169
-C	READIR=.TRUE.
-C	GOTO 2000
-C
-C	READ DIRECTORY
-C
 
-302	IFONT=K
-169	ASCFNT=ITYPE(IFONT).EQ.-1
-170	CONTINUE
-180	IF(.NOT.DOPLOT)THEN
-	    X=SYMWID*HEIGHT/21.
-	    GOTO 300 ! Mod 11.30, was RETURN
-	END IF
-C
-C	SCALE AND ROTATE THE FINAL COORDINATES.
-C
-	IF(SYMROT)GO TO 190
-	XTEMP = XREF * SYMSC + XORG
-	YTEMP = YORG
-	GO TO 200
-190	XTEMP = XREF * SYMCOS * SYMSC + XORG
-	YTEMP = XREF * SYMSIN * SYMSC + YORG
-C
-C	PLOT TO THE END OF THE CHARACTER STRING.
-C
-200	PENF = .FALSE.
-	CALL XYZPLT
-C
-C	RESET COLOR
-C
-	IF(COLRF.AND.(COLOLD.NE.COLOUR))CALL COLOR(COLOLD)
-300     CALL SCALE(XSCL,YSCL,ABIAS,BBIAS,XLO,YLO) ! bug fix(?) 11.95
+C Ignore any codes for Ferret-Hershey style Pen and Font changes 
+
+	   slen = TM_LENSTR(string)
+	   buff = string(:ABS(slen))
+
+	   ia = INDEX (buff,'@')
+	   inote = 0
+
+	   DO WHILE (ia .GT. 0)
+	      IF (NCHAR.GT.0) inote = 1
+	      IF (ia .EQ. 1) THEN
+	         buff = buff(ia+3:slen)
+	      ELSE
+	         buff1 = buff(1:ia-1)
+	         buff = buff1(1:ia-1)//buff(ia+3:slen)
+	      ENDIF
+	      
+	      slen = TM_LENSTR(buff)
+	      ia = INDEX (buff,'@')
+	   ENDDO
+	   IF (inote .GT. 0) CALL WARN 
+     .		('Non-Hershey fonts: ignoring Hershey pen or font codes') 
+
+C The HTML would be &#nnn;  or &word; Because semicolon is used in Ferret, 
+C look for <#nnn>  an HTML decimal code. e.g. <#916> is uppercase Delta
+C or <& to start a word,  e.g. <&deg> for the degree sign.
+
+	ss = INDEX (buff,'<#') + INDEX (buff,'<&')
+	DO WHILE  (ss .GT. 0)
+	   ia = INDEX (buff,'<#')
+	   ic = INDEX (buff,'>')
+	
+	   IF (ia.GT.0 .AND. ic.GT.ia+2) THEN
+	      ic = ic - 1
+	      nstring = buff(ia+2:ic)
+	      READ (nstring, *), codepoint
+
+	      CALL CREATE_UTF8_STR(codepoint, utf8str, utf8strlen)
+	      ic = ic+2
+	      buff1 = buff(:ia-1)//utf8str(1:utf8strlen)//buff(ic:slen)
+	      buff = buff1
+	      slen = TM_LENSTR(buff)
+	   ENDIF
+
+C Is it a word, such as <&deg> ? If so, look up its decimal code
+
+	   ia = INDEX (buff,'<&')
+	   ic = INDEX (buff(ia:),'>') + ia-1
+	
+	   IF (ia.GT.0 .AND. ic.GT.ia+2) THEN
+	      ic = ic - 1
+	      nstring = buff(ia+2:ic)
+	      READ (nstring, *), codeword
+	      CALL SPECIAL_SYM_CODE (codeword, codepoint)
+	      IF (codepoint .GT. 0) THEN  ! -1 means not found. For now, just leave that bad spec in.
+	         CALL CREATE_UTF8_STR(codepoint, utf8str, utf8strlen)
+	         ic = ic+2
+	         buff1 = buff(:ia-1)//utf8str(1:utf8strlen)//buff(ic:slen)
+	         buff = buff1
+	         slen = TM_LENSTR(buff)
+	      ENDIF
+	   ENDIF
+	   ss = INDEX (buff,'<#') + INDEX (buff,'<&')
+
+	ENDDO
+
+C Note any codes for Ferret-Hershey style Pen and Font changes 
+
+	ia = INDEX(buff,'@')
+	IF (ia .GT. 0) CALL WARN ('Non-Hershey fonts: not interpreting @pen and @font codes')
+
+C Look for subscripts and superscript tags. 
+
+	ia =  STR_UPCASE (upbuff, buff)
+	sub = INDEX(upbuff, '<SUB>')
+	sup = INDEX(upbuff, '<SUP>')
+	seb = INDEX(upbuff,'</SUB>')
+	sep = INDEX(upbuff,'</SUP>')
+	IF (sub.GT.1 .AND. seb.EQ.0) GOTO 3300
+	IF (sub.GT.1 .AND. seb.LT.sub) GOTO 3300
+	IF (sup.GT.1 .AND. sep.EQ.0) GOTO 3300
+	IF (sup.GT.1 .AND. sep.LT.sup) GOTO 3300
+
+	IF  (sub.GT.0 .AND. sup.GT.0) THEN
+	   ss = MIN(sub,sup)
+	   IF (sub.LT.sup .AND. seb.GT.sup) GOTO 3300
+	   IF (sub.LT.sup .AND. seb.GT.sep) GOTO 3300
+	   IF (sup.LT.sub .AND. sep.GT.sub) GOTO 3300
+	   IF (sup.LT.sub .AND. sep.GT.seb) GOTO 3300
+	ELSE
+	   ss = MAX(sub,sup)
+           ENDIF
+
+	buff1 = ''  ! Full-size portion of string
+	buffs = ''  ! smaller sub- or super-script portion of string
+	flen = 0
+	glen = 0
+	buff2 = buff
+
+C This section returns the string length from swid
+
+	IF (NCHAR .LE. 0) THEN
+
+	   DO WHILE (ss.GT.0)
+	      buff1 = buff1(:flen)//buff2(1:ss-1)
+		 flen = ss-1
+		 buff2 = buff2(ss+5:)
+		 ia =  STR_UPCASE (upbuff, buff2)
+		 se = INDEX(upbuff, '</SU')
+	      buffs = buffs(:glen)//buff2(:se-1)
+	      glen = se-1
+	      buff2 = buff2(se+6:)
+
+	      ia =  STR_UPCASE (upbuff, buff2)		 
+	      sub = INDEX(upbuff, '<SUB>')
+	      sup = INDEX(upbuff, '<SUP>')
+	      seb = INDEX(upbuff,'</SUB>')
+	      sep = INDEX(upbuff,'</SUP>')
+	      IF (sub.GT.1 .AND. seb.EQ.0) GOTO 3300
+	      IF (sup.GT.1 .AND. sep.EQ.0) GOTO 3300
+
+	      IF  (sub.GT.0 .AND. sup.GT.0) THEN
+	         ss = MIN(sub,sup)
+		 IF (sub.LT.sup .AND. seb.GT.sup) GOTO 3300
+		 IF (sub.LT.sup .AND. seb.GT.sep) GOTO 3300
+		 IF (sup.LT.sub .AND. sep.GT.sub) GOTO 3300
+		 IF (sup.LT.sub .AND. sep.GT.seb) GOTO 3300
+	      ELSE
+		 ss = MAX(sub,sup)
+	      ENDIF
+	   ENDDO
+
+* Find the length of the total non-subscripted or superscripted string
+	   glen = TM_LENSTR(buffs)
+	   IF (glen .GT. 0) buff = buff1(:TM_LENSTR(buff1))//buff2(:glen)
+
+	   swid = 0.
+	   shgt = 0.
+	   IF (TM_LENSTR(buff) .GT. 0) THEN
+	      CALL FERTEXTSIZE (buff, fontname, fontsiz, 
+     .           italic, bold, pyfnt_under, swid, shgt, status)
+	      IF (status .EQ. 0) GOTO 3100
+	   ENDIF
+
+	   swid = swid/1000
+	   shgt = shgt/1000
+	   
+	   x = swid
+
+*  If there were subscripts and superscripts, those parts of the string are drawn at .75 size
+	   IF (glen .GT. 0) THEN
+	      swid = 0.
+	      shgt = 0.
+	      IF (glen .GT. 0) THEN
+	         CALL FERTEXTSIZE (buffs(:glen), fontname, fontsiz*0.75, 
+     .              italic, bold, pyfnt_under, swid, shgt, status)
+	         IF (status .EQ. 0) GOTO 3100
+	      ENDIF
+
+	         swid = swid/1000
+	         x = x + swid
+
+	   ENDIF
+
+	ELSE  ! Done with computing string width
+
+C Draw the text
+
+C If subscripts and/or superscripts do each part as it comes
+
+
+	   symcos = COS(degres*1.7453292E-2) 
+	   symsin = SIN(degres*1.7453292E-2) 
+
+	   CALL USER_TO_INCH (x, y, stx_pos, sty_pos)
+	   glen = 0
+
+	   DO WHILE (ss.GT.0)
+	      buff1 = buff2(1:ss-1)
+	      flen = ss-1
+	      buff2 = buff2(ss+5:)
+	      ia =  STR_UPCASE (upbuff, buff2)
+	      se = INDEX(upbuff, '</SU')
+	      buffs = buff2(:se-1)
+	      glen = se-1
+	      buff2 = buff2(se+6:)
+
+* Draw next section of full-sized text
+	      stx = 1000.* stx_pos
+	      sty = 1000.* sty_pos
+	      CALL FERDRAWTEXT(buff1, fontname, fontsiz, 
+     .             red, grn, blu, pyfnt_opq, stx, sty, 
+     .             rotate, italic, bold, pyfnt_under, status)
+	      IF (status .EQ. 0) GOTO 3200
+
+* and mark the start of the next text to follow
+	      swid = 0.
+	      shgt = 0.
+	      CALL FERTEXTSIZE (buff1, fontname, fontsiz, 
+     .           italic, bold, pyfnt_under, swid, shgt, status)
+
+	      IF (rotate.EQ.0) THEN
+	         stx_pos = stx_pos + swid/1000  ! what about rotations?
+	      ELSE
+	         stx_pos = stx_pos + symcos*swid/1000 
+	         sty_pos = sty_pos + symsin*swid/1000 
+	      ENDIF
+
+* Draw next superscript or subscript
+
+	      IF (rotate.EQ.0) THEN
+	         stx = 1000.* stx_pos
+	         IF (ss .EQ. sub) sty = 1000.* (sty_pos - 0.5*fontsiz)
+	         IF (ss .EQ. sup) sty = 1000.* (sty_pos + 0.5*fontsiz)
+	      ELSE
+	         IF (ss .EQ. sub) THEN
+		    stx = 1000.* (stx_pos + symsin*0.5*fontsiz)
+		    sty = 1000.* (sty_pos - symcos*0.5*fontsiz)
+	         ENDIF
+	         IF (ss .EQ. sup) THEN
+		    stx = 1000.* (stx_pos - symsin*0.5*fontsiz)
+		    sty = 1000.* (sty_pos + symcos*0.5*fontsiz)
+		 ENDIF
+	      ENDIF
+
+	      CALL FERDRAWTEXT(buffs, fontname, 0.75*fontsiz, 
+     .             red, grn, blu, pyfnt_opq, stx, sty, 
+     .             rotate, italic, bold, pyfnt_under, status)
+	      IF (status .EQ. 0) GOTO 3200
+
+* and mark the start of the next text to follow
+	      swid = 0.
+	      shgt = 0.
+	      CALL FERTEXTSIZE (buffs, fontname, 0.75*fontsiz, 
+     .           italic, bold, pyfnt_under, swid, shgt, status)
+
+	      IF (rotate.EQ.0) THEN
+	         stx_pos = stx_pos + swid/1000
+	      ELSE
+	         stx_pos = stx_pos + symcos*swid/1000 
+	         sty_pos = sty_pos + symsin*swid/1000 
+	      ENDIF
+
+	      ia =  STR_UPCASE (upbuff, buff2)
+	      sub = INDEX(upbuff, '<SUB>')
+	      sup = INDEX(upbuff, '<SUP>')
+	      seb = INDEX(upbuff,'</SUB>')
+	      sep = INDEX(upbuff,'</SUP>')
+	      IF (sub.GT.1 .AND. seb.EQ.0) GOTO 3300
+	      IF (sup.GT.1 .AND. sep.EQ.0) GOTO 3300
+
+	      IF  (sub.GT.0 .AND. sup.GT.0) THEN
+	         ss = MIN(sub,sup)
+		 IF (sub.LT.sup .AND. seb.GT.sup) GOTO 3300
+		 IF (sub.LT.sup .AND. seb.GT.sep) GOTO 3300
+		 IF (sup.LT.sub .AND. sep.GT.sub) GOTO 3300
+		 IF (sup.LT.sub .AND. sep.GT.seb) GOTO 3300
+	      ELSE
+		 ss = MAX(sub,sup)
+                 ENDIF
+	   ENDDO
+
+* If there were subscripts or supserscripts, draw the last text
+* or just draw the label string.
+
+	   IF (glen .GT. 0) buff = buff2(:TM_LENSTR(buff2))
+
+              stx = 1000.* stx_pos
+              sty = 1000.* sty_pos
+              CALL FERDRAWTEXT(buff, fontname, fontsiz, 
+     .          red, grn, blu, pyfnt_opq, stx, sty, 
+     .          rotate, italic, bold, pyfnt_under, status)
+	   IF (status .EQ. 0) GOTO 3200
+	
+	   ENDIF
+
+
+ 3000	CONTINUE
 
 	RETURN
-C
- 5000   IF (dirlen .GT. 1) THEN
-	   CALL WARN ('Could not open font file. Check the Ferret environment.')
-	   err_msg = fontdir(:dirlen)//'/fondat.dat'
-	ELSE
-	   CALL WARN ('Fonts directory is undefined. Check the Ferret environment.')
-	   err_msg = 'fondat.dat'
-	ENDIF
 
-        CALL errmsg (ferr_file_not_found, status, err_msg, *5002)
+ 3100	err_msg = 'Error getting text size from PyFerret font call '
+     .   //buff(:tm_lenstr(buff))
+	CALL errmsg (ferr_nomessge, status, err_msg, *5002)
+ 3200	err_msg = 'Error drawing text with PyFerret Font call '
+     .   //buff(:tm_lenstr(buff))
+
+ 3300	err_msg = 'Error in string: mismatch of <sub> or <sup> tags '
+     .   //buff(:tm_lenstr(buff))
+
+	CALL errmsg (ferr_nomessge, status, err_msg, *3000)
 
  5002	STOP
 
 	END
-	FUNCTION SYMWID(HEIGHT,NCHAR,STRING)
-C *kob* 04/07/96 passed in character strings had to be declared 
-C                with "*(*)" for the linux port 
-	CHARACTER STRING*(*)
-	NC=-IABS(NCHAR)
-C
-C	THIS FUNCTION RETURNS THE WIDTH OF THE STRING WITHOUT DRAWING IT
-C
-	SS=0.
-	CALL SYMBEL(SS,0.,0.,HEIGHT,NC,STRING)
-	SYMWID=SS
-	RETURN
-	END
-
diff --git a/ppl/complot/symbel.F b/ppl/complot/symbel_hershey.F
old mode 100644
new mode 100755
similarity index 91%
copy from ppl/complot/symbel.F
copy to ppl/complot/symbel_hershey.F
index 933186a..6810fb9
--- a/ppl/complot/symbel.F
+++ b/ppl/complot/symbel_hershey.F
@@ -1,4 +1,4 @@
- 	SUBROUTINE SYMBEL(X,Y,DEGRES,HEIGHT,NCHAR,STRING)
+ 	SUBROUTINE SYMBEL_HERSHEY(X,Y,DEGRES,HEIGHT,NCHAR,STRING)
 C** 
 C**    @(#)symbel.tplate.F	1.1    3/10/88
 C**
@@ -351,22 +351,6 @@ C
 	YTEMP = (XSYM * SYMSIN + YSYM * SYMCOS) * SYMSC + YORG
 50	CONTINUE
 
-* for decimal points, find the average x and Y location; will
-* plot a point at this location.
-C  xxx  
-C  xxx  Dont do this: it causes trouble with encapsulated postscript.
-C  xxx  and anyway, it was to correct trouble with the postscript translation
-C  xxx  for one printer...
-C  xxx
-C  xxx        IF (ICHR .EQ. '.') THEN
-C  xxx           IF (IPT .EQ. 1) THEN
-C  xxx             XBASE = 0.
-C  xxx             YBASE = 0.
-C  xxx           ENDIF
-C  xxx           XBASE = XBASE + XTEMP
-C  xxx           YBASE = YBASE + YTEMP
-C  xxx        ENDIF
-
 C
 C	MOVE THE PEN TO THE NEW COORDINATES.
 C
@@ -385,18 +369,6 @@ C
 70	CONTINUE
 
 C  End of character
-C xxx If it was a decimal point, draw a tiny dot at its center.  
-C  xxx
-C  xxx        IF (ICHR .EQ. '.' .AND. IPT .GT. 1) THEN
-C  xxx           XBASE = XBASE/ FLOAT(IPT-1)
-C  xxx           YBASE = YBASE/ FLOAT(IPT-1)
-C  xxx           XBASE = XBASE/ XSCALE
-C  xxx           YBASE = YBASE/ YSCALE
-C  xxx           call marker (1)              ! could call with 7 for bigger dot.
-C  xxx           CALL PLOT(XBASE, YBASE, 0, 0)
-C  xxx           CALL MARK(99)
-C  xxx           call marker (1)
-C  xxx        ENDIF
 C
 C	ADJUST THE REFERENCE POSITION TO TAKE INTO ACCOUNT THE
 C	CHARACTER THAT WAS JUST DRAWN.
@@ -596,17 +568,3 @@ C
  5002	STOP
 
 	END
-	FUNCTION SYMWID(HEIGHT,NCHAR,STRING)
-C *kob* 04/07/96 passed in character strings had to be declared 
-C                with "*(*)" for the linux port 
-	CHARACTER STRING*(*)
-	NC=-IABS(NCHAR)
-C
-C	THIS FUNCTION RETURNS THE WIDTH OF THE STRING WITHOUT DRAWING IT
-C
-	SS=0.
-	CALL SYMBEL(SS,0.,0.,HEIGHT,NC,STRING)
-	SYMWID=SS
-	RETURN
-	END
-
diff --git a/fer/utl/decrement_plot_grid.F b/ppl/complot/symwid.F
similarity index 84%
copy from fer/utl/decrement_plot_grid.F
copy to ppl/complot/symwid.F
index aa6c503..dfd0e3a 100755
--- a/fer/utl/decrement_plot_grid.F
+++ b/ppl/complot/symwid.F
@@ -1,4 +1,4 @@
-	SUBROUTINE DECREMENT_PLOT_GRID
+	FUNCTION SYMWID(HEIGHT,NCHAR,STRING)
 
 *
 *  This software was developed by the Thermal Modeling and Analysis
@@ -33,19 +33,17 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
+* Split off from file symbel.F 5/2015
 
-* Ansley Manke NOAA/PMEL/TMAP 2/10/2014
-*
-*      Decrement the grid use count which was bumped up, saving the grid used
-*      in a SHADE/SET, FILL/SET, CONTOUR/SET or WIRE/SET command. See ticket 883.
-
-	include 'xbox_bounds.cmn'
-
-	INTEGER grid
-
-	grid = bb_grid
-	IF (bb_grid_inccount .GT. 0) CALL TM_DEALLO_DYN_GRID (grid)
-	bb_grid_inccount = 0
-
+C *kob* 04/07/96 passed in character strings had to be declared 
+C                with "*(*)" for the linux port 
+	CHARACTER STRING*(*)
+	NC=-IABS(NCHAR)
+C
+C	THIS FUNCTION RETURNS THE WIDTH OF THE STRING WITHOUT DRAWING IT
+C
+	SS=0.
+	IF (NC .NE. 0) CALL SYMBEL(SS,0.,0.,HEIGHT,NC,STRING)
+	SYMWID=SS
 	RETURN
 	END
diff --git a/ppl/include/AXISL.INC b/ppl/include/AXISL.INC
index e09b6d9..07babf9 100644
--- a/ppl/include/AXISL.INC
+++ b/ppl/include/AXISL.INC
@@ -16,16 +16,19 @@ c
 *	J Davison 11.19.95
 C      *kms* 7/10 changed name of common block from AXISL to AXISLCMN 
 C                 to remove clash with AXISL function
+* V694  *acm*  1/15 Changes to allow two time axes on plot (F-T)
 
-	COMMON/AXISLCMN/IFRX,IFRY,IT1,IT2,ITSTRT,ITMIN,ITMAX
+	COMMON/AXISLCMN/IFRX,IFRY,IT1,IT2,ITSTRT,ITMIN,ITMAX,
+     .       IT1b,IT2b,ITSTRTb,ITMINb,ITMAXb
 
 *11.95	CHARACTER IFRX*20,IFRY*20,IT1*10,IT2*10,ITSTRT*10
 *11.95	CHARACTER ITMIN*10,ITMAX*10
 
-
-
 	CHARACTER IFRX*20,IFRY*20,IT1*14,IT2*14,ITSTRT*14
 	CHARACTER ITMIN*14,ITMAX*14
+	
+	CHARACTER IFRXb*20,IFRYb*20,IT1b*14,IT2b*14,ITSTRTb*14
+	CHARACTER ITMINb*14,ITMAXb*14
 c
 c	ifrx	format for x axis numeric label
 c	ifry	format for y axis numeric label
diff --git a/ppl/include/CONT.INC b/ppl/include/CONT.INC
index 8c587d1..371fc41 100644
--- a/ppl/include/CONT.INC
+++ b/ppl/include/CONT.INC
@@ -16,7 +16,7 @@ C**
 * V630  *acm* 9/09 Introduction of syntax for variance-based and histogram levels
 * V65 *acm   2/10 If Open-ended levels were used, symbol LEV_OPNLEVS saves 
 * the /LEV command needed to duplicate the levels
-* v683 *acm*	9/12 ribbon plots: RIBBON_FAST flag 
+* V696 *acm*  6/15 Move ribbon-plot setting to LINES.INC
 
 
 	COMMON/CONT/ZLEV(ICNLEV),LDIG(ICNLEV),LWGT(ICNLEV),LCLR(ICNLEV),
@@ -24,7 +24,7 @@ C**
      *  NARC,IAUTOC,NLEV2,NSIGC,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,RIBBON_FAST
+     *  LEV_STR,INTLEV
 
 c
 c	zlev()	array of levels to be contoured (user units)
@@ -64,8 +64,8 @@ c	delta		The specified DZ value
 *	set_max            open only on top
 *	lev_min		the values of min and/or max.
 *	lev_max
-*	ribbon_fast	FAST for one color per point, default is interpolate
-*                       colors between points
+*	lev_int		insist that levels values are integer
+
 
 c*******************************************************************
 
diff --git a/ppl/include/LINES.INC b/ppl/include/LINES.INC
index 2cda8c7..535d083 100644
--- a/ppl/include/LINES.INC
+++ b/ppl/include/LINES.INC
@@ -14,11 +14,16 @@ C**
 c
 
 * V510 *sh* 3/00 - dimension lleng() using the larger value, NPOLYGON
+* 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)
+
+
 
 	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 
+     *	LLENG(NPOLYGON),LNUM,IWIND,gap_var,ribbon_fast
 c
 c	xoff(0), yoff(0), etc are the offsets for the contour and view
 c	plots.
@@ -43,5 +48,8 @@ c	lleng()	number of points in line
 c	lnum	total number of lines for buffer
 c	iwind	=0 windowing of data off
 c		=1 window data to XLO, XHI and YLO, YHI
+c	ribbon_fast FAST for one color per point, default is interpolate
+c                       colors between points
+c	gap_var pointer to variable on PLOT/VS plots for adding gaps
 c
 c*******************************************************************
diff --git a/ppl/include/TAXIS.INC b/ppl/include/TAXIS.INC
index 314e478..151ded4 100644
--- a/ppl/include/TAXIS.INC
+++ b/ppl/include/TAXIS.INC
@@ -11,10 +11,14 @@ C**
 C***********************************************************************
 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, 
      *	NMTCT,LABELT,IFDB,ISDB,ITFLG,VANG,IVFLG,IAUTOT,
-     *	ITXTPE,ITXLBP
+     *	ITXTPE,ITXLBP,TLOb,DTb,TCSIZEb,ITYPETb, 
+     *	NMTCTb,LABELTb,IFDBb,ISDBb,ITFLGb,VANGb,IVFLGb,IAUTOTb,
+     *	ITXTPEb,ITXLBPb,is_hours_axis
 c
 c	tlo	x value corresponding to the start time (index number)
 c	dt	sampling rate in minutes (minutes)
@@ -29,6 +33,7 @@ c	isdb	labeling interval secondary labels
 c	itflg	=-1 y time axis on
 c		=0    time axis off
 c		=1  x time axis on
+c		=2  x and y time axis on, F-T plot.
 c	vang	rotation angle for stick plots (degrees)
 c	ivflg	=0 normal line plot
 c		=1 PLOTV command used
diff --git a/ppl/plot/daxis.F b/ppl/plot/daxis.F
index 1c99f3c..2102de7 100644
--- a/ppl/plot/daxis.F
+++ b/ppl/plot/daxis.F
@@ -1,4 +1,4 @@
-      SUBROUTINE DAXIS(XF,YF,NMX,NMY,MAINLAB)
+      SUBROUTINE DAXIS(XF,YF,NMX,NMY,DRAW)
 
 *
 *
@@ -62,6 +62,12 @@ C              of other plot elements but the labels dont need to be.
 C *acm* 10/14  bug 2205. Polygon plots have extra calls because polygons can get 
 C              drawn on topof axes. This(?) causes the main label to not get 
 C              finished. For polygon plots only, draw the main label twice.
+* V694  *acm*  1/15 Changes to allow two time axes on plot (F-T)
+* 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.
+
+
 C**
 C**    @(#)daxis.F	1.1    3/10/88
 C**
@@ -99,10 +105,10 @@ C**
 	include 'TICS2.INC'
 	include 'axisl_inc.decl'
 	include 'AXISL.INC'
+	INCLUDE 'pyfonts.cmn'
 
 	CHARACTER IFX*20,IFY*20
-        integer ii, MAINLAB
-	LOGICAL noylab
+	LOGICAL noylab, DRAW
 
 * TMAP interrupt flag
 	include 'xinterrupt.cmn'
@@ -110,115 +116,120 @@ C**
 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. Draw a second axis after each 
-C axis that may have the graticule lines, so the axes themselves are 
-C always solid, black.
+C sides. HLINE and VLINE control this. Draw the axis after the 
+C graticule lines, so the axes themselves are always solid, black.
 
         HLINE = .TRUE.
         VLINE = .TRUE.
-           
-        do ii = 1, 2   ! first time thru do graticules, 
-                      ! second time dont, get black axes
-        
-        IF(IMCNT.LE.1)THEN
-	    CALL BOX
-	END IF
+
 C	SETUP AXIS
-	CALL SETLAB(XF,YF,LTT,LTB,LYL,LYR,LXT,LXB,IFX,IFY)
-
-	IF (ii .EQ. 2 .OR. mainlab .EQ. 0) THEN
-	   LTT = 0
-	   LTB = 0
-	   LYL = 0
-	   LYR = 0
-	   LXT = 0
-	   LXB = 0
-	ENDIF
+	CALL SETLAB(XF,YF,LTT,LTB,LYL,LYR,LXT,LXB,IFX,IFY,LTBb)
+
+C ---------- Skip this section if not drawing the axes ----------
+	IF (DRAW) THEN
+
 	noylab =  (ylab .EQ. ' ') 
 C
 C     DRAW AXIS, LEFT, RIGHT Y AXIS THEN TOP, BOTTOM XAXIS
 C
-	IF(MAKEP.EQ.'VIEW')GOTO 1000
+	IF(MAKEP.EQ.'VIEW') GOTO 1000
+
+      
+* (PyFerret) labels along vertical axes will be drawn with the ivtics text style
+      IF (pyfont .AND. pyf_set(ivtics)) igroup = ivtics
+
       IF(MYLEF.EQ.0.AND.IAXON(3).EQ.1)THEN
 	  IY=ITY
 C	  YAXIS1 = LINEAR ,  YAXIS2 = LOG
-C
-          IF(ITFLG.EQ.-1)THEN
-              CALL TAYIS(ITYPET,TLO,IT1,IT2,DT,NMTCT,LTB,IFDB,ISDB,
-     *        YF,XLO,XF,TCSIZE,XHI,HGRAT, HCOLOR, HLINE)
+C  
+          IF((ITFLG.EQ.-1 .OR. ITFLG.EQ.2))THEN
+              IF(ITFLG.EQ.-1) CALL TAYIS(ITYPET,TLO,IT1,IT2,DT,NMTCT,LTB,IFDB,ISDB,
+     *        YF,XLO,XF,TCSIZE,XHI,HGRAT, HCOLOR, HLINE, IPEN(0), is_hours_axis)
+              IF(ITFLG.EQ.2) CALL TAYIS(ITYPETb,TLOb,IT1b,IT2b,DT,NMTCTb,LTBb,IFDBb,ISDBb,
+     *        YF,XLO,XF,TCSIZEb,XHI,HGRAT, HCOLOR, HLINE, IPEN(0), is_hours_axis)
             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, 
-     *	    SHRINKY)
+     *	    SHRINKY, IPEN(0))
             hline = .FALSE.
 	  ELSE
             CALL YAXIS2(XLO,XF,YLO,YHI,0.,LYL,IFY,1,YF,YCSIZE,
-     .                    XHI,HGRAT, HCOLOR, HLINE)
+     .                    XHI,HGRAT, HCOLOR, HLINE, IPEN(0))
             hline = .FALSE.
           END IF
       END IF
 	IF ( interrupted ) GOTO 3333		! TMAP interrupt
       IF(IAXON(4).EQ.1)THEN
 	IY=-ITY
-        IF(ITFLG.EQ.-1)THEN
-            CALL TAYIS(ITYPET,TLO,IT1,IT2,DT,NMTCT,LTT,IFDB,ISDB,
-     *      YF,XHI,XF,TCSIZE,XLO,HGRAT, HCOLOR, HLINE)
+        IF((ITFLG.EQ.-1 .OR. ITFLG.EQ.2)) THEN
+            IF(ITFLG.EQ.-1) CALL TAYIS(ITYPET,TLO,IT1,IT2,DT,NMTCT,LTT,IFDB,ISDB,
+     *      YF,XHI,XF,TCSIZE,XLO,HGRAT, HCOLOR, HLINE, IPEN(0), is_hours_axis)
+            IF(ITFLG.EQ.2) CALL TAYIS(ITYPETb,TLOb,IT1b,IT2b,DT,NMTCTb,LTTb,IFDBb,ISDBb,
+     *      YF,XHI,XF,TCSIZEb,XLO,HGRAT, HCOLOR, HLINE, IPEN(0), is_hours_axis)
            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,
-     *	    SHRINKY)
+     *	    SHRINKY, IPEN(0))
            hline = .FALSE.
 	ELSE
 	   CALL YAXIS2(XHI,XF,YLO,YHI,0.,LYR,IFY,1,YF,YCSIZE,
-     .                    XLO,HGRAT, HCOLOR, HLINE)
+     .                    XLO,HGRAT, HCOLOR, HLINE, IPEN(0))
            hline = .FALSE.
 	ENDIF
       ENDIF
+
+
 	IF ( interrupted ) GOTO 3333		! TMAP interrupt
+
+* (PyFerret) labels along horizontal axes will be drawn with the ihtics text style
+      IF (pyfont .AND. pyf_set(ihtics)) igroup = ihtics  
+
       IF(IAXON(1).EQ.1)THEN
           IX=-ITX
 C
 C	  XAXIS1 = LINEAR, XAXIS2 = LOG, TAXIS CALLS EITHER TAXIS0,
 C					 TAXIS1 OR TAXIS3
 C
-          IF(ITFLG.EQ.1)THEN
+          IF((ITFLG.EQ.1 .OR. ITFLG.EQ.2)) THEN
               CALL TAXIS(ITYPET,TLO,IT1,IT2,DT,NMTCT,LTT,IFDB,ISDB,
-     *        XF,YHI,YF,TCSIZE,YLO,VGRAT, VCOLOR, VLINE)
+     *        XF,YHI,YF,TCSIZE,YLO,VGRAT, VCOLOR, VLINE, IPEN(0), is_hours_axis)
               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)
+     *	       XCSIZE,YLO,XDMS,VGRAT, VCOLOR, VLINE, XVALOFF, IPEN(0))
               vline = .FALSE.
           ELSE
 	      CALL XAXIS2(XLO,XHI,0.,LXT,IFX,1,XF,YHI,YF,XCSIZE,
-     *                    YLO,VGRAT, VCOLOR, VLINE)
+     *                    YLO,VGRAT, VCOLOR, VLINE, IPEN(0))
               vline = .FALSE.
           END IF
       END IF
 	IF ( interrupted ) GOTO 3333		! TMAP interrupt
       IF(MXBOT.EQ.0.AND.IAXON(2).EQ.1)THEN
           IX=ITX
-          IF(ITFLG.EQ.1)THEN
+          IF((ITFLG.EQ.1 .OR. ITFLG.EQ.2)) THEN
               CALL TAXIS(ITYPET,TLO,IT1,IT2,DT,NMTCT,LTB,IFDB,ISDB,
-     *        XF,YLO,YF,TCSIZE,YHI,VGRAT, VCOLOR, VLINE)
+     *        XF,YLO,YF,TCSIZE,YHI,VGRAT, VCOLOR, VLINE, IPEN(0), is_hours_axis)
               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)
+     *	      XCSIZE,YHI,XDMS,VGRAT, VCOLOR, VLINE, XVALOFF, IPEN(0))
               vline = .FALSE.
           ELSE
 	      CALL XAXIS2(XLO,XHI,0.,LXB,IFX,1,XF,YLO,YF,XCSIZE,
-     *                    YHI,VGRAT, VCOLOR, VLINE)
+     *                    YHI,VGRAT, VCOLOR, VLINE, IPEN(0))
               vline = .FALSE.
           END IF
       END IF
-      enddo  ! ii loop
+
+      ENDIF  ! draw
+C ---------- End of skip section if not drawing the axes ----------
 
 * TMAP interrupt re-entry
  3333	CONTINUE
-
+	
 	IF(IWIND.GT.0)CALL WINDOW(XLO,YLO,XHI,YHI)
 	CALL CROSS
 	CALL WINDOW(0.,0.,0.,0.)
@@ -226,7 +237,11 @@ C
 C	DRAW AXIS LABELS
 C
 1000	CONTINUE
-        IF (mainlab .GE. 1) CALL LABDRW(XF,YF,IFX,IFY)
+
+* (PyFerret) cancel tic-mark text style
+	IF (pyfont) igroup = fnt_all
+
+        IF (DRAW) CALL LABDRW(XF,YF,IFX,IFY)
 	CALL PPLGFLUSH
 	RETURN
 	END
diff --git a/ppl/plot/daxis2.F b/ppl/plot/daxis2.F
index c107873..b3e00d8 100644
--- a/ppl/plot/daxis2.F
+++ b/ppl/plot/daxis2.F
@@ -50,6 +50,8 @@ C**
 * v552 *acm* 3/03 Changes for multi-line labels.
 * V69+  5/14 *acm* Fix for ascii font in multi-line labels, ticket 2176
 
+* V695  4/15 (PyFerret) Logo labels drawn with the logo text style
+
 	INCLUDE 'PARAMPL5.DAT'
 	INCLUDE 'AXIS.INC'
 	INCLUDE 'LABELS.INC'
@@ -71,12 +73,13 @@ C**
 
         include         'xinterrupt.cmn' ! 1/89 *sh*
         include         'ppl_in_ferret.cmn'
+        include 'pyfonts.cmn'
 
 ******************************************************************************
 
 
 	CHARACTER OUT*255
-        INTEGER numlines, i, j
+        INTEGER TM_LENSTR, numlines, i, j
 
 c        CHARACTER fontprefix*3, penprefix*3, newfont*3, newpen*3
 c        INTEGER lnbeg(500), lnend(500), 
@@ -85,6 +88,15 @@ c        line_spacing = 1.4
 
 	CALL VECTRS
 	DO 80 I=1,NLAB
+
+* Don't go through the motions of plotting blank labels
+	IF (TM_LENSTR(labs(i)) .EQ. 0) GOTO 80
+
+	IF (pyfont .AND. pyf_set(ilogo)) THEN
+	   IF (logolab(1).EQ.i .OR. logolab(2).EQ.i .OR. 
+     .      logolab(3).EQ.i) igroup = ilogo
+        ENDIF
+
 	IF(RHLABS(I).LT.0.0)THEN
 		HLB=HLABS
 	ELSE
@@ -199,7 +211,10 @@ C  Set up to use any font settings from this line on subsequent lines.
 
 20      CONTINUE
 
+	IF (pyfont) igroup = fnt_all
 80	CONTINUE
+
+
 	IF(PLTOPN)RETURN
 	IF(IMULT.EQ.0.OR.IMCNT.EQ.MNX*MNY)THEN
 	    IF(SWAIT)THEN
diff --git a/ppl/plot/labdrw.F b/ppl/plot/labdrw.F
index 4d5e906..8d07b67 100644
--- a/ppl/plot/labdrw.F
+++ b/ppl/plot/labdrw.F
@@ -48,6 +48,8 @@ C *kob* 04/07/96 passed in character strings had to be declared
 C                with "*(*)" for the linux port 
 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
 
 	INCLUDE 'PARAMPL5.DAT'
 	INCLUDE 'AXIS.INC'
@@ -63,9 +65,10 @@ C *acm* v552 3/03 Longer strings and changes for multi-line labels.
 	INCLUDE 'TICS2.INC'
 	INCLUDE 'AXISL.INC'
 	INCLUDE 'AXLWID.INC'
+	INCLUDE 'pyfonts.cmn'
 
 	CHARACTER IFX*(*),IFY*(*)
-        INTEGER j, lablen, numlines, slen
+        INTEGER TM_LENSTR, j, lablen, numlines, slen
         REAL htnew, wid
 
 c        INTEGER lnbeg(500), lnend(500)
@@ -78,10 +81,12 @@ c        line_spacing = 0.4
 
 C	DRAW LABELS
 	IF(MAKEP.EQ.'VIEW')GOTO 40
-	IF(LABELY.EQ.0.OR.ITFLG.EQ.-1)GOTO 20
+	IF(LABELY.EQ.0.OR.(ITFLG.EQ.-1.OR.ITFLG.EQ.2))GOTO 20
 
 C  Y label. center each line 
 
+	IF (TM_LENSTR(ylab) .GT. 0) THEN
+	IF (pyfont .AND. pyf_set(ivlab)) igroup = ivlab
         CALL tm_break_lines (ylab, lnbeg, lnend, numlines)
 
         IF(LABELY.LT.0.)THEN 
@@ -91,6 +96,7 @@ C  Y label. center each line
            XL=XHI+(YWID+2.*HYLAB)/XF
         ENDIF
 
+
         nfont = 0
         npen = 0
         fontprefix = ""
@@ -122,10 +128,15 @@ C  Set up to use any font settings from this line on subsequent lines.
 
 10      CONTINUE
 
+	IF (pyfont) igroup = fnt_all
+	ENDIF ! TM_LENSTR(ylab)
 
 C  X label
 
-20	IF(LABELX.EQ.0.OR.ITFLG.EQ.1)GOTO 40
+	IF (TM_LENSTR(xlab) .GT. 0) THEN
+	IF (pyfont .AND. pyf_set(ihlab)) igroup = ihlab
+
+20	IF(LABELX.EQ.0.OR.(ITFLG.EQ.1.OR.ITFLG.EQ.2))GOTO 40
         CALL tm_break_lines (xlab, lnbeg, lnend, numlines)
 
 	IF(LABELX.LT.0)THEN
@@ -136,6 +147,7 @@ C  X label
      .           line_spacing*(numlines-1)* hxlab/yf
 	ENDIF
 
+
         nfont = 0
         npen = 0
         fontprefix = ""
@@ -173,7 +185,13 @@ C  Set up to use any font settings from this line on subsequent lines.
 cc        ENDIF
 30      CONTINUE
 
+	IF (pyfont) igroup = fnt_all
+	ENDIF ! TM_LENSTR(xlab)
+
 C  Main label
+	
+	IF (TM_LENSTR(lab1) .GT. 0) THEN
+	IF (pyfont .AND. pyf_set(ititl)) igroup = ititl
 
 40      CALL tm_break_lines (lab1, lnbeg, lnend, numlines)
 
@@ -195,7 +213,7 @@ C  Main label
 C	Determine starting y position of main label
 
         ITFLG2=0
-        IF(ITFLG.EQ.1)ITFLG2=1
+        IF(ITFLG.EQ.1.OR.ITFLG.EQ.2)ITFLG2=1
 	IF (LABELX .GE. 0) THEN
 	  YTEMP = XWID - 1.9*ABS(XCSIZE) + 2.5*htnew
 	ELSE
@@ -233,5 +251,9 @@ C  Set up to use any font settings from this line on subsequent lines.
            ENDIF
 50      CONTINUE
 
-70	RETURN
+70      CONTINUE
+	IF (pyfont) igroup = fnt_all
+	ENDIF ! TM_LENSTR(lab1)
+
+	RETURN
 	END
diff --git a/ppl/plot/lev.F b/ppl/plot/lev.F
index 363dd48..d9e627a 100644
--- a/ppl/plot/lev.F
+++ b/ppl/plot/lev.F
@@ -268,10 +268,5 @@ C
 	GOTO 200
 10	CONTINUE
 
-	IF (center_key_labels) THEN
-	   dz = zlev(nlev) - zlev(nlev-1)
-	   nlev = nlev + 1
-	   zlev(nlev) = zlev(nlev-1) + dz
-	ENDIF
 	RETURN
 	END
diff --git a/ppl/plot/linfit.F b/ppl/plot/linfit.F
index 06ab43a..265a966 100644
--- a/ppl/plot/linfit.F
+++ b/ppl/plot/linfit.F
@@ -40,6 +40,9 @@ C**
 * v580 *acm* 8/04 Change use of 256 to buflen+1, 
 *                 where buflen is defined in cmndlen.inc
 * V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
+* 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
+* v695 9/15 *acm* write values to PPL* symbols using 6 digits not 4
 C**
 C***********************************************************************
 C**
@@ -74,18 +77,18 @@ C
 	WRITE(OUT,'(F10.4)')R*R
 	CALL PUTSYM(SYM,OUT,10,IER)
 	SYM='*PPL$LF_A'
-	CALL PUTVAL(SYM,A,4,IER)
+	CALL PUTVAL(SYM,A,7,IER)
 	SYM='*PPL$LF_A_STDEV'
-	CALL PUTVAL(SYM,AS,4,IER)
+	CALL PUTVAL(SYM,AS,7,IER)
 	SYM='*PPL$LF_B'
-	CALL PUTVAL(SYM,B,4,IER)
+	CALL PUTVAL(SYM,B,7,IER)
 	SYM='*PPL$LF_B_STDEV'
-	CALL PUTVAL(SYM,BS,4,IER)
+	CALL PUTVAL(SYM,BS,7,IER)
 	SYM='*PPL$LF_VAR'
-	CALL PUTVAL(SYM,VAR,4,IER)
+	CALL PUTVAL(SYM,VAR,7,IER)
 	SYM='*PPL$LF_RES_VAR'
 	ST2=STD*STD
-	CALL PUTVAL(SYM,ST2,4,IER)
+	CALL PUTVAL(SYM,ST2,7,IER)
 C
 C	WRITE STATS INTO ECHO FILE AND ON SCREEN
 C
@@ -262,8 +265,9 @@ C
 	INCLUDE 'AXISL.INC'
 	INCLUDE 'TAXIS.INC'
 
+	REAL*8 DIFF
 	CHARACTER DATE*10
-	IF(ITFLG.EQ.1.AND.N.NE.0)THEN
+	IF((ITFLG.EQ.1.OR.ITFLG.EQ.2).AND.N.NE.0)THEN
 C
 C	PARSE THE LABEL FOR MIN AND MAX TIMES
 C
diff --git a/ppl/plot/opnppl.F b/ppl/plot/opnppl.F
index 0d02a05..e22e2bd 100644
--- a/ppl/plot/opnppl.F
+++ b/ppl/plot/opnppl.F
@@ -40,6 +40,7 @@
 *       Mod to set SYM='*PPL$PLTNME' to value of meta_file *js* 7.25.97
 * V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
 * v691 5/14 *acm* Change name MOD to TEKMOD
+* v695 9/15 *acm* write values to PPL* symbols using 6 digits not 4
 C**
 C**    @(#)opnppl.F	1.1    3/10/88
 C**
@@ -235,19 +236,19 @@ C
 #else
 	TEMP='TT:'
 #endif
-	CALL PUTSYM(SYM,TEMP,8,IER)
+	CALL PUTSYM(SYM,TEMP,7,IER)
 	SYM='*PPL$XLEN'
-	CALL PUTVAL(SYM,XLEN,4,IER)
+	CALL PUTVAL(SYM,XLEN,7,IER)
 	SYM='*PPL$YLEN'
-	CALL PUTVAL(SYM,YLEN,4,IER)
+	CALL PUTVAL(SYM,YLEN,7,IER)
 	SYM='*PPL$XORG'
-	CALL PUTVAL(SYM,XORG,4,IER)
+	CALL PUTVAL(SYM,XORG,7,IER)
 	SYM='*PPL$YORG'
-	CALL PUTVAL(SYM,YORG,4,IER)
+	CALL PUTVAL(SYM,YORG,7,IER)
 	SYM='*PPL$WIDTH'
-	CALL PUTVAL(SYM,WIDTH,4,IER)
+	CALL PUTVAL(SYM,WIDTH,7,IER)
 	SYM='*PPL$HEIGHT'
-	CALL PUTVAL(SYM,HEIGHT,4,IER)
+	CALL PUTVAL(SYM,HEIGHT,7,IER)
 	SYM='*PPL$LINE_COUNT'
 	TEMP='0'
 	CALL PUTSYM(SYM,TEMP,1,IER)
@@ -258,13 +259,13 @@ C
 	DO 20 I=1,ISYM
 	WRITE(SYM,999)'XFACT',I
 999	FORMAT('*PPL$',A,'(',I3,')')
-	CALL PUTVAL(SYM,XFCT(I),4,IER)
+	CALL PUTVAL(SYM,XFCT(I),7,IER)
 	WRITE(SYM,999)'XOFF',I
-	CALL PUTVAL(SYM,XOFF(I),4,IER)
+	CALL PUTVAL(SYM,XOFF(I),7,IER)
 	WRITE(SYM,999)'YFACT',I
-	CALL PUTVAL(SYM,YFCT(I),4,IER)
+	CALL PUTVAL(SYM,YFCT(I),7,IER)
 	WRITE(SYM,999)'YOFF',I
-	CALL PUTVAL(SYM,YOFF(I),4,IER)
+	CALL PUTVAL(SYM,YOFF(I),7,IER)
 20	CONTINUE
 C
 C	STORE VIEW SYMBOLS
diff --git a/ppl/plot/plotxy.F b/ppl/plot/plotxy.F
index 8dc0ca1..c00373a 100644
--- a/ppl/plot/plotxy.F
+++ b/ppl/plot/plotxy.F
@@ -61,6 +61,10 @@ C
 *  ACM 10/2012    Modulo-ing for PLOT/VS longitudes overlaid on a map.
 *  ACM  2/2013    ticket 2141. Fix the modulo operation when the longitude
 *                 range is over 360.
+* V6.94+ *acm* 3/15 Ticket 2247: singleton points in line plots marked with a dot
+* 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.	
 
         include         'xinterrupt.cmn' ! 1/89 *sh*
         include         'ppl_in_ferret.cmn'
@@ -99,6 +103,9 @@ C
 	INTEGER xpolybase, ypolybase, zpolybase, polysizemax, nl,
      .		nvertex, fill_ndx
 
+	INTEGER klast, mdot
+	REAL	xtlast, ytlast
+
 	INTEGER GET_NDX
 
 * GKS initialization vars
@@ -116,6 +123,7 @@ C
 
 	xadd = 0.
 	xadlast = 0.	
+	MDOT = 99
 C
 C  JTYPE IS DATA TYPE (0 FOR 2D, 1 FOR 1D)
 C
@@ -130,6 +138,7 @@ C
 	ICNT=1
 	IF(M.GE.2.AND.IFLG(2).NE.0)ICNT=P(2)
 
+
 	IF(MAKEP.EQ.'PLOTUV')THEN
 	  IBASE=IY
 	  IBASE1=0
@@ -270,6 +279,12 @@ C     CHECK POINTS FOR OUT OF RANGE   (CM)
      *		 (YLE.AND.X(IY+K).LE.CMYLE).OR.
      *		 (YEQ.AND.X(IY+K).EQ.CMYEQ).OR.
      *		 (YGE.AND.X(IY+K).GE.CMYGE))THEN
+
+		  IF (IDN .EQ. 1 .AND. klast.EQ.k-1) THEN ! prev pt was a singleton
+                      CALL PLOT(XTLAST,YTLAST,0,0)
+                      CALL MARK(MDOT)
+		  ENDIF
+
 	          IDN=0
 	        ELSE
 
@@ -313,6 +328,9 @@ C     CHECK POINTS FOR OUT OF RANGE   (CM)
 		  if (interrupted) goto 51 ! *jd* 8.3.92
 	          CALL MARK(IM)
 	          IF(IDN.EQ.0)THEN
+		    xtlast = xt
+		    ytlast = yt
+		    klast = k
 	            IDN=1
 	          END IF
 	        END IF
diff --git a/ppl/plot/plotxy_ribbon.F b/ppl/plot/plotxy_ribbon.F
index 069a6c6..b23b268 100644
--- a/ppl/plot/plotxy_ribbon.F
+++ b/ppl/plot/plotxy_ribbon.F
@@ -64,7 +64,12 @@ C
 * ACM   5/2014  Fixes for changes of color in combination with handling
 *               modulo longitude data
 * V6.92 *acm* 6/14 New color /key options: any of /key=horizontal,centerlabel
-*               
+* V6.94 *acm* 1/15 fix ticket 2216: when using (-inf), a color-by variable
+*                  starting with missing was colored incorrectly.
+* 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)
+
 
         include         'xinterrupt.cmn' ! 1/89 *sh*
         include         'ppl_in_ferret.cmn'
@@ -105,12 +110,15 @@ C
 	INTEGER xpolybase, ypolybase, zpolybase, polysizemax, nl,
      .		nvertex, low_index, colr_ndx, last_colr_ndx, ncolors, 
      .		line_ndx, thick_offset, nseg, iseg, indx, inc
-	INTEGER GET_NDX, ibase, iline2
+	INTEGER GET_NDX, ibase, iline2, ilineg
 
 	logical	isbad, last_bad, bad_blank, new_branch
 
         real            xadd, xaddlast, datx, daty, datxlast,datylast
         integer         ndx,type
+	
+	INTEGER		klast, mdot
+	REAL		xtlast, ytlast
 
 
 * GKS initialization vars
@@ -127,6 +135,7 @@ C
 	xadd = 0.
 	xadlast = 0.
 	new_branch = .FALSE.
+	MDOT = 99
 C
 C  JTYPE IS DATA TYPE (0 FOR 2D, 1 FOR 1D)
 C
@@ -163,8 +172,10 @@ C  Set the contour/color levels
 	ENDIF
 
         ILINE2=IBASE+LLENG(I)
+        ILINEG=IBASE+2*LLENG(I)
+        igap = 0
 
-	  CALL MARKH(HMARK(I))
+        CALL MARKH(HMARK(I))
 
 * IPEN contains the thickness setting.
 
@@ -212,7 +223,11 @@ C     CHECK POINTS FOR OUT OF RANGE   (CM)
 		IF(YGE.AND.X(IY+J).GE.CMYGE)GOTO 70
 		
 		last_bad = .FALSE.
-	        colr_ndx = GET_NDX (X(IY+J+ILINE2),colr_ndx)
+		
+		datum = X(IY+J+ILINE2)
+		IF (datum .EQ. -3.E33) datum = CMZGE  ! This value set in pplldx.
+		  
+	        colr_ndx = GET_NDX (datum,colr_ndx)
 		CALL SET_RIBBON_NDX (colr_ndx)
 
 	        line_ndx = colr_ndx + thick_offset + low_index - 1
@@ -258,16 +273,22 @@ C     CHECK POINTS FOR OUT OF RANGE   (CM)
      *		 (YLE.AND.X(IY+K).LE.CMYLE).OR.
      *		 (YEQ.AND.X(IY+K).EQ.CMYEQ).OR.
      *		 (YGE.AND.X(IY+K).GE.CMYGE))THEN
+
+		  IF (IDN .EQ. 1 .AND. klast.EQ.k-1) THEN ! prev pt was a singleton
+                      CALL PLOT(XTLAST,YTLAST,0,0)
+                      CALL MARK(MDOT)
+		  ENDIF
+
 	          IDN=0
 	        ELSE
 		
 	          CALL PLOT(XT,YT,IDN,0)
 
-		
 	          datx = X(K)
 	          daty = X(IY+K)
 
-
+* if 1, then this is the end of a segment. Draw to it, and pick up the pen.
+		  IF (gap_var.GT.0) igap = INT(X(IY+K+ILINEG)) 
 
 		  IF (MOD_VS_X .AND. datx .LT. xlo) THEN 
 		     xadd = 360.
@@ -397,9 +418,21 @@ C     CHECK POINTS FOR OUT OF RANGE   (CM)
 	          ENDIF
 		  CALL PLOT(XT,YT,IDN,0) 
 
-	          IF(IDN.EQ.0)IDN=1
+	          IF(IDN.EQ.0)THEN
+		    xtlast = xt
+		    ytlast = yt
+		    klast = k
+	            IDN=1
+	          ENDIF
 		  new_branch = .FALSE.
 	        END IF
+
+* if gap_var = 1, then this is the end of a segment. Draw to it, and pick up the pen.
+		IF (igap.GT.0) THEN
+		   IDN = 0
+		   CALL PLOT(XT,YT,IDN,0) 
+		ENDIF
+
 72	      CONTINUE
 	    END IF
 	    IF(ITYPE(I).EQ.2.OR.ITYPE(I).EQ.5)CALL MARK(IMARK(I))
diff --git a/ppl/plot/plotz.F b/ppl/plot/plotz.F
index f9bfe9c..b4a0522 100644
--- a/ppl/plot/plotz.F
+++ b/ppl/plot/plotz.F
@@ -94,6 +94,7 @@ 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
 
 	INCLUDE 'PARAMPL5.DAT'
 	INCLUDE 'ZGRIDD.INC'
@@ -109,6 +110,8 @@ C
 	INCLUDE 'PLTL.INC'
 	include 'xcurvilinear.cmn'
         INCLUDE 'errmsg.parm'
+	INCLUDE 'pyfonts.cmn'
+
 
 * Argument declarations
 **	DIMENSION Z(NX,NY)
@@ -124,6 +127,8 @@ C
         LOGICAL   TM_FPEQ_SNGL
 
 	logical		valid
+	
+	INTEGER ier
 
 C*       *jd* Linux port 12.96 add EXTERNAL calls below
         external scale, range
@@ -263,6 +268,15 @@ C
 	IF (IWIND.NE.0) CALL WINDOW(0.0,0.0,XLEN,YLEN)
 	CALL COLOR(IPEN(1))
 
+*  If the user has set text style with SET TEXT/CONTOUR, use those settings.
+*  Otherwise get the color fractions for the pen being used for the contours. 
+
+       IF (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
 
 C       Calculate the following quantities:
 C       ~FF - multiplication factors to go from axis to page coords?
@@ -358,6 +372,14 @@ C
 C	END VAX/VMS
 C
 	CALL COLOR(IPEN(0))
+	
+	IF (pyfont) THEN 
+	   
+*  Restore settings in pyfont common
+
+	IF (pyfont) igroup = 0
+	ENDIF
+
 	CALL SCALE(XF,YF,XORG,YORG,XLO,YLO)
 
 	RETURN
diff --git a/ppl/plot/pltit.F b/ppl/plot/pltit.F
index 27af2e7..23d60a2 100644
--- a/ppl/plot/pltit.F
+++ b/ppl/plot/pltit.F
@@ -92,59 +92,37 @@
 * v68  *acm* 4/08 Allow shade, vector plots of degenerate regions - world region 
 *              within a grid cell
 * PyFr  11/11 *kms* added call to consider updating the drawing when done
-*
+** V68   *acm* 4/11 change how flag meta_batch is computed (different Makefile)
+* V6.8 *acm* 7/9/2012 For batch graphics on RHEL6, change ITS_BATCH_GRAPHICS
+*                     from logical to integer, then batch = ITS_BATCH_GRAPHICS().NE.0
+* V694  *acm*  5/15 Ticket 2283. Handling axis scaling for ribbon plots.
+* V694  *acm*  1/15 Changes to allow two time axes on plot (F-T)
+* V694  *acm*  2/15 Fix ticket 2232; redraw plot axes on line plots
+* V694  *acm*  5/15 correct the setting of is_ribbon
+* V695  *acm*  5/15 Ticket 2279: PyFerret don't redraw lines
+* V695 *acm*   5/15 Ticket 2279: Draw axis lines, tics and labels only once.  It does not
+*                   work to call DAXIS only at the end of this routine; the calls to axis
+*                   subroutines apparently make some settings for scaling on the page.
+*                   Call daxis with a flag "DRAW" set to false, which executes the 
+*                   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
+
 *****************************************************
 
 * local variable declarations for PLTIT (for TMAP)
-	REAL	DIFF, x, xf, yf, xl, yl, xh, yh, xti, xtl, thi
-	REAL*8	XLPLOT,YLPLOT,XHPLOT,YHPLOT
+	REAL	x, xf, yf, xl, yl, xh, yh, xti, xtl, thi
+	REAL*8	DIFF, XLPLOT,YLPLOT,XHPLOT,YHPLOT
 	REAL	xtm,ytm,xtx,ytx,minx,maxx,miny,maxy
 	INTEGER nxs, nmx, nmy, ivloc, ip1, ip2, ip3, ip4, a_line,
-     .          LABELX_save, LABELY_save, LABELT_save, MAINLAB
+     .          LABELX_save, LABELY_save, LABELT_save
+	LOGICAL DRAW
 
 * TMAP include files with explicit type declarations:
 	include 'parampl5_dat.decl'
 	include 'PARAMPL5.DAT'
 
 	DIMENSION X(NXS) ! Was VIRTUAL, changed for linux *jd*
-*
-*
-*  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 per/x=178.5:179.5 uwndion 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. 
-*
-** V68   *acm* 4/11 change how flag meta_batch is computed (different Makefile)
-* V6.8 *acm* 7/9/2012 For batch graphics on RHEL6, change ITS_BATCH_GRAPHICS
-*                     from logical to integer, then batch = ITS_BATCH_GRAPHICS().NE.0
-
 	include 'lines_inc.decl'
 	include 'LINES.INC'
 	include 'pen_inc.decl'
@@ -188,14 +166,13 @@
 	include 'shade_vars.cmn' 
 
 
-	LOGICAL CLEAR,CONTR,no_vpt_flag
+	LOGICAL CLEAR,CONTR,no_vpt_flag, is_ribbon
 
 *	*jd* linux port 12.96 Add external stmt below
 	external size, scale
 
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
 
-	mainlab = 1  ! Flag: Draw the main label in calls to DAXIS
 
 	IF(((MAKEP.EQ.'CONTOUR'.OR.MAKEP.EQ.'VIEW'.or.
      *     makep.eq.'FILL'.or.makep.eq.'PIXEL'.or.
@@ -238,9 +215,12 @@ C	SETUP AXIS FOR ALL PLOT TYPES.
 ***********************************************
 	CALL COLOR(IPEN(0))
 	IF(.NOT.SOVER)THEN
-	    CALL SETAX(X,NXS,XF,YF,XL,YL,XH,YH,NMX,NMY,XTI,XTL)
+	    is_ribbon = MAKEP.EQ.'RIBPLOT'
+	    CALL SETAX(X,NXS,XF,YF,XL,YL,XH,YH,NMX,NMY,XTI,XTL,is_ribbon)
+
 	    IF (ABS(XF) .GT. CMZGE .OR. ABS(YF) .GT. CMZGE) GOTO 3333  ! fill/contour but 1 grid point
-	    CALL DAXIS(XF,YF,NMX,NMY,MAINLAB)
+	    DRAW = .FALSE.
+	    CALL DAXIS(XF,YF,NMX,NMY,DRAW)
 
 		XLPLOT=DBLE(XL) 
 		XHPLOT=DBLE(XH)
@@ -258,15 +238,22 @@ C	SETUP AXIS FOR ALL PLOT TYPES.
 	    IF ( interrupted ) GOTO 3333		! 1/89 - *sh*
 	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
 		TLO = 1. - DIFF(IT1,ITSTRT)/DT
 	        THI=TLO+DIFF(IT1,IT2)/DT
 	    ENDIF
-	    IF(ITFLG.EQ.1)THEN
+	    IF(ITFLG.EQ.1 .OR. ITFLG.EQ.2)THEN
 		XTI=XHI
 		XTL=XLO
 		XHI=THI
 		XLO=TLO
-	    ELSE IF(ITFLG.EQ.-1)THEN
+	    ELSE IF(ITFLG.EQ.-1 .OR. ITFLG.EQ.2)THEN
 		XTI=YHI
 		XTL=YLO
 		YHI=THI
@@ -300,20 +287,17 @@ C
 	    ENDIF
 	    CALL PLOTZ(X(IVLOC),XF,YF,XLPLOT,YLPLOT,XHPLOT,YHPLOT)
 
-C  Call WINDOW to restore values of XMIN, XMAX, YMIN, YMAX. Plot axis again
-C  so any tics inside the box show up.
+C  Call WINDOW to restore values of XMIN, XMAX, YMIN, YMAX. 
 
 	    IF(MAKEP.EQ.'FILL') THEN
                IF(IWIND.GT.0)CALL WINDOW(XLO,YLO,XHI,YHI)
-	       mainlab = 0
-               CALL DAXIS(XF,YF,NMX,NMY,MAINLAB)
-	       CALL DAXIS_BOX
             ENDIF
 
 	ELSE IF(MAKEP.EQ.'PLOT') THEN
 	   IPV = 0
 	   CALL PLOTXY(X,NXS,XF,YF,IPV)
 	   if (interrupted) go to 3333
+
 ****    JD * ALINE CALL 
 	   CALL WINDOW(0.,0.,0.,0.)
 C
@@ -343,6 +327,7 @@ C		call aline_sub (x,nxs,a_line,minx,miny,maxx,maxy)
 
 	ELSE IF(MAKEP.EQ.'RIBPLOT') THEN
 	   CALL PLOTXY_RIBBON(X,NXS,XF,YF)
+	   IF ( interrupted ) GOTO 3333
 
 	ELSE IF(MAKEP.EQ.'VECTOR')THEN
 	    IF(JTYPE.EQ.-1)THEN
@@ -410,9 +395,7 @@ c	    CALL PLOTV(X,NXS,XF,YF)
             ENDIF
             call shade(x(ivloc), x(IP4) )
 	    IF ( interrupted ) GOTO 3333		! 1/89 - *sh*
-	    mainlab = 0
-	    CALL DAXIS(XF,YF,NMX,NMY,MAINLAB)
-	    CALL DAXIS_BOX
+
 ***************************************************
 * TMAP addition for PLOTPOL call
 	ELSE IF(MAKEP.EQ.'PLOTPOL')THEN
@@ -454,43 +437,28 @@ c	    CALL PLOTPOL(X,NXS,XF,YF)
  200	       continue
 	    end if
 
-* Redraw the axes after the plot is drawn as polygons may
-* obscure axes and/or tics.
-            IF (.NOT. SOVER) THEN
-	       mainlab = 0
-               CALL DAXIS(XF,YF,NMX,NMY,mainlab) ! was MAINLAB
-	       CALL DAXIS_BOX
-	    ELSE
-* If it was an overlay, we still want to draw the axes but dont
-* redo labels (See bug 1663)
-               LABELX_save = LABELX
-               LABELY_save = LABELY
-               LABELT_save = LABELT
-               LABELX = 0
-               LABELY = 0
-               LABELT = 0
-	       mainlab = 0
-               CALL DAXIS(XF,YF,NMX,NMY,MAINLAB)
-	       CALL DAXIS_BOX
-               LABELX = LABELX_save
-               LABELY = LABELY_save
-               LABELT = LABELT_save
-	       mainlab = 1
-	    ENDIF
 ***************************************************
 	ENDIF
 
  3333	CONTINUE					! 1/89 - *sh*
 * post-interrupt re-entry				! 1/89 - *sh*
+
+	DRAW = .FALSE.
+	CALL DAXIS(XF,YF,NMX,NMY,DRAW)
+	IF (.NOT.SOVER) DRAW = .TRUE. 
+	IF (SOVER) lab1 = ' '
+	CALL DAXIS(XF,YF,NMX,NMY,DRAW)
+
 	CALL SCALE(XF,YF,XORG,YORG,XLO,YLO)
 C
 	CALL WINDOW(0.,0.,0.,0.)
 C
+C Put movable labels on
 	IF ( .NOT.interrupted ) CALL DAXIS2(XF,YF,NMX,NMY) ! 1/89 - *sh*
-	IF(ITFLG.EQ.1)THEN
+	IF(ITFLG.EQ.1 .OR. ITFLG.EQ.2)THEN
 	    XHI=XTI
 	    XLO=XTL
-	ELSE IF(ITFLG.EQ.-1)THEN
+	ELSE IF(ITFLG.EQ.-1 .OR. ITFLG.EQ.2)THEN
 	    YHI=XTI
 	    YLO=XTL
 	ENDIF
diff --git a/ppl/plot/pplcmd_f.F b/ppl/plot/pplcmd_f.F
index 089498f..bc27eb2 100644
--- a/ppl/plot/pplcmd_f.F
+++ b/ppl/plot/pplcmd_f.F
@@ -128,8 +128,13 @@ C              do not make small tics by default.
 * V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
 * v691 5/14 *acm* Change name MOD to TEKMOD
 * V6.92 *acm* 6/14 New color /key options: any of /key=horizontal,centerlabel
+* V694  *acm*  1/15 Changes to allow two time axes on plot (F-T)
+* V694  *acm*  5/15 Ticket 2283. Change to call for subroutine setax. 
+* v696 *acm*	gap_var to define seperate line segments on PLOT/VS plots
+*                  (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
 
-c
 c	fromi	command file or device (/dev/tty or TT: for terminal)
 c	linei	input line for parameters
 c	isi	length of line in characters
@@ -233,10 +238,11 @@ CCCCCCC data	        tmapdebug/.false./
         integer         j,k,ic,ierr,lun1,lun11                 
         integer         idum1,iy1,ix1,ix3                   
         integer         lnblk,ws_state
-                                                               
+
+	REAL*8		DIFF
         real            xm,ym,xt,xdum1,xdum2,xdum3,xdum4       
         real            xdum5,zmn,zmx,p1,x1,y1,y2,x3,x4     
-        real            diff,symwid,xmx,xmn,ymx,ymn,dd
+        real            symwid,xmx,xmn,ymx,ymn,dd 
                                                                
         external        lnblk,diff,symwid                      
                                                                
@@ -255,7 +261,6 @@ CCCCCCC data	        tmapdebug/.false./
         INTEGER   TM_LENSTR, TM_LENSTR1, slen
 
 	character strr*2048
-
         LOGICAL TM_HAS_STRING
 	CHARACTER DTE*10,TEMP*2048,TEMP2*2048,FILE*81,FROM*80,LINE*2048
 	CHARACTER SYM*120,ICOM7*7
@@ -263,10 +268,10 @@ CCCCCCC data	        tmapdebug/.false./
 	CHARACTER COMBUF(ICMDIM)*2048
 	CHARACTER YES*3,NO*2,err_msg*40
 	LOGICAL LEOF
-	LOGICAL IFLG1,IFLG2,LABON,VALOFF
+	LOGICAL IFLG1,IFLG2,LABON,VALOFF,TBOTH
 	DIMENSION X1(5),Y1(5),Y2(4),X3(2),IX3(5)
 	DIMENSION X4(4)
-	CHARACTER COMM(123)*7
+	CHARACTER COMM(124)*7
 	EQUIVALENCE (DT,X3(1)),(ITYPET,IX3(1)),(TSMX,X4(1))
 	EQUIVALENCE (XLO,X1(1)),(YLO,Y1(1)),
      *		(HLAB1,Y2(1))
@@ -291,7 +296,8 @@ CCCCCCC data	        tmapdebug/.false./
      *  'SHADE','SHAKEY','SHASET','PIXMAP','ALINE','TMDEBUG','COLOR',
      *  'SQFILL','FILL', 'PLOTPOL', 'FILLPOL', 'PATSET','CALENDA',
      *  'FLOWLIN', 'S_KEY', 'S_CELL', 'POLYGON', 'XVALOFF', 'YVALOFF',
-     *  'LINECOL','RENAMPL','SHRINKY','RIBBON','RIBFAST','RIBMISS'/
+     *  'LINECOL','RENAMPL','SHRINKY','RIBBON','RIBFAST','RIBMISS',
+     *  'GAPLOC'/
 
 !  *  'SQFILL','AREA'/ NAME CHANGE *jd*
  
@@ -401,7 +407,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,123
+	DO 20 I=1,124
 	    IF(ICOM7.EQ.COMM(I))GOTO 21
 20	CONTINUE
 	IF(ICOM(1:1).EQ.'%')THEN
@@ -420,6 +426,8 @@ C       Changed ICOM to CHAR*7 comparison for CALENDAR command. *jd* 10.99
 21	IFLG1=(M.GE.1.AND.IFLG(1).NE.0)
 	IFLG2=(M.GE.2.AND.IFLG(2).NE.0)
 	LABON=(LABEL.EQ.'ON'.OR.LABEL.EQ.'on')
+	TBOTH=(LABEL.EQ.'BO'.OR.LABEL.EQ.'bo')
+	IF (TBOTH) LABON = .TRUE.
 	VALOFF=(INDEX(LABEL,'OFF')+INDEX(LABEL,'off')).NE.0
 C       Mod below for brain dead version *JD* 8.2.91
         if (tmapdebug) then
@@ -434,7 +442,7 @@ C       Mod below for brain dead version *JD* 8.2.91
      *	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,
-     *  1550,9980,9990),I
+     *  1550,9980,9982,9984),I
         else
 	GOTO (100,200,300,500,99,700,900,1000,1100,1200,1300,
      *	1400,1500,99,1800,1900,2000,2100,2200,2300,2500,2600,
@@ -447,7 +455,7 @@ C       Mod below for brain dead version *JD* 8.2.91
      *	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,
-     *  1550,9980,9990),I
+     *  1550,9980,9982,9984),I
         end if
         goto 10
 
@@ -494,9 +502,9 @@ C     SIZE
 700	WIDTH=P(1)
 	HEIGHT=P(2)
 	SYM='*PPL$WIDTH'
-	CALL PUTVAL(SYM,WIDTH,4,IER)
+	CALL PUTVAL(SYM,WIDTH,6,IER)
 	SYM='*PPL$HEIGHT'
-	CALL PUTVAL(SYM,HEIGHT,4,IER)
+	CALL PUTVAL(SYM,HEIGHT,6,IER)
 	GOTO 10
 C     SMOOTH
 900	IF(M.EQ.0)GOTO 10
@@ -809,12 +817,12 @@ C     ORIGIN
 4600	IF(IFLG1)XORG=P(1)
 	IF(IFLG2)YORG=P(2)
 	SYM='*PPL$XORG'
-	CALL PUTVAL(SYM,XORG,4,IER)
+	CALL PUTVAL(SYM,XORG,6,IER)
 	SYM='*PPL$YORG'
-	CALL PUTVAL(SYM,YORG,4,IER)
+	CALL PUTVAL(SYM,YORG,6,IER)
 	if(pltopn)then
 	    call setax(pplmem,pplmem_nsize,xft,yft,xlt,ylt,xht,yht,
-     .                 nmxt,nmyt,xtit,xtlt)
+     .                 nmxt,nmyt,xtit,xtlt,.FALSE.)
      	    call scale(xft,yft,xorg,yorg,xlo,ylo)
 	endif
 	GOTO 10
@@ -868,6 +876,7 @@ C     TAXIS
 		ITFLG=1
 	    ENDIF
 	ENDIF
+	IF (TBOTH) ITFLG=2
 	DO 5401 I=1,M
 	    IF(I.GE.3)GOTO 5402
 	    IF(IFLG(I).NE.0)X3(I)=P(I)
@@ -940,12 +949,12 @@ C	AXLEN
 6300	IF(IFLG1)XLEN=P(1)
 	IF(IFLG2)YLEN=P(2)
 	SYM='*PPL$XLEN'
-	CALL PUTVAL(SYM,XLEN,4,IER)
+	CALL PUTVAL(SYM,XLEN,6,IER)
 	SYM='*PPL$YLEN'
-	CALL PUTVAL(SYM,YLEN,4,IER)
+	CALL PUTVAL(SYM,YLEN,6,IER)
 	if(pltopn)then
 	    call setax(pplmem,pplmem_nsize,xft,yft,xlt,ylt,xht,yht,nmxt,
-     *	    nmyt,xtit,xtlt)
+     *	    nmyt,xtit,xtlt,.FALSE.)
 	    call scale(xft,yft,xorg,yorg,xlo,ylo)
 	endif
 	GOTO 10
@@ -1091,13 +1100,13 @@ C	TRANSXY
 	    ENDIF
 	    WRITE(SYM,997)'XFACT',I
 997	    FORMAT('*PPL$',A,'(',I3,')')
-	    CALL PUTVAL(SYM,XFCT(I),4,IER)
+	    CALL PUTVAL(SYM,XFCT(I),6,IER)
 	    WRITE(SYM,997)'XOFF',I
-	    CALL PUTVAL(SYM,XOFF(I),4,IER)
+	    CALL PUTVAL(SYM,XOFF(I),6,IER)
 	    WRITE(SYM,997)'YFACT',I
-	    CALL PUTVAL(SYM,YFCT(I),4,IER)
+	    CALL PUTVAL(SYM,YFCT(I),6,IER)
 	    WRITE(SYM,997)'YOFF',I
-	    CALL PUTVAL(SYM,YOFF(I),4,IER)
+	    CALL PUTVAL(SYM,YOFF(I),6,IER)
 	    GOTO 10
 C	MARKH
 8500	    I=IFIX(P(1))
@@ -1155,7 +1164,9 @@ C	TIME
 		GOTO 10
 	    ENDIF
 	    IAUTOT=0
-C
+
+	    IF (itflg .EQ. 2) GOTO 9230
+
 C	GET TMIN,TMAX,TSTART FROM LABEL
 C
 C	IF NO FIRST PARAMETER SKIP TMIN PROCESSING
@@ -1234,14 +1245,111 @@ C
 
 9203	    TLO=1.-DIFF(IT1,ITSTRT)/DT
 	    GOTO 10
+c------------------------------------------------------------------------------------
+
+C Time definition for second time axis (forecast/time plot)
+9230    CONTINUE
+
+C	GET TMIN,TMAX,TSTART FROM LABEL
+C
+C	IF NO FIRST PARAMETER SKIP TMIN PROCESSING
+C
+	    IF(M.GE.1.AND.IFLG(1).EQ.0)GOTO 9231
+	    IC=INDEX(LABEL,',')
+	    IF(IC.EQ.0)IC=buflen+1
+	    IS=INDEX(LABEL,' ')
+	    IS=MIN0(IS,IC)
+
+	    TMPCHR = LABEL(1:IS-1)
+
+	    IF ( TMPCHR(12:12) .EQ. ' ' ) THEN
+		IT1b=TMPCHR(2:11)         ! old format
+	 	IT1b(11:14) = '0019'
+	    ELSE
+		IT1b(1:12)=TMPCHR(4:15)   ! enhanced format
+		IF (tmpchr(11:12) .EQ. ' ') IT1b(11:12)='00' 
+		IT1b(13:14) = TMPCHR(2:3) ! century
+	    ENDIF
+
+	    IF(ITSTRTb.EQ.' ')ITSTRTb=IT1b
+	    IF(IC.NE.0)IS=IS+1
+9240	    IF(LABEL(IS:IS).EQ.' ')THEN
+		IS=IS+1
+		IF(IS.GT.2048)GOTO 9233
+		GOTO 9240
+	    ELSE IF(LABEL(IS:IS).EQ.',')THEN
+		LABEL=LABEL(IS+1:)
+		GOTO 9232
+	    ELSE
+		LABEL=LABEL(IS:)
+	    ENDIF
+C
+C	IF NO SECOND PARAMETER SKIP TMAX PROCESSING
+C
+9231	    IF(M.GE.2.AND.IFLG(2).EQ.0)GOTO 9232
+	    IC=INDEX(LABEL,',')
+	    IF(IC.EQ.0)IC=buflen+1
+	    IS=INDEX(LABEL,' ')
+	    IS=MIN0(IS,IC)
+
+	    TMPCHR = LABEL(1:IS-1)
+
+	    IF ( TMPCHR(12:12) .EQ. ' ' ) THEN
+		IT2b=TMPCHR(2:11)         ! old format
+		IT2b(11:14) = '0019'
+	    ELSE
+		IT2b(1:12)=TMPCHR(4:15)   ! enhanced format
+		IF (TMPCHR(11:12) .EQ. ' ') IT2b(11:12)='00' 
+		IT2b(13:14) = TMPCHR(2:3) ! century
+	    ENDIF
+
+	    IF(IC.NE.0)IS=IS+1
+9250	    IF(LABEL(IS:IS).EQ.' ')THEN
+		IS=IS+1
+		IF(IS.GT.2048)GOTO 9233
+		GOTO 9250
+	    ELSE
+		LABEL=LABEL(IS:)
+	    ENDIF
+
+9232	    TMPCHR = LABEL(1:15)
+
+	    IF ( TMPCHR(12:12) .EQ. ' ' ) THEN
+		ITSTRTb=TMPCHR(2:11)         ! old format
+		ITSTRTb(11:14) = '0019'
+	    ELSE
+		ITSTRTb(1:12)=TMPCHR(4:15)   ! enhanced format
+		IF (TMPCHR(11:12) .EQ. ' ') ITSTRTb(11:12)='00' 
+		ITSTRTb(13:14) = TMPCHR(2:3) ! century
+	    ENDIF
+	    
+
+
+9233	    TLOb=1.-DIFF(IT1b,ITSTRTb)/DT
+	    GOTO 10
+
+c------------------------------------------------------------------------------------
+
+
 C	TXTYPE
 9300	    CALL UPPER(LABEL,2048)
+	IF (itflg .EQ. 2) GOTO 9330
+
+	
 C
 C	IF NO FIRST PARAMETER SKIP PROCESSING
 C
 	    IF(M.GE.1.AND.IFLG(1).EQ.0)GOTO 9301
-	    IF(LABEL(1:1).EQ.'D')THEN
+	    is_hours_axis = 0
+	    IF(LABEL.EQ.'MIN')THEN
 		ITYPET=0
+		is_hours_axis = 2
+	    ELSE IF(LABEL(1:1).EQ.'H')THEN
+		ITYPET=0
+		is_hours_axis = 1
+	    ELSE IF(LABEL(1:1).EQ.'D')THEN
+		ITYPET=0
+		is_hours_axis = 0
 	    ELSE IF(LABEL(1:1).EQ.'M')THEN
 		ITYPET=1
 	    ELSE
@@ -1286,22 +1394,127 @@ 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.
 	    LABELT=ITXTPE*ITXLBP
 	    GOTO 10
+
+	
+c------------------------------------------------------------------------------------
+9330	    CONTINUE
+C
+C	IF NO FIRST PARAMETER SKIP PROCESSING
+C
+	    IF(M.GE.1.AND.IFLG(1).EQ.0)GOTO 9331
+	    is_hours_axis = 0
+	    IF(LABEL.EQ.'PDAY')THEN
+		ITYPETb=0
+		is_hours_axis = 2
+	    ELSE IF(LABEL(1:1).EQ.'H')THEN
+		ITYPETb=0
+		is_hours_axis = 1
+	    ELSE IF(LABEL(1:1).EQ.'D')THEN
+		ITYPETb=0
+		is_hours_axis = 0
+	    ELSE IF(LABEL(1:1).EQ.'M')THEN
+		ITYPETb=1
+	    ELSE
+		ITYPETb=3
+	    ENDIF
+C
+C	PROCESS TIME AXIS STYLE
+C
+9331	    IF(ITYPETb.EQ.0)THEN
+		IF(INDEX(LABEL,'HRD').NE.0)THEN
+		    ITXTPEb=2
+		ELSE
+		    ITXTPEb=1
+		ENDIF
+	    ELSE IF(ITYPETb.EQ.1)THEN
+		IF(INDEX(LABEL,'DAYM').NE.0)THEN
+		    ITXTPEb=2
+		ELSE
+		    ITXTPEb=1
+		ENDIF
+		MONYRLAB = .FALSE.
+		IF (INDEX(LABEL,'DMY').NE.0) MONYRLAB = .TRUE.
+	    ELSE
+		IF(INDEX(LABEL,'MON1').NE.0)THEN
+		    ITXTPEb=3
+		ELSE IF(INDEX(LABEL,'MONY').NE.0)THEN
+		    ITXTPEb=2
+		ELSE
+		    ITXTPEb=1
+		ENDIF
+
+*               Century axis mod
+	        CENFLAG = .FALSE.
+	        IF(INDEX(LABEL,'MULTIY').NE.0) CENFLAG = .TRUE.
+
+*               multi-decade axis mod
+	        MULTICENFLAG = .FALSE. 
+	        IF(INDEX(LABEL,'MULTID').NE.0) THEN
+		   CENFLAGb = .TRUE. 
+		   MULTICENFLAGb = .TRUE. 
+	        ENDIF
+	    ENDIF
+	    MONYRLABb = .FALSE.  ! Option for MON and DAY types. 
+	    IF (INDEX(LABEL,'DMY').NE.0) MONYRLABb = .TRUE.
+	    IF (LABEL.EQ.'HR' .OR. LABEL.EQ.'PDAY') MONYRLABb = .TRUE.
+	    LABELTb=ITXTPEb*ITXLBPb
+	    
+	    GOTO 10
+c------------------------------------------------------------------------------------
+
 C	TXLSZE
-9400	    IF(IFLG1)TCSIZE=P(1)
+9400	    CONTINUE
+	    IF (itflg .EQ. 2) THEN
+	       IF(IFLG1)TCSIZEb=P(1)
+	    ELSE
+	       IF(IFLG1)TCSIZE=P(1)
+	       IF (itflg.EQ.0.AND.IFLG1) TCSIZEb=P(1) 
+	    ENDIF
+	    
 	    GOTO 10
 C	TXLINT
-9500	    IF(IFLG1)IFDB=P(1)
-	    IF(IFLG2)ISDB=P(2)
+9500	    CONTINUE
+	    IF (itflg .EQ. 2) THEN
+	       IF(IFLG1)IFDBb=P(1)
+	       IF(IFLG2)ISDBb=P(2)
+	    ELSE
+	       IF(IFLG1)IFDB=P(1)
+	       IF(IFLG2)ISDB=P(2)
+	       IF (itflg.EQ.0) THEN
+	          IF(IFLG1)IFDBb=P(1)
+	          IF(IFLG2)ISDBb=P(2)
+	       ENDIF
+
+	    ENDIF
 	    GOTO 10
 C	TXNMTC
-9600	    IF(IFLG1)NMTCT=P(1)
+9600	    CONTINUE
+	    IF (itflg .EQ. 2) THEN
+	       IF(IFLG1)NMTCTb=P(1)
+	    ELSE
+	       IF(IFLG1)NMTCT=P(1)
+	       IF (itflg.EQ.0 .AND.IFLG1)NMTCTb=P(1) 
+	    ENDIF
 	    GOTO 10
 C	TXLABP
-9700	    IF(IFLG1)THEN
-		ITXLBP=P(1)
-		LABELT=ITXTPE*ITXLBP
+9700	    CONTINUE
+	    IF (itflg .EQ. 2) THEN
+	       IF(IFLG1)THEN
+		  ITXLBPb=P(1)
+		  LABELTb=ITXTPE*ITXLBP
+	       ENDIF
+	    ELSE
+	       IF(IFLG1)THEN
+		  ITXLBP=P(1)
+		  LABELT=ITXTPE*ITXLBP
+		  IF (itflg.EQ.0) THEN
+ 		     ITXLBPb=P(1)
+		     LABELTb=ITXTPE*ITXLBP
+		  ENDIF
+	       ENDIF
 	    ENDIF
 	    GOTO 10
 C	AUTOLAB
@@ -1336,11 +1549,11 @@ C	VPOINT
 	    IF(M.GE.3.AND.IFLG(3).NE.0)VIEWZ=P(3)
 	    WRITE(SYM,999)'X'
 999	    FORMAT('*PPL$VIEW_',A1)
-	    CALL PUTVAL(SYM,VIEWX,4,IER)
+	    CALL PUTVAL(SYM,VIEWX,6,IER)
 	    WRITE(SYM,999)'Y'
-	    CALL PUTVAL(SYM,VIEWY,4,IER)
+	    CALL PUTVAL(SYM,VIEWY,6,IER)
 	    WRITE(SYM,999)'Z'
-	    CALL PUTVAL(SYM,VIEWZ,4,IER)
+	    CALL PUTVAL(SYM,VIEWZ,6,IER)
 	    GOTO 10
 C	CLSPLT
 *           Close a metafile
@@ -1384,7 +1597,7 @@ C	RIBFAST (RIBBON/FAST)
 	    GOTO 10
 
 C	RIBMISS (RIBBON/MISS=)  
-9990	    CONTINUE
+9982	    CONTINUE
 * Plot style for missing-data in ribbon plots: 
 * Default: thin black line. Can request /missing=dash, /missing=blank, 
 * /missing= color-palette (e.g. gray_light). The color palette 
@@ -1394,6 +1607,15 @@ C	RIBMISS (RIBBON/MISS=)
             CALL RIBBON_MISSING      
 	    GOTO 10
 
+
+C	GAPLOC (PLOT/VS/GAPLOC)  
+9984	    CONTINUE
+* Extra variable sent on PLOT/VS plots, with 1 or zero to indicate
+* end of segments
+	    gap_var = 0
+            gap_var = P(1) 
+	    GOTO 10
+
 C     RWDSEQ & RWD
 600	    CALL OPENF(FILE,IERR)
 	    IF(IERR.NE.0)GOTO 10
diff --git a/ppl/plot/ppldata.F b/ppl/plot/ppldata.F
index 1bd85ca..21e0598 100644
--- a/ppl/plot/ppldata.F
+++ b/ppl/plot/ppldata.F
@@ -61,6 +61,9 @@ C     for compatibility with Ferret use of symbols.
 * V62  2/08 *acm*increase default number of contour levels to NLEV=30 (MODE NLEVELS)
 *                If this is changed, also change it in fer/dat/xprog_state_data.F
 * v691 5/14 *acm* Change name MOD to TEKMOD
+* 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)
 
 	INCLUDE 'PARAMPL5.DAT'
 	include 'axis_inc.decl'
@@ -169,6 +172,7 @@ C
 	DATA UP2/3*.1,.05,.15,.05,.05,.1,.05,.1,190*.1/
 	DATA LLENG,LNUM,IWIND/100000*0,1,0/   ! lleng(NPOLYGON)
 	DATA IPEN,IP/201*1,0,1,2*0/
+	DATA gap_var/0/
 
 C
 C       Mod *JD* 3.91 to set default tty output to unit 6, not 5
@@ -216,6 +220,9 @@ C
 	DATA TLO,DT,TCSIZE,ITYPET/1.,1440.,.10,3/
 	DATA NMTCT,LABELT,IFDB,ISDB,ITFLG/0,-1,1,1,0/
 	DATA VANG,IVFLG,IAUTOT/0.,0,1/ 
+	DATA TLOb,DTb,TCSIZEb,ITYPETb/1.,1440.,.10,3/
+	DATA NMTCTb,LABELTb,IFDBb,ISDBb,ITFLGb/0,-1,1,1,0/
+	DATA VANGb,IVFLGb,IAUTOTb/0.,0,1/ 
 C
 	DATA TSMX,TLX,TSMY,TLY,IX,IY/.125,.25,.125,.25,0,0/ 
 C
diff --git a/ppl/plot/pplldx.F b/ppl/plot/pplldx.F
index 95cfe07..e8c4a5b 100644
--- a/ppl/plot/pplldx.F
+++ b/ppl/plot/pplldx.F
@@ -119,6 +119,7 @@ c
 * V68  *acm* 1/12  changes for double-precision ferret, single-precision pplus
 *      *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
 
 * FERRET 9-21-88: replaced include files to make all declarations explicit
 ! original:
@@ -171,9 +172,10 @@ c
 	REAL xt(*),yt(*), xdt
 #endif
 	CHARACTER BC2WHOI*14, tstrt*(*), tref*(*)
-	REAL*8 	  WHOI2BC, tstart,tstop,time,tmin
+	REAL*8	WHOI2BC, DIFF, tstart, tstop, time, tmin, off, rate, 
+     .		dxmin, dxmax, dymin, dymax, xymin, xymax dtd
 	INTEGER	icode, npts, i, ix, iy
-	REAL	DIFF, off, rate, xs, ys
+	REAL	xs, ys
 	LOGICAL  TM_FPEQ_SNGL
 	LOGICAL  flip			!  FERRET mod 10/93
 
@@ -188,6 +190,8 @@ c
         SAVE        tstart,tmin,tstop
 
 c
+	dtd = dt
+
 	if(linen.eq.0)call rsmnmx
 	linen=linen+1
 	jtype=1
@@ -195,8 +199,6 @@ c
 	ny=1
 	flip = itflg .EQ. -1		!  FERRET mod 10/93
 
-
-
 **	if(ABS(itflg).eq.1)then		!  FERRET mod 10/93  "ABS"
 
 	translate = ABS(itflg).eq.1
@@ -213,8 +215,8 @@ c **               passing thru c routine, a blank tref is somehow different??
 c
 c	calculate offset and rate for time data
 c
-	    off=diff(itstrt,tstrt)/dt+1.0
-	    rate=xdt/dt
+	    off=diff(itstrt,tstrt)/dtd+1.0
+	    rate=xdt/dtd
 **	else
 **	    off=1.0
 **	    rate=1.0
@@ -222,14 +224,21 @@ c
 c
 c	load data
 c
+
+C 8/2015 compute min and max in double precision, then translate
+
+	dxmin=1.0e36
+	dxmax=-dxmin
+	dymin=dxmin
+	dymax=dxmax
+
 	ix=ibase-1
 	iy=ix+pplmem_nsize/2
 	if(icode.eq.0 .OR. icode.EQ.3) THEN
 	    do 100 i=1,npts
+
 	        xs = REAL(xt(i))
 	        ys = REAL(yt(i))
-* FERRET mod 10/93 - apply transformation to Y data
-* FERRET mod  3/00 - screen X and Y separately for missing values
 	        IF ( flip ) THEN
 
 	          IF ( yeq .AND. TM_FPEQ_SNGL(ys,cmyeq) ) THEN
@@ -258,25 +267,52 @@ c
 	             pplmem(ix+i) = bad_flag
 	          ELSEIF (translate) then
 		     pplmem(ix+i)=(xt(i)-1.0)*rate+off
-	          else
+	          ELSE
 		     pplmem(ix+i)=xt(i)
-		  endif
+		  ENDIF
+
+		  IF ( .NOT.(xeq .AND. TM_FPEQ_SNGL(xs,cmxeq)) ) THEN
+		     dxmin = MIN(dxmin, xt(i))
+		     dxmax = MAX(dxmax, xt(i))
+		  ENDIF
+		  IF ( .NOT.(yeq .AND. TM_FPEQ_SNGL(ys,cmyeq)) ) THEN
+		     dymin = MIN(dymin, yt(i))
+		     dymax = MAX(dymax, yt(i))
+		  ENDIF
 
 		ENDIF
-* end of 10/93 FERRET mod
-* end of  3/00 FERRET mod
+
+		  IF ( .NOT.(xeq .AND. TM_FPEQ_SNGL(xs,cmxeq)) ) THEN
+		     dxmin = MIN(dxmin, xt(i))
+		     dxmax = MAX(dxmax, xt(i))
+		  ENDIF
+		  IF ( .NOT.(yeq .AND. TM_FPEQ_SNGL(ys,cmyeq)) ) THEN
+		     dymin = MIN(dymin, yt(i))
+		     dymax = MAX(dymax, yt(i))
+		  ENDIF
 
 100	    continue
+
+            if (flip) THEN
+	       IF (translate) then
+		   dymin = (dymin-1.0)*rate+off
+		   dymax = (dymax-1.0)*rate+off
+	       ENDIF
+	    ELSE
+	       IF (translate) then
+		   dxmin = (dxmin-1.0)*rate+off
+		   dxmax = (dxmax-1.0)*rate+off
+	       ENDIF
+	    ENDIF
+
 	else if(icode.eq.1)then
 	    do 200 i=1,npts
 	        xs = REAL(xt(i))
-* FERRET mod 2/89 - screen bad data
 	        IF ( ( xeq .AND. TM_FPEQ_SNGL(xs,cmxeq) ) ) THEN
 	           pplmem(ix+i) = bad_flag
 	           pplmem(iy+i) = i     ! 3/00 mod
 	           GOTO 200
 	        ENDIF
-* end of 2/89 FERRET mod
 		pplmem(iy+i)=i
 	        if (translate) then
 		   pplmem(ix+i)=(xt(i)-1.0)*rate+off
@@ -287,13 +323,11 @@ c
 	else
 	    do 300 i=1,npts
 	        ys = REAL(yt(i))
-* FERRET mod 2/89 - screen bad data
 	        IF ( ( yeq .AND. TM_FPEQ_SNGL(ys,cmyeq) ) ) THEN
 	           pplmem(ix+i) = bad_flag
 	           pplmem(iy+i) = bad_flag
 	           GOTO 300
 	        ENDIF
-* end of 2/89 FERRET mod
 		if (translate) then
 		   pplmem(ix+i)=(float(i)-1.0)*rate+off
 	        else
@@ -305,23 +339,6 @@ c
 * FERRET mod 2/89 - replace bad data LIMITS flags
 	cmxeq = bad_flag
 	cmyeq = bad_flag
-* end of 2/89 FERRET mod
-
-	xmin=1.0e36
-	xmax=-xmin
-	ymin=xmin
-	ymax=xmax
-	do 400 i=1,npts
-* FERRET mod 2/89 -*re-mod 3/00*  eliminate bad data from min/max calculation 
-	IF ( pplmem(ix+i).NE.bad_flag ) THEN
- 	  if(xmin.gt.pplmem(ix+i)) xmin=pplmem(ix+i)
-	  if(xmax.lt.pplmem(ix+i)) xmax=pplmem(ix+i)
-	ENDIF
-	IF ( pplmem(iy+i).NE.bad_flag ) THEN
-	  if(ymin.gt.pplmem(iy+i)) ymin=pplmem(iy+i)
-	  if(ymax.lt.pplmem(iy+i)) ymax=pplmem(iy+i)
-	ENDIF
-400	continue
 c
 c	some variable definitions
 c
@@ -331,76 +348,29 @@ c	itmin   earliest tmin for all lines (in WHOI format)
 c	itmax   latest  tstop for all lines (in WHOI format)
 c	itstart reference start time (if iautot the first lines tstrt) (???)
 c
-* FERRET 9-21-88: replaced code dependent on 1970 reference
-! original:
-!	if(itflg.eq.1)then
-!	    if(linen.eq.1)then
-!		read(itstrt,999)iy,im,id,ihr
-!999		format(3i2.2,i4.4)
-!		call mdymt(temp,im,id,iy)
-!		temp(3)=ihr
-!		tstart=mtmin(temp)
-!c
-!c	calc itmin
-!c
-!		tmin=tstart+(xmin-off)*dt
-!		call minmt(tmin,start)
-!		call mtmdy(start,im,id,iy)
-!		write(itmin,999)iy,im,id,ifix(start(3))
-!c
-!c	calc itmax
-!c
-!		tstop=tstart+(xmax-off)*dt
-!		call minmt(tstop,stop)
-!		call mtmdy(stop,im,id,iy)
-!		write(itmax,999)iy,im,id,ifix(stop(3))
-!	    else
-!		tmin=tstart+(xmin-off)*dt
-!		tstop=tstart+(xmax-off)*dt
-!		read(itmin,999)iy,im,id,ihr
-!		call mdymt(temp,im,id,iy)
-!		temp(3)=ihr
-!		time=mtmin(temp)
-!		if(tmin.lt.time)then
-!		    call minmt(tmin,start)
-!		    call mtmdy(start,im,id,iy)
-!		    write(itmin,999)iy,im,id,ifix(start(3))
-!		endif
-!c
-!		read(itmax,999)iy,im,id,ihr
-!		call mdymt(temp,im,id,iy)
-!		temp(3)=ihr
-!		time=mtmin(temp)
-!		if(tstop.gt.time)then
-!		    call minmt(tstop,stop)
-!		    call mtmdy(stop,im,id,iy)
-!		    write(itmax,999)iy,im,id,ifix(stop(3))
-!		endif
-!	    endif
-!	endif
 
 	if(translate)then  		! 11.30.95 WAS:	if(itflg.eq.1)then
 		if(itflg.eq.1) then 	! 11.30.95 for both x and y
-		   xymin  = xmin
-		   xymax  = xmax
+		   xymin  = dxmin
+		   xymax  = dxmax
 	        else 			! gotta be -1
-		   xymin  = ymin
-		   xymax  = ymax
+		   xymin  = dymin
+		   xymax  = dymax
 		endif
 
 	    if(linen.eq.1)then
 		tstart = WHOI2BC( itstrt )		! t=1 of time axis
 
-		tmin=tstart+(xymin-1.0)*dt		! start of plot axis
+		tmin=tstart+(xymin-1.0)*dtd		! start of plot axis
 		itmin = BC2WHOI( tmin )
 
-		tstop=tstart+(xymax-1.0)*dt		! end of plot axis
+		tstop=tstart+(xymax-1.0)*dtd		! end of plot axis
 		itmax = BC2WHOI( tstop )
 
 	    else
 
-		tmin=tstart+(xymin-1.0)*dt
-		tstop=tstart+(xymax-1.0)*dt
+		tmin=tstart+(xymin-1.0)*dtd
+		tstop=tstart+(xymax-1.0)*dtd
 
 		time = WHOI2BC( itmin )
 		if(tmin.lt.time)  itmin = BC2WHOI( tmin )   ! chg. plot start
@@ -412,7 +382,11 @@ c
 * end of FERRET 9-21 changes
         
 	pbuf=1
-* ORIG	call stmnmx(pplmem,pplmem_nsize,xmin,xmax,ymin,ymax,0.,0.)
+c 8/2015 Should stmnmx use double precisison xmin,xmax, ...?  Seems ok as single.
+	xmin = dxmin
+	xmax = dxmax
+	ymin = dymin
+	ymax = dymax
 	call stmnmx(pplmem,pplmem_nsize,xmin,xmax,ymin,ymax)
 
 	lnum = linen
diff --git a/ppl/plot/ppllist.F b/ppl/plot/ppllist.F
index 83a2387..e4a987a 100644
--- a/ppl/plot/ppllist.F
+++ b/ppl/plot/ppllist.F
@@ -62,6 +62,7 @@ C                with "*(*)" for the linux port
 * V552 *acm* 3/03 For SHAKEY info, write out location of key, whether it was
 *                 automatically set or set by user with SHASET
 * PyFr *kms* 5/13 Add alpha channel (opaque)
+* V694  *acm*  1/15 Changes to allow two time axes on plot (F-T)
 
         include 'parampl5_dat.decl'
         include 'PARAMPL5.DAT'
@@ -313,7 +314,7 @@ C     TAXIS
       WRITE(LLUN,9984) IT1(13:14)//IT1(1:12),SYM,
      *IT2(13:14)//IT2(1:12),SYM2,ITSTRT(13:14)//ITSTRT(1:12),
      *SYM3,NMTCT,LABELT,
-     *IFDB,ISDB,TAXTYP(ITFLG),onoff(iautot)
+     *IFDB,ISDB,TAXTYP(MIN(ITFLG,1)),onoff(iautot)
 
 9984  FORMAT(9X,'  TMIN=',A14,1x,A21,/9X,'  TMAX=',A14,1x,A21/9X,
      *'TSTART=',A14,1x,A21,/9X,'NMTC=',I3,' LABEL=',I3,' IFDB=',I3,
diff --git a/ppl/plot/prmtiv.F b/ppl/plot/prmtiv.F
index f77edb9..ddfa188 100644
--- a/ppl/plot/prmtiv.F
+++ b/ppl/plot/prmtiv.F
@@ -55,7 +55,8 @@ C              after applying an offset.)
 * V683 12/12 *acm* Fix for applying a font setting in multiple line labels
 * V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
 * 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
 C**
 C**
 C***********************************************************************
@@ -153,7 +154,7 @@ C
 	INCLUDE 'SYSTEM.INC'
 	INCLUDE 'gkscm1_inc.decl'  ! with wsid for igrnpt
 	INCLUDE 'GKSCM1.INC'
-
+	INCLUDE 'pyfonts.cmn'
 
 C
 C
@@ -208,13 +209,13 @@ C
 	        CALL RANGE(RMIN,RMAX,NTIC,RLOW,RHIGH,RINC)
 	    endif
 	    SYM='*PPL$RANGE_LOW'
-	    CALL PUTVAL(SYM,RLOW,4,IER)
+	    CALL PUTVAL(SYM,RLOW,7,IER)
 C
 	    SYM='*PPL$RANGE_HIGH'
-	    CALL PUTVAL(SYM,RHIGH,4,IER)
+	    CALL PUTVAL(SYM,RHIGH,7,IER)
 C
 	    SYM='*PPL$RANGE_INC'
-	    CALL PUTVAL(SYM,RINC,4,IER)
+	    CALL PUTVAL(SYM,RINC,7,IER)
 C
 C***	XAXIS
 C
@@ -298,7 +299,7 @@ C
 	    call color(ipen(0))
 	    CALL XAXIS1(XLOW,XHIGH,XTICC,NSMTCS,LINTT,XUNIT,
      *		IPOS,FRMTX,XFF,Y,YFF,CHSIZE,across,dms,vgrat,
-     *		vcolor,vline,xvaloff)
+     *		vcolor,vline,xvaloff,IPEN(0))
 
             CALL tm_break_lines (xlab, lnbeg, lnend, numlines)
             nfont = 0
@@ -430,7 +431,7 @@ c	    ENDIF
 	    call color(ipen(0))
 	    CALL YAXIS1(XX,XFF,YLOW,YHIGH,YTICC,NSMTCS,LINTT,YUNIT,
      *		IPOS,FRMTX,YFF,CHSIZE,across,dms,hgrat,hcolor,hline,
-     *          yvaloff,.FALSE.,SHRINKY)
+     *          yvaloff,.FALSE.,SHRINKY,IPEN(0))
 
             CALL tm_break_lines (ylab, lnbeg, lnend, numlines)
             nfont = 0
@@ -555,6 +556,9 @@ C
 	ELSE IF(ICOM.EQ.'%LABEL')THEN
 	    IF(N.EQ.0)RETURN
 
+* (PyFerret) moveable labels style 
+	    IF (pyfont .AND. pyf_set(imove)) igroup = imove
+
 * get missing inputs interactively -- through mouse input (6/99)
 * ... if the user **explicitly** omits the justification (iflg(3)) then
 *	put up menu (including arrow options)
@@ -668,6 +672,10 @@ C  Set up to use any font settings from this line on subsequent lines.
                ENDIF
 
   40        CONTINUE
+  	    
+* (PyFerret) cancel tic-mark text style
+	   IF (pyfont) igroup = fnt_all
+
 C
 C
 C***	%WHERE
diff --git a/ppl/plot/rdseq.F b/ppl/plot/rdseq.F
index 5309237..7e7ec27 100644
--- a/ppl/plot/rdseq.F
+++ b/ppl/plot/rdseq.F
@@ -48,6 +48,7 @@ C**
 C *kob* 04/07/96 passed in character strings had to be declared 
 C                with "*(*)" for the linux port 
 * V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
+* V695  *acm*  9/15 Changes for hour:min labeling on time axes
 
 	INCLUDE 'PARAMPL5.DAT'
 	INCLUDE 'HD.INC'
@@ -67,6 +68,7 @@ C                with "*(*)" for the linux port
 	INCLUDE 'COMEPV.INC'
 	INCLUDE 'COMEPS.INC'
 
+	REAL*8	DIFF
 	LOGICAL LEOF,LFIRST,LSTICK
 	CHARACTER*10 CEPIC1,CEPIC2,FILE*(*)
 	CHARACTER YES*3,NO*2,SYM*120,CSYM*6
diff --git a/ppl/plot/redsf.F b/ppl/plot/redsf.F
index 1cccb80..abb81b9 100644
--- a/ppl/plot/redsf.F
+++ b/ppl/plot/redsf.F
@@ -48,6 +48,7 @@ C**
 C *kob* 04/07/96 passed in character strings had to be declared 
 C                with "*(*)" for the linux port 
 * V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
+* V695  *acm*  9/15 Changes for hour:min labeling on time axes
 
 	INCLUDE 'PARAMPL5.DAT'
 	INCLUDE 'LINES.INC'
@@ -62,6 +63,7 @@ C                with "*(*)" for the linux port
 	INCLUDE 'TAXIS.INC'
 	INCLUDE 'SWITCH.INC'
 
+	REAL*8	DIFF
 	character sym*120,str*120,file*(*)
 C     NREC=NUMBER OF RECORDS TO BE READ 
 C     NGRP=NUMBER OF GROUPS TO BE READ PER RECORD 
diff --git a/ppl/plot/setax.F b/ppl/plot/setax.F
index 052d112..6fd11d4 100644
--- a/ppl/plot/setax.F
+++ b/ppl/plot/setax.F
@@ -1,5 +1,5 @@
 	SUBROUTINE SETAX(X,NXS,XF,YF,XL,YL,XH,YH,NMX,NMY,
-     *	XTI,XTL)
+     *	XTI,XTL,its_ribbon)
 *
 *
 *  This software was developed by the Thermal Modeling and Analysis
@@ -48,12 +48,20 @@
 * v5.41 *acm*   6/20/02 remove unneeded calls to GETSYM.
 * V554  9/03 *acm* Fix precision bug double precision, for fine grids in 
 *                  curvlinear coordinates. See also pltit.F, plotz.F
+* V694  *acm*  1/15 Changes to allow two time axes on plot (F-T)
+* 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
 
-        real            x,diff,rxax,rxmon,rxchr,thi,xti,xtl
+	REAL*8		DIFF, dtd
+        real            x,rxax,rxmon,rxchr,thi,xti,xtl
         real            xmn,xmx,xt,yt
         real*8		dxl, dxh, dxf, dyl, dyh, dyf
+	logical		its_ribbon
                                                                       
-        integer         nxs,iy,nmx,i,ibasex,ibasey,len,j,nmy          
+        integer         nxs,iy,nmx,i,ibasex,ibasey,len,j,nmy    
+	
+	integer		lnum_lines
                                                                       
         external        diff                                          
 *       End declarations 9.6.88
@@ -102,6 +110,8 @@ C	KTYPE = 0 -XY  1 -Z  2-VECTOR
 	LOGICAL CONTR,VECTR
 	CHARACTER IT1TMP*14,IT2TMP*14
 
+	dtd = dt
+
 C	SETUP AXIS FOR ALL PLOT TYPES.
 c	CONTR=MAKEP.EQ.'CONTOUR'.OR.MAKEP.EQ.'VIEW'.or.makep.eq.'SHADE'
 c     *	.OR.MAKEP.EQ.'VECTOR'
@@ -111,7 +121,6 @@ c     *	.OR.MAKEP.EQ.'VECTOR'
      *          .or.makep.eq.'FLOWLINE'
      *          .or.makep.eq.'FILL'.or.makep.eq.'PIXEL'
 
-
 	VECTR=MAKEP.EQ.'PLOTV'.OR.MAKEP.EQ.'PLOTUV'
      *	.OR.MAKEP.EQ.'VELVCT'
 	IY=NXS/2
@@ -119,14 +128,17 @@ c     *	.OR.MAKEP.EQ.'VECTOR'
 	    IF (IAUTOT .EQ. 1 .AND.
      1	        (IFORM(1:3).EQ.'EPI' .OR. IFORM(1:3).EQ.'BIB' .or.
      2		iform(1:3).eq.'LDX')) THEN
-		CALL FIXTIM (ITMIN,ITMAX,IT1,IT2,ITYPET)
-		TLO = 1. - DIFF(IT1,ITSTRT)/DT
+		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
 	    ELSE
 		CALL FIXTIM (IT1,IT2,IT1TMP,IT2TMP,ITYPET)
 		IT1=IT1TMP
 		IT2=IT2TMP
-		TLO = 1. - DIFF(IT1,ITSTRT)/DT
 	    ENDIF
+	    TLO = 1. - DIFF(IT1,ITSTRT)/dtd
 C
 C	    CHANGE FROM 3-CHAR MON TO 1-CHAR MON IF INSUFFICIENT SPACE
 C
@@ -141,10 +153,49 @@ C
 		itxtpe=3
 		labelt=itxtpe*itxlbp
 	    endif
-	    THI=TLO+DIFF(IT1,IT2)/DT
+	    THI=TLO+DIFF(IT1,IT2)/dtd
 	ENDIF
+
+
+	IF(ITFLG.EQ.2)THEN
+	    IF (IAUTOT .EQ. 1 .AND.
+     1	        (IFORM(1:3).EQ.'EPI' .OR. IFORM(1:3).EQ.'BIB' .or.
+     2		iform(1:3).eq.'LDX')) THEN
+		CALL FIXTIM (ITMIN,ITMAX,IT1b,IT2b,ITYPETb) 
+		TLOb = 1. - DIFF(IT1,ITSTRT)/dtd
+	    ELSE
+		CALL FIXTIM (IT1b,IT2b,IT1TMP,IT2TMP,ITYPETb)
+		IT1b=IT1TMP
+		IT2b=IT2TMP
+		TLOb = 1. - DIFF(IT1b,ITSTRTb)/dtd
+	    ENDIF
+C
+C	    CHANGE FROM 3-CHAR MON TO 1-CHAR MON IF INSUFFICIENT SPACE
+C
+	    RXAX=DIFF(IT1b,IT2b)/1440.
+	    RXMON=30.*XLEN/RXAX
+	    RXCHR=TCSIZE*6.
+	    IF (RXCHR .GT. RXMON) then
+		itxtpeb=3
+		labeltb=itxtpeb*itxlbpb
+	    endif
+	    THIb=TLOb+DIFF(IT1b,IT2b)/dtd
+	ENDIF
+
 	call trans(0,xmin,ymin,xtm,ytm)
 	call trans(0,xmax,ymax,xtx,ytx)
+	
+	IF(ITFLG.EQ.2)THEN
+	    XTI=XHI
+	    XTL=XLO
+	    XHI=THI
+	    XLO=TLO
+	    DXF=XLEN/(XHI-XLO)
+	    IF(CONTR)THEN
+		DXL=(xtm-XLO)*DXF
+		DXH=XLEN+(xtx-XHI)*DXF
+	    ENDIF
+	ENDIF
 	IF(ITFLG.EQ.1)THEN
 	    XTI=XHI
 	    XTL=XLO
@@ -161,8 +212,8 @@ C	CONTOUR PLOT
 		IF(IAUTOX.EQ.1)THEN
 		    IF(ITYPEX.GT.1)THEN
 			CALL RANGEL(xtm,xtx,XLO,XHI)
-			XLO=ALOG10(ABS(XLO))
-			XHI=ALOG10(ABS(XHI))
+			XLO=LOG10(ABS(XLO))
+			XHI=LOG10(ABS(XHI))
 		    ELSE
 			CALL RANGE(xtm,xtx,NTICX,XLO,XHI,XTIC)
 		    ENDIF
@@ -191,7 +242,9 @@ C	CONTOUR PLOT
 		    XMX=-XMN
 		    IBASEX=0
 		    IBASEY=IY
-		    DO 10 I=1,LNUM
+		    lnum_lines = lnum
+		    IF (its_ribbon) lnum_lines = 1  
+		    DO 10 I=1,lnum_lines
 			LEN=LLENG(I)
 			DO 20 J=1,LEN
 			    IF((XLE.AND.X(IBASEX+J).LE.CMXLE).OR.
@@ -210,8 +263,8 @@ C	CONTOUR PLOT
 		ENDIF
 		IF(ITYPEX.GT.1)THEN
 		    CALL RANGEL(XMN,XMX,XLO,XHI)
-		    XLO=ALOG10(ABS(XLO))
-		    XHI=ALOG10(ABS(XHI))
+		    XLO=LOG10(ABS(XLO))
+		    XHI=LOG10(ABS(XHI))
 		ELSE
 		    CALL RANGE(XMN,XMX,NTICX,XLO,XHI,XTIC)
 		ENDIF
@@ -220,6 +273,18 @@ C	CONTOUR PLOT
 	    NMX=NMTCX
 	ENDIF
 C	YAXIS
+	IF(ITFLG.EQ.2)THEN
+	    XTI=YHI
+	    XTL=YLO
+	    YHI=THIb
+	    YLO=TLOb
+	    DYF=YLEN/(YHI-YLO)
+	    IF(CONTR)THEN
+		DYL=(ytm-YLO)*DYF
+		DYH=YLEN+(ytx-YHI)*DYF
+	    ENDIF
+        ENDIF
+
 	IF(ITFLG.EQ.-1)THEN
 	    XTI=YHI
 	    XTL=YLO
@@ -236,8 +301,8 @@ C CONTOUR DATA
 		IF(IAUTOY.EQ.1)THEN
 		    IF(ITYPEY.GT.1)THEN
 			CALL RANGEL(ytm,ytx,YHI,YLO)
-			YHI=ALOG10(ABS(YHI))
-			YLO=ALOG10(ABS(YLO))
+			YHI=LOG10(ABS(YHI))
+			YLO=LOG10(ABS(YLO))
 		    ELSE
 			CALL RANGE(ytm,ytx,NTICY,YLO,YHI,YTIC)
 		    ENDIF
@@ -258,7 +323,9 @@ C CONTOUR DATA
 		XMX=-XMN
 		IBASEY=IY
 		IBASEX=0
-		DO 30 I=1,LNUM
+		lnum_lines = lnum
+		IF (its_ribbon) lnum_lines = 1  
+		DO 30 I=1,lnum_lines
 		    DO 40 J=1,LLENG(I)
 			IF((XLE.AND.X(IBASEX+J).LE.CMXLE).OR.
      *			(XEQ.AND.X(IBASEX+J).EQ.CMXEQ).OR.
@@ -281,8 +348,8 @@ C CONTOUR DATA
 		ENDIF
 		IF(ITYPEY.GT.1)THEN
 		    CALL RANGEL(XMN,XMX,YLO,YHI)
-		    YLO=ALOG10(ABS(YLO))
-		    YHI=ALOG10(ABS(YHI))
+		    YLO=LOG10(ABS(YLO))
+		    YHI=LOG10(ABS(YHI))
 		ELSE
 		    CALL RANGE(XMN,XMX,NTICY,YLO,YHI,YTIC)
 		ENDIF
@@ -291,6 +358,19 @@ C CONTOUR DATA
 	    ENDIF
 	ENDIF
 
+C	YAXIS and XAXIS are time/forecast axes
+	IF(ITFLG.EQ.2)THEN
+	    XTI=YHI
+	    XTL=YLO
+	    YHI=THIb
+	    YLO=TLOb
+	    DYF=YLEN/(YHI-YLO)
+	    IF(CONTR)THEN
+		DYL=(ytm-YLO)*DYF
+		DYH=YLEN+(ytx-YHI)*DYF
+	    ENDIF
+	ENDIF
+ 
         IF (IAUTOX .NE. 0) CALL setax_syms('X', xlo, xhi)
         IF (IAUTOY .NE. 0) CALL setax_syms('Y', ylo, yhi)
 
@@ -300,5 +380,6 @@ C CONTOUR DATA
 	YL = DYL
 	XH = DXH
 	YH = DYH
+	
 	RETURN
 	END
diff --git a/ppl/plot/setlab.F b/ppl/plot/setlab.F
index 6a3a4f7..4fcb9bc 100644
--- a/ppl/plot/setlab.F
+++ b/ppl/plot/setlab.F
@@ -1,4 +1,4 @@
-	SUBROUTINE SETLAB(XF,YF,LTT,LTB,LYL,LYR,LXT,LXB,IFX,IFY)
+	SUBROUTINE SETLAB(XF,YF,LTT,LTB,LYL,LYR,LXT,LXB,IFX,IFY,LTBb)
 *
 *
 *  This software was developed by the Thermal Modeling and Analysis
@@ -46,16 +46,12 @@ C**
 C**
 C *kob* 04/07/96 passed in character strings had to be declared 
 C                with "*(*)" for the linux port 
+* V694  *acm*  1/15 Changes to allow two time axes on plot (F-T)
 
-#ifdef unix
 	INCLUDE 'AXIS.INC'
 	INCLUDE 'TAXIS.INC'
 	INCLUDE 'AXISL.INC'
-#else
-        INCLUDE 'pplinc:AXIS.INC'
-        INCLUDE 'pplinc:TAXIS.INC'
-        INCLUDE 'pplinc:AXISL.INC'
-#endif
+
 	CHARACTER IFX*(*),IFY*(*)
 
 	EXTERNAL scale
@@ -68,6 +64,7 @@ C     SETUP AXIS
 	LYR=0 
 	LXT=0 
 	LXB=0 
+	LXBb=0 
 	IF(LABELY.EQ.-1)THEN 
 	    LYL=-1 
 	ELSE IF(LABELY.EQ.1)THEN 
@@ -83,6 +80,11 @@ C     SETUP AXIS
 	ELSE IF(LABELT.GT.0)THEN 
 	    LTT=LABELT 
 	END IF 
+	IF(LABELTb.LT.0)THEN 
+	    LTBb=LABELTb 
+	ELSE IF(LABELTb.GT.0)THEN 
+	    LTTb=LABELTb 
+	END IF 
 	CALL SCALE(XF,YF,XORG,YORG,XLO,YLO) 
 	IF(IFRX.EQ.' ')THEN 
 	    CALL FRMT(XLO,XHI,NSIGX,IFX) 
diff --git a/ppl/plot/stmnmx.F b/ppl/plot/stmnmx.F
index 7b19192..b3545b9 100644
--- a/ppl/plot/stmnmx.F
+++ b/ppl/plot/stmnmx.F
@@ -45,6 +45,7 @@
 * *jd* - 4.20.99 Don't delete symbols {X,Y}{MIN,MAX} in overlay plots
 * V580 *acm* 8/04  Allow for PPL POLYGON as well as PPL FILLPOL after a POLY/SET command.
 * V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
+* v695 9/15 *acm* write values to PPL* symbols using 6 digits not 4
 
 	DIMENSION X(NSIZE)
 C**
@@ -86,16 +87,16 @@ C
 *jd*begin
 	    IF (.NOT.SOVER) THEN
 	       SYM='*PPL$XMIN'
-	       CALL PUTVAL(SYM,XMIN1,4,IER)
+	       CALL PUTVAL(SYM,XMIN1,7,IER)
 C       
 	       SYM='*PPL$XMAX'
-	       CALL PUTVAL(SYM,XMAX1,4,IER)
+	       CALL PUTVAL(SYM,XMAX1,7,IER)
 C       
 	       SYM='*PPL$YMIN'
-	       CALL PUTVAL(SYM,YMIN1,4,IER)
+	       CALL PUTVAL(SYM,YMIN1,7,IER)
 C       
 	       SYM='*PPL$YMAX'
-	       CALL PUTVAL(SYM,YMAX1,4,IER)
+	       CALL PUTVAL(SYM,YMAX1,7,IER)
 	    ENDIF
 *jd*end
 
@@ -169,22 +170,22 @@ c
 	    endif
 c
 	    SYM='*PPL$ZMIN'
-	    CALL PUTVAL(SYM,ZMIN,4,IER)
+	    CALL PUTVAL(SYM,ZMIN,7,IER)
 C
 	    SYM='*PPL$ZMAX'
-	    CALL PUTVAL(SYM,ZMAX,4,IER)
+	    CALL PUTVAL(SYM,ZMAX,7,IER)
 c
 	    sym='*PPL$XHIGH'
-	    call putval(sym,xhigh,4,ier)
+	    call putval(sym,xhigh,7,IER)
 c
 	    sym='*PPL$YHIGH'
-	    call putval(sym,yhigh,4,ier)
+	    call putval(sym,yhigh,7,IER)
 c
 	    sym='*PPL$XLOW'
-	    call putval(sym,xlow,4,ier)
+	    call putval(sym,xlow,7,IER)
 c
 	    sym='*PPL$YLOW'
-	    call putval(sym,ylow,4,ier)
+	    call putval(sym,ylow,7,IER)
 
 C       Don't define line symbols for FILLPOL/POLYGON
 	ELSE if (makep .ne. 'FILLPOL' .AND. makep .ne. 'POLYGON') then
@@ -193,16 +194,16 @@ C	LINE DATA
 
 	    WRITE(SYM,998)'XMIN',LINEN
 998	    FORMAT('*PPL$',A,'(',I2,')')
-	    CALL PUTVAL(SYM,XMIN1,4,IER)
+	    CALL PUTVAL(SYM,XMIN1,7,IER)
 C
 	    WRITE(SYM,998)'XMAX',LINEN
-	    CALL PUTVAL(SYM,XMAX1,4,IER)
+	    CALL PUTVAL(SYM,XMAX1,7,IER)
 C
 	    WRITE(SYM,998)'YMIN',LINEN
-	    CALL PUTVAL(SYM,YMIN1,4,IER)
+	    CALL PUTVAL(SYM,YMIN1,7,IER)
 C
 	    WRITE(SYM,998)'YMAX',LINEN
-	    CALL PUTVAL(SYM,YMAX1,4,IER)
+	    CALL PUTVAL(SYM,YMAX1,7,IER)
 
 * If its a ribbon plot, we need the min and max of the color-by variable.
 	    IF (linen .EQ. 2) THEN
@@ -231,9 +232,9 @@ C
 	    XT=X(IBASEX+J)*XFCT(I)+XOFF(I)
 	    YT=X(IBASEY+J)*YFCT(I)+YOFF(I)
 	    WRITE(SYM,998)'XFIRST',LINEN
-	    CALL PUTVAL(SYM,XT,4,IER)
+	    CALL PUTVAL(SYM,XT,7,IER)
 	    WRITE(SYM,998)'YFIRST',LINEN
-	    CALL PUTVAL(SYM,YT,4,IER)
+	    CALL PUTVAL(SYM,YT,7,IER)
 	    GOTO 30	
 20	    CONTINUE
 30	    DO 40 J=LEN,1,-1
@@ -246,9 +247,9 @@ C
 	    XT=X(IBASEX+J)*XFCT(I)+XOFF(I)
 	    YT=X(IBASEY+J)*YFCT(I)+YOFF(I)
 	    WRITE(SYM,998)'XLAST',LINEN
-	    CALL PUTVAL(SYM,XT,4,IER)
+	    CALL PUTVAL(SYM,XT,7,IER)
 	    WRITE(SYM,998)'YLAST',LINEN
-	    CALL PUTVAL(SYM,YT,4,IER)
+	    CALL PUTVAL(SYM,YT,7,IER)
 	    GOTO 50
 40	    CONTINUE
 	ENDIF
diff --git a/ppl/plotlib/SOURCE_FILES b/ppl/plotlib/SOURCE_FILES
index 921cb61..2a1130c 100644
--- a/ppl/plotlib/SOURCE_FILES
+++ b/ppl/plotlib/SOURCE_FILES
@@ -8,6 +8,7 @@ conseg_section.F\
 contur.F\
 datpt.F\
 daywk1.F\
+delay.F\
 diff.F\
 frmt.F\
 getlev.F\
@@ -26,6 +27,7 @@ plotny.F\
 plott7.F\
 reset_labsiz.F\
 scinot.F\
+scinot_d.F\
 smooth.F\
 smx1.F\
 smy1.F\
diff --git a/ppl/plotlib/contur.F b/ppl/plotlib/contur.F
index 4c7b9b9..5ba1a01 100644
--- a/ppl/plotlib/contur.F
+++ b/ppl/plotlib/contur.F
@@ -68,6 +68,7 @@ C  v67  2/2011 *acm* Fix ticket 1799; do contouring in larger sections.
 * 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. 
+* V6.95 *acm* 3/15 Changes for PyFerret fonts. 
 
 ****************************************************************************
 C**
@@ -131,12 +132,16 @@ c     oceanography emr   dec/69
 	include 'pltcom_dat.decl'
 	include 'PLTCOM.DAT'
         include 'xcurvilinear.cmn'
+        INCLUDE 'pyfonts.cmn'
+	include 'axis_inc.decl'
+	include 'AXIS.INC'
+
 
 * TMAP interrupt flag
 
 	include 'xinterrupt.cmn'
 
-	integer*4 ixpon,ind10,jbit,ind1,indl
+	integer*4 ixpon,ind10,jbit,ind1,indl, skiplab
 	character frmt*20,str*40
 	integer colold
 ! TMAP mod, horz contour labels:
@@ -170,6 +175,9 @@ c
 	if(nlev)1200,1200,12
 12	pi=3.1415926
 
+
+        IF (pyfont .AND. pyf_set(icont)) igroup = icont
+
 c
 c	apply the rotation and scaling
 c
@@ -832,7 +840,18 @@ c
 ! draw the label and reset stest to 0. which indicates that the label has
 ! been drawn.  the next label should be dslab distance over.
 !860	call symbel(xlab,ylab,angle,hgt,nchar,str)	! original code (860)
-	call symbel(xlab,ylab,angle,hgt,nchar,str)
+
+* PyFerret Fonts locate the label by user units
+
+        IF (pyfont) THEN
+          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
+	ENDIF
+
+	iF (skiplab.EQ.0) call symbel(xlab,ylab,angle,hgt,nchar,str)
 	stest=0.
 ! TMAP mod, horz contour labels:
 ! this section of code stores the contour label locations for the current
@@ -903,6 +922,9 @@ c check for lines crossing the branch cut in curvilinear grids. Pick up the pen.
 c
 1100	continue
 1200	if(colour.ne.colold)call color(colold)
+
+        IF (pyfont .AND. pyf_set(icont)) igroup = fnt_all
+
 	return
 	end
 
diff --git a/ppl/plotlib/diff.F b/ppl/plotlib/diff.F
index 5d50fab..7f30dc2 100644
--- a/ppl/plotlib/diff.F
+++ b/ppl/plotlib/diff.F
@@ -1,4 +1,4 @@
-	FUNCTION DIFF(IT1,IT2)
+	DOUBLE PRECISION FUNCTION DIFF(IT1,IT2)
 C** 
 C**    @(#)diff.F	1.1    3/10/88
 C**
@@ -54,6 +54,8 @@ C**
 *  *kob* 1/10/02 - for some reason, also need to explicitely only use first 14
 *                  chars of IT1, IT2.  This only showed up as a problem with Linux
 *                  linked statically, for some odd reason
+* V695  *acm*  9/15 Changes for hour:min labeling on time axes
+
 	CHARACTER*14 IT1_14, IT2_14
 	INTEGER*4 JDAY
 	REAL*8 DATE2, DATE1, WHOI2BC, RDATE
@@ -67,7 +69,7 @@ C**
 *	CALL TIME3(IT1,IY1,IM1,ID1,IH1,IMN1,ISC1,ICN1)
 *	CALL TIME3(IT2,IY2,IM2,ID2,IH2,IMN2,ISC2,ICN2)
 *#ifdef unix
-*	DIFF=FLOAT(JDAY(IY2,IM2,ID2,IH2,IMN2,ISC2,ICN2)-
+*	DIFF=DOUBLE(JDAY(IY2,IM2,ID2,IH2,IMN2,ISC2,ICN2)-
 *     * JDAY(IY1,IM1,ID1,IH1,IMN1,ISC1,ICN1))
 *#else
 *	DIFF=FLOATJ(JDAY(IY2,IM2,ID2,IH2,IMN2,ISC2,ICN2)-
diff --git a/ppl/plotlib/scinot.F b/ppl/plotlib/scinot.F
index d1791f6..bf60e55 100644
--- a/ppl/plotlib/scinot.F
+++ b/ppl/plotlib/scinot.F
@@ -48,12 +48,19 @@ C *kob* 04/07/96 passed in character strings had to be declared
 C                with "*(*)" for the linux port
 C *acm* 11/05    Changes for deg-min-sec labelling. for these long
 C                labels make the character size a bit smaller.
+* V6.95 *acm* 3/15 Changes for PyFerret fonts. 
+
+	INCLUDE 'pyfonts.cmn'
+
         REAL charsize
 	CHARACTER STR*(*),ITMP*20,ITMP2*10,SUB*20,IC*1
 	character ESTR*1,MESTR*2,lestr*1,lmestr*2
 	data lestr,lmestr/'e','-e'/
 	DATA ESTR,MESTR/'E','-E'/
-c
+
+	INTEGER		ndeg, nc, codepoint, utf8strlen
+	CHARACTER*4	utf8str
+
         charsize = CSZE
 	IF(NCHR.GT.20)RETURN
 	ITMP=' '
@@ -62,7 +69,32 @@ c
 	NS=0
 	L=0
 	J=1
-	NE=0
+	NEE=0
+
+c If we are drawing with PyFerret fonts, convert the # to a degree symbol,
+c and just go on to SYMBEL. 
+
+        IF (pyfont .AND. INDEX(str, '#').GT.0) THEN
+
+C UTF-8 for the degree symbol
+
+C          degree symbol is codepoint 0xB0 (176), which is UTF-8 0xC2 0xB0 (194 176)
+
+	   ITMP = str
+	   ndeg = INDEX(str, '#')
+	   IF (ndeg .GT. 0 ) THEN
+	      codepoint = 176
+	      CALL CREATE_UTF8_STR(codepoint, utf8str, utf8strlen)
+	      ITMP = str(1:ndeg-1)//utf8str(1:utf8strlen)
+	      IF (ndeg.LT.nchr) ITMP = 
+     .               str(1:ndeg-1)//utf8str(1:utf8strlen)//str(ndeg+1:nchr)
+           ENDIF
+	   NC = NCHR
+	   IF (ndeg.EQ.nchr) NC = NCHR+1
+	   ndeg = 0
+	   GOTO 2000
+	ENDIF
+
 	DO 10 NM=1,20
 	IF(NM.GT.NCHR)GOTO 100
 	IC=STR(NM:NM)
@@ -75,7 +107,7 @@ c
 			GOTO 20
 		ENDIF
 	ENDIF
-	IF((IC.LT.'0'.OR.IC.GT.'9').AND.IC.NE.'.')THEN
+        IF((IC.LT.'0'.OR.IC.GT.'9').AND.IC.NE.'.')THEN
 		SUB=STR(NM:)
 		NC=J-1
 		NS=LNBLK(SUB,20)
@@ -85,14 +117,14 @@ c
 	J=J+1
 10	CONTINUE
 100	IF(IC.EQ.' '.OR.NM.GT.NCHR)GOTO 200
-	NE=2
+	NEE=2
 	IF(STR(1:1).NE.estr.AND.STR(1:2).NE.mestr
      *	.and.str(1:1).ne.lestr.and.str(1:2).ne.lmestr)THEN
 	ITMP(J:J+1)=' x'
 	J=J+2
 	ENDIF
 200	NC=J-1
-	IF(NE.EQ.0)GOTO 1000
+	IF(NEE.EQ.0)GOTO 1000
 	IF(IC.EQ.estr.or.ic.eq.lestr)NM=NM+1
 	IS=0
 	DO 60 K=NM,20
@@ -113,13 +145,19 @@ c
 300	IF(L.NE.0)GOTO 1000
 	L=1
 	ITMP2='0'
-1000  IF (ns .GT. 6) charsize = 0.9* charsize
+1000  CONTINUE
+      IF (ns .GT. 6) charsize = 0.9* charsize
+2000  CONTINUE
       C=COS(DEG*1.7453292E-2) 
       S=SIN(DEG*1.7453292E-2) 
-      WID2=SYMWID(charsize,NE,'10') 
-      WID1=SYMWID(charsize,NC,ITMP)+WID2 
-      WID3=WID1+SYMWID(charsize*.75,L,ITMP2) 
-      WID=WID3+SYMWID(charsize,NS,SUB)
+      IF (pyfont .AND. NEE.EQ.0) THEN
+         WID = SYMWID(charsize,NC,ITMP)
+      ELSE
+         WID2=SYMWID(charsize,NEE,'10') 
+         WID1=SYMWID(charsize,NC,ITMP)+WID2 
+         WID3=WID1+SYMWID(charsize*.75,L,ITMP2) 
+         WID=WID3+SYMWID(charsize,NS,SUB)
+      ENDIF
       IF(ITYPE.EQ.3)RETURN 
       GO TO (1,2,3)ITYPE+1 
 1     XL=X-WID*C*.5/XF+charsize*.5*S/XF 
@@ -131,15 +169,16 @@ c
 3     XL=X+charsize*.5*S/XF 
       YL=Y-charsize*.5*C/YF 
 400   CALL SYMBEL(XL,YL,DEG,charsize,NC,ITMP) 
-	IF(NE.NE.0)THEN
-      CALL SYMBEL(XL+(WID1-WID2)*C/XF,YL+(WID1-WID2)*S/YF, 
-     *DEG,charsize,NE,'10') 
-      XLT=XL+WID1*C/XF-charsize*.625*S/XF 
-      YLT=YL+WID1*S/YF+charsize*.625*C/YF 
-      CALL SYMBEL(XLT,YLT,DEG,charsize*.75,L,ITMP2) 
-	ENDIF
-	XL=XL+WID3*C/XF
-	YL=YL+WID3*S/YF
-	CALL SYMBEL(XL,YL,DEG,charsize,NS,SUB)
+      IF(NEE.NE.0)THEN
+         CALL SYMBEL(XL+(WID1-WID2)*C/XF,YL+(WID1-WID2)*S/YF, 
+     *   DEG,charsize,NEE,'10') 
+         XLT=XL+WID1*C/XF-charsize*.625*S/XF 
+         YLT=YL+WID1*S/YF+charsize*.625*C/YF 
+         CALL SYMBEL(XLT,YLT,DEG,charsize*.75,L,ITMP2) 
+      ENDIF
+      XL=XL+WID3*C/XF
+      YL=YL+WID3*S/YF
+      CALL SYMBEL(XL,YL,DEG,charsize,NS,SUB)
+
       RETURN 
       END 
diff --git a/ppl/plotlib/scinot.F b/ppl/plotlib/scinot_d.F
similarity index 96%
copy from ppl/plotlib/scinot.F
copy to ppl/plotlib/scinot_d.F
index d1791f6..975b615 100644
--- a/ppl/plotlib/scinot.F
+++ b/ppl/plotlib/scinot_d.F
@@ -1,4 +1,4 @@
-	SUBROUTINE SCINOT(X,Y,DEG,CSZE,NCHR,STR,ITYPE,WID,XF,YF)
+	SUBROUTINE SCINOT_d(X,Y,DEG,CSZE,NCHR,STR,ITYPE,WID,XF,YF)
 *
 *
 *  This software was developed by the Thermal Modeling and Analysis
@@ -48,6 +48,8 @@ C *kob* 04/07/96 passed in character strings had to be declared
 C                with "*(*)" for the linux port
 C *acm* 11/05    Changes for deg-min-sec labelling. for these long
 C                labels make the character size a bit smaller.
+	REAL*8 x,y,xf,yf
+	REAL   wid,wid1,wid2,wid3
         REAL charsize
 	CHARACTER STR*(*),ITMP*20,ITMP2*10,SUB*20,IC*1
 	character ESTR*1,MESTR*2,lestr*1,lmestr*2
@@ -75,7 +77,7 @@ c
 			GOTO 20
 		ENDIF
 	ENDIF
-	IF((IC.LT.'0'.OR.IC.GT.'9').AND.IC.NE.'.')THEN
+	IF((IC.LT.'0'.OR.IC.GT.'9').AND.IC.NE.'.'.AND.IC.NE.':')THEN
 		SUB=STR(NM:)
 		NC=J-1
 		NS=LNBLK(SUB,20)
diff --git a/ppl/plotlib/taxis.F b/ppl/plotlib/taxis.F
index 69300ab..e8c88f6 100644
--- a/ppl/plotlib/taxis.F
+++ b/ppl/plotlib/taxis.F
@@ -1,5 +1,5 @@
 	SUBROUTINE TAXIS(IT,TLO,IT1,IT2,DT,NMTCT,LTT,IFDB,ISDB,
-     *	XF,YHI,YF,TCSIZE,yacross,vgrat,vcolor,vline)
+     *	XF,YHI,YF,TCSIZE,yacross,vgrat,vcolor,vline,color0,is_hours_axis)
 *
 *
 *  This software was developed by the Thermal Modeling and Analysis
@@ -48,6 +48,7 @@ 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 V695  *acm*  9/15 Changes for hour:min labeling on time axes
 
 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.  
@@ -56,6 +57,7 @@ C sides. HLINE and VLINE control this.
 
 	CHARACTER*(*) IT1,IT2
         
+	INTEGER color0, is_hours_axis
         REAL yacross
         REAL vgrat(4,2)        ! line type: 0=tics only, <0=line, >0=dash lengths 
         INTEGER vcolor(*)      ! pen number 
@@ -63,12 +65,12 @@ C sides. HLINE and VLINE control this.
 
 	GOTO (10,20,20,30)IT+1
 10	CALL TAXIS0(TLO,IT1,IT2,DT,NMTCT,LTT,IFDB,ISDB,XF,YHI,YF,TCSIZE,
-     .              yacross,vgrat,vcolor,vline)
+     .              yacross,vgrat,vcolor,vline,color0,is_hours_axis)
 	RETURN
 20	CALL TAXIS1(TLO,IT1,IT2,DT,NMTCT,LTT,IFDB,ISDB,XF,YHI,YF,TCSIZE,
-     .              yacross,vgrat,vcolor,vline)
+     .              yacross,vgrat,vcolor,vline,color0)
 	RETURN
 30	CALL TAXIS3(TLO,IT1,IT2,DT,NMTCT,LTT,IFDB,ISDB,XF,YHI,YF,TCSIZE,
-     .              yacross,vgrat,vcolor,vline)
+     .              yacross,vgrat,vcolor,vline,color0)
 	RETURN
 	END
diff --git a/ppl/plotlib/taxis0.F b/ppl/plotlib/taxis0.F
index a4c995e..c9c4fc5 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)
+     1    TFACT,Y,YFACT,CSIZE,yacross,vgrat,vcolor,vline,color0,is_hours_axis)
 
 *
 *
@@ -56,6 +56,8 @@ 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**
@@ -93,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
@@ -102,10 +104,16 @@ 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*(*),ITIME2*(*),SYM*21
+	CHARACTER ITIME*14,ITIME1*14,ITIME2*14,SYM*21
 	COMMON/TICS/TSMX,TLX,TSMY,TLY,IX,IY
 	COMMON/AXLWID/XWID,YWID
 
+	REAL*8  DIFF, difft
+	REAL*8  td, ytemp1, tfact_d, yfact_d
+	REAL    delt, rem, angl
+	INTEGER color0, is_hours_axis, labint, ticint
+	LOGICAL hvytic
+
 * Parameters for drawing tics across plot
 
         REAL yacross
@@ -122,14 +130,53 @@ 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(ITIME1(9:10).NE.'00')STOP ',1'
-	IF(ITIME2(9:10).NE.'00')STOP ',2'
-     
+	IF (is_hours_axis .EQ. 0) THEN
+	   IF(ITIME1(9:10).NE.'00')STOP ',1'  ! MINUTE,SECOND ARE 0
+	   IF(ITIME2(9:10).NE.'00')STOP ',2'
+	ENDIF
+
         IF(ITIME1(13:14)//ITIME1(1:12).GE.
      .	   ITIME2(13:14)//ITIME2(1:12)) STOP',3'
 
+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.  
@@ -157,9 +204,7 @@ 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
@@ -178,32 +223,50 @@ C     SET PARAMETERS.
 	ELSE
 	FIHDB=-1.4
 	ENDIF
-	YTEMP1=Y+LABEL*(0.9*CSIZE+YTEMP)/YFACT
+	YTEMP1=Y+DBLE(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
+      T=TLO  ! Time in hours, plot units
+      td = tlo
       ITIME=ITIME1
       CALL TIME3(ITIME,IYR,IMON,IDAY,IHR,IMIN,ISEC,ICEN)
       TDAY=T
 
+      tfact_d = tfact
+      yfact_d = yfact
+	
       CALL PLOT(TLO,Y,0,0)
-	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.)
+      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
       ITIME = ITIME3
-      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 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
 
 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.
@@ -212,7 +275,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,60.)
+      CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt) 
       ITIME = ITIME3
 
 C      LOOP:
@@ -220,12 +283,19 @@ C      LOOP:
   110  CONTINUE
 
 	CALL TIME3(ITIME,IYR,IMON,IDAY,IHR,IMIN,ISEC,ICEN)
-	CALL TIME1(1,ITIME,2,' ',I3,ITIME3,60.)
+  	CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt)
 	ITIME=ITIME3
 
 	IF(ITIME(13:14)//ITIME(1:12) .LE.
      .       ITIME2(13:14)//ITIME2(1:12)) THEN
            IF(IHR.EQ.0) ltic = ltic + 1
+	   IF (is_hours_axis .GT. 0) THEN
+	      IF (difft.LE.12 .AND. sec.EQ.0.) THEN 
+	         ltic = ltic+1
+              ELSE
+	         IF (imin.EQ.0. .AND. ihr.NE.0) ltic = ltic+1
+              ENDIF
+	   ENDIF
            GO TO 110
         ENDIF
      
@@ -245,13 +315,14 @@ 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,60.)
+      CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt)
       ITIME = ITIME3
 
 c ----
@@ -261,7 +332,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
@@ -271,13 +342,16 @@ 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(1)
+                     CALL COLOR(color0)
                     CALL VECTRS
                  ENDIF
 
    20         CONTINUE
           CALL TIME3(ITIME,IYR,IMON,IDAY,IHR,IMIN,ISEC,ICEN)
-	IF(IHR.EQ.0)THEN
+	  
+	hvytic = ((is_hours_axis.EQ.0 .AND. IHR.EQ.0) .OR. 
+     .            (is_hours_axis.GT.0 .AND. MOD(imin,labint).EQ.0))
+	IF(hvytic)THEN
 	CALL PLOTT7(T+TIC,Y,TFACT,YFACT,1,IHVY)
               IF ((solid1.OR.dashed1) .AND. vline) THEN ! make line across
                  CALL COLOR(color1)
@@ -288,13 +362,21 @@ 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(1)
+                  CALL COLOR(color0)
                  CALL VECTRS
               ENDIF
       
 	ELSE
-	       CALL PLOTT7(T+TIC,Y,TFACT,YFACT,1,INML)
-     
+              IF (is_hours_axis.GT.0) THEN
+	         IF (MOD(imin,ticint).EQ.0) THEN
+                    CALL PLOTT7(T+TIC,Y,TFACT,YFACT,1,INML)
+		 ELSE 
+                    CALL PLOT(T+TIC,Y,1,0)
+		 ENDIF
+              ELSE
+	         CALL PLOTT7(T+TIC,Y,TFACT,YFACT,1,INML)
+              ENDIF
+	      
                IF ((solid1.OR.dashed1) .AND. vline) THEN ! make line across
                   CALL COLOR(color1)
                   IF (dashed1) THEN
@@ -304,18 +386,33 @@ 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(1)
+                   CALL COLOR(color0)
                   CALL VECTRS
                ENDIF
 
 	ENDIF
 C         THE LABELS
-          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 (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(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
@@ -329,7 +426,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,0.,CSIZE,14,BUFF)
+              CALL SYMBEL(TSYM,YTEMP2,angl,CSIZE,14,BUFF)
 	   ELSE
               TSYM=TDAY+(T+TIC-TDAY-SYMWID(1.5*CSIZE,6,DATE)/TFACT)*.5
 	      CALL SYMBEL(TSYM,YTEMP2,0.,1.5*CSIZE,6,DATE)
@@ -339,32 +436,36 @@ 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
 
-* end of 9/17/89 TMAP mod
+      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
       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/taxis1.F b/ppl/plotlib/taxis1.F
index b738233..1e28f61 100644
--- a/ppl/plotlib/taxis1.F
+++ b/ppl/plotlib/taxis1.F
@@ -1,5 +1,5 @@
       SUBROUTINE TAXIS1(TLO,ITIME1,ITIME2,DT,NSMTIC,LABEL,IDDB,IMDB,
-     1    TFACT,Y,YFACT,CSIZE,yacross,vgrat,vcolor,vline)
+     1    TFACT,Y,YFACT,CSIZE,yacross,vgrat,vcolor,vline,color0)
 
 *
 *
@@ -54,6 +54,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*  5/15 Restore color after a graticule using defined color 0
 
 C**
 C**    @(#)taxis1.f	1.1    3/10/88
@@ -121,6 +122,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
@@ -265,7 +267,7 @@ 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(1)
+                    CALL COLOR(color0)
                     CALL VECTRS
                  ENDIF
 
@@ -284,7 +286,7 @@ 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(1)
+                    CALL COLOR(color0)
                     CALL VECTRS
                  ENDIF
 
@@ -300,7 +302,7 @@ 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(1)
+                 CALL COLOR(color0)
                  CALL VECTRS
               ENDIF
 
diff --git a/ppl/plotlib/taxis3.F b/ppl/plotlib/taxis3.F
index 8e234fe..2d2cbc4 100644
--- a/ppl/plotlib/taxis3.F
+++ b/ppl/plotlib/taxis3.F
@@ -1,5 +1,5 @@
       SUBROUTINE TAXIS3(TLO,ITIME1,ITIME2,DT,NDAY,LABEL,IMDB,IYDB,
-     1    TFACT,Y,YFACT,CSIZE,yacross,vgrat,vcolor,vline)
+     1    TFACT,Y,YFACT,CSIZE,yacross,vgrat,vcolor,vline,color0)
 
 *
 *
@@ -61,7 +61,8 @@ C                with "*(*)" for the linux port
 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 for PyFerret draw lines and tics only once, avoiding overdrawing.
 
 C**
 C**    @(#)taxis3.f	1.1    3/10/88
@@ -128,6 +129,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
@@ -313,6 +315,7 @@ C     LOOP:
 	
 	   IF (IYDB .GT. 0) THEN
 	      IF (MOD(ICEN3*100+IYR3,IYDB).EQ.0) THEN
+	         CALL PLOT  (T+TIC,Y,0,0)
 	         CALL PLOTT7(T+TIC,Y,TFACT,YFACT,1,IHVY)
                  IF ((solid1.OR.dashed1) .AND. vline) THEN ! make line across
                     CALL COLOR(color1)
@@ -323,13 +326,14 @@ 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(1)
+                    CALL COLOR(color0)
                     CALL VECTRS
                  ENDIF
 
 	      ELSE
 	         IF(NOT_ZERO_SIZE) THEN
-     		   CALL PLOTT7(T+TIC,Y,TFACT,YFACT,1,INML) 
+	         CALL PLOT  (T+TIC,Y,0,0)
+	         CALL PLOTT7(T+TIC,Y,TFACT,YFACT,1,INML)
                       IF ((solid2.OR.dashed2) .AND. vline) THEN ! make line across
                          CALL COLOR(color2)
                          IF (dashed2) THEN
@@ -339,7 +343,7 @@ C     LOOP:
                          CALL PLOT(T+TIC,y,0,0) 
                          CALL PLOT(T+TIC,yacross,1,0)
                          CALL PLOT(T+TIC*TDIST,Y,0,0) 
-                         CALL COLOR(1)
+                         CALL COLOR(color0)
                          CALL VECTRS
                       ENDIF
 	      
@@ -348,6 +352,7 @@ C     LOOP:
           ENDIF
 	ELSE
 	   IF(IMON3.EQ.1)THEN
+	      CALL PLOT  (T+TIC,Y,0,0)
 	      CALL PLOTT7(T+TIC,Y,TFACT,YFACT,1,IHVY)
               IF ((solid1.OR.dashed1) .AND. vline) THEN ! make line across
                  CALL COLOR(color1)
@@ -358,11 +363,12 @@ 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(1)
+                 CALL COLOR(color0)
                  CALL VECTRS
               ENDIF
 	   ELSE
 	      IF(NOT_ZERO_SIZE) THEN
+                 CALL PLOT  (T+TIC,Y,0,0)
                  CALL PLOTT7(T+TIC,Y,TFACT,YFACT,1,INML)
                  IF ((solid2.OR.dashed2) .AND. vline) THEN ! make line across
                     CALL COLOR(color2)
@@ -373,7 +379,7 @@ C     LOOP:
                     CALL PLOT(T+TIC,y,0,0) 
                     CALL PLOT(T+TIC,yacross,1,0)
                     CALL PLOT(T+TIC*TDIST,Y,0,0) 
-                    CALL COLOR(1)
+                    CALL COLOR(color0)
                     CALL VECTRS
                  ENDIF
 
@@ -391,8 +397,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(TSYM,YTEMP1,0.,CSIZE,NC,SYM)
+        TSYM=T+(TIC-SYMWID(CSIZE,NC,SYM(:NC))/TFACT)*.5
+        CALL SYMBEL(TSYM,YTEMP1,0.,CSIZE,NC,SYM(:NC))
    50     CONTINUE
           IF(IYDB.EQ.0.OR.NC.EQ.6) GO TO 70
               IF(IYR.EQ.IYR3) GO TO 70
@@ -403,8 +409,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(TSYM,YTEMP2,0.,1.4*CSIZE,4,SYM)
+        TSYM=TYR+(T+TIC-TYR-SYMWID(1.4*CSIZE,4,SYM(:4))/TFACT)*.5
+        CALL SYMBEL(TSYM,YTEMP2,0.,1.4*CSIZE,4,SYM(:4))
 	ENDIF
    60         TYR=T+TIC
    70     CONTINUE
@@ -427,8 +433,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(TSYM,YTEMP2,0.,1.4*CSIZE,4,SYM)
+        TSYM=TYR+(T-TYR-SYMWID(1.4*CSIZE,4,SYM(:4))/TFACT)*.5
+        CALL SYMBEL(TSYM,YTEMP2,0.,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/tayis.F b/ppl/plotlib/tayis.F
index 32eb14b..3b102d0 100644
--- a/ppl/plotlib/tayis.F
+++ b/ppl/plotlib/tayis.F
@@ -1,5 +1,6 @@
 	SUBROUTINE TAYIS(IT,TLO,IT1,IT2,DT,NMTCT,LTT,IFDB,ISDB,
-     *	YF,XHI,XF,TCSIZE,xacross,hgrat,hcolor,hline)
+     *	YF,XHI,XF,TCSIZE,xacross,hgrat,hcolor,hline,color0,is_hours_axis)
+
 C** 
 C**    @(#)tayis.f	1.1    3/10/88
 C**
@@ -55,21 +56,25 @@ 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
 
+	INTEGER is_hours_axis
         REAL xacross           ! to draw tic line across plot
         REAL hgrat(4,2)        ! line type: 0=tics only, <0=line, >0=dash lengths 
         INTEGER hcolor(*)      ! pen number 
+        INTEGER color0	       ! pen number for axis
         LOGICAL hline          ! If true, do the lines across.
 
 	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,
-     .              xacross,hgrat,hcolor,hline)
+     .              xacross,hgrat,hcolor,hline,color0,is_hours_axis)
 	RETURN
 20	CALL TAYIS1(TLO,IT1,IT2,DT,NMTCT,LTT,IFDB,ISDB,YF,XHI,XF,TCSIZE,
-     .              xacross,hgrat,hcolor,hline)
+     .              xacross,hgrat,hcolor,hline,color0)
 	RETURN
 30	CALL TAYIS3(TLO,IT1,IT2,DT,NMTCT,LTT,IFDB,ISDB,YF,XHI,XF,TCSIZE,
-     .              xacross,hgrat,hcolor,hline)
+     .              xacross,hgrat,hcolor,hline,color0)
 	RETURN
 	END
diff --git a/ppl/plotlib/tayis0.F b/ppl/plotlib/tayis0.F
index 0c738a7..3cdef71 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)
+     *	TFACT,X,XFACT,CSIZE,xacross,hgrat,hcolor,hline,color0,is_hours_axis)
 
 *
 *
@@ -56,6 +56,8 @@ 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
@@ -94,8 +96,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         X = X COORDINATE OF TIME AXIS.
+C         XFACT = (LENGTH OF X AXIS IN INCHES)/(LENGTH OF X AXIS IN USER
 C         CSIZE = SIZE TO DRAW HOUR LABELS.
 C                 DAY LABELS WILL BE 1.5 TIMES AS LARGE.
 C
@@ -103,10 +105,16 @@ 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*(*),ITIME2*(*),SYM*21
+	CHARACTER ITIME*14,ITIME1*14,ITIME2*14,SYM*21
 	COMMON/TICS/TSMX,TLX,TSMY,TLY,IX,IY
 	COMMON/AXLWID/XWID,YWID
 
+	REAL*8  DIFF, difft
+	REAL*8  td, xtemp1, tfact_d, xfact_d
+	REAL    delt, rem
+	INTEGER is_hours_axis, labint, ticint
+	LOGICAL hvytic
+
 * Parameters for drawing tics across plot
 
         REAL xacross
@@ -114,6 +122,7 @@ C
         REAL dash2_1, dash2_2, dash2_3, dash2_4
         REAL hgrat(4,2)        ! line type: 0=tics only, <0=line, >0=dash lengths 
         INTEGER hcolor(*)      ! pen number 
+        INTEGER color0	       ! pen number for axis
         LOGICAL hline          ! If true, do the lines across.
         LOGICAL solid1, solid2   ! solid lines across at tics
         LOGICAL dashed1, dashed2 ! dashed lines across at tics
@@ -123,13 +132,52 @@ 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(ITIME1(9:10).NE.'00')STOP ',1'
-	IF(ITIME2(9:10).NE.'00')STOP ',2'
+
+	IF (is_hours_axis .EQ. 0) THEN
+	   IF(ITIME1(9:10).NE.'00')STOP ',1'  ! MINUTE,SECOND ARE 0
+	   IF(ITIME2(9:10).NE.'00')STOP ',2'
+	ENDIF
+
         IF(ITIME1(13:14)//ITIME1(1:12).GE.
      .	   ITIME2(13:14)//ITIME2(1:12)) STOP',3'
-        
+
+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.  
@@ -155,9 +203,6 @@ C     CHECK THE PARAMETERS PASSED TO THE SUBROUTINE.
            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
@@ -176,31 +221,53 @@ C     SET PARAMETERS.
 	ELSE
 	    FIHDB=-1.4
 	ENDIF
-	XTEMP1=X+LABEL*(0.9*CSIZE+XTEMP)/XFACT
+	XTEMP1=X+DBLE(LABEL*(0.9*CSIZE+XTEMP)/XFACT)
+	IF (is_hours_axis.GT.0 .AND. LABEL.LT.0) XTEMP1=XTEMP1-1.5*CSIZE/XFACT
 	IF(LABEL.LT.0) THEN
 	    XTEMP2=X-((4.0+FIHDB)*CSIZE+XTEMP)/XFACT
+	    IF (is_hours_axis.GT.0) XTEMP2=XTEMP2-1.5*CSIZE/XFACT
 	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
+        T=TLO  ! Time in hours, plot units
+	td=tlo
 	ITIME=ITIME1
 	CALL TIME3(ITIME,IYR,IMON,IDAY,IHR,IMIN,ISEC,ICEN)
 	TDAY=T
-	CALL PLOT(X,TLO,0,0)
-	IF(IHR.EQ.0)THEN
-	    CALL PLOTT7(X,TLO,XFACT,TFACT,1,IHVY)
+
+	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)
 	ELSE
-	    CALL PLOTT7(X,TLO,XFACT,TFACT,1,INML)
+           IF (MOD(imin,labint) .EQ. 0) THEN
+              CALL PLOTT7(X,TLO,XFACT,TFACT,1,IHVY)
+           ELSE
+	      CALL PLOTT7(X,TLO,XFACT,TFACT,1,IHVY)
+           ENDIF
 	ENDIF
-	CALL TIME1(1,ITIME,2,' ',I3,ITIME3,60.)
+
+	CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt)  ! next time stepping from 1 (arg 1) to 2 (arg 2) -- return ITIME3
 	ITIME = ITIME3
-	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 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
 
 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.
@@ -209,7 +276,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,60.)
+      CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt)
       ITIME = ITIME3
 
 C      LOOP:
@@ -223,7 +290,15 @@ C      LOOP:
 	IF(ITIME(13:14)//ITIME(1:12) .LE.
      .       ITIME2(13:14)//ITIME2(1:12)) THEN
            IF(IHR.EQ.0) ltic = ltic + 1
-           GO TO 110
+	   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
      
 ! IF no large tics, and if graticules at just the large tics were
@@ -248,7 +323,7 @@ C      LOOP:
       ITIME=ITIME1
       CALL TIME3(ITIME,IYR,IMON,IDAY,IHR,IMIN,ISEC,ICEN)
 
-      CALL TIME1(1,ITIME,2,' ',I3,ITIME3,60.)
+      CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt)
       ITIME = ITIME3
 c ----
 
@@ -268,13 +343,16 @@ C      LOOP:
                     CALL PLOT(x,T+FLOAT(I)*TDIST,0,0) 
                     CALL PLOT(xacross,T+FLOAT(I)*TDIST,1,0)
                     CALL PLOT(x,T+FLOAT(I)*TDIST,0,0) 
-                    CALL COLOR(1)
+                    CALL COLOR(color0)
                     CALL VECTRS
                  ENDIF
 
 20	CONTINUE
 	CALL TIME3(ITIME,IYR,IMON,IDAY,IHR,IMIN,ISEC,ICEN)
-	IF(IHR.EQ.0)THEN
+
+	hvytic = ((is_hours_axis.EQ.0 .AND. IHR.EQ.0) .OR.
+     .            (is_hours_axis.GT.0 .AND. MOD(imin,labint).EQ.0))
+	IF(hvytic)THEN
 	    CALL PLOTT7(X,T+TIC,XFACT,TFACT,1,IHVY)
             
               IF ((solid1.OR.dashed1) .AND. hline) THEN ! make line across
@@ -286,13 +364,22 @@ C      LOOP:
                  CALL PLOT(x,t+tic,0,0) 
                  CALL PLOT(xacross,t+tic,1,0)
                  CALL PLOT(x,t+tic,0,0) 
-                 CALL COLOR(1)
+                 CALL COLOR(color0)
                  CALL VECTRS
               ENDIF
 
 	ELSE
-	    CALL PLOTT7(X,T+TIC,XFACT,TFACT,1,INML)
-            
+
+              IF (is_hours_axis.GT.0) THEN
+                 IF (MOD(imin,ticint).EQ.0) THEN
+                    CALL PLOTT7(X,T+TIC,XFACT,TFACT,1,INML)
+                 ELSE
+                    CALL PLOT(X,T+TIC,1,0)
+                 ENDIF
+              ELSE
+                 CALL PLOTT7(X,T+TIC,XFACT,TFACT,1,INML)
+              ENDIF
+
                  IF ((solid1.OR.dashed1) .AND. hline) THEN ! make line across
                     CALL COLOR(color1)
                     IF (dashed1) THEN
@@ -302,18 +389,35 @@ C      LOOP:
                     CALL PLOT(x,t+tic,0,0) 
                     CALL PLOT(xacross,t+tic,1,0)
                     CALL PLOT(x,t+tic,0,0) 
-                    CALL COLOR(1)
+                    CALL COLOR(color0)
                     CALL VECTRS
                  ENDIF
 
 	ENDIF
 C         THE LABELS
-	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 (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(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
@@ -339,27 +443,29 @@ 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 (MONYRLAB) THEN
+      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(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
+              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
diff --git a/ppl/plotlib/tayis1.F b/ppl/plotlib/tayis1.F
index 08c5fba..4fccb79 100644
--- a/ppl/plotlib/tayis1.F
+++ b/ppl/plotlib/tayis1.F
@@ -1,5 +1,5 @@
 	SUBROUTINE TAYIS1(TLO,ITIME1,ITIME2,DT,NSMTIC,LABEL,IDDB,IMDB,
-     *	TFACT,X,XFACT,CSIZE,xacross,hgrat,hcolor,hline)
+     *	TFACT,X,XFACT,CSIZE,xacross,hgrat,hcolor,hline,color0)
 
 *
 *
@@ -55,6 +55,8 @@ C                with "*(*)" for the linux port
 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**
 C**    @(#)tayis1.f	1.1    3/10/88
 C**
@@ -121,6 +123,7 @@ C
         REAL dash2_1, dash2_2, dash2_3, dash2_4
         REAL hgrat(4,2)        ! line type: 0=tics only, <0=line, >0=dash lengths 
         INTEGER hcolor(*)      ! pen number 
+        INTEGER color0	       ! pen number for axis
         LOGICAL hline          ! If true, do the lines across.
         LOGICAL solid1, solid2   ! solid lines across at tics
         LOGICAL dashed1, dashed2 ! dashed lines across at tics
@@ -267,7 +270,7 @@ C      LOOP:
                     CALL PLOT(x,T+FLOAT(I)*TDIST,0,0) 
                     CALL PLOT(xacross,T+FLOAT(I)*TDIST,1,0)
                     CALL PLOT(x,T+FLOAT(I)*TDIST,0,0) 
-                    CALL COLOR(1)
+                    CALL COLOR(color0)
                     CALL VECTRS
                  ENDIF
 
@@ -286,7 +289,7 @@ C      LOOP:
                  CALL PLOT(x,t+tic,0,0) 
                  CALL PLOT(xacross,t+tic,1,0)
                  CALL PLOT(x,t+tic,0,0) 
-                 CALL COLOR(1)
+                 CALL COLOR(color0)
                  CALL VECTRS
               ENDIF
 	ELSE
@@ -301,7 +304,7 @@ C      LOOP:
                     CALL PLOT(x,t+tic,0,0) 
                     CALL PLOT(xacross,t+tic,1,0)
                     CALL PLOT(x,t+tic,0,0) 
-                    CALL COLOR(1)
+                    CALL COLOR(color0)
                     CALL VECTRS
                  ENDIF
 
diff --git a/ppl/plotlib/tayis3.F b/ppl/plotlib/tayis3.F
index 1036a32..064ab4a 100644
--- a/ppl/plotlib/tayis3.F
+++ b/ppl/plotlib/tayis3.F
@@ -1,5 +1,5 @@
 	SUBROUTINE TAYIS3(TLO,ITIME1,ITIME2,DT,NDAY,LABEL,IMDB,IYDB,
-     *	TFACT,X,XFACT,CSIZE,xacross,hgrat,hcolor,hline)
+     *	TFACT,X,XFACT,CSIZE,xacross,hgrat,hcolor,hline,color0)
 
 *
 *
@@ -58,6 +58,7 @@ C                with "*(*)" for the linux port
 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**
@@ -126,6 +127,7 @@ C
         REAL dash2_1, dash2_2, dash2_3, dash2_4
         REAL hgrat(4,2)        ! line type: 0=tics only, <0=line, >0=dash lengths 
         INTEGER hcolor(*)      ! pen number 
+        INTEGER color0	       ! pen number for axis
         LOGICAL hline          ! If true, do the lines across.
         LOGICAL solid1, solid2   ! solid lines across at tics
         LOGICAL dashed1, dashed2 ! dashed lines across at tics
@@ -307,7 +309,7 @@ C     LOOP:
                  CALL PLOT(x,t+tic,0,0) 
                  CALL PLOT(xacross,t+tic,1,0)
                  CALL PLOT(x,t+tic,0,0) 
-                 CALL COLOR(1)
+                 CALL COLOR(color0)
                  CALL VECTRS
               ENDIF
 	   ELSE
@@ -323,7 +325,7 @@ C     LOOP:
                     CALL PLOT(x,t+tic,0,0) 
                     CALL PLOT(xacross,t+tic,1,0)
                     CALL PLOT(x,t+tic,0,0) 
-                    CALL COLOR(1)
+                    CALL COLOR(color0)
                     CALL VECTRS
                  ENDIF
               ENDIF
@@ -341,7 +343,7 @@ C     LOOP:
                  CALL PLOT(x,t+tic,0,0) 
                  CALL PLOT(xacross,t+tic,1,0)
                  CALL PLOT(x,t+tic,0,0) 
-                 CALL COLOR(1)
+                 CALL COLOR(color0)
                  CALL VECTRS
               ENDIF
 
@@ -358,7 +360,7 @@ C     LOOP:
                     CALL PLOT(x,t+tic,0,0) 
                     CALL PLOT(xacross,t+tic,1,0)
                     CALL PLOT(x,t+tic,0,0) 
-                    CALL COLOR(1)
+                    CALL COLOR(color0)
                     CALL VECTRS
                  ENDIF
 
diff --git a/ppl/plotlib/xaxis1.F b/ppl/plotlib/xaxis1.F
index 2bfe7df..1fad8a5 100644
--- a/ppl/plotlib/xaxis1.F
+++ b/ppl/plotlib/xaxis1.F
@@ -1,6 +1,6 @@
       SUBROUTINE XAXIS1(XLO,XHI,XTIC,NSMTCX,LINTX,XUNIT,LABEL,
      *    IFORMT,XFACT,Y,YFACT,CSIZE,yacross,xdms,vgrat,vcolor,
-     *    vline, xvaloff)
+     *    vline, xvaloff, color0)
 
 *
 *
@@ -52,6 +52,8 @@ C *acm* 11/05  new argument to scinot deg/min/sec labels
 C        1/06  xvaloff,yvaloff add this amount to each x or y axis label. 
 C              (axis data was read as double precision and converted to single 
 C              after applying an offset.)
+C V695 *acm*  5/15 Restore color after a graticule using defined color 0
+C V695 *acm*  5/15 for PyFerret draw lines and tics only once, avoiding overdrawing.
 
 C**
 C**    @(#)xaxis1.f	1.1    3/10/88
@@ -71,6 +73,7 @@ C**
         REAL yacross, dash1, dash2,dash3,dash4, xvaloff
         REAL vgrat(4,2)        ! line type: 0=tics only, <0=line, >0=dash lengths 
         INTEGER vcolor(*)      ! pen number 
+        INTEGER color0	       ! pen number for axis
         LOGICAL vline          ! If true, do the lines across.
         LOGICAL solid          ! solid lines across at tics
         LOGICAL dashed         ! dashed lines across at tics
@@ -82,11 +85,9 @@ C**
 
 
 * TMAP interrupt flag
-#ifdef unix
+
 	include 'xinterrupt.cmn'
-#else
-	INCLUDE 'tmap_pplv11inc:tmap_xinterrupt.cmn'
-#endif
+
 
 C     THIS ROUTINE DRAWS AN X AXIS.  IT LABELS THE AXIS BELOW
 C     IF LABEL=-1, ABOVE IF LABEL=1, AND NOT AT ALL
@@ -109,7 +110,7 @@ CCC     THE FOLLOWING SECTION OF CODE MAKES THIS ROUTINE UPWARD COMPATIABLE.
         ABSSZ=ABS(CSIZE)
         SIGSZ=SIGN(1.,CSIZE)
 C
-C	DRAW AXIS
+C	DRAW AXIS- here do not draw axis, just move the pen. Draw it at the end
 C
 	DIR=SIGN(1.,XTIC)
 	XT=INT(XLO/XTIC+SIGN(0.000001,DIR*XLO))*XTIC
@@ -117,8 +118,8 @@ C
 	ISTOP=IFIX((XHI-XT)/XTIC+0.000001)
 	CALL PLOT(XT,Y,0,0)
 	CALL SMX1(XT,XLO,-XTIC,NSMTCX,XFACT,YFACT,Y,
-     *    yacross,vgrat,vcolor,vline)
-	CALL PLOT(XLO,Y,1,0)
+     .    yacross,vgrat,vcolor,vline)
+	CALL PLOT(XT,Y,1,0)
 	CALL PLOTT7(XT,Y,XFACT,YFACT,1,-8)
 	X=XT
         
@@ -146,13 +147,14 @@ C
            CALL PLOT(X,Y,0,0) 
            CALL PLOT(X,yacross,1,0)
            CALL PLOT(X,Y,0,0) 
-           CALL COLOR(1)
+           CALL COLOR(color0)
            CALL VECTRS
         ENDIF
 
 	X=X+XTIC
 	CALL PLOTT7(X,Y,XFACT,YFACT,1,-8)
 100	CONTINUE
+
 	CALL SMX1(X,XHI,XTIC,NSMTCX,XFACT,YFACT,Y,
      *    yacross,vgrat,vcolor,vline)
         
@@ -165,16 +167,17 @@ C
            CALL PLOT(X,Y,0,0) 
            CALL PLOT(X,yacross,1,0)
            CALL PLOT(X,Y,0,0) 
-           CALL COLOR(1)
+           CALL COLOR(color0)
            CALL VECTRS
         ENDIF
 
+	CALL PLOT(XLO,Y,0,0)
 	CALL PLOT(XHI,Y,1,0)
            
 C
 C	DRAW LABELS
 C
-	IF(LABEL.EQ.0)RETURN
+	IF(LABEL.EQ.0) RETURN
 	IF(LABEL+IX.EQ.0)THEN
 		YTEMP=0.0
 	ELSE
@@ -207,5 +210,6 @@ CC	X=X+XTIC*LINTX
 	if (abs(x) .lt. epsilon*abs(x0)) x = 0.0
 
 200	CONTINUE
+
 	RETURN
 	END
diff --git a/ppl/plotlib/xaxis2.F b/ppl/plotlib/xaxis2.F
index bf0f66d..edf03ba 100644
--- a/ppl/plotlib/xaxis2.F
+++ b/ppl/plotlib/xaxis2.F
@@ -1,5 +1,5 @@
       SUBROUTINE XAXIS2(XLO,XHI,XUNIT,LABEL,IFORMT,IAXIS,
-     * XFACT,Y,YFACT,CSIZE,yacross,vgrat,vcolor,vline)
+     * XFACT,Y,YFACT,CSIZE,yacross,vgrat,vcolor,vline,color0)
 *
 *
 *  This software was developed by the Thermal Modeling and Analysis
@@ -50,13 +50,12 @@ C                with "*(*)" for the linux port
 
 * *acm* - 6/01   changes to allow plot qualifiers to set log axes,
 *                inverse log axes and log depth axes.
-C**
-
+C V695 *acm*  5/15 Restore color after a graticule using defined color 0
+*
 	CHARACTER XLAB*20,IFORMT*(*),XFRMT*12
 	COMMON/TICS/TSMX,TLX,TSMY,TLY,IX,IY
 	COMMON/AXLWID/XWID,YWID
 
-
 * Parameters for drawing tics across plot
 
         REAL yacross
@@ -65,6 +64,7 @@ C**
         REAL vgrat(4,2)        ! line type: 0=tics only, <0=line, >0=dash lengths 
         REAL xt
         INTEGER vcolor(*)      ! pen number 
+        INTEGER color0	       ! pen number for axis
         LOGICAL vline          ! If true, do the lines across.
         LOGICAL solid1, solid2 ! solid lines across at tics
         LOGICAL dashed1, dashed2 ! dashed lines across at tics
@@ -104,6 +104,7 @@ C
          TXHI = TXLO
          TXLO = SGN
       ENDIF
+
 C
 C	DRAW AXIS
 C
@@ -156,7 +157,7 @@ C
                     CALL PLOT(xt,Y,0,0) 
                     CALL PLOT(xt,yacross,1,0)
                     CALL PLOT(xt,Y,0,0) 
-                    CALL COLOR(1)
+                    CALL COLOR(color0)
                     CALL VECTRS
                  ENDIF
 
@@ -173,7 +174,7 @@ C
                  CALL PLOT(xt,Y,0,0) 
                  CALL PLOT(xt,yacross,1,0)
                  CALL PLOT(xt,Y,0,0) 
-                 CALL COLOR(1)
+                 CALL COLOR(color0)
                  CALL VECTRS
               ENDIF
 
@@ -199,7 +200,7 @@ C  for DEPTH axes, X plot coordinates are reversed on page.
                     CALL PLOT(xt,Y,0,0) 
                     CALL PLOT(xt,yacross,1,0)
                     CALL PLOT(xt,Y,0,0) 
-                    CALL COLOR(1)
+                    CALL COLOR(color0)
                     CALL VECTRS
                  ENDIF
 
@@ -216,7 +217,7 @@ C  for DEPTH axes, X plot coordinates are reversed on page.
                  CALL PLOT(xt,Y,0,0) 
                  CALL PLOT(xt,yacross,1,0)
                  CALL PLOT(xt,Y,0,0) 
-                 CALL COLOR(1)
+                 CALL COLOR(color0)
                  CALL VECTRS
               ENDIF
 
diff --git a/ppl/plotlib/yaxis1.F b/ppl/plotlib/yaxis1.F
index c3586f8..1939f51 100644
--- a/ppl/plotlib/yaxis1.F
+++ b/ppl/plotlib/yaxis1.F
@@ -1,6 +1,6 @@
       SUBROUTINE YAXIS1(X,XFACT,YLO,YHI,YTIC,NSMTCY,LINTY,YUNIT,LABEL,
      *    IFORMT,YFACT,CSIZE,xacross,ydms,hgrat,hcolor,hline,
-     *    yvaloff, noylab, SHRINKY)
+     *    yvaloff, noylab, SHRINKY, color0)
 
 *
 *
@@ -54,8 +54,10 @@ C              (axis data was read as double precision and converted to single
 C              after applying an offset.)
 
 * 11/2011 ACM Fixing ticket 1896: When needed, reset the size of numerical axis
-*             labes, so the labels dont run off the edge of the plot.
-
+*             labels, so the labels dont run off the edge of the plot.
+C V695 *acm*  5/15 Restore color after a graticule using defined color 0
+C V695 *acm*  5/15 for PyFerret draw lines and tics only once, avoiding overdrawing.
+C V695 *acm* 10/15 Fix ticket 2320 - missing minor tic marks
 C**
 C**    @(#)yaxis1.f	1.1    3/10/88
 C**
@@ -73,6 +75,7 @@ C**
         REAL xacross, dash1, dash2, dash3, dash4
         REAL hgrat(4,2)        ! line type: 0=tics only, <0=line, >0=dash lengths 
         INTEGER hcolor(*)      ! pen number 
+        INTEGER color0	       ! pen number for axis
         LOGICAL hline          ! If true, do the lines across.
         LOGICAL solid          ! solid lines across at tics
         LOGICAL dashed         ! dashed lines across at tics
@@ -86,12 +89,7 @@ C**
 	parameter (epsilon = 1.e-6)
 
 * TMAP interrupt flag
-#ifdef unix
 	include 'xinterrupt.cmn'
-#else
-	INCLUDE 'tmap_pplv11inc:tmap_xinterrupt.cmn'
-#endif
-C
 C
 C     THIS ROUTINE DRAWS A Y AXIS.  IT LABELS THE AXIS ON THE LEFT
 C     IF LABEL=-1, ON THE RIGHT IF LABEL=1, AND NOT AT ALL
@@ -125,7 +123,7 @@ C
 	CALL PLOT(X,YT,0,0)
 	CALL SMY1(X,XFACT,YFACT,YT,YLO,-YTIC,NSMTCY,
      .     xacross,hgrat,hcolor,hline)
-	CALL PLOT(X,YLO,1,0)
+        CALL PLOT(X,YT,1,0)
 	CALL PLOTT7(X,YT,XFACT,YFACT,1,-6)
 
 	Y=YT
@@ -144,7 +142,7 @@ C
 	DO 100 I=1,ISTOP
 	IF ( interrupted ) RETURN		! TMAP interrupt
 	CALL SMY1(X,XFACT,YFACT,Y,YHI,YTIC,NSMTCY,
-     .     xacross,hgrat,hcolor,hline)
+     .        xacross,hgrat,hcolor,hline)
         IF ((solid.OR.dashed) .AND. hline) THEN ! make line across
            CALL COLOR(hcolor(1))
            IF (dashed) THEN
@@ -154,11 +152,12 @@ C
            CALL PLOT(X,Y,0,0) 
            CALL PLOT(xacross,Y,1,0)
            CALL PLOT(X,Y,0,0) 
-           CALL COLOR(1)
+           CALL COLOR(color0)
            CALL VECTRS
         ENDIF
 
 	Y=Y+YTIC
+	CALL PLOT(X,Y,0,0)
 	CALL PLOTT7(X,Y,XFACT,YFACT,1,-6)
 100	CONTINUE
 	CALL SMY1(X,XFACT,YFACT,Y,YHI,YTIC,NSMTCY,
@@ -173,10 +172,12 @@ C
            CALL PLOT(X,Y,0,0) 
            CALL PLOT(xacross,Y,1,0)
            CALL PLOT(X,Y,0,0) 
-           CALL COLOR(1)
+           CALL COLOR(color0)
            CALL VECTRS
         ENDIF
 
+* Draw the axis line
+	CALL PLOT(X,YLO,0,0)
 	CALL PLOT(X,YHI,1,0)
 
 C
@@ -289,6 +290,7 @@ CC	Y=Y+YTIC*LINTY
            IF (YDMS .GE. 2) ywidt = ywidt - symwid(abssz,1,'''')
            YWID=YWID+YWIDT
         ENDIF
+
 	RETURN
 	END
 
diff --git a/ppl/plotlib/yaxis2.F b/ppl/plotlib/yaxis2.F
index 1961f98..e3e5ccb 100644
--- a/ppl/plotlib/yaxis2.F
+++ b/ppl/plotlib/yaxis2.F
@@ -1,5 +1,5 @@
       SUBROUTINE YAXIS2(X,XFACT,YLO,YHI,YUNIT,LABEL,IFORMT,IAXIS,
-     * YFACT,CSIZE,xacross,hgrat,hcolor,hline)
+     * YFACT,CSIZE,xacross,hgrat,hcolor,hline,color0)
 *
 *
 *  This software was developed by the Thermal Modeling and Analysis
@@ -49,6 +49,7 @@ C *kob* 04/07/96 passed in character strings had to be declared
 C                with "*(*)" for the linux port 
 * *acm* - 6/01   changes to allow plot qualifiers to set log axes,
 *                inverse log axes and log depth axes.
+C V695 *acm*  5/15 Restore color after a graticule using defined color 0
 
 	CHARACTER YLAB*20,IFORMT*(*),YFRMT*12
 	COMMON/TICS/TSMX,TLX,TSMY,TLY,IX,IY
@@ -62,6 +63,7 @@ C                with "*(*)" for the linux port
         REAL hgrat(4,2)        ! line type: 0=tics only, <0=line, >0=dash lengths 
         REAL yt
         INTEGER hcolor(*)      ! pen number 
+        INTEGER color0	       ! pen number for axis
         LOGICAL hline          ! If true, do the lines across.
         LOGICAL solid1,solid2  ! solid lines across at large, small tics
         LOGICAL dashed1, dashed2 ! dashed lines across at large, small tics
@@ -152,7 +154,7 @@ C
                     CALL PLOT(X,yt,0,0) 
                     CALL PLOT(xacross,yt,1,0)
                     CALL PLOT(X,yt,0,0) 
-                    CALL COLOR(1)
+                    CALL COLOR(color0)
                     CALL VECTRS
                  ENDIF
              
@@ -170,7 +172,7 @@ C
                  CALL PLOT(X,yt,0,0) 
                  CALL PLOT(xacross,yt,1,0)
                  CALL PLOT(X,yt,0,0) 
-                 CALL COLOR(1)
+                 CALL COLOR(color0)
                  CALL VECTRS
               ENDIF
 
@@ -197,7 +199,7 @@ C  for DEPTH axes, Y plot coordinates are reversed on page.
                     CALL PLOT(X,yt,0,0) 
                     CALL PLOT(xacross,yt,1,0)
                     CALL PLOT(X,yt,0,0) 
-                    CALL COLOR(1)
+                    CALL COLOR(color0)
                     CALL VECTRS
                  ENDIF
 
@@ -214,7 +216,7 @@ C  for DEPTH axes, Y plot coordinates are reversed on page.
                  CALL PLOT(X,yt,0,0) 
                  CALL PLOT(xacross,yt,1,0)
                  CALL PLOT(X,yt3/2/2004,0,0) 
-                 CALL COLOR(1)
+                 CALL COLOR(color0)
                  CALL VECTRS
               ENDIF
 
diff --git a/ppl/pplepic/fixtim.F b/ppl/pplepic/fixtim.F
index 47bdc2a..e36083f 100644
--- a/ppl/pplepic/fixtim.F
+++ b/ppl/pplepic/fixtim.F
@@ -14,6 +14,7 @@ c	it1,it2 = input range of times in PLOT5's WHOI format (yyddmmhhmm)
 c	itype   = PLOT5 axis type 0 even hours		ending     00
 c                                 1 even days		ending   0000
 c                                 3 even months		ending 010000
+c                                 4 even minutes
 c  Output:
 c	itnew1,itnew2 = range of times which suit the input axis type and
 c                       include the input range of times (yymmddhhmm)
@@ -100,6 +101,7 @@ cc     1		                cdum, idum, itnew2, dt)
 		call time1 (1, it2(1:6)//'000000'//it2(13:14), iseq,
      1		                cdum, idum, itnew2, dt)
 	    endif
+
 	else if (itype .eq. 0) then
 cc	    itnew1=it1(1:8)//'00'//it1(11:14)
 	    itnew1=it1(1:8)//'0000'//it1(13:14)
@@ -113,6 +115,18 @@ cc     1		                cdum, idum, itnew2, dt)
 		call time1 (1, it2(1:8)//'0000'//it2(13:14), iseq,
      1		                cdum, idum, itnew2, dt)
 	    endif
+
+	else if (itype .eq. 4) then
+	    itnew1=it1(1:10)//'00'//it1(13:14)
+	    if (it2(11:12) .eq. '00') then
+		itnew2=it2
+	    else
+		dt=1.
+		iseq=2
+		call time1 (1, it2(1:10)//'00'//it2(13:14), iseq,
+     1		                cdum, idum, itnew2, dt)
+	    endif
+
 	endif
 	return
 	end
diff --git a/ppl/symlib/parse.F b/ppl/symlib/parse.F
index d25580e..b1c965c 100644
--- a/ppl/symlib/parse.F
+++ b/ppl/symlib/parse.F
@@ -70,6 +70,7 @@ C                with "*(*)" for the linux port
 C * v552 *acm* 3/03 Longer strings: changes for multi-line labels
 C v580 *acm* 8/04 Change use of 256 to buflen+1, 
 C                 where buflen is defined in cmndlen.inc
+C V693+ *sh* 2/15 Treat surrounding _DQ_ same as double quote characters
 
         INCLUDE 'cmndlen.inc'
 
@@ -91,13 +92,27 @@ C
 100	I=I+1
 	IF(I.GT.ILEN)RETURN
 	IF(LINE(I:I).EQ.' ')GOTO 100
-	IF(LINE(I:I).EQ.'"')I=I+1
+	IF(LINE(I:I).EQ.'"')THEN
+	   I=I+1
+	ELSEIF (LINE(I:I).EQ.'_'
+     .   .AND. I+3 .LE. ILEN    ) THEN
+	   IF (LINE(I:I+3).EQ.'_DQ_') I=I+4
+	ENDIF
+C
+C get the label (argument)
+C
 	LAB=LINE(I:)
 	IST=I
 	N=ILEN-I+1
 	IF(LAB(N:N).EQ.'"')THEN
 	    LAB(N:N)=' '
 	    N=N-1
+	ELSEIF (LAB(N:N).EQ.'_'
+     .	  .AND. N-3 .GE.1      ) THEN
+	    IF (LAB(N-3:N).EQ.'_DQ_') THEN
+	      LAB(N-3:N) = ' '
+	      N=N-4
+	    ENDIF
 	ENDIF
 	RETURN
 	END
diff --git a/ppl/symlib/parsex.F b/ppl/symlib/parsex.F
index 72294c1..7aeef7d 100644
--- a/ppl/symlib/parsex.F
+++ b/ppl/symlib/parsex.F
@@ -75,6 +75,7 @@ C                with "*(*)" for the linux port
 C* v552 *acm* 3/03 Longer strings: changes for multi-line labels
 * v580 *acm* 8/04 Change use of 256 to buflen+1, 
 *                 where buflen is defined in cmndlen.inc
+* V693+ *sh* 2/15 Allow _DQ_ to function like a double quote char
 
         INCLUDE 'cmndlen.inc'
 
@@ -184,12 +185,27 @@ C
 	ENDIF
 	M=M-1
 	I=IOLD
-	IF(LINE(I:I).EQ.'"')I=I+1
+
+	IF(LINE(I:I).EQ.'"')THEN
+	   I=I+1
+	ELSEIF (LINE(I:I).EQ.'_'
+     .   .AND. I+3 .LE. ILEN    ) THEN
+	   IF (LINE(I:I+3).EQ.'_DQ_') I=I+4
+	ENDIF
+C
+C get the label (argument)
+C
 	LABEL=LINE(I:)
 	N=ILEN-I+1
 	IF(LABEL(N:N).EQ.'"')THEN
 	    LABEL(N:N)=' '
 	    N=N-1
+	ELSEIF (LABEL(N:N).EQ.'_'
+     .	  .AND. N-3 .GE.1      ) THEN
+	    IF (LABEL(N-3:N).EQ.'_DQ_') THEN
+	      LABEL(N-3:N) = ' '
+	      N=N-4
+	    ENDIF
 	ENDIF
 	RETURN
 	END
diff --git a/ppl/symlib/setsym.F b/ppl/symlib/setsym.F
index 8028403..0845e1f 100644
--- a/ppl/symlib/setsym.F
+++ b/ppl/symlib/setsym.F
@@ -76,6 +76,7 @@ C                with "*(*)" for the linux port
 
 C* v552 *acm* 3/03 Longer strings: changes for multi-line labels
 * V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
+* v695 9/15 *acm* write values to PPL* symbols using 6 digits not 4
 
 
 	CHARACTER LINE*(*),VALUE*2048,SYM*120,OPR*1,ARG(4)*120
@@ -282,7 +283,7 @@ C
 	    ELSE
 		GOTO 120
 	    ENDIF
-	    CALL PUTVAL(SYM,X,4,IER)
+	    CALL PUTVAL(SYM,X,7,IER)
 	    RETURN
 	ENDIF
 120	CALL PUTSYM(SYM,VALUE,N,IER)
diff --git a/ppl/tmap_inc/century.cmn b/ppl/tmap_inc/century.cmn
index 36b247b..8b40617 100644
--- a/ppl/tmap_inc/century.cmn
+++ b/ppl/tmap_inc/century.cmn
@@ -4,7 +4,11 @@ C	Common variables used in modifications to time axis labeling
 C
 C *acm*  3/10  Bug 670 fixed: New flag MULTICENFLAG for multi-decade plots, 
 C              do not make small tics by default.
+* *acm*  1/15 V694   Changes to allow two time axes on plot (F-T)
 
 
-	LOGICAL*4 cenflag, monyrlab, multicenflag
-	COMMON/CENTURY/cenflag, monyrlab, multicenflag
+
+	LOGICAL*4 cenflag, monyrlab, multicenflag,
+     .		 cenflagb, monyrlabb, multicenflagb
+	COMMON/CENTURY/cenflag, monyrlab, multicenflag,
+     .		 cenflagb, monyrlabb, multicenflagb
diff --git a/ppl/tmap_inc/cont_inc.decl b/ppl/tmap_inc/cont_inc.decl
index f27cfa8..a79199d 100644
--- a/ppl/tmap_inc/cont_inc.decl
+++ b/ppl/tmap_inc/cont_inc.decl
@@ -9,7 +9,8 @@ c  v581 *acm* 3/05 add flags for use of open levels (-INF) (INF)
 * V68  *acm* 1/12  changes for double-precision ferret, single-precision pplus
 * *acm* 1/13/12 For DP Ferret/ SP Pplus: explicitly declare REALs 
 *               as single-precision
-* v683 *acm*	9/12 ribbon plots: RIBBON_FAST flag for style of ribbon plots
+* V696 *acm*  6/15 Move ribbon_fast setting to lines_inc
+* V695 *acm*  8/15 integer-based levels
 
 	REAL*4	ZLEV,CANGLE
 	INTEGER	LDIG,IVCOMP
@@ -23,6 +24,7 @@ c  v581 *acm* 3/05 add flags for use of open levels (-INF) (INF)
 	INTEGER	NLEV2
 	INTEGER	NSIGC
 	INTEGER CONTOUR_FEWER
+	INTEGER intlev
 	
 *	Following added 8.3.95 *jd*
 	LOGICAL*4 CENTERED,SET_DELTA,NEGINF,POSINF,CONT_KEY
@@ -34,7 +36,5 @@ c  v581 *acm* 3/05 add flags for use of open levels (-INF) (INF)
      .          USE_HIST
 	REAL*4	LEV_STD,LEV_MEAN,LEV_MIN,LEV_MAX,LEV_HIST
 
-* For ribbon-plots: line plots colored-by a variable
-	LOGICAL RIBBON_FAST
 * requires: INCLUDE 'CONT.INC'                                    
 
diff --git a/ppl/tmap_inc/gkplot.cmn b/ppl/tmap_inc/gkplot.cmn
new file mode 100644
index 0000000..4cb1a71
--- /dev/null
+++ b/ppl/tmap_inc/gkplot.cmn
@@ -0,0 +1,6 @@
+C     Common block for GKPLOT routine under complot/gskmv.F
+      INTEGER maxpline, ipline
+      PARAMETER (maxpline=10000)
+      REAL xpline(maxpline),ypline(maxpline)
+      COMMON/GKPLOTCMN/ipline, xpline, ypline
+
diff --git a/ppl/tmap_inc/lines_inc.decl b/ppl/tmap_inc/lines_inc.decl
index 6a08372..af6f79f 100644
--- a/ppl/tmap_inc/lines_inc.decl
+++ b/ppl/tmap_inc/lines_inc.decl
@@ -4,6 +4,10 @@
 * V68  *acm* 1/12  changes for double-precision ferret, single-precision pplus
 * *acm* 1/13/12 For DP Ferret/ SP Pplus: explicitly declare REALs 
 *               as single-precision
+* 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)
+
 	INTEGER	IMARK
 	REAL*4	HMARK
 	INTEGER	ITYPE
@@ -18,4 +22,7 @@
 	INTEGER	LLENG
 	INTEGER	LNUM
 	INTEGER	IWIND
+	INTEGER gap_var
+* For ribbon-plots: line plots colored-by a variable
+	LOGICAL RIBBON_FAST
 * requires: INCLUDE 'PPLV11INC:LINES.INC'                                   
diff --git a/ppl/tmapadds/pplmem.h b/ppl/tmap_inc/pplmem.h
similarity index 99%
rename from ppl/tmapadds/pplmem.h
rename to ppl/tmap_inc/pplmem.h
index bdb08d1..34d3a9b 100644
--- a/ppl/tmapadds/pplmem.h
+++ b/ppl/tmap_inc/pplmem.h
@@ -2,7 +2,7 @@
    Declarations for routines that allow dynamic PPLUS memory buffer 
    9/18/01 *acm*
 
-/*
+*
 *  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),
@@ -36,6 +36,7 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 * V68  *acm* 1/12  changes for double-precision ferret, single-precision pplus
+*/
 
 /* Easier way of handling FORTRAN calls with underscore/no underscore */
 #ifndef FORTRAN
@@ -97,5 +98,5 @@ void FORTRAN(pplldv)( int *, float *, int *, int *, int *, int *,
 void FORTRAN(save_ppl_memory_size)(int *);
 void FORTRAN(get_ppl_memory_size)(int *);
 
-void reallo_ppl_memory( int * );
+void reallo_ppl_memory( int );
 
diff --git a/ppl/tmap_inc/pyfonts.cmn b/ppl/tmap_inc/pyfonts.cmn
new file mode 100644
index 0000000..ce78a3c
--- /dev/null
+++ b/ppl/tmap_inc/pyfonts.cmn
@@ -0,0 +1,41 @@
+*	pyfonts.cmn
+
+* Common block used to declare information for pyFerret fonts
+*	Ansley Manke PMEL/TMAP
+* Settings for general fonts, for groups of fonts:
+*  Tic marks
+*  Title
+*  Logo
+*  Horizontal axis label
+*  Vertical axis label
+*  Contour-line labels
+*  Colorbar
+*   pyfnt_ settings are for all text
+*   pyf_   settings are for the groups. If the group has settings, pyf_set is .TRUE.
+*
+
+	INTEGER		ngp
+	PARAMETER	(ngp=9)
+
+	LOGICAL		pyfont, pyf_set(ngp)
+	INTEGER		pyfnt_under, pyfnt_italic, pyfnt_bold, pyfnt_isiz, 
+     .                  pyf_italic(ngp), pyf_bold(ngp), pyf_isiz(ngp)
+	INTEGER		ititl, ilogo, ihtics, ivtics, ihlab, ivlab, imove, icont, icbar
+	INTEGER		igroup, fnt_all, logolab(3)
+
+	REAL*4		pyfnt_opq, pyfnt_rot,
+     .			pyfnt_red, pyfnt_grn, pyfnt_blu,
+     .			pyf_red(ngp), pyf_grn(ngp), pyf_blu(ngp)
+	CHARACTER*64	pyfnt_fontname, pyfnt_font_dflt
+	CHARACTER*64	pyf_fontname(ngp), pyf_font_dflt(ngp)
+	CHARACTER*8	pyf_group_names(ngp)
+	
+	COMMON/pyfont_args/ pyfont, pyf_set, pyfnt_opq, pyfnt_rot, pyfnt_under, 
+     .			igroup, fnt_all, logolab, ititl, ilogo, 
+     .			ihtics, ivtics, ihlab, ivlab, imove, icont, icbar,
+     .			pyfnt_italic, pyfnt_bold, pyfnt_isiz, 
+     .			pyf_italic, pyf_bold, pyf_isiz,
+     .			pyfnt_red, pyfnt_grn, pyfnt_blu,
+     .			pyf_red, pyf_grn, pyf_blu,
+     .                  pyfnt_fontname, pyfnt_font_dflt, 
+     .                  pyf_fontname, pyf_font_dflt, pyf_group_names
diff --git a/ppl/tmap_inc/taxis_inc.decl b/ppl/tmap_inc/taxis_inc.decl
index 37a73d0..1f70f68 100644
--- a/ppl/tmap_inc/taxis_inc.decl
+++ b/ppl/tmap_inc/taxis_inc.decl
@@ -1,18 +1,38 @@
 * TAXIS_INC.DECL - converted to Unix 2.26.91          
 * COMMON for PLOT+ with all variables declared
 * created for TMAP usage by Steve Hankin 7/88
-	REAL*4	TLO
-	REAL*4	DT
-	REAL*4	TCSIZE
+* *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
+
+	REAL	TLO
+	REAL	DT
+	REAL	TCSIZE
 	INTEGER	ITYPET
 	INTEGER	NMTCT
 	INTEGER	LABELT
 	INTEGER	IFDB
 	INTEGER	ISDB
 	INTEGER	ITFLG
-	REAL*4	VANG
+	REAL	VANG
 	INTEGER	IVFLG
 	INTEGER	IAUTOT
 	INTEGER	ITXTPE
 	INTEGER	ITXLBP
+
+	
+	REAL	TLOb
+	REAL	DTb
+	REAL	TCSIZEb
+	INTEGER	ITYPETb
+	INTEGER	NMTCTb
+	INTEGER	LABELTb
+	INTEGER	IFDBb
+	INTEGER	ISDBb
+	INTEGER	ITFLGb
+	REAL	VANGb
+	INTEGER	IVFLGb
+	INTEGER	IAUTOTb
+	INTEGER	ITXTPEb
+	INTEGER	ITXLBPb
+	INTEGER is_hours_axis
 * requires: INCLUDE 'PPLV11INC:TAXIS.INC'                                   
diff --git a/ppl/tmapadds/SOURCE_FILES b/ppl/tmapadds/SOURCE_FILES
index 0cdd0df..436e773 100644
--- a/ppl/tmapadds/SOURCE_FILES
+++ b/ppl/tmapadds/SOURCE_FILES
@@ -20,6 +20,7 @@ flush_buffered_fillpoly.F\
 getlabfonts.F\
 get_ndx.F\
 get_pix.F\
+get_pyfont_settings.F\
 get_user_coords.F\
 get_world_coords.F\
 hatch_fill_rep.F\
@@ -40,6 +41,7 @@ point_convert.F\
 pplld_pts.F\
 ppllocator.F\
 pplp_ver_data.F\
+pyfont_block_data.F\
 restore_saved_line_colors.F\
 ribbon_missing.F\
 save_line_color.F\
@@ -74,6 +76,7 @@ shade_sub.F\
 strmar.F\
 upnsquish.F\
 use_linear_levels.F\
+user_to_inch.F\
 vec_arrows.F\
 whoi2bc.F\
 ws_fill_rep.F\
@@ -89,5 +92,4 @@ pplldc_envelope.c\
 pplldv_envelope.c\
 pplldx_envelope.c\
 pplld_pts_envelope.c\
-reallo_envelope.c\
-reallo_ppl_memory.c
+reallo_envelope.c
diff --git a/ppl/tmapadds/aline_sub.F b/ppl/tmapadds/aline_sub.F
index 45b91d9..85fd049 100644
--- a/ppl/tmapadds/aline_sub.F
+++ b/ppl/tmapadds/aline_sub.F
@@ -96,7 +96,6 @@ C	KTYPE = 1 -XY  0 -Z  2-VECTOR
         INCLUDE 'makedot.cmn'    ! 10/01 *acm*
 
 	CALL COLOR(IPEN(0))
-!	CALL SETAX(X,NXS,XF,YF,XL,YL,XH,YH,NMX,NMY,XTI,XTL)
 
 	oldx(1) 	= x(1)
 	x(1) 		= axmin
diff --git a/ppl/tmapadds/compute_mnstd.F b/ppl/tmapadds/compute_mnstd.F
index f373d1e..177630f 100644
--- a/ppl/tmapadds/compute_mnstd.F
+++ b/ppl/tmapadds/compute_mnstd.F
@@ -1,4 +1,4 @@
-	SUBROUTINE compute_mnstd(z, badz, need_std, nsize, status)
+	SUBROUTINE compute_mnstd(z, badz, need_std, nsize, rbad, status)
 
 *
 *
@@ -44,6 +44,10 @@ C**
 *               so variance result is the same as other Ferret variance calculations
 * V68  *acm* 1/12  changes for double-precision ferret, single-precision pplus
 * V69+ *acm* 7/14 ticket 2186: more-robust mean and std deviation if big outliers
+* 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.
+
         IMPLICIT NONE
 	include 'parampl5_dat.decl'
         include 'PARAMPL5.DAT'
@@ -70,7 +74,9 @@ C**
 	REAL sum, dev, sumsq_dev, variance, tol_lo, tol_hi, zmean2
 #endif
 
-	REAL*8 x, xmean, sum2, sumc, variance_c, xdelta
+	LOGICAL TM_FPEQ_SNGL, zmax_test, zmin_test, ok
+	REAL  zero, rbad
+	REAL*8 x, xmean, sum2, sumc, variance_c, xdelta, z_max_tol, z_min_tol
 	INTEGER i, n, n2
 
 c  Already have zmin, zmax
@@ -81,6 +87,31 @@ c  Already have zmin, zmax
 	   GOTO 5000
 	ENDIF
 
+c if min and max are equal, will use linear levels. No need to issue the warning.
+
+	if (zmin .EQ. zmax) THEN
+	   zmean = zmin
+	   zstd = 0
+	   status = 0
+	   GOTO 5000
+	ENDIF
+
+
+c Has the user set min or max levels to be used?
+c If so take those into account
+
+	zmax_test = .FALSE.
+	zmin_test = .FALSE.
+
+	IF (lev_max .NE. rbad) THEN
+	   zmax_test = .TRUE.
+	   z_max_tol = DBLE(lev_max)
+	ENDIF
+	IF (lev_min .NE. rbad) THEN
+	   zmin_test = .TRUE.
+	   z_min_tol = DBLE(lev_min)
+	ENDIF
+
 c Compute data mean.
 
         sum = 0.0
@@ -88,8 +119,13 @@ c Compute data mean.
         DO 100 i = 1, nsize
 	   x = z(i)
 	   IF ( x .NE. badz) THEN
-  	      sum = sum + Z(i)
-              n = n + 1
+	      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 (ok) THEN
+  	         sum = sum + z(i)
+                 n = n + 1
+	      ENDIF
 	   ENDIF
  100    CONTINUE
         IF (n .EQ. 0) GOTO 5000
@@ -111,13 +147,18 @@ c Compute data mean.
 	   sum2 = 0.D0
  
 	   DO i = 1, nsize
-	      x = Z(i)
+	   x = z(i)
 	      IF ( x .NE. badz) THEN
-                 n = n + 1
-		 x = x - zmean
-                 xdelta = x - xmean
-                 xmean = xmean + xdelta/FLOAT(n)
-                 sum2 = sum2 + xdelta*(x - xmean)  ! This expression uses the new value of mean
+	         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 (ok) THEN
+                    n = n + 1
+		    x = x - zmean
+                    xdelta = x - xmean
+                    xmean = xmean + xdelta/FLOAT(n)
+                    sum2 = sum2 + xdelta*(x - xmean)  ! This expression uses the new value of mean
+ 	         ENDIF
  	      ENDIF
 	   ENDDO
            variance_c = sum2/FLOAT(n - 1)
@@ -134,9 +175,14 @@ c Recompute data mean.
 	   n2 = 0
 	   DO 200 i = 1, nsize
               x = z(i)
-              IF ( x.NE.badz .AND. x.GT.tol_lo .AND. x.LT.tol_hi) THEN
-                 sum = sum + Z(i)
-                 n2 = n2 + 1
+	      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 (ok) THEN
+                    sum = sum + z(i)
+                    n2 = n2 + 1
+                 ENDIF
               ENDIF
   200      CONTINUE
 
@@ -153,14 +199,19 @@ c Recompute data mean.
 	   sum2 = 0.D0
  
 	   DO i = 1, nsize
-	      x = Z(i)
-	      IF ( x.NE.badz .AND. x.GT.tol_lo .AND. x.LT.tol_hi) THEN
-                 n2 = n2 + 1
-		 x = x - zmean2
-                 xdelta = x - xmean
-                 xmean = xmean + xdelta/FLOAT(n2)
-                 sum2 = sum2 + xdelta*(x - xmean)  ! This expression uses the new value of mean
- 	      ENDIF
+	      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 (ok) THEN
+                    n2 = n2 + 1
+		    x = x - zmean2
+                    xdelta = x - xmean
+                    xmean = xmean + xdelta/FLOAT(n2)
+                    sum2 = sum2 + xdelta*(x - xmean)  ! This expression uses the new value of mean
+ 	         ENDIF
+	      ENDIF
 	   ENDDO
 
 	   IF (FLOAT(n2)/FLOAT(n) .GT. 0.9) THEN
@@ -177,10 +228,15 @@ c Once more.
            n2 = 0
            DO 300 i = 1, nsize
               x = z(i)
-              IF ( x.NE.badz .AND. x.GT.tol_lo .AND. x.LT.tol_hi) THEN
-                 sum = sum + Z(i)
-                 n2 = n2 + 1
-              ENDIF
+	      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 (ok) THEN
+                    sum = sum + z(i)
+                    n2 = n2 + 1
+                 ENDIF
+	      ENDIF
   300      CONTINUE
            IF (n2 .EQ. 0) GOTO 5000
 #ifdef double_p
@@ -193,14 +249,19 @@ c Once more.
 	   sum2 = 0.D0
  
 	   DO i = 1, nsize
-	      x = Z(i)
-	      IF ( x.NE.badz .AND. x.GT.tol_lo .AND. x.LT.tol_hi) THEN
-                 n2 = n2 + 1
-		 x = x - zmean2
-                 xdelta = x - xmean
-                 xmean = xmean + xdelta/FLOAT(n2)
-                 sum2 = sum2 + xdelta*(x - xmean)  ! This expression uses the new value of mean
- 	      ENDIF
+	      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 (ok) THEN
+		    n2 = n2 + 1
+		    x = x - zmean2
+                    xdelta = x - xmean
+                    xmean = xmean + xdelta/FLOAT(n2)
+                    sum2 = sum2 + xdelta*(x - xmean)  ! This expression uses the new value of mean
+ 	         ENDIF
+	      ENDIF
 	   ENDDO
 
 	   IF (FLOAT(n2)/FLOAT(n) .GT. 0.9) THEN
@@ -216,8 +277,17 @@ c Once more.
 * If user is resetting the mean, do that here
 	IF (centered) zmean = 0.
 
+* If the std came out as zero, use linear color levels
+	zero = 0.
+	IF (need_std .AND. TM_FPEQ_SNGL(zstd, zero)) GOTO 5010
+
  5000	RETURN
 	
  5010   status = 0
+ 
+	  CALL WARN(
+     . 'Could not compute Std Dev. Data too large or or not within 3 std of computed mean.')
+	  CALL WARN('Using linear levels instead.')
+
 	RETURN
 	END
diff --git a/fer/utl/decrement_plot_grid.F b/ppl/tmapadds/get_pyfont_settings.F
old mode 100755
new mode 100644
similarity index 76%
copy from fer/utl/decrement_plot_grid.F
copy to ppl/tmapadds/get_pyfont_settings.F
index aa6c503..491d247
--- a/fer/utl/decrement_plot_grid.F
+++ b/ppl/tmapadds/get_pyfont_settings.F
@@ -1,5 +1,4 @@
-	SUBROUTINE DECREMENT_PLOT_GRID
-
+	SUBROUTINE GET_PYFONT_SETTINGS(igr, fontname, red, grn, blu, italic, bold, isiz)
 *
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -33,19 +32,32 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
+	INCLUDE 'pyfonts.cmn'
 
-* Ansley Manke NOAA/PMEL/TMAP 2/10/2014
-*
-*      Decrement the grid use count which was bumped up, saving the grid used
-*      in a SHADE/SET, FILL/SET, CONTOUR/SET or WIRE/SET command. See ticket 883.
-
-	include 'xbox_bounds.cmn'
+	INTEGER igr, italic, bold, isiz, status
+	REAL*4 red, blu, grn
+	CHARACTER*(*) fontname
 
-	INTEGER grid
+	IF (igr.LT.fnt_all .OR. igr.GT.ngp) RETURN
 
-	grid = bb_grid
-	IF (bb_grid_inccount .GT. 0) CALL TM_DEALLO_DYN_GRID (grid)
-	bb_grid_inccount = 0
+	IF (igr .EQ. fnt_all) THEN
+	   fontname = pyfnt_fontname
+	   italic = pyfnt_italic
+	   bold = pyfnt_bold
+	   red = pyfnt_red
+	   blu = pyfnt_blu
+	   grn = pyfnt_grn
+	   isiz = pyfnt_isiz
+	ELSE
+	   fontname = pyf_fontname(igr)
+	   italic = pyf_italic(igr)
+	   bold = pyf_bold(igr)
+	   red = pyf_red(igr)
+	   blu = pyf_blu(igr)
+	   grn = pyf_grn(igr)
+	   isiz = pyf_isiz(igr)
+	ENDIF
 
 	RETURN
 	END
+
diff --git a/ppl/tmapadds/key.F b/ppl/tmapadds/key.F
index b219982..91e23b9 100644
--- a/ppl/tmapadds/key.F
+++ b/ppl/tmapadds/key.F
@@ -114,6 +114,7 @@
 * V6.92 *acm* 6/14 New color /key options: any of /key=horizontal,centerlabel
 *                  For centered labels add a level to corresp to the upper bound of 
 *                  the top color on thecolorbar, excluding any upper inf triangle.
+* V6.95 *acm* 3/15 Changes for PyFerret fonts. Scoot the vertical color key over to the left.
 
         IMPLICIT NONE
 
@@ -139,16 +140,18 @@
         include         'gkscm2.cmn'
 
 	include        'gkspar.inc'
-
+	include        'pyfonts.cmn'
+	
 	integer ndx,str_len,max_len,incr,lab_digits, nhi, ncount,
-     .          lab_add, nlab, i, kount, lev1, levn, nspace, shd_lev_hi
+     .          lab_add, nlab, i, kount, lev1, levn, nspace, shd_lev_hi,
+     .		ITYPEX_save, ITYPEY_save
 
 	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            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
+     .                  center_add, ht_ann
         real*8          val_n, val_last
 	character*12	text, TM_FMT_SNGL, TM_FMT_SNGL_DIGITS, 
      .			txt_out, blanks
@@ -168,11 +171,24 @@
 	windof_hold = windof
 	windof = .false.
 
-	cont_key_keep = cont_key
+* Save the axis ITYPE settings (log axes or not) so they aren'tn used for color key
+* label locations, which are linear. Will restore them at the end.  See the
+* examples in bn_polygon_log.jnl
+
+	ITYPEX_save = ITYPEX
+	ITYPEY_save = ITYPEY
+	ITYPEX = 1
+	ITYPEY = 1	
+
+* pyferret font settings
+	IF (pyfont .AND. pyf_set(icbar)) igroup = icbar
 
+	cont_key_keep = cont_key
 	center_add = 0.
 	if (center_key_labels) center_add = 0.5
 
+	incr = 0
+
 * Decide whether to check for small numeric values in the key labels.
 * If delta is large, we dont want 0.000005 to be labelled in an exponential
 * format (it is zero with a bit of noise). But if all the numbers are 
@@ -361,6 +377,7 @@ c	IF ( no_lines ) cont_key = .TRUE.
 	   ENDIF
 
 	   ksiz_test = 0.06 * xcsize
+	   IF (pyfont) ksiz_test = 0.06
            IF (klab_size .NE. 0) THEN
 	      IF (ABS(klab_size) .LT. ksiz_test) ksiz_test = ABS(klab_size)
 	   ENDIF
@@ -372,6 +389,7 @@ c	IF ( no_lines ) cont_key = .TRUE.
 	   ENDIF
 
 	   ksiz_test = 0.075 * xcsize
+	   IF (pyfont) ksiz_test = 0.075
            IF (klab_size .NE. 0) ksiz_test = ABS(klab_size)
 	   kount = 0
 	   DO WHILE (karht .LT. ksiz_test .AND. karht.GT.0. .AND. kount.LT.10)
@@ -387,8 +405,7 @@ c	IF ( no_lines ) cont_key = .TRUE.
 	max_len = 0
 	val = zlev(lev1)
 	IF (TM_FPEQ_SNGL(val,0.) .AND. check_0) val = 0.
-C	text = TM_FMT_SNGL_DIGITS (val,lab_digits,klab_len+lab_add,str_len)  
-	text = TM_FMT_SNGL (val,lab_digits,klab_len+lab_add,str_len)  
+	text = TM_FMT_SNGL_DIGITS (val,lab_digits,klab_len+lab_add,str_len)  
         if (max_len .lt. str_len) max_len = str_len
         
         nhi = MAX(2,shd_levels+1)
@@ -409,22 +426,23 @@ C	text = TM_FMT_SNGL_DIGITS (val,lab_digits,klab_len+lab_add,str_len)
               kpy(1) = ky_hi
               kpy(4) = ky_hi
            ENDIF
+	   ht_ann = 0.9*karht
 
            IF ( (ndx.EQ.2) .AND. (annotate_key.EQ.1) .AND. 
      .          (.NOT.neginf) ) CALL key_annotate 
-     .          (kpx, kpy, lab_digits, karht, 1, 2)
+     .          (kpx, kpy, lab_digits, ht_ann, 1, 2)
 
            IF ( (ndx.EQ.nhi) .AND. (annotate_key.EQ.1) .AND.
      .          (.NOT.posinf) ) CALL key_annotate 
-     .          (kpx, kpy, lab_digits, karht, 2, 2)
+     .          (kpx, kpy, lab_digits, ht_ann, 2, 2)
 
            IF (neginf .AND. (ndx .EQ. 2) ) THEN
               CALL key_lo_inf_horz (kpx, kpy, ndx, x_inc_inf, 
-     .          annotate_key, lab_digits, karht)
+     .          annotate_key, lab_digits, ht_ann)
 
            ELSE IF (posinf .AND. (ndx .EQ. nhi) ) THEN
               CALL key_hi_inf_horz (kpx, kpy, ndx, x_inc_inf, 
-     .          annotate_key, lab_digits, karht)
+     .          annotate_key, lab_digits, ht_ann)
 
            ELSE
 
@@ -441,8 +459,7 @@ C	text = TM_FMT_SNGL_DIGITS (val,lab_digits,klab_len+lab_add,str_len)
            IF (ndx .GE. lev1 .AND. ndx .LE. levn) THEN
               val = zlev(ndx)
               IF (TM_FPEQ_SNGL(val,0.) .AND. check_0) val = 0.
-C	      text = TM_FMT_SNGL_DIGITS (val,lab_digits,klab_len+lab_add,str_len)
-	      text = TM_FMT_SNGL (val,lab_digits,klab_len+lab_add,str_len)
+	      text = TM_FMT_SNGL_DIGITS (val,lab_digits,klab_len+lab_add,str_len)
 	      if (max_len .lt. str_len) max_len = str_len
            ENDIF
 10	continue
@@ -459,8 +476,7 @@ C	      text = TM_FMT_SNGL_DIGITS (val,lab_digits,klab_len+lab_add,str_len)
 
              val = zlev(ndx)
              IF (TM_FPEQ_SNGL(val,0.) .AND. check_0) val = 0.
-C	     text = TM_FMT_SNGL_DIGITS (val,lab_digits,klab_len+lab_add,str_len)
-	     text = TM_FMT_SNGL (val,lab_digits,klab_len+lab_add,str_len)
+	     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 = " "
@@ -479,12 +495,12 @@ C	     text = TM_FMT_SNGL_DIGITS (val,lab_digits,klab_len+lab_add,str_len)
            ENDIF
 
 *	   FILL AND SHADE USE DIFFERENT COORD SYSTEMS -- *jd* 6.4.93
-	   if (makep .eq. 'SHADE' .or. makep .eq. 'FILLPOL' .OR.
-     .         makep .EQ. 'POLYGON' .or. makep .eq. 'RIBPLOT') then
-	      call point_convert (xx,yy,xxx,yyy)
-	   else if (makep .eq. 'FILL') then
+
+	   if (makep .eq. 'FILL' .AND. .NOT.pyfont) THEN	   
 	      xxx = xx
 	      yyy = yy
+	   else
+              call point_convert (xx,yy,xxx,yyy)
 	   endif
 
 	   call symbel (xxx,yyy,0.0,karht,str_len,text(1:str_len))
@@ -511,17 +527,18 @@ C	     text = TM_FMT_SNGL_DIGITS (val,lab_digits,klab_len+lab_add,str_len)
            if (vwidth .le. xlen + xorg) goto 2000
 
 	   rem = vwidth - (xlen + xorg)
-	   xmaxx = 0.25*xlen
+	   xmaxx = 0.22*xlen
+
+           kx_lo_def = 1000.0 * (xorg + xlen + 0.17*min (rem,xmaxx))
+           kx_hi_def = 1000.0 * min (xorg + xlen + xmaxx,vwidth-0.1*rem)
 
-           kx_lo_def = 1000.0 * (xorg + xlen + 0.2*min (rem,xmaxx))
-           kx_hi_def = 1000.0 * min (xorg + xlen + xmaxx,vwidth-0.08*rem)
            ky_lo_def = 1000.0 *  yorg
            ky_hi_def = 1000.0 * (yorg + ylen)
         else
 	   rem = width - (xlen + xorg)
-	   xmaxx = 0.25*xlen
-           kx_lo_def = 1000.0 * (xorg + xlen + 0.2*min (rem,xmaxx))
-           kx_hi_def = 1000.0 * min (xorg + xlen + xmaxx,width-0.08*rem)
+	   xmaxx = 0.22*xlen
+           kx_lo_def = 1000.0 * (xorg + xlen + 0.17*min (rem,xmaxx))
+           kx_hi_def = 1000.0 * min (xorg + xlen + xmaxx,width-0.1*rem)
            ky_lo_def = 1000.0 *  yorg
            ky_hi_def = 1000.0 * (yorg + ylen)
         end if
@@ -596,7 +613,7 @@ c	IF ( no_lines ) cont_key = .TRUE.
 
 	if (klab_incr .eq. 0) then
 	   incr = (shd_levels/25) + 1
-           IF (height/vheight .GT. 1.5) incr = 2*incr   ! short plot, fewer labels
+           IF (height/vheight.GT.1.5 .AND. shd_levels.GT.4) incr = 2*incr   ! short plot, fewer labels
 	else
 	   incr = klab_incr
 	end if
@@ -633,26 +650,32 @@ c	IF ( no_lines ) cont_key = .TRUE.
               kpx(3) = kx_hi
            ENDIF
 
-	   kpy(1) = ky_lo + real (ndx - 2) * y_inc
-	   kpy(2) = ky_lo + real (ndx - 2) * y_inc
+	   IF (ndx .GT. 2) THEN 
+ 	      kpy(1) = kpy(3)
+	      kpy(2) = kpy(4)
+	   ELSE
+	      kpy(1) = ky_lo + real (ndx - 2) * y_inc
+	      kpy(2) = ky_lo + real (ndx - 2) * y_inc
+	   ENDIF
 	   kpy(3) = ky_lo + real (ndx - 1) * y_inc
 	   kpy(4) = ky_lo + real (ndx - 1) * y_inc
 
+	   ht_ann = 0.9*karht
            IF ( (ndx.EQ.2) .AND. (annotate_key.EQ.1) .AND.
      .          (.NOT. neginf) ) CALL key_annotate 
-     .          (kpx, kpy, lab_digits, karht, 1, 1)
+     .          (kpx, kpy, lab_digits, ht_ann, 1, 1)
 
            IF ( (ndx.EQ.nhi) .AND. (annotate_key.EQ.1) .AND.
      .          (.NOT. posinf) ) CALL key_annotate 
-     .          (kpx, kpy, lab_digits, karht, 2, 1)
+     .          (kpx, kpy, lab_digits, ht_ann, 2, 1)
 
            IF (neginf .AND. (ndx .EQ. 2) ) THEN
               CALL key_lo_inf_vert (kpx, kpy, ndx, y_inc_inf, 
-     .          annotate_key, lab_digits, karht)
+     .          annotate_key, lab_digits, ht_ann)
      
            ELSE IF (posinf .AND. (ndx .EQ. nhi) ) THEN
               CALL key_hi_inf_vert (kpx, kpy, ndx, y_inc_inf, 
-     .          annotate_key, lab_digits, karht)
+     .          annotate_key, lab_digits, ht_ann)
 
            ELSE
 
@@ -719,13 +742,13 @@ c	IF ( no_lines ) cont_key = .TRUE.
 
 *	   FILL AND SHADE USE DIFFERENT COORD SYSTEMS -- *jd* 6.4.93
 
-	   if (makep .eq. 'SHADE' .or. makep .eq. 'FILLPOL' .OR.
-     .         makep .EQ. 'POLYGON' .or. makep .eq. 'RIBPLOT') then
-              call point_convert (xx,yy,xxx,yyy)
-	   else if (makep .eq. 'FILL') then
+	   if (makep .eq. 'FILL' .AND. .NOT.pyfont) THEN	   
 	      xxx = xx
 	      yyy = yy
+	   else
+              call point_convert (xx,yy,xxx,yyy)
 	   endif
+
 	   call symbel (xxx,yyy,0.0,karht,str_len,txt_out(1:str_len))
 
 1020	continue
@@ -738,5 +761,10 @@ c	IF ( no_lines ) cont_key = .TRUE.
 2000	windof = windof_hold
 	cont_key = cont_key_keep
 
+        IF (pyfont .AND. pyf_set(icbar)) igroup = fnt_all
+
+	ITYPEX = ITYPEX_save
+	ITYPEY = ITYPEY_save
+
 	return
 	end
diff --git a/ppl/tmapadds/line_key.F b/ppl/tmapadds/line_key.F
index 5c7d5cd..6d02d48 100644
--- a/ppl/tmapadds/line_key.F
+++ b/ppl/tmapadds/line_key.F
@@ -97,7 +97,6 @@ C	KTYPE = 1 -XY  0 -Z  2-VECTOR
         INCLUDE 'makedot.cmn'    ! 10/01 *acm*
 
 	CALL COLOR(IPEN(0))
-!	CALL SETAX(X,NXS,XF,YF,XL,YL,XH,YH,NMX,NMY,XTI,XTL)
 
 	oldx(1) 	= x(1)
 	x(1) 		= axmin
diff --git a/ppl/tmapadds/pplld_pts_envelope.c b/ppl/tmapadds/pplld_pts_envelope.c
index faaf31d..375afa0 100644
--- a/ppl/tmapadds/pplld_pts_envelope.c
+++ b/ppl/tmapadds/pplld_pts_envelope.c
@@ -74,7 +74,7 @@ void FORTRAN(pplld_pts_envelope)(int *npts,int *plot_mem_used)
 
   FORTRAN(get_ppl_memory_size)(&pmemsize);
 
-  if (*plot_mem_used > pmemsize) reallo_ppl_memory(plot_mem_used); 
+  if (*plot_mem_used > pmemsize) reallo_ppl_memory(*plot_mem_used); 
 
   FORTRAN(pplld_pts) (npts, ppl_memory);
 
diff --git a/ppl/tmapadds/pplldc_envelope.c b/ppl/tmapadds/pplldc_envelope.c
index a8d3472..8489ab9 100644
--- a/ppl/tmapadds/pplldc_envelope.c
+++ b/ppl/tmapadds/pplldc_envelope.c
@@ -83,7 +83,7 @@ void FORTRAN(pplldc_envelope)(int *k, float *z, int *mx, int *my,int *imn, int *
 
   FORTRAN(get_ppl_memory_size)(&pmemsize);
 
-  if (*plot_mem_used > pmemsize) reallo_ppl_memory(plot_mem_used); 
+  if (*plot_mem_used > pmemsize) reallo_ppl_memory(*plot_mem_used); 
 
   FORTRAN(pplldc) (k, z, mx, my, imn, imx, jmn, jmx, pi, pj, nx1, ny1, 
                    xmin1, ymin1, dx1, dy1, ppl_memory);
diff --git a/ppl/tmapadds/pplldx_envelope.c b/ppl/tmapadds/pplldx_envelope.c
index e2502c0..ad64b7d 100644
--- a/ppl/tmapadds/pplldx_envelope.c
+++ b/ppl/tmapadds/pplldx_envelope.c
@@ -83,7 +83,7 @@ void FORTRAN(pplldx_envelope)(int *icode, float *xt, float *yt, int *npts,
 
   FORTRAN(get_ppl_memory_size)(&pmemsize);
 
-  if (*plot_mem_used > pmemsize) reallo_ppl_memory(plot_mem_used); 
+  if (*plot_mem_used > pmemsize) reallo_ppl_memory(*plot_mem_used); 
 
   FORTRAN(pplldx) (icode, xt, yt, npts, tstrt, tref, xdt, ppl_memory);
 
diff --git a/ppl/tmapadds/pyfont_block_data.F b/ppl/tmapadds/pyfont_block_data.F
new file mode 100644
index 0000000..70efd45
--- /dev/null
+++ b/ppl/tmapadds/pyfont_block_data.F
@@ -0,0 +1,110 @@
+	BLOCK DATA pyfont_block_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 pyferret font arguments.
+*  pyfont		Flag: True for PyFerret true fonts, False to use Hershey fonts
+*  pyfnt_fontname	name of font
+*  pyfnt_font_dflt	default font for restoring
+*  pyfnt_italic		integer: 1=italic, 0=not
+*  pyfnt_bold		integer: 1=bold, 0=not
+*  pyfnt_red
+*  pyfnt_grn		Real: percent Red, Green, Blue (range 0-100)
+*  pyfnt_blu
+
+* These not implemented
+*  pyfnt_under		integer: 1=underscore, 0=not
+*  pyfnt_opq		Real: percent opacity (range 0-100)
+*  pyfnt_rot		Real: rotation angle
+
+	IMPLICIT NONE
+
+	INCLUDE 'pyfonts.cmn'
+	INTEGER i
+
+	DATA pyfont/.FALSE./
+	DATA igroup/0/
+	DATA fnt_all/0/
+
+* index in these structures for each grouping
+	DATA ititl/1/	! title
+	DATA ilogo/2/	! logo
+	DATA ihtics/3/	! htics
+	DATA ivtics/4/	! vtics
+	DATA ihlab/5/	! hlab
+	DATA ivlab/6/	! vlab
+	DATA imove/7/	! moveable
+	DATA icont/8/	! contour
+	DATA icbar/9/	! cbar
+
+        DATA pyfnt_fontname           / 'Hershey' /	! overall
+        DATA (pyf_fontname(i),i=1,ngp)/ ngp*'Hershey' /
+
+
+	DATA  pyfnt_font_dflt           / 'Hershey' /	! overall
+	DATA  (pyf_font_dflt(i),i=1,ngp)/ ngp*'Hershey' /
+
+	DATA 
+     .		pyf_group_names(1)      /'TITLE'/,		! title
+     .		pyf_group_names(2)      /'LOGO'/,		! logo
+     .		pyf_group_names(3)      /'HTICS'/,		! tics
+     .		pyf_group_names(4)      /'VTICS'/,		! tics
+     .		pyf_group_names(5)      /'HLAB'/,		! hlab
+     .		pyf_group_names(6)      /'VLAB'/,		! vlab
+     .		pyf_group_names(7)      /'MOVEAB'/,		! moveable labels
+     .		pyf_group_names(8)      /'CONTOUR'/,		! contour
+     .		pyf_group_names(9)      /'CBAR'/		! cbar
+
+	DATA pyfnt_under/0/
+	DATA pyfnt_opq/1./
+	DATA pyfnt_rot/0./
+
+	DATA pyfnt_italic/0/
+	DATA pyfnt_bold/0/
+	DATA pyfnt_red/0./
+	DATA pyfnt_blu/0./
+	DATA pyfnt_grn/0./
+	DATA pyfnt_isiz/0/
+
+	DATA (pyf_italic(i), i=1,ngp)/ngp*0/
+	DATA (pyf_bold(i), i=1,ngp)/ngp*0/
+	DATA (pyf_red(i), i=1,ngp)/ngp*0./
+	DATA (pyf_grn(i), i=1,ngp)/ngp*0./
+	DATA (pyf_blu(i), i=1,ngp)/ngp*0./
+	DATA (pyf_isiz(i), i=1,ngp)/ngp*0/
+
+* Flag for groups that are set other than the main defaults
+
+	DATA (pyf_set(i), i=1,ngp)/ngp*.FALSE./
+
+	END
diff --git a/ppl/tmapadds/reallo_envelope.c b/ppl/tmapadds/reallo_envelope.c
index 02a7969..808c0e9 100644
--- a/ppl/tmapadds/reallo_envelope.c
+++ b/ppl/tmapadds/reallo_envelope.c
@@ -71,7 +71,7 @@ void FORTRAN(reallo_envelope)(int *plot_mem_used)
 */
 
   FORTRAN(get_ppl_memory_size)(&pmemsize);
-  if (*plot_mem_used > pmemsize) reallo_ppl_memory(plot_mem_used); 
+  if (*plot_mem_used > pmemsize) reallo_ppl_memory(*plot_mem_used); 
 
 return;
 }
diff --git a/ppl/tmapadds/reallo_ppl_memory.c b/ppl/tmapadds/reallo_ppl_memory.c
deleted file mode 100644
index 77089ea..0000000
--- a/ppl/tmapadds/reallo_ppl_memory.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
-*  This software was developed by the Thermal Modeling and Analysis
-*  Project(TMAP) of the National Oceanographic and Atmospheric
-*  Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
-*  hereafter referred to as NOAA/PMEL/TMAP.
-*
-*  Access and use of this software shall impose the following
-*  obligations and understandings on the user. The user is granted the
-*  right, without any fee or cost, to use, copy, modify, alter, enhance
-*  and distribute this software, and any derivative works thereof, and
-*  its supporting documentation for any purpose whatsoever, provided
-*  that this entire notice appears in all copies of the software,
-*  derivative works and supporting documentation.  Further, the user
-*  agrees to credit NOAA/PMEL/TMAP in any publications that result from
-*  the use of this software or in any product that includes this
-*  software. The names TMAP, NOAA and/or PMEL, however, may not be used
-*  in any advertising or publicity to endorse or promote any products
-*  or commercial entity unless specific written permission is obtained
-*  from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
-*  is not obligated to provide the user with any support, consulting,
-*  training or assistance of any kind with regard to the use, operation
-*  and performance of this software nor to provide the user with any
-*  updates, revisions, new versions or "bug fixes".
-*
-*  THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
-*  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-*  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-*  ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY
-*  SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-*  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
-*  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
-*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
-*
-
-NOTE: Needs error checking to see that the realloc actually worked.
-
-* reallo_ppl_memory.c
-
-   Enlarge the memory allocated to the PLOT+ buffer.
-   Ferret v5.52 *acm* 6/5/04 fix typo in print statement 
-*/
-
-#include <Python.h> /* make sure Python.h is first */
-#include <unistd.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include "pplmem.h"
-
-/* The global pointer to PLOT+ memory is declared as extern here
-   (Defined in fermain_c.c)
-*/
-  extern float *ppl_memory; 
-  
-
-void reallo_ppl_memory(int *this_size)
-{
-  
-/* local variable declaration */
-  int current_size;
-
-/* allocate or reallocate PLOT+ memory buffer */
-
-  FORTRAN(get_ppl_memory_size)(&current_size);
-
-/* free the currently allocated memory */
-  if (current_size != 0)
-      free ( (void *) ppl_memory );
-/* allocate new ammount of memory */
-  ppl_memory = (float *) malloc(sizeof(float) * *this_size );
-
-/* Check that the memory was allocated OK*/
-
-  if ( ppl_memory == (float *)0 ) {
-    printf("Unable to allocate the requested %d words of PLOT memory.\n",*this_size);
-    exit(0);
-   }
-/* save the size of what was allocated */
-  FORTRAN(save_ppl_memory_size) (this_size);
-
-  return;
-}
diff --git a/ppl/tmapadds/set_levels_shade_fill.F b/ppl/tmapadds/set_levels_shade_fill.F
index 2fb4da5..381e3b3 100644
--- a/ppl/tmapadds/set_levels_shade_fill.F
+++ b/ppl/tmapadds/set_levels_shade_fill.F
@@ -60,8 +60,8 @@
 	INTEGER		status
 
 * local declarations
-	REAL		dmin, dmax, dz, fm, znp, zmp, dzmax, del
-	INTEGER		i, m, jj
+	REAL		dmin, dmax, dz, fm, znp, zmp, dzmax, del, zz
+	INTEGER		i, m, jj, il
         LOGICAL		TM_FPEQ_SNGL
 
         EXTERNAL range
@@ -121,6 +121,50 @@ C
 		    endif
 	         endif
 
+C INTEGER based levels
+	      else if (intlev.EQ.1) then 
+
+		 znp = FLOOR(zmin)
+		 zmp = CEILING(zmax)
+C
+C       Set levels centered about zero if centered is .true.
+C
+	         if (centered) then
+		    if (abs(znp) .gt. abs(zmp)) then
+		       zmp = -znp
+		    else
+		       znp = -zmp
+		    endif
+	         endif
+
+	         dz = (zmp - znp)/nlev
+
+		 if (dz.lt.1) then
+		     dz = 1
+		     i = 1
+		     do il = znp,zmp+1
+		        zlev(i) = FLOAT(il)
+			i = i+1
+		     enddo
+		     nlev2 = zmp-znp+2
+
+		  else
+		     dz = INT(dz)
+		     zz = znp
+		     i = 1
+		     do while (zz.le. zmp)
+		        zlev(i) = zz
+			zz = zz + dz
+			i = i+1
+		     enddo
+		     zlev(i) = zz
+		     nlev2 = i
+		  endif
+
+c       Set THE MINIMUM AND MAXIMUM VALUE OF THE RANGE
+		  znp = zlev(1)
+		  zmp = zlev(nlev2)
+
               else if (openlev) then
 	         CALL set_open_levels
 
diff --git a/fer/utl/decrement_plot_grid.F b/ppl/tmapadds/user_to_inch.F
old mode 100755
new mode 100644
similarity index 79%
copy from fer/utl/decrement_plot_grid.F
copy to ppl/tmapadds/user_to_inch.F
index aa6c503..5bd6a7c
--- a/fer/utl/decrement_plot_grid.F
+++ b/ppl/tmapadds/user_to_inch.F
@@ -1,6 +1,6 @@
-	SUBROUTINE DECREMENT_PLOT_GRID
 
-*
+	SUBROUTINE USER_TO_INCH (xu, yu, stx_inch, sty_inch)
+
 *  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,19 +33,21 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
+* Ansley Manke 4/2015 
+* convert user-units to inches, current plot-axis settings
 
-* Ansley Manke NOAA/PMEL/TMAP 2/10/2014
-*
-*      Decrement the grid use count which was bumped up, saving the grid used
-*      in a SHADE/SET, FILL/SET, CONTOUR/SET or WIRE/SET command. See ticket 883.
-
-	include 'xbox_bounds.cmn'
+        include         'plt_inc.decl'
+        include         'PLT.INC'
+        include         'axis_inc.decl'
+        include         'AXIS.INC'
 
-	INTEGER grid
+	REAL xu, yu,  stx_inch, sty_inch
+	REAL stx_off, sty_off
 
-	grid = bb_grid
-	IF (bb_grid_inccount .GT. 0) CALL TM_DEALLO_DYN_GRID (grid)
-	bb_grid_inccount = 0
+	stx_off = (XHI-XLO)/XLEN		! deg/inch
+	stx_inch = XORG+(XU-XLO)/stx_off	! loc, inches
+	sty_off = (YHI-YLO)/YLEN 
+	sty_inch = YORG+(YU-YLO)/sty_off
 
-	RETURN
+ 1000	RETURN
 	END
diff --git a/ppl/tmapadds/ws_line_spectrum.F b/ppl/tmapadds/ws_line_spectrum.F
index cac977e..4f6c955 100644
--- a/ppl/tmapadds/ws_line_spectrum.F
+++ b/ppl/tmapadds/ws_line_spectrum.F
@@ -38,6 +38,7 @@
 *	Routine to set up the line bundles for color-line plots
 * PyFr *kms* 5/13 Add alpha channel (opaque)
 * V691 *acm* 5/14 Fix when defining line bundles for a by-levels palette
+* V694 *acm* 5/15 Fix ticket 2292 line plot thickness and ribbon plots
 
         IMPLICIT NONE
 	include 'pltcom_dat.decl'
@@ -73,11 +74,15 @@
 	integer		max_pline, max_pmark, max_text, max_fill_area
 	integer		max_pattern, max_color, error, ncolors
 	integer		fktr, marktype, index, line_color_reserve,
-     .			icolr, nthick, status, usable_colors, ndx
+     .			icolr, ndx, n1, n2, n3, slen,
+     .			nthick, status, usable_colors
+	real		thickness, dotsize, frac, r_val, g_val, b_val, a_val
 
-	real	thickness, dotsize, frac, r_val,g_val,b_val,a_val
 	CHARACTER*100   err_msg
+	CHARACTER*12	TM_FMT_SNGL, note
 
+	integer		max_bundles
+	parameter	(max_bundles = 250)  ! matches MAX_BUNDL_TBL in xgks
 
 *******************************************************************************
 *	WHAT IS AVAILABLE ON THIS WORKSTATION?
@@ -133,12 +138,47 @@
 
 
 * Set line bundles
+* The low-index preserves line and thickness defintions for the standard line-plot colors.
 
 	nthick = 3
-	low_index = MAX(num_line_colors* nthick + 2, lo_color_ndx(zwsid))
+	low_index = MAX(num_line_colors* nthick + 2, lo_color_ndx(zwsid)) 
 
+* GKS has a hard-wired MAX_BUNDL_TBL set at 250. This means we are
+* limited on number of colors drawn with thick lines.
 
         ncolors = shd_levels
+	IF ((low_index+(nthick-1)*(ncolors+1)+ncolors) .GT. max_bundles) THEN
+
+	    n3 = (low_index+(nthick-1)*(ncolors+1)+ncolors)
+	    n2 = (low_index+(nthick-2)*(ncolors+1)+ncolors)
+	    n1 = (low_index+(nthick-3)*(ncolors+1)+ncolors)
+
+	    note = TM_FMT_SNGL (REAL(max_bundles), 12, 12, slen)
+
+	    IF (n1. GT. max_bundles) THEN
+	       CALL WARN ('Graphics limits settings to '//note(:slen)//
+     .	       ' line/thickness combinations plus existing spectrum colors')
+	       note = TM_FMT_SNGL (REAL(ncolors), 12, 12, slen)
+	       CALL WARN ('Cannot draw /THICK=1 lines with current number '//
+     .	       'of color levels = '//note(:slen) )
+     
+	    ELSE IF (n2. GT. max_bundles) THEN
+	       CALL WARN ('Graphics limits settings to '//note(:slen)//
+     .	       ' line/thickness combinations plus existing spectrum colors')
+	       note = TM_FMT_SNGL (REAL(ncolors), 12, 12, slen)
+	       CALL WARN ('Cannot draw /THICK=2 lines with current number '//
+     .	       'of color levels = '//note(:slen)//'; THICK=1 will be ok' )
+
+	    ELSE IF (n3. GT. max_bundles) THEN
+	       CALL WARN ('Graphics limits settings to '//note(:slen)//
+     .	       ' line/thickness combinations plus existing spectrum colors')
+	       note = TM_FMT_SNGL (REAL(ncolors), 12, 12, slen)
+	       CALL WARN ('Cannot draw /THICK=3 lines with current number '//
+     .	       'of color levels = '//note(:slen) //'; THICK=1 or 2 will be ok' )
+	    ENDIF
+
+        ENDIF
+
         if (rgb_mapping .eq. by_level) ncolors = ncl
 	do 20 j = 1, ncolors
 	   do 10 fktr = 1,nthick     ! thickness
diff --git a/pviewmod/__init__.py b/pviewmod/__init__.py
index 386f260..f8e2a42 100644
--- a/pviewmod/__init__.py
+++ b/pviewmod/__init__.py
@@ -1,6 +1,6 @@
 '''
 The PipedViewer class is used to create, send commands, and shutdown viewers 
-in this module.  Currently, the only known viewer types are "PipedViewerPQ" 
+in this module.  Currently, the only known viewer types are "PipedViewerPQ", 
 and "PipedImagerPQ".
 
 This package was developed by the Thermal Modeling and Analysis Project 
@@ -47,7 +47,6 @@ class PipedViewer(object):
         else:
             raise TypeError("Unknown viewer type %s" % str(viewertype))
         self.__vprocess.start()
-        self.__shutdown = False
 
     def submitCommand(self, cmnd):
         '''
@@ -64,10 +63,10 @@ class PipedViewer(object):
         or None if there was no response in the allotted time.
         '''
         if self.__rspdrecvpipe.poll(timeout):
-            response = self.__rspdrecvpipe.recv()
+            myresponse = self.__rspdrecvpipe.recv()
         else:
-            response = None
-        return response
+            myresponse = None
+        return myresponse
 
     def waitForViewerExit(self):
         '''
@@ -219,14 +218,31 @@ if __name__ == "__main__":
                                 "joinstyle":"round"} } )
     drawcmnds.append( { "action":"endView" } )
     drawcmnds.append( { "action":"show" } )
-    drawcmnds.append( { "action":"exit" } )
+    testannotations = ( "The 1<sup>st</sup> CO<sub>2</sub> annotations line",
+                        "Another line with <i>lengthy</i> details that should " + \
+                        "wrap to a 2<sup>nd</sup> annotation line",
+                        "<b>Final</b> annotation line" )
+
     # Test each known viewer.
-    for viewername in ( "PipedViewerPQ", ):
+    for viewername in ( "PipedViewerPQ", "PipedImagerPQ", "NoDisplayPQ" ):
         print "Testing Viewer %s" % viewername
         # create the viewer
         pviewer = PipedViewer(viewername)
+        mydrawcmnds = drawcmnds[:]
+        mydrawcmnds.append( { "action":"save",
+                              "filename":viewername + "_test.pdf",
+                              "vectsize":{"width":7.0, "height":7.0},
+                              "rastsize":{"width":750, "height":750},
+                              "annotations":testannotations } )
+        mydrawcmnds.append( { "action":"save",
+                              "filename":viewername + "_test.png",
+                              "vectsize":{"width":7.0, "height":7.0},
+                              "rastsize":{"width":750, "height":750},
+                              "annotations":testannotations } )
+        mydrawcmnds.append( { "action":"exit" } )
+        
         # submit the commands, pausing after each "show" command
-        for cmd in drawcmnds:
+        for cmd in mydrawcmnds:
             print "Command: %s" % str(cmd)
             pviewer.submitCommand(cmd)
             response = pviewer.checkForResponse()
diff --git a/pviewmod/cmndhelperpq.py b/pviewmod/cmndhelperpq.py
index 3939dc0..889ed6e 100644
--- a/pviewmod/cmndhelperpq.py
+++ b/pviewmod/cmndhelperpq.py
@@ -354,8 +354,7 @@ class CmndHelperPQ(object):
             path.addRect(-35.0, -35.0, 70.0, 70.0)
             sympath = SymbolPath(path, False)
         else:
-            raise ValueError( self.tr( \
-                  "Unrecognized symbol '%1'").arg(str(symbol)) )
+            raise ValueError("Unrecognized symbol '%s'" % str(symbol))
         # save and return the SymbolPath
         self.__symbolpaths[symbol] = sympath
         return sympath
@@ -413,16 +412,17 @@ class CmndHelperPQ(object):
             "color": color name or 24-bit RGB integer value
                          (eg, 0xFF0088)
             "alpha": alpha value from 0 (transparent) to 255 (opaque)
+                     if viewer.ignoreAlpha True, this value is ignored
         '''
         colordata = colorinfo["color"]
         mycolor = QColor(colordata)
         if not mycolor.isValid():
-            raise ValueError( self.__scene.tr( \
-                  "Invalid color '%1'").arg(str(colordata)) )
-        try:
-            mycolor.setAlpha(int(colorinfo["alpha"]))
-        except KeyError:
-            pass
+            raise ValueError("Invalid color '%s'" % str(colordata))
+        if not self.__viewer.ignoreAlpha():
+            try:
+                mycolor.setAlpha(int(colorinfo["alpha"]))
+            except KeyError:
+                pass
         return mycolor
 
     def computeARGB32PreMultInt(self, color):
@@ -431,17 +431,20 @@ class CmndHelperPQ(object):
         of the given QColor.
         '''
         (redint, greenint, blueint, alphaint) = color.getRgb()
-        # Multiply the RGB values by the alpha factor
-        alphafactor = alphaint / 255.0
-        redint = int( redint * alphafactor + 0.5 )
-        if redint > alphaint:
-            redint = alphaint
-        greenint = int( greenint * alphafactor + 0.5 )
-        if greenint > alphaint:
-            greenint = alphaint
-        blueint = int( blueint * alphafactor + 0.5 )
-        if blueint > alphaint:
-            blueint = alphaint
+        if self.__viewer.ignoreAlpha():
+            alphaint = 255
+        elif (alphaint < 255):
+            # Scale the RGB values by the alpha value
+            alphafactor = alphaint / 255.0
+            redint = int( redint * alphafactor + 0.5 )
+            if redint > alphaint:
+                redint = alphaint
+            greenint = int( greenint * alphafactor + 0.5 )
+            if greenint > alphaint:
+                greenint = alphaint
+            blueint = int( blueint * alphafactor + 0.5 )
+            if blueint > alphaint:
+                blueint = alphaint
         fillint = ((alphaint * 256 + redint) * 256 + \
                    greenint) * 256 + blueint
         return fillint
diff --git a/pviewmod/pipedimagerpq.py b/pviewmod/pipedimagerpq.py
index 52abdc8..1bac1af 100644
--- a/pviewmod/pipedimagerpq.py
+++ b/pviewmod/pipedimagerpq.py
@@ -69,8 +69,10 @@ class PipedImagerPQ(QMainWindow):
         # when the image is defined
         # initialize the width and height to values that will create
         # a viewer (mainWindow) of the right size
-        self.__scenewidth = int(10.5 * self.physicalDpiX())
-        self.__sceneheight = int(8.5 * self.physicalDpiY())
+        self.__scenewidth = int(10.8 * self.physicalDpiX())
+        self.__sceneheight = int(8.8 * self.physicalDpiY())
+        # by default pay attention to any alpha channel values in colors
+        self.__noalpha = False
         # initial default color for the background (opaque white)
         self.__lastclearcolor = QColor(0xFFFFFF)
         self.__lastclearcolor.setAlpha(0xFF)
@@ -99,27 +101,6 @@ class PipedImagerPQ(QMainWindow):
         # command helper object
         self.__helper = CmndHelperPQ(self)
         # create the menubar
-        self.createActions()
-        self.createMenus()
-        # set the initial size of the viewer
-        self.__framedelta = 4
-        mwwidth = self.__scenewidth + self.__framedelta
-        mwheight = self.__sceneheight + self.__framedelta \
-                 + self.menuBar().height() \
-                 + self.statusBar().height()
-        self.resize(mwwidth, mwheight)
-        # check the command queue any time there are no window events to deal with
-        self.__timer = QTimer(self)
-        self.__timer.timeout.connect(self.checkCommandPipe)
-        self.__timer.setInterval(0)
-        self.__timer.start()
-
-    def createActions(self):
-        '''
-        Create the actions used by the menus in this viewer.  Ownership
-        of the actions are not transferred in addAction, thus the need
-        to maintain references here.
-        '''
         self.__scaleact = QAction(self.tr("&Scale"), self,
                                 shortcut=self.tr("Ctrl+S"),
                                 statusTip=self.tr("Scale the image (canvas and image change size)"),
@@ -141,6 +122,19 @@ class PipedImagerPQ(QMainWindow):
         self.__exitact = QAction(self.tr("&Exit"), self,
                                 statusTip=self.tr("Shut down the viewer"),
                                 triggered=self.exitViewer)
+        self.createMenus()
+        # set the initial size of the viewer
+        self.__framedelta = 4
+        mwwidth = self.__scenewidth + self.__framedelta
+        mwheight = self.__sceneheight + self.__framedelta \
+                 + self.menuBar().height() \
+                 + self.statusBar().height()
+        self.resize(mwwidth, mwheight)
+        # check the command queue any time there are no window events to deal with
+        self.__timer = QTimer(self)
+        self.__timer.timeout.connect(self.checkCommandPipe)
+        self.__timer.setInterval(0)
+        self.__timer.start()
 
     def createMenus(self):
         '''
@@ -219,6 +213,12 @@ class PipedImagerPQ(QMainWindow):
     def aboutQtMsg(self):
         QMessageBox.aboutQt(self, self.tr("About Qt"))
 
+    def ignoreAlpha(self):
+        '''
+        Return whether the alpha channel in colors should always be ignored.
+        '''
+        return self.__noalpha
+
     def updateScene(self):
         '''
         Clear the displayed scene using self.__lastclearcolor,
@@ -232,13 +232,13 @@ class PipedImagerPQ(QMainWindow):
         newpixmap.fill(self.__lastclearcolor)
         if self.__sceneimage != None:
             # Draw the scaled image to the pixmap
-            painter = QPainter(newpixmap)
+            mypainter = QPainter(newpixmap)
             trgrect = QRectF(0.0, 0.0, float(labelwidth),
                                        float(labelheight))
             srcrect = QRectF(0.0, 0.0, float(self.__scenewidth),
                                        float(self.__sceneheight))
-            painter.drawImage(trgrect, self.__sceneimage, srcrect, Qt.AutoColor)
-            painter.end()
+            mypainter.drawImage(trgrect, self.__sceneimage, srcrect, Qt.AutoColor)
+            mypainter.end()
         # Assign the new pixmap to the label
         self.__label.setPixmap(newpixmap)
         # set the label size and values
@@ -259,7 +259,7 @@ class PipedImagerPQ(QMainWindow):
         # get the color to use for clearing (the background color)
         if bkgcolor:
             if bkgcolor.isValid():
-                    self.__lastclearcolor = bkgcolor
+                self.__lastclearcolor = bkgcolor
         # Remove the image and its bytearray
         self.__sceneimage = None
         self.__scenedata = None
@@ -273,7 +273,7 @@ class PipedImagerPQ(QMainWindow):
         # get the background color
         if bkgcolor:
             if bkgcolor.isValid():
-                    self.__lastclearcolor = bkgcolor
+                self.__lastclearcolor = bkgcolor
         # Update the scene label using the current clearing color and image
         QApplication.setOverrideCursor(Qt.WaitCursor)
         self.statusBar().showMessage( self.tr("Redrawing image") )
@@ -343,20 +343,19 @@ class PipedImagerPQ(QMainWindow):
         if not self.__loadingimage:
             # prepare for a new image data from subsequent calls
             # get dimensions of the new image
-            imgwidth = int( imageinfo["width"] )
-            imgheight = int( imageinfo["height"] )
-            imgstride = int( imageinfo["stride"] )
-            if (imgwidth < self.__minsize) or (imgheight < self.__minsize):
-                raise ValueError( self.tr("image width and height cannot be less than %1") \
-                                      .arg(str(self.__minsize)) )
+            myimgwidth = int( imageinfo["width"] )
+            myimgheight = int( imageinfo["height"] )
+            myimgstride = int( imageinfo["stride"] )
+            if (myimgwidth < self.__minsize) or (myimgheight < self.__minsize):
+                raise ValueError("image width and height cannot be less than %s" % str(self.__minsize))
             # Newer PyQt versions allow separate specification of the stride
-            if imgstride != 4 * imgwidth:
-                raise ValueError( self.tr("image stride is not four times the image width") )
+            if myimgstride != 4 * myimgwidth:
+                raise ValueError("image stride is not four times the image width")
             # create the bytearray to contain the new scene data
             # automatically initialized to zero
-            self.__scenedata = bytearray(imgstride * imgheight)
-            self.__scenewidth = imgwidth
-            self.__sceneheight = imgheight
+            self.__scenedata = bytearray(myimgstride * myimgheight)
+            self.__scenewidth = myimgwidth
+            self.__sceneheight = myimgheight
             # set the flag for subsequent calls to this method
             self.__loadingimage = True
             # change the cursor to warn the user this may take some time
@@ -365,31 +364,31 @@ class PipedImagerPQ(QMainWindow):
             self.statusBar().showMessage( self.tr("Loading new image") )
             return
         # loading an image; add the next block of data
-        blocknum = int( imageinfo["blocknum"] )
-        numblocks = int( imageinfo["numblocks"] )
-        startindex = int( imageinfo["startindex"] )
-        blockdata = imageinfo["blockdata"]
-        if (blocknum < 1) or (blocknum > numblocks):
+        myblocknum = int( imageinfo["blocknum"] )
+        mynumblocks = int( imageinfo["numblocks"] )
+        mystartindex = int( imageinfo["startindex"] )
+        myblockdata = imageinfo["blockdata"]
+        if (myblocknum < 1) or (myblocknum > mynumblocks):
             self.statusBar().clearMessage()
             QApplication.restoreOverrideCursor()
-            raise ValueError( self.tr("invalid image data block number or number of blocks") )
-        if (startindex < 0) or (startindex >= len(self.__scenedata)):
+            raise ValueError("invalid image data block number or number of blocks")
+        if (mystartindex < 0) or (mystartindex >= len(self.__scenedata)):
             self.statusBar().clearMessage()
             QApplication.restoreOverrideCursor()
-            raise ValueError( self.tr("invalid start index for an image data block") )
-        blocksize = len(blockdata)
-        endindex = startindex + blocksize
-        if (blocksize < 1) or (endindex > len(self.__scenedata)):
+            raise ValueError("invalid start index for an image data block")
+        myblocksize = len(myblockdata)
+        myendindex = mystartindex + myblocksize
+        if (myblocksize < 1) or (myendindex > len(self.__scenedata)):
             self.statusBar().clearMessage()
             QApplication.restoreOverrideCursor()
-            raise ValueError( self.tr("invalid length of an image data block") )
+            raise ValueError("invalid length of an image data block")
         # update the status message to show progress
         self.statusBar().showMessage( self.tr("Loading new image (block %1 of %2)") \
-                                          .arg(str(blocknum)).arg(str(numblocks)) )
+                                          .arg(str(myblocknum)).arg(str(mynumblocks)) )
         # assign the data
-        self.__scenedata[startindex:endindex] = blockdata
+        self.__scenedata[mystartindex:myendindex] = myblockdata
         # if this is the last block of data, create and display the scene image
-        if blocknum == numblocks:
+        if myblocknum == mynumblocks:
             self.__loadingimage = False
             self.statusBar().showMessage( self.tr("Creating new image") )
             try:
@@ -553,8 +552,7 @@ class PipedImagerPQ(QMainWindow):
                     fileFormat = fmt
                     break
             else:
-                raise RuntimeError( self.tr("Unexpected file format name '%1'") \
-                                        .arg(fileFilter) )
+                raise RuntimeError("Unexpected file format name '%s'" % fileFilter)
             self.saveSceneToFile(fileName, fileFormat, None, None)
             self.__lastfilename = fileName
             self.__lastformat = fileFormat
@@ -605,7 +603,7 @@ class PipedImagerPQ(QMainWindow):
             else:
                 imagewidth = int(self.__scenewidth * self.__scalefactor + 0.5)
                 imageheight = int(self.__sceneheight * self.__scalefactor + 0.5)
-            image = QImage( QSize(imagewidth, imageheight),
+            myimage = QImage( QSize(imagewidth, imageheight),
                             QImage.Format_ARGB32_Premultiplied )
             # Initialize the image
             if not transparent:
@@ -613,17 +611,17 @@ class PipedImagerPQ(QMainWindow):
                 fillint = self.__helper.computeARGB32PreMultInt(self.__lastclearcolor)
             else:
                 fillint = 0
-            image.fill(fillint)
+            myimage.fill(fillint)
             # draw the scaled scene to this QImage
-            painter = QPainter(image)
+            mypainter = QPainter(myimage)
             trgrect = QRectF(0.0, 0.0, float(imagewidth),
                                        float(imageheight))
             srcrect = QRectF(0.0, 0.0, float(self.__scenewidth),
                                        float(self.__sceneheight))
-            painter.drawImage(trgrect, self.__sceneimage, srcrect, Qt.AutoColor)
-            painter.end()
+            mypainter.drawImage(trgrect, self.__sceneimage, srcrect, Qt.AutoColor)
+            mypainter.end()
             # save the image to file
-            image.save(myfilename, myformat)
+            myimage.save(myfilename, myformat)
         finally:
             self.statusBar().clearMessage()
             QApplication.restoreOverrideCursor()
@@ -668,7 +666,7 @@ class PipedImagerPQ(QMainWindow):
         try:
             cmndact = cmnd["action"]
         except KeyError:
-            raise ValueError( self.tr("Unknown command %1").arg(str(cmnd)) )
+            raise ValueError("Unknown command %s" % str(cmnd))
 
         if cmndact == "clear":
             try:
@@ -713,18 +711,20 @@ class PipedImagerPQ(QMainWindow):
         elif cmndact == "setTitle":
             self.setWindowTitle(cmnd["title"])
         elif cmndact == "imgname":
-            value = cmnd.get("name", None)
-            if value:
-                self.__lastfilename = value;
-            value = cmnd.get("format", None)
-            if value:
-                self.__lastformat = value.lower();
+            myvalue = cmnd.get("name", None)
+            if myvalue:
+                self.__lastfilename = myvalue
+            myvalue = cmnd.get("format", None)
+            if myvalue:
+                self.__lastformat = myvalue.lower()
         elif cmndact == "show":
             if self.isHidden():
                 self.showNormal()
+        elif cmndact == "noalpha":
+            # ignore any alpha channel values in colors
+            self.__noalpha = True
         else:
-            raise ValueError( self.tr("Unknown command action %1") \
-                                  .arg(str(cmndact)) )
+            raise ValueError("Unknown command action %s" % str(cmndact))
 
 
 class PipedImagerPQProcess(Process):
@@ -739,6 +739,8 @@ class PipedImagerPQProcess(Process):
         Process.__init__(self)
         self.__cmndpipe = cmndpipe
         self.__rspdpipe = rspdpipe
+        self.__app = None
+        self.__viewer = None
 
     def run(self):
         '''
@@ -747,10 +749,10 @@ class PipedImagerPQProcess(Process):
         '''
         self.__app = QApplication(["PipedImagerPQ"])
         self.__viewer = PipedImagerPQ(self.__cmndpipe, self.__rspdpipe)
-        result = self.__app.exec_()
+        myresult = self.__app.exec_()
         self.__cmndpipe.close()
         self.__rspdpipe.close()
-        SystemExit(result)
+        SystemExit(myresult)
 
 
 #
@@ -808,7 +810,7 @@ if __name__ == "__main__":
                 (150, 250),
                 (100, 450) )
     # start PyQt
-    app = QApplication(["PipedImagerPQ"])
+    testapp = QApplication(["PipedImagerPQ"])
     # create the list of commands to submit
     drawcmnds = []
     drawcmnds.append( { "action":"setTitle", "title":"Tester" } )
@@ -816,62 +818,62 @@ if __name__ == "__main__":
     drawcmnds.append( { "action":"clear", "color":"black"} )
     drawcmnds.append( { "action":"screenInfo"} )
     # create the image to be displayed
-    image = QImage(500, 500, QImage.Format_ARGB32_Premultiplied)
+    testimage = QImage(500, 500, QImage.Format_ARGB32_Premultiplied)
     # initialize a black background
-    image.fill(0xFF000000)
+    testimage.fill(0xFF000000)
     # draw some things in the image
-    painter = QPainter(image)
-    painter.setBrush( QBrush(QColor(0, 255, 0, 128), Qt.SolidPattern) )
-    painter.setPen( QPen(QBrush(QColor(255, 0, 0, 255), Qt.SolidPattern),
+    testpainter = QPainter(testimage)
+    testpainter.setBrush( QBrush(QColor(0, 255, 0, 128), Qt.SolidPattern) )
+    testpainter.setPen( QPen(QBrush(QColor(255, 0, 0, 255), Qt.SolidPattern),
                          5.0, Qt.SolidLine, Qt.SquareCap, Qt.MiterJoin) )
-    painter.drawRect( QRectF(5.0, 255.0, 240.0, 240.0) )
-    painter.setBrush( QBrush(QColor(0, 0, 255, 255), Qt.SolidPattern) )
-    painter.setPen( QPen(QBrush(QColor(0, 0, 0, 255), Qt.SolidPattern),
+    testpainter.drawRect( QRectF(5.0, 255.0, 240.0, 240.0) )
+    testpainter.setBrush( QBrush(QColor(0, 0, 255, 255), Qt.SolidPattern) )
+    testpainter.setPen( QPen(QBrush(QColor(0, 0, 0, 255), Qt.SolidPattern),
                          5.0, Qt.DashLine, Qt.RoundCap, Qt.RoundJoin) )
-    painter.drawPolygon( QPolygonF(
+    testpainter.drawPolygon( QPolygonF(
             [ QPointF(.25 * ptx, .25 * pty + 250) for (ptx, pty) in pentagonpts ] ) )
-    painter.setBrush( Qt.NoBrush )
-    painter.setPen( QPen(QBrush(QColor(255, 255, 255, 255), Qt.SolidPattern),
+    testpainter.setBrush( Qt.NoBrush )
+    testpainter.setPen( QPen(QBrush(QColor(255, 255, 255, 255), Qt.SolidPattern),
                          3.0, Qt.DashLine, Qt.RoundCap, Qt.RoundJoin) )
-    painter.drawPolyline( QPolygonF(
+    testpainter.drawPolyline( QPolygonF(
             [ QPointF(pts, pty) for (pts, pty) in linepts ] ) )
-    painter.end()
+    testpainter.end()
     # add the image command
-    imgwidth = image.width()
-    imgheight = image.height()
-    imgstride = image.bytesPerLine()
+    testimgwidth = testimage.width()
+    testimgheight = testimage.height()
+    testimgstride = testimage.bytesPerLine()
     # not a good way to get the pixel data
-    imgdata = bytearray(imgheight * imgstride)
+    testimgdata = bytearray(testimgheight * testimgstride)
     k = 0
-    for pty in xrange(imgheight):
-        for ptx in xrange(imgwidth):
-            pixval = image.pixel(ptx, pty)
+    for pty in xrange(testimgheight):
+        for ptx in xrange(testimgwidth):
+            pixval = testimage.pixel(ptx, pty)
             (aval, rgbval) = divmod(pixval, 256 * 256 * 256)
             (rval, gbval) = divmod(rgbval, 256 * 256)
             (gval, bval) = divmod(gbval, 256)
-            imgdata[k] = bval
+            testimgdata[k] = bval
             k += 1
-            imgdata[k] = gval
+            testimgdata[k] = gval
             k += 1
-            imgdata[k] = rval
+            testimgdata[k] = rval
             k += 1
-            imgdata[k] = aval
+            testimgdata[k] = aval
             k += 1
-    blocksize = 2000
-    numblocks = (imgheight * imgstride + blocksize - 1) // blocksize
+    testblocksize = 2000
+    testnumblocks = (testimgheight * testimgstride + testblocksize - 1) // testblocksize
     drawcmnds.append( { "action":"newImage",
-                        "width":imgwidth,
-                        "height":imgheight,
-                        "stride":imgstride } )
-    for k in xrange(numblocks):
-        if k < (numblocks - 1):
-            blkdata = imgdata[k*blocksize:(k+1)*blocksize]
+                        "width":testimgwidth,
+                        "height":testimgheight,
+                        "stride":testimgstride } )
+    for k in xrange(testnumblocks):
+        if k < (testnumblocks - 1):
+            blkdata = testimgdata[k*testblocksize:(k+1)*testblocksize]
         else:
-            blkdata = imgdata[k*blocksize:]
+            blkdata = testimgdata[k*testblocksize:]
         drawcmnds.append( { "action":"newImage",
                             "blocknum":k+1,
-                            "numblocks":numblocks,
-                            "startindex":k*blocksize,
+                            "numblocks":testnumblocks,
+                            "startindex":k*testblocksize,
                             "blockdata":blkdata } )
     # finish the command list
     drawcmnds.append( { "action":"show" } )
@@ -879,13 +881,13 @@ if __name__ == "__main__":
     # create a PipedImagerPQ in this process
     cmndrecvpipe, cmndsendpipe = Pipe(False)
     rspdrecvpipe, rspdsendpipe = Pipe(False)
-    viewer = PipedImagerPQ(cmndrecvpipe, rspdsendpipe)
+    testviewer = PipedImagerPQ(cmndrecvpipe, rspdsendpipe)
     # create a command submitter dialog
-    tester = _CommandSubmitterPQ(viewer, cmndsendpipe,
+    tester = _CommandSubmitterPQ(testviewer, cmndsendpipe,
                                    rspdrecvpipe, drawcmnds)
     tester.show()
     # let it all run
-    result = app.exec_()
-    if result != 0:
-        sys.exit(result)
+    testresult = testapp.exec_()
+    if testresult != 0:
+        sys.exit(testresult)
 
diff --git a/pviewmod/pipedviewerpq.py b/pviewmod/pipedviewerpq.py
index d30d049..a22a358 100644
--- a/pviewmod/pipedviewerpq.py
+++ b/pviewmod/pipedviewerpq.py
@@ -22,10 +22,10 @@ except AttributeError:
 from PyQt4.QtCore import Qt, QPointF, QRect, QRectF, QSize, QSizeF, \
                          QString, QTimer
 from PyQt4.QtGui  import QAction, QApplication, QBrush, QColor, QDialog, \
-                         QFileDialog, QFont, QImage, QLabel, QMainWindow, \
-                         QMessageBox, QPainter, QPalette, QPen, QPicture, \
-                         QPixmap, QPolygonF, QPrinter, QPushButton, \
-                         QScrollArea, QTextDocument
+                         QFileDialog, QFontMetricsF, QImage, QLabel, \
+                         QMainWindow, QMessageBox, QPainter, QPalette, \
+                         QPen, QPicture, QPixmap, QPolygonF, QPrinter, \
+                         QPushButton, QScrollArea, QTextDocument
 
 try:
     from PyQt4.QtSvg  import QSvgGenerator
@@ -74,10 +74,13 @@ class PipedViewerPQ(QMainWindow):
         # ignore Ctrl-C
         signal.signal(signal.SIGINT, signal.SIG_IGN)
         # default scene size
-        self.__scenewidth = int(10.5 * self.physicalDpiX())
-        self.__sceneheight = int(8.5 * self.physicalDpiY())
+        self.__scenewidth = int(10.8 * self.physicalDpiX())
+        self.__sceneheight = int(8.8 * self.physicalDpiY())
         # scaling factor for line widths and symbol sizes
-        self.setWidthScalingFactor(0.75)
+        self.__widthfactor = None
+        self.setWidthScalingFactor(0.72)
+        # by default pay attention to any alpha channel values in colors
+        self.__noalpha = False
         # initial default color for the background (opaque white)
         self.__lastclearcolor = QColor(0xFFFFFF)
         self.__lastclearcolor.setAlpha(0xFF)
@@ -130,27 +133,6 @@ class PipedViewerPQ(QMainWindow):
         # command helper object
         self.__helper = CmndHelperPQ(self)
         # Create the menubar
-        self.createActions()
-        self.createMenus()
-        # Set the initial size of the viewer
-        self.__framedelta = 4
-        mwwidth = self.__scenewidth + self.__framedelta
-        mwheight = self.__sceneheight + self.__framedelta \
-                 + self.menuBar().height() \
-                 + self.statusBar().height()
-        self.resize(mwwidth, mwheight)
-        # check the command queue any time there are no window events to deal with
-        self.__timer = QTimer(self)
-        self.__timer.timeout.connect(self.checkCommandPipe)
-        self.__timer.setInterval(0)
-        self.__timer.start()
-
-    def createActions(self):
-        '''
-        Create the actions used by the menus in this viewer.  Ownership
-        of the actions are not transferred in addAction, thus the need
-        to maintain references here.
-        '''
         self.__scaleact = QAction(self.tr("&Scale"), self,
                                 shortcut=self.tr("Ctrl+S"),
                                 statusTip=self.tr("Scale the image (canvas and image change size)"),
@@ -172,6 +154,19 @@ class PipedViewerPQ(QMainWindow):
         self.__exitact = QAction(self.tr("&Exit"), self,
                                 statusTip=self.tr("Shut down the viewer"),
                                 triggered=self.exitViewer)
+        self.createMenus()
+        # Set the initial size of the viewer
+        self.__framedelta = 4
+        mwwidth = self.__scenewidth + self.__framedelta
+        mwheight = self.__sceneheight + self.__framedelta \
+                 + self.menuBar().height() \
+                 + self.statusBar().height()
+        self.resize(mwwidth, mwheight)
+        # check the command queue any time there are no window events to deal with
+        self.__timer = QTimer(self)
+        self.__timer.timeout.connect(self.checkCommandPipe)
+        self.__timer.setInterval(0)
+        self.__timer.start()
 
     def createMenus(self):
         '''
@@ -259,6 +254,12 @@ class PipedViewerPQ(QMainWindow):
     def aboutQtMsg(self):
         QMessageBox.aboutQt(self, self.tr("About Qt"))
 
+    def ignoreAlpha(self):
+        '''
+        Return whether the alpha channel in colors should always be ignored.
+        '''
+        return self.__noalpha
+
     def paintScene(self, painter, first, leftx, uppery, scalefactor,
                    statusmsg, returnregion):
         '''
@@ -355,7 +356,10 @@ class PipedViewerPQ(QMainWindow):
             wascleared = True
         elif len(self.__viewpics) > self.__lastpicdrawn:
             # New pictures to add to an existing scene
-            wascleared = False
+            # wascleared = False
+            # Rectangles of modified regins incorrect for drawText
+            # so always update the entire scene
+            wascleared = True
         else:
             # Nothing changed so just return
             return
@@ -624,15 +628,14 @@ class PipedViewerPQ(QMainWindow):
                     fileFormat = fmt
                     break
             else:
-                raise RuntimeError( self.tr("Unexpected file format name '%1'") \
-                                        .arg(fileFilter) )
+                raise RuntimeError("Unexpected file format name '%s'" % fileFilter)
             self.saveSceneToFile(fileName, fileFormat, None, 
                                  None, None, None)
             self.__lastfilename = fileName
             self.__lastformat = fileFormat
 
     def saveSceneToFile(self, filename, imageformat, transparent, 
-                        vectsize, rastsize, annotations):
+                        vectsize, rastsize, myannotations):
         '''
         Save the current scene to the named file.  If imageformat
         is empty or None, the format is guessed from the filename
@@ -651,7 +654,7 @@ class PipedViewerPQ(QMainWindow):
         image.  If rastsize is not given, a raster image will be 
         saved at the current displayed scaled image size.  
 
-        If annotations is not None, the strings given in the tuple
+        If myannotations is not None, the strings given in the tuple
         are to be displayed above the image.  These annotations add 
         height, as needed, to the saved image (i.e., vectsize or 
         rastsize gives the height of the image below these annotations).
@@ -700,16 +703,15 @@ class PipedViewerPQ(QMainWindow):
 
         # The RHEL5 distribution of Qt4 does not have a QSvgGenerator
         if (not HAS_QSvgGenerator) and (myformat == 'svg'):
-            raise ValueError( self.tr("Your version of Qt does not " \
-                                      "support generation of SVG files") )
+            raise ValueError("Your version of Qt does not support generation of SVG files")
 
-        if annotations:
+        if myannotations:
             annopicture = QPicture()
             annopainter = QPainter(annopicture)
             annotextdoc = QTextDocument()
             # Leave room for the added margins to the width
             annotextdoc.setTextWidth(self.__scenewidth - 2.0 * self.__addedannomargin)
-            annotextdoc.setHtml("<p>" + "<br />".join(annotations) + "</p>")
+            annotextdoc.setHtml("<p>" + "<br />".join(myannotations) + "</p>")
             annotextdoc.drawContents(annopainter)
             annopainter.end()
             annosize = annotextdoc.documentLayout().documentSize()
@@ -955,7 +957,7 @@ class PipedViewerPQ(QMainWindow):
         try:
             cmndact = cmnd["action"]
         except KeyError:
-            raise ValueError( self.tr("Unknown command %1").arg(str(cmnd)) )
+            raise ValueError("Unknown command '%s'" % str(cmnd))
 
         if cmndact == "clear":
             try:
@@ -996,26 +998,31 @@ class PipedViewerPQ(QMainWindow):
             transparent = cmnd.get("transparent", False)
             vectsize = self.__helper.getSizeFromCmnd(cmnd["vectsize"])
             rastsize = self.__helper.getSizeFromCmnd(cmnd["rastsize"])
-            annotations = cmnd["annotations"]
+            try:
+                myannotations = cmnd["annotations"]
+            except KeyError:
+                myannotations = None 
             self.saveSceneToFile(filename, fileformat, transparent, 
-                                 vectsize, rastsize, annotations)
+                                 vectsize, rastsize, myannotations)
         elif cmndact == "setWidthFactor":
             newfactor = float(cmnd.get("factor", -1.0))
             if newfactor <= 0.0:
-                raise ValueError( self.tr("Invalid width factor") )
+                raise ValueError("Invalid width factor")
             self.setWidthScalingFactor(newfactor)
         elif cmndact == "setTitle":
             self.setWindowTitle(cmnd["title"])
         elif cmndact == "imgname":
             value = cmnd.get("name", None)
             if value:
-                self.__lastfilename = value;
+                self.__lastfilename = value
             value = cmnd.get("format", None)
             if value:
-                self.__lastformat = value.lower();
+                self.__lastformat = value.lower()
         elif cmndact == "show":
             if self.isHidden():
                 self.showNormal()
+        elif cmndact == "noalpha":
+            self.__noalpha = True
         elif cmndact == "beginView":
             self.beginView(cmnd)
         elif cmndact == "clipView":
@@ -1036,11 +1043,13 @@ class PipedViewerPQ(QMainWindow):
             self.drawPolygon(cmnd)
         elif cmndact == "drawRectangle":
             self.drawRectangle(cmnd)
+        elif cmndact == "textSize":
+            info = self.getSimpleTextSize(cmnd)
+            self.__rspdpipe.send(info)
         elif cmndact == "drawText":
             self.drawSimpleText(cmnd)
         else:
-            raise ValueError( self.tr("Unknown command action %1") \
-                                  .arg(str(cmndact)) )
+            raise ValueError("Unknown command action %s" % str(cmndact))
 
     def beginView(self, cmnd):
         '''
@@ -1089,13 +1098,13 @@ class PipedViewerPQ(QMainWindow):
         # perform the checks after turning into units of pixels
         # to make sure the values are significantly different
         if (0.0 > leftpixel) or (leftpixel >= rightpixel) or (rightpixel > width):
-            raise ValueError( self.tr("Invalid left, right view fractions: " \
-                                      "left in pixels = %1, right in pixels = %2") \
-                                  .arg(str(leftpixel)).arg(str(rightpixel)) )
+            raise ValueError("Invalid left, right view fractions: " \
+                             "left in pixels = %s, right in pixels = %s" \
+                             % (str(leftpixel), str(rightpixel)) )
         if (0.0 > toppixel) or (toppixel >= bottompixel) or (bottompixel > height):
-            raise ValueError( self.tr("Invalid bottom, top view fractions: " \
-                                      "top in pixels = %1, bottom in pixels = %2") \
-                                  .arg(str(toppixel)).arg(str(bottompixel)) )
+            raise ValueError("Invalid bottom, top view fractions: " \
+                             "top in pixels = %s, bottom in pixels = %s" \
+                             % (str(toppixel), str(bottompixel)) )
         # Create the view rectangle in device coordinates
         vrectf = QRectF(leftpixel, toppixel,
                        rightpixel - leftpixel, bottompixel - toppixel)
@@ -1329,9 +1338,10 @@ class PipedViewerPQ(QMainWindow):
             mypen = self.__helper.getPenFromCmnd(cmnd["outline"])
         except KeyError:
             if ( mybrush == Qt.NoBrush ):
-                raise ValueError( self.tr('drawPolygon called without a Brush or Pen') )
+                raise ValueError('drawPolygon called without a Brush or Pen')
             # Use a "cosmetic" Pen matching the brush
-            mypen = QPen(mybrush, 1.0, Qt.SolidLine, Qt.SquareCap, Qt.BevelJoin)
+            # mypen = QPen(mybrush, 0.0, Qt.SolidLine, Qt.SquareCap, Qt.BevelJoin)
+            mypen = Qt.NoPen
         self.__activepainter.setBrush(mybrush)
         self.__activepainter.setPen(mypen)
         self.__activepainter.drawPolygon(mypolygon)
@@ -1384,9 +1394,10 @@ class PipedViewerPQ(QMainWindow):
             mypen = self.__helper.getPenFromCmnd(cmnd["outline"])
         except KeyError:
             if ( mybrush == Qt.NoBrush ):
-                raise ValueError( self.tr('drawPolygon called without a Brush or Pen') )
+                raise ValueError('drawPolygon called without a Brush or Pen')
             # Use a "cosmetic" Pen matching the brush
-            mypen = QPen(mybrush, 1.0, Qt.SolidLine, Qt.SquareCap, Qt.BevelJoin)
+            # mypen = QPen(mybrush, 1.0, Qt.SolidLine, Qt.SquareCap, Qt.BevelJoin)
+            mypen = Qt.NoPen
         self.__activepainter.setBrush(mybrush)
         self.__activepainter.setPen(mypen)
         self.__activepainter.drawRect(myrect)
@@ -1395,13 +1406,41 @@ class PipedViewerPQ(QMainWindow):
         if self.__drawcount >= self.__maxdraws:
             self.updateScene()
 
+    def getSimpleTextSize(self, cmnd):
+        '''
+        Returns the pair (width, height) for given text when drawn.
+        Raises a KeyError if the "text" key is not given.
+
+        The width value is the width for the text that can be used 
+        for positioning the next text item to draw.  The height 
+        value is the ascent plus decent for the font and does not
+        depend of the text.  The bounding rectangle for the actual
+        drawn text may exceed this (width, height) if, 
+        e.g., italic or unusual characters.
+
+        Recognized keys from cmnd:
+            "text": string to displayed
+            "font": dictionary describing the font to use;  see
+                    CmndHelperPQ.getFontFromCmnd.  If not given
+                    the default font for this viewer is used.
+        '''
+        try:
+            myfont = self.__helper.getFontFromCmnd(cmnd["font"])
+        except KeyError:
+            myfont = self.__activepainter.font()
+        myfontmetrics = QFontMetricsF(myfont)
+        mytext = cmnd["text"]
+        width = myfontmetrics.width(QString.fromUtf8(mytext))
+        height = myfontmetrics.height()
+        return (width, height)
+
     def drawSimpleText(self, cmnd):
         '''
         Draws a "simple" text item in the current view.
         Raises a KeyError if the "text" or "location" key is not given.
 
         Recognized keys from cmnd:
-            "text": string to displayed
+            "text": null-terminated UTF-8 encoded string to be displayed
             "font": dictionary describing the font to use;  see
                     CmndHelperPQ.getFontFromCmnd.  If not given
                     the default font for this viewer is used.
@@ -1440,7 +1479,7 @@ class PipedViewerPQ(QMainWindow):
                 self.__activepainter.rotate(rotdeg)
             except KeyError:
                 pass
-            self.__activepainter.drawText(0, 0, mytext)
+            self.__activepainter.drawText(0, 0, QString.fromUtf8(mytext))
             self.__drawcount += 1
         finally:
             # return the painter to the default state
@@ -1479,6 +1518,8 @@ class PipedViewerPQProcess(Process):
         Process.__init__(self)
         self.__cmndpipe = cmndpipe
         self.__rspdpipe = rspdpipe
+        self.__app = None
+        self.__viewer = None
 
     def run(self):
         '''
@@ -1487,10 +1528,10 @@ class PipedViewerPQProcess(Process):
         '''
         self.__app = QApplication(["PipedViewerPQ"])
         self.__viewer = PipedViewerPQ(self.__cmndpipe, self.__rspdpipe)
-        result = self.__app.exec_()
+        myresult = self.__app.exec_()
         self.__cmndpipe.close()
         self.__rspdpipe.close()
-        SystemExit(result)
+        SystemExit(myresult)
 
 
 #
@@ -1588,6 +1629,9 @@ if __name__ == "__main__":
                         "font":{"family":"Times", "size":16},
                         "fill":{"color":"red"},
                         "location":(50,330) } )
+    drawcmnds.append( { "action":"textSize",
+                        "text":"This is a some line of text",
+                        "font":{"family":"Times", "size":16} } )
     drawcmnds.append( { "action":"endSegment" } )
     drawcmnds.append( { "action":"endView" } )
     drawcmnds.append( { "action":"show" } )
diff --git a/pviewmod/pyferretbindings.py b/pviewmod/pyferretbindings.py
index db29adf..4643a4c 100644
--- a/pviewmod/pyferretbindings.py
+++ b/pviewmod/pyferretbindings.py
@@ -35,7 +35,7 @@ class PyFerretBindings(AbstractPyFerretBindings):
         super(PyFerretBindings, self).__init__()
         self.__window = None
 
-    def createPipedViewerWindow(self, viewertype, title, visible):
+    def createPipedViewerWindow(self, viewertype, title, visible, noalpha):
         '''
         Creates a PipedViewer of viewertype as the window of this
         instance of the bindings.
@@ -44,6 +44,7 @@ class PyFerretBindings(AbstractPyFerretBindings):
             viewertype: type of PipedViewer to use 
             title: display title for the Window
             visible: display Window on start-up?
+            noalpha: do not use the alpha channel in colors?
 
         Raises a RuntimeError if an active window is already associated
         with these bindings, or if there were problems with creating
@@ -59,6 +60,8 @@ class PyFerretBindings(AbstractPyFerretBindings):
                                       "title":str(title) } )
         if visible:
             self.__window.submitCommand( {"action":"show"} )
+        if noalpha:
+            self.__window.submitCommand( {"action":"noalpha"} )
         self.checkForErrorResponse()
         return True
 
@@ -720,6 +723,48 @@ class PyFerretBindings(AbstractPyFerretBindings):
         self.__window.submitCommand(cmnd)
         self.checkForErrorResponse()
 
+    def textSize(self, text, font):
+        '''
+        Returns the width and height of the text if drawn in the given font.  
+        The width is such that continuing text should be positioned at the 
+        start of this text plus this width.  The height will always be the 
+        ascent plus descent for the font and is independent of the text.
+
+        Arguments:
+            text: the text string to draw
+            font: the font to use
+
+        Returns: (width, height) of the text in "device units" 
+              (pixels at the current window DPI) 
+        '''
+        cmnd = { "action":"textSize", "text":text }
+        if font:
+            cmnd["font"] = font
+        self.__window.submitCommand(cmnd)
+        response = None
+        try:
+            # Wait indefinitely for a response
+            # Make sure it is a valid response
+            response = self.__window.checkForResponse(None)
+            if (type(response) != tuple) or (len(response) != 2):
+                raise ValueError
+            width = float(response[0])
+            height = float(response[1])
+            if (width <= 0.0) or (height <= 0.0):
+                raise ValueError
+        except Exception:
+            if not response:
+                # error raised before a response obtained
+                raise
+            fullresponse = str(response)
+            response = self.__window.checkForResponse()
+            while response:
+                fullresponse += '\n'
+                fullresponse += response
+                response = self.__window.checkForResponse()
+            raise RuntimeError(fullresponse)
+        return (width, height)
+
     def drawText(self, text, startx, starty, font, color, rotate):
         '''
         Draws text.
@@ -755,13 +800,14 @@ class PViewerPQPyFerretBindings(PyFerretBindings):
     PyFerretBindings using a PipedViewerPQ as the viewer.
     '''
 
-    def createWindow(self, title, visible):
+    def createWindow(self, title, visible, noalpha):
         '''
         Creates PyFerret bindings using a PipedViewerPQ.
 
         Arguments:
             title: display title for the Window
             visible: display Window on start-up?
+            noalpha: do not use the alpha channel in colors?
 
         Raises a RuntimeError if an active window is already associated
         with these bindings, or if there were problems with creating
@@ -770,7 +816,7 @@ class PViewerPQPyFerretBindings(PyFerretBindings):
         Returns True.
         '''
         result = self.createPipedViewerWindow("PipedViewerPQ",
-                                              title, visible)
+                                       title, visible, noalpha)
         return result
 
 
@@ -789,13 +835,14 @@ class PImagerPQPyFerretBindings(PyFerretBindings):
     for the new scene to be displayed.
     '''
 
-    def createWindow(self, title, visible):
+    def createWindow(self, title, visible, noalpha):
         '''
         Creates PyFerret bindings using a PipedImagerPQ.
 
         Arguments:
             title: display title for the Window
             visible: display Window on start-up?
+            noalpha: do not use the alpha channel in colors?
 
         Raises a RuntimeError if an active window is already associated
         with these bindings, or if there were problems with creating
@@ -804,7 +851,7 @@ class PImagerPQPyFerretBindings(PyFerretBindings):
         Returns True.
         '''
         result = self.createPipedViewerWindow("PipedImagerPQ",
-                                              title, visible)
+                                       title, visible, noalpha)
         return result
 
 
@@ -887,7 +934,7 @@ if __name__ == "__main__":
         print "Testing bindings for %s" % viewertype
         # Create a viewer window
         title = viewertype + "Tester"
-        bindinst = pyferret.graphbind.createWindow(viewertype, title, True)
+        bindinst = pyferret.graphbind.createWindow(viewertype, title, True, False)
         # Resize the window to 500 x 500 pixels
         bindinst.resizeWindow(500, 500)
         # Turn on anti-aliasing
diff --git a/pyfermod/.project b/pyfermod/.project
new file mode 100644
index 0000000..ce98b95
--- /dev/null
+++ b/pyfermod/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>pyfermod</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.python.pydev.PyDevBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.python.pydev.pythonNature</nature>
+	</natures>
+</projectDescription>
diff --git a/pyfermod/.pydevproject b/pyfermod/.pydevproject
new file mode 100644
index 0000000..e70b112
--- /dev/null
+++ b/pyfermod/.pydevproject
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?eclipse-pydev version="1.0"?><pydev_project>
+<pydev_pathproperty name="org.python.pydev.PROJECT_SOURCE_PATH">
+<path>/${PROJECT_DIR_NAME}</path>
+</pydev_pathproperty>
+<pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python 2.6</pydev_property>
+<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">Default</pydev_property>
+
+</pydev_project>
diff --git a/pyfermod/__init__.py b/pyfermod/__init__.py
index 76df873..c7fca67 100644
--- a/pyfermod/__init__.py
+++ b/pyfermod/__init__.py
@@ -71,6 +71,10 @@ import filenamecompleter
 import graphbind
 import regrid
 
+from ferrvar import FerrVar
+from ferrdatavar import FerrDataVar
+from ferrdataset import FerrDataSet
+
 
 def init(arglist=None, enterferret=True):
     """
@@ -119,7 +123,7 @@ def init(arglist=None, enterferret=True):
        -secure:      restrict Ferret's capabilities (e.g., SPAWN and
                      EXIT /TOPYTHON are not permitted)
 
-       -server:      run Ferret in server mode
+       -server:      run Ferret in server mode (don't stop on message commands)
 
        -python:      start at the Python prompt instead of the Ferret prompt.
                      The ferret prompt can be obtained using 'pyferret.run()'
@@ -143,8 +147,10 @@ def init(arglist=None, enterferret=True):
        -transparent: use a transparent background instead of opaque white
                      when saving to the file given by -batch
 
-       -script:      execute the script <scriptname> with any arguments specified,
-                     and exit (THIS MUST BE SPECIFIED LAST)
+       -script:      execute the script <scriptname> with any arguments 
+                     specified and exit (THIS MUST BE SPECIFIED LAST).  
+                     The -script option also implies the -nojnl, -noverify, 
+                     -server, and -quiet options.
 
     """
 
@@ -193,6 +199,7 @@ def init(arglist=None, enterferret=True):
                     my_unmapped = True
                 elif opt == "-gif":
                     my_unmapped = True
+                    my_metaname = "ferret.png"
                 elif opt == "-unmapped":
                     my_unmapped = True
                 elif opt == "-nojnl":
@@ -214,6 +221,10 @@ def init(arglist=None, enterferret=True):
                     print_help = True
                     break
                 elif opt == "-script":
+                    my_journal = False
+                    my_verify = False
+                    my_server = True
+                    my_quiet = True
                     k += 1
                     try:
                         script = arglist[k:]
@@ -1540,7 +1551,7 @@ def stop():
     # If it had been started, shut down ESMP and delete the log file
     try:
         regrid.ESMPControl().stopESMP(True)
-    except ImportError:
+    except Exception:
         pass
     # Continue with Ferret shutdown
     return libpyferret._stop()
diff --git a/pyfermod/ferrdataset.py b/pyfermod/ferrdataset.py
new file mode 100644
index 0000000..0f42b18
--- /dev/null
+++ b/pyfermod/ferrdataset.py
@@ -0,0 +1,24 @@
+'''
+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
new file mode 100644
index 0000000..19e2d87
--- /dev/null
+++ b/pyfermod/ferrdatavar.py
@@ -0,0 +1,22 @@
+'''
+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/ferrvar.py b/pyfermod/ferrvar.py
new file mode 100644
index 0000000..ff21121
--- /dev/null
+++ b/pyfermod/ferrvar.py
@@ -0,0 +1,22 @@
+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/graphbind/__init__.py b/pyfermod/graphbind/__init__.py
index 8e439b3..53fa211 100644
--- a/pyfermod/graphbind/__init__.py
+++ b/pyfermod/graphbind/__init__.py
@@ -47,7 +47,7 @@ def knownPyFerretEngines():
     '''
     return tuple( __pyferret_bindings_classes.keys() )
     
-def createWindow(engine_name, title, visible):
+def createWindow(engine_name, title, visible, noalpha):
     '''
     Creates an instance of the bindings class associated with
     engine_name and calls the createWindow method of that
@@ -59,6 +59,7 @@ def createWindow(engine_name, title, visible):
                      graphics engine to use for the Window
         title: display title for the Window
         visible: display Window on start-up?
+        noalpha: do not use the alpha channel in colors?
 
     Returns the instance of the binding class associated with
     the newly created Window if the createWindow method of the
@@ -72,7 +73,7 @@ def createWindow(engine_name, title, visible):
     except KeyError:
         raise ValueError("Unknown graphics engine '%s'" % engine_name)
     bindinst = bindclass()
-    if not bindinst.createWindow(title, visible):
+    if not bindinst.createWindow(title, visible, noalpha):
         del bindinst
         return None
     return bindinst
@@ -86,11 +87,11 @@ if __name__ == "__main__":
         def __init__(self):
             super(TestBindings, self).__init__()
 
-        def createWindow(self, title, visible):
+        def createWindow(self, title, visible, noalpha):
             return True
 
     addPyFerretBindings(TestBindings.engine_name, TestBindings)
-    bindinst = createWindow(TestBindings.engine_name, "test", False)
+    bindinst = createWindow(TestBindings.engine_name, "test", False, False)
     if not bindinst:
         raise RuntimeError("Unsuccessful creation of a Window")
     try:
@@ -109,3 +110,4 @@ if __name__ == "__main__":
         raise RuntimeError("Unexpected tuple of known engines: %s" % \
                            str(known_engines))
     print "Success"
+
diff --git a/pyfermod/graphbind/abstractpyferretbindings.py b/pyfermod/graphbind/abstractpyferretbindings.py
index 4f9975e..9b1afb7 100644
--- a/pyfermod/graphbind/abstractpyferretbindings.py
+++ b/pyfermod/graphbind/abstractpyferretbindings.py
@@ -29,7 +29,7 @@ class AbstractPyFerretBindings(object):
         '''
         super(AbstractPyFerretBindings, self).__init__()
 
-    def createWindow(self, title, visible):
+    def createWindow(self, title, visible, noalpha):
         '''
         Creates a "Window object" for this graphics engine.  Here,
         a Window is the complete drawing area.  However, no drawing
@@ -39,6 +39,7 @@ class AbstractPyFerretBindings(object):
         Arguments:
             title: display title for the Window
             visible: display Window on start-up?
+            noalpha: do not use the alpha channel in colors?
 
         Returns True if a Window was successfully created.
         '''
@@ -397,8 +398,7 @@ class AbstractPyFerretBindings(object):
 
     def setWidthFactor(self, widthfactor):
         '''
-        Assigns the scaling factor to be used for pen widths,
-        symbols sizes, and font sizes
+        Assigns the scaling factor to be used for pen widths and symbols sizes
 
         Arguments:
             widthfactor: positive float giving the new scaling factor to use
@@ -471,6 +471,22 @@ class AbstractPyFerretBindings(object):
         '''
         raise AttributeError('not implemented')
 
+    def textSize(self, text, font):
+        '''
+        Returns the width and height of the text if drawn in the given font.  
+        The width is such that continuing text should be positioned at the 
+        start of this text plus this width.  The height will always be the 
+        ascent plus descent for the font and is independent of the text.
+
+        Arguments:
+            text: the text string to draw
+            font: the font to use
+
+        Returns: (width, height) of the text in "device units" 
+              (pixels at the current window DPI) 
+        '''
+        raise AttributeError('not implemented')
+
     def drawText(self, text, startx, starty, font, color, rotate):
         '''
         Draws text.
diff --git a/pyfermod/libpyferret.c b/pyfermod/libpyferret.c
index 753afd5..c99d6ee 100644
--- a/pyfermod/libpyferret.c
+++ b/pyfermod/libpyferret.c
@@ -47,6 +47,7 @@
 #include "EF_Util.h"
 #include "grdel.h"
 #include "pyferret.h"
+#include "pplmem.h"
 
 /* global pyferret Python module object used for readline */
 PyObject *pyferret_module_pyobject = NULL;
@@ -342,6 +343,22 @@ static int resizeFerretMemory(int blksiz)
 }
 
 
+/*
+ * Called by the Ferret core to reallocate for more PPL memory
+ */
+void reallo_ppl_memory(int new_size)
+{
+    if ( pplMemory != NULL )
+        PyMem_Free(pplMemory);
+    pplMemory = (float *) PyMem_Malloc((size_t)new_size * sizeof(float));
+    if ( pplMemory == NULL ) {
+        printf("Unable to allocate the requested %d words of PLOT memory.\n", new_size);
+        exit(1);
+    }
+    set_ppl_memory(pplMemory, new_size);
+}
+
+
 static char pyferretResizeMemoryDocstring[] =
     "Reset the the amount of memory allocated for Ferret from Python-managed memory. \n"
     "\n"
diff --git a/setup.py b/setup.py
index 8e133c8..ea56443 100644
--- a/setup.py
+++ b/setup.py
@@ -25,6 +25,10 @@ if hdf5_libdir:
 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]
@@ -34,6 +38,8 @@ if hdf5_libdir:
     libdir_list.append(hdf5_libdir)
 if cairo_libdir:
     libdir_list.append(cairo_libdir)
+if pixman_libdir:
+    libdir_list.append(pixman_libdir)
 libdir_list.append(python_libdir)
 
 # Get the list of ferret static libraries
@@ -74,23 +80,32 @@ else:
 # The Pango text-rendering libraries
 addn_link_args.extend([ "-lpangocairo-1.0", "-lpango-1.0", "-lgobject-2.0" ])
 
-# Link to the appropriate cairo library.
-# The pixman-1, freetype, fontconfig, png12, Xrender, and X11 libraries
-# are only used to resolve cairo library function calls when statically
-# linking in the cairo-1.8.8 library.
+# Link to the cairo library and the libraries it requires.
 if cairo_libdir:
     cairo_lib = "-Wl," + os.path.join(cairo_libdir, "libcairo.a")
-    addn_link_args.extend([ cairo_lib, "-lpixman-1", "-lfreetype",
-                            "-lfontconfig", "-lpng12", "-lXrender", 
-                            "-lX11", ])
+    addn_link_args.append(cairo_lib);
+    if pixman_libdir:
+        pixman_lib = "-Wl," + os.path.join(pixman_libdir, "libpixman-1.a")
+    else:
+        pixman_lib = "-lpixman-1"
+    addn_link_args.append(pixman_lib);
+    addn_link_args.extend([ "-lfreetype", "-lfontconfig", "-lpng12", "-lXrender", "-lX11"])
 else:
    addn_link_args.append("-lcairo")
 
 # Link in the appropriate system libraries 
 if hdf5_libdir:
-   addn_link_args.append("-lcurl -lz")
+   addn_link_args.extend(["-lcurl", "-lz"])
 addn_link_args.extend([ "-lgfortran", "-ldl", "-lm", "-fPIC", ])
 
+# Bind symbols and function symbols to any internal definitions 
+# and do not make any of the symbols or function symbols defined
+# in any libraries externally visible (mainly for cairo and pixman).
+# Those in the object files (including those from pyfermod and 
+# fer/ef_utility) will still be visible.
+# addn_link_args.append("-Wl,-Bsymbolic-functions")
+addn_link_args.extend(["-Wl,-Bsymbolic", "-Wl,--exclude-libs -Wl,ALL"])
+
 # Get the list of C source files in pyfermod
 src_list = [ ]
 for srcname in os.listdir("pyfermod"):
@@ -110,6 +125,10 @@ 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"));
 
 # Create the pyferret.libpyferret Extension
 ext_mods = [ Extension("pyferret.libpyferret", include_dirs = incdir_list,
@@ -139,7 +158,7 @@ setup(name = "pyferret",
       ext_modules = ext_mods)
 
 setup(name = "pipedviewer",
-      version = "1.0.1",
+      version = "1.3.0",
       description = "Graphics viewer controlled by a command pipe",
       long_description = "A graphics viewer application that receives its " \
                          "drawing and other commands primarily from another " \
diff --git a/site_specific.mk b/site_specific.mk
index 333e22f..d00c2af 100644
--- a/site_specific.mk
+++ b/site_specific.mk
@@ -3,7 +3,7 @@
 
 ## 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.1.0-source
+DIR_PREFIX = $(HOME)/pyferret-1.2.0-source
 
 ## Machine type for which to build Ferret/PyFerret
 ##   x86_64-linux      for 64-bit RHEL
@@ -23,39 +23,43 @@ BUILDTYPE = $(HOSTTYPE)
 PYTHON_EXE = python2.6
 # PYTHON_EXE = python2.7
 ## The assignment of PYTHONINCDIR should not need any modifications
-PYTHONINCDIR   := $(shell $(PYTHON_EXE) -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc()")
+PYTHONINCDIR := $(shell $(PYTHON_EXE) -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc()")
 
 ## 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)
 
-## Installation directory for Cairo-1.8.8 static libraries
-## (contains include and lib or lib64 subdirectories) for RHEL5.
-## Do not give a location on other systems.  For these systems
-## the system-wide shared-object Cairo libraries which are also
-## used by Qt4 must be used.
-CAIRO_DIR =
-# CAIRO_DIR = /usr/local/cairo_188
+## Installation directory for cairo v1.12 or later static library 
+## (contains include and lib or lib64 subdirectories).  If blank,
+## the system's cairo shared library will be used.  Older versions 
+## of cairo (v1.8 or later) can be used, but raster images from 
+## -nodisplay may look a little fuzzy unless -gif is specified.
+CAIRO_DIR = /usr/local/cairo-1.14.4
+# CAIRO_DIR =
 
-## Installation directory for HDF5 static libraries
-## (contains include and lib or lib64 subdirectories)
-## Do not give a location if linking to netcdf shared-object libraries
+## Installation directory for pixman-1 static library (contains 
+## include and lib or lib64 subdirectories) used by the above cairo 
+## library.  If blank, or if CAIRO_DIR is blank, the system's 
+## pixman-1 shared library will be used.
+PIXMAN_DIR = /usr/local/cairo-1.14.4
+# PIXMAN_DIR =
+
+## 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.9
-# HDF5_DIR = /usr/local/hdf5_189
-# HDF5_DIR = /usr/local/hdf5_189_64
+HDF5_DIR = /usr/local/hdf5-1.8.16
 # HDF5_DIR = 
 
 ## Installation directory for NetCDF static or shared object libraries
-## (contains include and lib or lib64 subdirectories)
-## If HDF5_DIR (above) is empty, the shared-object netcdf libraries will be used.
+## (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
-NETCDF4_DIR = /usr/local/netcdf-4.3.1.1
-# NETCDF4_DIR = /usr/local/netcdf_4311
-# NETCDF4_DIR = /usr/local/netcdf_4311_64
+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,
@@ -71,6 +75,6 @@ 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.1.0
+PYFERRET_VERSION = 1.2
 
 ##

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